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 < TsImportCallOptions >`.\n\nBy default, this method \
1027             calls [`Option < TsImportCallOptions >::visit_children_with`]. If you want to \
1028             recurse, you need to call it manually."]
1029    #[inline]
1030    fn visit_opt_ts_import_call_options(&mut self, node: &Option<TsImportCallOptions>) {
1031        <Option<TsImportCallOptions> as VisitWith<Self>>::visit_children_with(node, self)
1032    }
1033    #[doc = "Visit a node of type `Option < TsNamespaceBody >`.\n\nBy default, this method calls \
1034             [`Option < TsNamespaceBody >::visit_children_with`]. If you want to recurse, you need \
1035             to call it manually."]
1036    #[inline]
1037    fn visit_opt_ts_namespace_body(&mut self, node: &Option<TsNamespaceBody>) {
1038        <Option<TsNamespaceBody> as VisitWith<Self>>::visit_children_with(node, self)
1039    }
1040    #[doc = "Visit a node of type `Option < Box < TsType > >`.\n\nBy default, this method calls \
1041             [`Option < Box < TsType > >::visit_children_with`]. If you want to recurse, you need \
1042             to call it manually."]
1043    #[inline]
1044    fn visit_opt_ts_type(&mut self, node: &Option<Box<TsType>>) {
1045        <Option<Box<TsType>> as VisitWith<Self>>::visit_children_with(node, self)
1046    }
1047    #[doc = "Visit a node of type `Option < Box < TsTypeAnn > >`.\n\nBy default, this method calls \
1048             [`Option < Box < TsTypeAnn > >::visit_children_with`]. If you want to recurse, you \
1049             need to call it manually."]
1050    #[inline]
1051    fn visit_opt_ts_type_ann(&mut self, node: &Option<Box<TsTypeAnn>>) {
1052        <Option<Box<TsTypeAnn>> as VisitWith<Self>>::visit_children_with(node, self)
1053    }
1054    #[doc = "Visit a node of type `Option < Box < TsTypeParamDecl > >`.\n\nBy default, this method \
1055             calls [`Option < Box < TsTypeParamDecl > >::visit_children_with`]. If you want to \
1056             recurse, you need to call it manually."]
1057    #[inline]
1058    fn visit_opt_ts_type_param_decl(&mut self, node: &Option<Box<TsTypeParamDecl>>) {
1059        <Option<Box<TsTypeParamDecl>> as VisitWith<Self>>::visit_children_with(node, self)
1060    }
1061    #[doc = "Visit a node of type `Option < Box < TsTypeParamInstantiation > >`.\n\nBy default, \
1062             this method calls [`Option < Box < TsTypeParamInstantiation > \
1063             >::visit_children_with`]. If you want to recurse, you need to call it manually."]
1064    #[inline]
1065    fn visit_opt_ts_type_param_instantiation(
1066        &mut self,
1067        node: &Option<Box<TsTypeParamInstantiation>>,
1068    ) {
1069        <Option<Box<TsTypeParamInstantiation>> as VisitWith<Self>>::visit_children_with(node, self)
1070    }
1071    #[doc = "Visit a node of type `Option < VarDeclOrExpr >`.\n\nBy default, this method calls \
1072             [`Option < VarDeclOrExpr >::visit_children_with`]. If you want to recurse, you need \
1073             to call it manually."]
1074    #[inline]
1075    fn visit_opt_var_decl_or_expr(&mut self, node: &Option<VarDeclOrExpr>) {
1076        <Option<VarDeclOrExpr> as VisitWith<Self>>::visit_children_with(node, self)
1077    }
1078    #[doc = "Visit a node of type `Vec < Option < ExprOrSpread > >`.\n\nBy default, this method \
1079             calls [`Vec < Option < ExprOrSpread > >::visit_children_with`]. If you want to \
1080             recurse, you need to call it manually."]
1081    #[inline]
1082    fn visit_opt_vec_expr_or_spreads(&mut self, node: &[Option<ExprOrSpread>]) {
1083        <[Option<ExprOrSpread>] as VisitWith<Self>>::visit_children_with(node, self)
1084    }
1085    #[doc = "Visit a node of type `Vec < Option < Pat > >`.\n\nBy default, this method calls [`Vec \
1086             < Option < Pat > >::visit_children_with`]. If you want to recurse, you need to call \
1087             it manually."]
1088    #[inline]
1089    fn visit_opt_vec_pats(&mut self, node: &[Option<Pat>]) {
1090        <[Option<Pat>] as VisitWith<Self>>::visit_children_with(node, self)
1091    }
1092    #[doc = "Visit a node of type `Param`.\n\nBy default, this method calls \
1093             [`Param::visit_children_with`]. If you want to recurse, you need to call it manually."]
1094    #[inline]
1095    fn visit_param(&mut self, node: &Param) {
1096        <Param as VisitWith<Self>>::visit_children_with(node, self)
1097    }
1098    #[doc = "Visit a node of type `ParamOrTsParamProp`.\n\nBy default, this method calls \
1099             [`ParamOrTsParamProp::visit_children_with`]. If you want to recurse, you need to call \
1100             it manually."]
1101    #[inline]
1102    fn visit_param_or_ts_param_prop(&mut self, node: &ParamOrTsParamProp) {
1103        <ParamOrTsParamProp as VisitWith<Self>>::visit_children_with(node, self)
1104    }
1105    #[doc = "Visit a node of type `Vec < ParamOrTsParamProp >`.\n\nBy default, this method calls \
1106             [`Vec < ParamOrTsParamProp >::visit_children_with`]. If you want to recurse, you need \
1107             to call it manually."]
1108    #[inline]
1109    fn visit_param_or_ts_param_props(&mut self, node: &[ParamOrTsParamProp]) {
1110        <[ParamOrTsParamProp] as VisitWith<Self>>::visit_children_with(node, self)
1111    }
1112    #[doc = "Visit a node of type `Vec < Param >`.\n\nBy default, this method calls [`Vec < Param \
1113             >::visit_children_with`]. If you want to recurse, you need to call it manually."]
1114    #[inline]
1115    fn visit_params(&mut self, node: &[Param]) {
1116        <[Param] as VisitWith<Self>>::visit_children_with(node, self)
1117    }
1118    #[doc = "Visit a node of type `ParenExpr`.\n\nBy default, this method calls \
1119             [`ParenExpr::visit_children_with`]. If you want to recurse, you need to call it \
1120             manually."]
1121    #[inline]
1122    fn visit_paren_expr(&mut self, node: &ParenExpr) {
1123        <ParenExpr as VisitWith<Self>>::visit_children_with(node, self)
1124    }
1125    #[doc = "Visit a node of type `Pat`.\n\nBy default, this method calls \
1126             [`Pat::visit_children_with`]. If you want to recurse, you need to call it manually."]
1127    #[inline]
1128    fn visit_pat(&mut self, node: &Pat) {
1129        <Pat as VisitWith<Self>>::visit_children_with(node, self)
1130    }
1131    #[doc = "Visit a node of type `Vec < Pat >`.\n\nBy default, this method calls [`Vec < Pat \
1132             >::visit_children_with`]. If you want to recurse, you need to call it manually."]
1133    #[inline]
1134    fn visit_pats(&mut self, node: &[Pat]) {
1135        <[Pat] as VisitWith<Self>>::visit_children_with(node, self)
1136    }
1137    #[doc = "Visit a node of type `PrivateMethod`.\n\nBy default, this method calls \
1138             [`PrivateMethod::visit_children_with`]. If you want to recurse, you need to call it \
1139             manually."]
1140    #[inline]
1141    fn visit_private_method(&mut self, node: &PrivateMethod) {
1142        <PrivateMethod as VisitWith<Self>>::visit_children_with(node, self)
1143    }
1144    #[doc = "Visit a node of type `PrivateName`.\n\nBy default, this method calls \
1145             [`PrivateName::visit_children_with`]. If you want to recurse, you need to call it \
1146             manually."]
1147    #[inline]
1148    fn visit_private_name(&mut self, node: &PrivateName) {
1149        <PrivateName as VisitWith<Self>>::visit_children_with(node, self)
1150    }
1151    #[doc = "Visit a node of type `PrivateProp`.\n\nBy default, this method calls \
1152             [`PrivateProp::visit_children_with`]. If you want to recurse, you need to call it \
1153             manually."]
1154    #[inline]
1155    fn visit_private_prop(&mut self, node: &PrivateProp) {
1156        <PrivateProp as VisitWith<Self>>::visit_children_with(node, self)
1157    }
1158    #[doc = "Visit a node of type `Program`.\n\nBy default, this method calls \
1159             [`Program::visit_children_with`]. If you want to recurse, you need to call it \
1160             manually."]
1161    #[inline]
1162    fn visit_program(&mut self, node: &Program) {
1163        <Program as VisitWith<Self>>::visit_children_with(node, self)
1164    }
1165    #[doc = "Visit a node of type `Prop`.\n\nBy default, this method calls \
1166             [`Prop::visit_children_with`]. If you want to recurse, you need to call it manually."]
1167    #[inline]
1168    fn visit_prop(&mut self, node: &Prop) {
1169        <Prop as VisitWith<Self>>::visit_children_with(node, self)
1170    }
1171    #[doc = "Visit a node of type `PropName`.\n\nBy default, this method calls \
1172             [`PropName::visit_children_with`]. If you want to recurse, you need to call it \
1173             manually."]
1174    #[inline]
1175    fn visit_prop_name(&mut self, node: &PropName) {
1176        <PropName as VisitWith<Self>>::visit_children_with(node, self)
1177    }
1178    #[doc = "Visit a node of type `PropOrSpread`.\n\nBy default, this method calls \
1179             [`PropOrSpread::visit_children_with`]. If you want to recurse, you need to call it \
1180             manually."]
1181    #[inline]
1182    fn visit_prop_or_spread(&mut self, node: &PropOrSpread) {
1183        <PropOrSpread as VisitWith<Self>>::visit_children_with(node, self)
1184    }
1185    #[doc = "Visit a node of type `Vec < PropOrSpread >`.\n\nBy default, this method calls [`Vec < \
1186             PropOrSpread >::visit_children_with`]. If you want to recurse, you need to call it \
1187             manually."]
1188    #[inline]
1189    fn visit_prop_or_spreads(&mut self, node: &[PropOrSpread]) {
1190        <[PropOrSpread] as VisitWith<Self>>::visit_children_with(node, self)
1191    }
1192    #[doc = "Visit a node of type `Regex`.\n\nBy default, this method calls \
1193             [`Regex::visit_children_with`]. If you want to recurse, you need to call it manually."]
1194    #[inline]
1195    fn visit_regex(&mut self, node: &Regex) {
1196        <Regex as VisitWith<Self>>::visit_children_with(node, self)
1197    }
1198    #[doc = "Visit a node of type `RestPat`.\n\nBy default, this method calls \
1199             [`RestPat::visit_children_with`]. If you want to recurse, you need to call it \
1200             manually."]
1201    #[inline]
1202    fn visit_rest_pat(&mut self, node: &RestPat) {
1203        <RestPat as VisitWith<Self>>::visit_children_with(node, self)
1204    }
1205    #[doc = "Visit a node of type `ReturnStmt`.\n\nBy default, this method calls \
1206             [`ReturnStmt::visit_children_with`]. If you want to recurse, you need to call it \
1207             manually."]
1208    #[inline]
1209    fn visit_return_stmt(&mut self, node: &ReturnStmt) {
1210        <ReturnStmt as VisitWith<Self>>::visit_children_with(node, self)
1211    }
1212    #[doc = "Visit a node of type `Script`.\n\nBy default, this method calls \
1213             [`Script::visit_children_with`]. If you want to recurse, you need to call it manually."]
1214    #[inline]
1215    fn visit_script(&mut self, node: &Script) {
1216        <Script as VisitWith<Self>>::visit_children_with(node, self)
1217    }
1218    #[doc = "Visit a node of type `SeqExpr`.\n\nBy default, this method calls \
1219             [`SeqExpr::visit_children_with`]. If you want to recurse, you need to call it \
1220             manually."]
1221    #[inline]
1222    fn visit_seq_expr(&mut self, node: &SeqExpr) {
1223        <SeqExpr as VisitWith<Self>>::visit_children_with(node, self)
1224    }
1225    #[doc = "Visit a node of type `SetterProp`.\n\nBy default, this method calls \
1226             [`SetterProp::visit_children_with`]. If you want to recurse, you need to call it \
1227             manually."]
1228    #[inline]
1229    fn visit_setter_prop(&mut self, node: &SetterProp) {
1230        <SetterProp as VisitWith<Self>>::visit_children_with(node, self)
1231    }
1232    #[doc = "Visit a node of type `SimpleAssignTarget`.\n\nBy default, this method calls \
1233             [`SimpleAssignTarget::visit_children_with`]. If you want to recurse, you need to call \
1234             it manually."]
1235    #[inline]
1236    fn visit_simple_assign_target(&mut self, node: &SimpleAssignTarget) {
1237        <SimpleAssignTarget as VisitWith<Self>>::visit_children_with(node, self)
1238    }
1239    #[doc = "Visit a node of type `swc_common :: Span`.\n\nBy default, this method calls \
1240             [`swc_common :: Span::visit_children_with`]. If you want to recurse, you need to call \
1241             it manually."]
1242    #[inline]
1243    fn visit_span(&mut self, node: &swc_common::Span) {
1244        <swc_common::Span as VisitWith<Self>>::visit_children_with(node, self)
1245    }
1246    #[doc = "Visit a node of type `SpreadElement`.\n\nBy default, this method calls \
1247             [`SpreadElement::visit_children_with`]. If you want to recurse, you need to call it \
1248             manually."]
1249    #[inline]
1250    fn visit_spread_element(&mut self, node: &SpreadElement) {
1251        <SpreadElement as VisitWith<Self>>::visit_children_with(node, self)
1252    }
1253    #[doc = "Visit a node of type `StaticBlock`.\n\nBy default, this method calls \
1254             [`StaticBlock::visit_children_with`]. If you want to recurse, you need to call it \
1255             manually."]
1256    #[inline]
1257    fn visit_static_block(&mut self, node: &StaticBlock) {
1258        <StaticBlock as VisitWith<Self>>::visit_children_with(node, self)
1259    }
1260    #[doc = "Visit a node of type `Stmt`.\n\nBy default, this method calls \
1261             [`Stmt::visit_children_with`]. If you want to recurse, you need to call it manually."]
1262    #[inline]
1263    fn visit_stmt(&mut self, node: &Stmt) {
1264        <Stmt as VisitWith<Self>>::visit_children_with(node, self)
1265    }
1266    #[doc = "Visit a node of type `Vec < Stmt >`.\n\nBy default, this method calls [`Vec < Stmt \
1267             >::visit_children_with`]. If you want to recurse, you need to call it manually."]
1268    #[inline]
1269    fn visit_stmts(&mut self, node: &[Stmt]) {
1270        <[Stmt] as VisitWith<Self>>::visit_children_with(node, self)
1271    }
1272    #[doc = "Visit a node of type `Str`.\n\nBy default, this method calls \
1273             [`Str::visit_children_with`]. If you want to recurse, you need to call it manually."]
1274    #[inline]
1275    fn visit_str(&mut self, node: &Str) {
1276        <Str as VisitWith<Self>>::visit_children_with(node, self)
1277    }
1278    #[doc = "Visit a node of type `Super`.\n\nBy default, this method calls \
1279             [`Super::visit_children_with`]. If you want to recurse, you need to call it manually."]
1280    #[inline]
1281    fn visit_super(&mut self, node: &Super) {
1282        <Super as VisitWith<Self>>::visit_children_with(node, self)
1283    }
1284    #[doc = "Visit a node of type `SuperProp`.\n\nBy default, this method calls \
1285             [`SuperProp::visit_children_with`]. If you want to recurse, you need to call it \
1286             manually."]
1287    #[inline]
1288    fn visit_super_prop(&mut self, node: &SuperProp) {
1289        <SuperProp as VisitWith<Self>>::visit_children_with(node, self)
1290    }
1291    #[doc = "Visit a node of type `SuperPropExpr`.\n\nBy default, this method calls \
1292             [`SuperPropExpr::visit_children_with`]. If you want to recurse, you need to call it \
1293             manually."]
1294    #[inline]
1295    fn visit_super_prop_expr(&mut self, node: &SuperPropExpr) {
1296        <SuperPropExpr as VisitWith<Self>>::visit_children_with(node, self)
1297    }
1298    #[doc = "Visit a node of type `SwitchCase`.\n\nBy default, this method calls \
1299             [`SwitchCase::visit_children_with`]. If you want to recurse, you need to call it \
1300             manually."]
1301    #[inline]
1302    fn visit_switch_case(&mut self, node: &SwitchCase) {
1303        <SwitchCase as VisitWith<Self>>::visit_children_with(node, self)
1304    }
1305    #[doc = "Visit a node of type `Vec < SwitchCase >`.\n\nBy default, this method calls [`Vec < \
1306             SwitchCase >::visit_children_with`]. If you want to recurse, you need to call it \
1307             manually."]
1308    #[inline]
1309    fn visit_switch_cases(&mut self, node: &[SwitchCase]) {
1310        <[SwitchCase] as VisitWith<Self>>::visit_children_with(node, self)
1311    }
1312    #[doc = "Visit a node of type `SwitchStmt`.\n\nBy default, this method calls \
1313             [`SwitchStmt::visit_children_with`]. If you want to recurse, you need to call it \
1314             manually."]
1315    #[inline]
1316    fn visit_switch_stmt(&mut self, node: &SwitchStmt) {
1317        <SwitchStmt as VisitWith<Self>>::visit_children_with(node, self)
1318    }
1319    #[doc = "Visit a node of type `swc_common :: SyntaxContext`.\n\nBy default, this method calls \
1320             [`swc_common :: SyntaxContext::visit_children_with`]. If you want to recurse, you \
1321             need to call it manually."]
1322    #[inline]
1323    fn visit_syntax_context(&mut self, node: &swc_common::SyntaxContext) {
1324        <swc_common::SyntaxContext as VisitWith<Self>>::visit_children_with(node, self)
1325    }
1326    #[doc = "Visit a node of type `TaggedTpl`.\n\nBy default, this method calls \
1327             [`TaggedTpl::visit_children_with`]. If you want to recurse, you need to call it \
1328             manually."]
1329    #[inline]
1330    fn visit_tagged_tpl(&mut self, node: &TaggedTpl) {
1331        <TaggedTpl as VisitWith<Self>>::visit_children_with(node, self)
1332    }
1333    #[doc = "Visit a node of type `ThisExpr`.\n\nBy default, this method calls \
1334             [`ThisExpr::visit_children_with`]. If you want to recurse, you need to call it \
1335             manually."]
1336    #[inline]
1337    fn visit_this_expr(&mut self, node: &ThisExpr) {
1338        <ThisExpr as VisitWith<Self>>::visit_children_with(node, self)
1339    }
1340    #[doc = "Visit a node of type `ThrowStmt`.\n\nBy default, this method calls \
1341             [`ThrowStmt::visit_children_with`]. If you want to recurse, you need to call it \
1342             manually."]
1343    #[inline]
1344    fn visit_throw_stmt(&mut self, node: &ThrowStmt) {
1345        <ThrowStmt as VisitWith<Self>>::visit_children_with(node, self)
1346    }
1347    #[doc = "Visit a node of type `Tpl`.\n\nBy default, this method calls \
1348             [`Tpl::visit_children_with`]. If you want to recurse, you need to call it manually."]
1349    #[inline]
1350    fn visit_tpl(&mut self, node: &Tpl) {
1351        <Tpl as VisitWith<Self>>::visit_children_with(node, self)
1352    }
1353    #[doc = "Visit a node of type `TplElement`.\n\nBy default, this method calls \
1354             [`TplElement::visit_children_with`]. If you want to recurse, you need to call it \
1355             manually."]
1356    #[inline]
1357    fn visit_tpl_element(&mut self, node: &TplElement) {
1358        <TplElement as VisitWith<Self>>::visit_children_with(node, self)
1359    }
1360    #[doc = "Visit a node of type `Vec < TplElement >`.\n\nBy default, this method calls [`Vec < \
1361             TplElement >::visit_children_with`]. If you want to recurse, you need to call it \
1362             manually."]
1363    #[inline]
1364    fn visit_tpl_elements(&mut self, node: &[TplElement]) {
1365        <[TplElement] as VisitWith<Self>>::visit_children_with(node, self)
1366    }
1367    #[doc = "Visit a node of type `TruePlusMinus`.\n\nBy default, this method calls \
1368             [`TruePlusMinus::visit_children_with`]. If you want to recurse, you need to call it \
1369             manually."]
1370    #[inline]
1371    fn visit_true_plus_minus(&mut self, node: &TruePlusMinus) {
1372        <TruePlusMinus as VisitWith<Self>>::visit_children_with(node, self)
1373    }
1374    #[doc = "Visit a node of type `TryStmt`.\n\nBy default, this method calls \
1375             [`TryStmt::visit_children_with`]. If you want to recurse, you need to call it \
1376             manually."]
1377    #[inline]
1378    fn visit_try_stmt(&mut self, node: &TryStmt) {
1379        <TryStmt as VisitWith<Self>>::visit_children_with(node, self)
1380    }
1381    #[doc = "Visit a node of type `TsArrayType`.\n\nBy default, this method calls \
1382             [`TsArrayType::visit_children_with`]. If you want to recurse, you need to call it \
1383             manually."]
1384    #[inline]
1385    fn visit_ts_array_type(&mut self, node: &TsArrayType) {
1386        <TsArrayType as VisitWith<Self>>::visit_children_with(node, self)
1387    }
1388    #[doc = "Visit a node of type `TsAsExpr`.\n\nBy default, this method calls \
1389             [`TsAsExpr::visit_children_with`]. If you want to recurse, you need to call it \
1390             manually."]
1391    #[inline]
1392    fn visit_ts_as_expr(&mut self, node: &TsAsExpr) {
1393        <TsAsExpr as VisitWith<Self>>::visit_children_with(node, self)
1394    }
1395    #[doc = "Visit a node of type `TsCallSignatureDecl`.\n\nBy default, this method calls \
1396             [`TsCallSignatureDecl::visit_children_with`]. If you want to recurse, you need to \
1397             call it manually."]
1398    #[inline]
1399    fn visit_ts_call_signature_decl(&mut self, node: &TsCallSignatureDecl) {
1400        <TsCallSignatureDecl as VisitWith<Self>>::visit_children_with(node, self)
1401    }
1402    #[doc = "Visit a node of type `TsConditionalType`.\n\nBy default, this method calls \
1403             [`TsConditionalType::visit_children_with`]. If you want to recurse, you need to call \
1404             it manually."]
1405    #[inline]
1406    fn visit_ts_conditional_type(&mut self, node: &TsConditionalType) {
1407        <TsConditionalType as VisitWith<Self>>::visit_children_with(node, self)
1408    }
1409    #[doc = "Visit a node of type `TsConstAssertion`.\n\nBy default, this method calls \
1410             [`TsConstAssertion::visit_children_with`]. If you want to recurse, you need to call \
1411             it manually."]
1412    #[inline]
1413    fn visit_ts_const_assertion(&mut self, node: &TsConstAssertion) {
1414        <TsConstAssertion as VisitWith<Self>>::visit_children_with(node, self)
1415    }
1416    #[doc = "Visit a node of type `TsConstructSignatureDecl`.\n\nBy default, this method calls \
1417             [`TsConstructSignatureDecl::visit_children_with`]. If you want to recurse, you need \
1418             to call it manually."]
1419    #[inline]
1420    fn visit_ts_construct_signature_decl(&mut self, node: &TsConstructSignatureDecl) {
1421        <TsConstructSignatureDecl as VisitWith<Self>>::visit_children_with(node, self)
1422    }
1423    #[doc = "Visit a node of type `TsConstructorType`.\n\nBy default, this method calls \
1424             [`TsConstructorType::visit_children_with`]. If you want to recurse, you need to call \
1425             it manually."]
1426    #[inline]
1427    fn visit_ts_constructor_type(&mut self, node: &TsConstructorType) {
1428        <TsConstructorType as VisitWith<Self>>::visit_children_with(node, self)
1429    }
1430    #[doc = "Visit a node of type `TsEntityName`.\n\nBy default, this method calls \
1431             [`TsEntityName::visit_children_with`]. If you want to recurse, you need to call it \
1432             manually."]
1433    #[inline]
1434    fn visit_ts_entity_name(&mut self, node: &TsEntityName) {
1435        <TsEntityName as VisitWith<Self>>::visit_children_with(node, self)
1436    }
1437    #[doc = "Visit a node of type `TsEnumDecl`.\n\nBy default, this method calls \
1438             [`TsEnumDecl::visit_children_with`]. If you want to recurse, you need to call it \
1439             manually."]
1440    #[inline]
1441    fn visit_ts_enum_decl(&mut self, node: &TsEnumDecl) {
1442        <TsEnumDecl as VisitWith<Self>>::visit_children_with(node, self)
1443    }
1444    #[doc = "Visit a node of type `TsEnumMember`.\n\nBy default, this method calls \
1445             [`TsEnumMember::visit_children_with`]. If you want to recurse, you need to call it \
1446             manually."]
1447    #[inline]
1448    fn visit_ts_enum_member(&mut self, node: &TsEnumMember) {
1449        <TsEnumMember as VisitWith<Self>>::visit_children_with(node, self)
1450    }
1451    #[doc = "Visit a node of type `TsEnumMemberId`.\n\nBy default, this method calls \
1452             [`TsEnumMemberId::visit_children_with`]. If you want to recurse, you need to call it \
1453             manually."]
1454    #[inline]
1455    fn visit_ts_enum_member_id(&mut self, node: &TsEnumMemberId) {
1456        <TsEnumMemberId as VisitWith<Self>>::visit_children_with(node, self)
1457    }
1458    #[doc = "Visit a node of type `Vec < TsEnumMember >`.\n\nBy default, this method calls [`Vec < \
1459             TsEnumMember >::visit_children_with`]. If you want to recurse, you need to call it \
1460             manually."]
1461    #[inline]
1462    fn visit_ts_enum_members(&mut self, node: &[TsEnumMember]) {
1463        <[TsEnumMember] as VisitWith<Self>>::visit_children_with(node, self)
1464    }
1465    #[doc = "Visit a node of type `TsExportAssignment`.\n\nBy default, this method calls \
1466             [`TsExportAssignment::visit_children_with`]. If you want to recurse, you need to call \
1467             it manually."]
1468    #[inline]
1469    fn visit_ts_export_assignment(&mut self, node: &TsExportAssignment) {
1470        <TsExportAssignment as VisitWith<Self>>::visit_children_with(node, self)
1471    }
1472    #[doc = "Visit a node of type `TsExprWithTypeArgs`.\n\nBy default, this method calls \
1473             [`TsExprWithTypeArgs::visit_children_with`]. If you want to recurse, you need to call \
1474             it manually."]
1475    #[inline]
1476    fn visit_ts_expr_with_type_args(&mut self, node: &TsExprWithTypeArgs) {
1477        <TsExprWithTypeArgs as VisitWith<Self>>::visit_children_with(node, self)
1478    }
1479    #[doc = "Visit a node of type `Vec < TsExprWithTypeArgs >`.\n\nBy default, this method calls \
1480             [`Vec < TsExprWithTypeArgs >::visit_children_with`]. If you want to recurse, you need \
1481             to call it manually."]
1482    #[inline]
1483    fn visit_ts_expr_with_type_argss(&mut self, node: &[TsExprWithTypeArgs]) {
1484        <[TsExprWithTypeArgs] as VisitWith<Self>>::visit_children_with(node, self)
1485    }
1486    #[doc = "Visit a node of type `TsExternalModuleRef`.\n\nBy default, this method calls \
1487             [`TsExternalModuleRef::visit_children_with`]. If you want to recurse, you need to \
1488             call it manually."]
1489    #[inline]
1490    fn visit_ts_external_module_ref(&mut self, node: &TsExternalModuleRef) {
1491        <TsExternalModuleRef as VisitWith<Self>>::visit_children_with(node, self)
1492    }
1493    #[doc = "Visit a node of type `TsFnOrConstructorType`.\n\nBy default, this method calls \
1494             [`TsFnOrConstructorType::visit_children_with`]. If you want to recurse, you need to \
1495             call it manually."]
1496    #[inline]
1497    fn visit_ts_fn_or_constructor_type(&mut self, node: &TsFnOrConstructorType) {
1498        <TsFnOrConstructorType as VisitWith<Self>>::visit_children_with(node, self)
1499    }
1500    #[doc = "Visit a node of type `TsFnParam`.\n\nBy default, this method calls \
1501             [`TsFnParam::visit_children_with`]. If you want to recurse, you need to call it \
1502             manually."]
1503    #[inline]
1504    fn visit_ts_fn_param(&mut self, node: &TsFnParam) {
1505        <TsFnParam as VisitWith<Self>>::visit_children_with(node, self)
1506    }
1507    #[doc = "Visit a node of type `Vec < TsFnParam >`.\n\nBy default, this method calls [`Vec < \
1508             TsFnParam >::visit_children_with`]. If you want to recurse, you need to call it \
1509             manually."]
1510    #[inline]
1511    fn visit_ts_fn_params(&mut self, node: &[TsFnParam]) {
1512        <[TsFnParam] as VisitWith<Self>>::visit_children_with(node, self)
1513    }
1514    #[doc = "Visit a node of type `TsFnType`.\n\nBy default, this method calls \
1515             [`TsFnType::visit_children_with`]. If you want to recurse, you need to call it \
1516             manually."]
1517    #[inline]
1518    fn visit_ts_fn_type(&mut self, node: &TsFnType) {
1519        <TsFnType as VisitWith<Self>>::visit_children_with(node, self)
1520    }
1521    #[doc = "Visit a node of type `TsGetterSignature`.\n\nBy default, this method calls \
1522             [`TsGetterSignature::visit_children_with`]. If you want to recurse, you need to call \
1523             it manually."]
1524    #[inline]
1525    fn visit_ts_getter_signature(&mut self, node: &TsGetterSignature) {
1526        <TsGetterSignature as VisitWith<Self>>::visit_children_with(node, self)
1527    }
1528    #[doc = "Visit a node of type `TsImportCallOptions`.\n\nBy default, this method calls \
1529             [`TsImportCallOptions::visit_children_with`]. If you want to recurse, you need to \
1530             call it manually."]
1531    #[inline]
1532    fn visit_ts_import_call_options(&mut self, node: &TsImportCallOptions) {
1533        <TsImportCallOptions as VisitWith<Self>>::visit_children_with(node, self)
1534    }
1535    #[doc = "Visit a node of type `TsImportEqualsDecl`.\n\nBy default, this method calls \
1536             [`TsImportEqualsDecl::visit_children_with`]. If you want to recurse, you need to call \
1537             it manually."]
1538    #[inline]
1539    fn visit_ts_import_equals_decl(&mut self, node: &TsImportEqualsDecl) {
1540        <TsImportEqualsDecl as VisitWith<Self>>::visit_children_with(node, self)
1541    }
1542    #[doc = "Visit a node of type `TsImportType`.\n\nBy default, this method calls \
1543             [`TsImportType::visit_children_with`]. If you want to recurse, you need to call it \
1544             manually."]
1545    #[inline]
1546    fn visit_ts_import_type(&mut self, node: &TsImportType) {
1547        <TsImportType as VisitWith<Self>>::visit_children_with(node, self)
1548    }
1549    #[doc = "Visit a node of type `TsIndexSignature`.\n\nBy default, this method calls \
1550             [`TsIndexSignature::visit_children_with`]. If you want to recurse, you need to call \
1551             it manually."]
1552    #[inline]
1553    fn visit_ts_index_signature(&mut self, node: &TsIndexSignature) {
1554        <TsIndexSignature as VisitWith<Self>>::visit_children_with(node, self)
1555    }
1556    #[doc = "Visit a node of type `TsIndexedAccessType`.\n\nBy default, this method calls \
1557             [`TsIndexedAccessType::visit_children_with`]. If you want to recurse, you need to \
1558             call it manually."]
1559    #[inline]
1560    fn visit_ts_indexed_access_type(&mut self, node: &TsIndexedAccessType) {
1561        <TsIndexedAccessType as VisitWith<Self>>::visit_children_with(node, self)
1562    }
1563    #[doc = "Visit a node of type `TsInferType`.\n\nBy default, this method calls \
1564             [`TsInferType::visit_children_with`]. If you want to recurse, you need to call it \
1565             manually."]
1566    #[inline]
1567    fn visit_ts_infer_type(&mut self, node: &TsInferType) {
1568        <TsInferType as VisitWith<Self>>::visit_children_with(node, self)
1569    }
1570    #[doc = "Visit a node of type `TsInstantiation`.\n\nBy default, this method calls \
1571             [`TsInstantiation::visit_children_with`]. If you want to recurse, you need to call it \
1572             manually."]
1573    #[inline]
1574    fn visit_ts_instantiation(&mut self, node: &TsInstantiation) {
1575        <TsInstantiation as VisitWith<Self>>::visit_children_with(node, self)
1576    }
1577    #[doc = "Visit a node of type `TsInterfaceBody`.\n\nBy default, this method calls \
1578             [`TsInterfaceBody::visit_children_with`]. If you want to recurse, you need to call it \
1579             manually."]
1580    #[inline]
1581    fn visit_ts_interface_body(&mut self, node: &TsInterfaceBody) {
1582        <TsInterfaceBody as VisitWith<Self>>::visit_children_with(node, self)
1583    }
1584    #[doc = "Visit a node of type `TsInterfaceDecl`.\n\nBy default, this method calls \
1585             [`TsInterfaceDecl::visit_children_with`]. If you want to recurse, you need to call it \
1586             manually."]
1587    #[inline]
1588    fn visit_ts_interface_decl(&mut self, node: &TsInterfaceDecl) {
1589        <TsInterfaceDecl as VisitWith<Self>>::visit_children_with(node, self)
1590    }
1591    #[doc = "Visit a node of type `TsIntersectionType`.\n\nBy default, this method calls \
1592             [`TsIntersectionType::visit_children_with`]. If you want to recurse, you need to call \
1593             it manually."]
1594    #[inline]
1595    fn visit_ts_intersection_type(&mut self, node: &TsIntersectionType) {
1596        <TsIntersectionType as VisitWith<Self>>::visit_children_with(node, self)
1597    }
1598    #[doc = "Visit a node of type `TsKeywordType`.\n\nBy default, this method calls \
1599             [`TsKeywordType::visit_children_with`]. If you want to recurse, you need to call it \
1600             manually."]
1601    #[inline]
1602    fn visit_ts_keyword_type(&mut self, node: &TsKeywordType) {
1603        <TsKeywordType as VisitWith<Self>>::visit_children_with(node, self)
1604    }
1605    #[doc = "Visit a node of type `TsKeywordTypeKind`.\n\nBy default, this method calls \
1606             [`TsKeywordTypeKind::visit_children_with`]. If you want to recurse, you need to call \
1607             it manually."]
1608    #[inline]
1609    fn visit_ts_keyword_type_kind(&mut self, node: &TsKeywordTypeKind) {
1610        <TsKeywordTypeKind as VisitWith<Self>>::visit_children_with(node, self)
1611    }
1612    #[doc = "Visit a node of type `TsLit`.\n\nBy default, this method calls \
1613             [`TsLit::visit_children_with`]. If you want to recurse, you need to call it manually."]
1614    #[inline]
1615    fn visit_ts_lit(&mut self, node: &TsLit) {
1616        <TsLit as VisitWith<Self>>::visit_children_with(node, self)
1617    }
1618    #[doc = "Visit a node of type `TsLitType`.\n\nBy default, this method calls \
1619             [`TsLitType::visit_children_with`]. If you want to recurse, you need to call it \
1620             manually."]
1621    #[inline]
1622    fn visit_ts_lit_type(&mut self, node: &TsLitType) {
1623        <TsLitType as VisitWith<Self>>::visit_children_with(node, self)
1624    }
1625    #[doc = "Visit a node of type `TsMappedType`.\n\nBy default, this method calls \
1626             [`TsMappedType::visit_children_with`]. If you want to recurse, you need to call it \
1627             manually."]
1628    #[inline]
1629    fn visit_ts_mapped_type(&mut self, node: &TsMappedType) {
1630        <TsMappedType as VisitWith<Self>>::visit_children_with(node, self)
1631    }
1632    #[doc = "Visit a node of type `TsMethodSignature`.\n\nBy default, this method calls \
1633             [`TsMethodSignature::visit_children_with`]. If you want to recurse, you need to call \
1634             it manually."]
1635    #[inline]
1636    fn visit_ts_method_signature(&mut self, node: &TsMethodSignature) {
1637        <TsMethodSignature as VisitWith<Self>>::visit_children_with(node, self)
1638    }
1639    #[doc = "Visit a node of type `TsModuleBlock`.\n\nBy default, this method calls \
1640             [`TsModuleBlock::visit_children_with`]. If you want to recurse, you need to call it \
1641             manually."]
1642    #[inline]
1643    fn visit_ts_module_block(&mut self, node: &TsModuleBlock) {
1644        <TsModuleBlock as VisitWith<Self>>::visit_children_with(node, self)
1645    }
1646    #[doc = "Visit a node of type `TsModuleDecl`.\n\nBy default, this method calls \
1647             [`TsModuleDecl::visit_children_with`]. If you want to recurse, you need to call it \
1648             manually."]
1649    #[inline]
1650    fn visit_ts_module_decl(&mut self, node: &TsModuleDecl) {
1651        <TsModuleDecl as VisitWith<Self>>::visit_children_with(node, self)
1652    }
1653    #[doc = "Visit a node of type `TsModuleName`.\n\nBy default, this method calls \
1654             [`TsModuleName::visit_children_with`]. If you want to recurse, you need to call it \
1655             manually."]
1656    #[inline]
1657    fn visit_ts_module_name(&mut self, node: &TsModuleName) {
1658        <TsModuleName as VisitWith<Self>>::visit_children_with(node, self)
1659    }
1660    #[doc = "Visit a node of type `TsModuleRef`.\n\nBy default, this method calls \
1661             [`TsModuleRef::visit_children_with`]. If you want to recurse, you need to call it \
1662             manually."]
1663    #[inline]
1664    fn visit_ts_module_ref(&mut self, node: &TsModuleRef) {
1665        <TsModuleRef as VisitWith<Self>>::visit_children_with(node, self)
1666    }
1667    #[doc = "Visit a node of type `TsNamespaceBody`.\n\nBy default, this method calls \
1668             [`TsNamespaceBody::visit_children_with`]. If you want to recurse, you need to call it \
1669             manually."]
1670    #[inline]
1671    fn visit_ts_namespace_body(&mut self, node: &TsNamespaceBody) {
1672        <TsNamespaceBody as VisitWith<Self>>::visit_children_with(node, self)
1673    }
1674    #[doc = "Visit a node of type `TsNamespaceDecl`.\n\nBy default, this method calls \
1675             [`TsNamespaceDecl::visit_children_with`]. If you want to recurse, you need to call it \
1676             manually."]
1677    #[inline]
1678    fn visit_ts_namespace_decl(&mut self, node: &TsNamespaceDecl) {
1679        <TsNamespaceDecl as VisitWith<Self>>::visit_children_with(node, self)
1680    }
1681    #[doc = "Visit a node of type `TsNamespaceExportDecl`.\n\nBy default, this method calls \
1682             [`TsNamespaceExportDecl::visit_children_with`]. If you want to recurse, you need to \
1683             call it manually."]
1684    #[inline]
1685    fn visit_ts_namespace_export_decl(&mut self, node: &TsNamespaceExportDecl) {
1686        <TsNamespaceExportDecl as VisitWith<Self>>::visit_children_with(node, self)
1687    }
1688    #[doc = "Visit a node of type `TsNonNullExpr`.\n\nBy default, this method calls \
1689             [`TsNonNullExpr::visit_children_with`]. If you want to recurse, you need to call it \
1690             manually."]
1691    #[inline]
1692    fn visit_ts_non_null_expr(&mut self, node: &TsNonNullExpr) {
1693        <TsNonNullExpr as VisitWith<Self>>::visit_children_with(node, self)
1694    }
1695    #[doc = "Visit a node of type `TsOptionalType`.\n\nBy default, this method calls \
1696             [`TsOptionalType::visit_children_with`]. If you want to recurse, you need to call it \
1697             manually."]
1698    #[inline]
1699    fn visit_ts_optional_type(&mut self, node: &TsOptionalType) {
1700        <TsOptionalType as VisitWith<Self>>::visit_children_with(node, self)
1701    }
1702    #[doc = "Visit a node of type `TsParamProp`.\n\nBy default, this method calls \
1703             [`TsParamProp::visit_children_with`]. If you want to recurse, you need to call it \
1704             manually."]
1705    #[inline]
1706    fn visit_ts_param_prop(&mut self, node: &TsParamProp) {
1707        <TsParamProp as VisitWith<Self>>::visit_children_with(node, self)
1708    }
1709    #[doc = "Visit a node of type `TsParamPropParam`.\n\nBy default, this method calls \
1710             [`TsParamPropParam::visit_children_with`]. If you want to recurse, you need to call \
1711             it manually."]
1712    #[inline]
1713    fn visit_ts_param_prop_param(&mut self, node: &TsParamPropParam) {
1714        <TsParamPropParam as VisitWith<Self>>::visit_children_with(node, self)
1715    }
1716    #[doc = "Visit a node of type `TsParenthesizedType`.\n\nBy default, this method calls \
1717             [`TsParenthesizedType::visit_children_with`]. If you want to recurse, you need to \
1718             call it manually."]
1719    #[inline]
1720    fn visit_ts_parenthesized_type(&mut self, node: &TsParenthesizedType) {
1721        <TsParenthesizedType as VisitWith<Self>>::visit_children_with(node, self)
1722    }
1723    #[doc = "Visit a node of type `TsPropertySignature`.\n\nBy default, this method calls \
1724             [`TsPropertySignature::visit_children_with`]. If you want to recurse, you need to \
1725             call it manually."]
1726    #[inline]
1727    fn visit_ts_property_signature(&mut self, node: &TsPropertySignature) {
1728        <TsPropertySignature as VisitWith<Self>>::visit_children_with(node, self)
1729    }
1730    #[doc = "Visit a node of type `TsQualifiedName`.\n\nBy default, this method calls \
1731             [`TsQualifiedName::visit_children_with`]. If you want to recurse, you need to call it \
1732             manually."]
1733    #[inline]
1734    fn visit_ts_qualified_name(&mut self, node: &TsQualifiedName) {
1735        <TsQualifiedName as VisitWith<Self>>::visit_children_with(node, self)
1736    }
1737    #[doc = "Visit a node of type `TsRestType`.\n\nBy default, this method calls \
1738             [`TsRestType::visit_children_with`]. If you want to recurse, you need to call it \
1739             manually."]
1740    #[inline]
1741    fn visit_ts_rest_type(&mut self, node: &TsRestType) {
1742        <TsRestType as VisitWith<Self>>::visit_children_with(node, self)
1743    }
1744    #[doc = "Visit a node of type `TsSatisfiesExpr`.\n\nBy default, this method calls \
1745             [`TsSatisfiesExpr::visit_children_with`]. If you want to recurse, you need to call it \
1746             manually."]
1747    #[inline]
1748    fn visit_ts_satisfies_expr(&mut self, node: &TsSatisfiesExpr) {
1749        <TsSatisfiesExpr as VisitWith<Self>>::visit_children_with(node, self)
1750    }
1751    #[doc = "Visit a node of type `TsSetterSignature`.\n\nBy default, this method calls \
1752             [`TsSetterSignature::visit_children_with`]. If you want to recurse, you need to call \
1753             it manually."]
1754    #[inline]
1755    fn visit_ts_setter_signature(&mut self, node: &TsSetterSignature) {
1756        <TsSetterSignature as VisitWith<Self>>::visit_children_with(node, self)
1757    }
1758    #[doc = "Visit a node of type `TsThisType`.\n\nBy default, this method calls \
1759             [`TsThisType::visit_children_with`]. If you want to recurse, you need to call it \
1760             manually."]
1761    #[inline]
1762    fn visit_ts_this_type(&mut self, node: &TsThisType) {
1763        <TsThisType as VisitWith<Self>>::visit_children_with(node, self)
1764    }
1765    #[doc = "Visit a node of type `TsThisTypeOrIdent`.\n\nBy default, this method calls \
1766             [`TsThisTypeOrIdent::visit_children_with`]. If you want to recurse, you need to call \
1767             it manually."]
1768    #[inline]
1769    fn visit_ts_this_type_or_ident(&mut self, node: &TsThisTypeOrIdent) {
1770        <TsThisTypeOrIdent as VisitWith<Self>>::visit_children_with(node, self)
1771    }
1772    #[doc = "Visit a node of type `TsTplLitType`.\n\nBy default, this method calls \
1773             [`TsTplLitType::visit_children_with`]. If you want to recurse, you need to call it \
1774             manually."]
1775    #[inline]
1776    fn visit_ts_tpl_lit_type(&mut self, node: &TsTplLitType) {
1777        <TsTplLitType as VisitWith<Self>>::visit_children_with(node, self)
1778    }
1779    #[doc = "Visit a node of type `TsTupleElement`.\n\nBy default, this method calls \
1780             [`TsTupleElement::visit_children_with`]. If you want to recurse, you need to call it \
1781             manually."]
1782    #[inline]
1783    fn visit_ts_tuple_element(&mut self, node: &TsTupleElement) {
1784        <TsTupleElement as VisitWith<Self>>::visit_children_with(node, self)
1785    }
1786    #[doc = "Visit a node of type `Vec < TsTupleElement >`.\n\nBy default, this method calls [`Vec \
1787             < TsTupleElement >::visit_children_with`]. If you want to recurse, you need to call \
1788             it manually."]
1789    #[inline]
1790    fn visit_ts_tuple_elements(&mut self, node: &[TsTupleElement]) {
1791        <[TsTupleElement] as VisitWith<Self>>::visit_children_with(node, self)
1792    }
1793    #[doc = "Visit a node of type `TsTupleType`.\n\nBy default, this method calls \
1794             [`TsTupleType::visit_children_with`]. If you want to recurse, you need to call it \
1795             manually."]
1796    #[inline]
1797    fn visit_ts_tuple_type(&mut self, node: &TsTupleType) {
1798        <TsTupleType as VisitWith<Self>>::visit_children_with(node, self)
1799    }
1800    #[doc = "Visit a node of type `TsType`.\n\nBy default, this method calls \
1801             [`TsType::visit_children_with`]. If you want to recurse, you need to call it manually."]
1802    #[inline]
1803    fn visit_ts_type(&mut self, node: &TsType) {
1804        <TsType as VisitWith<Self>>::visit_children_with(node, self)
1805    }
1806    #[doc = "Visit a node of type `TsTypeAliasDecl`.\n\nBy default, this method calls \
1807             [`TsTypeAliasDecl::visit_children_with`]. If you want to recurse, you need to call it \
1808             manually."]
1809    #[inline]
1810    fn visit_ts_type_alias_decl(&mut self, node: &TsTypeAliasDecl) {
1811        <TsTypeAliasDecl as VisitWith<Self>>::visit_children_with(node, self)
1812    }
1813    #[doc = "Visit a node of type `TsTypeAnn`.\n\nBy default, this method calls \
1814             [`TsTypeAnn::visit_children_with`]. If you want to recurse, you need to call it \
1815             manually."]
1816    #[inline]
1817    fn visit_ts_type_ann(&mut self, node: &TsTypeAnn) {
1818        <TsTypeAnn as VisitWith<Self>>::visit_children_with(node, self)
1819    }
1820    #[doc = "Visit a node of type `TsTypeAssertion`.\n\nBy default, this method calls \
1821             [`TsTypeAssertion::visit_children_with`]. If you want to recurse, you need to call it \
1822             manually."]
1823    #[inline]
1824    fn visit_ts_type_assertion(&mut self, node: &TsTypeAssertion) {
1825        <TsTypeAssertion as VisitWith<Self>>::visit_children_with(node, self)
1826    }
1827    #[doc = "Visit a node of type `TsTypeElement`.\n\nBy default, this method calls \
1828             [`TsTypeElement::visit_children_with`]. If you want to recurse, you need to call it \
1829             manually."]
1830    #[inline]
1831    fn visit_ts_type_element(&mut self, node: &TsTypeElement) {
1832        <TsTypeElement as VisitWith<Self>>::visit_children_with(node, self)
1833    }
1834    #[doc = "Visit a node of type `Vec < TsTypeElement >`.\n\nBy default, this method calls [`Vec \
1835             < TsTypeElement >::visit_children_with`]. If you want to recurse, you need to call it \
1836             manually."]
1837    #[inline]
1838    fn visit_ts_type_elements(&mut self, node: &[TsTypeElement]) {
1839        <[TsTypeElement] as VisitWith<Self>>::visit_children_with(node, self)
1840    }
1841    #[doc = "Visit a node of type `TsTypeLit`.\n\nBy default, this method calls \
1842             [`TsTypeLit::visit_children_with`]. If you want to recurse, you need to call it \
1843             manually."]
1844    #[inline]
1845    fn visit_ts_type_lit(&mut self, node: &TsTypeLit) {
1846        <TsTypeLit as VisitWith<Self>>::visit_children_with(node, self)
1847    }
1848    #[doc = "Visit a node of type `TsTypeOperator`.\n\nBy default, this method calls \
1849             [`TsTypeOperator::visit_children_with`]. If you want to recurse, you need to call it \
1850             manually."]
1851    #[inline]
1852    fn visit_ts_type_operator(&mut self, node: &TsTypeOperator) {
1853        <TsTypeOperator as VisitWith<Self>>::visit_children_with(node, self)
1854    }
1855    #[doc = "Visit a node of type `TsTypeOperatorOp`.\n\nBy default, this method calls \
1856             [`TsTypeOperatorOp::visit_children_with`]. If you want to recurse, you need to call \
1857             it manually."]
1858    #[inline]
1859    fn visit_ts_type_operator_op(&mut self, node: &TsTypeOperatorOp) {
1860        <TsTypeOperatorOp as VisitWith<Self>>::visit_children_with(node, self)
1861    }
1862    #[doc = "Visit a node of type `TsTypeParam`.\n\nBy default, this method calls \
1863             [`TsTypeParam::visit_children_with`]. If you want to recurse, you need to call it \
1864             manually."]
1865    #[inline]
1866    fn visit_ts_type_param(&mut self, node: &TsTypeParam) {
1867        <TsTypeParam as VisitWith<Self>>::visit_children_with(node, self)
1868    }
1869    #[doc = "Visit a node of type `TsTypeParamDecl`.\n\nBy default, this method calls \
1870             [`TsTypeParamDecl::visit_children_with`]. If you want to recurse, you need to call it \
1871             manually."]
1872    #[inline]
1873    fn visit_ts_type_param_decl(&mut self, node: &TsTypeParamDecl) {
1874        <TsTypeParamDecl as VisitWith<Self>>::visit_children_with(node, self)
1875    }
1876    #[doc = "Visit a node of type `TsTypeParamInstantiation`.\n\nBy default, this method calls \
1877             [`TsTypeParamInstantiation::visit_children_with`]. If you want to recurse, you need \
1878             to call it manually."]
1879    #[inline]
1880    fn visit_ts_type_param_instantiation(&mut self, node: &TsTypeParamInstantiation) {
1881        <TsTypeParamInstantiation as VisitWith<Self>>::visit_children_with(node, self)
1882    }
1883    #[doc = "Visit a node of type `Vec < TsTypeParam >`.\n\nBy default, this method calls [`Vec < \
1884             TsTypeParam >::visit_children_with`]. If you want to recurse, you need to call it \
1885             manually."]
1886    #[inline]
1887    fn visit_ts_type_params(&mut self, node: &[TsTypeParam]) {
1888        <[TsTypeParam] as VisitWith<Self>>::visit_children_with(node, self)
1889    }
1890    #[doc = "Visit a node of type `TsTypePredicate`.\n\nBy default, this method calls \
1891             [`TsTypePredicate::visit_children_with`]. If you want to recurse, you need to call it \
1892             manually."]
1893    #[inline]
1894    fn visit_ts_type_predicate(&mut self, node: &TsTypePredicate) {
1895        <TsTypePredicate as VisitWith<Self>>::visit_children_with(node, self)
1896    }
1897    #[doc = "Visit a node of type `TsTypeQuery`.\n\nBy default, this method calls \
1898             [`TsTypeQuery::visit_children_with`]. If you want to recurse, you need to call it \
1899             manually."]
1900    #[inline]
1901    fn visit_ts_type_query(&mut self, node: &TsTypeQuery) {
1902        <TsTypeQuery as VisitWith<Self>>::visit_children_with(node, self)
1903    }
1904    #[doc = "Visit a node of type `TsTypeQueryExpr`.\n\nBy default, this method calls \
1905             [`TsTypeQueryExpr::visit_children_with`]. If you want to recurse, you need to call it \
1906             manually."]
1907    #[inline]
1908    fn visit_ts_type_query_expr(&mut self, node: &TsTypeQueryExpr) {
1909        <TsTypeQueryExpr as VisitWith<Self>>::visit_children_with(node, self)
1910    }
1911    #[doc = "Visit a node of type `TsTypeRef`.\n\nBy default, this method calls \
1912             [`TsTypeRef::visit_children_with`]. If you want to recurse, you need to call it \
1913             manually."]
1914    #[inline]
1915    fn visit_ts_type_ref(&mut self, node: &TsTypeRef) {
1916        <TsTypeRef as VisitWith<Self>>::visit_children_with(node, self)
1917    }
1918    #[doc = "Visit a node of type `Vec < Box < TsType > >`.\n\nBy default, this method calls [`Vec \
1919             < Box < TsType > >::visit_children_with`]. If you want to recurse, you need to call \
1920             it manually."]
1921    #[inline]
1922    fn visit_ts_types(&mut self, node: &[Box<TsType>]) {
1923        <[Box<TsType>] as VisitWith<Self>>::visit_children_with(node, self)
1924    }
1925    #[doc = "Visit a node of type `TsUnionOrIntersectionType`.\n\nBy default, this method calls \
1926             [`TsUnionOrIntersectionType::visit_children_with`]. If you want to recurse, you need \
1927             to call it manually."]
1928    #[inline]
1929    fn visit_ts_union_or_intersection_type(&mut self, node: &TsUnionOrIntersectionType) {
1930        <TsUnionOrIntersectionType as VisitWith<Self>>::visit_children_with(node, self)
1931    }
1932    #[doc = "Visit a node of type `TsUnionType`.\n\nBy default, this method calls \
1933             [`TsUnionType::visit_children_with`]. If you want to recurse, you need to call it \
1934             manually."]
1935    #[inline]
1936    fn visit_ts_union_type(&mut self, node: &TsUnionType) {
1937        <TsUnionType as VisitWith<Self>>::visit_children_with(node, self)
1938    }
1939    #[doc = "Visit a node of type `UnaryExpr`.\n\nBy default, this method calls \
1940             [`UnaryExpr::visit_children_with`]. If you want to recurse, you need to call it \
1941             manually."]
1942    #[inline]
1943    fn visit_unary_expr(&mut self, node: &UnaryExpr) {
1944        <UnaryExpr as VisitWith<Self>>::visit_children_with(node, self)
1945    }
1946    #[doc = "Visit a node of type `UnaryOp`.\n\nBy default, this method calls \
1947             [`UnaryOp::visit_children_with`]. If you want to recurse, you need to call it \
1948             manually."]
1949    #[inline]
1950    fn visit_unary_op(&mut self, node: &UnaryOp) {
1951        <UnaryOp as VisitWith<Self>>::visit_children_with(node, self)
1952    }
1953    #[doc = "Visit a node of type `UpdateExpr`.\n\nBy default, this method calls \
1954             [`UpdateExpr::visit_children_with`]. If you want to recurse, you need to call it \
1955             manually."]
1956    #[inline]
1957    fn visit_update_expr(&mut self, node: &UpdateExpr) {
1958        <UpdateExpr as VisitWith<Self>>::visit_children_with(node, self)
1959    }
1960    #[doc = "Visit a node of type `UpdateOp`.\n\nBy default, this method calls \
1961             [`UpdateOp::visit_children_with`]. If you want to recurse, you need to call it \
1962             manually."]
1963    #[inline]
1964    fn visit_update_op(&mut self, node: &UpdateOp) {
1965        <UpdateOp as VisitWith<Self>>::visit_children_with(node, self)
1966    }
1967    #[doc = "Visit a node of type `UsingDecl`.\n\nBy default, this method calls \
1968             [`UsingDecl::visit_children_with`]. If you want to recurse, you need to call it \
1969             manually."]
1970    #[inline]
1971    fn visit_using_decl(&mut self, node: &UsingDecl) {
1972        <UsingDecl as VisitWith<Self>>::visit_children_with(node, self)
1973    }
1974    #[doc = "Visit a node of type `VarDecl`.\n\nBy default, this method calls \
1975             [`VarDecl::visit_children_with`]. If you want to recurse, you need to call it \
1976             manually."]
1977    #[inline]
1978    fn visit_var_decl(&mut self, node: &VarDecl) {
1979        <VarDecl as VisitWith<Self>>::visit_children_with(node, self)
1980    }
1981    #[doc = "Visit a node of type `VarDeclKind`.\n\nBy default, this method calls \
1982             [`VarDeclKind::visit_children_with`]. If you want to recurse, you need to call it \
1983             manually."]
1984    #[inline]
1985    fn visit_var_decl_kind(&mut self, node: &VarDeclKind) {
1986        <VarDeclKind as VisitWith<Self>>::visit_children_with(node, self)
1987    }
1988    #[doc = "Visit a node of type `VarDeclOrExpr`.\n\nBy default, this method calls \
1989             [`VarDeclOrExpr::visit_children_with`]. If you want to recurse, you need to call it \
1990             manually."]
1991    #[inline]
1992    fn visit_var_decl_or_expr(&mut self, node: &VarDeclOrExpr) {
1993        <VarDeclOrExpr as VisitWith<Self>>::visit_children_with(node, self)
1994    }
1995    #[doc = "Visit a node of type `VarDeclarator`.\n\nBy default, this method calls \
1996             [`VarDeclarator::visit_children_with`]. If you want to recurse, you need to call it \
1997             manually."]
1998    #[inline]
1999    fn visit_var_declarator(&mut self, node: &VarDeclarator) {
2000        <VarDeclarator as VisitWith<Self>>::visit_children_with(node, self)
2001    }
2002    #[doc = "Visit a node of type `Vec < VarDeclarator >`.\n\nBy default, this method calls [`Vec \
2003             < VarDeclarator >::visit_children_with`]. If you want to recurse, you need to call it \
2004             manually."]
2005    #[inline]
2006    fn visit_var_declarators(&mut self, node: &[VarDeclarator]) {
2007        <[VarDeclarator] as VisitWith<Self>>::visit_children_with(node, self)
2008    }
2009    #[doc = "Visit a node of type `WhileStmt`.\n\nBy default, this method calls \
2010             [`WhileStmt::visit_children_with`]. If you want to recurse, you need to call it \
2011             manually."]
2012    #[inline]
2013    fn visit_while_stmt(&mut self, node: &WhileStmt) {
2014        <WhileStmt as VisitWith<Self>>::visit_children_with(node, self)
2015    }
2016    #[doc = "Visit a node of type `WithStmt`.\n\nBy default, this method calls \
2017             [`WithStmt::visit_children_with`]. If you want to recurse, you need to call it \
2018             manually."]
2019    #[inline]
2020    fn visit_with_stmt(&mut self, node: &WithStmt) {
2021        <WithStmt as VisitWith<Self>>::visit_children_with(node, self)
2022    }
2023    #[doc = "Visit a node of type `YieldExpr`.\n\nBy default, this method calls \
2024             [`YieldExpr::visit_children_with`]. If you want to recurse, you need to call it \
2025             manually."]
2026    #[inline]
2027    fn visit_yield_expr(&mut self, node: &YieldExpr) {
2028        <YieldExpr as VisitWith<Self>>::visit_children_with(node, self)
2029    }
2030}
2031impl<V> Visit for &mut V
2032where
2033    V: ?Sized + Visit,
2034{
2035    #[inline]
2036    fn visit_accessibility(&mut self, node: &Accessibility) {
2037        <V as Visit>::visit_accessibility(&mut **self, node)
2038    }
2039
2040    #[inline]
2041    fn visit_array_lit(&mut self, node: &ArrayLit) {
2042        <V as Visit>::visit_array_lit(&mut **self, node)
2043    }
2044
2045    #[inline]
2046    fn visit_array_pat(&mut self, node: &ArrayPat) {
2047        <V as Visit>::visit_array_pat(&mut **self, node)
2048    }
2049
2050    #[inline]
2051    fn visit_arrow_expr(&mut self, node: &ArrowExpr) {
2052        <V as Visit>::visit_arrow_expr(&mut **self, node)
2053    }
2054
2055    #[inline]
2056    fn visit_assign_expr(&mut self, node: &AssignExpr) {
2057        <V as Visit>::visit_assign_expr(&mut **self, node)
2058    }
2059
2060    #[inline]
2061    fn visit_assign_op(&mut self, node: &AssignOp) {
2062        <V as Visit>::visit_assign_op(&mut **self, node)
2063    }
2064
2065    #[inline]
2066    fn visit_assign_pat(&mut self, node: &AssignPat) {
2067        <V as Visit>::visit_assign_pat(&mut **self, node)
2068    }
2069
2070    #[inline]
2071    fn visit_assign_pat_prop(&mut self, node: &AssignPatProp) {
2072        <V as Visit>::visit_assign_pat_prop(&mut **self, node)
2073    }
2074
2075    #[inline]
2076    fn visit_assign_prop(&mut self, node: &AssignProp) {
2077        <V as Visit>::visit_assign_prop(&mut **self, node)
2078    }
2079
2080    #[inline]
2081    fn visit_assign_target(&mut self, node: &AssignTarget) {
2082        <V as Visit>::visit_assign_target(&mut **self, node)
2083    }
2084
2085    #[inline]
2086    fn visit_assign_target_pat(&mut self, node: &AssignTargetPat) {
2087        <V as Visit>::visit_assign_target_pat(&mut **self, node)
2088    }
2089
2090    #[inline]
2091    fn visit_atom(&mut self, node: &swc_atoms::Atom) {
2092        <V as Visit>::visit_atom(&mut **self, node)
2093    }
2094
2095    #[inline]
2096    fn visit_auto_accessor(&mut self, node: &AutoAccessor) {
2097        <V as Visit>::visit_auto_accessor(&mut **self, node)
2098    }
2099
2100    #[inline]
2101    fn visit_await_expr(&mut self, node: &AwaitExpr) {
2102        <V as Visit>::visit_await_expr(&mut **self, node)
2103    }
2104
2105    #[inline]
2106    fn visit_big_int(&mut self, node: &BigInt) {
2107        <V as Visit>::visit_big_int(&mut **self, node)
2108    }
2109
2110    #[inline]
2111    fn visit_big_int_value(&mut self, node: &BigIntValue) {
2112        <V as Visit>::visit_big_int_value(&mut **self, node)
2113    }
2114
2115    #[inline]
2116    fn visit_bin_expr(&mut self, node: &BinExpr) {
2117        <V as Visit>::visit_bin_expr(&mut **self, node)
2118    }
2119
2120    #[inline]
2121    fn visit_binary_op(&mut self, node: &BinaryOp) {
2122        <V as Visit>::visit_binary_op(&mut **self, node)
2123    }
2124
2125    #[inline]
2126    fn visit_binding_ident(&mut self, node: &BindingIdent) {
2127        <V as Visit>::visit_binding_ident(&mut **self, node)
2128    }
2129
2130    #[inline]
2131    fn visit_block_stmt(&mut self, node: &BlockStmt) {
2132        <V as Visit>::visit_block_stmt(&mut **self, node)
2133    }
2134
2135    #[inline]
2136    fn visit_block_stmt_or_expr(&mut self, node: &BlockStmtOrExpr) {
2137        <V as Visit>::visit_block_stmt_or_expr(&mut **self, node)
2138    }
2139
2140    #[inline]
2141    fn visit_bool(&mut self, node: &Bool) {
2142        <V as Visit>::visit_bool(&mut **self, node)
2143    }
2144
2145    #[inline]
2146    fn visit_break_stmt(&mut self, node: &BreakStmt) {
2147        <V as Visit>::visit_break_stmt(&mut **self, node)
2148    }
2149
2150    #[inline]
2151    fn visit_call_expr(&mut self, node: &CallExpr) {
2152        <V as Visit>::visit_call_expr(&mut **self, node)
2153    }
2154
2155    #[inline]
2156    fn visit_callee(&mut self, node: &Callee) {
2157        <V as Visit>::visit_callee(&mut **self, node)
2158    }
2159
2160    #[inline]
2161    fn visit_catch_clause(&mut self, node: &CatchClause) {
2162        <V as Visit>::visit_catch_clause(&mut **self, node)
2163    }
2164
2165    #[inline]
2166    fn visit_class(&mut self, node: &Class) {
2167        <V as Visit>::visit_class(&mut **self, node)
2168    }
2169
2170    #[inline]
2171    fn visit_class_decl(&mut self, node: &ClassDecl) {
2172        <V as Visit>::visit_class_decl(&mut **self, node)
2173    }
2174
2175    #[inline]
2176    fn visit_class_expr(&mut self, node: &ClassExpr) {
2177        <V as Visit>::visit_class_expr(&mut **self, node)
2178    }
2179
2180    #[inline]
2181    fn visit_class_member(&mut self, node: &ClassMember) {
2182        <V as Visit>::visit_class_member(&mut **self, node)
2183    }
2184
2185    #[inline]
2186    fn visit_class_members(&mut self, node: &[ClassMember]) {
2187        <V as Visit>::visit_class_members(&mut **self, node)
2188    }
2189
2190    #[inline]
2191    fn visit_class_method(&mut self, node: &ClassMethod) {
2192        <V as Visit>::visit_class_method(&mut **self, node)
2193    }
2194
2195    #[inline]
2196    fn visit_class_prop(&mut self, node: &ClassProp) {
2197        <V as Visit>::visit_class_prop(&mut **self, node)
2198    }
2199
2200    #[inline]
2201    fn visit_computed_prop_name(&mut self, node: &ComputedPropName) {
2202        <V as Visit>::visit_computed_prop_name(&mut **self, node)
2203    }
2204
2205    #[inline]
2206    fn visit_cond_expr(&mut self, node: &CondExpr) {
2207        <V as Visit>::visit_cond_expr(&mut **self, node)
2208    }
2209
2210    #[inline]
2211    fn visit_constructor(&mut self, node: &Constructor) {
2212        <V as Visit>::visit_constructor(&mut **self, node)
2213    }
2214
2215    #[inline]
2216    fn visit_continue_stmt(&mut self, node: &ContinueStmt) {
2217        <V as Visit>::visit_continue_stmt(&mut **self, node)
2218    }
2219
2220    #[inline]
2221    fn visit_debugger_stmt(&mut self, node: &DebuggerStmt) {
2222        <V as Visit>::visit_debugger_stmt(&mut **self, node)
2223    }
2224
2225    #[inline]
2226    fn visit_decl(&mut self, node: &Decl) {
2227        <V as Visit>::visit_decl(&mut **self, node)
2228    }
2229
2230    #[inline]
2231    fn visit_decorator(&mut self, node: &Decorator) {
2232        <V as Visit>::visit_decorator(&mut **self, node)
2233    }
2234
2235    #[inline]
2236    fn visit_decorators(&mut self, node: &[Decorator]) {
2237        <V as Visit>::visit_decorators(&mut **self, node)
2238    }
2239
2240    #[inline]
2241    fn visit_default_decl(&mut self, node: &DefaultDecl) {
2242        <V as Visit>::visit_default_decl(&mut **self, node)
2243    }
2244
2245    #[inline]
2246    fn visit_do_while_stmt(&mut self, node: &DoWhileStmt) {
2247        <V as Visit>::visit_do_while_stmt(&mut **self, node)
2248    }
2249
2250    #[inline]
2251    fn visit_empty_stmt(&mut self, node: &EmptyStmt) {
2252        <V as Visit>::visit_empty_stmt(&mut **self, node)
2253    }
2254
2255    #[inline]
2256    fn visit_export_all(&mut self, node: &ExportAll) {
2257        <V as Visit>::visit_export_all(&mut **self, node)
2258    }
2259
2260    #[inline]
2261    fn visit_export_decl(&mut self, node: &ExportDecl) {
2262        <V as Visit>::visit_export_decl(&mut **self, node)
2263    }
2264
2265    #[inline]
2266    fn visit_export_default_decl(&mut self, node: &ExportDefaultDecl) {
2267        <V as Visit>::visit_export_default_decl(&mut **self, node)
2268    }
2269
2270    #[inline]
2271    fn visit_export_default_expr(&mut self, node: &ExportDefaultExpr) {
2272        <V as Visit>::visit_export_default_expr(&mut **self, node)
2273    }
2274
2275    #[inline]
2276    fn visit_export_default_specifier(&mut self, node: &ExportDefaultSpecifier) {
2277        <V as Visit>::visit_export_default_specifier(&mut **self, node)
2278    }
2279
2280    #[inline]
2281    fn visit_export_named_specifier(&mut self, node: &ExportNamedSpecifier) {
2282        <V as Visit>::visit_export_named_specifier(&mut **self, node)
2283    }
2284
2285    #[inline]
2286    fn visit_export_namespace_specifier(&mut self, node: &ExportNamespaceSpecifier) {
2287        <V as Visit>::visit_export_namespace_specifier(&mut **self, node)
2288    }
2289
2290    #[inline]
2291    fn visit_export_specifier(&mut self, node: &ExportSpecifier) {
2292        <V as Visit>::visit_export_specifier(&mut **self, node)
2293    }
2294
2295    #[inline]
2296    fn visit_export_specifiers(&mut self, node: &[ExportSpecifier]) {
2297        <V as Visit>::visit_export_specifiers(&mut **self, node)
2298    }
2299
2300    #[inline]
2301    fn visit_expr(&mut self, node: &Expr) {
2302        <V as Visit>::visit_expr(&mut **self, node)
2303    }
2304
2305    #[inline]
2306    fn visit_expr_or_spread(&mut self, node: &ExprOrSpread) {
2307        <V as Visit>::visit_expr_or_spread(&mut **self, node)
2308    }
2309
2310    #[inline]
2311    fn visit_expr_or_spreads(&mut self, node: &[ExprOrSpread]) {
2312        <V as Visit>::visit_expr_or_spreads(&mut **self, node)
2313    }
2314
2315    #[inline]
2316    fn visit_expr_stmt(&mut self, node: &ExprStmt) {
2317        <V as Visit>::visit_expr_stmt(&mut **self, node)
2318    }
2319
2320    #[inline]
2321    fn visit_exprs(&mut self, node: &[Box<Expr>]) {
2322        <V as Visit>::visit_exprs(&mut **self, node)
2323    }
2324
2325    #[inline]
2326    fn visit_fn_decl(&mut self, node: &FnDecl) {
2327        <V as Visit>::visit_fn_decl(&mut **self, node)
2328    }
2329
2330    #[inline]
2331    fn visit_fn_expr(&mut self, node: &FnExpr) {
2332        <V as Visit>::visit_fn_expr(&mut **self, node)
2333    }
2334
2335    #[inline]
2336    fn visit_for_head(&mut self, node: &ForHead) {
2337        <V as Visit>::visit_for_head(&mut **self, node)
2338    }
2339
2340    #[inline]
2341    fn visit_for_in_stmt(&mut self, node: &ForInStmt) {
2342        <V as Visit>::visit_for_in_stmt(&mut **self, node)
2343    }
2344
2345    #[inline]
2346    fn visit_for_of_stmt(&mut self, node: &ForOfStmt) {
2347        <V as Visit>::visit_for_of_stmt(&mut **self, node)
2348    }
2349
2350    #[inline]
2351    fn visit_for_stmt(&mut self, node: &ForStmt) {
2352        <V as Visit>::visit_for_stmt(&mut **self, node)
2353    }
2354
2355    #[inline]
2356    fn visit_function(&mut self, node: &Function) {
2357        <V as Visit>::visit_function(&mut **self, node)
2358    }
2359
2360    #[inline]
2361    fn visit_getter_prop(&mut self, node: &GetterProp) {
2362        <V as Visit>::visit_getter_prop(&mut **self, node)
2363    }
2364
2365    #[inline]
2366    fn visit_ident(&mut self, node: &Ident) {
2367        <V as Visit>::visit_ident(&mut **self, node)
2368    }
2369
2370    #[inline]
2371    fn visit_ident_name(&mut self, node: &IdentName) {
2372        <V as Visit>::visit_ident_name(&mut **self, node)
2373    }
2374
2375    #[inline]
2376    fn visit_if_stmt(&mut self, node: &IfStmt) {
2377        <V as Visit>::visit_if_stmt(&mut **self, node)
2378    }
2379
2380    #[inline]
2381    fn visit_import(&mut self, node: &Import) {
2382        <V as Visit>::visit_import(&mut **self, node)
2383    }
2384
2385    #[inline]
2386    fn visit_import_decl(&mut self, node: &ImportDecl) {
2387        <V as Visit>::visit_import_decl(&mut **self, node)
2388    }
2389
2390    #[inline]
2391    fn visit_import_default_specifier(&mut self, node: &ImportDefaultSpecifier) {
2392        <V as Visit>::visit_import_default_specifier(&mut **self, node)
2393    }
2394
2395    #[inline]
2396    fn visit_import_named_specifier(&mut self, node: &ImportNamedSpecifier) {
2397        <V as Visit>::visit_import_named_specifier(&mut **self, node)
2398    }
2399
2400    #[inline]
2401    fn visit_import_phase(&mut self, node: &ImportPhase) {
2402        <V as Visit>::visit_import_phase(&mut **self, node)
2403    }
2404
2405    #[inline]
2406    fn visit_import_specifier(&mut self, node: &ImportSpecifier) {
2407        <V as Visit>::visit_import_specifier(&mut **self, node)
2408    }
2409
2410    #[inline]
2411    fn visit_import_specifiers(&mut self, node: &[ImportSpecifier]) {
2412        <V as Visit>::visit_import_specifiers(&mut **self, node)
2413    }
2414
2415    #[inline]
2416    fn visit_import_star_as_specifier(&mut self, node: &ImportStarAsSpecifier) {
2417        <V as Visit>::visit_import_star_as_specifier(&mut **self, node)
2418    }
2419
2420    #[inline]
2421    fn visit_import_with(&mut self, node: &ImportWith) {
2422        <V as Visit>::visit_import_with(&mut **self, node)
2423    }
2424
2425    #[inline]
2426    fn visit_import_with_item(&mut self, node: &ImportWithItem) {
2427        <V as Visit>::visit_import_with_item(&mut **self, node)
2428    }
2429
2430    #[inline]
2431    fn visit_import_with_items(&mut self, node: &[ImportWithItem]) {
2432        <V as Visit>::visit_import_with_items(&mut **self, node)
2433    }
2434
2435    #[inline]
2436    fn visit_invalid(&mut self, node: &Invalid) {
2437        <V as Visit>::visit_invalid(&mut **self, node)
2438    }
2439
2440    #[inline]
2441    fn visit_jsx_attr(&mut self, node: &JSXAttr) {
2442        <V as Visit>::visit_jsx_attr(&mut **self, node)
2443    }
2444
2445    #[inline]
2446    fn visit_jsx_attr_name(&mut self, node: &JSXAttrName) {
2447        <V as Visit>::visit_jsx_attr_name(&mut **self, node)
2448    }
2449
2450    #[inline]
2451    fn visit_jsx_attr_or_spread(&mut self, node: &JSXAttrOrSpread) {
2452        <V as Visit>::visit_jsx_attr_or_spread(&mut **self, node)
2453    }
2454
2455    #[inline]
2456    fn visit_jsx_attr_or_spreads(&mut self, node: &[JSXAttrOrSpread]) {
2457        <V as Visit>::visit_jsx_attr_or_spreads(&mut **self, node)
2458    }
2459
2460    #[inline]
2461    fn visit_jsx_attr_value(&mut self, node: &JSXAttrValue) {
2462        <V as Visit>::visit_jsx_attr_value(&mut **self, node)
2463    }
2464
2465    #[inline]
2466    fn visit_jsx_closing_element(&mut self, node: &JSXClosingElement) {
2467        <V as Visit>::visit_jsx_closing_element(&mut **self, node)
2468    }
2469
2470    #[inline]
2471    fn visit_jsx_closing_fragment(&mut self, node: &JSXClosingFragment) {
2472        <V as Visit>::visit_jsx_closing_fragment(&mut **self, node)
2473    }
2474
2475    #[inline]
2476    fn visit_jsx_element(&mut self, node: &JSXElement) {
2477        <V as Visit>::visit_jsx_element(&mut **self, node)
2478    }
2479
2480    #[inline]
2481    fn visit_jsx_element_child(&mut self, node: &JSXElementChild) {
2482        <V as Visit>::visit_jsx_element_child(&mut **self, node)
2483    }
2484
2485    #[inline]
2486    fn visit_jsx_element_childs(&mut self, node: &[JSXElementChild]) {
2487        <V as Visit>::visit_jsx_element_childs(&mut **self, node)
2488    }
2489
2490    #[inline]
2491    fn visit_jsx_element_name(&mut self, node: &JSXElementName) {
2492        <V as Visit>::visit_jsx_element_name(&mut **self, node)
2493    }
2494
2495    #[inline]
2496    fn visit_jsx_empty_expr(&mut self, node: &JSXEmptyExpr) {
2497        <V as Visit>::visit_jsx_empty_expr(&mut **self, node)
2498    }
2499
2500    #[inline]
2501    fn visit_jsx_expr(&mut self, node: &JSXExpr) {
2502        <V as Visit>::visit_jsx_expr(&mut **self, node)
2503    }
2504
2505    #[inline]
2506    fn visit_jsx_expr_container(&mut self, node: &JSXExprContainer) {
2507        <V as Visit>::visit_jsx_expr_container(&mut **self, node)
2508    }
2509
2510    #[inline]
2511    fn visit_jsx_fragment(&mut self, node: &JSXFragment) {
2512        <V as Visit>::visit_jsx_fragment(&mut **self, node)
2513    }
2514
2515    #[inline]
2516    fn visit_jsx_member_expr(&mut self, node: &JSXMemberExpr) {
2517        <V as Visit>::visit_jsx_member_expr(&mut **self, node)
2518    }
2519
2520    #[inline]
2521    fn visit_jsx_namespaced_name(&mut self, node: &JSXNamespacedName) {
2522        <V as Visit>::visit_jsx_namespaced_name(&mut **self, node)
2523    }
2524
2525    #[inline]
2526    fn visit_jsx_object(&mut self, node: &JSXObject) {
2527        <V as Visit>::visit_jsx_object(&mut **self, node)
2528    }
2529
2530    #[inline]
2531    fn visit_jsx_opening_element(&mut self, node: &JSXOpeningElement) {
2532        <V as Visit>::visit_jsx_opening_element(&mut **self, node)
2533    }
2534
2535    #[inline]
2536    fn visit_jsx_opening_fragment(&mut self, node: &JSXOpeningFragment) {
2537        <V as Visit>::visit_jsx_opening_fragment(&mut **self, node)
2538    }
2539
2540    #[inline]
2541    fn visit_jsx_spread_child(&mut self, node: &JSXSpreadChild) {
2542        <V as Visit>::visit_jsx_spread_child(&mut **self, node)
2543    }
2544
2545    #[inline]
2546    fn visit_jsx_text(&mut self, node: &JSXText) {
2547        <V as Visit>::visit_jsx_text(&mut **self, node)
2548    }
2549
2550    #[inline]
2551    fn visit_key(&mut self, node: &Key) {
2552        <V as Visit>::visit_key(&mut **self, node)
2553    }
2554
2555    #[inline]
2556    fn visit_key_value_pat_prop(&mut self, node: &KeyValuePatProp) {
2557        <V as Visit>::visit_key_value_pat_prop(&mut **self, node)
2558    }
2559
2560    #[inline]
2561    fn visit_key_value_prop(&mut self, node: &KeyValueProp) {
2562        <V as Visit>::visit_key_value_prop(&mut **self, node)
2563    }
2564
2565    #[inline]
2566    fn visit_labeled_stmt(&mut self, node: &LabeledStmt) {
2567        <V as Visit>::visit_labeled_stmt(&mut **self, node)
2568    }
2569
2570    #[inline]
2571    fn visit_lit(&mut self, node: &Lit) {
2572        <V as Visit>::visit_lit(&mut **self, node)
2573    }
2574
2575    #[inline]
2576    fn visit_member_expr(&mut self, node: &MemberExpr) {
2577        <V as Visit>::visit_member_expr(&mut **self, node)
2578    }
2579
2580    #[inline]
2581    fn visit_member_prop(&mut self, node: &MemberProp) {
2582        <V as Visit>::visit_member_prop(&mut **self, node)
2583    }
2584
2585    #[inline]
2586    fn visit_meta_prop_expr(&mut self, node: &MetaPropExpr) {
2587        <V as Visit>::visit_meta_prop_expr(&mut **self, node)
2588    }
2589
2590    #[inline]
2591    fn visit_meta_prop_kind(&mut self, node: &MetaPropKind) {
2592        <V as Visit>::visit_meta_prop_kind(&mut **self, node)
2593    }
2594
2595    #[inline]
2596    fn visit_method_kind(&mut self, node: &MethodKind) {
2597        <V as Visit>::visit_method_kind(&mut **self, node)
2598    }
2599
2600    #[inline]
2601    fn visit_method_prop(&mut self, node: &MethodProp) {
2602        <V as Visit>::visit_method_prop(&mut **self, node)
2603    }
2604
2605    #[inline]
2606    fn visit_module(&mut self, node: &Module) {
2607        <V as Visit>::visit_module(&mut **self, node)
2608    }
2609
2610    #[inline]
2611    fn visit_module_decl(&mut self, node: &ModuleDecl) {
2612        <V as Visit>::visit_module_decl(&mut **self, node)
2613    }
2614
2615    #[inline]
2616    fn visit_module_export_name(&mut self, node: &ModuleExportName) {
2617        <V as Visit>::visit_module_export_name(&mut **self, node)
2618    }
2619
2620    #[inline]
2621    fn visit_module_item(&mut self, node: &ModuleItem) {
2622        <V as Visit>::visit_module_item(&mut **self, node)
2623    }
2624
2625    #[inline]
2626    fn visit_module_items(&mut self, node: &[ModuleItem]) {
2627        <V as Visit>::visit_module_items(&mut **self, node)
2628    }
2629
2630    #[inline]
2631    fn visit_named_export(&mut self, node: &NamedExport) {
2632        <V as Visit>::visit_named_export(&mut **self, node)
2633    }
2634
2635    #[inline]
2636    fn visit_new_expr(&mut self, node: &NewExpr) {
2637        <V as Visit>::visit_new_expr(&mut **self, node)
2638    }
2639
2640    #[inline]
2641    fn visit_null(&mut self, node: &Null) {
2642        <V as Visit>::visit_null(&mut **self, node)
2643    }
2644
2645    #[inline]
2646    fn visit_number(&mut self, node: &Number) {
2647        <V as Visit>::visit_number(&mut **self, node)
2648    }
2649
2650    #[inline]
2651    fn visit_object_lit(&mut self, node: &ObjectLit) {
2652        <V as Visit>::visit_object_lit(&mut **self, node)
2653    }
2654
2655    #[inline]
2656    fn visit_object_pat(&mut self, node: &ObjectPat) {
2657        <V as Visit>::visit_object_pat(&mut **self, node)
2658    }
2659
2660    #[inline]
2661    fn visit_object_pat_prop(&mut self, node: &ObjectPatProp) {
2662        <V as Visit>::visit_object_pat_prop(&mut **self, node)
2663    }
2664
2665    #[inline]
2666    fn visit_object_pat_props(&mut self, node: &[ObjectPatProp]) {
2667        <V as Visit>::visit_object_pat_props(&mut **self, node)
2668    }
2669
2670    #[inline]
2671    fn visit_opt_accessibility(&mut self, node: &Option<Accessibility>) {
2672        <V as Visit>::visit_opt_accessibility(&mut **self, node)
2673    }
2674
2675    #[inline]
2676    fn visit_opt_atom(&mut self, node: &Option<swc_atoms::Atom>) {
2677        <V as Visit>::visit_opt_atom(&mut **self, node)
2678    }
2679
2680    #[inline]
2681    fn visit_opt_block_stmt(&mut self, node: &Option<BlockStmt>) {
2682        <V as Visit>::visit_opt_block_stmt(&mut **self, node)
2683    }
2684
2685    #[inline]
2686    fn visit_opt_call(&mut self, node: &OptCall) {
2687        <V as Visit>::visit_opt_call(&mut **self, node)
2688    }
2689
2690    #[inline]
2691    fn visit_opt_catch_clause(&mut self, node: &Option<CatchClause>) {
2692        <V as Visit>::visit_opt_catch_clause(&mut **self, node)
2693    }
2694
2695    #[inline]
2696    fn visit_opt_chain_base(&mut self, node: &OptChainBase) {
2697        <V as Visit>::visit_opt_chain_base(&mut **self, node)
2698    }
2699
2700    #[inline]
2701    fn visit_opt_chain_expr(&mut self, node: &OptChainExpr) {
2702        <V as Visit>::visit_opt_chain_expr(&mut **self, node)
2703    }
2704
2705    #[inline]
2706    fn visit_opt_expr(&mut self, node: &Option<Box<Expr>>) {
2707        <V as Visit>::visit_opt_expr(&mut **self, node)
2708    }
2709
2710    #[inline]
2711    fn visit_opt_expr_or_spread(&mut self, node: &Option<ExprOrSpread>) {
2712        <V as Visit>::visit_opt_expr_or_spread(&mut **self, node)
2713    }
2714
2715    #[inline]
2716    fn visit_opt_expr_or_spreads(&mut self, node: &Option<Vec<ExprOrSpread>>) {
2717        <V as Visit>::visit_opt_expr_or_spreads(&mut **self, node)
2718    }
2719
2720    #[inline]
2721    fn visit_opt_ident(&mut self, node: &Option<Ident>) {
2722        <V as Visit>::visit_opt_ident(&mut **self, node)
2723    }
2724
2725    #[inline]
2726    fn visit_opt_jsx_attr_value(&mut self, node: &Option<JSXAttrValue>) {
2727        <V as Visit>::visit_opt_jsx_attr_value(&mut **self, node)
2728    }
2729
2730    #[inline]
2731    fn visit_opt_jsx_closing_element(&mut self, node: &Option<JSXClosingElement>) {
2732        <V as Visit>::visit_opt_jsx_closing_element(&mut **self, node)
2733    }
2734
2735    #[inline]
2736    fn visit_opt_module_export_name(&mut self, node: &Option<ModuleExportName>) {
2737        <V as Visit>::visit_opt_module_export_name(&mut **self, node)
2738    }
2739
2740    #[inline]
2741    fn visit_opt_object_lit(&mut self, node: &Option<Box<ObjectLit>>) {
2742        <V as Visit>::visit_opt_object_lit(&mut **self, node)
2743    }
2744
2745    #[inline]
2746    fn visit_opt_pat(&mut self, node: &Option<Pat>) {
2747        <V as Visit>::visit_opt_pat(&mut **self, node)
2748    }
2749
2750    #[inline]
2751    fn visit_opt_span(&mut self, node: &Option<swc_common::Span>) {
2752        <V as Visit>::visit_opt_span(&mut **self, node)
2753    }
2754
2755    #[inline]
2756    fn visit_opt_stmt(&mut self, node: &Option<Box<Stmt>>) {
2757        <V as Visit>::visit_opt_stmt(&mut **self, node)
2758    }
2759
2760    #[inline]
2761    fn visit_opt_str(&mut self, node: &Option<Box<Str>>) {
2762        <V as Visit>::visit_opt_str(&mut **self, node)
2763    }
2764
2765    #[inline]
2766    fn visit_opt_true_plus_minus(&mut self, node: &Option<TruePlusMinus>) {
2767        <V as Visit>::visit_opt_true_plus_minus(&mut **self, node)
2768    }
2769
2770    #[inline]
2771    fn visit_opt_ts_entity_name(&mut self, node: &Option<TsEntityName>) {
2772        <V as Visit>::visit_opt_ts_entity_name(&mut **self, node)
2773    }
2774
2775    #[inline]
2776    fn visit_opt_ts_import_call_options(&mut self, node: &Option<TsImportCallOptions>) {
2777        <V as Visit>::visit_opt_ts_import_call_options(&mut **self, node)
2778    }
2779
2780    #[inline]
2781    fn visit_opt_ts_namespace_body(&mut self, node: &Option<TsNamespaceBody>) {
2782        <V as Visit>::visit_opt_ts_namespace_body(&mut **self, node)
2783    }
2784
2785    #[inline]
2786    fn visit_opt_ts_type(&mut self, node: &Option<Box<TsType>>) {
2787        <V as Visit>::visit_opt_ts_type(&mut **self, node)
2788    }
2789
2790    #[inline]
2791    fn visit_opt_ts_type_ann(&mut self, node: &Option<Box<TsTypeAnn>>) {
2792        <V as Visit>::visit_opt_ts_type_ann(&mut **self, node)
2793    }
2794
2795    #[inline]
2796    fn visit_opt_ts_type_param_decl(&mut self, node: &Option<Box<TsTypeParamDecl>>) {
2797        <V as Visit>::visit_opt_ts_type_param_decl(&mut **self, node)
2798    }
2799
2800    #[inline]
2801    fn visit_opt_ts_type_param_instantiation(
2802        &mut self,
2803        node: &Option<Box<TsTypeParamInstantiation>>,
2804    ) {
2805        <V as Visit>::visit_opt_ts_type_param_instantiation(&mut **self, node)
2806    }
2807
2808    #[inline]
2809    fn visit_opt_var_decl_or_expr(&mut self, node: &Option<VarDeclOrExpr>) {
2810        <V as Visit>::visit_opt_var_decl_or_expr(&mut **self, node)
2811    }
2812
2813    #[inline]
2814    fn visit_opt_vec_expr_or_spreads(&mut self, node: &[Option<ExprOrSpread>]) {
2815        <V as Visit>::visit_opt_vec_expr_or_spreads(&mut **self, node)
2816    }
2817
2818    #[inline]
2819    fn visit_opt_vec_pats(&mut self, node: &[Option<Pat>]) {
2820        <V as Visit>::visit_opt_vec_pats(&mut **self, node)
2821    }
2822
2823    #[inline]
2824    fn visit_param(&mut self, node: &Param) {
2825        <V as Visit>::visit_param(&mut **self, node)
2826    }
2827
2828    #[inline]
2829    fn visit_param_or_ts_param_prop(&mut self, node: &ParamOrTsParamProp) {
2830        <V as Visit>::visit_param_or_ts_param_prop(&mut **self, node)
2831    }
2832
2833    #[inline]
2834    fn visit_param_or_ts_param_props(&mut self, node: &[ParamOrTsParamProp]) {
2835        <V as Visit>::visit_param_or_ts_param_props(&mut **self, node)
2836    }
2837
2838    #[inline]
2839    fn visit_params(&mut self, node: &[Param]) {
2840        <V as Visit>::visit_params(&mut **self, node)
2841    }
2842
2843    #[inline]
2844    fn visit_paren_expr(&mut self, node: &ParenExpr) {
2845        <V as Visit>::visit_paren_expr(&mut **self, node)
2846    }
2847
2848    #[inline]
2849    fn visit_pat(&mut self, node: &Pat) {
2850        <V as Visit>::visit_pat(&mut **self, node)
2851    }
2852
2853    #[inline]
2854    fn visit_pats(&mut self, node: &[Pat]) {
2855        <V as Visit>::visit_pats(&mut **self, node)
2856    }
2857
2858    #[inline]
2859    fn visit_private_method(&mut self, node: &PrivateMethod) {
2860        <V as Visit>::visit_private_method(&mut **self, node)
2861    }
2862
2863    #[inline]
2864    fn visit_private_name(&mut self, node: &PrivateName) {
2865        <V as Visit>::visit_private_name(&mut **self, node)
2866    }
2867
2868    #[inline]
2869    fn visit_private_prop(&mut self, node: &PrivateProp) {
2870        <V as Visit>::visit_private_prop(&mut **self, node)
2871    }
2872
2873    #[inline]
2874    fn visit_program(&mut self, node: &Program) {
2875        <V as Visit>::visit_program(&mut **self, node)
2876    }
2877
2878    #[inline]
2879    fn visit_prop(&mut self, node: &Prop) {
2880        <V as Visit>::visit_prop(&mut **self, node)
2881    }
2882
2883    #[inline]
2884    fn visit_prop_name(&mut self, node: &PropName) {
2885        <V as Visit>::visit_prop_name(&mut **self, node)
2886    }
2887
2888    #[inline]
2889    fn visit_prop_or_spread(&mut self, node: &PropOrSpread) {
2890        <V as Visit>::visit_prop_or_spread(&mut **self, node)
2891    }
2892
2893    #[inline]
2894    fn visit_prop_or_spreads(&mut self, node: &[PropOrSpread]) {
2895        <V as Visit>::visit_prop_or_spreads(&mut **self, node)
2896    }
2897
2898    #[inline]
2899    fn visit_regex(&mut self, node: &Regex) {
2900        <V as Visit>::visit_regex(&mut **self, node)
2901    }
2902
2903    #[inline]
2904    fn visit_rest_pat(&mut self, node: &RestPat) {
2905        <V as Visit>::visit_rest_pat(&mut **self, node)
2906    }
2907
2908    #[inline]
2909    fn visit_return_stmt(&mut self, node: &ReturnStmt) {
2910        <V as Visit>::visit_return_stmt(&mut **self, node)
2911    }
2912
2913    #[inline]
2914    fn visit_script(&mut self, node: &Script) {
2915        <V as Visit>::visit_script(&mut **self, node)
2916    }
2917
2918    #[inline]
2919    fn visit_seq_expr(&mut self, node: &SeqExpr) {
2920        <V as Visit>::visit_seq_expr(&mut **self, node)
2921    }
2922
2923    #[inline]
2924    fn visit_setter_prop(&mut self, node: &SetterProp) {
2925        <V as Visit>::visit_setter_prop(&mut **self, node)
2926    }
2927
2928    #[inline]
2929    fn visit_simple_assign_target(&mut self, node: &SimpleAssignTarget) {
2930        <V as Visit>::visit_simple_assign_target(&mut **self, node)
2931    }
2932
2933    #[inline]
2934    fn visit_span(&mut self, node: &swc_common::Span) {
2935        <V as Visit>::visit_span(&mut **self, node)
2936    }
2937
2938    #[inline]
2939    fn visit_spread_element(&mut self, node: &SpreadElement) {
2940        <V as Visit>::visit_spread_element(&mut **self, node)
2941    }
2942
2943    #[inline]
2944    fn visit_static_block(&mut self, node: &StaticBlock) {
2945        <V as Visit>::visit_static_block(&mut **self, node)
2946    }
2947
2948    #[inline]
2949    fn visit_stmt(&mut self, node: &Stmt) {
2950        <V as Visit>::visit_stmt(&mut **self, node)
2951    }
2952
2953    #[inline]
2954    fn visit_stmts(&mut self, node: &[Stmt]) {
2955        <V as Visit>::visit_stmts(&mut **self, node)
2956    }
2957
2958    #[inline]
2959    fn visit_str(&mut self, node: &Str) {
2960        <V as Visit>::visit_str(&mut **self, node)
2961    }
2962
2963    #[inline]
2964    fn visit_super(&mut self, node: &Super) {
2965        <V as Visit>::visit_super(&mut **self, node)
2966    }
2967
2968    #[inline]
2969    fn visit_super_prop(&mut self, node: &SuperProp) {
2970        <V as Visit>::visit_super_prop(&mut **self, node)
2971    }
2972
2973    #[inline]
2974    fn visit_super_prop_expr(&mut self, node: &SuperPropExpr) {
2975        <V as Visit>::visit_super_prop_expr(&mut **self, node)
2976    }
2977
2978    #[inline]
2979    fn visit_switch_case(&mut self, node: &SwitchCase) {
2980        <V as Visit>::visit_switch_case(&mut **self, node)
2981    }
2982
2983    #[inline]
2984    fn visit_switch_cases(&mut self, node: &[SwitchCase]) {
2985        <V as Visit>::visit_switch_cases(&mut **self, node)
2986    }
2987
2988    #[inline]
2989    fn visit_switch_stmt(&mut self, node: &SwitchStmt) {
2990        <V as Visit>::visit_switch_stmt(&mut **self, node)
2991    }
2992
2993    #[inline]
2994    fn visit_syntax_context(&mut self, node: &swc_common::SyntaxContext) {
2995        <V as Visit>::visit_syntax_context(&mut **self, node)
2996    }
2997
2998    #[inline]
2999    fn visit_tagged_tpl(&mut self, node: &TaggedTpl) {
3000        <V as Visit>::visit_tagged_tpl(&mut **self, node)
3001    }
3002
3003    #[inline]
3004    fn visit_this_expr(&mut self, node: &ThisExpr) {
3005        <V as Visit>::visit_this_expr(&mut **self, node)
3006    }
3007
3008    #[inline]
3009    fn visit_throw_stmt(&mut self, node: &ThrowStmt) {
3010        <V as Visit>::visit_throw_stmt(&mut **self, node)
3011    }
3012
3013    #[inline]
3014    fn visit_tpl(&mut self, node: &Tpl) {
3015        <V as Visit>::visit_tpl(&mut **self, node)
3016    }
3017
3018    #[inline]
3019    fn visit_tpl_element(&mut self, node: &TplElement) {
3020        <V as Visit>::visit_tpl_element(&mut **self, node)
3021    }
3022
3023    #[inline]
3024    fn visit_tpl_elements(&mut self, node: &[TplElement]) {
3025        <V as Visit>::visit_tpl_elements(&mut **self, node)
3026    }
3027
3028    #[inline]
3029    fn visit_true_plus_minus(&mut self, node: &TruePlusMinus) {
3030        <V as Visit>::visit_true_plus_minus(&mut **self, node)
3031    }
3032
3033    #[inline]
3034    fn visit_try_stmt(&mut self, node: &TryStmt) {
3035        <V as Visit>::visit_try_stmt(&mut **self, node)
3036    }
3037
3038    #[inline]
3039    fn visit_ts_array_type(&mut self, node: &TsArrayType) {
3040        <V as Visit>::visit_ts_array_type(&mut **self, node)
3041    }
3042
3043    #[inline]
3044    fn visit_ts_as_expr(&mut self, node: &TsAsExpr) {
3045        <V as Visit>::visit_ts_as_expr(&mut **self, node)
3046    }
3047
3048    #[inline]
3049    fn visit_ts_call_signature_decl(&mut self, node: &TsCallSignatureDecl) {
3050        <V as Visit>::visit_ts_call_signature_decl(&mut **self, node)
3051    }
3052
3053    #[inline]
3054    fn visit_ts_conditional_type(&mut self, node: &TsConditionalType) {
3055        <V as Visit>::visit_ts_conditional_type(&mut **self, node)
3056    }
3057
3058    #[inline]
3059    fn visit_ts_const_assertion(&mut self, node: &TsConstAssertion) {
3060        <V as Visit>::visit_ts_const_assertion(&mut **self, node)
3061    }
3062
3063    #[inline]
3064    fn visit_ts_construct_signature_decl(&mut self, node: &TsConstructSignatureDecl) {
3065        <V as Visit>::visit_ts_construct_signature_decl(&mut **self, node)
3066    }
3067
3068    #[inline]
3069    fn visit_ts_constructor_type(&mut self, node: &TsConstructorType) {
3070        <V as Visit>::visit_ts_constructor_type(&mut **self, node)
3071    }
3072
3073    #[inline]
3074    fn visit_ts_entity_name(&mut self, node: &TsEntityName) {
3075        <V as Visit>::visit_ts_entity_name(&mut **self, node)
3076    }
3077
3078    #[inline]
3079    fn visit_ts_enum_decl(&mut self, node: &TsEnumDecl) {
3080        <V as Visit>::visit_ts_enum_decl(&mut **self, node)
3081    }
3082
3083    #[inline]
3084    fn visit_ts_enum_member(&mut self, node: &TsEnumMember) {
3085        <V as Visit>::visit_ts_enum_member(&mut **self, node)
3086    }
3087
3088    #[inline]
3089    fn visit_ts_enum_member_id(&mut self, node: &TsEnumMemberId) {
3090        <V as Visit>::visit_ts_enum_member_id(&mut **self, node)
3091    }
3092
3093    #[inline]
3094    fn visit_ts_enum_members(&mut self, node: &[TsEnumMember]) {
3095        <V as Visit>::visit_ts_enum_members(&mut **self, node)
3096    }
3097
3098    #[inline]
3099    fn visit_ts_export_assignment(&mut self, node: &TsExportAssignment) {
3100        <V as Visit>::visit_ts_export_assignment(&mut **self, node)
3101    }
3102
3103    #[inline]
3104    fn visit_ts_expr_with_type_args(&mut self, node: &TsExprWithTypeArgs) {
3105        <V as Visit>::visit_ts_expr_with_type_args(&mut **self, node)
3106    }
3107
3108    #[inline]
3109    fn visit_ts_expr_with_type_argss(&mut self, node: &[TsExprWithTypeArgs]) {
3110        <V as Visit>::visit_ts_expr_with_type_argss(&mut **self, node)
3111    }
3112
3113    #[inline]
3114    fn visit_ts_external_module_ref(&mut self, node: &TsExternalModuleRef) {
3115        <V as Visit>::visit_ts_external_module_ref(&mut **self, node)
3116    }
3117
3118    #[inline]
3119    fn visit_ts_fn_or_constructor_type(&mut self, node: &TsFnOrConstructorType) {
3120        <V as Visit>::visit_ts_fn_or_constructor_type(&mut **self, node)
3121    }
3122
3123    #[inline]
3124    fn visit_ts_fn_param(&mut self, node: &TsFnParam) {
3125        <V as Visit>::visit_ts_fn_param(&mut **self, node)
3126    }
3127
3128    #[inline]
3129    fn visit_ts_fn_params(&mut self, node: &[TsFnParam]) {
3130        <V as Visit>::visit_ts_fn_params(&mut **self, node)
3131    }
3132
3133    #[inline]
3134    fn visit_ts_fn_type(&mut self, node: &TsFnType) {
3135        <V as Visit>::visit_ts_fn_type(&mut **self, node)
3136    }
3137
3138    #[inline]
3139    fn visit_ts_getter_signature(&mut self, node: &TsGetterSignature) {
3140        <V as Visit>::visit_ts_getter_signature(&mut **self, node)
3141    }
3142
3143    #[inline]
3144    fn visit_ts_import_call_options(&mut self, node: &TsImportCallOptions) {
3145        <V as Visit>::visit_ts_import_call_options(&mut **self, node)
3146    }
3147
3148    #[inline]
3149    fn visit_ts_import_equals_decl(&mut self, node: &TsImportEqualsDecl) {
3150        <V as Visit>::visit_ts_import_equals_decl(&mut **self, node)
3151    }
3152
3153    #[inline]
3154    fn visit_ts_import_type(&mut self, node: &TsImportType) {
3155        <V as Visit>::visit_ts_import_type(&mut **self, node)
3156    }
3157
3158    #[inline]
3159    fn visit_ts_index_signature(&mut self, node: &TsIndexSignature) {
3160        <V as Visit>::visit_ts_index_signature(&mut **self, node)
3161    }
3162
3163    #[inline]
3164    fn visit_ts_indexed_access_type(&mut self, node: &TsIndexedAccessType) {
3165        <V as Visit>::visit_ts_indexed_access_type(&mut **self, node)
3166    }
3167
3168    #[inline]
3169    fn visit_ts_infer_type(&mut self, node: &TsInferType) {
3170        <V as Visit>::visit_ts_infer_type(&mut **self, node)
3171    }
3172
3173    #[inline]
3174    fn visit_ts_instantiation(&mut self, node: &TsInstantiation) {
3175        <V as Visit>::visit_ts_instantiation(&mut **self, node)
3176    }
3177
3178    #[inline]
3179    fn visit_ts_interface_body(&mut self, node: &TsInterfaceBody) {
3180        <V as Visit>::visit_ts_interface_body(&mut **self, node)
3181    }
3182
3183    #[inline]
3184    fn visit_ts_interface_decl(&mut self, node: &TsInterfaceDecl) {
3185        <V as Visit>::visit_ts_interface_decl(&mut **self, node)
3186    }
3187
3188    #[inline]
3189    fn visit_ts_intersection_type(&mut self, node: &TsIntersectionType) {
3190        <V as Visit>::visit_ts_intersection_type(&mut **self, node)
3191    }
3192
3193    #[inline]
3194    fn visit_ts_keyword_type(&mut self, node: &TsKeywordType) {
3195        <V as Visit>::visit_ts_keyword_type(&mut **self, node)
3196    }
3197
3198    #[inline]
3199    fn visit_ts_keyword_type_kind(&mut self, node: &TsKeywordTypeKind) {
3200        <V as Visit>::visit_ts_keyword_type_kind(&mut **self, node)
3201    }
3202
3203    #[inline]
3204    fn visit_ts_lit(&mut self, node: &TsLit) {
3205        <V as Visit>::visit_ts_lit(&mut **self, node)
3206    }
3207
3208    #[inline]
3209    fn visit_ts_lit_type(&mut self, node: &TsLitType) {
3210        <V as Visit>::visit_ts_lit_type(&mut **self, node)
3211    }
3212
3213    #[inline]
3214    fn visit_ts_mapped_type(&mut self, node: &TsMappedType) {
3215        <V as Visit>::visit_ts_mapped_type(&mut **self, node)
3216    }
3217
3218    #[inline]
3219    fn visit_ts_method_signature(&mut self, node: &TsMethodSignature) {
3220        <V as Visit>::visit_ts_method_signature(&mut **self, node)
3221    }
3222
3223    #[inline]
3224    fn visit_ts_module_block(&mut self, node: &TsModuleBlock) {
3225        <V as Visit>::visit_ts_module_block(&mut **self, node)
3226    }
3227
3228    #[inline]
3229    fn visit_ts_module_decl(&mut self, node: &TsModuleDecl) {
3230        <V as Visit>::visit_ts_module_decl(&mut **self, node)
3231    }
3232
3233    #[inline]
3234    fn visit_ts_module_name(&mut self, node: &TsModuleName) {
3235        <V as Visit>::visit_ts_module_name(&mut **self, node)
3236    }
3237
3238    #[inline]
3239    fn visit_ts_module_ref(&mut self, node: &TsModuleRef) {
3240        <V as Visit>::visit_ts_module_ref(&mut **self, node)
3241    }
3242
3243    #[inline]
3244    fn visit_ts_namespace_body(&mut self, node: &TsNamespaceBody) {
3245        <V as Visit>::visit_ts_namespace_body(&mut **self, node)
3246    }
3247
3248    #[inline]
3249    fn visit_ts_namespace_decl(&mut self, node: &TsNamespaceDecl) {
3250        <V as Visit>::visit_ts_namespace_decl(&mut **self, node)
3251    }
3252
3253    #[inline]
3254    fn visit_ts_namespace_export_decl(&mut self, node: &TsNamespaceExportDecl) {
3255        <V as Visit>::visit_ts_namespace_export_decl(&mut **self, node)
3256    }
3257
3258    #[inline]
3259    fn visit_ts_non_null_expr(&mut self, node: &TsNonNullExpr) {
3260        <V as Visit>::visit_ts_non_null_expr(&mut **self, node)
3261    }
3262
3263    #[inline]
3264    fn visit_ts_optional_type(&mut self, node: &TsOptionalType) {
3265        <V as Visit>::visit_ts_optional_type(&mut **self, node)
3266    }
3267
3268    #[inline]
3269    fn visit_ts_param_prop(&mut self, node: &TsParamProp) {
3270        <V as Visit>::visit_ts_param_prop(&mut **self, node)
3271    }
3272
3273    #[inline]
3274    fn visit_ts_param_prop_param(&mut self, node: &TsParamPropParam) {
3275        <V as Visit>::visit_ts_param_prop_param(&mut **self, node)
3276    }
3277
3278    #[inline]
3279    fn visit_ts_parenthesized_type(&mut self, node: &TsParenthesizedType) {
3280        <V as Visit>::visit_ts_parenthesized_type(&mut **self, node)
3281    }
3282
3283    #[inline]
3284    fn visit_ts_property_signature(&mut self, node: &TsPropertySignature) {
3285        <V as Visit>::visit_ts_property_signature(&mut **self, node)
3286    }
3287
3288    #[inline]
3289    fn visit_ts_qualified_name(&mut self, node: &TsQualifiedName) {
3290        <V as Visit>::visit_ts_qualified_name(&mut **self, node)
3291    }
3292
3293    #[inline]
3294    fn visit_ts_rest_type(&mut self, node: &TsRestType) {
3295        <V as Visit>::visit_ts_rest_type(&mut **self, node)
3296    }
3297
3298    #[inline]
3299    fn visit_ts_satisfies_expr(&mut self, node: &TsSatisfiesExpr) {
3300        <V as Visit>::visit_ts_satisfies_expr(&mut **self, node)
3301    }
3302
3303    #[inline]
3304    fn visit_ts_setter_signature(&mut self, node: &TsSetterSignature) {
3305        <V as Visit>::visit_ts_setter_signature(&mut **self, node)
3306    }
3307
3308    #[inline]
3309    fn visit_ts_this_type(&mut self, node: &TsThisType) {
3310        <V as Visit>::visit_ts_this_type(&mut **self, node)
3311    }
3312
3313    #[inline]
3314    fn visit_ts_this_type_or_ident(&mut self, node: &TsThisTypeOrIdent) {
3315        <V as Visit>::visit_ts_this_type_or_ident(&mut **self, node)
3316    }
3317
3318    #[inline]
3319    fn visit_ts_tpl_lit_type(&mut self, node: &TsTplLitType) {
3320        <V as Visit>::visit_ts_tpl_lit_type(&mut **self, node)
3321    }
3322
3323    #[inline]
3324    fn visit_ts_tuple_element(&mut self, node: &TsTupleElement) {
3325        <V as Visit>::visit_ts_tuple_element(&mut **self, node)
3326    }
3327
3328    #[inline]
3329    fn visit_ts_tuple_elements(&mut self, node: &[TsTupleElement]) {
3330        <V as Visit>::visit_ts_tuple_elements(&mut **self, node)
3331    }
3332
3333    #[inline]
3334    fn visit_ts_tuple_type(&mut self, node: &TsTupleType) {
3335        <V as Visit>::visit_ts_tuple_type(&mut **self, node)
3336    }
3337
3338    #[inline]
3339    fn visit_ts_type(&mut self, node: &TsType) {
3340        <V as Visit>::visit_ts_type(&mut **self, node)
3341    }
3342
3343    #[inline]
3344    fn visit_ts_type_alias_decl(&mut self, node: &TsTypeAliasDecl) {
3345        <V as Visit>::visit_ts_type_alias_decl(&mut **self, node)
3346    }
3347
3348    #[inline]
3349    fn visit_ts_type_ann(&mut self, node: &TsTypeAnn) {
3350        <V as Visit>::visit_ts_type_ann(&mut **self, node)
3351    }
3352
3353    #[inline]
3354    fn visit_ts_type_assertion(&mut self, node: &TsTypeAssertion) {
3355        <V as Visit>::visit_ts_type_assertion(&mut **self, node)
3356    }
3357
3358    #[inline]
3359    fn visit_ts_type_element(&mut self, node: &TsTypeElement) {
3360        <V as Visit>::visit_ts_type_element(&mut **self, node)
3361    }
3362
3363    #[inline]
3364    fn visit_ts_type_elements(&mut self, node: &[TsTypeElement]) {
3365        <V as Visit>::visit_ts_type_elements(&mut **self, node)
3366    }
3367
3368    #[inline]
3369    fn visit_ts_type_lit(&mut self, node: &TsTypeLit) {
3370        <V as Visit>::visit_ts_type_lit(&mut **self, node)
3371    }
3372
3373    #[inline]
3374    fn visit_ts_type_operator(&mut self, node: &TsTypeOperator) {
3375        <V as Visit>::visit_ts_type_operator(&mut **self, node)
3376    }
3377
3378    #[inline]
3379    fn visit_ts_type_operator_op(&mut self, node: &TsTypeOperatorOp) {
3380        <V as Visit>::visit_ts_type_operator_op(&mut **self, node)
3381    }
3382
3383    #[inline]
3384    fn visit_ts_type_param(&mut self, node: &TsTypeParam) {
3385        <V as Visit>::visit_ts_type_param(&mut **self, node)
3386    }
3387
3388    #[inline]
3389    fn visit_ts_type_param_decl(&mut self, node: &TsTypeParamDecl) {
3390        <V as Visit>::visit_ts_type_param_decl(&mut **self, node)
3391    }
3392
3393    #[inline]
3394    fn visit_ts_type_param_instantiation(&mut self, node: &TsTypeParamInstantiation) {
3395        <V as Visit>::visit_ts_type_param_instantiation(&mut **self, node)
3396    }
3397
3398    #[inline]
3399    fn visit_ts_type_params(&mut self, node: &[TsTypeParam]) {
3400        <V as Visit>::visit_ts_type_params(&mut **self, node)
3401    }
3402
3403    #[inline]
3404    fn visit_ts_type_predicate(&mut self, node: &TsTypePredicate) {
3405        <V as Visit>::visit_ts_type_predicate(&mut **self, node)
3406    }
3407
3408    #[inline]
3409    fn visit_ts_type_query(&mut self, node: &TsTypeQuery) {
3410        <V as Visit>::visit_ts_type_query(&mut **self, node)
3411    }
3412
3413    #[inline]
3414    fn visit_ts_type_query_expr(&mut self, node: &TsTypeQueryExpr) {
3415        <V as Visit>::visit_ts_type_query_expr(&mut **self, node)
3416    }
3417
3418    #[inline]
3419    fn visit_ts_type_ref(&mut self, node: &TsTypeRef) {
3420        <V as Visit>::visit_ts_type_ref(&mut **self, node)
3421    }
3422
3423    #[inline]
3424    fn visit_ts_types(&mut self, node: &[Box<TsType>]) {
3425        <V as Visit>::visit_ts_types(&mut **self, node)
3426    }
3427
3428    #[inline]
3429    fn visit_ts_union_or_intersection_type(&mut self, node: &TsUnionOrIntersectionType) {
3430        <V as Visit>::visit_ts_union_or_intersection_type(&mut **self, node)
3431    }
3432
3433    #[inline]
3434    fn visit_ts_union_type(&mut self, node: &TsUnionType) {
3435        <V as Visit>::visit_ts_union_type(&mut **self, node)
3436    }
3437
3438    #[inline]
3439    fn visit_unary_expr(&mut self, node: &UnaryExpr) {
3440        <V as Visit>::visit_unary_expr(&mut **self, node)
3441    }
3442
3443    #[inline]
3444    fn visit_unary_op(&mut self, node: &UnaryOp) {
3445        <V as Visit>::visit_unary_op(&mut **self, node)
3446    }
3447
3448    #[inline]
3449    fn visit_update_expr(&mut self, node: &UpdateExpr) {
3450        <V as Visit>::visit_update_expr(&mut **self, node)
3451    }
3452
3453    #[inline]
3454    fn visit_update_op(&mut self, node: &UpdateOp) {
3455        <V as Visit>::visit_update_op(&mut **self, node)
3456    }
3457
3458    #[inline]
3459    fn visit_using_decl(&mut self, node: &UsingDecl) {
3460        <V as Visit>::visit_using_decl(&mut **self, node)
3461    }
3462
3463    #[inline]
3464    fn visit_var_decl(&mut self, node: &VarDecl) {
3465        <V as Visit>::visit_var_decl(&mut **self, node)
3466    }
3467
3468    #[inline]
3469    fn visit_var_decl_kind(&mut self, node: &VarDeclKind) {
3470        <V as Visit>::visit_var_decl_kind(&mut **self, node)
3471    }
3472
3473    #[inline]
3474    fn visit_var_decl_or_expr(&mut self, node: &VarDeclOrExpr) {
3475        <V as Visit>::visit_var_decl_or_expr(&mut **self, node)
3476    }
3477
3478    #[inline]
3479    fn visit_var_declarator(&mut self, node: &VarDeclarator) {
3480        <V as Visit>::visit_var_declarator(&mut **self, node)
3481    }
3482
3483    #[inline]
3484    fn visit_var_declarators(&mut self, node: &[VarDeclarator]) {
3485        <V as Visit>::visit_var_declarators(&mut **self, node)
3486    }
3487
3488    #[inline]
3489    fn visit_while_stmt(&mut self, node: &WhileStmt) {
3490        <V as Visit>::visit_while_stmt(&mut **self, node)
3491    }
3492
3493    #[inline]
3494    fn visit_with_stmt(&mut self, node: &WithStmt) {
3495        <V as Visit>::visit_with_stmt(&mut **self, node)
3496    }
3497
3498    #[inline]
3499    fn visit_yield_expr(&mut self, node: &YieldExpr) {
3500        <V as Visit>::visit_yield_expr(&mut **self, node)
3501    }
3502}
3503impl<V> Visit for Box<V>
3504where
3505    V: ?Sized + Visit,
3506{
3507    #[inline]
3508    fn visit_accessibility(&mut self, node: &Accessibility) {
3509        <V as Visit>::visit_accessibility(&mut **self, node)
3510    }
3511
3512    #[inline]
3513    fn visit_array_lit(&mut self, node: &ArrayLit) {
3514        <V as Visit>::visit_array_lit(&mut **self, node)
3515    }
3516
3517    #[inline]
3518    fn visit_array_pat(&mut self, node: &ArrayPat) {
3519        <V as Visit>::visit_array_pat(&mut **self, node)
3520    }
3521
3522    #[inline]
3523    fn visit_arrow_expr(&mut self, node: &ArrowExpr) {
3524        <V as Visit>::visit_arrow_expr(&mut **self, node)
3525    }
3526
3527    #[inline]
3528    fn visit_assign_expr(&mut self, node: &AssignExpr) {
3529        <V as Visit>::visit_assign_expr(&mut **self, node)
3530    }
3531
3532    #[inline]
3533    fn visit_assign_op(&mut self, node: &AssignOp) {
3534        <V as Visit>::visit_assign_op(&mut **self, node)
3535    }
3536
3537    #[inline]
3538    fn visit_assign_pat(&mut self, node: &AssignPat) {
3539        <V as Visit>::visit_assign_pat(&mut **self, node)
3540    }
3541
3542    #[inline]
3543    fn visit_assign_pat_prop(&mut self, node: &AssignPatProp) {
3544        <V as Visit>::visit_assign_pat_prop(&mut **self, node)
3545    }
3546
3547    #[inline]
3548    fn visit_assign_prop(&mut self, node: &AssignProp) {
3549        <V as Visit>::visit_assign_prop(&mut **self, node)
3550    }
3551
3552    #[inline]
3553    fn visit_assign_target(&mut self, node: &AssignTarget) {
3554        <V as Visit>::visit_assign_target(&mut **self, node)
3555    }
3556
3557    #[inline]
3558    fn visit_assign_target_pat(&mut self, node: &AssignTargetPat) {
3559        <V as Visit>::visit_assign_target_pat(&mut **self, node)
3560    }
3561
3562    #[inline]
3563    fn visit_atom(&mut self, node: &swc_atoms::Atom) {
3564        <V as Visit>::visit_atom(&mut **self, node)
3565    }
3566
3567    #[inline]
3568    fn visit_auto_accessor(&mut self, node: &AutoAccessor) {
3569        <V as Visit>::visit_auto_accessor(&mut **self, node)
3570    }
3571
3572    #[inline]
3573    fn visit_await_expr(&mut self, node: &AwaitExpr) {
3574        <V as Visit>::visit_await_expr(&mut **self, node)
3575    }
3576
3577    #[inline]
3578    fn visit_big_int(&mut self, node: &BigInt) {
3579        <V as Visit>::visit_big_int(&mut **self, node)
3580    }
3581
3582    #[inline]
3583    fn visit_big_int_value(&mut self, node: &BigIntValue) {
3584        <V as Visit>::visit_big_int_value(&mut **self, node)
3585    }
3586
3587    #[inline]
3588    fn visit_bin_expr(&mut self, node: &BinExpr) {
3589        <V as Visit>::visit_bin_expr(&mut **self, node)
3590    }
3591
3592    #[inline]
3593    fn visit_binary_op(&mut self, node: &BinaryOp) {
3594        <V as Visit>::visit_binary_op(&mut **self, node)
3595    }
3596
3597    #[inline]
3598    fn visit_binding_ident(&mut self, node: &BindingIdent) {
3599        <V as Visit>::visit_binding_ident(&mut **self, node)
3600    }
3601
3602    #[inline]
3603    fn visit_block_stmt(&mut self, node: &BlockStmt) {
3604        <V as Visit>::visit_block_stmt(&mut **self, node)
3605    }
3606
3607    #[inline]
3608    fn visit_block_stmt_or_expr(&mut self, node: &BlockStmtOrExpr) {
3609        <V as Visit>::visit_block_stmt_or_expr(&mut **self, node)
3610    }
3611
3612    #[inline]
3613    fn visit_bool(&mut self, node: &Bool) {
3614        <V as Visit>::visit_bool(&mut **self, node)
3615    }
3616
3617    #[inline]
3618    fn visit_break_stmt(&mut self, node: &BreakStmt) {
3619        <V as Visit>::visit_break_stmt(&mut **self, node)
3620    }
3621
3622    #[inline]
3623    fn visit_call_expr(&mut self, node: &CallExpr) {
3624        <V as Visit>::visit_call_expr(&mut **self, node)
3625    }
3626
3627    #[inline]
3628    fn visit_callee(&mut self, node: &Callee) {
3629        <V as Visit>::visit_callee(&mut **self, node)
3630    }
3631
3632    #[inline]
3633    fn visit_catch_clause(&mut self, node: &CatchClause) {
3634        <V as Visit>::visit_catch_clause(&mut **self, node)
3635    }
3636
3637    #[inline]
3638    fn visit_class(&mut self, node: &Class) {
3639        <V as Visit>::visit_class(&mut **self, node)
3640    }
3641
3642    #[inline]
3643    fn visit_class_decl(&mut self, node: &ClassDecl) {
3644        <V as Visit>::visit_class_decl(&mut **self, node)
3645    }
3646
3647    #[inline]
3648    fn visit_class_expr(&mut self, node: &ClassExpr) {
3649        <V as Visit>::visit_class_expr(&mut **self, node)
3650    }
3651
3652    #[inline]
3653    fn visit_class_member(&mut self, node: &ClassMember) {
3654        <V as Visit>::visit_class_member(&mut **self, node)
3655    }
3656
3657    #[inline]
3658    fn visit_class_members(&mut self, node: &[ClassMember]) {
3659        <V as Visit>::visit_class_members(&mut **self, node)
3660    }
3661
3662    #[inline]
3663    fn visit_class_method(&mut self, node: &ClassMethod) {
3664        <V as Visit>::visit_class_method(&mut **self, node)
3665    }
3666
3667    #[inline]
3668    fn visit_class_prop(&mut self, node: &ClassProp) {
3669        <V as Visit>::visit_class_prop(&mut **self, node)
3670    }
3671
3672    #[inline]
3673    fn visit_computed_prop_name(&mut self, node: &ComputedPropName) {
3674        <V as Visit>::visit_computed_prop_name(&mut **self, node)
3675    }
3676
3677    #[inline]
3678    fn visit_cond_expr(&mut self, node: &CondExpr) {
3679        <V as Visit>::visit_cond_expr(&mut **self, node)
3680    }
3681
3682    #[inline]
3683    fn visit_constructor(&mut self, node: &Constructor) {
3684        <V as Visit>::visit_constructor(&mut **self, node)
3685    }
3686
3687    #[inline]
3688    fn visit_continue_stmt(&mut self, node: &ContinueStmt) {
3689        <V as Visit>::visit_continue_stmt(&mut **self, node)
3690    }
3691
3692    #[inline]
3693    fn visit_debugger_stmt(&mut self, node: &DebuggerStmt) {
3694        <V as Visit>::visit_debugger_stmt(&mut **self, node)
3695    }
3696
3697    #[inline]
3698    fn visit_decl(&mut self, node: &Decl) {
3699        <V as Visit>::visit_decl(&mut **self, node)
3700    }
3701
3702    #[inline]
3703    fn visit_decorator(&mut self, node: &Decorator) {
3704        <V as Visit>::visit_decorator(&mut **self, node)
3705    }
3706
3707    #[inline]
3708    fn visit_decorators(&mut self, node: &[Decorator]) {
3709        <V as Visit>::visit_decorators(&mut **self, node)
3710    }
3711
3712    #[inline]
3713    fn visit_default_decl(&mut self, node: &DefaultDecl) {
3714        <V as Visit>::visit_default_decl(&mut **self, node)
3715    }
3716
3717    #[inline]
3718    fn visit_do_while_stmt(&mut self, node: &DoWhileStmt) {
3719        <V as Visit>::visit_do_while_stmt(&mut **self, node)
3720    }
3721
3722    #[inline]
3723    fn visit_empty_stmt(&mut self, node: &EmptyStmt) {
3724        <V as Visit>::visit_empty_stmt(&mut **self, node)
3725    }
3726
3727    #[inline]
3728    fn visit_export_all(&mut self, node: &ExportAll) {
3729        <V as Visit>::visit_export_all(&mut **self, node)
3730    }
3731
3732    #[inline]
3733    fn visit_export_decl(&mut self, node: &ExportDecl) {
3734        <V as Visit>::visit_export_decl(&mut **self, node)
3735    }
3736
3737    #[inline]
3738    fn visit_export_default_decl(&mut self, node: &ExportDefaultDecl) {
3739        <V as Visit>::visit_export_default_decl(&mut **self, node)
3740    }
3741
3742    #[inline]
3743    fn visit_export_default_expr(&mut self, node: &ExportDefaultExpr) {
3744        <V as Visit>::visit_export_default_expr(&mut **self, node)
3745    }
3746
3747    #[inline]
3748    fn visit_export_default_specifier(&mut self, node: &ExportDefaultSpecifier) {
3749        <V as Visit>::visit_export_default_specifier(&mut **self, node)
3750    }
3751
3752    #[inline]
3753    fn visit_export_named_specifier(&mut self, node: &ExportNamedSpecifier) {
3754        <V as Visit>::visit_export_named_specifier(&mut **self, node)
3755    }
3756
3757    #[inline]
3758    fn visit_export_namespace_specifier(&mut self, node: &ExportNamespaceSpecifier) {
3759        <V as Visit>::visit_export_namespace_specifier(&mut **self, node)
3760    }
3761
3762    #[inline]
3763    fn visit_export_specifier(&mut self, node: &ExportSpecifier) {
3764        <V as Visit>::visit_export_specifier(&mut **self, node)
3765    }
3766
3767    #[inline]
3768    fn visit_export_specifiers(&mut self, node: &[ExportSpecifier]) {
3769        <V as Visit>::visit_export_specifiers(&mut **self, node)
3770    }
3771
3772    #[inline]
3773    fn visit_expr(&mut self, node: &Expr) {
3774        <V as Visit>::visit_expr(&mut **self, node)
3775    }
3776
3777    #[inline]
3778    fn visit_expr_or_spread(&mut self, node: &ExprOrSpread) {
3779        <V as Visit>::visit_expr_or_spread(&mut **self, node)
3780    }
3781
3782    #[inline]
3783    fn visit_expr_or_spreads(&mut self, node: &[ExprOrSpread]) {
3784        <V as Visit>::visit_expr_or_spreads(&mut **self, node)
3785    }
3786
3787    #[inline]
3788    fn visit_expr_stmt(&mut self, node: &ExprStmt) {
3789        <V as Visit>::visit_expr_stmt(&mut **self, node)
3790    }
3791
3792    #[inline]
3793    fn visit_exprs(&mut self, node: &[Box<Expr>]) {
3794        <V as Visit>::visit_exprs(&mut **self, node)
3795    }
3796
3797    #[inline]
3798    fn visit_fn_decl(&mut self, node: &FnDecl) {
3799        <V as Visit>::visit_fn_decl(&mut **self, node)
3800    }
3801
3802    #[inline]
3803    fn visit_fn_expr(&mut self, node: &FnExpr) {
3804        <V as Visit>::visit_fn_expr(&mut **self, node)
3805    }
3806
3807    #[inline]
3808    fn visit_for_head(&mut self, node: &ForHead) {
3809        <V as Visit>::visit_for_head(&mut **self, node)
3810    }
3811
3812    #[inline]
3813    fn visit_for_in_stmt(&mut self, node: &ForInStmt) {
3814        <V as Visit>::visit_for_in_stmt(&mut **self, node)
3815    }
3816
3817    #[inline]
3818    fn visit_for_of_stmt(&mut self, node: &ForOfStmt) {
3819        <V as Visit>::visit_for_of_stmt(&mut **self, node)
3820    }
3821
3822    #[inline]
3823    fn visit_for_stmt(&mut self, node: &ForStmt) {
3824        <V as Visit>::visit_for_stmt(&mut **self, node)
3825    }
3826
3827    #[inline]
3828    fn visit_function(&mut self, node: &Function) {
3829        <V as Visit>::visit_function(&mut **self, node)
3830    }
3831
3832    #[inline]
3833    fn visit_getter_prop(&mut self, node: &GetterProp) {
3834        <V as Visit>::visit_getter_prop(&mut **self, node)
3835    }
3836
3837    #[inline]
3838    fn visit_ident(&mut self, node: &Ident) {
3839        <V as Visit>::visit_ident(&mut **self, node)
3840    }
3841
3842    #[inline]
3843    fn visit_ident_name(&mut self, node: &IdentName) {
3844        <V as Visit>::visit_ident_name(&mut **self, node)
3845    }
3846
3847    #[inline]
3848    fn visit_if_stmt(&mut self, node: &IfStmt) {
3849        <V as Visit>::visit_if_stmt(&mut **self, node)
3850    }
3851
3852    #[inline]
3853    fn visit_import(&mut self, node: &Import) {
3854        <V as Visit>::visit_import(&mut **self, node)
3855    }
3856
3857    #[inline]
3858    fn visit_import_decl(&mut self, node: &ImportDecl) {
3859        <V as Visit>::visit_import_decl(&mut **self, node)
3860    }
3861
3862    #[inline]
3863    fn visit_import_default_specifier(&mut self, node: &ImportDefaultSpecifier) {
3864        <V as Visit>::visit_import_default_specifier(&mut **self, node)
3865    }
3866
3867    #[inline]
3868    fn visit_import_named_specifier(&mut self, node: &ImportNamedSpecifier) {
3869        <V as Visit>::visit_import_named_specifier(&mut **self, node)
3870    }
3871
3872    #[inline]
3873    fn visit_import_phase(&mut self, node: &ImportPhase) {
3874        <V as Visit>::visit_import_phase(&mut **self, node)
3875    }
3876
3877    #[inline]
3878    fn visit_import_specifier(&mut self, node: &ImportSpecifier) {
3879        <V as Visit>::visit_import_specifier(&mut **self, node)
3880    }
3881
3882    #[inline]
3883    fn visit_import_specifiers(&mut self, node: &[ImportSpecifier]) {
3884        <V as Visit>::visit_import_specifiers(&mut **self, node)
3885    }
3886
3887    #[inline]
3888    fn visit_import_star_as_specifier(&mut self, node: &ImportStarAsSpecifier) {
3889        <V as Visit>::visit_import_star_as_specifier(&mut **self, node)
3890    }
3891
3892    #[inline]
3893    fn visit_import_with(&mut self, node: &ImportWith) {
3894        <V as Visit>::visit_import_with(&mut **self, node)
3895    }
3896
3897    #[inline]
3898    fn visit_import_with_item(&mut self, node: &ImportWithItem) {
3899        <V as Visit>::visit_import_with_item(&mut **self, node)
3900    }
3901
3902    #[inline]
3903    fn visit_import_with_items(&mut self, node: &[ImportWithItem]) {
3904        <V as Visit>::visit_import_with_items(&mut **self, node)
3905    }
3906
3907    #[inline]
3908    fn visit_invalid(&mut self, node: &Invalid) {
3909        <V as Visit>::visit_invalid(&mut **self, node)
3910    }
3911
3912    #[inline]
3913    fn visit_jsx_attr(&mut self, node: &JSXAttr) {
3914        <V as Visit>::visit_jsx_attr(&mut **self, node)
3915    }
3916
3917    #[inline]
3918    fn visit_jsx_attr_name(&mut self, node: &JSXAttrName) {
3919        <V as Visit>::visit_jsx_attr_name(&mut **self, node)
3920    }
3921
3922    #[inline]
3923    fn visit_jsx_attr_or_spread(&mut self, node: &JSXAttrOrSpread) {
3924        <V as Visit>::visit_jsx_attr_or_spread(&mut **self, node)
3925    }
3926
3927    #[inline]
3928    fn visit_jsx_attr_or_spreads(&mut self, node: &[JSXAttrOrSpread]) {
3929        <V as Visit>::visit_jsx_attr_or_spreads(&mut **self, node)
3930    }
3931
3932    #[inline]
3933    fn visit_jsx_attr_value(&mut self, node: &JSXAttrValue) {
3934        <V as Visit>::visit_jsx_attr_value(&mut **self, node)
3935    }
3936
3937    #[inline]
3938    fn visit_jsx_closing_element(&mut self, node: &JSXClosingElement) {
3939        <V as Visit>::visit_jsx_closing_element(&mut **self, node)
3940    }
3941
3942    #[inline]
3943    fn visit_jsx_closing_fragment(&mut self, node: &JSXClosingFragment) {
3944        <V as Visit>::visit_jsx_closing_fragment(&mut **self, node)
3945    }
3946
3947    #[inline]
3948    fn visit_jsx_element(&mut self, node: &JSXElement) {
3949        <V as Visit>::visit_jsx_element(&mut **self, node)
3950    }
3951
3952    #[inline]
3953    fn visit_jsx_element_child(&mut self, node: &JSXElementChild) {
3954        <V as Visit>::visit_jsx_element_child(&mut **self, node)
3955    }
3956
3957    #[inline]
3958    fn visit_jsx_element_childs(&mut self, node: &[JSXElementChild]) {
3959        <V as Visit>::visit_jsx_element_childs(&mut **self, node)
3960    }
3961
3962    #[inline]
3963    fn visit_jsx_element_name(&mut self, node: &JSXElementName) {
3964        <V as Visit>::visit_jsx_element_name(&mut **self, node)
3965    }
3966
3967    #[inline]
3968    fn visit_jsx_empty_expr(&mut self, node: &JSXEmptyExpr) {
3969        <V as Visit>::visit_jsx_empty_expr(&mut **self, node)
3970    }
3971
3972    #[inline]
3973    fn visit_jsx_expr(&mut self, node: &JSXExpr) {
3974        <V as Visit>::visit_jsx_expr(&mut **self, node)
3975    }
3976
3977    #[inline]
3978    fn visit_jsx_expr_container(&mut self, node: &JSXExprContainer) {
3979        <V as Visit>::visit_jsx_expr_container(&mut **self, node)
3980    }
3981
3982    #[inline]
3983    fn visit_jsx_fragment(&mut self, node: &JSXFragment) {
3984        <V as Visit>::visit_jsx_fragment(&mut **self, node)
3985    }
3986
3987    #[inline]
3988    fn visit_jsx_member_expr(&mut self, node: &JSXMemberExpr) {
3989        <V as Visit>::visit_jsx_member_expr(&mut **self, node)
3990    }
3991
3992    #[inline]
3993    fn visit_jsx_namespaced_name(&mut self, node: &JSXNamespacedName) {
3994        <V as Visit>::visit_jsx_namespaced_name(&mut **self, node)
3995    }
3996
3997    #[inline]
3998    fn visit_jsx_object(&mut self, node: &JSXObject) {
3999        <V as Visit>::visit_jsx_object(&mut **self, node)
4000    }
4001
4002    #[inline]
4003    fn visit_jsx_opening_element(&mut self, node: &JSXOpeningElement) {
4004        <V as Visit>::visit_jsx_opening_element(&mut **self, node)
4005    }
4006
4007    #[inline]
4008    fn visit_jsx_opening_fragment(&mut self, node: &JSXOpeningFragment) {
4009        <V as Visit>::visit_jsx_opening_fragment(&mut **self, node)
4010    }
4011
4012    #[inline]
4013    fn visit_jsx_spread_child(&mut self, node: &JSXSpreadChild) {
4014        <V as Visit>::visit_jsx_spread_child(&mut **self, node)
4015    }
4016
4017    #[inline]
4018    fn visit_jsx_text(&mut self, node: &JSXText) {
4019        <V as Visit>::visit_jsx_text(&mut **self, node)
4020    }
4021
4022    #[inline]
4023    fn visit_key(&mut self, node: &Key) {
4024        <V as Visit>::visit_key(&mut **self, node)
4025    }
4026
4027    #[inline]
4028    fn visit_key_value_pat_prop(&mut self, node: &KeyValuePatProp) {
4029        <V as Visit>::visit_key_value_pat_prop(&mut **self, node)
4030    }
4031
4032    #[inline]
4033    fn visit_key_value_prop(&mut self, node: &KeyValueProp) {
4034        <V as Visit>::visit_key_value_prop(&mut **self, node)
4035    }
4036
4037    #[inline]
4038    fn visit_labeled_stmt(&mut self, node: &LabeledStmt) {
4039        <V as Visit>::visit_labeled_stmt(&mut **self, node)
4040    }
4041
4042    #[inline]
4043    fn visit_lit(&mut self, node: &Lit) {
4044        <V as Visit>::visit_lit(&mut **self, node)
4045    }
4046
4047    #[inline]
4048    fn visit_member_expr(&mut self, node: &MemberExpr) {
4049        <V as Visit>::visit_member_expr(&mut **self, node)
4050    }
4051
4052    #[inline]
4053    fn visit_member_prop(&mut self, node: &MemberProp) {
4054        <V as Visit>::visit_member_prop(&mut **self, node)
4055    }
4056
4057    #[inline]
4058    fn visit_meta_prop_expr(&mut self, node: &MetaPropExpr) {
4059        <V as Visit>::visit_meta_prop_expr(&mut **self, node)
4060    }
4061
4062    #[inline]
4063    fn visit_meta_prop_kind(&mut self, node: &MetaPropKind) {
4064        <V as Visit>::visit_meta_prop_kind(&mut **self, node)
4065    }
4066
4067    #[inline]
4068    fn visit_method_kind(&mut self, node: &MethodKind) {
4069        <V as Visit>::visit_method_kind(&mut **self, node)
4070    }
4071
4072    #[inline]
4073    fn visit_method_prop(&mut self, node: &MethodProp) {
4074        <V as Visit>::visit_method_prop(&mut **self, node)
4075    }
4076
4077    #[inline]
4078    fn visit_module(&mut self, node: &Module) {
4079        <V as Visit>::visit_module(&mut **self, node)
4080    }
4081
4082    #[inline]
4083    fn visit_module_decl(&mut self, node: &ModuleDecl) {
4084        <V as Visit>::visit_module_decl(&mut **self, node)
4085    }
4086
4087    #[inline]
4088    fn visit_module_export_name(&mut self, node: &ModuleExportName) {
4089        <V as Visit>::visit_module_export_name(&mut **self, node)
4090    }
4091
4092    #[inline]
4093    fn visit_module_item(&mut self, node: &ModuleItem) {
4094        <V as Visit>::visit_module_item(&mut **self, node)
4095    }
4096
4097    #[inline]
4098    fn visit_module_items(&mut self, node: &[ModuleItem]) {
4099        <V as Visit>::visit_module_items(&mut **self, node)
4100    }
4101
4102    #[inline]
4103    fn visit_named_export(&mut self, node: &NamedExport) {
4104        <V as Visit>::visit_named_export(&mut **self, node)
4105    }
4106
4107    #[inline]
4108    fn visit_new_expr(&mut self, node: &NewExpr) {
4109        <V as Visit>::visit_new_expr(&mut **self, node)
4110    }
4111
4112    #[inline]
4113    fn visit_null(&mut self, node: &Null) {
4114        <V as Visit>::visit_null(&mut **self, node)
4115    }
4116
4117    #[inline]
4118    fn visit_number(&mut self, node: &Number) {
4119        <V as Visit>::visit_number(&mut **self, node)
4120    }
4121
4122    #[inline]
4123    fn visit_object_lit(&mut self, node: &ObjectLit) {
4124        <V as Visit>::visit_object_lit(&mut **self, node)
4125    }
4126
4127    #[inline]
4128    fn visit_object_pat(&mut self, node: &ObjectPat) {
4129        <V as Visit>::visit_object_pat(&mut **self, node)
4130    }
4131
4132    #[inline]
4133    fn visit_object_pat_prop(&mut self, node: &ObjectPatProp) {
4134        <V as Visit>::visit_object_pat_prop(&mut **self, node)
4135    }
4136
4137    #[inline]
4138    fn visit_object_pat_props(&mut self, node: &[ObjectPatProp]) {
4139        <V as Visit>::visit_object_pat_props(&mut **self, node)
4140    }
4141
4142    #[inline]
4143    fn visit_opt_accessibility(&mut self, node: &Option<Accessibility>) {
4144        <V as Visit>::visit_opt_accessibility(&mut **self, node)
4145    }
4146
4147    #[inline]
4148    fn visit_opt_atom(&mut self, node: &Option<swc_atoms::Atom>) {
4149        <V as Visit>::visit_opt_atom(&mut **self, node)
4150    }
4151
4152    #[inline]
4153    fn visit_opt_block_stmt(&mut self, node: &Option<BlockStmt>) {
4154        <V as Visit>::visit_opt_block_stmt(&mut **self, node)
4155    }
4156
4157    #[inline]
4158    fn visit_opt_call(&mut self, node: &OptCall) {
4159        <V as Visit>::visit_opt_call(&mut **self, node)
4160    }
4161
4162    #[inline]
4163    fn visit_opt_catch_clause(&mut self, node: &Option<CatchClause>) {
4164        <V as Visit>::visit_opt_catch_clause(&mut **self, node)
4165    }
4166
4167    #[inline]
4168    fn visit_opt_chain_base(&mut self, node: &OptChainBase) {
4169        <V as Visit>::visit_opt_chain_base(&mut **self, node)
4170    }
4171
4172    #[inline]
4173    fn visit_opt_chain_expr(&mut self, node: &OptChainExpr) {
4174        <V as Visit>::visit_opt_chain_expr(&mut **self, node)
4175    }
4176
4177    #[inline]
4178    fn visit_opt_expr(&mut self, node: &Option<Box<Expr>>) {
4179        <V as Visit>::visit_opt_expr(&mut **self, node)
4180    }
4181
4182    #[inline]
4183    fn visit_opt_expr_or_spread(&mut self, node: &Option<ExprOrSpread>) {
4184        <V as Visit>::visit_opt_expr_or_spread(&mut **self, node)
4185    }
4186
4187    #[inline]
4188    fn visit_opt_expr_or_spreads(&mut self, node: &Option<Vec<ExprOrSpread>>) {
4189        <V as Visit>::visit_opt_expr_or_spreads(&mut **self, node)
4190    }
4191
4192    #[inline]
4193    fn visit_opt_ident(&mut self, node: &Option<Ident>) {
4194        <V as Visit>::visit_opt_ident(&mut **self, node)
4195    }
4196
4197    #[inline]
4198    fn visit_opt_jsx_attr_value(&mut self, node: &Option<JSXAttrValue>) {
4199        <V as Visit>::visit_opt_jsx_attr_value(&mut **self, node)
4200    }
4201
4202    #[inline]
4203    fn visit_opt_jsx_closing_element(&mut self, node: &Option<JSXClosingElement>) {
4204        <V as Visit>::visit_opt_jsx_closing_element(&mut **self, node)
4205    }
4206
4207    #[inline]
4208    fn visit_opt_module_export_name(&mut self, node: &Option<ModuleExportName>) {
4209        <V as Visit>::visit_opt_module_export_name(&mut **self, node)
4210    }
4211
4212    #[inline]
4213    fn visit_opt_object_lit(&mut self, node: &Option<Box<ObjectLit>>) {
4214        <V as Visit>::visit_opt_object_lit(&mut **self, node)
4215    }
4216
4217    #[inline]
4218    fn visit_opt_pat(&mut self, node: &Option<Pat>) {
4219        <V as Visit>::visit_opt_pat(&mut **self, node)
4220    }
4221
4222    #[inline]
4223    fn visit_opt_span(&mut self, node: &Option<swc_common::Span>) {
4224        <V as Visit>::visit_opt_span(&mut **self, node)
4225    }
4226
4227    #[inline]
4228    fn visit_opt_stmt(&mut self, node: &Option<Box<Stmt>>) {
4229        <V as Visit>::visit_opt_stmt(&mut **self, node)
4230    }
4231
4232    #[inline]
4233    fn visit_opt_str(&mut self, node: &Option<Box<Str>>) {
4234        <V as Visit>::visit_opt_str(&mut **self, node)
4235    }
4236
4237    #[inline]
4238    fn visit_opt_true_plus_minus(&mut self, node: &Option<TruePlusMinus>) {
4239        <V as Visit>::visit_opt_true_plus_minus(&mut **self, node)
4240    }
4241
4242    #[inline]
4243    fn visit_opt_ts_entity_name(&mut self, node: &Option<TsEntityName>) {
4244        <V as Visit>::visit_opt_ts_entity_name(&mut **self, node)
4245    }
4246
4247    #[inline]
4248    fn visit_opt_ts_import_call_options(&mut self, node: &Option<TsImportCallOptions>) {
4249        <V as Visit>::visit_opt_ts_import_call_options(&mut **self, node)
4250    }
4251
4252    #[inline]
4253    fn visit_opt_ts_namespace_body(&mut self, node: &Option<TsNamespaceBody>) {
4254        <V as Visit>::visit_opt_ts_namespace_body(&mut **self, node)
4255    }
4256
4257    #[inline]
4258    fn visit_opt_ts_type(&mut self, node: &Option<Box<TsType>>) {
4259        <V as Visit>::visit_opt_ts_type(&mut **self, node)
4260    }
4261
4262    #[inline]
4263    fn visit_opt_ts_type_ann(&mut self, node: &Option<Box<TsTypeAnn>>) {
4264        <V as Visit>::visit_opt_ts_type_ann(&mut **self, node)
4265    }
4266
4267    #[inline]
4268    fn visit_opt_ts_type_param_decl(&mut self, node: &Option<Box<TsTypeParamDecl>>) {
4269        <V as Visit>::visit_opt_ts_type_param_decl(&mut **self, node)
4270    }
4271
4272    #[inline]
4273    fn visit_opt_ts_type_param_instantiation(
4274        &mut self,
4275        node: &Option<Box<TsTypeParamInstantiation>>,
4276    ) {
4277        <V as Visit>::visit_opt_ts_type_param_instantiation(&mut **self, node)
4278    }
4279
4280    #[inline]
4281    fn visit_opt_var_decl_or_expr(&mut self, node: &Option<VarDeclOrExpr>) {
4282        <V as Visit>::visit_opt_var_decl_or_expr(&mut **self, node)
4283    }
4284
4285    #[inline]
4286    fn visit_opt_vec_expr_or_spreads(&mut self, node: &[Option<ExprOrSpread>]) {
4287        <V as Visit>::visit_opt_vec_expr_or_spreads(&mut **self, node)
4288    }
4289
4290    #[inline]
4291    fn visit_opt_vec_pats(&mut self, node: &[Option<Pat>]) {
4292        <V as Visit>::visit_opt_vec_pats(&mut **self, node)
4293    }
4294
4295    #[inline]
4296    fn visit_param(&mut self, node: &Param) {
4297        <V as Visit>::visit_param(&mut **self, node)
4298    }
4299
4300    #[inline]
4301    fn visit_param_or_ts_param_prop(&mut self, node: &ParamOrTsParamProp) {
4302        <V as Visit>::visit_param_or_ts_param_prop(&mut **self, node)
4303    }
4304
4305    #[inline]
4306    fn visit_param_or_ts_param_props(&mut self, node: &[ParamOrTsParamProp]) {
4307        <V as Visit>::visit_param_or_ts_param_props(&mut **self, node)
4308    }
4309
4310    #[inline]
4311    fn visit_params(&mut self, node: &[Param]) {
4312        <V as Visit>::visit_params(&mut **self, node)
4313    }
4314
4315    #[inline]
4316    fn visit_paren_expr(&mut self, node: &ParenExpr) {
4317        <V as Visit>::visit_paren_expr(&mut **self, node)
4318    }
4319
4320    #[inline]
4321    fn visit_pat(&mut self, node: &Pat) {
4322        <V as Visit>::visit_pat(&mut **self, node)
4323    }
4324
4325    #[inline]
4326    fn visit_pats(&mut self, node: &[Pat]) {
4327        <V as Visit>::visit_pats(&mut **self, node)
4328    }
4329
4330    #[inline]
4331    fn visit_private_method(&mut self, node: &PrivateMethod) {
4332        <V as Visit>::visit_private_method(&mut **self, node)
4333    }
4334
4335    #[inline]
4336    fn visit_private_name(&mut self, node: &PrivateName) {
4337        <V as Visit>::visit_private_name(&mut **self, node)
4338    }
4339
4340    #[inline]
4341    fn visit_private_prop(&mut self, node: &PrivateProp) {
4342        <V as Visit>::visit_private_prop(&mut **self, node)
4343    }
4344
4345    #[inline]
4346    fn visit_program(&mut self, node: &Program) {
4347        <V as Visit>::visit_program(&mut **self, node)
4348    }
4349
4350    #[inline]
4351    fn visit_prop(&mut self, node: &Prop) {
4352        <V as Visit>::visit_prop(&mut **self, node)
4353    }
4354
4355    #[inline]
4356    fn visit_prop_name(&mut self, node: &PropName) {
4357        <V as Visit>::visit_prop_name(&mut **self, node)
4358    }
4359
4360    #[inline]
4361    fn visit_prop_or_spread(&mut self, node: &PropOrSpread) {
4362        <V as Visit>::visit_prop_or_spread(&mut **self, node)
4363    }
4364
4365    #[inline]
4366    fn visit_prop_or_spreads(&mut self, node: &[PropOrSpread]) {
4367        <V as Visit>::visit_prop_or_spreads(&mut **self, node)
4368    }
4369
4370    #[inline]
4371    fn visit_regex(&mut self, node: &Regex) {
4372        <V as Visit>::visit_regex(&mut **self, node)
4373    }
4374
4375    #[inline]
4376    fn visit_rest_pat(&mut self, node: &RestPat) {
4377        <V as Visit>::visit_rest_pat(&mut **self, node)
4378    }
4379
4380    #[inline]
4381    fn visit_return_stmt(&mut self, node: &ReturnStmt) {
4382        <V as Visit>::visit_return_stmt(&mut **self, node)
4383    }
4384
4385    #[inline]
4386    fn visit_script(&mut self, node: &Script) {
4387        <V as Visit>::visit_script(&mut **self, node)
4388    }
4389
4390    #[inline]
4391    fn visit_seq_expr(&mut self, node: &SeqExpr) {
4392        <V as Visit>::visit_seq_expr(&mut **self, node)
4393    }
4394
4395    #[inline]
4396    fn visit_setter_prop(&mut self, node: &SetterProp) {
4397        <V as Visit>::visit_setter_prop(&mut **self, node)
4398    }
4399
4400    #[inline]
4401    fn visit_simple_assign_target(&mut self, node: &SimpleAssignTarget) {
4402        <V as Visit>::visit_simple_assign_target(&mut **self, node)
4403    }
4404
4405    #[inline]
4406    fn visit_span(&mut self, node: &swc_common::Span) {
4407        <V as Visit>::visit_span(&mut **self, node)
4408    }
4409
4410    #[inline]
4411    fn visit_spread_element(&mut self, node: &SpreadElement) {
4412        <V as Visit>::visit_spread_element(&mut **self, node)
4413    }
4414
4415    #[inline]
4416    fn visit_static_block(&mut self, node: &StaticBlock) {
4417        <V as Visit>::visit_static_block(&mut **self, node)
4418    }
4419
4420    #[inline]
4421    fn visit_stmt(&mut self, node: &Stmt) {
4422        <V as Visit>::visit_stmt(&mut **self, node)
4423    }
4424
4425    #[inline]
4426    fn visit_stmts(&mut self, node: &[Stmt]) {
4427        <V as Visit>::visit_stmts(&mut **self, node)
4428    }
4429
4430    #[inline]
4431    fn visit_str(&mut self, node: &Str) {
4432        <V as Visit>::visit_str(&mut **self, node)
4433    }
4434
4435    #[inline]
4436    fn visit_super(&mut self, node: &Super) {
4437        <V as Visit>::visit_super(&mut **self, node)
4438    }
4439
4440    #[inline]
4441    fn visit_super_prop(&mut self, node: &SuperProp) {
4442        <V as Visit>::visit_super_prop(&mut **self, node)
4443    }
4444
4445    #[inline]
4446    fn visit_super_prop_expr(&mut self, node: &SuperPropExpr) {
4447        <V as Visit>::visit_super_prop_expr(&mut **self, node)
4448    }
4449
4450    #[inline]
4451    fn visit_switch_case(&mut self, node: &SwitchCase) {
4452        <V as Visit>::visit_switch_case(&mut **self, node)
4453    }
4454
4455    #[inline]
4456    fn visit_switch_cases(&mut self, node: &[SwitchCase]) {
4457        <V as Visit>::visit_switch_cases(&mut **self, node)
4458    }
4459
4460    #[inline]
4461    fn visit_switch_stmt(&mut self, node: &SwitchStmt) {
4462        <V as Visit>::visit_switch_stmt(&mut **self, node)
4463    }
4464
4465    #[inline]
4466    fn visit_syntax_context(&mut self, node: &swc_common::SyntaxContext) {
4467        <V as Visit>::visit_syntax_context(&mut **self, node)
4468    }
4469
4470    #[inline]
4471    fn visit_tagged_tpl(&mut self, node: &TaggedTpl) {
4472        <V as Visit>::visit_tagged_tpl(&mut **self, node)
4473    }
4474
4475    #[inline]
4476    fn visit_this_expr(&mut self, node: &ThisExpr) {
4477        <V as Visit>::visit_this_expr(&mut **self, node)
4478    }
4479
4480    #[inline]
4481    fn visit_throw_stmt(&mut self, node: &ThrowStmt) {
4482        <V as Visit>::visit_throw_stmt(&mut **self, node)
4483    }
4484
4485    #[inline]
4486    fn visit_tpl(&mut self, node: &Tpl) {
4487        <V as Visit>::visit_tpl(&mut **self, node)
4488    }
4489
4490    #[inline]
4491    fn visit_tpl_element(&mut self, node: &TplElement) {
4492        <V as Visit>::visit_tpl_element(&mut **self, node)
4493    }
4494
4495    #[inline]
4496    fn visit_tpl_elements(&mut self, node: &[TplElement]) {
4497        <V as Visit>::visit_tpl_elements(&mut **self, node)
4498    }
4499
4500    #[inline]
4501    fn visit_true_plus_minus(&mut self, node: &TruePlusMinus) {
4502        <V as Visit>::visit_true_plus_minus(&mut **self, node)
4503    }
4504
4505    #[inline]
4506    fn visit_try_stmt(&mut self, node: &TryStmt) {
4507        <V as Visit>::visit_try_stmt(&mut **self, node)
4508    }
4509
4510    #[inline]
4511    fn visit_ts_array_type(&mut self, node: &TsArrayType) {
4512        <V as Visit>::visit_ts_array_type(&mut **self, node)
4513    }
4514
4515    #[inline]
4516    fn visit_ts_as_expr(&mut self, node: &TsAsExpr) {
4517        <V as Visit>::visit_ts_as_expr(&mut **self, node)
4518    }
4519
4520    #[inline]
4521    fn visit_ts_call_signature_decl(&mut self, node: &TsCallSignatureDecl) {
4522        <V as Visit>::visit_ts_call_signature_decl(&mut **self, node)
4523    }
4524
4525    #[inline]
4526    fn visit_ts_conditional_type(&mut self, node: &TsConditionalType) {
4527        <V as Visit>::visit_ts_conditional_type(&mut **self, node)
4528    }
4529
4530    #[inline]
4531    fn visit_ts_const_assertion(&mut self, node: &TsConstAssertion) {
4532        <V as Visit>::visit_ts_const_assertion(&mut **self, node)
4533    }
4534
4535    #[inline]
4536    fn visit_ts_construct_signature_decl(&mut self, node: &TsConstructSignatureDecl) {
4537        <V as Visit>::visit_ts_construct_signature_decl(&mut **self, node)
4538    }
4539
4540    #[inline]
4541    fn visit_ts_constructor_type(&mut self, node: &TsConstructorType) {
4542        <V as Visit>::visit_ts_constructor_type(&mut **self, node)
4543    }
4544
4545    #[inline]
4546    fn visit_ts_entity_name(&mut self, node: &TsEntityName) {
4547        <V as Visit>::visit_ts_entity_name(&mut **self, node)
4548    }
4549
4550    #[inline]
4551    fn visit_ts_enum_decl(&mut self, node: &TsEnumDecl) {
4552        <V as Visit>::visit_ts_enum_decl(&mut **self, node)
4553    }
4554
4555    #[inline]
4556    fn visit_ts_enum_member(&mut self, node: &TsEnumMember) {
4557        <V as Visit>::visit_ts_enum_member(&mut **self, node)
4558    }
4559
4560    #[inline]
4561    fn visit_ts_enum_member_id(&mut self, node: &TsEnumMemberId) {
4562        <V as Visit>::visit_ts_enum_member_id(&mut **self, node)
4563    }
4564
4565    #[inline]
4566    fn visit_ts_enum_members(&mut self, node: &[TsEnumMember]) {
4567        <V as Visit>::visit_ts_enum_members(&mut **self, node)
4568    }
4569
4570    #[inline]
4571    fn visit_ts_export_assignment(&mut self, node: &TsExportAssignment) {
4572        <V as Visit>::visit_ts_export_assignment(&mut **self, node)
4573    }
4574
4575    #[inline]
4576    fn visit_ts_expr_with_type_args(&mut self, node: &TsExprWithTypeArgs) {
4577        <V as Visit>::visit_ts_expr_with_type_args(&mut **self, node)
4578    }
4579
4580    #[inline]
4581    fn visit_ts_expr_with_type_argss(&mut self, node: &[TsExprWithTypeArgs]) {
4582        <V as Visit>::visit_ts_expr_with_type_argss(&mut **self, node)
4583    }
4584
4585    #[inline]
4586    fn visit_ts_external_module_ref(&mut self, node: &TsExternalModuleRef) {
4587        <V as Visit>::visit_ts_external_module_ref(&mut **self, node)
4588    }
4589
4590    #[inline]
4591    fn visit_ts_fn_or_constructor_type(&mut self, node: &TsFnOrConstructorType) {
4592        <V as Visit>::visit_ts_fn_or_constructor_type(&mut **self, node)
4593    }
4594
4595    #[inline]
4596    fn visit_ts_fn_param(&mut self, node: &TsFnParam) {
4597        <V as Visit>::visit_ts_fn_param(&mut **self, node)
4598    }
4599
4600    #[inline]
4601    fn visit_ts_fn_params(&mut self, node: &[TsFnParam]) {
4602        <V as Visit>::visit_ts_fn_params(&mut **self, node)
4603    }
4604
4605    #[inline]
4606    fn visit_ts_fn_type(&mut self, node: &TsFnType) {
4607        <V as Visit>::visit_ts_fn_type(&mut **self, node)
4608    }
4609
4610    #[inline]
4611    fn visit_ts_getter_signature(&mut self, node: &TsGetterSignature) {
4612        <V as Visit>::visit_ts_getter_signature(&mut **self, node)
4613    }
4614
4615    #[inline]
4616    fn visit_ts_import_call_options(&mut self, node: &TsImportCallOptions) {
4617        <V as Visit>::visit_ts_import_call_options(&mut **self, node)
4618    }
4619
4620    #[inline]
4621    fn visit_ts_import_equals_decl(&mut self, node: &TsImportEqualsDecl) {
4622        <V as Visit>::visit_ts_import_equals_decl(&mut **self, node)
4623    }
4624
4625    #[inline]
4626    fn visit_ts_import_type(&mut self, node: &TsImportType) {
4627        <V as Visit>::visit_ts_import_type(&mut **self, node)
4628    }
4629
4630    #[inline]
4631    fn visit_ts_index_signature(&mut self, node: &TsIndexSignature) {
4632        <V as Visit>::visit_ts_index_signature(&mut **self, node)
4633    }
4634
4635    #[inline]
4636    fn visit_ts_indexed_access_type(&mut self, node: &TsIndexedAccessType) {
4637        <V as Visit>::visit_ts_indexed_access_type(&mut **self, node)
4638    }
4639
4640    #[inline]
4641    fn visit_ts_infer_type(&mut self, node: &TsInferType) {
4642        <V as Visit>::visit_ts_infer_type(&mut **self, node)
4643    }
4644
4645    #[inline]
4646    fn visit_ts_instantiation(&mut self, node: &TsInstantiation) {
4647        <V as Visit>::visit_ts_instantiation(&mut **self, node)
4648    }
4649
4650    #[inline]
4651    fn visit_ts_interface_body(&mut self, node: &TsInterfaceBody) {
4652        <V as Visit>::visit_ts_interface_body(&mut **self, node)
4653    }
4654
4655    #[inline]
4656    fn visit_ts_interface_decl(&mut self, node: &TsInterfaceDecl) {
4657        <V as Visit>::visit_ts_interface_decl(&mut **self, node)
4658    }
4659
4660    #[inline]
4661    fn visit_ts_intersection_type(&mut self, node: &TsIntersectionType) {
4662        <V as Visit>::visit_ts_intersection_type(&mut **self, node)
4663    }
4664
4665    #[inline]
4666    fn visit_ts_keyword_type(&mut self, node: &TsKeywordType) {
4667        <V as Visit>::visit_ts_keyword_type(&mut **self, node)
4668    }
4669
4670    #[inline]
4671    fn visit_ts_keyword_type_kind(&mut self, node: &TsKeywordTypeKind) {
4672        <V as Visit>::visit_ts_keyword_type_kind(&mut **self, node)
4673    }
4674
4675    #[inline]
4676    fn visit_ts_lit(&mut self, node: &TsLit) {
4677        <V as Visit>::visit_ts_lit(&mut **self, node)
4678    }
4679
4680    #[inline]
4681    fn visit_ts_lit_type(&mut self, node: &TsLitType) {
4682        <V as Visit>::visit_ts_lit_type(&mut **self, node)
4683    }
4684
4685    #[inline]
4686    fn visit_ts_mapped_type(&mut self, node: &TsMappedType) {
4687        <V as Visit>::visit_ts_mapped_type(&mut **self, node)
4688    }
4689
4690    #[inline]
4691    fn visit_ts_method_signature(&mut self, node: &TsMethodSignature) {
4692        <V as Visit>::visit_ts_method_signature(&mut **self, node)
4693    }
4694
4695    #[inline]
4696    fn visit_ts_module_block(&mut self, node: &TsModuleBlock) {
4697        <V as Visit>::visit_ts_module_block(&mut **self, node)
4698    }
4699
4700    #[inline]
4701    fn visit_ts_module_decl(&mut self, node: &TsModuleDecl) {
4702        <V as Visit>::visit_ts_module_decl(&mut **self, node)
4703    }
4704
4705    #[inline]
4706    fn visit_ts_module_name(&mut self, node: &TsModuleName) {
4707        <V as Visit>::visit_ts_module_name(&mut **self, node)
4708    }
4709
4710    #[inline]
4711    fn visit_ts_module_ref(&mut self, node: &TsModuleRef) {
4712        <V as Visit>::visit_ts_module_ref(&mut **self, node)
4713    }
4714
4715    #[inline]
4716    fn visit_ts_namespace_body(&mut self, node: &TsNamespaceBody) {
4717        <V as Visit>::visit_ts_namespace_body(&mut **self, node)
4718    }
4719
4720    #[inline]
4721    fn visit_ts_namespace_decl(&mut self, node: &TsNamespaceDecl) {
4722        <V as Visit>::visit_ts_namespace_decl(&mut **self, node)
4723    }
4724
4725    #[inline]
4726    fn visit_ts_namespace_export_decl(&mut self, node: &TsNamespaceExportDecl) {
4727        <V as Visit>::visit_ts_namespace_export_decl(&mut **self, node)
4728    }
4729
4730    #[inline]
4731    fn visit_ts_non_null_expr(&mut self, node: &TsNonNullExpr) {
4732        <V as Visit>::visit_ts_non_null_expr(&mut **self, node)
4733    }
4734
4735    #[inline]
4736    fn visit_ts_optional_type(&mut self, node: &TsOptionalType) {
4737        <V as Visit>::visit_ts_optional_type(&mut **self, node)
4738    }
4739
4740    #[inline]
4741    fn visit_ts_param_prop(&mut self, node: &TsParamProp) {
4742        <V as Visit>::visit_ts_param_prop(&mut **self, node)
4743    }
4744
4745    #[inline]
4746    fn visit_ts_param_prop_param(&mut self, node: &TsParamPropParam) {
4747        <V as Visit>::visit_ts_param_prop_param(&mut **self, node)
4748    }
4749
4750    #[inline]
4751    fn visit_ts_parenthesized_type(&mut self, node: &TsParenthesizedType) {
4752        <V as Visit>::visit_ts_parenthesized_type(&mut **self, node)
4753    }
4754
4755    #[inline]
4756    fn visit_ts_property_signature(&mut self, node: &TsPropertySignature) {
4757        <V as Visit>::visit_ts_property_signature(&mut **self, node)
4758    }
4759
4760    #[inline]
4761    fn visit_ts_qualified_name(&mut self, node: &TsQualifiedName) {
4762        <V as Visit>::visit_ts_qualified_name(&mut **self, node)
4763    }
4764
4765    #[inline]
4766    fn visit_ts_rest_type(&mut self, node: &TsRestType) {
4767        <V as Visit>::visit_ts_rest_type(&mut **self, node)
4768    }
4769
4770    #[inline]
4771    fn visit_ts_satisfies_expr(&mut self, node: &TsSatisfiesExpr) {
4772        <V as Visit>::visit_ts_satisfies_expr(&mut **self, node)
4773    }
4774
4775    #[inline]
4776    fn visit_ts_setter_signature(&mut self, node: &TsSetterSignature) {
4777        <V as Visit>::visit_ts_setter_signature(&mut **self, node)
4778    }
4779
4780    #[inline]
4781    fn visit_ts_this_type(&mut self, node: &TsThisType) {
4782        <V as Visit>::visit_ts_this_type(&mut **self, node)
4783    }
4784
4785    #[inline]
4786    fn visit_ts_this_type_or_ident(&mut self, node: &TsThisTypeOrIdent) {
4787        <V as Visit>::visit_ts_this_type_or_ident(&mut **self, node)
4788    }
4789
4790    #[inline]
4791    fn visit_ts_tpl_lit_type(&mut self, node: &TsTplLitType) {
4792        <V as Visit>::visit_ts_tpl_lit_type(&mut **self, node)
4793    }
4794
4795    #[inline]
4796    fn visit_ts_tuple_element(&mut self, node: &TsTupleElement) {
4797        <V as Visit>::visit_ts_tuple_element(&mut **self, node)
4798    }
4799
4800    #[inline]
4801    fn visit_ts_tuple_elements(&mut self, node: &[TsTupleElement]) {
4802        <V as Visit>::visit_ts_tuple_elements(&mut **self, node)
4803    }
4804
4805    #[inline]
4806    fn visit_ts_tuple_type(&mut self, node: &TsTupleType) {
4807        <V as Visit>::visit_ts_tuple_type(&mut **self, node)
4808    }
4809
4810    #[inline]
4811    fn visit_ts_type(&mut self, node: &TsType) {
4812        <V as Visit>::visit_ts_type(&mut **self, node)
4813    }
4814
4815    #[inline]
4816    fn visit_ts_type_alias_decl(&mut self, node: &TsTypeAliasDecl) {
4817        <V as Visit>::visit_ts_type_alias_decl(&mut **self, node)
4818    }
4819
4820    #[inline]
4821    fn visit_ts_type_ann(&mut self, node: &TsTypeAnn) {
4822        <V as Visit>::visit_ts_type_ann(&mut **self, node)
4823    }
4824
4825    #[inline]
4826    fn visit_ts_type_assertion(&mut self, node: &TsTypeAssertion) {
4827        <V as Visit>::visit_ts_type_assertion(&mut **self, node)
4828    }
4829
4830    #[inline]
4831    fn visit_ts_type_element(&mut self, node: &TsTypeElement) {
4832        <V as Visit>::visit_ts_type_element(&mut **self, node)
4833    }
4834
4835    #[inline]
4836    fn visit_ts_type_elements(&mut self, node: &[TsTypeElement]) {
4837        <V as Visit>::visit_ts_type_elements(&mut **self, node)
4838    }
4839
4840    #[inline]
4841    fn visit_ts_type_lit(&mut self, node: &TsTypeLit) {
4842        <V as Visit>::visit_ts_type_lit(&mut **self, node)
4843    }
4844
4845    #[inline]
4846    fn visit_ts_type_operator(&mut self, node: &TsTypeOperator) {
4847        <V as Visit>::visit_ts_type_operator(&mut **self, node)
4848    }
4849
4850    #[inline]
4851    fn visit_ts_type_operator_op(&mut self, node: &TsTypeOperatorOp) {
4852        <V as Visit>::visit_ts_type_operator_op(&mut **self, node)
4853    }
4854
4855    #[inline]
4856    fn visit_ts_type_param(&mut self, node: &TsTypeParam) {
4857        <V as Visit>::visit_ts_type_param(&mut **self, node)
4858    }
4859
4860    #[inline]
4861    fn visit_ts_type_param_decl(&mut self, node: &TsTypeParamDecl) {
4862        <V as Visit>::visit_ts_type_param_decl(&mut **self, node)
4863    }
4864
4865    #[inline]
4866    fn visit_ts_type_param_instantiation(&mut self, node: &TsTypeParamInstantiation) {
4867        <V as Visit>::visit_ts_type_param_instantiation(&mut **self, node)
4868    }
4869
4870    #[inline]
4871    fn visit_ts_type_params(&mut self, node: &[TsTypeParam]) {
4872        <V as Visit>::visit_ts_type_params(&mut **self, node)
4873    }
4874
4875    #[inline]
4876    fn visit_ts_type_predicate(&mut self, node: &TsTypePredicate) {
4877        <V as Visit>::visit_ts_type_predicate(&mut **self, node)
4878    }
4879
4880    #[inline]
4881    fn visit_ts_type_query(&mut self, node: &TsTypeQuery) {
4882        <V as Visit>::visit_ts_type_query(&mut **self, node)
4883    }
4884
4885    #[inline]
4886    fn visit_ts_type_query_expr(&mut self, node: &TsTypeQueryExpr) {
4887        <V as Visit>::visit_ts_type_query_expr(&mut **self, node)
4888    }
4889
4890    #[inline]
4891    fn visit_ts_type_ref(&mut self, node: &TsTypeRef) {
4892        <V as Visit>::visit_ts_type_ref(&mut **self, node)
4893    }
4894
4895    #[inline]
4896    fn visit_ts_types(&mut self, node: &[Box<TsType>]) {
4897        <V as Visit>::visit_ts_types(&mut **self, node)
4898    }
4899
4900    #[inline]
4901    fn visit_ts_union_or_intersection_type(&mut self, node: &TsUnionOrIntersectionType) {
4902        <V as Visit>::visit_ts_union_or_intersection_type(&mut **self, node)
4903    }
4904
4905    #[inline]
4906    fn visit_ts_union_type(&mut self, node: &TsUnionType) {
4907        <V as Visit>::visit_ts_union_type(&mut **self, node)
4908    }
4909
4910    #[inline]
4911    fn visit_unary_expr(&mut self, node: &UnaryExpr) {
4912        <V as Visit>::visit_unary_expr(&mut **self, node)
4913    }
4914
4915    #[inline]
4916    fn visit_unary_op(&mut self, node: &UnaryOp) {
4917        <V as Visit>::visit_unary_op(&mut **self, node)
4918    }
4919
4920    #[inline]
4921    fn visit_update_expr(&mut self, node: &UpdateExpr) {
4922        <V as Visit>::visit_update_expr(&mut **self, node)
4923    }
4924
4925    #[inline]
4926    fn visit_update_op(&mut self, node: &UpdateOp) {
4927        <V as Visit>::visit_update_op(&mut **self, node)
4928    }
4929
4930    #[inline]
4931    fn visit_using_decl(&mut self, node: &UsingDecl) {
4932        <V as Visit>::visit_using_decl(&mut **self, node)
4933    }
4934
4935    #[inline]
4936    fn visit_var_decl(&mut self, node: &VarDecl) {
4937        <V as Visit>::visit_var_decl(&mut **self, node)
4938    }
4939
4940    #[inline]
4941    fn visit_var_decl_kind(&mut self, node: &VarDeclKind) {
4942        <V as Visit>::visit_var_decl_kind(&mut **self, node)
4943    }
4944
4945    #[inline]
4946    fn visit_var_decl_or_expr(&mut self, node: &VarDeclOrExpr) {
4947        <V as Visit>::visit_var_decl_or_expr(&mut **self, node)
4948    }
4949
4950    #[inline]
4951    fn visit_var_declarator(&mut self, node: &VarDeclarator) {
4952        <V as Visit>::visit_var_declarator(&mut **self, node)
4953    }
4954
4955    #[inline]
4956    fn visit_var_declarators(&mut self, node: &[VarDeclarator]) {
4957        <V as Visit>::visit_var_declarators(&mut **self, node)
4958    }
4959
4960    #[inline]
4961    fn visit_while_stmt(&mut self, node: &WhileStmt) {
4962        <V as Visit>::visit_while_stmt(&mut **self, node)
4963    }
4964
4965    #[inline]
4966    fn visit_with_stmt(&mut self, node: &WithStmt) {
4967        <V as Visit>::visit_with_stmt(&mut **self, node)
4968    }
4969
4970    #[inline]
4971    fn visit_yield_expr(&mut self, node: &YieldExpr) {
4972        <V as Visit>::visit_yield_expr(&mut **self, node)
4973    }
4974}
4975impl<A, B> Visit for ::swc_visit::Either<A, B>
4976where
4977    A: Visit,
4978    B: Visit,
4979{
4980    #[inline]
4981    fn visit_accessibility(&mut self, node: &Accessibility) {
4982        match self {
4983            swc_visit::Either::Left(visitor) => Visit::visit_accessibility(visitor, node),
4984            swc_visit::Either::Right(visitor) => Visit::visit_accessibility(visitor, node),
4985        }
4986    }
4987
4988    #[inline]
4989    fn visit_array_lit(&mut self, node: &ArrayLit) {
4990        match self {
4991            swc_visit::Either::Left(visitor) => Visit::visit_array_lit(visitor, node),
4992            swc_visit::Either::Right(visitor) => Visit::visit_array_lit(visitor, node),
4993        }
4994    }
4995
4996    #[inline]
4997    fn visit_array_pat(&mut self, node: &ArrayPat) {
4998        match self {
4999            swc_visit::Either::Left(visitor) => Visit::visit_array_pat(visitor, node),
5000            swc_visit::Either::Right(visitor) => Visit::visit_array_pat(visitor, node),
5001        }
5002    }
5003
5004    #[inline]
5005    fn visit_arrow_expr(&mut self, node: &ArrowExpr) {
5006        match self {
5007            swc_visit::Either::Left(visitor) => Visit::visit_arrow_expr(visitor, node),
5008            swc_visit::Either::Right(visitor) => Visit::visit_arrow_expr(visitor, node),
5009        }
5010    }
5011
5012    #[inline]
5013    fn visit_assign_expr(&mut self, node: &AssignExpr) {
5014        match self {
5015            swc_visit::Either::Left(visitor) => Visit::visit_assign_expr(visitor, node),
5016            swc_visit::Either::Right(visitor) => Visit::visit_assign_expr(visitor, node),
5017        }
5018    }
5019
5020    #[inline]
5021    fn visit_assign_op(&mut self, node: &AssignOp) {
5022        match self {
5023            swc_visit::Either::Left(visitor) => Visit::visit_assign_op(visitor, node),
5024            swc_visit::Either::Right(visitor) => Visit::visit_assign_op(visitor, node),
5025        }
5026    }
5027
5028    #[inline]
5029    fn visit_assign_pat(&mut self, node: &AssignPat) {
5030        match self {
5031            swc_visit::Either::Left(visitor) => Visit::visit_assign_pat(visitor, node),
5032            swc_visit::Either::Right(visitor) => Visit::visit_assign_pat(visitor, node),
5033        }
5034    }
5035
5036    #[inline]
5037    fn visit_assign_pat_prop(&mut self, node: &AssignPatProp) {
5038        match self {
5039            swc_visit::Either::Left(visitor) => Visit::visit_assign_pat_prop(visitor, node),
5040            swc_visit::Either::Right(visitor) => Visit::visit_assign_pat_prop(visitor, node),
5041        }
5042    }
5043
5044    #[inline]
5045    fn visit_assign_prop(&mut self, node: &AssignProp) {
5046        match self {
5047            swc_visit::Either::Left(visitor) => Visit::visit_assign_prop(visitor, node),
5048            swc_visit::Either::Right(visitor) => Visit::visit_assign_prop(visitor, node),
5049        }
5050    }
5051
5052    #[inline]
5053    fn visit_assign_target(&mut self, node: &AssignTarget) {
5054        match self {
5055            swc_visit::Either::Left(visitor) => Visit::visit_assign_target(visitor, node),
5056            swc_visit::Either::Right(visitor) => Visit::visit_assign_target(visitor, node),
5057        }
5058    }
5059
5060    #[inline]
5061    fn visit_assign_target_pat(&mut self, node: &AssignTargetPat) {
5062        match self {
5063            swc_visit::Either::Left(visitor) => Visit::visit_assign_target_pat(visitor, node),
5064            swc_visit::Either::Right(visitor) => Visit::visit_assign_target_pat(visitor, node),
5065        }
5066    }
5067
5068    #[inline]
5069    fn visit_atom(&mut self, node: &swc_atoms::Atom) {
5070        match self {
5071            swc_visit::Either::Left(visitor) => Visit::visit_atom(visitor, node),
5072            swc_visit::Either::Right(visitor) => Visit::visit_atom(visitor, node),
5073        }
5074    }
5075
5076    #[inline]
5077    fn visit_auto_accessor(&mut self, node: &AutoAccessor) {
5078        match self {
5079            swc_visit::Either::Left(visitor) => Visit::visit_auto_accessor(visitor, node),
5080            swc_visit::Either::Right(visitor) => Visit::visit_auto_accessor(visitor, node),
5081        }
5082    }
5083
5084    #[inline]
5085    fn visit_await_expr(&mut self, node: &AwaitExpr) {
5086        match self {
5087            swc_visit::Either::Left(visitor) => Visit::visit_await_expr(visitor, node),
5088            swc_visit::Either::Right(visitor) => Visit::visit_await_expr(visitor, node),
5089        }
5090    }
5091
5092    #[inline]
5093    fn visit_big_int(&mut self, node: &BigInt) {
5094        match self {
5095            swc_visit::Either::Left(visitor) => Visit::visit_big_int(visitor, node),
5096            swc_visit::Either::Right(visitor) => Visit::visit_big_int(visitor, node),
5097        }
5098    }
5099
5100    #[inline]
5101    fn visit_big_int_value(&mut self, node: &BigIntValue) {
5102        match self {
5103            swc_visit::Either::Left(visitor) => Visit::visit_big_int_value(visitor, node),
5104            swc_visit::Either::Right(visitor) => Visit::visit_big_int_value(visitor, node),
5105        }
5106    }
5107
5108    #[inline]
5109    fn visit_bin_expr(&mut self, node: &BinExpr) {
5110        match self {
5111            swc_visit::Either::Left(visitor) => Visit::visit_bin_expr(visitor, node),
5112            swc_visit::Either::Right(visitor) => Visit::visit_bin_expr(visitor, node),
5113        }
5114    }
5115
5116    #[inline]
5117    fn visit_binary_op(&mut self, node: &BinaryOp) {
5118        match self {
5119            swc_visit::Either::Left(visitor) => Visit::visit_binary_op(visitor, node),
5120            swc_visit::Either::Right(visitor) => Visit::visit_binary_op(visitor, node),
5121        }
5122    }
5123
5124    #[inline]
5125    fn visit_binding_ident(&mut self, node: &BindingIdent) {
5126        match self {
5127            swc_visit::Either::Left(visitor) => Visit::visit_binding_ident(visitor, node),
5128            swc_visit::Either::Right(visitor) => Visit::visit_binding_ident(visitor, node),
5129        }
5130    }
5131
5132    #[inline]
5133    fn visit_block_stmt(&mut self, node: &BlockStmt) {
5134        match self {
5135            swc_visit::Either::Left(visitor) => Visit::visit_block_stmt(visitor, node),
5136            swc_visit::Either::Right(visitor) => Visit::visit_block_stmt(visitor, node),
5137        }
5138    }
5139
5140    #[inline]
5141    fn visit_block_stmt_or_expr(&mut self, node: &BlockStmtOrExpr) {
5142        match self {
5143            swc_visit::Either::Left(visitor) => Visit::visit_block_stmt_or_expr(visitor, node),
5144            swc_visit::Either::Right(visitor) => Visit::visit_block_stmt_or_expr(visitor, node),
5145        }
5146    }
5147
5148    #[inline]
5149    fn visit_bool(&mut self, node: &Bool) {
5150        match self {
5151            swc_visit::Either::Left(visitor) => Visit::visit_bool(visitor, node),
5152            swc_visit::Either::Right(visitor) => Visit::visit_bool(visitor, node),
5153        }
5154    }
5155
5156    #[inline]
5157    fn visit_break_stmt(&mut self, node: &BreakStmt) {
5158        match self {
5159            swc_visit::Either::Left(visitor) => Visit::visit_break_stmt(visitor, node),
5160            swc_visit::Either::Right(visitor) => Visit::visit_break_stmt(visitor, node),
5161        }
5162    }
5163
5164    #[inline]
5165    fn visit_call_expr(&mut self, node: &CallExpr) {
5166        match self {
5167            swc_visit::Either::Left(visitor) => Visit::visit_call_expr(visitor, node),
5168            swc_visit::Either::Right(visitor) => Visit::visit_call_expr(visitor, node),
5169        }
5170    }
5171
5172    #[inline]
5173    fn visit_callee(&mut self, node: &Callee) {
5174        match self {
5175            swc_visit::Either::Left(visitor) => Visit::visit_callee(visitor, node),
5176            swc_visit::Either::Right(visitor) => Visit::visit_callee(visitor, node),
5177        }
5178    }
5179
5180    #[inline]
5181    fn visit_catch_clause(&mut self, node: &CatchClause) {
5182        match self {
5183            swc_visit::Either::Left(visitor) => Visit::visit_catch_clause(visitor, node),
5184            swc_visit::Either::Right(visitor) => Visit::visit_catch_clause(visitor, node),
5185        }
5186    }
5187
5188    #[inline]
5189    fn visit_class(&mut self, node: &Class) {
5190        match self {
5191            swc_visit::Either::Left(visitor) => Visit::visit_class(visitor, node),
5192            swc_visit::Either::Right(visitor) => Visit::visit_class(visitor, node),
5193        }
5194    }
5195
5196    #[inline]
5197    fn visit_class_decl(&mut self, node: &ClassDecl) {
5198        match self {
5199            swc_visit::Either::Left(visitor) => Visit::visit_class_decl(visitor, node),
5200            swc_visit::Either::Right(visitor) => Visit::visit_class_decl(visitor, node),
5201        }
5202    }
5203
5204    #[inline]
5205    fn visit_class_expr(&mut self, node: &ClassExpr) {
5206        match self {
5207            swc_visit::Either::Left(visitor) => Visit::visit_class_expr(visitor, node),
5208            swc_visit::Either::Right(visitor) => Visit::visit_class_expr(visitor, node),
5209        }
5210    }
5211
5212    #[inline]
5213    fn visit_class_member(&mut self, node: &ClassMember) {
5214        match self {
5215            swc_visit::Either::Left(visitor) => Visit::visit_class_member(visitor, node),
5216            swc_visit::Either::Right(visitor) => Visit::visit_class_member(visitor, node),
5217        }
5218    }
5219
5220    #[inline]
5221    fn visit_class_members(&mut self, node: &[ClassMember]) {
5222        match self {
5223            swc_visit::Either::Left(visitor) => Visit::visit_class_members(visitor, node),
5224            swc_visit::Either::Right(visitor) => Visit::visit_class_members(visitor, node),
5225        }
5226    }
5227
5228    #[inline]
5229    fn visit_class_method(&mut self, node: &ClassMethod) {
5230        match self {
5231            swc_visit::Either::Left(visitor) => Visit::visit_class_method(visitor, node),
5232            swc_visit::Either::Right(visitor) => Visit::visit_class_method(visitor, node),
5233        }
5234    }
5235
5236    #[inline]
5237    fn visit_class_prop(&mut self, node: &ClassProp) {
5238        match self {
5239            swc_visit::Either::Left(visitor) => Visit::visit_class_prop(visitor, node),
5240            swc_visit::Either::Right(visitor) => Visit::visit_class_prop(visitor, node),
5241        }
5242    }
5243
5244    #[inline]
5245    fn visit_computed_prop_name(&mut self, node: &ComputedPropName) {
5246        match self {
5247            swc_visit::Either::Left(visitor) => Visit::visit_computed_prop_name(visitor, node),
5248            swc_visit::Either::Right(visitor) => Visit::visit_computed_prop_name(visitor, node),
5249        }
5250    }
5251
5252    #[inline]
5253    fn visit_cond_expr(&mut self, node: &CondExpr) {
5254        match self {
5255            swc_visit::Either::Left(visitor) => Visit::visit_cond_expr(visitor, node),
5256            swc_visit::Either::Right(visitor) => Visit::visit_cond_expr(visitor, node),
5257        }
5258    }
5259
5260    #[inline]
5261    fn visit_constructor(&mut self, node: &Constructor) {
5262        match self {
5263            swc_visit::Either::Left(visitor) => Visit::visit_constructor(visitor, node),
5264            swc_visit::Either::Right(visitor) => Visit::visit_constructor(visitor, node),
5265        }
5266    }
5267
5268    #[inline]
5269    fn visit_continue_stmt(&mut self, node: &ContinueStmt) {
5270        match self {
5271            swc_visit::Either::Left(visitor) => Visit::visit_continue_stmt(visitor, node),
5272            swc_visit::Either::Right(visitor) => Visit::visit_continue_stmt(visitor, node),
5273        }
5274    }
5275
5276    #[inline]
5277    fn visit_debugger_stmt(&mut self, node: &DebuggerStmt) {
5278        match self {
5279            swc_visit::Either::Left(visitor) => Visit::visit_debugger_stmt(visitor, node),
5280            swc_visit::Either::Right(visitor) => Visit::visit_debugger_stmt(visitor, node),
5281        }
5282    }
5283
5284    #[inline]
5285    fn visit_decl(&mut self, node: &Decl) {
5286        match self {
5287            swc_visit::Either::Left(visitor) => Visit::visit_decl(visitor, node),
5288            swc_visit::Either::Right(visitor) => Visit::visit_decl(visitor, node),
5289        }
5290    }
5291
5292    #[inline]
5293    fn visit_decorator(&mut self, node: &Decorator) {
5294        match self {
5295            swc_visit::Either::Left(visitor) => Visit::visit_decorator(visitor, node),
5296            swc_visit::Either::Right(visitor) => Visit::visit_decorator(visitor, node),
5297        }
5298    }
5299
5300    #[inline]
5301    fn visit_decorators(&mut self, node: &[Decorator]) {
5302        match self {
5303            swc_visit::Either::Left(visitor) => Visit::visit_decorators(visitor, node),
5304            swc_visit::Either::Right(visitor) => Visit::visit_decorators(visitor, node),
5305        }
5306    }
5307
5308    #[inline]
5309    fn visit_default_decl(&mut self, node: &DefaultDecl) {
5310        match self {
5311            swc_visit::Either::Left(visitor) => Visit::visit_default_decl(visitor, node),
5312            swc_visit::Either::Right(visitor) => Visit::visit_default_decl(visitor, node),
5313        }
5314    }
5315
5316    #[inline]
5317    fn visit_do_while_stmt(&mut self, node: &DoWhileStmt) {
5318        match self {
5319            swc_visit::Either::Left(visitor) => Visit::visit_do_while_stmt(visitor, node),
5320            swc_visit::Either::Right(visitor) => Visit::visit_do_while_stmt(visitor, node),
5321        }
5322    }
5323
5324    #[inline]
5325    fn visit_empty_stmt(&mut self, node: &EmptyStmt) {
5326        match self {
5327            swc_visit::Either::Left(visitor) => Visit::visit_empty_stmt(visitor, node),
5328            swc_visit::Either::Right(visitor) => Visit::visit_empty_stmt(visitor, node),
5329        }
5330    }
5331
5332    #[inline]
5333    fn visit_export_all(&mut self, node: &ExportAll) {
5334        match self {
5335            swc_visit::Either::Left(visitor) => Visit::visit_export_all(visitor, node),
5336            swc_visit::Either::Right(visitor) => Visit::visit_export_all(visitor, node),
5337        }
5338    }
5339
5340    #[inline]
5341    fn visit_export_decl(&mut self, node: &ExportDecl) {
5342        match self {
5343            swc_visit::Either::Left(visitor) => Visit::visit_export_decl(visitor, node),
5344            swc_visit::Either::Right(visitor) => Visit::visit_export_decl(visitor, node),
5345        }
5346    }
5347
5348    #[inline]
5349    fn visit_export_default_decl(&mut self, node: &ExportDefaultDecl) {
5350        match self {
5351            swc_visit::Either::Left(visitor) => Visit::visit_export_default_decl(visitor, node),
5352            swc_visit::Either::Right(visitor) => Visit::visit_export_default_decl(visitor, node),
5353        }
5354    }
5355
5356    #[inline]
5357    fn visit_export_default_expr(&mut self, node: &ExportDefaultExpr) {
5358        match self {
5359            swc_visit::Either::Left(visitor) => Visit::visit_export_default_expr(visitor, node),
5360            swc_visit::Either::Right(visitor) => Visit::visit_export_default_expr(visitor, node),
5361        }
5362    }
5363
5364    #[inline]
5365    fn visit_export_default_specifier(&mut self, node: &ExportDefaultSpecifier) {
5366        match self {
5367            swc_visit::Either::Left(visitor) => {
5368                Visit::visit_export_default_specifier(visitor, node)
5369            }
5370            swc_visit::Either::Right(visitor) => {
5371                Visit::visit_export_default_specifier(visitor, node)
5372            }
5373        }
5374    }
5375
5376    #[inline]
5377    fn visit_export_named_specifier(&mut self, node: &ExportNamedSpecifier) {
5378        match self {
5379            swc_visit::Either::Left(visitor) => Visit::visit_export_named_specifier(visitor, node),
5380            swc_visit::Either::Right(visitor) => Visit::visit_export_named_specifier(visitor, node),
5381        }
5382    }
5383
5384    #[inline]
5385    fn visit_export_namespace_specifier(&mut self, node: &ExportNamespaceSpecifier) {
5386        match self {
5387            swc_visit::Either::Left(visitor) => {
5388                Visit::visit_export_namespace_specifier(visitor, node)
5389            }
5390            swc_visit::Either::Right(visitor) => {
5391                Visit::visit_export_namespace_specifier(visitor, node)
5392            }
5393        }
5394    }
5395
5396    #[inline]
5397    fn visit_export_specifier(&mut self, node: &ExportSpecifier) {
5398        match self {
5399            swc_visit::Either::Left(visitor) => Visit::visit_export_specifier(visitor, node),
5400            swc_visit::Either::Right(visitor) => Visit::visit_export_specifier(visitor, node),
5401        }
5402    }
5403
5404    #[inline]
5405    fn visit_export_specifiers(&mut self, node: &[ExportSpecifier]) {
5406        match self {
5407            swc_visit::Either::Left(visitor) => Visit::visit_export_specifiers(visitor, node),
5408            swc_visit::Either::Right(visitor) => Visit::visit_export_specifiers(visitor, node),
5409        }
5410    }
5411
5412    #[inline]
5413    fn visit_expr(&mut self, node: &Expr) {
5414        match self {
5415            swc_visit::Either::Left(visitor) => Visit::visit_expr(visitor, node),
5416            swc_visit::Either::Right(visitor) => Visit::visit_expr(visitor, node),
5417        }
5418    }
5419
5420    #[inline]
5421    fn visit_expr_or_spread(&mut self, node: &ExprOrSpread) {
5422        match self {
5423            swc_visit::Either::Left(visitor) => Visit::visit_expr_or_spread(visitor, node),
5424            swc_visit::Either::Right(visitor) => Visit::visit_expr_or_spread(visitor, node),
5425        }
5426    }
5427
5428    #[inline]
5429    fn visit_expr_or_spreads(&mut self, node: &[ExprOrSpread]) {
5430        match self {
5431            swc_visit::Either::Left(visitor) => Visit::visit_expr_or_spreads(visitor, node),
5432            swc_visit::Either::Right(visitor) => Visit::visit_expr_or_spreads(visitor, node),
5433        }
5434    }
5435
5436    #[inline]
5437    fn visit_expr_stmt(&mut self, node: &ExprStmt) {
5438        match self {
5439            swc_visit::Either::Left(visitor) => Visit::visit_expr_stmt(visitor, node),
5440            swc_visit::Either::Right(visitor) => Visit::visit_expr_stmt(visitor, node),
5441        }
5442    }
5443
5444    #[inline]
5445    fn visit_exprs(&mut self, node: &[Box<Expr>]) {
5446        match self {
5447            swc_visit::Either::Left(visitor) => Visit::visit_exprs(visitor, node),
5448            swc_visit::Either::Right(visitor) => Visit::visit_exprs(visitor, node),
5449        }
5450    }
5451
5452    #[inline]
5453    fn visit_fn_decl(&mut self, node: &FnDecl) {
5454        match self {
5455            swc_visit::Either::Left(visitor) => Visit::visit_fn_decl(visitor, node),
5456            swc_visit::Either::Right(visitor) => Visit::visit_fn_decl(visitor, node),
5457        }
5458    }
5459
5460    #[inline]
5461    fn visit_fn_expr(&mut self, node: &FnExpr) {
5462        match self {
5463            swc_visit::Either::Left(visitor) => Visit::visit_fn_expr(visitor, node),
5464            swc_visit::Either::Right(visitor) => Visit::visit_fn_expr(visitor, node),
5465        }
5466    }
5467
5468    #[inline]
5469    fn visit_for_head(&mut self, node: &ForHead) {
5470        match self {
5471            swc_visit::Either::Left(visitor) => Visit::visit_for_head(visitor, node),
5472            swc_visit::Either::Right(visitor) => Visit::visit_for_head(visitor, node),
5473        }
5474    }
5475
5476    #[inline]
5477    fn visit_for_in_stmt(&mut self, node: &ForInStmt) {
5478        match self {
5479            swc_visit::Either::Left(visitor) => Visit::visit_for_in_stmt(visitor, node),
5480            swc_visit::Either::Right(visitor) => Visit::visit_for_in_stmt(visitor, node),
5481        }
5482    }
5483
5484    #[inline]
5485    fn visit_for_of_stmt(&mut self, node: &ForOfStmt) {
5486        match self {
5487            swc_visit::Either::Left(visitor) => Visit::visit_for_of_stmt(visitor, node),
5488            swc_visit::Either::Right(visitor) => Visit::visit_for_of_stmt(visitor, node),
5489        }
5490    }
5491
5492    #[inline]
5493    fn visit_for_stmt(&mut self, node: &ForStmt) {
5494        match self {
5495            swc_visit::Either::Left(visitor) => Visit::visit_for_stmt(visitor, node),
5496            swc_visit::Either::Right(visitor) => Visit::visit_for_stmt(visitor, node),
5497        }
5498    }
5499
5500    #[inline]
5501    fn visit_function(&mut self, node: &Function) {
5502        match self {
5503            swc_visit::Either::Left(visitor) => Visit::visit_function(visitor, node),
5504            swc_visit::Either::Right(visitor) => Visit::visit_function(visitor, node),
5505        }
5506    }
5507
5508    #[inline]
5509    fn visit_getter_prop(&mut self, node: &GetterProp) {
5510        match self {
5511            swc_visit::Either::Left(visitor) => Visit::visit_getter_prop(visitor, node),
5512            swc_visit::Either::Right(visitor) => Visit::visit_getter_prop(visitor, node),
5513        }
5514    }
5515
5516    #[inline]
5517    fn visit_ident(&mut self, node: &Ident) {
5518        match self {
5519            swc_visit::Either::Left(visitor) => Visit::visit_ident(visitor, node),
5520            swc_visit::Either::Right(visitor) => Visit::visit_ident(visitor, node),
5521        }
5522    }
5523
5524    #[inline]
5525    fn visit_ident_name(&mut self, node: &IdentName) {
5526        match self {
5527            swc_visit::Either::Left(visitor) => Visit::visit_ident_name(visitor, node),
5528            swc_visit::Either::Right(visitor) => Visit::visit_ident_name(visitor, node),
5529        }
5530    }
5531
5532    #[inline]
5533    fn visit_if_stmt(&mut self, node: &IfStmt) {
5534        match self {
5535            swc_visit::Either::Left(visitor) => Visit::visit_if_stmt(visitor, node),
5536            swc_visit::Either::Right(visitor) => Visit::visit_if_stmt(visitor, node),
5537        }
5538    }
5539
5540    #[inline]
5541    fn visit_import(&mut self, node: &Import) {
5542        match self {
5543            swc_visit::Either::Left(visitor) => Visit::visit_import(visitor, node),
5544            swc_visit::Either::Right(visitor) => Visit::visit_import(visitor, node),
5545        }
5546    }
5547
5548    #[inline]
5549    fn visit_import_decl(&mut self, node: &ImportDecl) {
5550        match self {
5551            swc_visit::Either::Left(visitor) => Visit::visit_import_decl(visitor, node),
5552            swc_visit::Either::Right(visitor) => Visit::visit_import_decl(visitor, node),
5553        }
5554    }
5555
5556    #[inline]
5557    fn visit_import_default_specifier(&mut self, node: &ImportDefaultSpecifier) {
5558        match self {
5559            swc_visit::Either::Left(visitor) => {
5560                Visit::visit_import_default_specifier(visitor, node)
5561            }
5562            swc_visit::Either::Right(visitor) => {
5563                Visit::visit_import_default_specifier(visitor, node)
5564            }
5565        }
5566    }
5567
5568    #[inline]
5569    fn visit_import_named_specifier(&mut self, node: &ImportNamedSpecifier) {
5570        match self {
5571            swc_visit::Either::Left(visitor) => Visit::visit_import_named_specifier(visitor, node),
5572            swc_visit::Either::Right(visitor) => Visit::visit_import_named_specifier(visitor, node),
5573        }
5574    }
5575
5576    #[inline]
5577    fn visit_import_phase(&mut self, node: &ImportPhase) {
5578        match self {
5579            swc_visit::Either::Left(visitor) => Visit::visit_import_phase(visitor, node),
5580            swc_visit::Either::Right(visitor) => Visit::visit_import_phase(visitor, node),
5581        }
5582    }
5583
5584    #[inline]
5585    fn visit_import_specifier(&mut self, node: &ImportSpecifier) {
5586        match self {
5587            swc_visit::Either::Left(visitor) => Visit::visit_import_specifier(visitor, node),
5588            swc_visit::Either::Right(visitor) => Visit::visit_import_specifier(visitor, node),
5589        }
5590    }
5591
5592    #[inline]
5593    fn visit_import_specifiers(&mut self, node: &[ImportSpecifier]) {
5594        match self {
5595            swc_visit::Either::Left(visitor) => Visit::visit_import_specifiers(visitor, node),
5596            swc_visit::Either::Right(visitor) => Visit::visit_import_specifiers(visitor, node),
5597        }
5598    }
5599
5600    #[inline]
5601    fn visit_import_star_as_specifier(&mut self, node: &ImportStarAsSpecifier) {
5602        match self {
5603            swc_visit::Either::Left(visitor) => {
5604                Visit::visit_import_star_as_specifier(visitor, node)
5605            }
5606            swc_visit::Either::Right(visitor) => {
5607                Visit::visit_import_star_as_specifier(visitor, node)
5608            }
5609        }
5610    }
5611
5612    #[inline]
5613    fn visit_import_with(&mut self, node: &ImportWith) {
5614        match self {
5615            swc_visit::Either::Left(visitor) => Visit::visit_import_with(visitor, node),
5616            swc_visit::Either::Right(visitor) => Visit::visit_import_with(visitor, node),
5617        }
5618    }
5619
5620    #[inline]
5621    fn visit_import_with_item(&mut self, node: &ImportWithItem) {
5622        match self {
5623            swc_visit::Either::Left(visitor) => Visit::visit_import_with_item(visitor, node),
5624            swc_visit::Either::Right(visitor) => Visit::visit_import_with_item(visitor, node),
5625        }
5626    }
5627
5628    #[inline]
5629    fn visit_import_with_items(&mut self, node: &[ImportWithItem]) {
5630        match self {
5631            swc_visit::Either::Left(visitor) => Visit::visit_import_with_items(visitor, node),
5632            swc_visit::Either::Right(visitor) => Visit::visit_import_with_items(visitor, node),
5633        }
5634    }
5635
5636    #[inline]
5637    fn visit_invalid(&mut self, node: &Invalid) {
5638        match self {
5639            swc_visit::Either::Left(visitor) => Visit::visit_invalid(visitor, node),
5640            swc_visit::Either::Right(visitor) => Visit::visit_invalid(visitor, node),
5641        }
5642    }
5643
5644    #[inline]
5645    fn visit_jsx_attr(&mut self, node: &JSXAttr) {
5646        match self {
5647            swc_visit::Either::Left(visitor) => Visit::visit_jsx_attr(visitor, node),
5648            swc_visit::Either::Right(visitor) => Visit::visit_jsx_attr(visitor, node),
5649        }
5650    }
5651
5652    #[inline]
5653    fn visit_jsx_attr_name(&mut self, node: &JSXAttrName) {
5654        match self {
5655            swc_visit::Either::Left(visitor) => Visit::visit_jsx_attr_name(visitor, node),
5656            swc_visit::Either::Right(visitor) => Visit::visit_jsx_attr_name(visitor, node),
5657        }
5658    }
5659
5660    #[inline]
5661    fn visit_jsx_attr_or_spread(&mut self, node: &JSXAttrOrSpread) {
5662        match self {
5663            swc_visit::Either::Left(visitor) => Visit::visit_jsx_attr_or_spread(visitor, node),
5664            swc_visit::Either::Right(visitor) => Visit::visit_jsx_attr_or_spread(visitor, node),
5665        }
5666    }
5667
5668    #[inline]
5669    fn visit_jsx_attr_or_spreads(&mut self, node: &[JSXAttrOrSpread]) {
5670        match self {
5671            swc_visit::Either::Left(visitor) => Visit::visit_jsx_attr_or_spreads(visitor, node),
5672            swc_visit::Either::Right(visitor) => Visit::visit_jsx_attr_or_spreads(visitor, node),
5673        }
5674    }
5675
5676    #[inline]
5677    fn visit_jsx_attr_value(&mut self, node: &JSXAttrValue) {
5678        match self {
5679            swc_visit::Either::Left(visitor) => Visit::visit_jsx_attr_value(visitor, node),
5680            swc_visit::Either::Right(visitor) => Visit::visit_jsx_attr_value(visitor, node),
5681        }
5682    }
5683
5684    #[inline]
5685    fn visit_jsx_closing_element(&mut self, node: &JSXClosingElement) {
5686        match self {
5687            swc_visit::Either::Left(visitor) => Visit::visit_jsx_closing_element(visitor, node),
5688            swc_visit::Either::Right(visitor) => Visit::visit_jsx_closing_element(visitor, node),
5689        }
5690    }
5691
5692    #[inline]
5693    fn visit_jsx_closing_fragment(&mut self, node: &JSXClosingFragment) {
5694        match self {
5695            swc_visit::Either::Left(visitor) => Visit::visit_jsx_closing_fragment(visitor, node),
5696            swc_visit::Either::Right(visitor) => Visit::visit_jsx_closing_fragment(visitor, node),
5697        }
5698    }
5699
5700    #[inline]
5701    fn visit_jsx_element(&mut self, node: &JSXElement) {
5702        match self {
5703            swc_visit::Either::Left(visitor) => Visit::visit_jsx_element(visitor, node),
5704            swc_visit::Either::Right(visitor) => Visit::visit_jsx_element(visitor, node),
5705        }
5706    }
5707
5708    #[inline]
5709    fn visit_jsx_element_child(&mut self, node: &JSXElementChild) {
5710        match self {
5711            swc_visit::Either::Left(visitor) => Visit::visit_jsx_element_child(visitor, node),
5712            swc_visit::Either::Right(visitor) => Visit::visit_jsx_element_child(visitor, node),
5713        }
5714    }
5715
5716    #[inline]
5717    fn visit_jsx_element_childs(&mut self, node: &[JSXElementChild]) {
5718        match self {
5719            swc_visit::Either::Left(visitor) => Visit::visit_jsx_element_childs(visitor, node),
5720            swc_visit::Either::Right(visitor) => Visit::visit_jsx_element_childs(visitor, node),
5721        }
5722    }
5723
5724    #[inline]
5725    fn visit_jsx_element_name(&mut self, node: &JSXElementName) {
5726        match self {
5727            swc_visit::Either::Left(visitor) => Visit::visit_jsx_element_name(visitor, node),
5728            swc_visit::Either::Right(visitor) => Visit::visit_jsx_element_name(visitor, node),
5729        }
5730    }
5731
5732    #[inline]
5733    fn visit_jsx_empty_expr(&mut self, node: &JSXEmptyExpr) {
5734        match self {
5735            swc_visit::Either::Left(visitor) => Visit::visit_jsx_empty_expr(visitor, node),
5736            swc_visit::Either::Right(visitor) => Visit::visit_jsx_empty_expr(visitor, node),
5737        }
5738    }
5739
5740    #[inline]
5741    fn visit_jsx_expr(&mut self, node: &JSXExpr) {
5742        match self {
5743            swc_visit::Either::Left(visitor) => Visit::visit_jsx_expr(visitor, node),
5744            swc_visit::Either::Right(visitor) => Visit::visit_jsx_expr(visitor, node),
5745        }
5746    }
5747
5748    #[inline]
5749    fn visit_jsx_expr_container(&mut self, node: &JSXExprContainer) {
5750        match self {
5751            swc_visit::Either::Left(visitor) => Visit::visit_jsx_expr_container(visitor, node),
5752            swc_visit::Either::Right(visitor) => Visit::visit_jsx_expr_container(visitor, node),
5753        }
5754    }
5755
5756    #[inline]
5757    fn visit_jsx_fragment(&mut self, node: &JSXFragment) {
5758        match self {
5759            swc_visit::Either::Left(visitor) => Visit::visit_jsx_fragment(visitor, node),
5760            swc_visit::Either::Right(visitor) => Visit::visit_jsx_fragment(visitor, node),
5761        }
5762    }
5763
5764    #[inline]
5765    fn visit_jsx_member_expr(&mut self, node: &JSXMemberExpr) {
5766        match self {
5767            swc_visit::Either::Left(visitor) => Visit::visit_jsx_member_expr(visitor, node),
5768            swc_visit::Either::Right(visitor) => Visit::visit_jsx_member_expr(visitor, node),
5769        }
5770    }
5771
5772    #[inline]
5773    fn visit_jsx_namespaced_name(&mut self, node: &JSXNamespacedName) {
5774        match self {
5775            swc_visit::Either::Left(visitor) => Visit::visit_jsx_namespaced_name(visitor, node),
5776            swc_visit::Either::Right(visitor) => Visit::visit_jsx_namespaced_name(visitor, node),
5777        }
5778    }
5779
5780    #[inline]
5781    fn visit_jsx_object(&mut self, node: &JSXObject) {
5782        match self {
5783            swc_visit::Either::Left(visitor) => Visit::visit_jsx_object(visitor, node),
5784            swc_visit::Either::Right(visitor) => Visit::visit_jsx_object(visitor, node),
5785        }
5786    }
5787
5788    #[inline]
5789    fn visit_jsx_opening_element(&mut self, node: &JSXOpeningElement) {
5790        match self {
5791            swc_visit::Either::Left(visitor) => Visit::visit_jsx_opening_element(visitor, node),
5792            swc_visit::Either::Right(visitor) => Visit::visit_jsx_opening_element(visitor, node),
5793        }
5794    }
5795
5796    #[inline]
5797    fn visit_jsx_opening_fragment(&mut self, node: &JSXOpeningFragment) {
5798        match self {
5799            swc_visit::Either::Left(visitor) => Visit::visit_jsx_opening_fragment(visitor, node),
5800            swc_visit::Either::Right(visitor) => Visit::visit_jsx_opening_fragment(visitor, node),
5801        }
5802    }
5803
5804    #[inline]
5805    fn visit_jsx_spread_child(&mut self, node: &JSXSpreadChild) {
5806        match self {
5807            swc_visit::Either::Left(visitor) => Visit::visit_jsx_spread_child(visitor, node),
5808            swc_visit::Either::Right(visitor) => Visit::visit_jsx_spread_child(visitor, node),
5809        }
5810    }
5811
5812    #[inline]
5813    fn visit_jsx_text(&mut self, node: &JSXText) {
5814        match self {
5815            swc_visit::Either::Left(visitor) => Visit::visit_jsx_text(visitor, node),
5816            swc_visit::Either::Right(visitor) => Visit::visit_jsx_text(visitor, node),
5817        }
5818    }
5819
5820    #[inline]
5821    fn visit_key(&mut self, node: &Key) {
5822        match self {
5823            swc_visit::Either::Left(visitor) => Visit::visit_key(visitor, node),
5824            swc_visit::Either::Right(visitor) => Visit::visit_key(visitor, node),
5825        }
5826    }
5827
5828    #[inline]
5829    fn visit_key_value_pat_prop(&mut self, node: &KeyValuePatProp) {
5830        match self {
5831            swc_visit::Either::Left(visitor) => Visit::visit_key_value_pat_prop(visitor, node),
5832            swc_visit::Either::Right(visitor) => Visit::visit_key_value_pat_prop(visitor, node),
5833        }
5834    }
5835
5836    #[inline]
5837    fn visit_key_value_prop(&mut self, node: &KeyValueProp) {
5838        match self {
5839            swc_visit::Either::Left(visitor) => Visit::visit_key_value_prop(visitor, node),
5840            swc_visit::Either::Right(visitor) => Visit::visit_key_value_prop(visitor, node),
5841        }
5842    }
5843
5844    #[inline]
5845    fn visit_labeled_stmt(&mut self, node: &LabeledStmt) {
5846        match self {
5847            swc_visit::Either::Left(visitor) => Visit::visit_labeled_stmt(visitor, node),
5848            swc_visit::Either::Right(visitor) => Visit::visit_labeled_stmt(visitor, node),
5849        }
5850    }
5851
5852    #[inline]
5853    fn visit_lit(&mut self, node: &Lit) {
5854        match self {
5855            swc_visit::Either::Left(visitor) => Visit::visit_lit(visitor, node),
5856            swc_visit::Either::Right(visitor) => Visit::visit_lit(visitor, node),
5857        }
5858    }
5859
5860    #[inline]
5861    fn visit_member_expr(&mut self, node: &MemberExpr) {
5862        match self {
5863            swc_visit::Either::Left(visitor) => Visit::visit_member_expr(visitor, node),
5864            swc_visit::Either::Right(visitor) => Visit::visit_member_expr(visitor, node),
5865        }
5866    }
5867
5868    #[inline]
5869    fn visit_member_prop(&mut self, node: &MemberProp) {
5870        match self {
5871            swc_visit::Either::Left(visitor) => Visit::visit_member_prop(visitor, node),
5872            swc_visit::Either::Right(visitor) => Visit::visit_member_prop(visitor, node),
5873        }
5874    }
5875
5876    #[inline]
5877    fn visit_meta_prop_expr(&mut self, node: &MetaPropExpr) {
5878        match self {
5879            swc_visit::Either::Left(visitor) => Visit::visit_meta_prop_expr(visitor, node),
5880            swc_visit::Either::Right(visitor) => Visit::visit_meta_prop_expr(visitor, node),
5881        }
5882    }
5883
5884    #[inline]
5885    fn visit_meta_prop_kind(&mut self, node: &MetaPropKind) {
5886        match self {
5887            swc_visit::Either::Left(visitor) => Visit::visit_meta_prop_kind(visitor, node),
5888            swc_visit::Either::Right(visitor) => Visit::visit_meta_prop_kind(visitor, node),
5889        }
5890    }
5891
5892    #[inline]
5893    fn visit_method_kind(&mut self, node: &MethodKind) {
5894        match self {
5895            swc_visit::Either::Left(visitor) => Visit::visit_method_kind(visitor, node),
5896            swc_visit::Either::Right(visitor) => Visit::visit_method_kind(visitor, node),
5897        }
5898    }
5899
5900    #[inline]
5901    fn visit_method_prop(&mut self, node: &MethodProp) {
5902        match self {
5903            swc_visit::Either::Left(visitor) => Visit::visit_method_prop(visitor, node),
5904            swc_visit::Either::Right(visitor) => Visit::visit_method_prop(visitor, node),
5905        }
5906    }
5907
5908    #[inline]
5909    fn visit_module(&mut self, node: &Module) {
5910        match self {
5911            swc_visit::Either::Left(visitor) => Visit::visit_module(visitor, node),
5912            swc_visit::Either::Right(visitor) => Visit::visit_module(visitor, node),
5913        }
5914    }
5915
5916    #[inline]
5917    fn visit_module_decl(&mut self, node: &ModuleDecl) {
5918        match self {
5919            swc_visit::Either::Left(visitor) => Visit::visit_module_decl(visitor, node),
5920            swc_visit::Either::Right(visitor) => Visit::visit_module_decl(visitor, node),
5921        }
5922    }
5923
5924    #[inline]
5925    fn visit_module_export_name(&mut self, node: &ModuleExportName) {
5926        match self {
5927            swc_visit::Either::Left(visitor) => Visit::visit_module_export_name(visitor, node),
5928            swc_visit::Either::Right(visitor) => Visit::visit_module_export_name(visitor, node),
5929        }
5930    }
5931
5932    #[inline]
5933    fn visit_module_item(&mut self, node: &ModuleItem) {
5934        match self {
5935            swc_visit::Either::Left(visitor) => Visit::visit_module_item(visitor, node),
5936            swc_visit::Either::Right(visitor) => Visit::visit_module_item(visitor, node),
5937        }
5938    }
5939
5940    #[inline]
5941    fn visit_module_items(&mut self, node: &[ModuleItem]) {
5942        match self {
5943            swc_visit::Either::Left(visitor) => Visit::visit_module_items(visitor, node),
5944            swc_visit::Either::Right(visitor) => Visit::visit_module_items(visitor, node),
5945        }
5946    }
5947
5948    #[inline]
5949    fn visit_named_export(&mut self, node: &NamedExport) {
5950        match self {
5951            swc_visit::Either::Left(visitor) => Visit::visit_named_export(visitor, node),
5952            swc_visit::Either::Right(visitor) => Visit::visit_named_export(visitor, node),
5953        }
5954    }
5955
5956    #[inline]
5957    fn visit_new_expr(&mut self, node: &NewExpr) {
5958        match self {
5959            swc_visit::Either::Left(visitor) => Visit::visit_new_expr(visitor, node),
5960            swc_visit::Either::Right(visitor) => Visit::visit_new_expr(visitor, node),
5961        }
5962    }
5963
5964    #[inline]
5965    fn visit_null(&mut self, node: &Null) {
5966        match self {
5967            swc_visit::Either::Left(visitor) => Visit::visit_null(visitor, node),
5968            swc_visit::Either::Right(visitor) => Visit::visit_null(visitor, node),
5969        }
5970    }
5971
5972    #[inline]
5973    fn visit_number(&mut self, node: &Number) {
5974        match self {
5975            swc_visit::Either::Left(visitor) => Visit::visit_number(visitor, node),
5976            swc_visit::Either::Right(visitor) => Visit::visit_number(visitor, node),
5977        }
5978    }
5979
5980    #[inline]
5981    fn visit_object_lit(&mut self, node: &ObjectLit) {
5982        match self {
5983            swc_visit::Either::Left(visitor) => Visit::visit_object_lit(visitor, node),
5984            swc_visit::Either::Right(visitor) => Visit::visit_object_lit(visitor, node),
5985        }
5986    }
5987
5988    #[inline]
5989    fn visit_object_pat(&mut self, node: &ObjectPat) {
5990        match self {
5991            swc_visit::Either::Left(visitor) => Visit::visit_object_pat(visitor, node),
5992            swc_visit::Either::Right(visitor) => Visit::visit_object_pat(visitor, node),
5993        }
5994    }
5995
5996    #[inline]
5997    fn visit_object_pat_prop(&mut self, node: &ObjectPatProp) {
5998        match self {
5999            swc_visit::Either::Left(visitor) => Visit::visit_object_pat_prop(visitor, node),
6000            swc_visit::Either::Right(visitor) => Visit::visit_object_pat_prop(visitor, node),
6001        }
6002    }
6003
6004    #[inline]
6005    fn visit_object_pat_props(&mut self, node: &[ObjectPatProp]) {
6006        match self {
6007            swc_visit::Either::Left(visitor) => Visit::visit_object_pat_props(visitor, node),
6008            swc_visit::Either::Right(visitor) => Visit::visit_object_pat_props(visitor, node),
6009        }
6010    }
6011
6012    #[inline]
6013    fn visit_opt_accessibility(&mut self, node: &Option<Accessibility>) {
6014        match self {
6015            swc_visit::Either::Left(visitor) => Visit::visit_opt_accessibility(visitor, node),
6016            swc_visit::Either::Right(visitor) => Visit::visit_opt_accessibility(visitor, node),
6017        }
6018    }
6019
6020    #[inline]
6021    fn visit_opt_atom(&mut self, node: &Option<swc_atoms::Atom>) {
6022        match self {
6023            swc_visit::Either::Left(visitor) => Visit::visit_opt_atom(visitor, node),
6024            swc_visit::Either::Right(visitor) => Visit::visit_opt_atom(visitor, node),
6025        }
6026    }
6027
6028    #[inline]
6029    fn visit_opt_block_stmt(&mut self, node: &Option<BlockStmt>) {
6030        match self {
6031            swc_visit::Either::Left(visitor) => Visit::visit_opt_block_stmt(visitor, node),
6032            swc_visit::Either::Right(visitor) => Visit::visit_opt_block_stmt(visitor, node),
6033        }
6034    }
6035
6036    #[inline]
6037    fn visit_opt_call(&mut self, node: &OptCall) {
6038        match self {
6039            swc_visit::Either::Left(visitor) => Visit::visit_opt_call(visitor, node),
6040            swc_visit::Either::Right(visitor) => Visit::visit_opt_call(visitor, node),
6041        }
6042    }
6043
6044    #[inline]
6045    fn visit_opt_catch_clause(&mut self, node: &Option<CatchClause>) {
6046        match self {
6047            swc_visit::Either::Left(visitor) => Visit::visit_opt_catch_clause(visitor, node),
6048            swc_visit::Either::Right(visitor) => Visit::visit_opt_catch_clause(visitor, node),
6049        }
6050    }
6051
6052    #[inline]
6053    fn visit_opt_chain_base(&mut self, node: &OptChainBase) {
6054        match self {
6055            swc_visit::Either::Left(visitor) => Visit::visit_opt_chain_base(visitor, node),
6056            swc_visit::Either::Right(visitor) => Visit::visit_opt_chain_base(visitor, node),
6057        }
6058    }
6059
6060    #[inline]
6061    fn visit_opt_chain_expr(&mut self, node: &OptChainExpr) {
6062        match self {
6063            swc_visit::Either::Left(visitor) => Visit::visit_opt_chain_expr(visitor, node),
6064            swc_visit::Either::Right(visitor) => Visit::visit_opt_chain_expr(visitor, node),
6065        }
6066    }
6067
6068    #[inline]
6069    fn visit_opt_expr(&mut self, node: &Option<Box<Expr>>) {
6070        match self {
6071            swc_visit::Either::Left(visitor) => Visit::visit_opt_expr(visitor, node),
6072            swc_visit::Either::Right(visitor) => Visit::visit_opt_expr(visitor, node),
6073        }
6074    }
6075
6076    #[inline]
6077    fn visit_opt_expr_or_spread(&mut self, node: &Option<ExprOrSpread>) {
6078        match self {
6079            swc_visit::Either::Left(visitor) => Visit::visit_opt_expr_or_spread(visitor, node),
6080            swc_visit::Either::Right(visitor) => Visit::visit_opt_expr_or_spread(visitor, node),
6081        }
6082    }
6083
6084    #[inline]
6085    fn visit_opt_expr_or_spreads(&mut self, node: &Option<Vec<ExprOrSpread>>) {
6086        match self {
6087            swc_visit::Either::Left(visitor) => Visit::visit_opt_expr_or_spreads(visitor, node),
6088            swc_visit::Either::Right(visitor) => Visit::visit_opt_expr_or_spreads(visitor, node),
6089        }
6090    }
6091
6092    #[inline]
6093    fn visit_opt_ident(&mut self, node: &Option<Ident>) {
6094        match self {
6095            swc_visit::Either::Left(visitor) => Visit::visit_opt_ident(visitor, node),
6096            swc_visit::Either::Right(visitor) => Visit::visit_opt_ident(visitor, node),
6097        }
6098    }
6099
6100    #[inline]
6101    fn visit_opt_jsx_attr_value(&mut self, node: &Option<JSXAttrValue>) {
6102        match self {
6103            swc_visit::Either::Left(visitor) => Visit::visit_opt_jsx_attr_value(visitor, node),
6104            swc_visit::Either::Right(visitor) => Visit::visit_opt_jsx_attr_value(visitor, node),
6105        }
6106    }
6107
6108    #[inline]
6109    fn visit_opt_jsx_closing_element(&mut self, node: &Option<JSXClosingElement>) {
6110        match self {
6111            swc_visit::Either::Left(visitor) => Visit::visit_opt_jsx_closing_element(visitor, node),
6112            swc_visit::Either::Right(visitor) => {
6113                Visit::visit_opt_jsx_closing_element(visitor, node)
6114            }
6115        }
6116    }
6117
6118    #[inline]
6119    fn visit_opt_module_export_name(&mut self, node: &Option<ModuleExportName>) {
6120        match self {
6121            swc_visit::Either::Left(visitor) => Visit::visit_opt_module_export_name(visitor, node),
6122            swc_visit::Either::Right(visitor) => Visit::visit_opt_module_export_name(visitor, node),
6123        }
6124    }
6125
6126    #[inline]
6127    fn visit_opt_object_lit(&mut self, node: &Option<Box<ObjectLit>>) {
6128        match self {
6129            swc_visit::Either::Left(visitor) => Visit::visit_opt_object_lit(visitor, node),
6130            swc_visit::Either::Right(visitor) => Visit::visit_opt_object_lit(visitor, node),
6131        }
6132    }
6133
6134    #[inline]
6135    fn visit_opt_pat(&mut self, node: &Option<Pat>) {
6136        match self {
6137            swc_visit::Either::Left(visitor) => Visit::visit_opt_pat(visitor, node),
6138            swc_visit::Either::Right(visitor) => Visit::visit_opt_pat(visitor, node),
6139        }
6140    }
6141
6142    #[inline]
6143    fn visit_opt_span(&mut self, node: &Option<swc_common::Span>) {
6144        match self {
6145            swc_visit::Either::Left(visitor) => Visit::visit_opt_span(visitor, node),
6146            swc_visit::Either::Right(visitor) => Visit::visit_opt_span(visitor, node),
6147        }
6148    }
6149
6150    #[inline]
6151    fn visit_opt_stmt(&mut self, node: &Option<Box<Stmt>>) {
6152        match self {
6153            swc_visit::Either::Left(visitor) => Visit::visit_opt_stmt(visitor, node),
6154            swc_visit::Either::Right(visitor) => Visit::visit_opt_stmt(visitor, node),
6155        }
6156    }
6157
6158    #[inline]
6159    fn visit_opt_str(&mut self, node: &Option<Box<Str>>) {
6160        match self {
6161            swc_visit::Either::Left(visitor) => Visit::visit_opt_str(visitor, node),
6162            swc_visit::Either::Right(visitor) => Visit::visit_opt_str(visitor, node),
6163        }
6164    }
6165
6166    #[inline]
6167    fn visit_opt_true_plus_minus(&mut self, node: &Option<TruePlusMinus>) {
6168        match self {
6169            swc_visit::Either::Left(visitor) => Visit::visit_opt_true_plus_minus(visitor, node),
6170            swc_visit::Either::Right(visitor) => Visit::visit_opt_true_plus_minus(visitor, node),
6171        }
6172    }
6173
6174    #[inline]
6175    fn visit_opt_ts_entity_name(&mut self, node: &Option<TsEntityName>) {
6176        match self {
6177            swc_visit::Either::Left(visitor) => Visit::visit_opt_ts_entity_name(visitor, node),
6178            swc_visit::Either::Right(visitor) => Visit::visit_opt_ts_entity_name(visitor, node),
6179        }
6180    }
6181
6182    #[inline]
6183    fn visit_opt_ts_import_call_options(&mut self, node: &Option<TsImportCallOptions>) {
6184        match self {
6185            swc_visit::Either::Left(visitor) => {
6186                Visit::visit_opt_ts_import_call_options(visitor, node)
6187            }
6188            swc_visit::Either::Right(visitor) => {
6189                Visit::visit_opt_ts_import_call_options(visitor, node)
6190            }
6191        }
6192    }
6193
6194    #[inline]
6195    fn visit_opt_ts_namespace_body(&mut self, node: &Option<TsNamespaceBody>) {
6196        match self {
6197            swc_visit::Either::Left(visitor) => Visit::visit_opt_ts_namespace_body(visitor, node),
6198            swc_visit::Either::Right(visitor) => Visit::visit_opt_ts_namespace_body(visitor, node),
6199        }
6200    }
6201
6202    #[inline]
6203    fn visit_opt_ts_type(&mut self, node: &Option<Box<TsType>>) {
6204        match self {
6205            swc_visit::Either::Left(visitor) => Visit::visit_opt_ts_type(visitor, node),
6206            swc_visit::Either::Right(visitor) => Visit::visit_opt_ts_type(visitor, node),
6207        }
6208    }
6209
6210    #[inline]
6211    fn visit_opt_ts_type_ann(&mut self, node: &Option<Box<TsTypeAnn>>) {
6212        match self {
6213            swc_visit::Either::Left(visitor) => Visit::visit_opt_ts_type_ann(visitor, node),
6214            swc_visit::Either::Right(visitor) => Visit::visit_opt_ts_type_ann(visitor, node),
6215        }
6216    }
6217
6218    #[inline]
6219    fn visit_opt_ts_type_param_decl(&mut self, node: &Option<Box<TsTypeParamDecl>>) {
6220        match self {
6221            swc_visit::Either::Left(visitor) => Visit::visit_opt_ts_type_param_decl(visitor, node),
6222            swc_visit::Either::Right(visitor) => Visit::visit_opt_ts_type_param_decl(visitor, node),
6223        }
6224    }
6225
6226    #[inline]
6227    fn visit_opt_ts_type_param_instantiation(
6228        &mut self,
6229        node: &Option<Box<TsTypeParamInstantiation>>,
6230    ) {
6231        match self {
6232            swc_visit::Either::Left(visitor) => {
6233                Visit::visit_opt_ts_type_param_instantiation(visitor, node)
6234            }
6235            swc_visit::Either::Right(visitor) => {
6236                Visit::visit_opt_ts_type_param_instantiation(visitor, node)
6237            }
6238        }
6239    }
6240
6241    #[inline]
6242    fn visit_opt_var_decl_or_expr(&mut self, node: &Option<VarDeclOrExpr>) {
6243        match self {
6244            swc_visit::Either::Left(visitor) => Visit::visit_opt_var_decl_or_expr(visitor, node),
6245            swc_visit::Either::Right(visitor) => Visit::visit_opt_var_decl_or_expr(visitor, node),
6246        }
6247    }
6248
6249    #[inline]
6250    fn visit_opt_vec_expr_or_spreads(&mut self, node: &[Option<ExprOrSpread>]) {
6251        match self {
6252            swc_visit::Either::Left(visitor) => Visit::visit_opt_vec_expr_or_spreads(visitor, node),
6253            swc_visit::Either::Right(visitor) => {
6254                Visit::visit_opt_vec_expr_or_spreads(visitor, node)
6255            }
6256        }
6257    }
6258
6259    #[inline]
6260    fn visit_opt_vec_pats(&mut self, node: &[Option<Pat>]) {
6261        match self {
6262            swc_visit::Either::Left(visitor) => Visit::visit_opt_vec_pats(visitor, node),
6263            swc_visit::Either::Right(visitor) => Visit::visit_opt_vec_pats(visitor, node),
6264        }
6265    }
6266
6267    #[inline]
6268    fn visit_param(&mut self, node: &Param) {
6269        match self {
6270            swc_visit::Either::Left(visitor) => Visit::visit_param(visitor, node),
6271            swc_visit::Either::Right(visitor) => Visit::visit_param(visitor, node),
6272        }
6273    }
6274
6275    #[inline]
6276    fn visit_param_or_ts_param_prop(&mut self, node: &ParamOrTsParamProp) {
6277        match self {
6278            swc_visit::Either::Left(visitor) => Visit::visit_param_or_ts_param_prop(visitor, node),
6279            swc_visit::Either::Right(visitor) => Visit::visit_param_or_ts_param_prop(visitor, node),
6280        }
6281    }
6282
6283    #[inline]
6284    fn visit_param_or_ts_param_props(&mut self, node: &[ParamOrTsParamProp]) {
6285        match self {
6286            swc_visit::Either::Left(visitor) => Visit::visit_param_or_ts_param_props(visitor, node),
6287            swc_visit::Either::Right(visitor) => {
6288                Visit::visit_param_or_ts_param_props(visitor, node)
6289            }
6290        }
6291    }
6292
6293    #[inline]
6294    fn visit_params(&mut self, node: &[Param]) {
6295        match self {
6296            swc_visit::Either::Left(visitor) => Visit::visit_params(visitor, node),
6297            swc_visit::Either::Right(visitor) => Visit::visit_params(visitor, node),
6298        }
6299    }
6300
6301    #[inline]
6302    fn visit_paren_expr(&mut self, node: &ParenExpr) {
6303        match self {
6304            swc_visit::Either::Left(visitor) => Visit::visit_paren_expr(visitor, node),
6305            swc_visit::Either::Right(visitor) => Visit::visit_paren_expr(visitor, node),
6306        }
6307    }
6308
6309    #[inline]
6310    fn visit_pat(&mut self, node: &Pat) {
6311        match self {
6312            swc_visit::Either::Left(visitor) => Visit::visit_pat(visitor, node),
6313            swc_visit::Either::Right(visitor) => Visit::visit_pat(visitor, node),
6314        }
6315    }
6316
6317    #[inline]
6318    fn visit_pats(&mut self, node: &[Pat]) {
6319        match self {
6320            swc_visit::Either::Left(visitor) => Visit::visit_pats(visitor, node),
6321            swc_visit::Either::Right(visitor) => Visit::visit_pats(visitor, node),
6322        }
6323    }
6324
6325    #[inline]
6326    fn visit_private_method(&mut self, node: &PrivateMethod) {
6327        match self {
6328            swc_visit::Either::Left(visitor) => Visit::visit_private_method(visitor, node),
6329            swc_visit::Either::Right(visitor) => Visit::visit_private_method(visitor, node),
6330        }
6331    }
6332
6333    #[inline]
6334    fn visit_private_name(&mut self, node: &PrivateName) {
6335        match self {
6336            swc_visit::Either::Left(visitor) => Visit::visit_private_name(visitor, node),
6337            swc_visit::Either::Right(visitor) => Visit::visit_private_name(visitor, node),
6338        }
6339    }
6340
6341    #[inline]
6342    fn visit_private_prop(&mut self, node: &PrivateProp) {
6343        match self {
6344            swc_visit::Either::Left(visitor) => Visit::visit_private_prop(visitor, node),
6345            swc_visit::Either::Right(visitor) => Visit::visit_private_prop(visitor, node),
6346        }
6347    }
6348
6349    #[inline]
6350    fn visit_program(&mut self, node: &Program) {
6351        match self {
6352            swc_visit::Either::Left(visitor) => Visit::visit_program(visitor, node),
6353            swc_visit::Either::Right(visitor) => Visit::visit_program(visitor, node),
6354        }
6355    }
6356
6357    #[inline]
6358    fn visit_prop(&mut self, node: &Prop) {
6359        match self {
6360            swc_visit::Either::Left(visitor) => Visit::visit_prop(visitor, node),
6361            swc_visit::Either::Right(visitor) => Visit::visit_prop(visitor, node),
6362        }
6363    }
6364
6365    #[inline]
6366    fn visit_prop_name(&mut self, node: &PropName) {
6367        match self {
6368            swc_visit::Either::Left(visitor) => Visit::visit_prop_name(visitor, node),
6369            swc_visit::Either::Right(visitor) => Visit::visit_prop_name(visitor, node),
6370        }
6371    }
6372
6373    #[inline]
6374    fn visit_prop_or_spread(&mut self, node: &PropOrSpread) {
6375        match self {
6376            swc_visit::Either::Left(visitor) => Visit::visit_prop_or_spread(visitor, node),
6377            swc_visit::Either::Right(visitor) => Visit::visit_prop_or_spread(visitor, node),
6378        }
6379    }
6380
6381    #[inline]
6382    fn visit_prop_or_spreads(&mut self, node: &[PropOrSpread]) {
6383        match self {
6384            swc_visit::Either::Left(visitor) => Visit::visit_prop_or_spreads(visitor, node),
6385            swc_visit::Either::Right(visitor) => Visit::visit_prop_or_spreads(visitor, node),
6386        }
6387    }
6388
6389    #[inline]
6390    fn visit_regex(&mut self, node: &Regex) {
6391        match self {
6392            swc_visit::Either::Left(visitor) => Visit::visit_regex(visitor, node),
6393            swc_visit::Either::Right(visitor) => Visit::visit_regex(visitor, node),
6394        }
6395    }
6396
6397    #[inline]
6398    fn visit_rest_pat(&mut self, node: &RestPat) {
6399        match self {
6400            swc_visit::Either::Left(visitor) => Visit::visit_rest_pat(visitor, node),
6401            swc_visit::Either::Right(visitor) => Visit::visit_rest_pat(visitor, node),
6402        }
6403    }
6404
6405    #[inline]
6406    fn visit_return_stmt(&mut self, node: &ReturnStmt) {
6407        match self {
6408            swc_visit::Either::Left(visitor) => Visit::visit_return_stmt(visitor, node),
6409            swc_visit::Either::Right(visitor) => Visit::visit_return_stmt(visitor, node),
6410        }
6411    }
6412
6413    #[inline]
6414    fn visit_script(&mut self, node: &Script) {
6415        match self {
6416            swc_visit::Either::Left(visitor) => Visit::visit_script(visitor, node),
6417            swc_visit::Either::Right(visitor) => Visit::visit_script(visitor, node),
6418        }
6419    }
6420
6421    #[inline]
6422    fn visit_seq_expr(&mut self, node: &SeqExpr) {
6423        match self {
6424            swc_visit::Either::Left(visitor) => Visit::visit_seq_expr(visitor, node),
6425            swc_visit::Either::Right(visitor) => Visit::visit_seq_expr(visitor, node),
6426        }
6427    }
6428
6429    #[inline]
6430    fn visit_setter_prop(&mut self, node: &SetterProp) {
6431        match self {
6432            swc_visit::Either::Left(visitor) => Visit::visit_setter_prop(visitor, node),
6433            swc_visit::Either::Right(visitor) => Visit::visit_setter_prop(visitor, node),
6434        }
6435    }
6436
6437    #[inline]
6438    fn visit_simple_assign_target(&mut self, node: &SimpleAssignTarget) {
6439        match self {
6440            swc_visit::Either::Left(visitor) => Visit::visit_simple_assign_target(visitor, node),
6441            swc_visit::Either::Right(visitor) => Visit::visit_simple_assign_target(visitor, node),
6442        }
6443    }
6444
6445    #[inline]
6446    fn visit_span(&mut self, node: &swc_common::Span) {
6447        match self {
6448            swc_visit::Either::Left(visitor) => Visit::visit_span(visitor, node),
6449            swc_visit::Either::Right(visitor) => Visit::visit_span(visitor, node),
6450        }
6451    }
6452
6453    #[inline]
6454    fn visit_spread_element(&mut self, node: &SpreadElement) {
6455        match self {
6456            swc_visit::Either::Left(visitor) => Visit::visit_spread_element(visitor, node),
6457            swc_visit::Either::Right(visitor) => Visit::visit_spread_element(visitor, node),
6458        }
6459    }
6460
6461    #[inline]
6462    fn visit_static_block(&mut self, node: &StaticBlock) {
6463        match self {
6464            swc_visit::Either::Left(visitor) => Visit::visit_static_block(visitor, node),
6465            swc_visit::Either::Right(visitor) => Visit::visit_static_block(visitor, node),
6466        }
6467    }
6468
6469    #[inline]
6470    fn visit_stmt(&mut self, node: &Stmt) {
6471        match self {
6472            swc_visit::Either::Left(visitor) => Visit::visit_stmt(visitor, node),
6473            swc_visit::Either::Right(visitor) => Visit::visit_stmt(visitor, node),
6474        }
6475    }
6476
6477    #[inline]
6478    fn visit_stmts(&mut self, node: &[Stmt]) {
6479        match self {
6480            swc_visit::Either::Left(visitor) => Visit::visit_stmts(visitor, node),
6481            swc_visit::Either::Right(visitor) => Visit::visit_stmts(visitor, node),
6482        }
6483    }
6484
6485    #[inline]
6486    fn visit_str(&mut self, node: &Str) {
6487        match self {
6488            swc_visit::Either::Left(visitor) => Visit::visit_str(visitor, node),
6489            swc_visit::Either::Right(visitor) => Visit::visit_str(visitor, node),
6490        }
6491    }
6492
6493    #[inline]
6494    fn visit_super(&mut self, node: &Super) {
6495        match self {
6496            swc_visit::Either::Left(visitor) => Visit::visit_super(visitor, node),
6497            swc_visit::Either::Right(visitor) => Visit::visit_super(visitor, node),
6498        }
6499    }
6500
6501    #[inline]
6502    fn visit_super_prop(&mut self, node: &SuperProp) {
6503        match self {
6504            swc_visit::Either::Left(visitor) => Visit::visit_super_prop(visitor, node),
6505            swc_visit::Either::Right(visitor) => Visit::visit_super_prop(visitor, node),
6506        }
6507    }
6508
6509    #[inline]
6510    fn visit_super_prop_expr(&mut self, node: &SuperPropExpr) {
6511        match self {
6512            swc_visit::Either::Left(visitor) => Visit::visit_super_prop_expr(visitor, node),
6513            swc_visit::Either::Right(visitor) => Visit::visit_super_prop_expr(visitor, node),
6514        }
6515    }
6516
6517    #[inline]
6518    fn visit_switch_case(&mut self, node: &SwitchCase) {
6519        match self {
6520            swc_visit::Either::Left(visitor) => Visit::visit_switch_case(visitor, node),
6521            swc_visit::Either::Right(visitor) => Visit::visit_switch_case(visitor, node),
6522        }
6523    }
6524
6525    #[inline]
6526    fn visit_switch_cases(&mut self, node: &[SwitchCase]) {
6527        match self {
6528            swc_visit::Either::Left(visitor) => Visit::visit_switch_cases(visitor, node),
6529            swc_visit::Either::Right(visitor) => Visit::visit_switch_cases(visitor, node),
6530        }
6531    }
6532
6533    #[inline]
6534    fn visit_switch_stmt(&mut self, node: &SwitchStmt) {
6535        match self {
6536            swc_visit::Either::Left(visitor) => Visit::visit_switch_stmt(visitor, node),
6537            swc_visit::Either::Right(visitor) => Visit::visit_switch_stmt(visitor, node),
6538        }
6539    }
6540
6541    #[inline]
6542    fn visit_syntax_context(&mut self, node: &swc_common::SyntaxContext) {
6543        match self {
6544            swc_visit::Either::Left(visitor) => Visit::visit_syntax_context(visitor, node),
6545            swc_visit::Either::Right(visitor) => Visit::visit_syntax_context(visitor, node),
6546        }
6547    }
6548
6549    #[inline]
6550    fn visit_tagged_tpl(&mut self, node: &TaggedTpl) {
6551        match self {
6552            swc_visit::Either::Left(visitor) => Visit::visit_tagged_tpl(visitor, node),
6553            swc_visit::Either::Right(visitor) => Visit::visit_tagged_tpl(visitor, node),
6554        }
6555    }
6556
6557    #[inline]
6558    fn visit_this_expr(&mut self, node: &ThisExpr) {
6559        match self {
6560            swc_visit::Either::Left(visitor) => Visit::visit_this_expr(visitor, node),
6561            swc_visit::Either::Right(visitor) => Visit::visit_this_expr(visitor, node),
6562        }
6563    }
6564
6565    #[inline]
6566    fn visit_throw_stmt(&mut self, node: &ThrowStmt) {
6567        match self {
6568            swc_visit::Either::Left(visitor) => Visit::visit_throw_stmt(visitor, node),
6569            swc_visit::Either::Right(visitor) => Visit::visit_throw_stmt(visitor, node),
6570        }
6571    }
6572
6573    #[inline]
6574    fn visit_tpl(&mut self, node: &Tpl) {
6575        match self {
6576            swc_visit::Either::Left(visitor) => Visit::visit_tpl(visitor, node),
6577            swc_visit::Either::Right(visitor) => Visit::visit_tpl(visitor, node),
6578        }
6579    }
6580
6581    #[inline]
6582    fn visit_tpl_element(&mut self, node: &TplElement) {
6583        match self {
6584            swc_visit::Either::Left(visitor) => Visit::visit_tpl_element(visitor, node),
6585            swc_visit::Either::Right(visitor) => Visit::visit_tpl_element(visitor, node),
6586        }
6587    }
6588
6589    #[inline]
6590    fn visit_tpl_elements(&mut self, node: &[TplElement]) {
6591        match self {
6592            swc_visit::Either::Left(visitor) => Visit::visit_tpl_elements(visitor, node),
6593            swc_visit::Either::Right(visitor) => Visit::visit_tpl_elements(visitor, node),
6594        }
6595    }
6596
6597    #[inline]
6598    fn visit_true_plus_minus(&mut self, node: &TruePlusMinus) {
6599        match self {
6600            swc_visit::Either::Left(visitor) => Visit::visit_true_plus_minus(visitor, node),
6601            swc_visit::Either::Right(visitor) => Visit::visit_true_plus_minus(visitor, node),
6602        }
6603    }
6604
6605    #[inline]
6606    fn visit_try_stmt(&mut self, node: &TryStmt) {
6607        match self {
6608            swc_visit::Either::Left(visitor) => Visit::visit_try_stmt(visitor, node),
6609            swc_visit::Either::Right(visitor) => Visit::visit_try_stmt(visitor, node),
6610        }
6611    }
6612
6613    #[inline]
6614    fn visit_ts_array_type(&mut self, node: &TsArrayType) {
6615        match self {
6616            swc_visit::Either::Left(visitor) => Visit::visit_ts_array_type(visitor, node),
6617            swc_visit::Either::Right(visitor) => Visit::visit_ts_array_type(visitor, node),
6618        }
6619    }
6620
6621    #[inline]
6622    fn visit_ts_as_expr(&mut self, node: &TsAsExpr) {
6623        match self {
6624            swc_visit::Either::Left(visitor) => Visit::visit_ts_as_expr(visitor, node),
6625            swc_visit::Either::Right(visitor) => Visit::visit_ts_as_expr(visitor, node),
6626        }
6627    }
6628
6629    #[inline]
6630    fn visit_ts_call_signature_decl(&mut self, node: &TsCallSignatureDecl) {
6631        match self {
6632            swc_visit::Either::Left(visitor) => Visit::visit_ts_call_signature_decl(visitor, node),
6633            swc_visit::Either::Right(visitor) => Visit::visit_ts_call_signature_decl(visitor, node),
6634        }
6635    }
6636
6637    #[inline]
6638    fn visit_ts_conditional_type(&mut self, node: &TsConditionalType) {
6639        match self {
6640            swc_visit::Either::Left(visitor) => Visit::visit_ts_conditional_type(visitor, node),
6641            swc_visit::Either::Right(visitor) => Visit::visit_ts_conditional_type(visitor, node),
6642        }
6643    }
6644
6645    #[inline]
6646    fn visit_ts_const_assertion(&mut self, node: &TsConstAssertion) {
6647        match self {
6648            swc_visit::Either::Left(visitor) => Visit::visit_ts_const_assertion(visitor, node),
6649            swc_visit::Either::Right(visitor) => Visit::visit_ts_const_assertion(visitor, node),
6650        }
6651    }
6652
6653    #[inline]
6654    fn visit_ts_construct_signature_decl(&mut self, node: &TsConstructSignatureDecl) {
6655        match self {
6656            swc_visit::Either::Left(visitor) => {
6657                Visit::visit_ts_construct_signature_decl(visitor, node)
6658            }
6659            swc_visit::Either::Right(visitor) => {
6660                Visit::visit_ts_construct_signature_decl(visitor, node)
6661            }
6662        }
6663    }
6664
6665    #[inline]
6666    fn visit_ts_constructor_type(&mut self, node: &TsConstructorType) {
6667        match self {
6668            swc_visit::Either::Left(visitor) => Visit::visit_ts_constructor_type(visitor, node),
6669            swc_visit::Either::Right(visitor) => Visit::visit_ts_constructor_type(visitor, node),
6670        }
6671    }
6672
6673    #[inline]
6674    fn visit_ts_entity_name(&mut self, node: &TsEntityName) {
6675        match self {
6676            swc_visit::Either::Left(visitor) => Visit::visit_ts_entity_name(visitor, node),
6677            swc_visit::Either::Right(visitor) => Visit::visit_ts_entity_name(visitor, node),
6678        }
6679    }
6680
6681    #[inline]
6682    fn visit_ts_enum_decl(&mut self, node: &TsEnumDecl) {
6683        match self {
6684            swc_visit::Either::Left(visitor) => Visit::visit_ts_enum_decl(visitor, node),
6685            swc_visit::Either::Right(visitor) => Visit::visit_ts_enum_decl(visitor, node),
6686        }
6687    }
6688
6689    #[inline]
6690    fn visit_ts_enum_member(&mut self, node: &TsEnumMember) {
6691        match self {
6692            swc_visit::Either::Left(visitor) => Visit::visit_ts_enum_member(visitor, node),
6693            swc_visit::Either::Right(visitor) => Visit::visit_ts_enum_member(visitor, node),
6694        }
6695    }
6696
6697    #[inline]
6698    fn visit_ts_enum_member_id(&mut self, node: &TsEnumMemberId) {
6699        match self {
6700            swc_visit::Either::Left(visitor) => Visit::visit_ts_enum_member_id(visitor, node),
6701            swc_visit::Either::Right(visitor) => Visit::visit_ts_enum_member_id(visitor, node),
6702        }
6703    }
6704
6705    #[inline]
6706    fn visit_ts_enum_members(&mut self, node: &[TsEnumMember]) {
6707        match self {
6708            swc_visit::Either::Left(visitor) => Visit::visit_ts_enum_members(visitor, node),
6709            swc_visit::Either::Right(visitor) => Visit::visit_ts_enum_members(visitor, node),
6710        }
6711    }
6712
6713    #[inline]
6714    fn visit_ts_export_assignment(&mut self, node: &TsExportAssignment) {
6715        match self {
6716            swc_visit::Either::Left(visitor) => Visit::visit_ts_export_assignment(visitor, node),
6717            swc_visit::Either::Right(visitor) => Visit::visit_ts_export_assignment(visitor, node),
6718        }
6719    }
6720
6721    #[inline]
6722    fn visit_ts_expr_with_type_args(&mut self, node: &TsExprWithTypeArgs) {
6723        match self {
6724            swc_visit::Either::Left(visitor) => Visit::visit_ts_expr_with_type_args(visitor, node),
6725            swc_visit::Either::Right(visitor) => Visit::visit_ts_expr_with_type_args(visitor, node),
6726        }
6727    }
6728
6729    #[inline]
6730    fn visit_ts_expr_with_type_argss(&mut self, node: &[TsExprWithTypeArgs]) {
6731        match self {
6732            swc_visit::Either::Left(visitor) => Visit::visit_ts_expr_with_type_argss(visitor, node),
6733            swc_visit::Either::Right(visitor) => {
6734                Visit::visit_ts_expr_with_type_argss(visitor, node)
6735            }
6736        }
6737    }
6738
6739    #[inline]
6740    fn visit_ts_external_module_ref(&mut self, node: &TsExternalModuleRef) {
6741        match self {
6742            swc_visit::Either::Left(visitor) => Visit::visit_ts_external_module_ref(visitor, node),
6743            swc_visit::Either::Right(visitor) => Visit::visit_ts_external_module_ref(visitor, node),
6744        }
6745    }
6746
6747    #[inline]
6748    fn visit_ts_fn_or_constructor_type(&mut self, node: &TsFnOrConstructorType) {
6749        match self {
6750            swc_visit::Either::Left(visitor) => {
6751                Visit::visit_ts_fn_or_constructor_type(visitor, node)
6752            }
6753            swc_visit::Either::Right(visitor) => {
6754                Visit::visit_ts_fn_or_constructor_type(visitor, node)
6755            }
6756        }
6757    }
6758
6759    #[inline]
6760    fn visit_ts_fn_param(&mut self, node: &TsFnParam) {
6761        match self {
6762            swc_visit::Either::Left(visitor) => Visit::visit_ts_fn_param(visitor, node),
6763            swc_visit::Either::Right(visitor) => Visit::visit_ts_fn_param(visitor, node),
6764        }
6765    }
6766
6767    #[inline]
6768    fn visit_ts_fn_params(&mut self, node: &[TsFnParam]) {
6769        match self {
6770            swc_visit::Either::Left(visitor) => Visit::visit_ts_fn_params(visitor, node),
6771            swc_visit::Either::Right(visitor) => Visit::visit_ts_fn_params(visitor, node),
6772        }
6773    }
6774
6775    #[inline]
6776    fn visit_ts_fn_type(&mut self, node: &TsFnType) {
6777        match self {
6778            swc_visit::Either::Left(visitor) => Visit::visit_ts_fn_type(visitor, node),
6779            swc_visit::Either::Right(visitor) => Visit::visit_ts_fn_type(visitor, node),
6780        }
6781    }
6782
6783    #[inline]
6784    fn visit_ts_getter_signature(&mut self, node: &TsGetterSignature) {
6785        match self {
6786            swc_visit::Either::Left(visitor) => Visit::visit_ts_getter_signature(visitor, node),
6787            swc_visit::Either::Right(visitor) => Visit::visit_ts_getter_signature(visitor, node),
6788        }
6789    }
6790
6791    #[inline]
6792    fn visit_ts_import_call_options(&mut self, node: &TsImportCallOptions) {
6793        match self {
6794            swc_visit::Either::Left(visitor) => Visit::visit_ts_import_call_options(visitor, node),
6795            swc_visit::Either::Right(visitor) => Visit::visit_ts_import_call_options(visitor, node),
6796        }
6797    }
6798
6799    #[inline]
6800    fn visit_ts_import_equals_decl(&mut self, node: &TsImportEqualsDecl) {
6801        match self {
6802            swc_visit::Either::Left(visitor) => Visit::visit_ts_import_equals_decl(visitor, node),
6803            swc_visit::Either::Right(visitor) => Visit::visit_ts_import_equals_decl(visitor, node),
6804        }
6805    }
6806
6807    #[inline]
6808    fn visit_ts_import_type(&mut self, node: &TsImportType) {
6809        match self {
6810            swc_visit::Either::Left(visitor) => Visit::visit_ts_import_type(visitor, node),
6811            swc_visit::Either::Right(visitor) => Visit::visit_ts_import_type(visitor, node),
6812        }
6813    }
6814
6815    #[inline]
6816    fn visit_ts_index_signature(&mut self, node: &TsIndexSignature) {
6817        match self {
6818            swc_visit::Either::Left(visitor) => Visit::visit_ts_index_signature(visitor, node),
6819            swc_visit::Either::Right(visitor) => Visit::visit_ts_index_signature(visitor, node),
6820        }
6821    }
6822
6823    #[inline]
6824    fn visit_ts_indexed_access_type(&mut self, node: &TsIndexedAccessType) {
6825        match self {
6826            swc_visit::Either::Left(visitor) => Visit::visit_ts_indexed_access_type(visitor, node),
6827            swc_visit::Either::Right(visitor) => Visit::visit_ts_indexed_access_type(visitor, node),
6828        }
6829    }
6830
6831    #[inline]
6832    fn visit_ts_infer_type(&mut self, node: &TsInferType) {
6833        match self {
6834            swc_visit::Either::Left(visitor) => Visit::visit_ts_infer_type(visitor, node),
6835            swc_visit::Either::Right(visitor) => Visit::visit_ts_infer_type(visitor, node),
6836        }
6837    }
6838
6839    #[inline]
6840    fn visit_ts_instantiation(&mut self, node: &TsInstantiation) {
6841        match self {
6842            swc_visit::Either::Left(visitor) => Visit::visit_ts_instantiation(visitor, node),
6843            swc_visit::Either::Right(visitor) => Visit::visit_ts_instantiation(visitor, node),
6844        }
6845    }
6846
6847    #[inline]
6848    fn visit_ts_interface_body(&mut self, node: &TsInterfaceBody) {
6849        match self {
6850            swc_visit::Either::Left(visitor) => Visit::visit_ts_interface_body(visitor, node),
6851            swc_visit::Either::Right(visitor) => Visit::visit_ts_interface_body(visitor, node),
6852        }
6853    }
6854
6855    #[inline]
6856    fn visit_ts_interface_decl(&mut self, node: &TsInterfaceDecl) {
6857        match self {
6858            swc_visit::Either::Left(visitor) => Visit::visit_ts_interface_decl(visitor, node),
6859            swc_visit::Either::Right(visitor) => Visit::visit_ts_interface_decl(visitor, node),
6860        }
6861    }
6862
6863    #[inline]
6864    fn visit_ts_intersection_type(&mut self, node: &TsIntersectionType) {
6865        match self {
6866            swc_visit::Either::Left(visitor) => Visit::visit_ts_intersection_type(visitor, node),
6867            swc_visit::Either::Right(visitor) => Visit::visit_ts_intersection_type(visitor, node),
6868        }
6869    }
6870
6871    #[inline]
6872    fn visit_ts_keyword_type(&mut self, node: &TsKeywordType) {
6873        match self {
6874            swc_visit::Either::Left(visitor) => Visit::visit_ts_keyword_type(visitor, node),
6875            swc_visit::Either::Right(visitor) => Visit::visit_ts_keyword_type(visitor, node),
6876        }
6877    }
6878
6879    #[inline]
6880    fn visit_ts_keyword_type_kind(&mut self, node: &TsKeywordTypeKind) {
6881        match self {
6882            swc_visit::Either::Left(visitor) => Visit::visit_ts_keyword_type_kind(visitor, node),
6883            swc_visit::Either::Right(visitor) => Visit::visit_ts_keyword_type_kind(visitor, node),
6884        }
6885    }
6886
6887    #[inline]
6888    fn visit_ts_lit(&mut self, node: &TsLit) {
6889        match self {
6890            swc_visit::Either::Left(visitor) => Visit::visit_ts_lit(visitor, node),
6891            swc_visit::Either::Right(visitor) => Visit::visit_ts_lit(visitor, node),
6892        }
6893    }
6894
6895    #[inline]
6896    fn visit_ts_lit_type(&mut self, node: &TsLitType) {
6897        match self {
6898            swc_visit::Either::Left(visitor) => Visit::visit_ts_lit_type(visitor, node),
6899            swc_visit::Either::Right(visitor) => Visit::visit_ts_lit_type(visitor, node),
6900        }
6901    }
6902
6903    #[inline]
6904    fn visit_ts_mapped_type(&mut self, node: &TsMappedType) {
6905        match self {
6906            swc_visit::Either::Left(visitor) => Visit::visit_ts_mapped_type(visitor, node),
6907            swc_visit::Either::Right(visitor) => Visit::visit_ts_mapped_type(visitor, node),
6908        }
6909    }
6910
6911    #[inline]
6912    fn visit_ts_method_signature(&mut self, node: &TsMethodSignature) {
6913        match self {
6914            swc_visit::Either::Left(visitor) => Visit::visit_ts_method_signature(visitor, node),
6915            swc_visit::Either::Right(visitor) => Visit::visit_ts_method_signature(visitor, node),
6916        }
6917    }
6918
6919    #[inline]
6920    fn visit_ts_module_block(&mut self, node: &TsModuleBlock) {
6921        match self {
6922            swc_visit::Either::Left(visitor) => Visit::visit_ts_module_block(visitor, node),
6923            swc_visit::Either::Right(visitor) => Visit::visit_ts_module_block(visitor, node),
6924        }
6925    }
6926
6927    #[inline]
6928    fn visit_ts_module_decl(&mut self, node: &TsModuleDecl) {
6929        match self {
6930            swc_visit::Either::Left(visitor) => Visit::visit_ts_module_decl(visitor, node),
6931            swc_visit::Either::Right(visitor) => Visit::visit_ts_module_decl(visitor, node),
6932        }
6933    }
6934
6935    #[inline]
6936    fn visit_ts_module_name(&mut self, node: &TsModuleName) {
6937        match self {
6938            swc_visit::Either::Left(visitor) => Visit::visit_ts_module_name(visitor, node),
6939            swc_visit::Either::Right(visitor) => Visit::visit_ts_module_name(visitor, node),
6940        }
6941    }
6942
6943    #[inline]
6944    fn visit_ts_module_ref(&mut self, node: &TsModuleRef) {
6945        match self {
6946            swc_visit::Either::Left(visitor) => Visit::visit_ts_module_ref(visitor, node),
6947            swc_visit::Either::Right(visitor) => Visit::visit_ts_module_ref(visitor, node),
6948        }
6949    }
6950
6951    #[inline]
6952    fn visit_ts_namespace_body(&mut self, node: &TsNamespaceBody) {
6953        match self {
6954            swc_visit::Either::Left(visitor) => Visit::visit_ts_namespace_body(visitor, node),
6955            swc_visit::Either::Right(visitor) => Visit::visit_ts_namespace_body(visitor, node),
6956        }
6957    }
6958
6959    #[inline]
6960    fn visit_ts_namespace_decl(&mut self, node: &TsNamespaceDecl) {
6961        match self {
6962            swc_visit::Either::Left(visitor) => Visit::visit_ts_namespace_decl(visitor, node),
6963            swc_visit::Either::Right(visitor) => Visit::visit_ts_namespace_decl(visitor, node),
6964        }
6965    }
6966
6967    #[inline]
6968    fn visit_ts_namespace_export_decl(&mut self, node: &TsNamespaceExportDecl) {
6969        match self {
6970            swc_visit::Either::Left(visitor) => {
6971                Visit::visit_ts_namespace_export_decl(visitor, node)
6972            }
6973            swc_visit::Either::Right(visitor) => {
6974                Visit::visit_ts_namespace_export_decl(visitor, node)
6975            }
6976        }
6977    }
6978
6979    #[inline]
6980    fn visit_ts_non_null_expr(&mut self, node: &TsNonNullExpr) {
6981        match self {
6982            swc_visit::Either::Left(visitor) => Visit::visit_ts_non_null_expr(visitor, node),
6983            swc_visit::Either::Right(visitor) => Visit::visit_ts_non_null_expr(visitor, node),
6984        }
6985    }
6986
6987    #[inline]
6988    fn visit_ts_optional_type(&mut self, node: &TsOptionalType) {
6989        match self {
6990            swc_visit::Either::Left(visitor) => Visit::visit_ts_optional_type(visitor, node),
6991            swc_visit::Either::Right(visitor) => Visit::visit_ts_optional_type(visitor, node),
6992        }
6993    }
6994
6995    #[inline]
6996    fn visit_ts_param_prop(&mut self, node: &TsParamProp) {
6997        match self {
6998            swc_visit::Either::Left(visitor) => Visit::visit_ts_param_prop(visitor, node),
6999            swc_visit::Either::Right(visitor) => Visit::visit_ts_param_prop(visitor, node),
7000        }
7001    }
7002
7003    #[inline]
7004    fn visit_ts_param_prop_param(&mut self, node: &TsParamPropParam) {
7005        match self {
7006            swc_visit::Either::Left(visitor) => Visit::visit_ts_param_prop_param(visitor, node),
7007            swc_visit::Either::Right(visitor) => Visit::visit_ts_param_prop_param(visitor, node),
7008        }
7009    }
7010
7011    #[inline]
7012    fn visit_ts_parenthesized_type(&mut self, node: &TsParenthesizedType) {
7013        match self {
7014            swc_visit::Either::Left(visitor) => Visit::visit_ts_parenthesized_type(visitor, node),
7015            swc_visit::Either::Right(visitor) => Visit::visit_ts_parenthesized_type(visitor, node),
7016        }
7017    }
7018
7019    #[inline]
7020    fn visit_ts_property_signature(&mut self, node: &TsPropertySignature) {
7021        match self {
7022            swc_visit::Either::Left(visitor) => Visit::visit_ts_property_signature(visitor, node),
7023            swc_visit::Either::Right(visitor) => Visit::visit_ts_property_signature(visitor, node),
7024        }
7025    }
7026
7027    #[inline]
7028    fn visit_ts_qualified_name(&mut self, node: &TsQualifiedName) {
7029        match self {
7030            swc_visit::Either::Left(visitor) => Visit::visit_ts_qualified_name(visitor, node),
7031            swc_visit::Either::Right(visitor) => Visit::visit_ts_qualified_name(visitor, node),
7032        }
7033    }
7034
7035    #[inline]
7036    fn visit_ts_rest_type(&mut self, node: &TsRestType) {
7037        match self {
7038            swc_visit::Either::Left(visitor) => Visit::visit_ts_rest_type(visitor, node),
7039            swc_visit::Either::Right(visitor) => Visit::visit_ts_rest_type(visitor, node),
7040        }
7041    }
7042
7043    #[inline]
7044    fn visit_ts_satisfies_expr(&mut self, node: &TsSatisfiesExpr) {
7045        match self {
7046            swc_visit::Either::Left(visitor) => Visit::visit_ts_satisfies_expr(visitor, node),
7047            swc_visit::Either::Right(visitor) => Visit::visit_ts_satisfies_expr(visitor, node),
7048        }
7049    }
7050
7051    #[inline]
7052    fn visit_ts_setter_signature(&mut self, node: &TsSetterSignature) {
7053        match self {
7054            swc_visit::Either::Left(visitor) => Visit::visit_ts_setter_signature(visitor, node),
7055            swc_visit::Either::Right(visitor) => Visit::visit_ts_setter_signature(visitor, node),
7056        }
7057    }
7058
7059    #[inline]
7060    fn visit_ts_this_type(&mut self, node: &TsThisType) {
7061        match self {
7062            swc_visit::Either::Left(visitor) => Visit::visit_ts_this_type(visitor, node),
7063            swc_visit::Either::Right(visitor) => Visit::visit_ts_this_type(visitor, node),
7064        }
7065    }
7066
7067    #[inline]
7068    fn visit_ts_this_type_or_ident(&mut self, node: &TsThisTypeOrIdent) {
7069        match self {
7070            swc_visit::Either::Left(visitor) => Visit::visit_ts_this_type_or_ident(visitor, node),
7071            swc_visit::Either::Right(visitor) => Visit::visit_ts_this_type_or_ident(visitor, node),
7072        }
7073    }
7074
7075    #[inline]
7076    fn visit_ts_tpl_lit_type(&mut self, node: &TsTplLitType) {
7077        match self {
7078            swc_visit::Either::Left(visitor) => Visit::visit_ts_tpl_lit_type(visitor, node),
7079            swc_visit::Either::Right(visitor) => Visit::visit_ts_tpl_lit_type(visitor, node),
7080        }
7081    }
7082
7083    #[inline]
7084    fn visit_ts_tuple_element(&mut self, node: &TsTupleElement) {
7085        match self {
7086            swc_visit::Either::Left(visitor) => Visit::visit_ts_tuple_element(visitor, node),
7087            swc_visit::Either::Right(visitor) => Visit::visit_ts_tuple_element(visitor, node),
7088        }
7089    }
7090
7091    #[inline]
7092    fn visit_ts_tuple_elements(&mut self, node: &[TsTupleElement]) {
7093        match self {
7094            swc_visit::Either::Left(visitor) => Visit::visit_ts_tuple_elements(visitor, node),
7095            swc_visit::Either::Right(visitor) => Visit::visit_ts_tuple_elements(visitor, node),
7096        }
7097    }
7098
7099    #[inline]
7100    fn visit_ts_tuple_type(&mut self, node: &TsTupleType) {
7101        match self {
7102            swc_visit::Either::Left(visitor) => Visit::visit_ts_tuple_type(visitor, node),
7103            swc_visit::Either::Right(visitor) => Visit::visit_ts_tuple_type(visitor, node),
7104        }
7105    }
7106
7107    #[inline]
7108    fn visit_ts_type(&mut self, node: &TsType) {
7109        match self {
7110            swc_visit::Either::Left(visitor) => Visit::visit_ts_type(visitor, node),
7111            swc_visit::Either::Right(visitor) => Visit::visit_ts_type(visitor, node),
7112        }
7113    }
7114
7115    #[inline]
7116    fn visit_ts_type_alias_decl(&mut self, node: &TsTypeAliasDecl) {
7117        match self {
7118            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_alias_decl(visitor, node),
7119            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_alias_decl(visitor, node),
7120        }
7121    }
7122
7123    #[inline]
7124    fn visit_ts_type_ann(&mut self, node: &TsTypeAnn) {
7125        match self {
7126            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_ann(visitor, node),
7127            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_ann(visitor, node),
7128        }
7129    }
7130
7131    #[inline]
7132    fn visit_ts_type_assertion(&mut self, node: &TsTypeAssertion) {
7133        match self {
7134            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_assertion(visitor, node),
7135            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_assertion(visitor, node),
7136        }
7137    }
7138
7139    #[inline]
7140    fn visit_ts_type_element(&mut self, node: &TsTypeElement) {
7141        match self {
7142            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_element(visitor, node),
7143            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_element(visitor, node),
7144        }
7145    }
7146
7147    #[inline]
7148    fn visit_ts_type_elements(&mut self, node: &[TsTypeElement]) {
7149        match self {
7150            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_elements(visitor, node),
7151            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_elements(visitor, node),
7152        }
7153    }
7154
7155    #[inline]
7156    fn visit_ts_type_lit(&mut self, node: &TsTypeLit) {
7157        match self {
7158            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_lit(visitor, node),
7159            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_lit(visitor, node),
7160        }
7161    }
7162
7163    #[inline]
7164    fn visit_ts_type_operator(&mut self, node: &TsTypeOperator) {
7165        match self {
7166            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_operator(visitor, node),
7167            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_operator(visitor, node),
7168        }
7169    }
7170
7171    #[inline]
7172    fn visit_ts_type_operator_op(&mut self, node: &TsTypeOperatorOp) {
7173        match self {
7174            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_operator_op(visitor, node),
7175            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_operator_op(visitor, node),
7176        }
7177    }
7178
7179    #[inline]
7180    fn visit_ts_type_param(&mut self, node: &TsTypeParam) {
7181        match self {
7182            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_param(visitor, node),
7183            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_param(visitor, node),
7184        }
7185    }
7186
7187    #[inline]
7188    fn visit_ts_type_param_decl(&mut self, node: &TsTypeParamDecl) {
7189        match self {
7190            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_param_decl(visitor, node),
7191            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_param_decl(visitor, node),
7192        }
7193    }
7194
7195    #[inline]
7196    fn visit_ts_type_param_instantiation(&mut self, node: &TsTypeParamInstantiation) {
7197        match self {
7198            swc_visit::Either::Left(visitor) => {
7199                Visit::visit_ts_type_param_instantiation(visitor, node)
7200            }
7201            swc_visit::Either::Right(visitor) => {
7202                Visit::visit_ts_type_param_instantiation(visitor, node)
7203            }
7204        }
7205    }
7206
7207    #[inline]
7208    fn visit_ts_type_params(&mut self, node: &[TsTypeParam]) {
7209        match self {
7210            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_params(visitor, node),
7211            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_params(visitor, node),
7212        }
7213    }
7214
7215    #[inline]
7216    fn visit_ts_type_predicate(&mut self, node: &TsTypePredicate) {
7217        match self {
7218            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_predicate(visitor, node),
7219            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_predicate(visitor, node),
7220        }
7221    }
7222
7223    #[inline]
7224    fn visit_ts_type_query(&mut self, node: &TsTypeQuery) {
7225        match self {
7226            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_query(visitor, node),
7227            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_query(visitor, node),
7228        }
7229    }
7230
7231    #[inline]
7232    fn visit_ts_type_query_expr(&mut self, node: &TsTypeQueryExpr) {
7233        match self {
7234            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_query_expr(visitor, node),
7235            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_query_expr(visitor, node),
7236        }
7237    }
7238
7239    #[inline]
7240    fn visit_ts_type_ref(&mut self, node: &TsTypeRef) {
7241        match self {
7242            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_ref(visitor, node),
7243            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_ref(visitor, node),
7244        }
7245    }
7246
7247    #[inline]
7248    fn visit_ts_types(&mut self, node: &[Box<TsType>]) {
7249        match self {
7250            swc_visit::Either::Left(visitor) => Visit::visit_ts_types(visitor, node),
7251            swc_visit::Either::Right(visitor) => Visit::visit_ts_types(visitor, node),
7252        }
7253    }
7254
7255    #[inline]
7256    fn visit_ts_union_or_intersection_type(&mut self, node: &TsUnionOrIntersectionType) {
7257        match self {
7258            swc_visit::Either::Left(visitor) => {
7259                Visit::visit_ts_union_or_intersection_type(visitor, node)
7260            }
7261            swc_visit::Either::Right(visitor) => {
7262                Visit::visit_ts_union_or_intersection_type(visitor, node)
7263            }
7264        }
7265    }
7266
7267    #[inline]
7268    fn visit_ts_union_type(&mut self, node: &TsUnionType) {
7269        match self {
7270            swc_visit::Either::Left(visitor) => Visit::visit_ts_union_type(visitor, node),
7271            swc_visit::Either::Right(visitor) => Visit::visit_ts_union_type(visitor, node),
7272        }
7273    }
7274
7275    #[inline]
7276    fn visit_unary_expr(&mut self, node: &UnaryExpr) {
7277        match self {
7278            swc_visit::Either::Left(visitor) => Visit::visit_unary_expr(visitor, node),
7279            swc_visit::Either::Right(visitor) => Visit::visit_unary_expr(visitor, node),
7280        }
7281    }
7282
7283    #[inline]
7284    fn visit_unary_op(&mut self, node: &UnaryOp) {
7285        match self {
7286            swc_visit::Either::Left(visitor) => Visit::visit_unary_op(visitor, node),
7287            swc_visit::Either::Right(visitor) => Visit::visit_unary_op(visitor, node),
7288        }
7289    }
7290
7291    #[inline]
7292    fn visit_update_expr(&mut self, node: &UpdateExpr) {
7293        match self {
7294            swc_visit::Either::Left(visitor) => Visit::visit_update_expr(visitor, node),
7295            swc_visit::Either::Right(visitor) => Visit::visit_update_expr(visitor, node),
7296        }
7297    }
7298
7299    #[inline]
7300    fn visit_update_op(&mut self, node: &UpdateOp) {
7301        match self {
7302            swc_visit::Either::Left(visitor) => Visit::visit_update_op(visitor, node),
7303            swc_visit::Either::Right(visitor) => Visit::visit_update_op(visitor, node),
7304        }
7305    }
7306
7307    #[inline]
7308    fn visit_using_decl(&mut self, node: &UsingDecl) {
7309        match self {
7310            swc_visit::Either::Left(visitor) => Visit::visit_using_decl(visitor, node),
7311            swc_visit::Either::Right(visitor) => Visit::visit_using_decl(visitor, node),
7312        }
7313    }
7314
7315    #[inline]
7316    fn visit_var_decl(&mut self, node: &VarDecl) {
7317        match self {
7318            swc_visit::Either::Left(visitor) => Visit::visit_var_decl(visitor, node),
7319            swc_visit::Either::Right(visitor) => Visit::visit_var_decl(visitor, node),
7320        }
7321    }
7322
7323    #[inline]
7324    fn visit_var_decl_kind(&mut self, node: &VarDeclKind) {
7325        match self {
7326            swc_visit::Either::Left(visitor) => Visit::visit_var_decl_kind(visitor, node),
7327            swc_visit::Either::Right(visitor) => Visit::visit_var_decl_kind(visitor, node),
7328        }
7329    }
7330
7331    #[inline]
7332    fn visit_var_decl_or_expr(&mut self, node: &VarDeclOrExpr) {
7333        match self {
7334            swc_visit::Either::Left(visitor) => Visit::visit_var_decl_or_expr(visitor, node),
7335            swc_visit::Either::Right(visitor) => Visit::visit_var_decl_or_expr(visitor, node),
7336        }
7337    }
7338
7339    #[inline]
7340    fn visit_var_declarator(&mut self, node: &VarDeclarator) {
7341        match self {
7342            swc_visit::Either::Left(visitor) => Visit::visit_var_declarator(visitor, node),
7343            swc_visit::Either::Right(visitor) => Visit::visit_var_declarator(visitor, node),
7344        }
7345    }
7346
7347    #[inline]
7348    fn visit_var_declarators(&mut self, node: &[VarDeclarator]) {
7349        match self {
7350            swc_visit::Either::Left(visitor) => Visit::visit_var_declarators(visitor, node),
7351            swc_visit::Either::Right(visitor) => Visit::visit_var_declarators(visitor, node),
7352        }
7353    }
7354
7355    #[inline]
7356    fn visit_while_stmt(&mut self, node: &WhileStmt) {
7357        match self {
7358            swc_visit::Either::Left(visitor) => Visit::visit_while_stmt(visitor, node),
7359            swc_visit::Either::Right(visitor) => Visit::visit_while_stmt(visitor, node),
7360        }
7361    }
7362
7363    #[inline]
7364    fn visit_with_stmt(&mut self, node: &WithStmt) {
7365        match self {
7366            swc_visit::Either::Left(visitor) => Visit::visit_with_stmt(visitor, node),
7367            swc_visit::Either::Right(visitor) => Visit::visit_with_stmt(visitor, node),
7368        }
7369    }
7370
7371    #[inline]
7372    fn visit_yield_expr(&mut self, node: &YieldExpr) {
7373        match self {
7374            swc_visit::Either::Left(visitor) => Visit::visit_yield_expr(visitor, node),
7375            swc_visit::Either::Right(visitor) => Visit::visit_yield_expr(visitor, node),
7376        }
7377    }
7378}
7379impl<V> Visit for ::swc_visit::Optional<V>
7380where
7381    V: Visit,
7382{
7383    #[inline]
7384    fn visit_accessibility(&mut self, node: &Accessibility) {
7385        if self.enabled {
7386            <V as Visit>::visit_accessibility(&mut self.visitor, node)
7387        } else {
7388        }
7389    }
7390
7391    #[inline]
7392    fn visit_array_lit(&mut self, node: &ArrayLit) {
7393        if self.enabled {
7394            <V as Visit>::visit_array_lit(&mut self.visitor, node)
7395        } else {
7396        }
7397    }
7398
7399    #[inline]
7400    fn visit_array_pat(&mut self, node: &ArrayPat) {
7401        if self.enabled {
7402            <V as Visit>::visit_array_pat(&mut self.visitor, node)
7403        } else {
7404        }
7405    }
7406
7407    #[inline]
7408    fn visit_arrow_expr(&mut self, node: &ArrowExpr) {
7409        if self.enabled {
7410            <V as Visit>::visit_arrow_expr(&mut self.visitor, node)
7411        } else {
7412        }
7413    }
7414
7415    #[inline]
7416    fn visit_assign_expr(&mut self, node: &AssignExpr) {
7417        if self.enabled {
7418            <V as Visit>::visit_assign_expr(&mut self.visitor, node)
7419        } else {
7420        }
7421    }
7422
7423    #[inline]
7424    fn visit_assign_op(&mut self, node: &AssignOp) {
7425        if self.enabled {
7426            <V as Visit>::visit_assign_op(&mut self.visitor, node)
7427        } else {
7428        }
7429    }
7430
7431    #[inline]
7432    fn visit_assign_pat(&mut self, node: &AssignPat) {
7433        if self.enabled {
7434            <V as Visit>::visit_assign_pat(&mut self.visitor, node)
7435        } else {
7436        }
7437    }
7438
7439    #[inline]
7440    fn visit_assign_pat_prop(&mut self, node: &AssignPatProp) {
7441        if self.enabled {
7442            <V as Visit>::visit_assign_pat_prop(&mut self.visitor, node)
7443        } else {
7444        }
7445    }
7446
7447    #[inline]
7448    fn visit_assign_prop(&mut self, node: &AssignProp) {
7449        if self.enabled {
7450            <V as Visit>::visit_assign_prop(&mut self.visitor, node)
7451        } else {
7452        }
7453    }
7454
7455    #[inline]
7456    fn visit_assign_target(&mut self, node: &AssignTarget) {
7457        if self.enabled {
7458            <V as Visit>::visit_assign_target(&mut self.visitor, node)
7459        } else {
7460        }
7461    }
7462
7463    #[inline]
7464    fn visit_assign_target_pat(&mut self, node: &AssignTargetPat) {
7465        if self.enabled {
7466            <V as Visit>::visit_assign_target_pat(&mut self.visitor, node)
7467        } else {
7468        }
7469    }
7470
7471    #[inline]
7472    fn visit_atom(&mut self, node: &swc_atoms::Atom) {
7473        if self.enabled {
7474            <V as Visit>::visit_atom(&mut self.visitor, node)
7475        } else {
7476        }
7477    }
7478
7479    #[inline]
7480    fn visit_auto_accessor(&mut self, node: &AutoAccessor) {
7481        if self.enabled {
7482            <V as Visit>::visit_auto_accessor(&mut self.visitor, node)
7483        } else {
7484        }
7485    }
7486
7487    #[inline]
7488    fn visit_await_expr(&mut self, node: &AwaitExpr) {
7489        if self.enabled {
7490            <V as Visit>::visit_await_expr(&mut self.visitor, node)
7491        } else {
7492        }
7493    }
7494
7495    #[inline]
7496    fn visit_big_int(&mut self, node: &BigInt) {
7497        if self.enabled {
7498            <V as Visit>::visit_big_int(&mut self.visitor, node)
7499        } else {
7500        }
7501    }
7502
7503    #[inline]
7504    fn visit_big_int_value(&mut self, node: &BigIntValue) {
7505        if self.enabled {
7506            <V as Visit>::visit_big_int_value(&mut self.visitor, node)
7507        } else {
7508        }
7509    }
7510
7511    #[inline]
7512    fn visit_bin_expr(&mut self, node: &BinExpr) {
7513        if self.enabled {
7514            <V as Visit>::visit_bin_expr(&mut self.visitor, node)
7515        } else {
7516        }
7517    }
7518
7519    #[inline]
7520    fn visit_binary_op(&mut self, node: &BinaryOp) {
7521        if self.enabled {
7522            <V as Visit>::visit_binary_op(&mut self.visitor, node)
7523        } else {
7524        }
7525    }
7526
7527    #[inline]
7528    fn visit_binding_ident(&mut self, node: &BindingIdent) {
7529        if self.enabled {
7530            <V as Visit>::visit_binding_ident(&mut self.visitor, node)
7531        } else {
7532        }
7533    }
7534
7535    #[inline]
7536    fn visit_block_stmt(&mut self, node: &BlockStmt) {
7537        if self.enabled {
7538            <V as Visit>::visit_block_stmt(&mut self.visitor, node)
7539        } else {
7540        }
7541    }
7542
7543    #[inline]
7544    fn visit_block_stmt_or_expr(&mut self, node: &BlockStmtOrExpr) {
7545        if self.enabled {
7546            <V as Visit>::visit_block_stmt_or_expr(&mut self.visitor, node)
7547        } else {
7548        }
7549    }
7550
7551    #[inline]
7552    fn visit_bool(&mut self, node: &Bool) {
7553        if self.enabled {
7554            <V as Visit>::visit_bool(&mut self.visitor, node)
7555        } else {
7556        }
7557    }
7558
7559    #[inline]
7560    fn visit_break_stmt(&mut self, node: &BreakStmt) {
7561        if self.enabled {
7562            <V as Visit>::visit_break_stmt(&mut self.visitor, node)
7563        } else {
7564        }
7565    }
7566
7567    #[inline]
7568    fn visit_call_expr(&mut self, node: &CallExpr) {
7569        if self.enabled {
7570            <V as Visit>::visit_call_expr(&mut self.visitor, node)
7571        } else {
7572        }
7573    }
7574
7575    #[inline]
7576    fn visit_callee(&mut self, node: &Callee) {
7577        if self.enabled {
7578            <V as Visit>::visit_callee(&mut self.visitor, node)
7579        } else {
7580        }
7581    }
7582
7583    #[inline]
7584    fn visit_catch_clause(&mut self, node: &CatchClause) {
7585        if self.enabled {
7586            <V as Visit>::visit_catch_clause(&mut self.visitor, node)
7587        } else {
7588        }
7589    }
7590
7591    #[inline]
7592    fn visit_class(&mut self, node: &Class) {
7593        if self.enabled {
7594            <V as Visit>::visit_class(&mut self.visitor, node)
7595        } else {
7596        }
7597    }
7598
7599    #[inline]
7600    fn visit_class_decl(&mut self, node: &ClassDecl) {
7601        if self.enabled {
7602            <V as Visit>::visit_class_decl(&mut self.visitor, node)
7603        } else {
7604        }
7605    }
7606
7607    #[inline]
7608    fn visit_class_expr(&mut self, node: &ClassExpr) {
7609        if self.enabled {
7610            <V as Visit>::visit_class_expr(&mut self.visitor, node)
7611        } else {
7612        }
7613    }
7614
7615    #[inline]
7616    fn visit_class_member(&mut self, node: &ClassMember) {
7617        if self.enabled {
7618            <V as Visit>::visit_class_member(&mut self.visitor, node)
7619        } else {
7620        }
7621    }
7622
7623    #[inline]
7624    fn visit_class_members(&mut self, node: &[ClassMember]) {
7625        if self.enabled {
7626            <V as Visit>::visit_class_members(&mut self.visitor, node)
7627        } else {
7628        }
7629    }
7630
7631    #[inline]
7632    fn visit_class_method(&mut self, node: &ClassMethod) {
7633        if self.enabled {
7634            <V as Visit>::visit_class_method(&mut self.visitor, node)
7635        } else {
7636        }
7637    }
7638
7639    #[inline]
7640    fn visit_class_prop(&mut self, node: &ClassProp) {
7641        if self.enabled {
7642            <V as Visit>::visit_class_prop(&mut self.visitor, node)
7643        } else {
7644        }
7645    }
7646
7647    #[inline]
7648    fn visit_computed_prop_name(&mut self, node: &ComputedPropName) {
7649        if self.enabled {
7650            <V as Visit>::visit_computed_prop_name(&mut self.visitor, node)
7651        } else {
7652        }
7653    }
7654
7655    #[inline]
7656    fn visit_cond_expr(&mut self, node: &CondExpr) {
7657        if self.enabled {
7658            <V as Visit>::visit_cond_expr(&mut self.visitor, node)
7659        } else {
7660        }
7661    }
7662
7663    #[inline]
7664    fn visit_constructor(&mut self, node: &Constructor) {
7665        if self.enabled {
7666            <V as Visit>::visit_constructor(&mut self.visitor, node)
7667        } else {
7668        }
7669    }
7670
7671    #[inline]
7672    fn visit_continue_stmt(&mut self, node: &ContinueStmt) {
7673        if self.enabled {
7674            <V as Visit>::visit_continue_stmt(&mut self.visitor, node)
7675        } else {
7676        }
7677    }
7678
7679    #[inline]
7680    fn visit_debugger_stmt(&mut self, node: &DebuggerStmt) {
7681        if self.enabled {
7682            <V as Visit>::visit_debugger_stmt(&mut self.visitor, node)
7683        } else {
7684        }
7685    }
7686
7687    #[inline]
7688    fn visit_decl(&mut self, node: &Decl) {
7689        if self.enabled {
7690            <V as Visit>::visit_decl(&mut self.visitor, node)
7691        } else {
7692        }
7693    }
7694
7695    #[inline]
7696    fn visit_decorator(&mut self, node: &Decorator) {
7697        if self.enabled {
7698            <V as Visit>::visit_decorator(&mut self.visitor, node)
7699        } else {
7700        }
7701    }
7702
7703    #[inline]
7704    fn visit_decorators(&mut self, node: &[Decorator]) {
7705        if self.enabled {
7706            <V as Visit>::visit_decorators(&mut self.visitor, node)
7707        } else {
7708        }
7709    }
7710
7711    #[inline]
7712    fn visit_default_decl(&mut self, node: &DefaultDecl) {
7713        if self.enabled {
7714            <V as Visit>::visit_default_decl(&mut self.visitor, node)
7715        } else {
7716        }
7717    }
7718
7719    #[inline]
7720    fn visit_do_while_stmt(&mut self, node: &DoWhileStmt) {
7721        if self.enabled {
7722            <V as Visit>::visit_do_while_stmt(&mut self.visitor, node)
7723        } else {
7724        }
7725    }
7726
7727    #[inline]
7728    fn visit_empty_stmt(&mut self, node: &EmptyStmt) {
7729        if self.enabled {
7730            <V as Visit>::visit_empty_stmt(&mut self.visitor, node)
7731        } else {
7732        }
7733    }
7734
7735    #[inline]
7736    fn visit_export_all(&mut self, node: &ExportAll) {
7737        if self.enabled {
7738            <V as Visit>::visit_export_all(&mut self.visitor, node)
7739        } else {
7740        }
7741    }
7742
7743    #[inline]
7744    fn visit_export_decl(&mut self, node: &ExportDecl) {
7745        if self.enabled {
7746            <V as Visit>::visit_export_decl(&mut self.visitor, node)
7747        } else {
7748        }
7749    }
7750
7751    #[inline]
7752    fn visit_export_default_decl(&mut self, node: &ExportDefaultDecl) {
7753        if self.enabled {
7754            <V as Visit>::visit_export_default_decl(&mut self.visitor, node)
7755        } else {
7756        }
7757    }
7758
7759    #[inline]
7760    fn visit_export_default_expr(&mut self, node: &ExportDefaultExpr) {
7761        if self.enabled {
7762            <V as Visit>::visit_export_default_expr(&mut self.visitor, node)
7763        } else {
7764        }
7765    }
7766
7767    #[inline]
7768    fn visit_export_default_specifier(&mut self, node: &ExportDefaultSpecifier) {
7769        if self.enabled {
7770            <V as Visit>::visit_export_default_specifier(&mut self.visitor, node)
7771        } else {
7772        }
7773    }
7774
7775    #[inline]
7776    fn visit_export_named_specifier(&mut self, node: &ExportNamedSpecifier) {
7777        if self.enabled {
7778            <V as Visit>::visit_export_named_specifier(&mut self.visitor, node)
7779        } else {
7780        }
7781    }
7782
7783    #[inline]
7784    fn visit_export_namespace_specifier(&mut self, node: &ExportNamespaceSpecifier) {
7785        if self.enabled {
7786            <V as Visit>::visit_export_namespace_specifier(&mut self.visitor, node)
7787        } else {
7788        }
7789    }
7790
7791    #[inline]
7792    fn visit_export_specifier(&mut self, node: &ExportSpecifier) {
7793        if self.enabled {
7794            <V as Visit>::visit_export_specifier(&mut self.visitor, node)
7795        } else {
7796        }
7797    }
7798
7799    #[inline]
7800    fn visit_export_specifiers(&mut self, node: &[ExportSpecifier]) {
7801        if self.enabled {
7802            <V as Visit>::visit_export_specifiers(&mut self.visitor, node)
7803        } else {
7804        }
7805    }
7806
7807    #[inline]
7808    fn visit_expr(&mut self, node: &Expr) {
7809        if self.enabled {
7810            <V as Visit>::visit_expr(&mut self.visitor, node)
7811        } else {
7812        }
7813    }
7814
7815    #[inline]
7816    fn visit_expr_or_spread(&mut self, node: &ExprOrSpread) {
7817        if self.enabled {
7818            <V as Visit>::visit_expr_or_spread(&mut self.visitor, node)
7819        } else {
7820        }
7821    }
7822
7823    #[inline]
7824    fn visit_expr_or_spreads(&mut self, node: &[ExprOrSpread]) {
7825        if self.enabled {
7826            <V as Visit>::visit_expr_or_spreads(&mut self.visitor, node)
7827        } else {
7828        }
7829    }
7830
7831    #[inline]
7832    fn visit_expr_stmt(&mut self, node: &ExprStmt) {
7833        if self.enabled {
7834            <V as Visit>::visit_expr_stmt(&mut self.visitor, node)
7835        } else {
7836        }
7837    }
7838
7839    #[inline]
7840    fn visit_exprs(&mut self, node: &[Box<Expr>]) {
7841        if self.enabled {
7842            <V as Visit>::visit_exprs(&mut self.visitor, node)
7843        } else {
7844        }
7845    }
7846
7847    #[inline]
7848    fn visit_fn_decl(&mut self, node: &FnDecl) {
7849        if self.enabled {
7850            <V as Visit>::visit_fn_decl(&mut self.visitor, node)
7851        } else {
7852        }
7853    }
7854
7855    #[inline]
7856    fn visit_fn_expr(&mut self, node: &FnExpr) {
7857        if self.enabled {
7858            <V as Visit>::visit_fn_expr(&mut self.visitor, node)
7859        } else {
7860        }
7861    }
7862
7863    #[inline]
7864    fn visit_for_head(&mut self, node: &ForHead) {
7865        if self.enabled {
7866            <V as Visit>::visit_for_head(&mut self.visitor, node)
7867        } else {
7868        }
7869    }
7870
7871    #[inline]
7872    fn visit_for_in_stmt(&mut self, node: &ForInStmt) {
7873        if self.enabled {
7874            <V as Visit>::visit_for_in_stmt(&mut self.visitor, node)
7875        } else {
7876        }
7877    }
7878
7879    #[inline]
7880    fn visit_for_of_stmt(&mut self, node: &ForOfStmt) {
7881        if self.enabled {
7882            <V as Visit>::visit_for_of_stmt(&mut self.visitor, node)
7883        } else {
7884        }
7885    }
7886
7887    #[inline]
7888    fn visit_for_stmt(&mut self, node: &ForStmt) {
7889        if self.enabled {
7890            <V as Visit>::visit_for_stmt(&mut self.visitor, node)
7891        } else {
7892        }
7893    }
7894
7895    #[inline]
7896    fn visit_function(&mut self, node: &Function) {
7897        if self.enabled {
7898            <V as Visit>::visit_function(&mut self.visitor, node)
7899        } else {
7900        }
7901    }
7902
7903    #[inline]
7904    fn visit_getter_prop(&mut self, node: &GetterProp) {
7905        if self.enabled {
7906            <V as Visit>::visit_getter_prop(&mut self.visitor, node)
7907        } else {
7908        }
7909    }
7910
7911    #[inline]
7912    fn visit_ident(&mut self, node: &Ident) {
7913        if self.enabled {
7914            <V as Visit>::visit_ident(&mut self.visitor, node)
7915        } else {
7916        }
7917    }
7918
7919    #[inline]
7920    fn visit_ident_name(&mut self, node: &IdentName) {
7921        if self.enabled {
7922            <V as Visit>::visit_ident_name(&mut self.visitor, node)
7923        } else {
7924        }
7925    }
7926
7927    #[inline]
7928    fn visit_if_stmt(&mut self, node: &IfStmt) {
7929        if self.enabled {
7930            <V as Visit>::visit_if_stmt(&mut self.visitor, node)
7931        } else {
7932        }
7933    }
7934
7935    #[inline]
7936    fn visit_import(&mut self, node: &Import) {
7937        if self.enabled {
7938            <V as Visit>::visit_import(&mut self.visitor, node)
7939        } else {
7940        }
7941    }
7942
7943    #[inline]
7944    fn visit_import_decl(&mut self, node: &ImportDecl) {
7945        if self.enabled {
7946            <V as Visit>::visit_import_decl(&mut self.visitor, node)
7947        } else {
7948        }
7949    }
7950
7951    #[inline]
7952    fn visit_import_default_specifier(&mut self, node: &ImportDefaultSpecifier) {
7953        if self.enabled {
7954            <V as Visit>::visit_import_default_specifier(&mut self.visitor, node)
7955        } else {
7956        }
7957    }
7958
7959    #[inline]
7960    fn visit_import_named_specifier(&mut self, node: &ImportNamedSpecifier) {
7961        if self.enabled {
7962            <V as Visit>::visit_import_named_specifier(&mut self.visitor, node)
7963        } else {
7964        }
7965    }
7966
7967    #[inline]
7968    fn visit_import_phase(&mut self, node: &ImportPhase) {
7969        if self.enabled {
7970            <V as Visit>::visit_import_phase(&mut self.visitor, node)
7971        } else {
7972        }
7973    }
7974
7975    #[inline]
7976    fn visit_import_specifier(&mut self, node: &ImportSpecifier) {
7977        if self.enabled {
7978            <V as Visit>::visit_import_specifier(&mut self.visitor, node)
7979        } else {
7980        }
7981    }
7982
7983    #[inline]
7984    fn visit_import_specifiers(&mut self, node: &[ImportSpecifier]) {
7985        if self.enabled {
7986            <V as Visit>::visit_import_specifiers(&mut self.visitor, node)
7987        } else {
7988        }
7989    }
7990
7991    #[inline]
7992    fn visit_import_star_as_specifier(&mut self, node: &ImportStarAsSpecifier) {
7993        if self.enabled {
7994            <V as Visit>::visit_import_star_as_specifier(&mut self.visitor, node)
7995        } else {
7996        }
7997    }
7998
7999    #[inline]
8000    fn visit_import_with(&mut self, node: &ImportWith) {
8001        if self.enabled {
8002            <V as Visit>::visit_import_with(&mut self.visitor, node)
8003        } else {
8004        }
8005    }
8006
8007    #[inline]
8008    fn visit_import_with_item(&mut self, node: &ImportWithItem) {
8009        if self.enabled {
8010            <V as Visit>::visit_import_with_item(&mut self.visitor, node)
8011        } else {
8012        }
8013    }
8014
8015    #[inline]
8016    fn visit_import_with_items(&mut self, node: &[ImportWithItem]) {
8017        if self.enabled {
8018            <V as Visit>::visit_import_with_items(&mut self.visitor, node)
8019        } else {
8020        }
8021    }
8022
8023    #[inline]
8024    fn visit_invalid(&mut self, node: &Invalid) {
8025        if self.enabled {
8026            <V as Visit>::visit_invalid(&mut self.visitor, node)
8027        } else {
8028        }
8029    }
8030
8031    #[inline]
8032    fn visit_jsx_attr(&mut self, node: &JSXAttr) {
8033        if self.enabled {
8034            <V as Visit>::visit_jsx_attr(&mut self.visitor, node)
8035        } else {
8036        }
8037    }
8038
8039    #[inline]
8040    fn visit_jsx_attr_name(&mut self, node: &JSXAttrName) {
8041        if self.enabled {
8042            <V as Visit>::visit_jsx_attr_name(&mut self.visitor, node)
8043        } else {
8044        }
8045    }
8046
8047    #[inline]
8048    fn visit_jsx_attr_or_spread(&mut self, node: &JSXAttrOrSpread) {
8049        if self.enabled {
8050            <V as Visit>::visit_jsx_attr_or_spread(&mut self.visitor, node)
8051        } else {
8052        }
8053    }
8054
8055    #[inline]
8056    fn visit_jsx_attr_or_spreads(&mut self, node: &[JSXAttrOrSpread]) {
8057        if self.enabled {
8058            <V as Visit>::visit_jsx_attr_or_spreads(&mut self.visitor, node)
8059        } else {
8060        }
8061    }
8062
8063    #[inline]
8064    fn visit_jsx_attr_value(&mut self, node: &JSXAttrValue) {
8065        if self.enabled {
8066            <V as Visit>::visit_jsx_attr_value(&mut self.visitor, node)
8067        } else {
8068        }
8069    }
8070
8071    #[inline]
8072    fn visit_jsx_closing_element(&mut self, node: &JSXClosingElement) {
8073        if self.enabled {
8074            <V as Visit>::visit_jsx_closing_element(&mut self.visitor, node)
8075        } else {
8076        }
8077    }
8078
8079    #[inline]
8080    fn visit_jsx_closing_fragment(&mut self, node: &JSXClosingFragment) {
8081        if self.enabled {
8082            <V as Visit>::visit_jsx_closing_fragment(&mut self.visitor, node)
8083        } else {
8084        }
8085    }
8086
8087    #[inline]
8088    fn visit_jsx_element(&mut self, node: &JSXElement) {
8089        if self.enabled {
8090            <V as Visit>::visit_jsx_element(&mut self.visitor, node)
8091        } else {
8092        }
8093    }
8094
8095    #[inline]
8096    fn visit_jsx_element_child(&mut self, node: &JSXElementChild) {
8097        if self.enabled {
8098            <V as Visit>::visit_jsx_element_child(&mut self.visitor, node)
8099        } else {
8100        }
8101    }
8102
8103    #[inline]
8104    fn visit_jsx_element_childs(&mut self, node: &[JSXElementChild]) {
8105        if self.enabled {
8106            <V as Visit>::visit_jsx_element_childs(&mut self.visitor, node)
8107        } else {
8108        }
8109    }
8110
8111    #[inline]
8112    fn visit_jsx_element_name(&mut self, node: &JSXElementName) {
8113        if self.enabled {
8114            <V as Visit>::visit_jsx_element_name(&mut self.visitor, node)
8115        } else {
8116        }
8117    }
8118
8119    #[inline]
8120    fn visit_jsx_empty_expr(&mut self, node: &JSXEmptyExpr) {
8121        if self.enabled {
8122            <V as Visit>::visit_jsx_empty_expr(&mut self.visitor, node)
8123        } else {
8124        }
8125    }
8126
8127    #[inline]
8128    fn visit_jsx_expr(&mut self, node: &JSXExpr) {
8129        if self.enabled {
8130            <V as Visit>::visit_jsx_expr(&mut self.visitor, node)
8131        } else {
8132        }
8133    }
8134
8135    #[inline]
8136    fn visit_jsx_expr_container(&mut self, node: &JSXExprContainer) {
8137        if self.enabled {
8138            <V as Visit>::visit_jsx_expr_container(&mut self.visitor, node)
8139        } else {
8140        }
8141    }
8142
8143    #[inline]
8144    fn visit_jsx_fragment(&mut self, node: &JSXFragment) {
8145        if self.enabled {
8146            <V as Visit>::visit_jsx_fragment(&mut self.visitor, node)
8147        } else {
8148        }
8149    }
8150
8151    #[inline]
8152    fn visit_jsx_member_expr(&mut self, node: &JSXMemberExpr) {
8153        if self.enabled {
8154            <V as Visit>::visit_jsx_member_expr(&mut self.visitor, node)
8155        } else {
8156        }
8157    }
8158
8159    #[inline]
8160    fn visit_jsx_namespaced_name(&mut self, node: &JSXNamespacedName) {
8161        if self.enabled {
8162            <V as Visit>::visit_jsx_namespaced_name(&mut self.visitor, node)
8163        } else {
8164        }
8165    }
8166
8167    #[inline]
8168    fn visit_jsx_object(&mut self, node: &JSXObject) {
8169        if self.enabled {
8170            <V as Visit>::visit_jsx_object(&mut self.visitor, node)
8171        } else {
8172        }
8173    }
8174
8175    #[inline]
8176    fn visit_jsx_opening_element(&mut self, node: &JSXOpeningElement) {
8177        if self.enabled {
8178            <V as Visit>::visit_jsx_opening_element(&mut self.visitor, node)
8179        } else {
8180        }
8181    }
8182
8183    #[inline]
8184    fn visit_jsx_opening_fragment(&mut self, node: &JSXOpeningFragment) {
8185        if self.enabled {
8186            <V as Visit>::visit_jsx_opening_fragment(&mut self.visitor, node)
8187        } else {
8188        }
8189    }
8190
8191    #[inline]
8192    fn visit_jsx_spread_child(&mut self, node: &JSXSpreadChild) {
8193        if self.enabled {
8194            <V as Visit>::visit_jsx_spread_child(&mut self.visitor, node)
8195        } else {
8196        }
8197    }
8198
8199    #[inline]
8200    fn visit_jsx_text(&mut self, node: &JSXText) {
8201        if self.enabled {
8202            <V as Visit>::visit_jsx_text(&mut self.visitor, node)
8203        } else {
8204        }
8205    }
8206
8207    #[inline]
8208    fn visit_key(&mut self, node: &Key) {
8209        if self.enabled {
8210            <V as Visit>::visit_key(&mut self.visitor, node)
8211        } else {
8212        }
8213    }
8214
8215    #[inline]
8216    fn visit_key_value_pat_prop(&mut self, node: &KeyValuePatProp) {
8217        if self.enabled {
8218            <V as Visit>::visit_key_value_pat_prop(&mut self.visitor, node)
8219        } else {
8220        }
8221    }
8222
8223    #[inline]
8224    fn visit_key_value_prop(&mut self, node: &KeyValueProp) {
8225        if self.enabled {
8226            <V as Visit>::visit_key_value_prop(&mut self.visitor, node)
8227        } else {
8228        }
8229    }
8230
8231    #[inline]
8232    fn visit_labeled_stmt(&mut self, node: &LabeledStmt) {
8233        if self.enabled {
8234            <V as Visit>::visit_labeled_stmt(&mut self.visitor, node)
8235        } else {
8236        }
8237    }
8238
8239    #[inline]
8240    fn visit_lit(&mut self, node: &Lit) {
8241        if self.enabled {
8242            <V as Visit>::visit_lit(&mut self.visitor, node)
8243        } else {
8244        }
8245    }
8246
8247    #[inline]
8248    fn visit_member_expr(&mut self, node: &MemberExpr) {
8249        if self.enabled {
8250            <V as Visit>::visit_member_expr(&mut self.visitor, node)
8251        } else {
8252        }
8253    }
8254
8255    #[inline]
8256    fn visit_member_prop(&mut self, node: &MemberProp) {
8257        if self.enabled {
8258            <V as Visit>::visit_member_prop(&mut self.visitor, node)
8259        } else {
8260        }
8261    }
8262
8263    #[inline]
8264    fn visit_meta_prop_expr(&mut self, node: &MetaPropExpr) {
8265        if self.enabled {
8266            <V as Visit>::visit_meta_prop_expr(&mut self.visitor, node)
8267        } else {
8268        }
8269    }
8270
8271    #[inline]
8272    fn visit_meta_prop_kind(&mut self, node: &MetaPropKind) {
8273        if self.enabled {
8274            <V as Visit>::visit_meta_prop_kind(&mut self.visitor, node)
8275        } else {
8276        }
8277    }
8278
8279    #[inline]
8280    fn visit_method_kind(&mut self, node: &MethodKind) {
8281        if self.enabled {
8282            <V as Visit>::visit_method_kind(&mut self.visitor, node)
8283        } else {
8284        }
8285    }
8286
8287    #[inline]
8288    fn visit_method_prop(&mut self, node: &MethodProp) {
8289        if self.enabled {
8290            <V as Visit>::visit_method_prop(&mut self.visitor, node)
8291        } else {
8292        }
8293    }
8294
8295    #[inline]
8296    fn visit_module(&mut self, node: &Module) {
8297        if self.enabled {
8298            <V as Visit>::visit_module(&mut self.visitor, node)
8299        } else {
8300        }
8301    }
8302
8303    #[inline]
8304    fn visit_module_decl(&mut self, node: &ModuleDecl) {
8305        if self.enabled {
8306            <V as Visit>::visit_module_decl(&mut self.visitor, node)
8307        } else {
8308        }
8309    }
8310
8311    #[inline]
8312    fn visit_module_export_name(&mut self, node: &ModuleExportName) {
8313        if self.enabled {
8314            <V as Visit>::visit_module_export_name(&mut self.visitor, node)
8315        } else {
8316        }
8317    }
8318
8319    #[inline]
8320    fn visit_module_item(&mut self, node: &ModuleItem) {
8321        if self.enabled {
8322            <V as Visit>::visit_module_item(&mut self.visitor, node)
8323        } else {
8324        }
8325    }
8326
8327    #[inline]
8328    fn visit_module_items(&mut self, node: &[ModuleItem]) {
8329        if self.enabled {
8330            <V as Visit>::visit_module_items(&mut self.visitor, node)
8331        } else {
8332        }
8333    }
8334
8335    #[inline]
8336    fn visit_named_export(&mut self, node: &NamedExport) {
8337        if self.enabled {
8338            <V as Visit>::visit_named_export(&mut self.visitor, node)
8339        } else {
8340        }
8341    }
8342
8343    #[inline]
8344    fn visit_new_expr(&mut self, node: &NewExpr) {
8345        if self.enabled {
8346            <V as Visit>::visit_new_expr(&mut self.visitor, node)
8347        } else {
8348        }
8349    }
8350
8351    #[inline]
8352    fn visit_null(&mut self, node: &Null) {
8353        if self.enabled {
8354            <V as Visit>::visit_null(&mut self.visitor, node)
8355        } else {
8356        }
8357    }
8358
8359    #[inline]
8360    fn visit_number(&mut self, node: &Number) {
8361        if self.enabled {
8362            <V as Visit>::visit_number(&mut self.visitor, node)
8363        } else {
8364        }
8365    }
8366
8367    #[inline]
8368    fn visit_object_lit(&mut self, node: &ObjectLit) {
8369        if self.enabled {
8370            <V as Visit>::visit_object_lit(&mut self.visitor, node)
8371        } else {
8372        }
8373    }
8374
8375    #[inline]
8376    fn visit_object_pat(&mut self, node: &ObjectPat) {
8377        if self.enabled {
8378            <V as Visit>::visit_object_pat(&mut self.visitor, node)
8379        } else {
8380        }
8381    }
8382
8383    #[inline]
8384    fn visit_object_pat_prop(&mut self, node: &ObjectPatProp) {
8385        if self.enabled {
8386            <V as Visit>::visit_object_pat_prop(&mut self.visitor, node)
8387        } else {
8388        }
8389    }
8390
8391    #[inline]
8392    fn visit_object_pat_props(&mut self, node: &[ObjectPatProp]) {
8393        if self.enabled {
8394            <V as Visit>::visit_object_pat_props(&mut self.visitor, node)
8395        } else {
8396        }
8397    }
8398
8399    #[inline]
8400    fn visit_opt_accessibility(&mut self, node: &Option<Accessibility>) {
8401        if self.enabled {
8402            <V as Visit>::visit_opt_accessibility(&mut self.visitor, node)
8403        } else {
8404        }
8405    }
8406
8407    #[inline]
8408    fn visit_opt_atom(&mut self, node: &Option<swc_atoms::Atom>) {
8409        if self.enabled {
8410            <V as Visit>::visit_opt_atom(&mut self.visitor, node)
8411        } else {
8412        }
8413    }
8414
8415    #[inline]
8416    fn visit_opt_block_stmt(&mut self, node: &Option<BlockStmt>) {
8417        if self.enabled {
8418            <V as Visit>::visit_opt_block_stmt(&mut self.visitor, node)
8419        } else {
8420        }
8421    }
8422
8423    #[inline]
8424    fn visit_opt_call(&mut self, node: &OptCall) {
8425        if self.enabled {
8426            <V as Visit>::visit_opt_call(&mut self.visitor, node)
8427        } else {
8428        }
8429    }
8430
8431    #[inline]
8432    fn visit_opt_catch_clause(&mut self, node: &Option<CatchClause>) {
8433        if self.enabled {
8434            <V as Visit>::visit_opt_catch_clause(&mut self.visitor, node)
8435        } else {
8436        }
8437    }
8438
8439    #[inline]
8440    fn visit_opt_chain_base(&mut self, node: &OptChainBase) {
8441        if self.enabled {
8442            <V as Visit>::visit_opt_chain_base(&mut self.visitor, node)
8443        } else {
8444        }
8445    }
8446
8447    #[inline]
8448    fn visit_opt_chain_expr(&mut self, node: &OptChainExpr) {
8449        if self.enabled {
8450            <V as Visit>::visit_opt_chain_expr(&mut self.visitor, node)
8451        } else {
8452        }
8453    }
8454
8455    #[inline]
8456    fn visit_opt_expr(&mut self, node: &Option<Box<Expr>>) {
8457        if self.enabled {
8458            <V as Visit>::visit_opt_expr(&mut self.visitor, node)
8459        } else {
8460        }
8461    }
8462
8463    #[inline]
8464    fn visit_opt_expr_or_spread(&mut self, node: &Option<ExprOrSpread>) {
8465        if self.enabled {
8466            <V as Visit>::visit_opt_expr_or_spread(&mut self.visitor, node)
8467        } else {
8468        }
8469    }
8470
8471    #[inline]
8472    fn visit_opt_expr_or_spreads(&mut self, node: &Option<Vec<ExprOrSpread>>) {
8473        if self.enabled {
8474            <V as Visit>::visit_opt_expr_or_spreads(&mut self.visitor, node)
8475        } else {
8476        }
8477    }
8478
8479    #[inline]
8480    fn visit_opt_ident(&mut self, node: &Option<Ident>) {
8481        if self.enabled {
8482            <V as Visit>::visit_opt_ident(&mut self.visitor, node)
8483        } else {
8484        }
8485    }
8486
8487    #[inline]
8488    fn visit_opt_jsx_attr_value(&mut self, node: &Option<JSXAttrValue>) {
8489        if self.enabled {
8490            <V as Visit>::visit_opt_jsx_attr_value(&mut self.visitor, node)
8491        } else {
8492        }
8493    }
8494
8495    #[inline]
8496    fn visit_opt_jsx_closing_element(&mut self, node: &Option<JSXClosingElement>) {
8497        if self.enabled {
8498            <V as Visit>::visit_opt_jsx_closing_element(&mut self.visitor, node)
8499        } else {
8500        }
8501    }
8502
8503    #[inline]
8504    fn visit_opt_module_export_name(&mut self, node: &Option<ModuleExportName>) {
8505        if self.enabled {
8506            <V as Visit>::visit_opt_module_export_name(&mut self.visitor, node)
8507        } else {
8508        }
8509    }
8510
8511    #[inline]
8512    fn visit_opt_object_lit(&mut self, node: &Option<Box<ObjectLit>>) {
8513        if self.enabled {
8514            <V as Visit>::visit_opt_object_lit(&mut self.visitor, node)
8515        } else {
8516        }
8517    }
8518
8519    #[inline]
8520    fn visit_opt_pat(&mut self, node: &Option<Pat>) {
8521        if self.enabled {
8522            <V as Visit>::visit_opt_pat(&mut self.visitor, node)
8523        } else {
8524        }
8525    }
8526
8527    #[inline]
8528    fn visit_opt_span(&mut self, node: &Option<swc_common::Span>) {
8529        if self.enabled {
8530            <V as Visit>::visit_opt_span(&mut self.visitor, node)
8531        } else {
8532        }
8533    }
8534
8535    #[inline]
8536    fn visit_opt_stmt(&mut self, node: &Option<Box<Stmt>>) {
8537        if self.enabled {
8538            <V as Visit>::visit_opt_stmt(&mut self.visitor, node)
8539        } else {
8540        }
8541    }
8542
8543    #[inline]
8544    fn visit_opt_str(&mut self, node: &Option<Box<Str>>) {
8545        if self.enabled {
8546            <V as Visit>::visit_opt_str(&mut self.visitor, node)
8547        } else {
8548        }
8549    }
8550
8551    #[inline]
8552    fn visit_opt_true_plus_minus(&mut self, node: &Option<TruePlusMinus>) {
8553        if self.enabled {
8554            <V as Visit>::visit_opt_true_plus_minus(&mut self.visitor, node)
8555        } else {
8556        }
8557    }
8558
8559    #[inline]
8560    fn visit_opt_ts_entity_name(&mut self, node: &Option<TsEntityName>) {
8561        if self.enabled {
8562            <V as Visit>::visit_opt_ts_entity_name(&mut self.visitor, node)
8563        } else {
8564        }
8565    }
8566
8567    #[inline]
8568    fn visit_opt_ts_import_call_options(&mut self, node: &Option<TsImportCallOptions>) {
8569        if self.enabled {
8570            <V as Visit>::visit_opt_ts_import_call_options(&mut self.visitor, node)
8571        } else {
8572        }
8573    }
8574
8575    #[inline]
8576    fn visit_opt_ts_namespace_body(&mut self, node: &Option<TsNamespaceBody>) {
8577        if self.enabled {
8578            <V as Visit>::visit_opt_ts_namespace_body(&mut self.visitor, node)
8579        } else {
8580        }
8581    }
8582
8583    #[inline]
8584    fn visit_opt_ts_type(&mut self, node: &Option<Box<TsType>>) {
8585        if self.enabled {
8586            <V as Visit>::visit_opt_ts_type(&mut self.visitor, node)
8587        } else {
8588        }
8589    }
8590
8591    #[inline]
8592    fn visit_opt_ts_type_ann(&mut self, node: &Option<Box<TsTypeAnn>>) {
8593        if self.enabled {
8594            <V as Visit>::visit_opt_ts_type_ann(&mut self.visitor, node)
8595        } else {
8596        }
8597    }
8598
8599    #[inline]
8600    fn visit_opt_ts_type_param_decl(&mut self, node: &Option<Box<TsTypeParamDecl>>) {
8601        if self.enabled {
8602            <V as Visit>::visit_opt_ts_type_param_decl(&mut self.visitor, node)
8603        } else {
8604        }
8605    }
8606
8607    #[inline]
8608    fn visit_opt_ts_type_param_instantiation(
8609        &mut self,
8610        node: &Option<Box<TsTypeParamInstantiation>>,
8611    ) {
8612        if self.enabled {
8613            <V as Visit>::visit_opt_ts_type_param_instantiation(&mut self.visitor, node)
8614        } else {
8615        }
8616    }
8617
8618    #[inline]
8619    fn visit_opt_var_decl_or_expr(&mut self, node: &Option<VarDeclOrExpr>) {
8620        if self.enabled {
8621            <V as Visit>::visit_opt_var_decl_or_expr(&mut self.visitor, node)
8622        } else {
8623        }
8624    }
8625
8626    #[inline]
8627    fn visit_opt_vec_expr_or_spreads(&mut self, node: &[Option<ExprOrSpread>]) {
8628        if self.enabled {
8629            <V as Visit>::visit_opt_vec_expr_or_spreads(&mut self.visitor, node)
8630        } else {
8631        }
8632    }
8633
8634    #[inline]
8635    fn visit_opt_vec_pats(&mut self, node: &[Option<Pat>]) {
8636        if self.enabled {
8637            <V as Visit>::visit_opt_vec_pats(&mut self.visitor, node)
8638        } else {
8639        }
8640    }
8641
8642    #[inline]
8643    fn visit_param(&mut self, node: &Param) {
8644        if self.enabled {
8645            <V as Visit>::visit_param(&mut self.visitor, node)
8646        } else {
8647        }
8648    }
8649
8650    #[inline]
8651    fn visit_param_or_ts_param_prop(&mut self, node: &ParamOrTsParamProp) {
8652        if self.enabled {
8653            <V as Visit>::visit_param_or_ts_param_prop(&mut self.visitor, node)
8654        } else {
8655        }
8656    }
8657
8658    #[inline]
8659    fn visit_param_or_ts_param_props(&mut self, node: &[ParamOrTsParamProp]) {
8660        if self.enabled {
8661            <V as Visit>::visit_param_or_ts_param_props(&mut self.visitor, node)
8662        } else {
8663        }
8664    }
8665
8666    #[inline]
8667    fn visit_params(&mut self, node: &[Param]) {
8668        if self.enabled {
8669            <V as Visit>::visit_params(&mut self.visitor, node)
8670        } else {
8671        }
8672    }
8673
8674    #[inline]
8675    fn visit_paren_expr(&mut self, node: &ParenExpr) {
8676        if self.enabled {
8677            <V as Visit>::visit_paren_expr(&mut self.visitor, node)
8678        } else {
8679        }
8680    }
8681
8682    #[inline]
8683    fn visit_pat(&mut self, node: &Pat) {
8684        if self.enabled {
8685            <V as Visit>::visit_pat(&mut self.visitor, node)
8686        } else {
8687        }
8688    }
8689
8690    #[inline]
8691    fn visit_pats(&mut self, node: &[Pat]) {
8692        if self.enabled {
8693            <V as Visit>::visit_pats(&mut self.visitor, node)
8694        } else {
8695        }
8696    }
8697
8698    #[inline]
8699    fn visit_private_method(&mut self, node: &PrivateMethod) {
8700        if self.enabled {
8701            <V as Visit>::visit_private_method(&mut self.visitor, node)
8702        } else {
8703        }
8704    }
8705
8706    #[inline]
8707    fn visit_private_name(&mut self, node: &PrivateName) {
8708        if self.enabled {
8709            <V as Visit>::visit_private_name(&mut self.visitor, node)
8710        } else {
8711        }
8712    }
8713
8714    #[inline]
8715    fn visit_private_prop(&mut self, node: &PrivateProp) {
8716        if self.enabled {
8717            <V as Visit>::visit_private_prop(&mut self.visitor, node)
8718        } else {
8719        }
8720    }
8721
8722    #[inline]
8723    fn visit_program(&mut self, node: &Program) {
8724        if self.enabled {
8725            <V as Visit>::visit_program(&mut self.visitor, node)
8726        } else {
8727        }
8728    }
8729
8730    #[inline]
8731    fn visit_prop(&mut self, node: &Prop) {
8732        if self.enabled {
8733            <V as Visit>::visit_prop(&mut self.visitor, node)
8734        } else {
8735        }
8736    }
8737
8738    #[inline]
8739    fn visit_prop_name(&mut self, node: &PropName) {
8740        if self.enabled {
8741            <V as Visit>::visit_prop_name(&mut self.visitor, node)
8742        } else {
8743        }
8744    }
8745
8746    #[inline]
8747    fn visit_prop_or_spread(&mut self, node: &PropOrSpread) {
8748        if self.enabled {
8749            <V as Visit>::visit_prop_or_spread(&mut self.visitor, node)
8750        } else {
8751        }
8752    }
8753
8754    #[inline]
8755    fn visit_prop_or_spreads(&mut self, node: &[PropOrSpread]) {
8756        if self.enabled {
8757            <V as Visit>::visit_prop_or_spreads(&mut self.visitor, node)
8758        } else {
8759        }
8760    }
8761
8762    #[inline]
8763    fn visit_regex(&mut self, node: &Regex) {
8764        if self.enabled {
8765            <V as Visit>::visit_regex(&mut self.visitor, node)
8766        } else {
8767        }
8768    }
8769
8770    #[inline]
8771    fn visit_rest_pat(&mut self, node: &RestPat) {
8772        if self.enabled {
8773            <V as Visit>::visit_rest_pat(&mut self.visitor, node)
8774        } else {
8775        }
8776    }
8777
8778    #[inline]
8779    fn visit_return_stmt(&mut self, node: &ReturnStmt) {
8780        if self.enabled {
8781            <V as Visit>::visit_return_stmt(&mut self.visitor, node)
8782        } else {
8783        }
8784    }
8785
8786    #[inline]
8787    fn visit_script(&mut self, node: &Script) {
8788        if self.enabled {
8789            <V as Visit>::visit_script(&mut self.visitor, node)
8790        } else {
8791        }
8792    }
8793
8794    #[inline]
8795    fn visit_seq_expr(&mut self, node: &SeqExpr) {
8796        if self.enabled {
8797            <V as Visit>::visit_seq_expr(&mut self.visitor, node)
8798        } else {
8799        }
8800    }
8801
8802    #[inline]
8803    fn visit_setter_prop(&mut self, node: &SetterProp) {
8804        if self.enabled {
8805            <V as Visit>::visit_setter_prop(&mut self.visitor, node)
8806        } else {
8807        }
8808    }
8809
8810    #[inline]
8811    fn visit_simple_assign_target(&mut self, node: &SimpleAssignTarget) {
8812        if self.enabled {
8813            <V as Visit>::visit_simple_assign_target(&mut self.visitor, node)
8814        } else {
8815        }
8816    }
8817
8818    #[inline]
8819    fn visit_span(&mut self, node: &swc_common::Span) {
8820        if self.enabled {
8821            <V as Visit>::visit_span(&mut self.visitor, node)
8822        } else {
8823        }
8824    }
8825
8826    #[inline]
8827    fn visit_spread_element(&mut self, node: &SpreadElement) {
8828        if self.enabled {
8829            <V as Visit>::visit_spread_element(&mut self.visitor, node)
8830        } else {
8831        }
8832    }
8833
8834    #[inline]
8835    fn visit_static_block(&mut self, node: &StaticBlock) {
8836        if self.enabled {
8837            <V as Visit>::visit_static_block(&mut self.visitor, node)
8838        } else {
8839        }
8840    }
8841
8842    #[inline]
8843    fn visit_stmt(&mut self, node: &Stmt) {
8844        if self.enabled {
8845            <V as Visit>::visit_stmt(&mut self.visitor, node)
8846        } else {
8847        }
8848    }
8849
8850    #[inline]
8851    fn visit_stmts(&mut self, node: &[Stmt]) {
8852        if self.enabled {
8853            <V as Visit>::visit_stmts(&mut self.visitor, node)
8854        } else {
8855        }
8856    }
8857
8858    #[inline]
8859    fn visit_str(&mut self, node: &Str) {
8860        if self.enabled {
8861            <V as Visit>::visit_str(&mut self.visitor, node)
8862        } else {
8863        }
8864    }
8865
8866    #[inline]
8867    fn visit_super(&mut self, node: &Super) {
8868        if self.enabled {
8869            <V as Visit>::visit_super(&mut self.visitor, node)
8870        } else {
8871        }
8872    }
8873
8874    #[inline]
8875    fn visit_super_prop(&mut self, node: &SuperProp) {
8876        if self.enabled {
8877            <V as Visit>::visit_super_prop(&mut self.visitor, node)
8878        } else {
8879        }
8880    }
8881
8882    #[inline]
8883    fn visit_super_prop_expr(&mut self, node: &SuperPropExpr) {
8884        if self.enabled {
8885            <V as Visit>::visit_super_prop_expr(&mut self.visitor, node)
8886        } else {
8887        }
8888    }
8889
8890    #[inline]
8891    fn visit_switch_case(&mut self, node: &SwitchCase) {
8892        if self.enabled {
8893            <V as Visit>::visit_switch_case(&mut self.visitor, node)
8894        } else {
8895        }
8896    }
8897
8898    #[inline]
8899    fn visit_switch_cases(&mut self, node: &[SwitchCase]) {
8900        if self.enabled {
8901            <V as Visit>::visit_switch_cases(&mut self.visitor, node)
8902        } else {
8903        }
8904    }
8905
8906    #[inline]
8907    fn visit_switch_stmt(&mut self, node: &SwitchStmt) {
8908        if self.enabled {
8909            <V as Visit>::visit_switch_stmt(&mut self.visitor, node)
8910        } else {
8911        }
8912    }
8913
8914    #[inline]
8915    fn visit_syntax_context(&mut self, node: &swc_common::SyntaxContext) {
8916        if self.enabled {
8917            <V as Visit>::visit_syntax_context(&mut self.visitor, node)
8918        } else {
8919        }
8920    }
8921
8922    #[inline]
8923    fn visit_tagged_tpl(&mut self, node: &TaggedTpl) {
8924        if self.enabled {
8925            <V as Visit>::visit_tagged_tpl(&mut self.visitor, node)
8926        } else {
8927        }
8928    }
8929
8930    #[inline]
8931    fn visit_this_expr(&mut self, node: &ThisExpr) {
8932        if self.enabled {
8933            <V as Visit>::visit_this_expr(&mut self.visitor, node)
8934        } else {
8935        }
8936    }
8937
8938    #[inline]
8939    fn visit_throw_stmt(&mut self, node: &ThrowStmt) {
8940        if self.enabled {
8941            <V as Visit>::visit_throw_stmt(&mut self.visitor, node)
8942        } else {
8943        }
8944    }
8945
8946    #[inline]
8947    fn visit_tpl(&mut self, node: &Tpl) {
8948        if self.enabled {
8949            <V as Visit>::visit_tpl(&mut self.visitor, node)
8950        } else {
8951        }
8952    }
8953
8954    #[inline]
8955    fn visit_tpl_element(&mut self, node: &TplElement) {
8956        if self.enabled {
8957            <V as Visit>::visit_tpl_element(&mut self.visitor, node)
8958        } else {
8959        }
8960    }
8961
8962    #[inline]
8963    fn visit_tpl_elements(&mut self, node: &[TplElement]) {
8964        if self.enabled {
8965            <V as Visit>::visit_tpl_elements(&mut self.visitor, node)
8966        } else {
8967        }
8968    }
8969
8970    #[inline]
8971    fn visit_true_plus_minus(&mut self, node: &TruePlusMinus) {
8972        if self.enabled {
8973            <V as Visit>::visit_true_plus_minus(&mut self.visitor, node)
8974        } else {
8975        }
8976    }
8977
8978    #[inline]
8979    fn visit_try_stmt(&mut self, node: &TryStmt) {
8980        if self.enabled {
8981            <V as Visit>::visit_try_stmt(&mut self.visitor, node)
8982        } else {
8983        }
8984    }
8985
8986    #[inline]
8987    fn visit_ts_array_type(&mut self, node: &TsArrayType) {
8988        if self.enabled {
8989            <V as Visit>::visit_ts_array_type(&mut self.visitor, node)
8990        } else {
8991        }
8992    }
8993
8994    #[inline]
8995    fn visit_ts_as_expr(&mut self, node: &TsAsExpr) {
8996        if self.enabled {
8997            <V as Visit>::visit_ts_as_expr(&mut self.visitor, node)
8998        } else {
8999        }
9000    }
9001
9002    #[inline]
9003    fn visit_ts_call_signature_decl(&mut self, node: &TsCallSignatureDecl) {
9004        if self.enabled {
9005            <V as Visit>::visit_ts_call_signature_decl(&mut self.visitor, node)
9006        } else {
9007        }
9008    }
9009
9010    #[inline]
9011    fn visit_ts_conditional_type(&mut self, node: &TsConditionalType) {
9012        if self.enabled {
9013            <V as Visit>::visit_ts_conditional_type(&mut self.visitor, node)
9014        } else {
9015        }
9016    }
9017
9018    #[inline]
9019    fn visit_ts_const_assertion(&mut self, node: &TsConstAssertion) {
9020        if self.enabled {
9021            <V as Visit>::visit_ts_const_assertion(&mut self.visitor, node)
9022        } else {
9023        }
9024    }
9025
9026    #[inline]
9027    fn visit_ts_construct_signature_decl(&mut self, node: &TsConstructSignatureDecl) {
9028        if self.enabled {
9029            <V as Visit>::visit_ts_construct_signature_decl(&mut self.visitor, node)
9030        } else {
9031        }
9032    }
9033
9034    #[inline]
9035    fn visit_ts_constructor_type(&mut self, node: &TsConstructorType) {
9036        if self.enabled {
9037            <V as Visit>::visit_ts_constructor_type(&mut self.visitor, node)
9038        } else {
9039        }
9040    }
9041
9042    #[inline]
9043    fn visit_ts_entity_name(&mut self, node: &TsEntityName) {
9044        if self.enabled {
9045            <V as Visit>::visit_ts_entity_name(&mut self.visitor, node)
9046        } else {
9047        }
9048    }
9049
9050    #[inline]
9051    fn visit_ts_enum_decl(&mut self, node: &TsEnumDecl) {
9052        if self.enabled {
9053            <V as Visit>::visit_ts_enum_decl(&mut self.visitor, node)
9054        } else {
9055        }
9056    }
9057
9058    #[inline]
9059    fn visit_ts_enum_member(&mut self, node: &TsEnumMember) {
9060        if self.enabled {
9061            <V as Visit>::visit_ts_enum_member(&mut self.visitor, node)
9062        } else {
9063        }
9064    }
9065
9066    #[inline]
9067    fn visit_ts_enum_member_id(&mut self, node: &TsEnumMemberId) {
9068        if self.enabled {
9069            <V as Visit>::visit_ts_enum_member_id(&mut self.visitor, node)
9070        } else {
9071        }
9072    }
9073
9074    #[inline]
9075    fn visit_ts_enum_members(&mut self, node: &[TsEnumMember]) {
9076        if self.enabled {
9077            <V as Visit>::visit_ts_enum_members(&mut self.visitor, node)
9078        } else {
9079        }
9080    }
9081
9082    #[inline]
9083    fn visit_ts_export_assignment(&mut self, node: &TsExportAssignment) {
9084        if self.enabled {
9085            <V as Visit>::visit_ts_export_assignment(&mut self.visitor, node)
9086        } else {
9087        }
9088    }
9089
9090    #[inline]
9091    fn visit_ts_expr_with_type_args(&mut self, node: &TsExprWithTypeArgs) {
9092        if self.enabled {
9093            <V as Visit>::visit_ts_expr_with_type_args(&mut self.visitor, node)
9094        } else {
9095        }
9096    }
9097
9098    #[inline]
9099    fn visit_ts_expr_with_type_argss(&mut self, node: &[TsExprWithTypeArgs]) {
9100        if self.enabled {
9101            <V as Visit>::visit_ts_expr_with_type_argss(&mut self.visitor, node)
9102        } else {
9103        }
9104    }
9105
9106    #[inline]
9107    fn visit_ts_external_module_ref(&mut self, node: &TsExternalModuleRef) {
9108        if self.enabled {
9109            <V as Visit>::visit_ts_external_module_ref(&mut self.visitor, node)
9110        } else {
9111        }
9112    }
9113
9114    #[inline]
9115    fn visit_ts_fn_or_constructor_type(&mut self, node: &TsFnOrConstructorType) {
9116        if self.enabled {
9117            <V as Visit>::visit_ts_fn_or_constructor_type(&mut self.visitor, node)
9118        } else {
9119        }
9120    }
9121
9122    #[inline]
9123    fn visit_ts_fn_param(&mut self, node: &TsFnParam) {
9124        if self.enabled {
9125            <V as Visit>::visit_ts_fn_param(&mut self.visitor, node)
9126        } else {
9127        }
9128    }
9129
9130    #[inline]
9131    fn visit_ts_fn_params(&mut self, node: &[TsFnParam]) {
9132        if self.enabled {
9133            <V as Visit>::visit_ts_fn_params(&mut self.visitor, node)
9134        } else {
9135        }
9136    }
9137
9138    #[inline]
9139    fn visit_ts_fn_type(&mut self, node: &TsFnType) {
9140        if self.enabled {
9141            <V as Visit>::visit_ts_fn_type(&mut self.visitor, node)
9142        } else {
9143        }
9144    }
9145
9146    #[inline]
9147    fn visit_ts_getter_signature(&mut self, node: &TsGetterSignature) {
9148        if self.enabled {
9149            <V as Visit>::visit_ts_getter_signature(&mut self.visitor, node)
9150        } else {
9151        }
9152    }
9153
9154    #[inline]
9155    fn visit_ts_import_call_options(&mut self, node: &TsImportCallOptions) {
9156        if self.enabled {
9157            <V as Visit>::visit_ts_import_call_options(&mut self.visitor, node)
9158        } else {
9159        }
9160    }
9161
9162    #[inline]
9163    fn visit_ts_import_equals_decl(&mut self, node: &TsImportEqualsDecl) {
9164        if self.enabled {
9165            <V as Visit>::visit_ts_import_equals_decl(&mut self.visitor, node)
9166        } else {
9167        }
9168    }
9169
9170    #[inline]
9171    fn visit_ts_import_type(&mut self, node: &TsImportType) {
9172        if self.enabled {
9173            <V as Visit>::visit_ts_import_type(&mut self.visitor, node)
9174        } else {
9175        }
9176    }
9177
9178    #[inline]
9179    fn visit_ts_index_signature(&mut self, node: &TsIndexSignature) {
9180        if self.enabled {
9181            <V as Visit>::visit_ts_index_signature(&mut self.visitor, node)
9182        } else {
9183        }
9184    }
9185
9186    #[inline]
9187    fn visit_ts_indexed_access_type(&mut self, node: &TsIndexedAccessType) {
9188        if self.enabled {
9189            <V as Visit>::visit_ts_indexed_access_type(&mut self.visitor, node)
9190        } else {
9191        }
9192    }
9193
9194    #[inline]
9195    fn visit_ts_infer_type(&mut self, node: &TsInferType) {
9196        if self.enabled {
9197            <V as Visit>::visit_ts_infer_type(&mut self.visitor, node)
9198        } else {
9199        }
9200    }
9201
9202    #[inline]
9203    fn visit_ts_instantiation(&mut self, node: &TsInstantiation) {
9204        if self.enabled {
9205            <V as Visit>::visit_ts_instantiation(&mut self.visitor, node)
9206        } else {
9207        }
9208    }
9209
9210    #[inline]
9211    fn visit_ts_interface_body(&mut self, node: &TsInterfaceBody) {
9212        if self.enabled {
9213            <V as Visit>::visit_ts_interface_body(&mut self.visitor, node)
9214        } else {
9215        }
9216    }
9217
9218    #[inline]
9219    fn visit_ts_interface_decl(&mut self, node: &TsInterfaceDecl) {
9220        if self.enabled {
9221            <V as Visit>::visit_ts_interface_decl(&mut self.visitor, node)
9222        } else {
9223        }
9224    }
9225
9226    #[inline]
9227    fn visit_ts_intersection_type(&mut self, node: &TsIntersectionType) {
9228        if self.enabled {
9229            <V as Visit>::visit_ts_intersection_type(&mut self.visitor, node)
9230        } else {
9231        }
9232    }
9233
9234    #[inline]
9235    fn visit_ts_keyword_type(&mut self, node: &TsKeywordType) {
9236        if self.enabled {
9237            <V as Visit>::visit_ts_keyword_type(&mut self.visitor, node)
9238        } else {
9239        }
9240    }
9241
9242    #[inline]
9243    fn visit_ts_keyword_type_kind(&mut self, node: &TsKeywordTypeKind) {
9244        if self.enabled {
9245            <V as Visit>::visit_ts_keyword_type_kind(&mut self.visitor, node)
9246        } else {
9247        }
9248    }
9249
9250    #[inline]
9251    fn visit_ts_lit(&mut self, node: &TsLit) {
9252        if self.enabled {
9253            <V as Visit>::visit_ts_lit(&mut self.visitor, node)
9254        } else {
9255        }
9256    }
9257
9258    #[inline]
9259    fn visit_ts_lit_type(&mut self, node: &TsLitType) {
9260        if self.enabled {
9261            <V as Visit>::visit_ts_lit_type(&mut self.visitor, node)
9262        } else {
9263        }
9264    }
9265
9266    #[inline]
9267    fn visit_ts_mapped_type(&mut self, node: &TsMappedType) {
9268        if self.enabled {
9269            <V as Visit>::visit_ts_mapped_type(&mut self.visitor, node)
9270        } else {
9271        }
9272    }
9273
9274    #[inline]
9275    fn visit_ts_method_signature(&mut self, node: &TsMethodSignature) {
9276        if self.enabled {
9277            <V as Visit>::visit_ts_method_signature(&mut self.visitor, node)
9278        } else {
9279        }
9280    }
9281
9282    #[inline]
9283    fn visit_ts_module_block(&mut self, node: &TsModuleBlock) {
9284        if self.enabled {
9285            <V as Visit>::visit_ts_module_block(&mut self.visitor, node)
9286        } else {
9287        }
9288    }
9289
9290    #[inline]
9291    fn visit_ts_module_decl(&mut self, node: &TsModuleDecl) {
9292        if self.enabled {
9293            <V as Visit>::visit_ts_module_decl(&mut self.visitor, node)
9294        } else {
9295        }
9296    }
9297
9298    #[inline]
9299    fn visit_ts_module_name(&mut self, node: &TsModuleName) {
9300        if self.enabled {
9301            <V as Visit>::visit_ts_module_name(&mut self.visitor, node)
9302        } else {
9303        }
9304    }
9305
9306    #[inline]
9307    fn visit_ts_module_ref(&mut self, node: &TsModuleRef) {
9308        if self.enabled {
9309            <V as Visit>::visit_ts_module_ref(&mut self.visitor, node)
9310        } else {
9311        }
9312    }
9313
9314    #[inline]
9315    fn visit_ts_namespace_body(&mut self, node: &TsNamespaceBody) {
9316        if self.enabled {
9317            <V as Visit>::visit_ts_namespace_body(&mut self.visitor, node)
9318        } else {
9319        }
9320    }
9321
9322    #[inline]
9323    fn visit_ts_namespace_decl(&mut self, node: &TsNamespaceDecl) {
9324        if self.enabled {
9325            <V as Visit>::visit_ts_namespace_decl(&mut self.visitor, node)
9326        } else {
9327        }
9328    }
9329
9330    #[inline]
9331    fn visit_ts_namespace_export_decl(&mut self, node: &TsNamespaceExportDecl) {
9332        if self.enabled {
9333            <V as Visit>::visit_ts_namespace_export_decl(&mut self.visitor, node)
9334        } else {
9335        }
9336    }
9337
9338    #[inline]
9339    fn visit_ts_non_null_expr(&mut self, node: &TsNonNullExpr) {
9340        if self.enabled {
9341            <V as Visit>::visit_ts_non_null_expr(&mut self.visitor, node)
9342        } else {
9343        }
9344    }
9345
9346    #[inline]
9347    fn visit_ts_optional_type(&mut self, node: &TsOptionalType) {
9348        if self.enabled {
9349            <V as Visit>::visit_ts_optional_type(&mut self.visitor, node)
9350        } else {
9351        }
9352    }
9353
9354    #[inline]
9355    fn visit_ts_param_prop(&mut self, node: &TsParamProp) {
9356        if self.enabled {
9357            <V as Visit>::visit_ts_param_prop(&mut self.visitor, node)
9358        } else {
9359        }
9360    }
9361
9362    #[inline]
9363    fn visit_ts_param_prop_param(&mut self, node: &TsParamPropParam) {
9364        if self.enabled {
9365            <V as Visit>::visit_ts_param_prop_param(&mut self.visitor, node)
9366        } else {
9367        }
9368    }
9369
9370    #[inline]
9371    fn visit_ts_parenthesized_type(&mut self, node: &TsParenthesizedType) {
9372        if self.enabled {
9373            <V as Visit>::visit_ts_parenthesized_type(&mut self.visitor, node)
9374        } else {
9375        }
9376    }
9377
9378    #[inline]
9379    fn visit_ts_property_signature(&mut self, node: &TsPropertySignature) {
9380        if self.enabled {
9381            <V as Visit>::visit_ts_property_signature(&mut self.visitor, node)
9382        } else {
9383        }
9384    }
9385
9386    #[inline]
9387    fn visit_ts_qualified_name(&mut self, node: &TsQualifiedName) {
9388        if self.enabled {
9389            <V as Visit>::visit_ts_qualified_name(&mut self.visitor, node)
9390        } else {
9391        }
9392    }
9393
9394    #[inline]
9395    fn visit_ts_rest_type(&mut self, node: &TsRestType) {
9396        if self.enabled {
9397            <V as Visit>::visit_ts_rest_type(&mut self.visitor, node)
9398        } else {
9399        }
9400    }
9401
9402    #[inline]
9403    fn visit_ts_satisfies_expr(&mut self, node: &TsSatisfiesExpr) {
9404        if self.enabled {
9405            <V as Visit>::visit_ts_satisfies_expr(&mut self.visitor, node)
9406        } else {
9407        }
9408    }
9409
9410    #[inline]
9411    fn visit_ts_setter_signature(&mut self, node: &TsSetterSignature) {
9412        if self.enabled {
9413            <V as Visit>::visit_ts_setter_signature(&mut self.visitor, node)
9414        } else {
9415        }
9416    }
9417
9418    #[inline]
9419    fn visit_ts_this_type(&mut self, node: &TsThisType) {
9420        if self.enabled {
9421            <V as Visit>::visit_ts_this_type(&mut self.visitor, node)
9422        } else {
9423        }
9424    }
9425
9426    #[inline]
9427    fn visit_ts_this_type_or_ident(&mut self, node: &TsThisTypeOrIdent) {
9428        if self.enabled {
9429            <V as Visit>::visit_ts_this_type_or_ident(&mut self.visitor, node)
9430        } else {
9431        }
9432    }
9433
9434    #[inline]
9435    fn visit_ts_tpl_lit_type(&mut self, node: &TsTplLitType) {
9436        if self.enabled {
9437            <V as Visit>::visit_ts_tpl_lit_type(&mut self.visitor, node)
9438        } else {
9439        }
9440    }
9441
9442    #[inline]
9443    fn visit_ts_tuple_element(&mut self, node: &TsTupleElement) {
9444        if self.enabled {
9445            <V as Visit>::visit_ts_tuple_element(&mut self.visitor, node)
9446        } else {
9447        }
9448    }
9449
9450    #[inline]
9451    fn visit_ts_tuple_elements(&mut self, node: &[TsTupleElement]) {
9452        if self.enabled {
9453            <V as Visit>::visit_ts_tuple_elements(&mut self.visitor, node)
9454        } else {
9455        }
9456    }
9457
9458    #[inline]
9459    fn visit_ts_tuple_type(&mut self, node: &TsTupleType) {
9460        if self.enabled {
9461            <V as Visit>::visit_ts_tuple_type(&mut self.visitor, node)
9462        } else {
9463        }
9464    }
9465
9466    #[inline]
9467    fn visit_ts_type(&mut self, node: &TsType) {
9468        if self.enabled {
9469            <V as Visit>::visit_ts_type(&mut self.visitor, node)
9470        } else {
9471        }
9472    }
9473
9474    #[inline]
9475    fn visit_ts_type_alias_decl(&mut self, node: &TsTypeAliasDecl) {
9476        if self.enabled {
9477            <V as Visit>::visit_ts_type_alias_decl(&mut self.visitor, node)
9478        } else {
9479        }
9480    }
9481
9482    #[inline]
9483    fn visit_ts_type_ann(&mut self, node: &TsTypeAnn) {
9484        if self.enabled {
9485            <V as Visit>::visit_ts_type_ann(&mut self.visitor, node)
9486        } else {
9487        }
9488    }
9489
9490    #[inline]
9491    fn visit_ts_type_assertion(&mut self, node: &TsTypeAssertion) {
9492        if self.enabled {
9493            <V as Visit>::visit_ts_type_assertion(&mut self.visitor, node)
9494        } else {
9495        }
9496    }
9497
9498    #[inline]
9499    fn visit_ts_type_element(&mut self, node: &TsTypeElement) {
9500        if self.enabled {
9501            <V as Visit>::visit_ts_type_element(&mut self.visitor, node)
9502        } else {
9503        }
9504    }
9505
9506    #[inline]
9507    fn visit_ts_type_elements(&mut self, node: &[TsTypeElement]) {
9508        if self.enabled {
9509            <V as Visit>::visit_ts_type_elements(&mut self.visitor, node)
9510        } else {
9511        }
9512    }
9513
9514    #[inline]
9515    fn visit_ts_type_lit(&mut self, node: &TsTypeLit) {
9516        if self.enabled {
9517            <V as Visit>::visit_ts_type_lit(&mut self.visitor, node)
9518        } else {
9519        }
9520    }
9521
9522    #[inline]
9523    fn visit_ts_type_operator(&mut self, node: &TsTypeOperator) {
9524        if self.enabled {
9525            <V as Visit>::visit_ts_type_operator(&mut self.visitor, node)
9526        } else {
9527        }
9528    }
9529
9530    #[inline]
9531    fn visit_ts_type_operator_op(&mut self, node: &TsTypeOperatorOp) {
9532        if self.enabled {
9533            <V as Visit>::visit_ts_type_operator_op(&mut self.visitor, node)
9534        } else {
9535        }
9536    }
9537
9538    #[inline]
9539    fn visit_ts_type_param(&mut self, node: &TsTypeParam) {
9540        if self.enabled {
9541            <V as Visit>::visit_ts_type_param(&mut self.visitor, node)
9542        } else {
9543        }
9544    }
9545
9546    #[inline]
9547    fn visit_ts_type_param_decl(&mut self, node: &TsTypeParamDecl) {
9548        if self.enabled {
9549            <V as Visit>::visit_ts_type_param_decl(&mut self.visitor, node)
9550        } else {
9551        }
9552    }
9553
9554    #[inline]
9555    fn visit_ts_type_param_instantiation(&mut self, node: &TsTypeParamInstantiation) {
9556        if self.enabled {
9557            <V as Visit>::visit_ts_type_param_instantiation(&mut self.visitor, node)
9558        } else {
9559        }
9560    }
9561
9562    #[inline]
9563    fn visit_ts_type_params(&mut self, node: &[TsTypeParam]) {
9564        if self.enabled {
9565            <V as Visit>::visit_ts_type_params(&mut self.visitor, node)
9566        } else {
9567        }
9568    }
9569
9570    #[inline]
9571    fn visit_ts_type_predicate(&mut self, node: &TsTypePredicate) {
9572        if self.enabled {
9573            <V as Visit>::visit_ts_type_predicate(&mut self.visitor, node)
9574        } else {
9575        }
9576    }
9577
9578    #[inline]
9579    fn visit_ts_type_query(&mut self, node: &TsTypeQuery) {
9580        if self.enabled {
9581            <V as Visit>::visit_ts_type_query(&mut self.visitor, node)
9582        } else {
9583        }
9584    }
9585
9586    #[inline]
9587    fn visit_ts_type_query_expr(&mut self, node: &TsTypeQueryExpr) {
9588        if self.enabled {
9589            <V as Visit>::visit_ts_type_query_expr(&mut self.visitor, node)
9590        } else {
9591        }
9592    }
9593
9594    #[inline]
9595    fn visit_ts_type_ref(&mut self, node: &TsTypeRef) {
9596        if self.enabled {
9597            <V as Visit>::visit_ts_type_ref(&mut self.visitor, node)
9598        } else {
9599        }
9600    }
9601
9602    #[inline]
9603    fn visit_ts_types(&mut self, node: &[Box<TsType>]) {
9604        if self.enabled {
9605            <V as Visit>::visit_ts_types(&mut self.visitor, node)
9606        } else {
9607        }
9608    }
9609
9610    #[inline]
9611    fn visit_ts_union_or_intersection_type(&mut self, node: &TsUnionOrIntersectionType) {
9612        if self.enabled {
9613            <V as Visit>::visit_ts_union_or_intersection_type(&mut self.visitor, node)
9614        } else {
9615        }
9616    }
9617
9618    #[inline]
9619    fn visit_ts_union_type(&mut self, node: &TsUnionType) {
9620        if self.enabled {
9621            <V as Visit>::visit_ts_union_type(&mut self.visitor, node)
9622        } else {
9623        }
9624    }
9625
9626    #[inline]
9627    fn visit_unary_expr(&mut self, node: &UnaryExpr) {
9628        if self.enabled {
9629            <V as Visit>::visit_unary_expr(&mut self.visitor, node)
9630        } else {
9631        }
9632    }
9633
9634    #[inline]
9635    fn visit_unary_op(&mut self, node: &UnaryOp) {
9636        if self.enabled {
9637            <V as Visit>::visit_unary_op(&mut self.visitor, node)
9638        } else {
9639        }
9640    }
9641
9642    #[inline]
9643    fn visit_update_expr(&mut self, node: &UpdateExpr) {
9644        if self.enabled {
9645            <V as Visit>::visit_update_expr(&mut self.visitor, node)
9646        } else {
9647        }
9648    }
9649
9650    #[inline]
9651    fn visit_update_op(&mut self, node: &UpdateOp) {
9652        if self.enabled {
9653            <V as Visit>::visit_update_op(&mut self.visitor, node)
9654        } else {
9655        }
9656    }
9657
9658    #[inline]
9659    fn visit_using_decl(&mut self, node: &UsingDecl) {
9660        if self.enabled {
9661            <V as Visit>::visit_using_decl(&mut self.visitor, node)
9662        } else {
9663        }
9664    }
9665
9666    #[inline]
9667    fn visit_var_decl(&mut self, node: &VarDecl) {
9668        if self.enabled {
9669            <V as Visit>::visit_var_decl(&mut self.visitor, node)
9670        } else {
9671        }
9672    }
9673
9674    #[inline]
9675    fn visit_var_decl_kind(&mut self, node: &VarDeclKind) {
9676        if self.enabled {
9677            <V as Visit>::visit_var_decl_kind(&mut self.visitor, node)
9678        } else {
9679        }
9680    }
9681
9682    #[inline]
9683    fn visit_var_decl_or_expr(&mut self, node: &VarDeclOrExpr) {
9684        if self.enabled {
9685            <V as Visit>::visit_var_decl_or_expr(&mut self.visitor, node)
9686        } else {
9687        }
9688    }
9689
9690    #[inline]
9691    fn visit_var_declarator(&mut self, node: &VarDeclarator) {
9692        if self.enabled {
9693            <V as Visit>::visit_var_declarator(&mut self.visitor, node)
9694        } else {
9695        }
9696    }
9697
9698    #[inline]
9699    fn visit_var_declarators(&mut self, node: &[VarDeclarator]) {
9700        if self.enabled {
9701            <V as Visit>::visit_var_declarators(&mut self.visitor, node)
9702        } else {
9703        }
9704    }
9705
9706    #[inline]
9707    fn visit_while_stmt(&mut self, node: &WhileStmt) {
9708        if self.enabled {
9709            <V as Visit>::visit_while_stmt(&mut self.visitor, node)
9710        } else {
9711        }
9712    }
9713
9714    #[inline]
9715    fn visit_with_stmt(&mut self, node: &WithStmt) {
9716        if self.enabled {
9717            <V as Visit>::visit_with_stmt(&mut self.visitor, node)
9718        } else {
9719        }
9720    }
9721
9722    #[inline]
9723    fn visit_yield_expr(&mut self, node: &YieldExpr) {
9724        if self.enabled {
9725            <V as Visit>::visit_yield_expr(&mut self.visitor, node)
9726        } else {
9727        }
9728    }
9729}
9730#[doc = r" A trait implemented for types that can be visited using a visitor."]
9731pub trait VisitWith<V: ?Sized + Visit> {
9732    #[doc = r" Calls a visitor method (visitor.fold_xxx) with self."]
9733    fn visit_with(&self, visitor: &mut V);
9734    #[doc = r" Visit children nodes of `self`` with `visitor`."]
9735    fn visit_children_with(&self, visitor: &mut V);
9736}
9737impl<V: ?Sized + Visit> VisitWith<V> for Accessibility {
9738    #[doc = "Calls [Visit`::visit_accessibility`] with `self`."]
9739    fn visit_with(&self, visitor: &mut V) {
9740        <V as Visit>::visit_accessibility(visitor, self)
9741    }
9742
9743    fn visit_children_with(&self, visitor: &mut V) {
9744        match self {
9745            Accessibility::Public => {}
9746            Accessibility::Protected => {}
9747            Accessibility::Private => {}
9748        }
9749    }
9750}
9751impl<V: ?Sized + Visit> VisitWith<V> for ArrayLit {
9752    #[doc = "Calls [Visit`::visit_array_lit`] with `self`."]
9753    fn visit_with(&self, visitor: &mut V) {
9754        <V as Visit>::visit_array_lit(visitor, self)
9755    }
9756
9757    fn visit_children_with(&self, visitor: &mut V) {
9758        match self {
9759            ArrayLit { span, elems } => {
9760                {
9761                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
9762                };
9763                {
9764                    <Vec<Option<ExprOrSpread>> as VisitWith<V>>::visit_with(elems, visitor)
9765                };
9766            }
9767        }
9768    }
9769}
9770impl<V: ?Sized + Visit> VisitWith<V> for ArrayPat {
9771    #[doc = "Calls [Visit`::visit_array_pat`] with `self`."]
9772    fn visit_with(&self, visitor: &mut V) {
9773        <V as Visit>::visit_array_pat(visitor, self)
9774    }
9775
9776    fn visit_children_with(&self, visitor: &mut V) {
9777        match self {
9778            ArrayPat {
9779                span,
9780                elems,
9781                optional,
9782                type_ann,
9783            } => {
9784                {
9785                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
9786                };
9787                {
9788                    <Vec<Option<Pat>> as VisitWith<V>>::visit_with(elems, visitor)
9789                };
9790                {
9791                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
9792                };
9793            }
9794        }
9795    }
9796}
9797impl<V: ?Sized + Visit> VisitWith<V> for ArrowExpr {
9798    #[doc = "Calls [Visit`::visit_arrow_expr`] with `self`."]
9799    fn visit_with(&self, visitor: &mut V) {
9800        <V as Visit>::visit_arrow_expr(visitor, self)
9801    }
9802
9803    fn visit_children_with(&self, visitor: &mut V) {
9804        match self {
9805            ArrowExpr {
9806                span,
9807                ctxt,
9808                params,
9809                body,
9810                is_async,
9811                is_generator,
9812                type_params,
9813                return_type,
9814            } => {
9815                {
9816                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
9817                };
9818                {
9819                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
9820                };
9821                {
9822                    <Vec<Pat> as VisitWith<V>>::visit_with(params, visitor)
9823                };
9824                {
9825                    <Box<BlockStmtOrExpr> as VisitWith<V>>::visit_with(body, visitor)
9826                };
9827                {
9828                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
9829                };
9830                {
9831                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(return_type, visitor)
9832                };
9833            }
9834        }
9835    }
9836}
9837impl<V: ?Sized + Visit> VisitWith<V> for AssignExpr {
9838    #[doc = "Calls [Visit`::visit_assign_expr`] with `self`."]
9839    fn visit_with(&self, visitor: &mut V) {
9840        <V as Visit>::visit_assign_expr(visitor, self)
9841    }
9842
9843    fn visit_children_with(&self, visitor: &mut V) {
9844        match self {
9845            AssignExpr {
9846                span,
9847                op,
9848                left,
9849                right,
9850            } => {
9851                {
9852                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
9853                };
9854                {
9855                    <AssignOp as VisitWith<V>>::visit_with(op, visitor)
9856                };
9857                {
9858                    <AssignTarget as VisitWith<V>>::visit_with(left, visitor)
9859                };
9860                {
9861                    <Box<Expr> as VisitWith<V>>::visit_with(right, visitor)
9862                };
9863            }
9864        }
9865    }
9866}
9867impl<V: ?Sized + Visit> VisitWith<V> for AssignOp {
9868    #[doc = "Calls [Visit`::visit_assign_op`] with `self`."]
9869    fn visit_with(&self, visitor: &mut V) {
9870        <V as Visit>::visit_assign_op(visitor, self)
9871    }
9872
9873    fn visit_children_with(&self, visitor: &mut V) {
9874        match self {
9875            AssignOp::Assign => {}
9876            AssignOp::AddAssign => {}
9877            AssignOp::SubAssign => {}
9878            AssignOp::MulAssign => {}
9879            AssignOp::DivAssign => {}
9880            AssignOp::ModAssign => {}
9881            AssignOp::LShiftAssign => {}
9882            AssignOp::RShiftAssign => {}
9883            AssignOp::ZeroFillRShiftAssign => {}
9884            AssignOp::BitOrAssign => {}
9885            AssignOp::BitXorAssign => {}
9886            AssignOp::BitAndAssign => {}
9887            AssignOp::ExpAssign => {}
9888            AssignOp::AndAssign => {}
9889            AssignOp::OrAssign => {}
9890            AssignOp::NullishAssign => {}
9891        }
9892    }
9893}
9894impl<V: ?Sized + Visit> VisitWith<V> for AssignPat {
9895    #[doc = "Calls [Visit`::visit_assign_pat`] with `self`."]
9896    fn visit_with(&self, visitor: &mut V) {
9897        <V as Visit>::visit_assign_pat(visitor, self)
9898    }
9899
9900    fn visit_children_with(&self, visitor: &mut V) {
9901        match self {
9902            AssignPat { span, left, right } => {
9903                {
9904                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
9905                };
9906                {
9907                    <Box<Pat> as VisitWith<V>>::visit_with(left, visitor)
9908                };
9909                {
9910                    <Box<Expr> as VisitWith<V>>::visit_with(right, visitor)
9911                };
9912            }
9913        }
9914    }
9915}
9916impl<V: ?Sized + Visit> VisitWith<V> for AssignPatProp {
9917    #[doc = "Calls [Visit`::visit_assign_pat_prop`] with `self`."]
9918    fn visit_with(&self, visitor: &mut V) {
9919        <V as Visit>::visit_assign_pat_prop(visitor, self)
9920    }
9921
9922    fn visit_children_with(&self, visitor: &mut V) {
9923        match self {
9924            AssignPatProp { span, key, value } => {
9925                {
9926                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
9927                };
9928                {
9929                    <BindingIdent as VisitWith<V>>::visit_with(key, visitor)
9930                };
9931                {
9932                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(value, visitor)
9933                };
9934            }
9935        }
9936    }
9937}
9938impl<V: ?Sized + Visit> VisitWith<V> for AssignProp {
9939    #[doc = "Calls [Visit`::visit_assign_prop`] with `self`."]
9940    fn visit_with(&self, visitor: &mut V) {
9941        <V as Visit>::visit_assign_prop(visitor, self)
9942    }
9943
9944    fn visit_children_with(&self, visitor: &mut V) {
9945        match self {
9946            AssignProp { span, key, value } => {
9947                {
9948                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
9949                };
9950                {
9951                    <Ident as VisitWith<V>>::visit_with(key, visitor)
9952                };
9953                {
9954                    <Box<Expr> as VisitWith<V>>::visit_with(value, visitor)
9955                };
9956            }
9957        }
9958    }
9959}
9960impl<V: ?Sized + Visit> VisitWith<V> for AssignTarget {
9961    #[doc = "Calls [Visit`::visit_assign_target`] with `self`."]
9962    fn visit_with(&self, visitor: &mut V) {
9963        <V as Visit>::visit_assign_target(visitor, self)
9964    }
9965
9966    fn visit_children_with(&self, visitor: &mut V) {
9967        match self {
9968            AssignTarget::Simple { 0: _field_0 } => {
9969                <SimpleAssignTarget as VisitWith<V>>::visit_with(_field_0, visitor);
9970            }
9971            AssignTarget::Pat { 0: _field_0 } => {
9972                <AssignTargetPat as VisitWith<V>>::visit_with(_field_0, visitor);
9973            }
9974        }
9975    }
9976}
9977impl<V: ?Sized + Visit> VisitWith<V> for AssignTargetPat {
9978    #[doc = "Calls [Visit`::visit_assign_target_pat`] with `self`."]
9979    fn visit_with(&self, visitor: &mut V) {
9980        <V as Visit>::visit_assign_target_pat(visitor, self)
9981    }
9982
9983    fn visit_children_with(&self, visitor: &mut V) {
9984        match self {
9985            AssignTargetPat::Array { 0: _field_0 } => {
9986                <ArrayPat as VisitWith<V>>::visit_with(_field_0, visitor);
9987            }
9988            AssignTargetPat::Object { 0: _field_0 } => {
9989                <ObjectPat as VisitWith<V>>::visit_with(_field_0, visitor);
9990            }
9991            AssignTargetPat::Invalid { 0: _field_0 } => {
9992                <Invalid as VisitWith<V>>::visit_with(_field_0, visitor);
9993            }
9994        }
9995    }
9996}
9997impl<V: ?Sized + Visit> VisitWith<V> for AutoAccessor {
9998    #[doc = "Calls [Visit`::visit_auto_accessor`] with `self`."]
9999    fn visit_with(&self, visitor: &mut V) {
10000        <V as Visit>::visit_auto_accessor(visitor, self)
10001    }
10002
10003    fn visit_children_with(&self, visitor: &mut V) {
10004        match self {
10005            AutoAccessor {
10006                span,
10007                key,
10008                value,
10009                type_ann,
10010                is_static,
10011                decorators,
10012                accessibility,
10013                is_abstract,
10014                is_override,
10015                definite,
10016            } => {
10017                {
10018                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10019                };
10020                {
10021                    <Key as VisitWith<V>>::visit_with(key, visitor)
10022                };
10023                {
10024                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(value, visitor)
10025                };
10026                {
10027                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
10028                };
10029                {
10030                    <Vec<Decorator> as VisitWith<V>>::visit_with(decorators, visitor)
10031                };
10032                {
10033                    <Option<Accessibility> as VisitWith<V>>::visit_with(accessibility, visitor)
10034                };
10035            }
10036        }
10037    }
10038}
10039impl<V: ?Sized + Visit> VisitWith<V> for AwaitExpr {
10040    #[doc = "Calls [Visit`::visit_await_expr`] with `self`."]
10041    fn visit_with(&self, visitor: &mut V) {
10042        <V as Visit>::visit_await_expr(visitor, self)
10043    }
10044
10045    fn visit_children_with(&self, visitor: &mut V) {
10046        match self {
10047            AwaitExpr { span, arg } => {
10048                {
10049                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10050                };
10051                {
10052                    <Box<Expr> as VisitWith<V>>::visit_with(arg, visitor)
10053                };
10054            }
10055        }
10056    }
10057}
10058impl<V: ?Sized + Visit> VisitWith<V> for BigInt {
10059    #[doc = "Calls [Visit`::visit_big_int`] with `self`."]
10060    fn visit_with(&self, visitor: &mut V) {
10061        <V as Visit>::visit_big_int(visitor, self)
10062    }
10063
10064    fn visit_children_with(&self, visitor: &mut V) {
10065        match self {
10066            BigInt { span, value, raw } => {
10067                {
10068                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10069                };
10070                {
10071                    <Box<BigIntValue> as VisitWith<V>>::visit_with(value, visitor)
10072                };
10073                {
10074                    <Option<swc_atoms::Atom> as VisitWith<V>>::visit_with(raw, visitor)
10075                };
10076            }
10077        }
10078    }
10079}
10080impl<V: ?Sized + Visit> VisitWith<V> for BinExpr {
10081    #[doc = "Calls [Visit`::visit_bin_expr`] with `self`."]
10082    fn visit_with(&self, visitor: &mut V) {
10083        <V as Visit>::visit_bin_expr(visitor, self)
10084    }
10085
10086    fn visit_children_with(&self, visitor: &mut V) {
10087        match self {
10088            BinExpr {
10089                span,
10090                op,
10091                left,
10092                right,
10093            } => {
10094                {
10095                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10096                };
10097                {
10098                    <BinaryOp as VisitWith<V>>::visit_with(op, visitor)
10099                };
10100                {
10101                    <Box<Expr> as VisitWith<V>>::visit_with(left, visitor)
10102                };
10103                {
10104                    <Box<Expr> as VisitWith<V>>::visit_with(right, visitor)
10105                };
10106            }
10107        }
10108    }
10109}
10110impl<V: ?Sized + Visit> VisitWith<V> for BinaryOp {
10111    #[doc = "Calls [Visit`::visit_binary_op`] with `self`."]
10112    fn visit_with(&self, visitor: &mut V) {
10113        <V as Visit>::visit_binary_op(visitor, self)
10114    }
10115
10116    fn visit_children_with(&self, visitor: &mut V) {
10117        match self {
10118            BinaryOp::EqEq => {}
10119            BinaryOp::NotEq => {}
10120            BinaryOp::EqEqEq => {}
10121            BinaryOp::NotEqEq => {}
10122            BinaryOp::Lt => {}
10123            BinaryOp::LtEq => {}
10124            BinaryOp::Gt => {}
10125            BinaryOp::GtEq => {}
10126            BinaryOp::LShift => {}
10127            BinaryOp::RShift => {}
10128            BinaryOp::ZeroFillRShift => {}
10129            BinaryOp::Add => {}
10130            BinaryOp::Sub => {}
10131            BinaryOp::Mul => {}
10132            BinaryOp::Div => {}
10133            BinaryOp::Mod => {}
10134            BinaryOp::BitOr => {}
10135            BinaryOp::BitXor => {}
10136            BinaryOp::BitAnd => {}
10137            BinaryOp::LogicalOr => {}
10138            BinaryOp::LogicalAnd => {}
10139            BinaryOp::In => {}
10140            BinaryOp::InstanceOf => {}
10141            BinaryOp::Exp => {}
10142            BinaryOp::NullishCoalescing => {}
10143        }
10144    }
10145}
10146impl<V: ?Sized + Visit> VisitWith<V> for BindingIdent {
10147    #[doc = "Calls [Visit`::visit_binding_ident`] with `self`."]
10148    fn visit_with(&self, visitor: &mut V) {
10149        <V as Visit>::visit_binding_ident(visitor, self)
10150    }
10151
10152    fn visit_children_with(&self, visitor: &mut V) {
10153        match self {
10154            BindingIdent { id, type_ann } => {
10155                {
10156                    <Ident as VisitWith<V>>::visit_with(id, visitor)
10157                };
10158                {
10159                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
10160                };
10161            }
10162        }
10163    }
10164}
10165impl<V: ?Sized + Visit> VisitWith<V> for BlockStmt {
10166    #[doc = "Calls [Visit`::visit_block_stmt`] with `self`."]
10167    fn visit_with(&self, visitor: &mut V) {
10168        <V as Visit>::visit_block_stmt(visitor, self)
10169    }
10170
10171    fn visit_children_with(&self, visitor: &mut V) {
10172        match self {
10173            BlockStmt { span, ctxt, stmts } => {
10174                {
10175                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10176                };
10177                {
10178                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
10179                };
10180                {
10181                    <Vec<Stmt> as VisitWith<V>>::visit_with(stmts, visitor)
10182                };
10183            }
10184        }
10185    }
10186}
10187impl<V: ?Sized + Visit> VisitWith<V> for BlockStmtOrExpr {
10188    #[doc = "Calls [Visit`::visit_block_stmt_or_expr`] with `self`."]
10189    fn visit_with(&self, visitor: &mut V) {
10190        <V as Visit>::visit_block_stmt_or_expr(visitor, self)
10191    }
10192
10193    fn visit_children_with(&self, visitor: &mut V) {
10194        match self {
10195            BlockStmtOrExpr::BlockStmt { 0: _field_0 } => {
10196                <BlockStmt as VisitWith<V>>::visit_with(_field_0, visitor);
10197            }
10198            BlockStmtOrExpr::Expr { 0: _field_0 } => {
10199                <Box<Expr> as VisitWith<V>>::visit_with(_field_0, visitor);
10200            }
10201        }
10202    }
10203}
10204impl<V: ?Sized + Visit> VisitWith<V> for Bool {
10205    #[doc = "Calls [Visit`::visit_bool`] with `self`."]
10206    fn visit_with(&self, visitor: &mut V) {
10207        <V as Visit>::visit_bool(visitor, self)
10208    }
10209
10210    fn visit_children_with(&self, visitor: &mut V) {
10211        match self {
10212            Bool { span, value } => {
10213                {
10214                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10215                };
10216            }
10217        }
10218    }
10219}
10220impl<V: ?Sized + Visit> VisitWith<V> for BreakStmt {
10221    #[doc = "Calls [Visit`::visit_break_stmt`] with `self`."]
10222    fn visit_with(&self, visitor: &mut V) {
10223        <V as Visit>::visit_break_stmt(visitor, self)
10224    }
10225
10226    fn visit_children_with(&self, visitor: &mut V) {
10227        match self {
10228            BreakStmt { span, label } => {
10229                {
10230                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10231                };
10232                {
10233                    <Option<Ident> as VisitWith<V>>::visit_with(label, visitor)
10234                };
10235            }
10236        }
10237    }
10238}
10239impl<V: ?Sized + Visit> VisitWith<V> for CallExpr {
10240    #[doc = "Calls [Visit`::visit_call_expr`] with `self`."]
10241    fn visit_with(&self, visitor: &mut V) {
10242        <V as Visit>::visit_call_expr(visitor, self)
10243    }
10244
10245    fn visit_children_with(&self, visitor: &mut V) {
10246        match self {
10247            CallExpr {
10248                span,
10249                ctxt,
10250                callee,
10251                args,
10252                type_args,
10253            } => {
10254                {
10255                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10256                };
10257                {
10258                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
10259                };
10260                {
10261                    <Callee as VisitWith<V>>::visit_with(callee, visitor)
10262                };
10263                {
10264                    <Vec<ExprOrSpread> as VisitWith<V>>::visit_with(args, visitor)
10265                };
10266                {
10267                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
10268                        type_args, visitor,
10269                    )
10270                };
10271            }
10272        }
10273    }
10274}
10275impl<V: ?Sized + Visit> VisitWith<V> for Callee {
10276    #[doc = "Calls [Visit`::visit_callee`] with `self`."]
10277    fn visit_with(&self, visitor: &mut V) {
10278        <V as Visit>::visit_callee(visitor, self)
10279    }
10280
10281    fn visit_children_with(&self, visitor: &mut V) {
10282        match self {
10283            Callee::Super { 0: _field_0 } => {
10284                <Super as VisitWith<V>>::visit_with(_field_0, visitor);
10285            }
10286            Callee::Import { 0: _field_0 } => {
10287                <Import as VisitWith<V>>::visit_with(_field_0, visitor);
10288            }
10289            Callee::Expr { 0: _field_0 } => {
10290                <Box<Expr> as VisitWith<V>>::visit_with(_field_0, visitor);
10291            }
10292        }
10293    }
10294}
10295impl<V: ?Sized + Visit> VisitWith<V> for CatchClause {
10296    #[doc = "Calls [Visit`::visit_catch_clause`] with `self`."]
10297    fn visit_with(&self, visitor: &mut V) {
10298        <V as Visit>::visit_catch_clause(visitor, self)
10299    }
10300
10301    fn visit_children_with(&self, visitor: &mut V) {
10302        match self {
10303            CatchClause { span, param, body } => {
10304                {
10305                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10306                };
10307                {
10308                    <Option<Pat> as VisitWith<V>>::visit_with(param, visitor)
10309                };
10310                {
10311                    <BlockStmt as VisitWith<V>>::visit_with(body, visitor)
10312                };
10313            }
10314        }
10315    }
10316}
10317impl<V: ?Sized + Visit> VisitWith<V> for Class {
10318    #[doc = "Calls [Visit`::visit_class`] with `self`."]
10319    fn visit_with(&self, visitor: &mut V) {
10320        <V as Visit>::visit_class(visitor, self)
10321    }
10322
10323    fn visit_children_with(&self, visitor: &mut V) {
10324        match self {
10325            Class {
10326                span,
10327                ctxt,
10328                decorators,
10329                body,
10330                super_class,
10331                is_abstract,
10332                type_params,
10333                super_type_params,
10334                implements,
10335            } => {
10336                {
10337                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10338                };
10339                {
10340                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
10341                };
10342                {
10343                    <Vec<Decorator> as VisitWith<V>>::visit_with(decorators, visitor)
10344                };
10345                {
10346                    <Vec<ClassMember> as VisitWith<V>>::visit_with(body, visitor)
10347                };
10348                {
10349                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(super_class, visitor)
10350                };
10351                {
10352                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
10353                };
10354                {
10355                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
10356                        super_type_params,
10357                        visitor,
10358                    )
10359                };
10360                {
10361                    <Vec<TsExprWithTypeArgs> as VisitWith<V>>::visit_with(implements, visitor)
10362                };
10363            }
10364        }
10365    }
10366}
10367impl<V: ?Sized + Visit> VisitWith<V> for ClassDecl {
10368    #[doc = "Calls [Visit`::visit_class_decl`] with `self`."]
10369    fn visit_with(&self, visitor: &mut V) {
10370        <V as Visit>::visit_class_decl(visitor, self)
10371    }
10372
10373    fn visit_children_with(&self, visitor: &mut V) {
10374        match self {
10375            ClassDecl {
10376                ident,
10377                declare,
10378                class,
10379            } => {
10380                {
10381                    <Ident as VisitWith<V>>::visit_with(ident, visitor)
10382                };
10383                {
10384                    <Box<Class> as VisitWith<V>>::visit_with(class, visitor)
10385                };
10386            }
10387        }
10388    }
10389}
10390impl<V: ?Sized + Visit> VisitWith<V> for ClassExpr {
10391    #[doc = "Calls [Visit`::visit_class_expr`] with `self`."]
10392    fn visit_with(&self, visitor: &mut V) {
10393        <V as Visit>::visit_class_expr(visitor, self)
10394    }
10395
10396    fn visit_children_with(&self, visitor: &mut V) {
10397        match self {
10398            ClassExpr { ident, class } => {
10399                {
10400                    <Option<Ident> as VisitWith<V>>::visit_with(ident, visitor)
10401                };
10402                {
10403                    <Box<Class> as VisitWith<V>>::visit_with(class, visitor)
10404                };
10405            }
10406        }
10407    }
10408}
10409impl<V: ?Sized + Visit> VisitWith<V> for ClassMember {
10410    #[doc = "Calls [Visit`::visit_class_member`] with `self`."]
10411    fn visit_with(&self, visitor: &mut V) {
10412        <V as Visit>::visit_class_member(visitor, self)
10413    }
10414
10415    fn visit_children_with(&self, visitor: &mut V) {
10416        match self {
10417            ClassMember::Constructor { 0: _field_0 } => {
10418                <Constructor as VisitWith<V>>::visit_with(_field_0, visitor);
10419            }
10420            ClassMember::Method { 0: _field_0 } => {
10421                <ClassMethod as VisitWith<V>>::visit_with(_field_0, visitor);
10422            }
10423            ClassMember::PrivateMethod { 0: _field_0 } => {
10424                <PrivateMethod as VisitWith<V>>::visit_with(_field_0, visitor);
10425            }
10426            ClassMember::ClassProp { 0: _field_0 } => {
10427                <ClassProp as VisitWith<V>>::visit_with(_field_0, visitor);
10428            }
10429            ClassMember::PrivateProp { 0: _field_0 } => {
10430                <PrivateProp as VisitWith<V>>::visit_with(_field_0, visitor);
10431            }
10432            ClassMember::TsIndexSignature { 0: _field_0 } => {
10433                <TsIndexSignature as VisitWith<V>>::visit_with(_field_0, visitor);
10434            }
10435            ClassMember::Empty { 0: _field_0 } => {
10436                <EmptyStmt as VisitWith<V>>::visit_with(_field_0, visitor);
10437            }
10438            ClassMember::StaticBlock { 0: _field_0 } => {
10439                <StaticBlock as VisitWith<V>>::visit_with(_field_0, visitor);
10440            }
10441            ClassMember::AutoAccessor { 0: _field_0 } => {
10442                <AutoAccessor as VisitWith<V>>::visit_with(_field_0, visitor);
10443            }
10444        }
10445    }
10446}
10447impl<V: ?Sized + Visit> VisitWith<V> for ClassMethod {
10448    #[doc = "Calls [Visit`::visit_class_method`] with `self`."]
10449    fn visit_with(&self, visitor: &mut V) {
10450        <V as Visit>::visit_class_method(visitor, self)
10451    }
10452
10453    fn visit_children_with(&self, visitor: &mut V) {
10454        match self {
10455            ClassMethod {
10456                span,
10457                key,
10458                function,
10459                kind,
10460                is_static,
10461                accessibility,
10462                is_abstract,
10463                is_optional,
10464                is_override,
10465            } => {
10466                {
10467                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10468                };
10469                {
10470                    <PropName as VisitWith<V>>::visit_with(key, visitor)
10471                };
10472                {
10473                    <Box<Function> as VisitWith<V>>::visit_with(function, visitor)
10474                };
10475                {
10476                    <MethodKind as VisitWith<V>>::visit_with(kind, visitor)
10477                };
10478                {
10479                    <Option<Accessibility> as VisitWith<V>>::visit_with(accessibility, visitor)
10480                };
10481            }
10482        }
10483    }
10484}
10485impl<V: ?Sized + Visit> VisitWith<V> for ClassProp {
10486    #[doc = "Calls [Visit`::visit_class_prop`] with `self`."]
10487    fn visit_with(&self, visitor: &mut V) {
10488        <V as Visit>::visit_class_prop(visitor, self)
10489    }
10490
10491    fn visit_children_with(&self, visitor: &mut V) {
10492        match self {
10493            ClassProp {
10494                span,
10495                key,
10496                value,
10497                type_ann,
10498                is_static,
10499                decorators,
10500                accessibility,
10501                is_abstract,
10502                is_optional,
10503                is_override,
10504                readonly,
10505                declare,
10506                definite,
10507            } => {
10508                {
10509                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10510                };
10511                {
10512                    <PropName as VisitWith<V>>::visit_with(key, visitor)
10513                };
10514                {
10515                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(value, visitor)
10516                };
10517                {
10518                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
10519                };
10520                {
10521                    <Vec<Decorator> as VisitWith<V>>::visit_with(decorators, visitor)
10522                };
10523                {
10524                    <Option<Accessibility> as VisitWith<V>>::visit_with(accessibility, visitor)
10525                };
10526            }
10527        }
10528    }
10529}
10530impl<V: ?Sized + Visit> VisitWith<V> for ComputedPropName {
10531    #[doc = "Calls [Visit`::visit_computed_prop_name`] with `self`."]
10532    fn visit_with(&self, visitor: &mut V) {
10533        <V as Visit>::visit_computed_prop_name(visitor, self)
10534    }
10535
10536    fn visit_children_with(&self, visitor: &mut V) {
10537        match self {
10538            ComputedPropName { span, expr } => {
10539                {
10540                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10541                };
10542                {
10543                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
10544                };
10545            }
10546        }
10547    }
10548}
10549impl<V: ?Sized + Visit> VisitWith<V> for CondExpr {
10550    #[doc = "Calls [Visit`::visit_cond_expr`] with `self`."]
10551    fn visit_with(&self, visitor: &mut V) {
10552        <V as Visit>::visit_cond_expr(visitor, self)
10553    }
10554
10555    fn visit_children_with(&self, visitor: &mut V) {
10556        match self {
10557            CondExpr {
10558                span,
10559                test,
10560                cons,
10561                alt,
10562            } => {
10563                {
10564                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10565                };
10566                {
10567                    <Box<Expr> as VisitWith<V>>::visit_with(test, visitor)
10568                };
10569                {
10570                    <Box<Expr> as VisitWith<V>>::visit_with(cons, visitor)
10571                };
10572                {
10573                    <Box<Expr> as VisitWith<V>>::visit_with(alt, visitor)
10574                };
10575            }
10576        }
10577    }
10578}
10579impl<V: ?Sized + Visit> VisitWith<V> for Constructor {
10580    #[doc = "Calls [Visit`::visit_constructor`] with `self`."]
10581    fn visit_with(&self, visitor: &mut V) {
10582        <V as Visit>::visit_constructor(visitor, self)
10583    }
10584
10585    fn visit_children_with(&self, visitor: &mut V) {
10586        match self {
10587            Constructor {
10588                span,
10589                ctxt,
10590                key,
10591                params,
10592                body,
10593                accessibility,
10594                is_optional,
10595            } => {
10596                {
10597                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10598                };
10599                {
10600                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
10601                };
10602                {
10603                    <PropName as VisitWith<V>>::visit_with(key, visitor)
10604                };
10605                {
10606                    <Vec<ParamOrTsParamProp> as VisitWith<V>>::visit_with(params, visitor)
10607                };
10608                {
10609                    <Option<BlockStmt> as VisitWith<V>>::visit_with(body, visitor)
10610                };
10611                {
10612                    <Option<Accessibility> as VisitWith<V>>::visit_with(accessibility, visitor)
10613                };
10614            }
10615        }
10616    }
10617}
10618impl<V: ?Sized + Visit> VisitWith<V> for ContinueStmt {
10619    #[doc = "Calls [Visit`::visit_continue_stmt`] with `self`."]
10620    fn visit_with(&self, visitor: &mut V) {
10621        <V as Visit>::visit_continue_stmt(visitor, self)
10622    }
10623
10624    fn visit_children_with(&self, visitor: &mut V) {
10625        match self {
10626            ContinueStmt { span, label } => {
10627                {
10628                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10629                };
10630                {
10631                    <Option<Ident> as VisitWith<V>>::visit_with(label, visitor)
10632                };
10633            }
10634        }
10635    }
10636}
10637impl<V: ?Sized + Visit> VisitWith<V> for DebuggerStmt {
10638    #[doc = "Calls [Visit`::visit_debugger_stmt`] with `self`."]
10639    fn visit_with(&self, visitor: &mut V) {
10640        <V as Visit>::visit_debugger_stmt(visitor, self)
10641    }
10642
10643    fn visit_children_with(&self, visitor: &mut V) {
10644        match self {
10645            DebuggerStmt { span } => {
10646                {
10647                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10648                };
10649            }
10650        }
10651    }
10652}
10653impl<V: ?Sized + Visit> VisitWith<V> for Decl {
10654    #[doc = "Calls [Visit`::visit_decl`] with `self`."]
10655    fn visit_with(&self, visitor: &mut V) {
10656        <V as Visit>::visit_decl(visitor, self)
10657    }
10658
10659    fn visit_children_with(&self, visitor: &mut V) {
10660        match self {
10661            Decl::Class { 0: _field_0 } => {
10662                <ClassDecl as VisitWith<V>>::visit_with(_field_0, visitor);
10663            }
10664            Decl::Fn { 0: _field_0 } => {
10665                <FnDecl as VisitWith<V>>::visit_with(_field_0, visitor);
10666            }
10667            Decl::Var { 0: _field_0 } => {
10668                <Box<VarDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
10669            }
10670            Decl::Using { 0: _field_0 } => {
10671                <Box<UsingDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
10672            }
10673            Decl::TsInterface { 0: _field_0 } => {
10674                <Box<TsInterfaceDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
10675            }
10676            Decl::TsTypeAlias { 0: _field_0 } => {
10677                <Box<TsTypeAliasDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
10678            }
10679            Decl::TsEnum { 0: _field_0 } => {
10680                <Box<TsEnumDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
10681            }
10682            Decl::TsModule { 0: _field_0 } => {
10683                <Box<TsModuleDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
10684            }
10685        }
10686    }
10687}
10688impl<V: ?Sized + Visit> VisitWith<V> for Decorator {
10689    #[doc = "Calls [Visit`::visit_decorator`] with `self`."]
10690    fn visit_with(&self, visitor: &mut V) {
10691        <V as Visit>::visit_decorator(visitor, self)
10692    }
10693
10694    fn visit_children_with(&self, visitor: &mut V) {
10695        match self {
10696            Decorator { span, expr } => {
10697                {
10698                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10699                };
10700                {
10701                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
10702                };
10703            }
10704        }
10705    }
10706}
10707impl<V: ?Sized + Visit> VisitWith<V> for DefaultDecl {
10708    #[doc = "Calls [Visit`::visit_default_decl`] with `self`."]
10709    fn visit_with(&self, visitor: &mut V) {
10710        <V as Visit>::visit_default_decl(visitor, self)
10711    }
10712
10713    fn visit_children_with(&self, visitor: &mut V) {
10714        match self {
10715            DefaultDecl::Class { 0: _field_0 } => {
10716                <ClassExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10717            }
10718            DefaultDecl::Fn { 0: _field_0 } => {
10719                <FnExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10720            }
10721            DefaultDecl::TsInterfaceDecl { 0: _field_0 } => {
10722                <Box<TsInterfaceDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
10723            }
10724        }
10725    }
10726}
10727impl<V: ?Sized + Visit> VisitWith<V> for DoWhileStmt {
10728    #[doc = "Calls [Visit`::visit_do_while_stmt`] with `self`."]
10729    fn visit_with(&self, visitor: &mut V) {
10730        <V as Visit>::visit_do_while_stmt(visitor, self)
10731    }
10732
10733    fn visit_children_with(&self, visitor: &mut V) {
10734        match self {
10735            DoWhileStmt { span, test, body } => {
10736                {
10737                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10738                };
10739                {
10740                    <Box<Expr> as VisitWith<V>>::visit_with(test, visitor)
10741                };
10742                {
10743                    <Box<Stmt> as VisitWith<V>>::visit_with(body, visitor)
10744                };
10745            }
10746        }
10747    }
10748}
10749impl<V: ?Sized + Visit> VisitWith<V> for EmptyStmt {
10750    #[doc = "Calls [Visit`::visit_empty_stmt`] with `self`."]
10751    fn visit_with(&self, visitor: &mut V) {
10752        <V as Visit>::visit_empty_stmt(visitor, self)
10753    }
10754
10755    fn visit_children_with(&self, visitor: &mut V) {
10756        match self {
10757            EmptyStmt { span } => {
10758                {
10759                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10760                };
10761            }
10762        }
10763    }
10764}
10765impl<V: ?Sized + Visit> VisitWith<V> for ExportAll {
10766    #[doc = "Calls [Visit`::visit_export_all`] with `self`."]
10767    fn visit_with(&self, visitor: &mut V) {
10768        <V as Visit>::visit_export_all(visitor, self)
10769    }
10770
10771    fn visit_children_with(&self, visitor: &mut V) {
10772        match self {
10773            ExportAll {
10774                span,
10775                src,
10776                type_only,
10777                with,
10778            } => {
10779                {
10780                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10781                };
10782                {
10783                    <Box<Str> as VisitWith<V>>::visit_with(src, visitor)
10784                };
10785                {
10786                    <Option<Box<ObjectLit>> as VisitWith<V>>::visit_with(with, visitor)
10787                };
10788            }
10789        }
10790    }
10791}
10792impl<V: ?Sized + Visit> VisitWith<V> for ExportDecl {
10793    #[doc = "Calls [Visit`::visit_export_decl`] with `self`."]
10794    fn visit_with(&self, visitor: &mut V) {
10795        <V as Visit>::visit_export_decl(visitor, self)
10796    }
10797
10798    fn visit_children_with(&self, visitor: &mut V) {
10799        match self {
10800            ExportDecl { span, decl } => {
10801                {
10802                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10803                };
10804                {
10805                    <Decl as VisitWith<V>>::visit_with(decl, visitor)
10806                };
10807            }
10808        }
10809    }
10810}
10811impl<V: ?Sized + Visit> VisitWith<V> for ExportDefaultDecl {
10812    #[doc = "Calls [Visit`::visit_export_default_decl`] with `self`."]
10813    fn visit_with(&self, visitor: &mut V) {
10814        <V as Visit>::visit_export_default_decl(visitor, self)
10815    }
10816
10817    fn visit_children_with(&self, visitor: &mut V) {
10818        match self {
10819            ExportDefaultDecl { span, decl } => {
10820                {
10821                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10822                };
10823                {
10824                    <DefaultDecl as VisitWith<V>>::visit_with(decl, visitor)
10825                };
10826            }
10827        }
10828    }
10829}
10830impl<V: ?Sized + Visit> VisitWith<V> for ExportDefaultExpr {
10831    #[doc = "Calls [Visit`::visit_export_default_expr`] with `self`."]
10832    fn visit_with(&self, visitor: &mut V) {
10833        <V as Visit>::visit_export_default_expr(visitor, self)
10834    }
10835
10836    fn visit_children_with(&self, visitor: &mut V) {
10837        match self {
10838            ExportDefaultExpr { span, expr } => {
10839                {
10840                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10841                };
10842                {
10843                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
10844                };
10845            }
10846        }
10847    }
10848}
10849impl<V: ?Sized + Visit> VisitWith<V> for ExportDefaultSpecifier {
10850    #[doc = "Calls [Visit`::visit_export_default_specifier`] with `self`."]
10851    fn visit_with(&self, visitor: &mut V) {
10852        <V as Visit>::visit_export_default_specifier(visitor, self)
10853    }
10854
10855    fn visit_children_with(&self, visitor: &mut V) {
10856        match self {
10857            ExportDefaultSpecifier { exported } => {
10858                {
10859                    <Ident as VisitWith<V>>::visit_with(exported, visitor)
10860                };
10861            }
10862        }
10863    }
10864}
10865impl<V: ?Sized + Visit> VisitWith<V> for ExportNamedSpecifier {
10866    #[doc = "Calls [Visit`::visit_export_named_specifier`] with `self`."]
10867    fn visit_with(&self, visitor: &mut V) {
10868        <V as Visit>::visit_export_named_specifier(visitor, self)
10869    }
10870
10871    fn visit_children_with(&self, visitor: &mut V) {
10872        match self {
10873            ExportNamedSpecifier {
10874                span,
10875                orig,
10876                exported,
10877                is_type_only,
10878            } => {
10879                {
10880                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10881                };
10882                {
10883                    <ModuleExportName as VisitWith<V>>::visit_with(orig, visitor)
10884                };
10885                {
10886                    <Option<ModuleExportName> as VisitWith<V>>::visit_with(exported, visitor)
10887                };
10888            }
10889        }
10890    }
10891}
10892impl<V: ?Sized + Visit> VisitWith<V> for ExportNamespaceSpecifier {
10893    #[doc = "Calls [Visit`::visit_export_namespace_specifier`] with `self`."]
10894    fn visit_with(&self, visitor: &mut V) {
10895        <V as Visit>::visit_export_namespace_specifier(visitor, self)
10896    }
10897
10898    fn visit_children_with(&self, visitor: &mut V) {
10899        match self {
10900            ExportNamespaceSpecifier { span, name } => {
10901                {
10902                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10903                };
10904                {
10905                    <ModuleExportName as VisitWith<V>>::visit_with(name, visitor)
10906                };
10907            }
10908        }
10909    }
10910}
10911impl<V: ?Sized + Visit> VisitWith<V> for ExportSpecifier {
10912    #[doc = "Calls [Visit`::visit_export_specifier`] with `self`."]
10913    fn visit_with(&self, visitor: &mut V) {
10914        <V as Visit>::visit_export_specifier(visitor, self)
10915    }
10916
10917    fn visit_children_with(&self, visitor: &mut V) {
10918        match self {
10919            ExportSpecifier::Namespace { 0: _field_0 } => {
10920                <ExportNamespaceSpecifier as VisitWith<V>>::visit_with(_field_0, visitor);
10921            }
10922            ExportSpecifier::Default { 0: _field_0 } => {
10923                <ExportDefaultSpecifier as VisitWith<V>>::visit_with(_field_0, visitor);
10924            }
10925            ExportSpecifier::Named { 0: _field_0 } => {
10926                <ExportNamedSpecifier as VisitWith<V>>::visit_with(_field_0, visitor);
10927            }
10928        }
10929    }
10930}
10931impl<V: ?Sized + Visit> VisitWith<V> for Expr {
10932    #[doc = "Calls [Visit`::visit_expr`] with `self`."]
10933    fn visit_with(&self, visitor: &mut V) {
10934        <V as Visit>::visit_expr(visitor, self)
10935    }
10936
10937    fn visit_children_with(&self, visitor: &mut V) {
10938        match self {
10939            Expr::This { 0: _field_0 } => {
10940                <ThisExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10941            }
10942            Expr::Array { 0: _field_0 } => {
10943                <ArrayLit as VisitWith<V>>::visit_with(_field_0, visitor);
10944            }
10945            Expr::Object { 0: _field_0 } => {
10946                <ObjectLit as VisitWith<V>>::visit_with(_field_0, visitor);
10947            }
10948            Expr::Fn { 0: _field_0 } => {
10949                <FnExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10950            }
10951            Expr::Unary { 0: _field_0 } => {
10952                <UnaryExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10953            }
10954            Expr::Update { 0: _field_0 } => {
10955                <UpdateExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10956            }
10957            Expr::Bin { 0: _field_0 } => {
10958                <BinExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10959            }
10960            Expr::Assign { 0: _field_0 } => {
10961                <AssignExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10962            }
10963            Expr::Member { 0: _field_0 } => {
10964                <MemberExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10965            }
10966            Expr::SuperProp { 0: _field_0 } => {
10967                <SuperPropExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10968            }
10969            Expr::Cond { 0: _field_0 } => {
10970                <CondExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10971            }
10972            Expr::Call { 0: _field_0 } => {
10973                <CallExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10974            }
10975            Expr::New { 0: _field_0 } => {
10976                <NewExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10977            }
10978            Expr::Seq { 0: _field_0 } => {
10979                <SeqExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10980            }
10981            Expr::Ident { 0: _field_0 } => {
10982                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
10983            }
10984            Expr::Lit { 0: _field_0 } => {
10985                <Lit as VisitWith<V>>::visit_with(_field_0, visitor);
10986            }
10987            Expr::Tpl { 0: _field_0 } => {
10988                <Tpl as VisitWith<V>>::visit_with(_field_0, visitor);
10989            }
10990            Expr::TaggedTpl { 0: _field_0 } => {
10991                <TaggedTpl as VisitWith<V>>::visit_with(_field_0, visitor);
10992            }
10993            Expr::Arrow { 0: _field_0 } => {
10994                <ArrowExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10995            }
10996            Expr::Class { 0: _field_0 } => {
10997                <ClassExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10998            }
10999            Expr::Yield { 0: _field_0 } => {
11000                <YieldExpr as VisitWith<V>>::visit_with(_field_0, visitor);
11001            }
11002            Expr::MetaProp { 0: _field_0 } => {
11003                <MetaPropExpr as VisitWith<V>>::visit_with(_field_0, visitor);
11004            }
11005            Expr::Await { 0: _field_0 } => {
11006                <AwaitExpr as VisitWith<V>>::visit_with(_field_0, visitor);
11007            }
11008            Expr::Paren { 0: _field_0 } => {
11009                <ParenExpr as VisitWith<V>>::visit_with(_field_0, visitor);
11010            }
11011            Expr::JSXMember { 0: _field_0 } => {
11012                <JSXMemberExpr as VisitWith<V>>::visit_with(_field_0, visitor);
11013            }
11014            Expr::JSXNamespacedName { 0: _field_0 } => {
11015                <JSXNamespacedName as VisitWith<V>>::visit_with(_field_0, visitor);
11016            }
11017            Expr::JSXEmpty { 0: _field_0 } => {
11018                <JSXEmptyExpr as VisitWith<V>>::visit_with(_field_0, visitor);
11019            }
11020            Expr::JSXElement { 0: _field_0 } => {
11021                <Box<JSXElement> as VisitWith<V>>::visit_with(_field_0, visitor);
11022            }
11023            Expr::JSXFragment { 0: _field_0 } => {
11024                <JSXFragment as VisitWith<V>>::visit_with(_field_0, visitor);
11025            }
11026            Expr::TsTypeAssertion { 0: _field_0 } => {
11027                <TsTypeAssertion as VisitWith<V>>::visit_with(_field_0, visitor);
11028            }
11029            Expr::TsConstAssertion { 0: _field_0 } => {
11030                <TsConstAssertion as VisitWith<V>>::visit_with(_field_0, visitor);
11031            }
11032            Expr::TsNonNull { 0: _field_0 } => {
11033                <TsNonNullExpr as VisitWith<V>>::visit_with(_field_0, visitor);
11034            }
11035            Expr::TsAs { 0: _field_0 } => {
11036                <TsAsExpr as VisitWith<V>>::visit_with(_field_0, visitor);
11037            }
11038            Expr::TsInstantiation { 0: _field_0 } => {
11039                <TsInstantiation as VisitWith<V>>::visit_with(_field_0, visitor);
11040            }
11041            Expr::TsSatisfies { 0: _field_0 } => {
11042                <TsSatisfiesExpr as VisitWith<V>>::visit_with(_field_0, visitor);
11043            }
11044            Expr::PrivateName { 0: _field_0 } => {
11045                <PrivateName as VisitWith<V>>::visit_with(_field_0, visitor);
11046            }
11047            Expr::OptChain { 0: _field_0 } => {
11048                <OptChainExpr as VisitWith<V>>::visit_with(_field_0, visitor);
11049            }
11050            Expr::Invalid { 0: _field_0 } => {
11051                <Invalid as VisitWith<V>>::visit_with(_field_0, visitor);
11052            }
11053        }
11054    }
11055}
11056impl<V: ?Sized + Visit> VisitWith<V> for ExprOrSpread {
11057    #[doc = "Calls [Visit`::visit_expr_or_spread`] with `self`."]
11058    fn visit_with(&self, visitor: &mut V) {
11059        <V as Visit>::visit_expr_or_spread(visitor, self)
11060    }
11061
11062    fn visit_children_with(&self, visitor: &mut V) {
11063        match self {
11064            ExprOrSpread { spread, expr } => {
11065                {
11066                    <Option<swc_common::Span> as VisitWith<V>>::visit_with(spread, visitor)
11067                };
11068                {
11069                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
11070                };
11071            }
11072        }
11073    }
11074}
11075impl<V: ?Sized + Visit> VisitWith<V> for ExprStmt {
11076    #[doc = "Calls [Visit`::visit_expr_stmt`] with `self`."]
11077    fn visit_with(&self, visitor: &mut V) {
11078        <V as Visit>::visit_expr_stmt(visitor, self)
11079    }
11080
11081    fn visit_children_with(&self, visitor: &mut V) {
11082        match self {
11083            ExprStmt { span, expr } => {
11084                {
11085                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11086                };
11087                {
11088                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
11089                };
11090            }
11091        }
11092    }
11093}
11094impl<V: ?Sized + Visit> VisitWith<V> for FnDecl {
11095    #[doc = "Calls [Visit`::visit_fn_decl`] with `self`."]
11096    fn visit_with(&self, visitor: &mut V) {
11097        <V as Visit>::visit_fn_decl(visitor, self)
11098    }
11099
11100    fn visit_children_with(&self, visitor: &mut V) {
11101        match self {
11102            FnDecl {
11103                ident,
11104                declare,
11105                function,
11106            } => {
11107                {
11108                    <Ident as VisitWith<V>>::visit_with(ident, visitor)
11109                };
11110                {
11111                    <Box<Function> as VisitWith<V>>::visit_with(function, visitor)
11112                };
11113            }
11114        }
11115    }
11116}
11117impl<V: ?Sized + Visit> VisitWith<V> for FnExpr {
11118    #[doc = "Calls [Visit`::visit_fn_expr`] with `self`."]
11119    fn visit_with(&self, visitor: &mut V) {
11120        <V as Visit>::visit_fn_expr(visitor, self)
11121    }
11122
11123    fn visit_children_with(&self, visitor: &mut V) {
11124        match self {
11125            FnExpr { ident, function } => {
11126                {
11127                    <Option<Ident> as VisitWith<V>>::visit_with(ident, visitor)
11128                };
11129                {
11130                    <Box<Function> as VisitWith<V>>::visit_with(function, visitor)
11131                };
11132            }
11133        }
11134    }
11135}
11136impl<V: ?Sized + Visit> VisitWith<V> for ForHead {
11137    #[doc = "Calls [Visit`::visit_for_head`] with `self`."]
11138    fn visit_with(&self, visitor: &mut V) {
11139        <V as Visit>::visit_for_head(visitor, self)
11140    }
11141
11142    fn visit_children_with(&self, visitor: &mut V) {
11143        match self {
11144            ForHead::VarDecl { 0: _field_0 } => {
11145                <Box<VarDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
11146            }
11147            ForHead::UsingDecl { 0: _field_0 } => {
11148                <Box<UsingDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
11149            }
11150            ForHead::Pat { 0: _field_0 } => {
11151                <Box<Pat> as VisitWith<V>>::visit_with(_field_0, visitor);
11152            }
11153        }
11154    }
11155}
11156impl<V: ?Sized + Visit> VisitWith<V> for ForInStmt {
11157    #[doc = "Calls [Visit`::visit_for_in_stmt`] with `self`."]
11158    fn visit_with(&self, visitor: &mut V) {
11159        <V as Visit>::visit_for_in_stmt(visitor, self)
11160    }
11161
11162    fn visit_children_with(&self, visitor: &mut V) {
11163        match self {
11164            ForInStmt {
11165                span,
11166                left,
11167                right,
11168                body,
11169            } => {
11170                {
11171                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11172                };
11173                {
11174                    <ForHead as VisitWith<V>>::visit_with(left, visitor)
11175                };
11176                {
11177                    <Box<Expr> as VisitWith<V>>::visit_with(right, visitor)
11178                };
11179                {
11180                    <Box<Stmt> as VisitWith<V>>::visit_with(body, visitor)
11181                };
11182            }
11183        }
11184    }
11185}
11186impl<V: ?Sized + Visit> VisitWith<V> for ForOfStmt {
11187    #[doc = "Calls [Visit`::visit_for_of_stmt`] with `self`."]
11188    fn visit_with(&self, visitor: &mut V) {
11189        <V as Visit>::visit_for_of_stmt(visitor, self)
11190    }
11191
11192    fn visit_children_with(&self, visitor: &mut V) {
11193        match self {
11194            ForOfStmt {
11195                span,
11196                is_await,
11197                left,
11198                right,
11199                body,
11200            } => {
11201                {
11202                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11203                };
11204                {
11205                    <ForHead as VisitWith<V>>::visit_with(left, visitor)
11206                };
11207                {
11208                    <Box<Expr> as VisitWith<V>>::visit_with(right, visitor)
11209                };
11210                {
11211                    <Box<Stmt> as VisitWith<V>>::visit_with(body, visitor)
11212                };
11213            }
11214        }
11215    }
11216}
11217impl<V: ?Sized + Visit> VisitWith<V> for ForStmt {
11218    #[doc = "Calls [Visit`::visit_for_stmt`] with `self`."]
11219    fn visit_with(&self, visitor: &mut V) {
11220        <V as Visit>::visit_for_stmt(visitor, self)
11221    }
11222
11223    fn visit_children_with(&self, visitor: &mut V) {
11224        match self {
11225            ForStmt {
11226                span,
11227                init,
11228                test,
11229                update,
11230                body,
11231            } => {
11232                {
11233                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11234                };
11235                {
11236                    <Option<VarDeclOrExpr> as VisitWith<V>>::visit_with(init, visitor)
11237                };
11238                {
11239                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(test, visitor)
11240                };
11241                {
11242                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(update, visitor)
11243                };
11244                {
11245                    <Box<Stmt> as VisitWith<V>>::visit_with(body, visitor)
11246                };
11247            }
11248        }
11249    }
11250}
11251impl<V: ?Sized + Visit> VisitWith<V> for Function {
11252    #[doc = "Calls [Visit`::visit_function`] with `self`."]
11253    fn visit_with(&self, visitor: &mut V) {
11254        <V as Visit>::visit_function(visitor, self)
11255    }
11256
11257    fn visit_children_with(&self, visitor: &mut V) {
11258        match self {
11259            Function {
11260                params,
11261                decorators,
11262                span,
11263                ctxt,
11264                body,
11265                is_generator,
11266                is_async,
11267                type_params,
11268                return_type,
11269            } => {
11270                {
11271                    <Vec<Param> as VisitWith<V>>::visit_with(params, visitor)
11272                };
11273                {
11274                    <Vec<Decorator> as VisitWith<V>>::visit_with(decorators, visitor)
11275                };
11276                {
11277                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11278                };
11279                {
11280                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
11281                };
11282                {
11283                    <Option<BlockStmt> as VisitWith<V>>::visit_with(body, visitor)
11284                };
11285                {
11286                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
11287                };
11288                {
11289                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(return_type, visitor)
11290                };
11291            }
11292        }
11293    }
11294}
11295impl<V: ?Sized + Visit> VisitWith<V> for GetterProp {
11296    #[doc = "Calls [Visit`::visit_getter_prop`] with `self`."]
11297    fn visit_with(&self, visitor: &mut V) {
11298        <V as Visit>::visit_getter_prop(visitor, self)
11299    }
11300
11301    fn visit_children_with(&self, visitor: &mut V) {
11302        match self {
11303            GetterProp {
11304                span,
11305                key,
11306                type_ann,
11307                body,
11308            } => {
11309                {
11310                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11311                };
11312                {
11313                    <PropName as VisitWith<V>>::visit_with(key, visitor)
11314                };
11315                {
11316                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
11317                };
11318                {
11319                    <Option<BlockStmt> as VisitWith<V>>::visit_with(body, visitor)
11320                };
11321            }
11322        }
11323    }
11324}
11325impl<V: ?Sized + Visit> VisitWith<V> for Ident {
11326    #[doc = "Calls [Visit`::visit_ident`] with `self`."]
11327    fn visit_with(&self, visitor: &mut V) {
11328        <V as Visit>::visit_ident(visitor, self)
11329    }
11330
11331    fn visit_children_with(&self, visitor: &mut V) {
11332        match self {
11333            Ident {
11334                span,
11335                ctxt,
11336                sym,
11337                optional,
11338            } => {
11339                {
11340                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11341                };
11342                {
11343                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
11344                };
11345                {
11346                    <swc_atoms::Atom as VisitWith<V>>::visit_with(sym, visitor)
11347                };
11348            }
11349        }
11350    }
11351}
11352impl<V: ?Sized + Visit> VisitWith<V> for IdentName {
11353    #[doc = "Calls [Visit`::visit_ident_name`] with `self`."]
11354    fn visit_with(&self, visitor: &mut V) {
11355        <V as Visit>::visit_ident_name(visitor, self)
11356    }
11357
11358    fn visit_children_with(&self, visitor: &mut V) {
11359        match self {
11360            IdentName { span, sym } => {
11361                {
11362                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11363                };
11364                {
11365                    <swc_atoms::Atom as VisitWith<V>>::visit_with(sym, visitor)
11366                };
11367            }
11368        }
11369    }
11370}
11371impl<V: ?Sized + Visit> VisitWith<V> for IfStmt {
11372    #[doc = "Calls [Visit`::visit_if_stmt`] with `self`."]
11373    fn visit_with(&self, visitor: &mut V) {
11374        <V as Visit>::visit_if_stmt(visitor, self)
11375    }
11376
11377    fn visit_children_with(&self, visitor: &mut V) {
11378        match self {
11379            IfStmt {
11380                span,
11381                test,
11382                cons,
11383                alt,
11384            } => {
11385                {
11386                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11387                };
11388                {
11389                    <Box<Expr> as VisitWith<V>>::visit_with(test, visitor)
11390                };
11391                {
11392                    <Box<Stmt> as VisitWith<V>>::visit_with(cons, visitor)
11393                };
11394                {
11395                    <Option<Box<Stmt>> as VisitWith<V>>::visit_with(alt, visitor)
11396                };
11397            }
11398        }
11399    }
11400}
11401impl<V: ?Sized + Visit> VisitWith<V> for Import {
11402    #[doc = "Calls [Visit`::visit_import`] with `self`."]
11403    fn visit_with(&self, visitor: &mut V) {
11404        <V as Visit>::visit_import(visitor, self)
11405    }
11406
11407    fn visit_children_with(&self, visitor: &mut V) {
11408        match self {
11409            Import { span, phase } => {
11410                {
11411                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11412                };
11413                {
11414                    <ImportPhase as VisitWith<V>>::visit_with(phase, visitor)
11415                };
11416            }
11417        }
11418    }
11419}
11420impl<V: ?Sized + Visit> VisitWith<V> for ImportDecl {
11421    #[doc = "Calls [Visit`::visit_import_decl`] with `self`."]
11422    fn visit_with(&self, visitor: &mut V) {
11423        <V as Visit>::visit_import_decl(visitor, self)
11424    }
11425
11426    fn visit_children_with(&self, visitor: &mut V) {
11427        match self {
11428            ImportDecl {
11429                span,
11430                specifiers,
11431                src,
11432                type_only,
11433                with,
11434                phase,
11435            } => {
11436                {
11437                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11438                };
11439                {
11440                    <Vec<ImportSpecifier> as VisitWith<V>>::visit_with(specifiers, visitor)
11441                };
11442                {
11443                    <Box<Str> as VisitWith<V>>::visit_with(src, visitor)
11444                };
11445                {
11446                    <Option<Box<ObjectLit>> as VisitWith<V>>::visit_with(with, visitor)
11447                };
11448                {
11449                    <ImportPhase as VisitWith<V>>::visit_with(phase, visitor)
11450                };
11451            }
11452        }
11453    }
11454}
11455impl<V: ?Sized + Visit> VisitWith<V> for ImportDefaultSpecifier {
11456    #[doc = "Calls [Visit`::visit_import_default_specifier`] with `self`."]
11457    fn visit_with(&self, visitor: &mut V) {
11458        <V as Visit>::visit_import_default_specifier(visitor, self)
11459    }
11460
11461    fn visit_children_with(&self, visitor: &mut V) {
11462        match self {
11463            ImportDefaultSpecifier { span, local } => {
11464                {
11465                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11466                };
11467                {
11468                    <Ident as VisitWith<V>>::visit_with(local, visitor)
11469                };
11470            }
11471        }
11472    }
11473}
11474impl<V: ?Sized + Visit> VisitWith<V> for ImportNamedSpecifier {
11475    #[doc = "Calls [Visit`::visit_import_named_specifier`] with `self`."]
11476    fn visit_with(&self, visitor: &mut V) {
11477        <V as Visit>::visit_import_named_specifier(visitor, self)
11478    }
11479
11480    fn visit_children_with(&self, visitor: &mut V) {
11481        match self {
11482            ImportNamedSpecifier {
11483                span,
11484                local,
11485                imported,
11486                is_type_only,
11487            } => {
11488                {
11489                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11490                };
11491                {
11492                    <Ident as VisitWith<V>>::visit_with(local, visitor)
11493                };
11494                {
11495                    <Option<ModuleExportName> as VisitWith<V>>::visit_with(imported, visitor)
11496                };
11497            }
11498        }
11499    }
11500}
11501impl<V: ?Sized + Visit> VisitWith<V> for ImportPhase {
11502    #[doc = "Calls [Visit`::visit_import_phase`] with `self`."]
11503    fn visit_with(&self, visitor: &mut V) {
11504        <V as Visit>::visit_import_phase(visitor, self)
11505    }
11506
11507    fn visit_children_with(&self, visitor: &mut V) {
11508        match self {
11509            ImportPhase::Evaluation => {}
11510            ImportPhase::Source => {}
11511            ImportPhase::Defer => {}
11512        }
11513    }
11514}
11515impl<V: ?Sized + Visit> VisitWith<V> for ImportSpecifier {
11516    #[doc = "Calls [Visit`::visit_import_specifier`] with `self`."]
11517    fn visit_with(&self, visitor: &mut V) {
11518        <V as Visit>::visit_import_specifier(visitor, self)
11519    }
11520
11521    fn visit_children_with(&self, visitor: &mut V) {
11522        match self {
11523            ImportSpecifier::Named { 0: _field_0 } => {
11524                <ImportNamedSpecifier as VisitWith<V>>::visit_with(_field_0, visitor);
11525            }
11526            ImportSpecifier::Default { 0: _field_0 } => {
11527                <ImportDefaultSpecifier as VisitWith<V>>::visit_with(_field_0, visitor);
11528            }
11529            ImportSpecifier::Namespace { 0: _field_0 } => {
11530                <ImportStarAsSpecifier as VisitWith<V>>::visit_with(_field_0, visitor);
11531            }
11532        }
11533    }
11534}
11535impl<V: ?Sized + Visit> VisitWith<V> for ImportStarAsSpecifier {
11536    #[doc = "Calls [Visit`::visit_import_star_as_specifier`] with `self`."]
11537    fn visit_with(&self, visitor: &mut V) {
11538        <V as Visit>::visit_import_star_as_specifier(visitor, self)
11539    }
11540
11541    fn visit_children_with(&self, visitor: &mut V) {
11542        match self {
11543            ImportStarAsSpecifier { span, local } => {
11544                {
11545                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11546                };
11547                {
11548                    <Ident as VisitWith<V>>::visit_with(local, visitor)
11549                };
11550            }
11551        }
11552    }
11553}
11554impl<V: ?Sized + Visit> VisitWith<V> for ImportWith {
11555    #[doc = "Calls [Visit`::visit_import_with`] with `self`."]
11556    fn visit_with(&self, visitor: &mut V) {
11557        <V as Visit>::visit_import_with(visitor, self)
11558    }
11559
11560    fn visit_children_with(&self, visitor: &mut V) {
11561        match self {
11562            ImportWith { span, values } => {
11563                {
11564                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11565                };
11566                {
11567                    <Vec<ImportWithItem> as VisitWith<V>>::visit_with(values, visitor)
11568                };
11569            }
11570        }
11571    }
11572}
11573impl<V: ?Sized + Visit> VisitWith<V> for ImportWithItem {
11574    #[doc = "Calls [Visit`::visit_import_with_item`] with `self`."]
11575    fn visit_with(&self, visitor: &mut V) {
11576        <V as Visit>::visit_import_with_item(visitor, self)
11577    }
11578
11579    fn visit_children_with(&self, visitor: &mut V) {
11580        match self {
11581            ImportWithItem { key, value } => {
11582                {
11583                    <IdentName as VisitWith<V>>::visit_with(key, visitor)
11584                };
11585                {
11586                    <Str as VisitWith<V>>::visit_with(value, visitor)
11587                };
11588            }
11589        }
11590    }
11591}
11592impl<V: ?Sized + Visit> VisitWith<V> for Invalid {
11593    #[doc = "Calls [Visit`::visit_invalid`] with `self`."]
11594    fn visit_with(&self, visitor: &mut V) {
11595        <V as Visit>::visit_invalid(visitor, self)
11596    }
11597
11598    fn visit_children_with(&self, visitor: &mut V) {
11599        match self {
11600            Invalid { span } => {
11601                {
11602                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11603                };
11604            }
11605        }
11606    }
11607}
11608impl<V: ?Sized + Visit> VisitWith<V> for JSXAttr {
11609    #[doc = "Calls [Visit`::visit_jsx_attr`] with `self`."]
11610    fn visit_with(&self, visitor: &mut V) {
11611        <V as Visit>::visit_jsx_attr(visitor, self)
11612    }
11613
11614    fn visit_children_with(&self, visitor: &mut V) {
11615        match self {
11616            JSXAttr { span, name, value } => {
11617                {
11618                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11619                };
11620                {
11621                    <JSXAttrName as VisitWith<V>>::visit_with(name, visitor)
11622                };
11623                {
11624                    <Option<JSXAttrValue> as VisitWith<V>>::visit_with(value, visitor)
11625                };
11626            }
11627        }
11628    }
11629}
11630impl<V: ?Sized + Visit> VisitWith<V> for JSXAttrName {
11631    #[doc = "Calls [Visit`::visit_jsx_attr_name`] with `self`."]
11632    fn visit_with(&self, visitor: &mut V) {
11633        <V as Visit>::visit_jsx_attr_name(visitor, self)
11634    }
11635
11636    fn visit_children_with(&self, visitor: &mut V) {
11637        match self {
11638            JSXAttrName::Ident { 0: _field_0 } => {
11639                <IdentName as VisitWith<V>>::visit_with(_field_0, visitor);
11640            }
11641            JSXAttrName::JSXNamespacedName { 0: _field_0 } => {
11642                <JSXNamespacedName as VisitWith<V>>::visit_with(_field_0, visitor);
11643            }
11644        }
11645    }
11646}
11647impl<V: ?Sized + Visit> VisitWith<V> for JSXAttrOrSpread {
11648    #[doc = "Calls [Visit`::visit_jsx_attr_or_spread`] with `self`."]
11649    fn visit_with(&self, visitor: &mut V) {
11650        <V as Visit>::visit_jsx_attr_or_spread(visitor, self)
11651    }
11652
11653    fn visit_children_with(&self, visitor: &mut V) {
11654        match self {
11655            JSXAttrOrSpread::JSXAttr { 0: _field_0 } => {
11656                <JSXAttr as VisitWith<V>>::visit_with(_field_0, visitor);
11657            }
11658            JSXAttrOrSpread::SpreadElement { 0: _field_0 } => {
11659                <SpreadElement as VisitWith<V>>::visit_with(_field_0, visitor);
11660            }
11661        }
11662    }
11663}
11664impl<V: ?Sized + Visit> VisitWith<V> for JSXAttrValue {
11665    #[doc = "Calls [Visit`::visit_jsx_attr_value`] with `self`."]
11666    fn visit_with(&self, visitor: &mut V) {
11667        <V as Visit>::visit_jsx_attr_value(visitor, self)
11668    }
11669
11670    fn visit_children_with(&self, visitor: &mut V) {
11671        match self {
11672            JSXAttrValue::Lit { 0: _field_0 } => {
11673                <Lit as VisitWith<V>>::visit_with(_field_0, visitor);
11674            }
11675            JSXAttrValue::JSXExprContainer { 0: _field_0 } => {
11676                <JSXExprContainer as VisitWith<V>>::visit_with(_field_0, visitor);
11677            }
11678            JSXAttrValue::JSXElement { 0: _field_0 } => {
11679                <Box<JSXElement> as VisitWith<V>>::visit_with(_field_0, visitor);
11680            }
11681            JSXAttrValue::JSXFragment { 0: _field_0 } => {
11682                <JSXFragment as VisitWith<V>>::visit_with(_field_0, visitor);
11683            }
11684        }
11685    }
11686}
11687impl<V: ?Sized + Visit> VisitWith<V> for JSXClosingElement {
11688    #[doc = "Calls [Visit`::visit_jsx_closing_element`] with `self`."]
11689    fn visit_with(&self, visitor: &mut V) {
11690        <V as Visit>::visit_jsx_closing_element(visitor, self)
11691    }
11692
11693    fn visit_children_with(&self, visitor: &mut V) {
11694        match self {
11695            JSXClosingElement { span, name } => {
11696                {
11697                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11698                };
11699                {
11700                    <JSXElementName as VisitWith<V>>::visit_with(name, visitor)
11701                };
11702            }
11703        }
11704    }
11705}
11706impl<V: ?Sized + Visit> VisitWith<V> for JSXClosingFragment {
11707    #[doc = "Calls [Visit`::visit_jsx_closing_fragment`] with `self`."]
11708    fn visit_with(&self, visitor: &mut V) {
11709        <V as Visit>::visit_jsx_closing_fragment(visitor, self)
11710    }
11711
11712    fn visit_children_with(&self, visitor: &mut V) {
11713        match self {
11714            JSXClosingFragment { span } => {
11715                {
11716                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11717                };
11718            }
11719        }
11720    }
11721}
11722impl<V: ?Sized + Visit> VisitWith<V> for JSXElement {
11723    #[doc = "Calls [Visit`::visit_jsx_element`] with `self`."]
11724    fn visit_with(&self, visitor: &mut V) {
11725        <V as Visit>::visit_jsx_element(visitor, self)
11726    }
11727
11728    fn visit_children_with(&self, visitor: &mut V) {
11729        match self {
11730            JSXElement {
11731                span,
11732                opening,
11733                children,
11734                closing,
11735            } => {
11736                {
11737                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11738                };
11739                {
11740                    <JSXOpeningElement as VisitWith<V>>::visit_with(opening, visitor)
11741                };
11742                {
11743                    <Vec<JSXElementChild> as VisitWith<V>>::visit_with(children, visitor)
11744                };
11745                {
11746                    <Option<JSXClosingElement> as VisitWith<V>>::visit_with(closing, visitor)
11747                };
11748            }
11749        }
11750    }
11751}
11752impl<V: ?Sized + Visit> VisitWith<V> for JSXElementChild {
11753    #[doc = "Calls [Visit`::visit_jsx_element_child`] with `self`."]
11754    fn visit_with(&self, visitor: &mut V) {
11755        <V as Visit>::visit_jsx_element_child(visitor, self)
11756    }
11757
11758    fn visit_children_with(&self, visitor: &mut V) {
11759        match self {
11760            JSXElementChild::JSXText { 0: _field_0 } => {
11761                <JSXText as VisitWith<V>>::visit_with(_field_0, visitor);
11762            }
11763            JSXElementChild::JSXExprContainer { 0: _field_0 } => {
11764                <JSXExprContainer as VisitWith<V>>::visit_with(_field_0, visitor);
11765            }
11766            JSXElementChild::JSXSpreadChild { 0: _field_0 } => {
11767                <JSXSpreadChild as VisitWith<V>>::visit_with(_field_0, visitor);
11768            }
11769            JSXElementChild::JSXElement { 0: _field_0 } => {
11770                <Box<JSXElement> as VisitWith<V>>::visit_with(_field_0, visitor);
11771            }
11772            JSXElementChild::JSXFragment { 0: _field_0 } => {
11773                <JSXFragment as VisitWith<V>>::visit_with(_field_0, visitor);
11774            }
11775        }
11776    }
11777}
11778impl<V: ?Sized + Visit> VisitWith<V> for JSXElementName {
11779    #[doc = "Calls [Visit`::visit_jsx_element_name`] with `self`."]
11780    fn visit_with(&self, visitor: &mut V) {
11781        <V as Visit>::visit_jsx_element_name(visitor, self)
11782    }
11783
11784    fn visit_children_with(&self, visitor: &mut V) {
11785        match self {
11786            JSXElementName::Ident { 0: _field_0 } => {
11787                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
11788            }
11789            JSXElementName::JSXMemberExpr { 0: _field_0 } => {
11790                <JSXMemberExpr as VisitWith<V>>::visit_with(_field_0, visitor);
11791            }
11792            JSXElementName::JSXNamespacedName { 0: _field_0 } => {
11793                <JSXNamespacedName as VisitWith<V>>::visit_with(_field_0, visitor);
11794            }
11795        }
11796    }
11797}
11798impl<V: ?Sized + Visit> VisitWith<V> for JSXEmptyExpr {
11799    #[doc = "Calls [Visit`::visit_jsx_empty_expr`] with `self`."]
11800    fn visit_with(&self, visitor: &mut V) {
11801        <V as Visit>::visit_jsx_empty_expr(visitor, self)
11802    }
11803
11804    fn visit_children_with(&self, visitor: &mut V) {
11805        match self {
11806            JSXEmptyExpr { span } => {
11807                {
11808                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11809                };
11810            }
11811        }
11812    }
11813}
11814impl<V: ?Sized + Visit> VisitWith<V> for JSXExpr {
11815    #[doc = "Calls [Visit`::visit_jsx_expr`] with `self`."]
11816    fn visit_with(&self, visitor: &mut V) {
11817        <V as Visit>::visit_jsx_expr(visitor, self)
11818    }
11819
11820    fn visit_children_with(&self, visitor: &mut V) {
11821        match self {
11822            JSXExpr::JSXEmptyExpr { 0: _field_0 } => {
11823                <JSXEmptyExpr as VisitWith<V>>::visit_with(_field_0, visitor);
11824            }
11825            JSXExpr::Expr { 0: _field_0 } => {
11826                <Box<Expr> as VisitWith<V>>::visit_with(_field_0, visitor);
11827            }
11828        }
11829    }
11830}
11831impl<V: ?Sized + Visit> VisitWith<V> for JSXExprContainer {
11832    #[doc = "Calls [Visit`::visit_jsx_expr_container`] with `self`."]
11833    fn visit_with(&self, visitor: &mut V) {
11834        <V as Visit>::visit_jsx_expr_container(visitor, self)
11835    }
11836
11837    fn visit_children_with(&self, visitor: &mut V) {
11838        match self {
11839            JSXExprContainer { span, expr } => {
11840                {
11841                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11842                };
11843                {
11844                    <JSXExpr as VisitWith<V>>::visit_with(expr, visitor)
11845                };
11846            }
11847        }
11848    }
11849}
11850impl<V: ?Sized + Visit> VisitWith<V> for JSXFragment {
11851    #[doc = "Calls [Visit`::visit_jsx_fragment`] with `self`."]
11852    fn visit_with(&self, visitor: &mut V) {
11853        <V as Visit>::visit_jsx_fragment(visitor, self)
11854    }
11855
11856    fn visit_children_with(&self, visitor: &mut V) {
11857        match self {
11858            JSXFragment {
11859                span,
11860                opening,
11861                children,
11862                closing,
11863            } => {
11864                {
11865                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11866                };
11867                {
11868                    <JSXOpeningFragment as VisitWith<V>>::visit_with(opening, visitor)
11869                };
11870                {
11871                    <Vec<JSXElementChild> as VisitWith<V>>::visit_with(children, visitor)
11872                };
11873                {
11874                    <JSXClosingFragment as VisitWith<V>>::visit_with(closing, visitor)
11875                };
11876            }
11877        }
11878    }
11879}
11880impl<V: ?Sized + Visit> VisitWith<V> for JSXMemberExpr {
11881    #[doc = "Calls [Visit`::visit_jsx_member_expr`] with `self`."]
11882    fn visit_with(&self, visitor: &mut V) {
11883        <V as Visit>::visit_jsx_member_expr(visitor, self)
11884    }
11885
11886    fn visit_children_with(&self, visitor: &mut V) {
11887        match self {
11888            JSXMemberExpr { span, obj, prop } => {
11889                {
11890                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11891                };
11892                {
11893                    <JSXObject as VisitWith<V>>::visit_with(obj, visitor)
11894                };
11895                {
11896                    <IdentName as VisitWith<V>>::visit_with(prop, visitor)
11897                };
11898            }
11899        }
11900    }
11901}
11902impl<V: ?Sized + Visit> VisitWith<V> for JSXNamespacedName {
11903    #[doc = "Calls [Visit`::visit_jsx_namespaced_name`] with `self`."]
11904    fn visit_with(&self, visitor: &mut V) {
11905        <V as Visit>::visit_jsx_namespaced_name(visitor, self)
11906    }
11907
11908    fn visit_children_with(&self, visitor: &mut V) {
11909        match self {
11910            JSXNamespacedName { span, ns, name } => {
11911                {
11912                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11913                };
11914                {
11915                    <IdentName as VisitWith<V>>::visit_with(ns, visitor)
11916                };
11917                {
11918                    <IdentName as VisitWith<V>>::visit_with(name, visitor)
11919                };
11920            }
11921        }
11922    }
11923}
11924impl<V: ?Sized + Visit> VisitWith<V> for JSXObject {
11925    #[doc = "Calls [Visit`::visit_jsx_object`] with `self`."]
11926    fn visit_with(&self, visitor: &mut V) {
11927        <V as Visit>::visit_jsx_object(visitor, self)
11928    }
11929
11930    fn visit_children_with(&self, visitor: &mut V) {
11931        match self {
11932            JSXObject::JSXMemberExpr { 0: _field_0 } => {
11933                <Box<JSXMemberExpr> as VisitWith<V>>::visit_with(_field_0, visitor);
11934            }
11935            JSXObject::Ident { 0: _field_0 } => {
11936                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
11937            }
11938        }
11939    }
11940}
11941impl<V: ?Sized + Visit> VisitWith<V> for JSXOpeningElement {
11942    #[doc = "Calls [Visit`::visit_jsx_opening_element`] with `self`."]
11943    fn visit_with(&self, visitor: &mut V) {
11944        <V as Visit>::visit_jsx_opening_element(visitor, self)
11945    }
11946
11947    fn visit_children_with(&self, visitor: &mut V) {
11948        match self {
11949            JSXOpeningElement {
11950                name,
11951                span,
11952                attrs,
11953                self_closing,
11954                type_args,
11955            } => {
11956                {
11957                    <JSXElementName as VisitWith<V>>::visit_with(name, visitor)
11958                };
11959                {
11960                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11961                };
11962                {
11963                    <Vec<JSXAttrOrSpread> as VisitWith<V>>::visit_with(attrs, visitor)
11964                };
11965                {
11966                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
11967                        type_args, visitor,
11968                    )
11969                };
11970            }
11971        }
11972    }
11973}
11974impl<V: ?Sized + Visit> VisitWith<V> for JSXOpeningFragment {
11975    #[doc = "Calls [Visit`::visit_jsx_opening_fragment`] with `self`."]
11976    fn visit_with(&self, visitor: &mut V) {
11977        <V as Visit>::visit_jsx_opening_fragment(visitor, self)
11978    }
11979
11980    fn visit_children_with(&self, visitor: &mut V) {
11981        match self {
11982            JSXOpeningFragment { span } => {
11983                {
11984                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11985                };
11986            }
11987        }
11988    }
11989}
11990impl<V: ?Sized + Visit> VisitWith<V> for JSXSpreadChild {
11991    #[doc = "Calls [Visit`::visit_jsx_spread_child`] with `self`."]
11992    fn visit_with(&self, visitor: &mut V) {
11993        <V as Visit>::visit_jsx_spread_child(visitor, self)
11994    }
11995
11996    fn visit_children_with(&self, visitor: &mut V) {
11997        match self {
11998            JSXSpreadChild { span, expr } => {
11999                {
12000                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12001                };
12002                {
12003                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
12004                };
12005            }
12006        }
12007    }
12008}
12009impl<V: ?Sized + Visit> VisitWith<V> for JSXText {
12010    #[doc = "Calls [Visit`::visit_jsx_text`] with `self`."]
12011    fn visit_with(&self, visitor: &mut V) {
12012        <V as Visit>::visit_jsx_text(visitor, self)
12013    }
12014
12015    fn visit_children_with(&self, visitor: &mut V) {
12016        match self {
12017            JSXText { span, value, raw } => {
12018                {
12019                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12020                };
12021                {
12022                    <swc_atoms::Atom as VisitWith<V>>::visit_with(value, visitor)
12023                };
12024                {
12025                    <swc_atoms::Atom as VisitWith<V>>::visit_with(raw, visitor)
12026                };
12027            }
12028        }
12029    }
12030}
12031impl<V: ?Sized + Visit> VisitWith<V> for Key {
12032    #[doc = "Calls [Visit`::visit_key`] with `self`."]
12033    fn visit_with(&self, visitor: &mut V) {
12034        <V as Visit>::visit_key(visitor, self)
12035    }
12036
12037    fn visit_children_with(&self, visitor: &mut V) {
12038        match self {
12039            Key::Private { 0: _field_0 } => {
12040                <PrivateName as VisitWith<V>>::visit_with(_field_0, visitor);
12041            }
12042            Key::Public { 0: _field_0 } => {
12043                <PropName as VisitWith<V>>::visit_with(_field_0, visitor);
12044            }
12045        }
12046    }
12047}
12048impl<V: ?Sized + Visit> VisitWith<V> for KeyValuePatProp {
12049    #[doc = "Calls [Visit`::visit_key_value_pat_prop`] with `self`."]
12050    fn visit_with(&self, visitor: &mut V) {
12051        <V as Visit>::visit_key_value_pat_prop(visitor, self)
12052    }
12053
12054    fn visit_children_with(&self, visitor: &mut V) {
12055        match self {
12056            KeyValuePatProp { key, value } => {
12057                {
12058                    <PropName as VisitWith<V>>::visit_with(key, visitor)
12059                };
12060                {
12061                    <Box<Pat> as VisitWith<V>>::visit_with(value, visitor)
12062                };
12063            }
12064        }
12065    }
12066}
12067impl<V: ?Sized + Visit> VisitWith<V> for KeyValueProp {
12068    #[doc = "Calls [Visit`::visit_key_value_prop`] with `self`."]
12069    fn visit_with(&self, visitor: &mut V) {
12070        <V as Visit>::visit_key_value_prop(visitor, self)
12071    }
12072
12073    fn visit_children_with(&self, visitor: &mut V) {
12074        match self {
12075            KeyValueProp { key, value } => {
12076                {
12077                    <PropName as VisitWith<V>>::visit_with(key, visitor)
12078                };
12079                {
12080                    <Box<Expr> as VisitWith<V>>::visit_with(value, visitor)
12081                };
12082            }
12083        }
12084    }
12085}
12086impl<V: ?Sized + Visit> VisitWith<V> for LabeledStmt {
12087    #[doc = "Calls [Visit`::visit_labeled_stmt`] with `self`."]
12088    fn visit_with(&self, visitor: &mut V) {
12089        <V as Visit>::visit_labeled_stmt(visitor, self)
12090    }
12091
12092    fn visit_children_with(&self, visitor: &mut V) {
12093        match self {
12094            LabeledStmt { span, label, body } => {
12095                {
12096                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12097                };
12098                {
12099                    <Ident as VisitWith<V>>::visit_with(label, visitor)
12100                };
12101                {
12102                    <Box<Stmt> as VisitWith<V>>::visit_with(body, visitor)
12103                };
12104            }
12105        }
12106    }
12107}
12108impl<V: ?Sized + Visit> VisitWith<V> for Lit {
12109    #[doc = "Calls [Visit`::visit_lit`] with `self`."]
12110    fn visit_with(&self, visitor: &mut V) {
12111        <V as Visit>::visit_lit(visitor, self)
12112    }
12113
12114    fn visit_children_with(&self, visitor: &mut V) {
12115        match self {
12116            Lit::Str { 0: _field_0 } => {
12117                <Str as VisitWith<V>>::visit_with(_field_0, visitor);
12118            }
12119            Lit::Bool { 0: _field_0 } => {
12120                <Bool as VisitWith<V>>::visit_with(_field_0, visitor);
12121            }
12122            Lit::Null { 0: _field_0 } => {
12123                <Null as VisitWith<V>>::visit_with(_field_0, visitor);
12124            }
12125            Lit::Num { 0: _field_0 } => {
12126                <Number as VisitWith<V>>::visit_with(_field_0, visitor);
12127            }
12128            Lit::BigInt { 0: _field_0 } => {
12129                <BigInt as VisitWith<V>>::visit_with(_field_0, visitor);
12130            }
12131            Lit::Regex { 0: _field_0 } => {
12132                <Regex as VisitWith<V>>::visit_with(_field_0, visitor);
12133            }
12134            Lit::JSXText { 0: _field_0 } => {
12135                <JSXText as VisitWith<V>>::visit_with(_field_0, visitor);
12136            }
12137        }
12138    }
12139}
12140impl<V: ?Sized + Visit> VisitWith<V> for MemberExpr {
12141    #[doc = "Calls [Visit`::visit_member_expr`] with `self`."]
12142    fn visit_with(&self, visitor: &mut V) {
12143        <V as Visit>::visit_member_expr(visitor, self)
12144    }
12145
12146    fn visit_children_with(&self, visitor: &mut V) {
12147        match self {
12148            MemberExpr { span, obj, prop } => {
12149                {
12150                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12151                };
12152                {
12153                    <Box<Expr> as VisitWith<V>>::visit_with(obj, visitor)
12154                };
12155                {
12156                    <MemberProp as VisitWith<V>>::visit_with(prop, visitor)
12157                };
12158            }
12159        }
12160    }
12161}
12162impl<V: ?Sized + Visit> VisitWith<V> for MemberProp {
12163    #[doc = "Calls [Visit`::visit_member_prop`] with `self`."]
12164    fn visit_with(&self, visitor: &mut V) {
12165        <V as Visit>::visit_member_prop(visitor, self)
12166    }
12167
12168    fn visit_children_with(&self, visitor: &mut V) {
12169        match self {
12170            MemberProp::Ident { 0: _field_0 } => {
12171                <IdentName as VisitWith<V>>::visit_with(_field_0, visitor);
12172            }
12173            MemberProp::PrivateName { 0: _field_0 } => {
12174                <PrivateName as VisitWith<V>>::visit_with(_field_0, visitor);
12175            }
12176            MemberProp::Computed { 0: _field_0 } => {
12177                <ComputedPropName as VisitWith<V>>::visit_with(_field_0, visitor);
12178            }
12179        }
12180    }
12181}
12182impl<V: ?Sized + Visit> VisitWith<V> for MetaPropExpr {
12183    #[doc = "Calls [Visit`::visit_meta_prop_expr`] with `self`."]
12184    fn visit_with(&self, visitor: &mut V) {
12185        <V as Visit>::visit_meta_prop_expr(visitor, self)
12186    }
12187
12188    fn visit_children_with(&self, visitor: &mut V) {
12189        match self {
12190            MetaPropExpr { span, kind } => {
12191                {
12192                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12193                };
12194                {
12195                    <MetaPropKind as VisitWith<V>>::visit_with(kind, visitor)
12196                };
12197            }
12198        }
12199    }
12200}
12201impl<V: ?Sized + Visit> VisitWith<V> for MetaPropKind {
12202    #[doc = "Calls [Visit`::visit_meta_prop_kind`] with `self`."]
12203    fn visit_with(&self, visitor: &mut V) {
12204        <V as Visit>::visit_meta_prop_kind(visitor, self)
12205    }
12206
12207    fn visit_children_with(&self, visitor: &mut V) {
12208        match self {
12209            MetaPropKind::NewTarget => {}
12210            MetaPropKind::ImportMeta => {}
12211        }
12212    }
12213}
12214impl<V: ?Sized + Visit> VisitWith<V> for MethodKind {
12215    #[doc = "Calls [Visit`::visit_method_kind`] with `self`."]
12216    fn visit_with(&self, visitor: &mut V) {
12217        <V as Visit>::visit_method_kind(visitor, self)
12218    }
12219
12220    fn visit_children_with(&self, visitor: &mut V) {
12221        match self {
12222            MethodKind::Method => {}
12223            MethodKind::Getter => {}
12224            MethodKind::Setter => {}
12225        }
12226    }
12227}
12228impl<V: ?Sized + Visit> VisitWith<V> for MethodProp {
12229    #[doc = "Calls [Visit`::visit_method_prop`] with `self`."]
12230    fn visit_with(&self, visitor: &mut V) {
12231        <V as Visit>::visit_method_prop(visitor, self)
12232    }
12233
12234    fn visit_children_with(&self, visitor: &mut V) {
12235        match self {
12236            MethodProp { key, function } => {
12237                {
12238                    <PropName as VisitWith<V>>::visit_with(key, visitor)
12239                };
12240                {
12241                    <Box<Function> as VisitWith<V>>::visit_with(function, visitor)
12242                };
12243            }
12244        }
12245    }
12246}
12247impl<V: ?Sized + Visit> VisitWith<V> for Module {
12248    #[doc = "Calls [Visit`::visit_module`] with `self`."]
12249    fn visit_with(&self, visitor: &mut V) {
12250        <V as Visit>::visit_module(visitor, self)
12251    }
12252
12253    fn visit_children_with(&self, visitor: &mut V) {
12254        match self {
12255            Module {
12256                span,
12257                body,
12258                shebang,
12259            } => {
12260                {
12261                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12262                };
12263                {
12264                    <Vec<ModuleItem> as VisitWith<V>>::visit_with(body, visitor)
12265                };
12266                {
12267                    <Option<swc_atoms::Atom> as VisitWith<V>>::visit_with(shebang, visitor)
12268                };
12269            }
12270        }
12271    }
12272}
12273impl<V: ?Sized + Visit> VisitWith<V> for ModuleDecl {
12274    #[doc = "Calls [Visit`::visit_module_decl`] with `self`."]
12275    fn visit_with(&self, visitor: &mut V) {
12276        <V as Visit>::visit_module_decl(visitor, self)
12277    }
12278
12279    fn visit_children_with(&self, visitor: &mut V) {
12280        match self {
12281            ModuleDecl::Import { 0: _field_0 } => {
12282                <ImportDecl as VisitWith<V>>::visit_with(_field_0, visitor);
12283            }
12284            ModuleDecl::ExportDecl { 0: _field_0 } => {
12285                <ExportDecl as VisitWith<V>>::visit_with(_field_0, visitor);
12286            }
12287            ModuleDecl::ExportNamed { 0: _field_0 } => {
12288                <NamedExport as VisitWith<V>>::visit_with(_field_0, visitor);
12289            }
12290            ModuleDecl::ExportDefaultDecl { 0: _field_0 } => {
12291                <ExportDefaultDecl as VisitWith<V>>::visit_with(_field_0, visitor);
12292            }
12293            ModuleDecl::ExportDefaultExpr { 0: _field_0 } => {
12294                <ExportDefaultExpr as VisitWith<V>>::visit_with(_field_0, visitor);
12295            }
12296            ModuleDecl::ExportAll { 0: _field_0 } => {
12297                <ExportAll as VisitWith<V>>::visit_with(_field_0, visitor);
12298            }
12299            ModuleDecl::TsImportEquals { 0: _field_0 } => {
12300                <Box<TsImportEqualsDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
12301            }
12302            ModuleDecl::TsExportAssignment { 0: _field_0 } => {
12303                <TsExportAssignment as VisitWith<V>>::visit_with(_field_0, visitor);
12304            }
12305            ModuleDecl::TsNamespaceExport { 0: _field_0 } => {
12306                <TsNamespaceExportDecl as VisitWith<V>>::visit_with(_field_0, visitor);
12307            }
12308        }
12309    }
12310}
12311impl<V: ?Sized + Visit> VisitWith<V> for ModuleExportName {
12312    #[doc = "Calls [Visit`::visit_module_export_name`] with `self`."]
12313    fn visit_with(&self, visitor: &mut V) {
12314        <V as Visit>::visit_module_export_name(visitor, self)
12315    }
12316
12317    fn visit_children_with(&self, visitor: &mut V) {
12318        match self {
12319            ModuleExportName::Ident { 0: _field_0 } => {
12320                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
12321            }
12322            ModuleExportName::Str { 0: _field_0 } => {
12323                <Str as VisitWith<V>>::visit_with(_field_0, visitor);
12324            }
12325        }
12326    }
12327}
12328impl<V: ?Sized + Visit> VisitWith<V> for ModuleItem {
12329    #[doc = "Calls [Visit`::visit_module_item`] with `self`."]
12330    fn visit_with(&self, visitor: &mut V) {
12331        <V as Visit>::visit_module_item(visitor, self)
12332    }
12333
12334    fn visit_children_with(&self, visitor: &mut V) {
12335        match self {
12336            ModuleItem::ModuleDecl { 0: _field_0 } => {
12337                <ModuleDecl as VisitWith<V>>::visit_with(_field_0, visitor);
12338            }
12339            ModuleItem::Stmt { 0: _field_0 } => {
12340                <Stmt as VisitWith<V>>::visit_with(_field_0, visitor);
12341            }
12342        }
12343    }
12344}
12345impl<V: ?Sized + Visit> VisitWith<V> for NamedExport {
12346    #[doc = "Calls [Visit`::visit_named_export`] with `self`."]
12347    fn visit_with(&self, visitor: &mut V) {
12348        <V as Visit>::visit_named_export(visitor, self)
12349    }
12350
12351    fn visit_children_with(&self, visitor: &mut V) {
12352        match self {
12353            NamedExport {
12354                span,
12355                specifiers,
12356                src,
12357                type_only,
12358                with,
12359            } => {
12360                {
12361                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12362                };
12363                {
12364                    <Vec<ExportSpecifier> as VisitWith<V>>::visit_with(specifiers, visitor)
12365                };
12366                {
12367                    <Option<Box<Str>> as VisitWith<V>>::visit_with(src, visitor)
12368                };
12369                {
12370                    <Option<Box<ObjectLit>> as VisitWith<V>>::visit_with(with, visitor)
12371                };
12372            }
12373        }
12374    }
12375}
12376impl<V: ?Sized + Visit> VisitWith<V> for NewExpr {
12377    #[doc = "Calls [Visit`::visit_new_expr`] with `self`."]
12378    fn visit_with(&self, visitor: &mut V) {
12379        <V as Visit>::visit_new_expr(visitor, self)
12380    }
12381
12382    fn visit_children_with(&self, visitor: &mut V) {
12383        match self {
12384            NewExpr {
12385                span,
12386                ctxt,
12387                callee,
12388                args,
12389                type_args,
12390            } => {
12391                {
12392                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12393                };
12394                {
12395                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
12396                };
12397                {
12398                    <Box<Expr> as VisitWith<V>>::visit_with(callee, visitor)
12399                };
12400                {
12401                    <Option<Vec<ExprOrSpread>> as VisitWith<V>>::visit_with(args, visitor)
12402                };
12403                {
12404                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
12405                        type_args, visitor,
12406                    )
12407                };
12408            }
12409        }
12410    }
12411}
12412impl<V: ?Sized + Visit> VisitWith<V> for Null {
12413    #[doc = "Calls [Visit`::visit_null`] with `self`."]
12414    fn visit_with(&self, visitor: &mut V) {
12415        <V as Visit>::visit_null(visitor, self)
12416    }
12417
12418    fn visit_children_with(&self, visitor: &mut V) {
12419        match self {
12420            Null { span } => {
12421                {
12422                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12423                };
12424            }
12425        }
12426    }
12427}
12428impl<V: ?Sized + Visit> VisitWith<V> for Number {
12429    #[doc = "Calls [Visit`::visit_number`] with `self`."]
12430    fn visit_with(&self, visitor: &mut V) {
12431        <V as Visit>::visit_number(visitor, self)
12432    }
12433
12434    fn visit_children_with(&self, visitor: &mut V) {
12435        match self {
12436            Number { span, value, raw } => {
12437                {
12438                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12439                };
12440                {
12441                    <Option<swc_atoms::Atom> as VisitWith<V>>::visit_with(raw, visitor)
12442                };
12443            }
12444        }
12445    }
12446}
12447impl<V: ?Sized + Visit> VisitWith<V> for ObjectLit {
12448    #[doc = "Calls [Visit`::visit_object_lit`] with `self`."]
12449    fn visit_with(&self, visitor: &mut V) {
12450        <V as Visit>::visit_object_lit(visitor, self)
12451    }
12452
12453    fn visit_children_with(&self, visitor: &mut V) {
12454        match self {
12455            ObjectLit { span, props } => {
12456                {
12457                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12458                };
12459                {
12460                    <Vec<PropOrSpread> as VisitWith<V>>::visit_with(props, visitor)
12461                };
12462            }
12463        }
12464    }
12465}
12466impl<V: ?Sized + Visit> VisitWith<V> for ObjectPat {
12467    #[doc = "Calls [Visit`::visit_object_pat`] with `self`."]
12468    fn visit_with(&self, visitor: &mut V) {
12469        <V as Visit>::visit_object_pat(visitor, self)
12470    }
12471
12472    fn visit_children_with(&self, visitor: &mut V) {
12473        match self {
12474            ObjectPat {
12475                span,
12476                props,
12477                optional,
12478                type_ann,
12479            } => {
12480                {
12481                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12482                };
12483                {
12484                    <Vec<ObjectPatProp> as VisitWith<V>>::visit_with(props, visitor)
12485                };
12486                {
12487                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
12488                };
12489            }
12490        }
12491    }
12492}
12493impl<V: ?Sized + Visit> VisitWith<V> for ObjectPatProp {
12494    #[doc = "Calls [Visit`::visit_object_pat_prop`] with `self`."]
12495    fn visit_with(&self, visitor: &mut V) {
12496        <V as Visit>::visit_object_pat_prop(visitor, self)
12497    }
12498
12499    fn visit_children_with(&self, visitor: &mut V) {
12500        match self {
12501            ObjectPatProp::KeyValue { 0: _field_0 } => {
12502                <KeyValuePatProp as VisitWith<V>>::visit_with(_field_0, visitor);
12503            }
12504            ObjectPatProp::Assign { 0: _field_0 } => {
12505                <AssignPatProp as VisitWith<V>>::visit_with(_field_0, visitor);
12506            }
12507            ObjectPatProp::Rest { 0: _field_0 } => {
12508                <RestPat as VisitWith<V>>::visit_with(_field_0, visitor);
12509            }
12510        }
12511    }
12512}
12513impl<V: ?Sized + Visit> VisitWith<V> for OptCall {
12514    #[doc = "Calls [Visit`::visit_opt_call`] with `self`."]
12515    fn visit_with(&self, visitor: &mut V) {
12516        <V as Visit>::visit_opt_call(visitor, self)
12517    }
12518
12519    fn visit_children_with(&self, visitor: &mut V) {
12520        match self {
12521            OptCall {
12522                span,
12523                ctxt,
12524                callee,
12525                args,
12526                type_args,
12527            } => {
12528                {
12529                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12530                };
12531                {
12532                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
12533                };
12534                {
12535                    <Box<Expr> as VisitWith<V>>::visit_with(callee, visitor)
12536                };
12537                {
12538                    <Vec<ExprOrSpread> as VisitWith<V>>::visit_with(args, visitor)
12539                };
12540                {
12541                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
12542                        type_args, visitor,
12543                    )
12544                };
12545            }
12546        }
12547    }
12548}
12549impl<V: ?Sized + Visit> VisitWith<V> for OptChainBase {
12550    #[doc = "Calls [Visit`::visit_opt_chain_base`] with `self`."]
12551    fn visit_with(&self, visitor: &mut V) {
12552        <V as Visit>::visit_opt_chain_base(visitor, self)
12553    }
12554
12555    fn visit_children_with(&self, visitor: &mut V) {
12556        match self {
12557            OptChainBase::Member { 0: _field_0 } => {
12558                <MemberExpr as VisitWith<V>>::visit_with(_field_0, visitor);
12559            }
12560            OptChainBase::Call { 0: _field_0 } => {
12561                <OptCall as VisitWith<V>>::visit_with(_field_0, visitor);
12562            }
12563        }
12564    }
12565}
12566impl<V: ?Sized + Visit> VisitWith<V> for OptChainExpr {
12567    #[doc = "Calls [Visit`::visit_opt_chain_expr`] with `self`."]
12568    fn visit_with(&self, visitor: &mut V) {
12569        <V as Visit>::visit_opt_chain_expr(visitor, self)
12570    }
12571
12572    fn visit_children_with(&self, visitor: &mut V) {
12573        match self {
12574            OptChainExpr {
12575                span,
12576                optional,
12577                base,
12578            } => {
12579                {
12580                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12581                };
12582                {
12583                    <Box<OptChainBase> as VisitWith<V>>::visit_with(base, visitor)
12584                };
12585            }
12586        }
12587    }
12588}
12589impl<V: ?Sized + Visit> VisitWith<V> for Param {
12590    #[doc = "Calls [Visit`::visit_param`] with `self`."]
12591    fn visit_with(&self, visitor: &mut V) {
12592        <V as Visit>::visit_param(visitor, self)
12593    }
12594
12595    fn visit_children_with(&self, visitor: &mut V) {
12596        match self {
12597            Param {
12598                span,
12599                decorators,
12600                pat,
12601            } => {
12602                {
12603                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12604                };
12605                {
12606                    <Vec<Decorator> as VisitWith<V>>::visit_with(decorators, visitor)
12607                };
12608                {
12609                    <Pat as VisitWith<V>>::visit_with(pat, visitor)
12610                };
12611            }
12612        }
12613    }
12614}
12615impl<V: ?Sized + Visit> VisitWith<V> for ParamOrTsParamProp {
12616    #[doc = "Calls [Visit`::visit_param_or_ts_param_prop`] with `self`."]
12617    fn visit_with(&self, visitor: &mut V) {
12618        <V as Visit>::visit_param_or_ts_param_prop(visitor, self)
12619    }
12620
12621    fn visit_children_with(&self, visitor: &mut V) {
12622        match self {
12623            ParamOrTsParamProp::TsParamProp { 0: _field_0 } => {
12624                <TsParamProp as VisitWith<V>>::visit_with(_field_0, visitor);
12625            }
12626            ParamOrTsParamProp::Param { 0: _field_0 } => {
12627                <Param as VisitWith<V>>::visit_with(_field_0, visitor);
12628            }
12629        }
12630    }
12631}
12632impl<V: ?Sized + Visit> VisitWith<V> for ParenExpr {
12633    #[doc = "Calls [Visit`::visit_paren_expr`] with `self`."]
12634    fn visit_with(&self, visitor: &mut V) {
12635        <V as Visit>::visit_paren_expr(visitor, self)
12636    }
12637
12638    fn visit_children_with(&self, visitor: &mut V) {
12639        match self {
12640            ParenExpr { span, expr } => {
12641                {
12642                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12643                };
12644                {
12645                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
12646                };
12647            }
12648        }
12649    }
12650}
12651impl<V: ?Sized + Visit> VisitWith<V> for Pat {
12652    #[doc = "Calls [Visit`::visit_pat`] with `self`."]
12653    fn visit_with(&self, visitor: &mut V) {
12654        <V as Visit>::visit_pat(visitor, self)
12655    }
12656
12657    fn visit_children_with(&self, visitor: &mut V) {
12658        match self {
12659            Pat::Ident { 0: _field_0 } => {
12660                <BindingIdent as VisitWith<V>>::visit_with(_field_0, visitor);
12661            }
12662            Pat::Array { 0: _field_0 } => {
12663                <ArrayPat as VisitWith<V>>::visit_with(_field_0, visitor);
12664            }
12665            Pat::Rest { 0: _field_0 } => {
12666                <RestPat as VisitWith<V>>::visit_with(_field_0, visitor);
12667            }
12668            Pat::Object { 0: _field_0 } => {
12669                <ObjectPat as VisitWith<V>>::visit_with(_field_0, visitor);
12670            }
12671            Pat::Assign { 0: _field_0 } => {
12672                <AssignPat as VisitWith<V>>::visit_with(_field_0, visitor);
12673            }
12674            Pat::Invalid { 0: _field_0 } => {
12675                <Invalid as VisitWith<V>>::visit_with(_field_0, visitor);
12676            }
12677            Pat::Expr { 0: _field_0 } => {
12678                <Box<Expr> as VisitWith<V>>::visit_with(_field_0, visitor);
12679            }
12680        }
12681    }
12682}
12683impl<V: ?Sized + Visit> VisitWith<V> for PrivateMethod {
12684    #[doc = "Calls [Visit`::visit_private_method`] with `self`."]
12685    fn visit_with(&self, visitor: &mut V) {
12686        <V as Visit>::visit_private_method(visitor, self)
12687    }
12688
12689    fn visit_children_with(&self, visitor: &mut V) {
12690        match self {
12691            PrivateMethod {
12692                span,
12693                key,
12694                function,
12695                kind,
12696                is_static,
12697                accessibility,
12698                is_abstract,
12699                is_optional,
12700                is_override,
12701            } => {
12702                {
12703                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12704                };
12705                {
12706                    <PrivateName as VisitWith<V>>::visit_with(key, visitor)
12707                };
12708                {
12709                    <Box<Function> as VisitWith<V>>::visit_with(function, visitor)
12710                };
12711                {
12712                    <MethodKind as VisitWith<V>>::visit_with(kind, visitor)
12713                };
12714                {
12715                    <Option<Accessibility> as VisitWith<V>>::visit_with(accessibility, visitor)
12716                };
12717            }
12718        }
12719    }
12720}
12721impl<V: ?Sized + Visit> VisitWith<V> for PrivateName {
12722    #[doc = "Calls [Visit`::visit_private_name`] with `self`."]
12723    fn visit_with(&self, visitor: &mut V) {
12724        <V as Visit>::visit_private_name(visitor, self)
12725    }
12726
12727    fn visit_children_with(&self, visitor: &mut V) {
12728        match self {
12729            PrivateName { span, name } => {
12730                {
12731                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12732                };
12733                {
12734                    <swc_atoms::Atom as VisitWith<V>>::visit_with(name, visitor)
12735                };
12736            }
12737        }
12738    }
12739}
12740impl<V: ?Sized + Visit> VisitWith<V> for PrivateProp {
12741    #[doc = "Calls [Visit`::visit_private_prop`] with `self`."]
12742    fn visit_with(&self, visitor: &mut V) {
12743        <V as Visit>::visit_private_prop(visitor, self)
12744    }
12745
12746    fn visit_children_with(&self, visitor: &mut V) {
12747        match self {
12748            PrivateProp {
12749                span,
12750                ctxt,
12751                key,
12752                value,
12753                type_ann,
12754                is_static,
12755                decorators,
12756                accessibility,
12757                is_optional,
12758                is_override,
12759                readonly,
12760                definite,
12761            } => {
12762                {
12763                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12764                };
12765                {
12766                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
12767                };
12768                {
12769                    <PrivateName as VisitWith<V>>::visit_with(key, visitor)
12770                };
12771                {
12772                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(value, visitor)
12773                };
12774                {
12775                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
12776                };
12777                {
12778                    <Vec<Decorator> as VisitWith<V>>::visit_with(decorators, visitor)
12779                };
12780                {
12781                    <Option<Accessibility> as VisitWith<V>>::visit_with(accessibility, visitor)
12782                };
12783            }
12784        }
12785    }
12786}
12787impl<V: ?Sized + Visit> VisitWith<V> for Program {
12788    #[doc = "Calls [Visit`::visit_program`] with `self`."]
12789    fn visit_with(&self, visitor: &mut V) {
12790        <V as Visit>::visit_program(visitor, self)
12791    }
12792
12793    fn visit_children_with(&self, visitor: &mut V) {
12794        match self {
12795            Program::Module { 0: _field_0 } => {
12796                <Module as VisitWith<V>>::visit_with(_field_0, visitor);
12797            }
12798            Program::Script { 0: _field_0 } => {
12799                <Script as VisitWith<V>>::visit_with(_field_0, visitor);
12800            }
12801        }
12802    }
12803}
12804impl<V: ?Sized + Visit> VisitWith<V> for Prop {
12805    #[doc = "Calls [Visit`::visit_prop`] with `self`."]
12806    fn visit_with(&self, visitor: &mut V) {
12807        <V as Visit>::visit_prop(visitor, self)
12808    }
12809
12810    fn visit_children_with(&self, visitor: &mut V) {
12811        match self {
12812            Prop::Shorthand { 0: _field_0 } => {
12813                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
12814            }
12815            Prop::KeyValue { 0: _field_0 } => {
12816                <KeyValueProp as VisitWith<V>>::visit_with(_field_0, visitor);
12817            }
12818            Prop::Assign { 0: _field_0 } => {
12819                <AssignProp as VisitWith<V>>::visit_with(_field_0, visitor);
12820            }
12821            Prop::Getter { 0: _field_0 } => {
12822                <GetterProp as VisitWith<V>>::visit_with(_field_0, visitor);
12823            }
12824            Prop::Setter { 0: _field_0 } => {
12825                <SetterProp as VisitWith<V>>::visit_with(_field_0, visitor);
12826            }
12827            Prop::Method { 0: _field_0 } => {
12828                <MethodProp as VisitWith<V>>::visit_with(_field_0, visitor);
12829            }
12830        }
12831    }
12832}
12833impl<V: ?Sized + Visit> VisitWith<V> for PropName {
12834    #[doc = "Calls [Visit`::visit_prop_name`] with `self`."]
12835    fn visit_with(&self, visitor: &mut V) {
12836        <V as Visit>::visit_prop_name(visitor, self)
12837    }
12838
12839    fn visit_children_with(&self, visitor: &mut V) {
12840        match self {
12841            PropName::Ident { 0: _field_0 } => {
12842                <IdentName as VisitWith<V>>::visit_with(_field_0, visitor);
12843            }
12844            PropName::Str { 0: _field_0 } => {
12845                <Str as VisitWith<V>>::visit_with(_field_0, visitor);
12846            }
12847            PropName::Num { 0: _field_0 } => {
12848                <Number as VisitWith<V>>::visit_with(_field_0, visitor);
12849            }
12850            PropName::Computed { 0: _field_0 } => {
12851                <ComputedPropName as VisitWith<V>>::visit_with(_field_0, visitor);
12852            }
12853            PropName::BigInt { 0: _field_0 } => {
12854                <BigInt as VisitWith<V>>::visit_with(_field_0, visitor);
12855            }
12856        }
12857    }
12858}
12859impl<V: ?Sized + Visit> VisitWith<V> for PropOrSpread {
12860    #[doc = "Calls [Visit`::visit_prop_or_spread`] with `self`."]
12861    fn visit_with(&self, visitor: &mut V) {
12862        <V as Visit>::visit_prop_or_spread(visitor, self)
12863    }
12864
12865    fn visit_children_with(&self, visitor: &mut V) {
12866        match self {
12867            PropOrSpread::Spread { 0: _field_0 } => {
12868                <SpreadElement as VisitWith<V>>::visit_with(_field_0, visitor);
12869            }
12870            PropOrSpread::Prop { 0: _field_0 } => {
12871                <Box<Prop> as VisitWith<V>>::visit_with(_field_0, visitor);
12872            }
12873        }
12874    }
12875}
12876impl<V: ?Sized + Visit> VisitWith<V> for Regex {
12877    #[doc = "Calls [Visit`::visit_regex`] with `self`."]
12878    fn visit_with(&self, visitor: &mut V) {
12879        <V as Visit>::visit_regex(visitor, self)
12880    }
12881
12882    fn visit_children_with(&self, visitor: &mut V) {
12883        match self {
12884            Regex { span, exp, flags } => {
12885                {
12886                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12887                };
12888                {
12889                    <swc_atoms::Atom as VisitWith<V>>::visit_with(exp, visitor)
12890                };
12891                {
12892                    <swc_atoms::Atom as VisitWith<V>>::visit_with(flags, visitor)
12893                };
12894            }
12895        }
12896    }
12897}
12898impl<V: ?Sized + Visit> VisitWith<V> for RestPat {
12899    #[doc = "Calls [Visit`::visit_rest_pat`] with `self`."]
12900    fn visit_with(&self, visitor: &mut V) {
12901        <V as Visit>::visit_rest_pat(visitor, self)
12902    }
12903
12904    fn visit_children_with(&self, visitor: &mut V) {
12905        match self {
12906            RestPat {
12907                span,
12908                dot3_token,
12909                arg,
12910                type_ann,
12911            } => {
12912                {
12913                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12914                };
12915                {
12916                    <swc_common::Span as VisitWith<V>>::visit_with(dot3_token, visitor)
12917                };
12918                {
12919                    <Box<Pat> as VisitWith<V>>::visit_with(arg, visitor)
12920                };
12921                {
12922                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
12923                };
12924            }
12925        }
12926    }
12927}
12928impl<V: ?Sized + Visit> VisitWith<V> for ReturnStmt {
12929    #[doc = "Calls [Visit`::visit_return_stmt`] with `self`."]
12930    fn visit_with(&self, visitor: &mut V) {
12931        <V as Visit>::visit_return_stmt(visitor, self)
12932    }
12933
12934    fn visit_children_with(&self, visitor: &mut V) {
12935        match self {
12936            ReturnStmt { span, arg } => {
12937                {
12938                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12939                };
12940                {
12941                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(arg, visitor)
12942                };
12943            }
12944        }
12945    }
12946}
12947impl<V: ?Sized + Visit> VisitWith<V> for Script {
12948    #[doc = "Calls [Visit`::visit_script`] with `self`."]
12949    fn visit_with(&self, visitor: &mut V) {
12950        <V as Visit>::visit_script(visitor, self)
12951    }
12952
12953    fn visit_children_with(&self, visitor: &mut V) {
12954        match self {
12955            Script {
12956                span,
12957                body,
12958                shebang,
12959            } => {
12960                {
12961                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12962                };
12963                {
12964                    <Vec<Stmt> as VisitWith<V>>::visit_with(body, visitor)
12965                };
12966                {
12967                    <Option<swc_atoms::Atom> as VisitWith<V>>::visit_with(shebang, visitor)
12968                };
12969            }
12970        }
12971    }
12972}
12973impl<V: ?Sized + Visit> VisitWith<V> for SeqExpr {
12974    #[doc = "Calls [Visit`::visit_seq_expr`] with `self`."]
12975    fn visit_with(&self, visitor: &mut V) {
12976        <V as Visit>::visit_seq_expr(visitor, self)
12977    }
12978
12979    fn visit_children_with(&self, visitor: &mut V) {
12980        match self {
12981            SeqExpr { span, exprs } => {
12982                {
12983                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12984                };
12985                {
12986                    <Vec<Box<Expr>> as VisitWith<V>>::visit_with(exprs, visitor)
12987                };
12988            }
12989        }
12990    }
12991}
12992impl<V: ?Sized + Visit> VisitWith<V> for SetterProp {
12993    #[doc = "Calls [Visit`::visit_setter_prop`] with `self`."]
12994    fn visit_with(&self, visitor: &mut V) {
12995        <V as Visit>::visit_setter_prop(visitor, self)
12996    }
12997
12998    fn visit_children_with(&self, visitor: &mut V) {
12999        match self {
13000            SetterProp {
13001                span,
13002                key,
13003                this_param,
13004                param,
13005                body,
13006            } => {
13007                {
13008                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13009                };
13010                {
13011                    <PropName as VisitWith<V>>::visit_with(key, visitor)
13012                };
13013                {
13014                    <Option<Pat> as VisitWith<V>>::visit_with(this_param, visitor)
13015                };
13016                {
13017                    <Box<Pat> as VisitWith<V>>::visit_with(param, visitor)
13018                };
13019                {
13020                    <Option<BlockStmt> as VisitWith<V>>::visit_with(body, visitor)
13021                };
13022            }
13023        }
13024    }
13025}
13026impl<V: ?Sized + Visit> VisitWith<V> for SimpleAssignTarget {
13027    #[doc = "Calls [Visit`::visit_simple_assign_target`] with `self`."]
13028    fn visit_with(&self, visitor: &mut V) {
13029        <V as Visit>::visit_simple_assign_target(visitor, self)
13030    }
13031
13032    fn visit_children_with(&self, visitor: &mut V) {
13033        match self {
13034            SimpleAssignTarget::Ident { 0: _field_0 } => {
13035                <BindingIdent as VisitWith<V>>::visit_with(_field_0, visitor);
13036            }
13037            SimpleAssignTarget::Member { 0: _field_0 } => {
13038                <MemberExpr as VisitWith<V>>::visit_with(_field_0, visitor);
13039            }
13040            SimpleAssignTarget::SuperProp { 0: _field_0 } => {
13041                <SuperPropExpr as VisitWith<V>>::visit_with(_field_0, visitor);
13042            }
13043            SimpleAssignTarget::Paren { 0: _field_0 } => {
13044                <ParenExpr as VisitWith<V>>::visit_with(_field_0, visitor);
13045            }
13046            SimpleAssignTarget::OptChain { 0: _field_0 } => {
13047                <OptChainExpr as VisitWith<V>>::visit_with(_field_0, visitor);
13048            }
13049            SimpleAssignTarget::TsAs { 0: _field_0 } => {
13050                <TsAsExpr as VisitWith<V>>::visit_with(_field_0, visitor);
13051            }
13052            SimpleAssignTarget::TsSatisfies { 0: _field_0 } => {
13053                <TsSatisfiesExpr as VisitWith<V>>::visit_with(_field_0, visitor);
13054            }
13055            SimpleAssignTarget::TsNonNull { 0: _field_0 } => {
13056                <TsNonNullExpr as VisitWith<V>>::visit_with(_field_0, visitor);
13057            }
13058            SimpleAssignTarget::TsTypeAssertion { 0: _field_0 } => {
13059                <TsTypeAssertion as VisitWith<V>>::visit_with(_field_0, visitor);
13060            }
13061            SimpleAssignTarget::TsInstantiation { 0: _field_0 } => {
13062                <TsInstantiation as VisitWith<V>>::visit_with(_field_0, visitor);
13063            }
13064            SimpleAssignTarget::Invalid { 0: _field_0 } => {
13065                <Invalid as VisitWith<V>>::visit_with(_field_0, visitor);
13066            }
13067        }
13068    }
13069}
13070impl<V: ?Sized + Visit> VisitWith<V> for SpreadElement {
13071    #[doc = "Calls [Visit`::visit_spread_element`] with `self`."]
13072    fn visit_with(&self, visitor: &mut V) {
13073        <V as Visit>::visit_spread_element(visitor, self)
13074    }
13075
13076    fn visit_children_with(&self, visitor: &mut V) {
13077        match self {
13078            SpreadElement { dot3_token, expr } => {
13079                {
13080                    <swc_common::Span as VisitWith<V>>::visit_with(dot3_token, visitor)
13081                };
13082                {
13083                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
13084                };
13085            }
13086        }
13087    }
13088}
13089impl<V: ?Sized + Visit> VisitWith<V> for StaticBlock {
13090    #[doc = "Calls [Visit`::visit_static_block`] with `self`."]
13091    fn visit_with(&self, visitor: &mut V) {
13092        <V as Visit>::visit_static_block(visitor, self)
13093    }
13094
13095    fn visit_children_with(&self, visitor: &mut V) {
13096        match self {
13097            StaticBlock { span, body } => {
13098                {
13099                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13100                };
13101                {
13102                    <BlockStmt as VisitWith<V>>::visit_with(body, visitor)
13103                };
13104            }
13105        }
13106    }
13107}
13108impl<V: ?Sized + Visit> VisitWith<V> for Stmt {
13109    #[doc = "Calls [Visit`::visit_stmt`] with `self`."]
13110    fn visit_with(&self, visitor: &mut V) {
13111        <V as Visit>::visit_stmt(visitor, self)
13112    }
13113
13114    fn visit_children_with(&self, visitor: &mut V) {
13115        match self {
13116            Stmt::Block { 0: _field_0 } => {
13117                <BlockStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13118            }
13119            Stmt::Empty { 0: _field_0 } => {
13120                <EmptyStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13121            }
13122            Stmt::Debugger { 0: _field_0 } => {
13123                <DebuggerStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13124            }
13125            Stmt::With { 0: _field_0 } => {
13126                <WithStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13127            }
13128            Stmt::Return { 0: _field_0 } => {
13129                <ReturnStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13130            }
13131            Stmt::Labeled { 0: _field_0 } => {
13132                <LabeledStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13133            }
13134            Stmt::Break { 0: _field_0 } => {
13135                <BreakStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13136            }
13137            Stmt::Continue { 0: _field_0 } => {
13138                <ContinueStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13139            }
13140            Stmt::If { 0: _field_0 } => {
13141                <IfStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13142            }
13143            Stmt::Switch { 0: _field_0 } => {
13144                <SwitchStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13145            }
13146            Stmt::Throw { 0: _field_0 } => {
13147                <ThrowStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13148            }
13149            Stmt::Try { 0: _field_0 } => {
13150                <Box<TryStmt> as VisitWith<V>>::visit_with(_field_0, visitor);
13151            }
13152            Stmt::While { 0: _field_0 } => {
13153                <WhileStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13154            }
13155            Stmt::DoWhile { 0: _field_0 } => {
13156                <DoWhileStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13157            }
13158            Stmt::For { 0: _field_0 } => {
13159                <ForStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13160            }
13161            Stmt::ForIn { 0: _field_0 } => {
13162                <ForInStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13163            }
13164            Stmt::ForOf { 0: _field_0 } => {
13165                <ForOfStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13166            }
13167            Stmt::Decl { 0: _field_0 } => {
13168                <Decl as VisitWith<V>>::visit_with(_field_0, visitor);
13169            }
13170            Stmt::Expr { 0: _field_0 } => {
13171                <ExprStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13172            }
13173        }
13174    }
13175}
13176impl<V: ?Sized + Visit> VisitWith<V> for Str {
13177    #[doc = "Calls [Visit`::visit_str`] with `self`."]
13178    fn visit_with(&self, visitor: &mut V) {
13179        <V as Visit>::visit_str(visitor, self)
13180    }
13181
13182    fn visit_children_with(&self, visitor: &mut V) {
13183        match self {
13184            Str { span, value, raw } => {
13185                {
13186                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13187                };
13188                {
13189                    <swc_atoms::Atom as VisitWith<V>>::visit_with(value, visitor)
13190                };
13191                {
13192                    <Option<swc_atoms::Atom> as VisitWith<V>>::visit_with(raw, visitor)
13193                };
13194            }
13195        }
13196    }
13197}
13198impl<V: ?Sized + Visit> VisitWith<V> for Super {
13199    #[doc = "Calls [Visit`::visit_super`] with `self`."]
13200    fn visit_with(&self, visitor: &mut V) {
13201        <V as Visit>::visit_super(visitor, self)
13202    }
13203
13204    fn visit_children_with(&self, visitor: &mut V) {
13205        match self {
13206            Super { span } => {
13207                {
13208                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13209                };
13210            }
13211        }
13212    }
13213}
13214impl<V: ?Sized + Visit> VisitWith<V> for SuperProp {
13215    #[doc = "Calls [Visit`::visit_super_prop`] with `self`."]
13216    fn visit_with(&self, visitor: &mut V) {
13217        <V as Visit>::visit_super_prop(visitor, self)
13218    }
13219
13220    fn visit_children_with(&self, visitor: &mut V) {
13221        match self {
13222            SuperProp::Ident { 0: _field_0 } => {
13223                <IdentName as VisitWith<V>>::visit_with(_field_0, visitor);
13224            }
13225            SuperProp::Computed { 0: _field_0 } => {
13226                <ComputedPropName as VisitWith<V>>::visit_with(_field_0, visitor);
13227            }
13228        }
13229    }
13230}
13231impl<V: ?Sized + Visit> VisitWith<V> for SuperPropExpr {
13232    #[doc = "Calls [Visit`::visit_super_prop_expr`] with `self`."]
13233    fn visit_with(&self, visitor: &mut V) {
13234        <V as Visit>::visit_super_prop_expr(visitor, self)
13235    }
13236
13237    fn visit_children_with(&self, visitor: &mut V) {
13238        match self {
13239            SuperPropExpr { span, obj, prop } => {
13240                {
13241                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13242                };
13243                {
13244                    <Super as VisitWith<V>>::visit_with(obj, visitor)
13245                };
13246                {
13247                    <SuperProp as VisitWith<V>>::visit_with(prop, visitor)
13248                };
13249            }
13250        }
13251    }
13252}
13253impl<V: ?Sized + Visit> VisitWith<V> for SwitchCase {
13254    #[doc = "Calls [Visit`::visit_switch_case`] with `self`."]
13255    fn visit_with(&self, visitor: &mut V) {
13256        <V as Visit>::visit_switch_case(visitor, self)
13257    }
13258
13259    fn visit_children_with(&self, visitor: &mut V) {
13260        match self {
13261            SwitchCase { span, test, cons } => {
13262                {
13263                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13264                };
13265                {
13266                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(test, visitor)
13267                };
13268                {
13269                    <Vec<Stmt> as VisitWith<V>>::visit_with(cons, visitor)
13270                };
13271            }
13272        }
13273    }
13274}
13275impl<V: ?Sized + Visit> VisitWith<V> for SwitchStmt {
13276    #[doc = "Calls [Visit`::visit_switch_stmt`] with `self`."]
13277    fn visit_with(&self, visitor: &mut V) {
13278        <V as Visit>::visit_switch_stmt(visitor, self)
13279    }
13280
13281    fn visit_children_with(&self, visitor: &mut V) {
13282        match self {
13283            SwitchStmt {
13284                span,
13285                discriminant,
13286                cases,
13287            } => {
13288                {
13289                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13290                };
13291                {
13292                    <Box<Expr> as VisitWith<V>>::visit_with(discriminant, visitor)
13293                };
13294                {
13295                    <Vec<SwitchCase> as VisitWith<V>>::visit_with(cases, visitor)
13296                };
13297            }
13298        }
13299    }
13300}
13301impl<V: ?Sized + Visit> VisitWith<V> for TaggedTpl {
13302    #[doc = "Calls [Visit`::visit_tagged_tpl`] with `self`."]
13303    fn visit_with(&self, visitor: &mut V) {
13304        <V as Visit>::visit_tagged_tpl(visitor, self)
13305    }
13306
13307    fn visit_children_with(&self, visitor: &mut V) {
13308        match self {
13309            TaggedTpl {
13310                span,
13311                ctxt,
13312                tag,
13313                type_params,
13314                tpl,
13315            } => {
13316                {
13317                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13318                };
13319                {
13320                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
13321                };
13322                {
13323                    <Box<Expr> as VisitWith<V>>::visit_with(tag, visitor)
13324                };
13325                {
13326                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
13327                        type_params,
13328                        visitor,
13329                    )
13330                };
13331                {
13332                    <Box<Tpl> as VisitWith<V>>::visit_with(tpl, visitor)
13333                };
13334            }
13335        }
13336    }
13337}
13338impl<V: ?Sized + Visit> VisitWith<V> for ThisExpr {
13339    #[doc = "Calls [Visit`::visit_this_expr`] with `self`."]
13340    fn visit_with(&self, visitor: &mut V) {
13341        <V as Visit>::visit_this_expr(visitor, self)
13342    }
13343
13344    fn visit_children_with(&self, visitor: &mut V) {
13345        match self {
13346            ThisExpr { span } => {
13347                {
13348                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13349                };
13350            }
13351        }
13352    }
13353}
13354impl<V: ?Sized + Visit> VisitWith<V> for ThrowStmt {
13355    #[doc = "Calls [Visit`::visit_throw_stmt`] with `self`."]
13356    fn visit_with(&self, visitor: &mut V) {
13357        <V as Visit>::visit_throw_stmt(visitor, self)
13358    }
13359
13360    fn visit_children_with(&self, visitor: &mut V) {
13361        match self {
13362            ThrowStmt { span, arg } => {
13363                {
13364                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13365                };
13366                {
13367                    <Box<Expr> as VisitWith<V>>::visit_with(arg, visitor)
13368                };
13369            }
13370        }
13371    }
13372}
13373impl<V: ?Sized + Visit> VisitWith<V> for Tpl {
13374    #[doc = "Calls [Visit`::visit_tpl`] with `self`."]
13375    fn visit_with(&self, visitor: &mut V) {
13376        <V as Visit>::visit_tpl(visitor, self)
13377    }
13378
13379    fn visit_children_with(&self, visitor: &mut V) {
13380        match self {
13381            Tpl {
13382                span,
13383                exprs,
13384                quasis,
13385            } => {
13386                {
13387                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13388                };
13389                {
13390                    <Vec<Box<Expr>> as VisitWith<V>>::visit_with(exprs, visitor)
13391                };
13392                {
13393                    <Vec<TplElement> as VisitWith<V>>::visit_with(quasis, visitor)
13394                };
13395            }
13396        }
13397    }
13398}
13399impl<V: ?Sized + Visit> VisitWith<V> for TplElement {
13400    #[doc = "Calls [Visit`::visit_tpl_element`] with `self`."]
13401    fn visit_with(&self, visitor: &mut V) {
13402        <V as Visit>::visit_tpl_element(visitor, self)
13403    }
13404
13405    fn visit_children_with(&self, visitor: &mut V) {
13406        match self {
13407            TplElement {
13408                span,
13409                tail,
13410                cooked,
13411                raw,
13412            } => {
13413                {
13414                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13415                };
13416                {
13417                    <Option<swc_atoms::Atom> as VisitWith<V>>::visit_with(cooked, visitor)
13418                };
13419                {
13420                    <swc_atoms::Atom as VisitWith<V>>::visit_with(raw, visitor)
13421                };
13422            }
13423        }
13424    }
13425}
13426impl<V: ?Sized + Visit> VisitWith<V> for TruePlusMinus {
13427    #[doc = "Calls [Visit`::visit_true_plus_minus`] with `self`."]
13428    fn visit_with(&self, visitor: &mut V) {
13429        <V as Visit>::visit_true_plus_minus(visitor, self)
13430    }
13431
13432    fn visit_children_with(&self, visitor: &mut V) {
13433        match self {
13434            TruePlusMinus::True => {}
13435            TruePlusMinus::Plus => {}
13436            TruePlusMinus::Minus => {}
13437        }
13438    }
13439}
13440impl<V: ?Sized + Visit> VisitWith<V> for TryStmt {
13441    #[doc = "Calls [Visit`::visit_try_stmt`] with `self`."]
13442    fn visit_with(&self, visitor: &mut V) {
13443        <V as Visit>::visit_try_stmt(visitor, self)
13444    }
13445
13446    fn visit_children_with(&self, visitor: &mut V) {
13447        match self {
13448            TryStmt {
13449                span,
13450                block,
13451                handler,
13452                finalizer,
13453            } => {
13454                {
13455                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13456                };
13457                {
13458                    <BlockStmt as VisitWith<V>>::visit_with(block, visitor)
13459                };
13460                {
13461                    <Option<CatchClause> as VisitWith<V>>::visit_with(handler, visitor)
13462                };
13463                {
13464                    <Option<BlockStmt> as VisitWith<V>>::visit_with(finalizer, visitor)
13465                };
13466            }
13467        }
13468    }
13469}
13470impl<V: ?Sized + Visit> VisitWith<V> for TsArrayType {
13471    #[doc = "Calls [Visit`::visit_ts_array_type`] with `self`."]
13472    fn visit_with(&self, visitor: &mut V) {
13473        <V as Visit>::visit_ts_array_type(visitor, self)
13474    }
13475
13476    fn visit_children_with(&self, visitor: &mut V) {
13477        match self {
13478            TsArrayType { span, elem_type } => {
13479                {
13480                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13481                };
13482                {
13483                    <Box<TsType> as VisitWith<V>>::visit_with(elem_type, visitor)
13484                };
13485            }
13486        }
13487    }
13488}
13489impl<V: ?Sized + Visit> VisitWith<V> for TsAsExpr {
13490    #[doc = "Calls [Visit`::visit_ts_as_expr`] with `self`."]
13491    fn visit_with(&self, visitor: &mut V) {
13492        <V as Visit>::visit_ts_as_expr(visitor, self)
13493    }
13494
13495    fn visit_children_with(&self, visitor: &mut V) {
13496        match self {
13497            TsAsExpr {
13498                span,
13499                expr,
13500                type_ann,
13501            } => {
13502                {
13503                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13504                };
13505                {
13506                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
13507                };
13508                {
13509                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
13510                };
13511            }
13512        }
13513    }
13514}
13515impl<V: ?Sized + Visit> VisitWith<V> for TsCallSignatureDecl {
13516    #[doc = "Calls [Visit`::visit_ts_call_signature_decl`] with `self`."]
13517    fn visit_with(&self, visitor: &mut V) {
13518        <V as Visit>::visit_ts_call_signature_decl(visitor, self)
13519    }
13520
13521    fn visit_children_with(&self, visitor: &mut V) {
13522        match self {
13523            TsCallSignatureDecl {
13524                span,
13525                params,
13526                type_ann,
13527                type_params,
13528            } => {
13529                {
13530                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13531                };
13532                {
13533                    <Vec<TsFnParam> as VisitWith<V>>::visit_with(params, visitor)
13534                };
13535                {
13536                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
13537                };
13538                {
13539                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
13540                };
13541            }
13542        }
13543    }
13544}
13545impl<V: ?Sized + Visit> VisitWith<V> for TsConditionalType {
13546    #[doc = "Calls [Visit`::visit_ts_conditional_type`] with `self`."]
13547    fn visit_with(&self, visitor: &mut V) {
13548        <V as Visit>::visit_ts_conditional_type(visitor, self)
13549    }
13550
13551    fn visit_children_with(&self, visitor: &mut V) {
13552        match self {
13553            TsConditionalType {
13554                span,
13555                check_type,
13556                extends_type,
13557                true_type,
13558                false_type,
13559            } => {
13560                {
13561                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13562                };
13563                {
13564                    <Box<TsType> as VisitWith<V>>::visit_with(check_type, visitor)
13565                };
13566                {
13567                    <Box<TsType> as VisitWith<V>>::visit_with(extends_type, visitor)
13568                };
13569                {
13570                    <Box<TsType> as VisitWith<V>>::visit_with(true_type, visitor)
13571                };
13572                {
13573                    <Box<TsType> as VisitWith<V>>::visit_with(false_type, visitor)
13574                };
13575            }
13576        }
13577    }
13578}
13579impl<V: ?Sized + Visit> VisitWith<V> for TsConstAssertion {
13580    #[doc = "Calls [Visit`::visit_ts_const_assertion`] with `self`."]
13581    fn visit_with(&self, visitor: &mut V) {
13582        <V as Visit>::visit_ts_const_assertion(visitor, self)
13583    }
13584
13585    fn visit_children_with(&self, visitor: &mut V) {
13586        match self {
13587            TsConstAssertion { span, expr } => {
13588                {
13589                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13590                };
13591                {
13592                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
13593                };
13594            }
13595        }
13596    }
13597}
13598impl<V: ?Sized + Visit> VisitWith<V> for TsConstructSignatureDecl {
13599    #[doc = "Calls [Visit`::visit_ts_construct_signature_decl`] with `self`."]
13600    fn visit_with(&self, visitor: &mut V) {
13601        <V as Visit>::visit_ts_construct_signature_decl(visitor, self)
13602    }
13603
13604    fn visit_children_with(&self, visitor: &mut V) {
13605        match self {
13606            TsConstructSignatureDecl {
13607                span,
13608                params,
13609                type_ann,
13610                type_params,
13611            } => {
13612                {
13613                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13614                };
13615                {
13616                    <Vec<TsFnParam> as VisitWith<V>>::visit_with(params, visitor)
13617                };
13618                {
13619                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
13620                };
13621                {
13622                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
13623                };
13624            }
13625        }
13626    }
13627}
13628impl<V: ?Sized + Visit> VisitWith<V> for TsConstructorType {
13629    #[doc = "Calls [Visit`::visit_ts_constructor_type`] with `self`."]
13630    fn visit_with(&self, visitor: &mut V) {
13631        <V as Visit>::visit_ts_constructor_type(visitor, self)
13632    }
13633
13634    fn visit_children_with(&self, visitor: &mut V) {
13635        match self {
13636            TsConstructorType {
13637                span,
13638                params,
13639                type_params,
13640                type_ann,
13641                is_abstract,
13642            } => {
13643                {
13644                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13645                };
13646                {
13647                    <Vec<TsFnParam> as VisitWith<V>>::visit_with(params, visitor)
13648                };
13649                {
13650                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
13651                };
13652                {
13653                    <Box<TsTypeAnn> as VisitWith<V>>::visit_with(type_ann, visitor)
13654                };
13655            }
13656        }
13657    }
13658}
13659impl<V: ?Sized + Visit> VisitWith<V> for TsEntityName {
13660    #[doc = "Calls [Visit`::visit_ts_entity_name`] with `self`."]
13661    fn visit_with(&self, visitor: &mut V) {
13662        <V as Visit>::visit_ts_entity_name(visitor, self)
13663    }
13664
13665    fn visit_children_with(&self, visitor: &mut V) {
13666        match self {
13667            TsEntityName::TsQualifiedName { 0: _field_0 } => {
13668                <Box<TsQualifiedName> as VisitWith<V>>::visit_with(_field_0, visitor);
13669            }
13670            TsEntityName::Ident { 0: _field_0 } => {
13671                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
13672            }
13673        }
13674    }
13675}
13676impl<V: ?Sized + Visit> VisitWith<V> for TsEnumDecl {
13677    #[doc = "Calls [Visit`::visit_ts_enum_decl`] with `self`."]
13678    fn visit_with(&self, visitor: &mut V) {
13679        <V as Visit>::visit_ts_enum_decl(visitor, self)
13680    }
13681
13682    fn visit_children_with(&self, visitor: &mut V) {
13683        match self {
13684            TsEnumDecl {
13685                span,
13686                declare,
13687                is_const,
13688                id,
13689                members,
13690            } => {
13691                {
13692                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13693                };
13694                {
13695                    <Ident as VisitWith<V>>::visit_with(id, visitor)
13696                };
13697                {
13698                    <Vec<TsEnumMember> as VisitWith<V>>::visit_with(members, visitor)
13699                };
13700            }
13701        }
13702    }
13703}
13704impl<V: ?Sized + Visit> VisitWith<V> for TsEnumMember {
13705    #[doc = "Calls [Visit`::visit_ts_enum_member`] with `self`."]
13706    fn visit_with(&self, visitor: &mut V) {
13707        <V as Visit>::visit_ts_enum_member(visitor, self)
13708    }
13709
13710    fn visit_children_with(&self, visitor: &mut V) {
13711        match self {
13712            TsEnumMember { span, id, init } => {
13713                {
13714                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13715                };
13716                {
13717                    <TsEnumMemberId as VisitWith<V>>::visit_with(id, visitor)
13718                };
13719                {
13720                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(init, visitor)
13721                };
13722            }
13723        }
13724    }
13725}
13726impl<V: ?Sized + Visit> VisitWith<V> for TsEnumMemberId {
13727    #[doc = "Calls [Visit`::visit_ts_enum_member_id`] with `self`."]
13728    fn visit_with(&self, visitor: &mut V) {
13729        <V as Visit>::visit_ts_enum_member_id(visitor, self)
13730    }
13731
13732    fn visit_children_with(&self, visitor: &mut V) {
13733        match self {
13734            TsEnumMemberId::Ident { 0: _field_0 } => {
13735                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
13736            }
13737            TsEnumMemberId::Str { 0: _field_0 } => {
13738                <Str as VisitWith<V>>::visit_with(_field_0, visitor);
13739            }
13740        }
13741    }
13742}
13743impl<V: ?Sized + Visit> VisitWith<V> for TsExportAssignment {
13744    #[doc = "Calls [Visit`::visit_ts_export_assignment`] with `self`."]
13745    fn visit_with(&self, visitor: &mut V) {
13746        <V as Visit>::visit_ts_export_assignment(visitor, self)
13747    }
13748
13749    fn visit_children_with(&self, visitor: &mut V) {
13750        match self {
13751            TsExportAssignment { span, expr } => {
13752                {
13753                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13754                };
13755                {
13756                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
13757                };
13758            }
13759        }
13760    }
13761}
13762impl<V: ?Sized + Visit> VisitWith<V> for TsExprWithTypeArgs {
13763    #[doc = "Calls [Visit`::visit_ts_expr_with_type_args`] with `self`."]
13764    fn visit_with(&self, visitor: &mut V) {
13765        <V as Visit>::visit_ts_expr_with_type_args(visitor, self)
13766    }
13767
13768    fn visit_children_with(&self, visitor: &mut V) {
13769        match self {
13770            TsExprWithTypeArgs {
13771                span,
13772                expr,
13773                type_args,
13774            } => {
13775                {
13776                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13777                };
13778                {
13779                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
13780                };
13781                {
13782                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
13783                        type_args, visitor,
13784                    )
13785                };
13786            }
13787        }
13788    }
13789}
13790impl<V: ?Sized + Visit> VisitWith<V> for TsExternalModuleRef {
13791    #[doc = "Calls [Visit`::visit_ts_external_module_ref`] with `self`."]
13792    fn visit_with(&self, visitor: &mut V) {
13793        <V as Visit>::visit_ts_external_module_ref(visitor, self)
13794    }
13795
13796    fn visit_children_with(&self, visitor: &mut V) {
13797        match self {
13798            TsExternalModuleRef { span, expr } => {
13799                {
13800                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13801                };
13802                {
13803                    <Str as VisitWith<V>>::visit_with(expr, visitor)
13804                };
13805            }
13806        }
13807    }
13808}
13809impl<V: ?Sized + Visit> VisitWith<V> for TsFnOrConstructorType {
13810    #[doc = "Calls [Visit`::visit_ts_fn_or_constructor_type`] with `self`."]
13811    fn visit_with(&self, visitor: &mut V) {
13812        <V as Visit>::visit_ts_fn_or_constructor_type(visitor, self)
13813    }
13814
13815    fn visit_children_with(&self, visitor: &mut V) {
13816        match self {
13817            TsFnOrConstructorType::TsFnType { 0: _field_0 } => {
13818                <TsFnType as VisitWith<V>>::visit_with(_field_0, visitor);
13819            }
13820            TsFnOrConstructorType::TsConstructorType { 0: _field_0 } => {
13821                <TsConstructorType as VisitWith<V>>::visit_with(_field_0, visitor);
13822            }
13823        }
13824    }
13825}
13826impl<V: ?Sized + Visit> VisitWith<V> for TsFnParam {
13827    #[doc = "Calls [Visit`::visit_ts_fn_param`] with `self`."]
13828    fn visit_with(&self, visitor: &mut V) {
13829        <V as Visit>::visit_ts_fn_param(visitor, self)
13830    }
13831
13832    fn visit_children_with(&self, visitor: &mut V) {
13833        match self {
13834            TsFnParam::Ident { 0: _field_0 } => {
13835                <BindingIdent as VisitWith<V>>::visit_with(_field_0, visitor);
13836            }
13837            TsFnParam::Array { 0: _field_0 } => {
13838                <ArrayPat as VisitWith<V>>::visit_with(_field_0, visitor);
13839            }
13840            TsFnParam::Rest { 0: _field_0 } => {
13841                <RestPat as VisitWith<V>>::visit_with(_field_0, visitor);
13842            }
13843            TsFnParam::Object { 0: _field_0 } => {
13844                <ObjectPat as VisitWith<V>>::visit_with(_field_0, visitor);
13845            }
13846        }
13847    }
13848}
13849impl<V: ?Sized + Visit> VisitWith<V> for TsFnType {
13850    #[doc = "Calls [Visit`::visit_ts_fn_type`] with `self`."]
13851    fn visit_with(&self, visitor: &mut V) {
13852        <V as Visit>::visit_ts_fn_type(visitor, self)
13853    }
13854
13855    fn visit_children_with(&self, visitor: &mut V) {
13856        match self {
13857            TsFnType {
13858                span,
13859                params,
13860                type_params,
13861                type_ann,
13862            } => {
13863                {
13864                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13865                };
13866                {
13867                    <Vec<TsFnParam> as VisitWith<V>>::visit_with(params, visitor)
13868                };
13869                {
13870                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
13871                };
13872                {
13873                    <Box<TsTypeAnn> as VisitWith<V>>::visit_with(type_ann, visitor)
13874                };
13875            }
13876        }
13877    }
13878}
13879impl<V: ?Sized + Visit> VisitWith<V> for TsGetterSignature {
13880    #[doc = "Calls [Visit`::visit_ts_getter_signature`] with `self`."]
13881    fn visit_with(&self, visitor: &mut V) {
13882        <V as Visit>::visit_ts_getter_signature(visitor, self)
13883    }
13884
13885    fn visit_children_with(&self, visitor: &mut V) {
13886        match self {
13887            TsGetterSignature {
13888                span,
13889                key,
13890                computed,
13891                type_ann,
13892            } => {
13893                {
13894                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13895                };
13896                {
13897                    <Box<Expr> as VisitWith<V>>::visit_with(key, visitor)
13898                };
13899                {
13900                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
13901                };
13902            }
13903        }
13904    }
13905}
13906impl<V: ?Sized + Visit> VisitWith<V> for TsImportCallOptions {
13907    #[doc = "Calls [Visit`::visit_ts_import_call_options`] with `self`."]
13908    fn visit_with(&self, visitor: &mut V) {
13909        <V as Visit>::visit_ts_import_call_options(visitor, self)
13910    }
13911
13912    fn visit_children_with(&self, visitor: &mut V) {
13913        match self {
13914            TsImportCallOptions { span, with } => {
13915                {
13916                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13917                };
13918                {
13919                    <Box<ObjectLit> as VisitWith<V>>::visit_with(with, visitor)
13920                };
13921            }
13922        }
13923    }
13924}
13925impl<V: ?Sized + Visit> VisitWith<V> for TsImportEqualsDecl {
13926    #[doc = "Calls [Visit`::visit_ts_import_equals_decl`] with `self`."]
13927    fn visit_with(&self, visitor: &mut V) {
13928        <V as Visit>::visit_ts_import_equals_decl(visitor, self)
13929    }
13930
13931    fn visit_children_with(&self, visitor: &mut V) {
13932        match self {
13933            TsImportEqualsDecl {
13934                span,
13935                is_export,
13936                is_type_only,
13937                id,
13938                module_ref,
13939            } => {
13940                {
13941                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13942                };
13943                {
13944                    <Ident as VisitWith<V>>::visit_with(id, visitor)
13945                };
13946                {
13947                    <TsModuleRef as VisitWith<V>>::visit_with(module_ref, visitor)
13948                };
13949            }
13950        }
13951    }
13952}
13953impl<V: ?Sized + Visit> VisitWith<V> for TsImportType {
13954    #[doc = "Calls [Visit`::visit_ts_import_type`] with `self`."]
13955    fn visit_with(&self, visitor: &mut V) {
13956        <V as Visit>::visit_ts_import_type(visitor, self)
13957    }
13958
13959    fn visit_children_with(&self, visitor: &mut V) {
13960        match self {
13961            TsImportType {
13962                span,
13963                arg,
13964                qualifier,
13965                type_args,
13966                attributes,
13967            } => {
13968                {
13969                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13970                };
13971                {
13972                    <Str as VisitWith<V>>::visit_with(arg, visitor)
13973                };
13974                {
13975                    <Option<TsEntityName> as VisitWith<V>>::visit_with(qualifier, visitor)
13976                };
13977                {
13978                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
13979                        type_args, visitor,
13980                    )
13981                };
13982                {
13983                    <Option<TsImportCallOptions> as VisitWith<V>>::visit_with(attributes, visitor)
13984                };
13985            }
13986        }
13987    }
13988}
13989impl<V: ?Sized + Visit> VisitWith<V> for TsIndexSignature {
13990    #[doc = "Calls [Visit`::visit_ts_index_signature`] with `self`."]
13991    fn visit_with(&self, visitor: &mut V) {
13992        <V as Visit>::visit_ts_index_signature(visitor, self)
13993    }
13994
13995    fn visit_children_with(&self, visitor: &mut V) {
13996        match self {
13997            TsIndexSignature {
13998                params,
13999                type_ann,
14000                readonly,
14001                is_static,
14002                span,
14003            } => {
14004                {
14005                    <Vec<TsFnParam> as VisitWith<V>>::visit_with(params, visitor)
14006                };
14007                {
14008                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
14009                };
14010                {
14011                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14012                };
14013            }
14014        }
14015    }
14016}
14017impl<V: ?Sized + Visit> VisitWith<V> for TsIndexedAccessType {
14018    #[doc = "Calls [Visit`::visit_ts_indexed_access_type`] with `self`."]
14019    fn visit_with(&self, visitor: &mut V) {
14020        <V as Visit>::visit_ts_indexed_access_type(visitor, self)
14021    }
14022
14023    fn visit_children_with(&self, visitor: &mut V) {
14024        match self {
14025            TsIndexedAccessType {
14026                span,
14027                readonly,
14028                obj_type,
14029                index_type,
14030            } => {
14031                {
14032                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14033                };
14034                {
14035                    <Box<TsType> as VisitWith<V>>::visit_with(obj_type, visitor)
14036                };
14037                {
14038                    <Box<TsType> as VisitWith<V>>::visit_with(index_type, visitor)
14039                };
14040            }
14041        }
14042    }
14043}
14044impl<V: ?Sized + Visit> VisitWith<V> for TsInferType {
14045    #[doc = "Calls [Visit`::visit_ts_infer_type`] with `self`."]
14046    fn visit_with(&self, visitor: &mut V) {
14047        <V as Visit>::visit_ts_infer_type(visitor, self)
14048    }
14049
14050    fn visit_children_with(&self, visitor: &mut V) {
14051        match self {
14052            TsInferType { span, type_param } => {
14053                {
14054                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14055                };
14056                {
14057                    <TsTypeParam as VisitWith<V>>::visit_with(type_param, visitor)
14058                };
14059            }
14060        }
14061    }
14062}
14063impl<V: ?Sized + Visit> VisitWith<V> for TsInstantiation {
14064    #[doc = "Calls [Visit`::visit_ts_instantiation`] with `self`."]
14065    fn visit_with(&self, visitor: &mut V) {
14066        <V as Visit>::visit_ts_instantiation(visitor, self)
14067    }
14068
14069    fn visit_children_with(&self, visitor: &mut V) {
14070        match self {
14071            TsInstantiation {
14072                span,
14073                expr,
14074                type_args,
14075            } => {
14076                {
14077                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14078                };
14079                {
14080                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
14081                };
14082                {
14083                    <Box<TsTypeParamInstantiation> as VisitWith<V>>::visit_with(type_args, visitor)
14084                };
14085            }
14086        }
14087    }
14088}
14089impl<V: ?Sized + Visit> VisitWith<V> for TsInterfaceBody {
14090    #[doc = "Calls [Visit`::visit_ts_interface_body`] with `self`."]
14091    fn visit_with(&self, visitor: &mut V) {
14092        <V as Visit>::visit_ts_interface_body(visitor, self)
14093    }
14094
14095    fn visit_children_with(&self, visitor: &mut V) {
14096        match self {
14097            TsInterfaceBody { span, body } => {
14098                {
14099                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14100                };
14101                {
14102                    <Vec<TsTypeElement> as VisitWith<V>>::visit_with(body, visitor)
14103                };
14104            }
14105        }
14106    }
14107}
14108impl<V: ?Sized + Visit> VisitWith<V> for TsInterfaceDecl {
14109    #[doc = "Calls [Visit`::visit_ts_interface_decl`] with `self`."]
14110    fn visit_with(&self, visitor: &mut V) {
14111        <V as Visit>::visit_ts_interface_decl(visitor, self)
14112    }
14113
14114    fn visit_children_with(&self, visitor: &mut V) {
14115        match self {
14116            TsInterfaceDecl {
14117                span,
14118                id,
14119                declare,
14120                type_params,
14121                extends,
14122                body,
14123            } => {
14124                {
14125                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14126                };
14127                {
14128                    <Ident as VisitWith<V>>::visit_with(id, visitor)
14129                };
14130                {
14131                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
14132                };
14133                {
14134                    <Vec<TsExprWithTypeArgs> as VisitWith<V>>::visit_with(extends, visitor)
14135                };
14136                {
14137                    <TsInterfaceBody as VisitWith<V>>::visit_with(body, visitor)
14138                };
14139            }
14140        }
14141    }
14142}
14143impl<V: ?Sized + Visit> VisitWith<V> for TsIntersectionType {
14144    #[doc = "Calls [Visit`::visit_ts_intersection_type`] with `self`."]
14145    fn visit_with(&self, visitor: &mut V) {
14146        <V as Visit>::visit_ts_intersection_type(visitor, self)
14147    }
14148
14149    fn visit_children_with(&self, visitor: &mut V) {
14150        match self {
14151            TsIntersectionType { span, types } => {
14152                {
14153                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14154                };
14155                {
14156                    <Vec<Box<TsType>> as VisitWith<V>>::visit_with(types, visitor)
14157                };
14158            }
14159        }
14160    }
14161}
14162impl<V: ?Sized + Visit> VisitWith<V> for TsKeywordType {
14163    #[doc = "Calls [Visit`::visit_ts_keyword_type`] with `self`."]
14164    fn visit_with(&self, visitor: &mut V) {
14165        <V as Visit>::visit_ts_keyword_type(visitor, self)
14166    }
14167
14168    fn visit_children_with(&self, visitor: &mut V) {
14169        match self {
14170            TsKeywordType { span, kind } => {
14171                {
14172                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14173                };
14174                {
14175                    <TsKeywordTypeKind as VisitWith<V>>::visit_with(kind, visitor)
14176                };
14177            }
14178        }
14179    }
14180}
14181impl<V: ?Sized + Visit> VisitWith<V> for TsKeywordTypeKind {
14182    #[doc = "Calls [Visit`::visit_ts_keyword_type_kind`] with `self`."]
14183    fn visit_with(&self, visitor: &mut V) {
14184        <V as Visit>::visit_ts_keyword_type_kind(visitor, self)
14185    }
14186
14187    fn visit_children_with(&self, visitor: &mut V) {
14188        match self {
14189            TsKeywordTypeKind::TsAnyKeyword => {}
14190            TsKeywordTypeKind::TsUnknownKeyword => {}
14191            TsKeywordTypeKind::TsNumberKeyword => {}
14192            TsKeywordTypeKind::TsObjectKeyword => {}
14193            TsKeywordTypeKind::TsBooleanKeyword => {}
14194            TsKeywordTypeKind::TsBigIntKeyword => {}
14195            TsKeywordTypeKind::TsStringKeyword => {}
14196            TsKeywordTypeKind::TsSymbolKeyword => {}
14197            TsKeywordTypeKind::TsVoidKeyword => {}
14198            TsKeywordTypeKind::TsUndefinedKeyword => {}
14199            TsKeywordTypeKind::TsNullKeyword => {}
14200            TsKeywordTypeKind::TsNeverKeyword => {}
14201            TsKeywordTypeKind::TsIntrinsicKeyword => {}
14202        }
14203    }
14204}
14205impl<V: ?Sized + Visit> VisitWith<V> for TsLit {
14206    #[doc = "Calls [Visit`::visit_ts_lit`] with `self`."]
14207    fn visit_with(&self, visitor: &mut V) {
14208        <V as Visit>::visit_ts_lit(visitor, self)
14209    }
14210
14211    fn visit_children_with(&self, visitor: &mut V) {
14212        match self {
14213            TsLit::Number { 0: _field_0 } => {
14214                <Number as VisitWith<V>>::visit_with(_field_0, visitor);
14215            }
14216            TsLit::Str { 0: _field_0 } => {
14217                <Str as VisitWith<V>>::visit_with(_field_0, visitor);
14218            }
14219            TsLit::Bool { 0: _field_0 } => {
14220                <Bool as VisitWith<V>>::visit_with(_field_0, visitor);
14221            }
14222            TsLit::BigInt { 0: _field_0 } => {
14223                <BigInt as VisitWith<V>>::visit_with(_field_0, visitor);
14224            }
14225            TsLit::Tpl { 0: _field_0 } => {
14226                <TsTplLitType as VisitWith<V>>::visit_with(_field_0, visitor);
14227            }
14228        }
14229    }
14230}
14231impl<V: ?Sized + Visit> VisitWith<V> for TsLitType {
14232    #[doc = "Calls [Visit`::visit_ts_lit_type`] with `self`."]
14233    fn visit_with(&self, visitor: &mut V) {
14234        <V as Visit>::visit_ts_lit_type(visitor, self)
14235    }
14236
14237    fn visit_children_with(&self, visitor: &mut V) {
14238        match self {
14239            TsLitType { span, lit } => {
14240                {
14241                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14242                };
14243                {
14244                    <TsLit as VisitWith<V>>::visit_with(lit, visitor)
14245                };
14246            }
14247        }
14248    }
14249}
14250impl<V: ?Sized + Visit> VisitWith<V> for TsMappedType {
14251    #[doc = "Calls [Visit`::visit_ts_mapped_type`] with `self`."]
14252    fn visit_with(&self, visitor: &mut V) {
14253        <V as Visit>::visit_ts_mapped_type(visitor, self)
14254    }
14255
14256    fn visit_children_with(&self, visitor: &mut V) {
14257        match self {
14258            TsMappedType {
14259                span,
14260                readonly,
14261                type_param,
14262                name_type,
14263                optional,
14264                type_ann,
14265            } => {
14266                {
14267                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14268                };
14269                {
14270                    <Option<TruePlusMinus> as VisitWith<V>>::visit_with(readonly, visitor)
14271                };
14272                {
14273                    <TsTypeParam as VisitWith<V>>::visit_with(type_param, visitor)
14274                };
14275                {
14276                    <Option<Box<TsType>> as VisitWith<V>>::visit_with(name_type, visitor)
14277                };
14278                {
14279                    <Option<TruePlusMinus> as VisitWith<V>>::visit_with(optional, visitor)
14280                };
14281                {
14282                    <Option<Box<TsType>> as VisitWith<V>>::visit_with(type_ann, visitor)
14283                };
14284            }
14285        }
14286    }
14287}
14288impl<V: ?Sized + Visit> VisitWith<V> for TsMethodSignature {
14289    #[doc = "Calls [Visit`::visit_ts_method_signature`] with `self`."]
14290    fn visit_with(&self, visitor: &mut V) {
14291        <V as Visit>::visit_ts_method_signature(visitor, self)
14292    }
14293
14294    fn visit_children_with(&self, visitor: &mut V) {
14295        match self {
14296            TsMethodSignature {
14297                span,
14298                key,
14299                computed,
14300                optional,
14301                params,
14302                type_ann,
14303                type_params,
14304            } => {
14305                {
14306                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14307                };
14308                {
14309                    <Box<Expr> as VisitWith<V>>::visit_with(key, visitor)
14310                };
14311                {
14312                    <Vec<TsFnParam> as VisitWith<V>>::visit_with(params, visitor)
14313                };
14314                {
14315                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
14316                };
14317                {
14318                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
14319                };
14320            }
14321        }
14322    }
14323}
14324impl<V: ?Sized + Visit> VisitWith<V> for TsModuleBlock {
14325    #[doc = "Calls [Visit`::visit_ts_module_block`] with `self`."]
14326    fn visit_with(&self, visitor: &mut V) {
14327        <V as Visit>::visit_ts_module_block(visitor, self)
14328    }
14329
14330    fn visit_children_with(&self, visitor: &mut V) {
14331        match self {
14332            TsModuleBlock { span, body } => {
14333                {
14334                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14335                };
14336                {
14337                    <Vec<ModuleItem> as VisitWith<V>>::visit_with(body, visitor)
14338                };
14339            }
14340        }
14341    }
14342}
14343impl<V: ?Sized + Visit> VisitWith<V> for TsModuleDecl {
14344    #[doc = "Calls [Visit`::visit_ts_module_decl`] with `self`."]
14345    fn visit_with(&self, visitor: &mut V) {
14346        <V as Visit>::visit_ts_module_decl(visitor, self)
14347    }
14348
14349    fn visit_children_with(&self, visitor: &mut V) {
14350        match self {
14351            TsModuleDecl {
14352                span,
14353                declare,
14354                global,
14355                namespace,
14356                id,
14357                body,
14358            } => {
14359                {
14360                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14361                };
14362                {
14363                    <TsModuleName as VisitWith<V>>::visit_with(id, visitor)
14364                };
14365                {
14366                    <Option<TsNamespaceBody> as VisitWith<V>>::visit_with(body, visitor)
14367                };
14368            }
14369        }
14370    }
14371}
14372impl<V: ?Sized + Visit> VisitWith<V> for TsModuleName {
14373    #[doc = "Calls [Visit`::visit_ts_module_name`] with `self`."]
14374    fn visit_with(&self, visitor: &mut V) {
14375        <V as Visit>::visit_ts_module_name(visitor, self)
14376    }
14377
14378    fn visit_children_with(&self, visitor: &mut V) {
14379        match self {
14380            TsModuleName::Ident { 0: _field_0 } => {
14381                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
14382            }
14383            TsModuleName::Str { 0: _field_0 } => {
14384                <Str as VisitWith<V>>::visit_with(_field_0, visitor);
14385            }
14386        }
14387    }
14388}
14389impl<V: ?Sized + Visit> VisitWith<V> for TsModuleRef {
14390    #[doc = "Calls [Visit`::visit_ts_module_ref`] with `self`."]
14391    fn visit_with(&self, visitor: &mut V) {
14392        <V as Visit>::visit_ts_module_ref(visitor, self)
14393    }
14394
14395    fn visit_children_with(&self, visitor: &mut V) {
14396        match self {
14397            TsModuleRef::TsEntityName { 0: _field_0 } => {
14398                <TsEntityName as VisitWith<V>>::visit_with(_field_0, visitor);
14399            }
14400            TsModuleRef::TsExternalModuleRef { 0: _field_0 } => {
14401                <TsExternalModuleRef as VisitWith<V>>::visit_with(_field_0, visitor);
14402            }
14403        }
14404    }
14405}
14406impl<V: ?Sized + Visit> VisitWith<V> for TsNamespaceBody {
14407    #[doc = "Calls [Visit`::visit_ts_namespace_body`] with `self`."]
14408    fn visit_with(&self, visitor: &mut V) {
14409        <V as Visit>::visit_ts_namespace_body(visitor, self)
14410    }
14411
14412    fn visit_children_with(&self, visitor: &mut V) {
14413        match self {
14414            TsNamespaceBody::TsModuleBlock { 0: _field_0 } => {
14415                <TsModuleBlock as VisitWith<V>>::visit_with(_field_0, visitor);
14416            }
14417            TsNamespaceBody::TsNamespaceDecl { 0: _field_0 } => {
14418                <TsNamespaceDecl as VisitWith<V>>::visit_with(_field_0, visitor);
14419            }
14420        }
14421    }
14422}
14423impl<V: ?Sized + Visit> VisitWith<V> for TsNamespaceDecl {
14424    #[doc = "Calls [Visit`::visit_ts_namespace_decl`] with `self`."]
14425    fn visit_with(&self, visitor: &mut V) {
14426        <V as Visit>::visit_ts_namespace_decl(visitor, self)
14427    }
14428
14429    fn visit_children_with(&self, visitor: &mut V) {
14430        match self {
14431            TsNamespaceDecl {
14432                span,
14433                declare,
14434                global,
14435                id,
14436                body,
14437            } => {
14438                {
14439                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14440                };
14441                {
14442                    <Ident as VisitWith<V>>::visit_with(id, visitor)
14443                };
14444                {
14445                    <Box<TsNamespaceBody> as VisitWith<V>>::visit_with(body, visitor)
14446                };
14447            }
14448        }
14449    }
14450}
14451impl<V: ?Sized + Visit> VisitWith<V> for TsNamespaceExportDecl {
14452    #[doc = "Calls [Visit`::visit_ts_namespace_export_decl`] with `self`."]
14453    fn visit_with(&self, visitor: &mut V) {
14454        <V as Visit>::visit_ts_namespace_export_decl(visitor, self)
14455    }
14456
14457    fn visit_children_with(&self, visitor: &mut V) {
14458        match self {
14459            TsNamespaceExportDecl { span, id } => {
14460                {
14461                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14462                };
14463                {
14464                    <Ident as VisitWith<V>>::visit_with(id, visitor)
14465                };
14466            }
14467        }
14468    }
14469}
14470impl<V: ?Sized + Visit> VisitWith<V> for TsNonNullExpr {
14471    #[doc = "Calls [Visit`::visit_ts_non_null_expr`] with `self`."]
14472    fn visit_with(&self, visitor: &mut V) {
14473        <V as Visit>::visit_ts_non_null_expr(visitor, self)
14474    }
14475
14476    fn visit_children_with(&self, visitor: &mut V) {
14477        match self {
14478            TsNonNullExpr { span, expr } => {
14479                {
14480                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14481                };
14482                {
14483                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
14484                };
14485            }
14486        }
14487    }
14488}
14489impl<V: ?Sized + Visit> VisitWith<V> for TsOptionalType {
14490    #[doc = "Calls [Visit`::visit_ts_optional_type`] with `self`."]
14491    fn visit_with(&self, visitor: &mut V) {
14492        <V as Visit>::visit_ts_optional_type(visitor, self)
14493    }
14494
14495    fn visit_children_with(&self, visitor: &mut V) {
14496        match self {
14497            TsOptionalType { span, type_ann } => {
14498                {
14499                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14500                };
14501                {
14502                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
14503                };
14504            }
14505        }
14506    }
14507}
14508impl<V: ?Sized + Visit> VisitWith<V> for TsParamProp {
14509    #[doc = "Calls [Visit`::visit_ts_param_prop`] with `self`."]
14510    fn visit_with(&self, visitor: &mut V) {
14511        <V as Visit>::visit_ts_param_prop(visitor, self)
14512    }
14513
14514    fn visit_children_with(&self, visitor: &mut V) {
14515        match self {
14516            TsParamProp {
14517                span,
14518                decorators,
14519                accessibility,
14520                is_override,
14521                readonly,
14522                param,
14523            } => {
14524                {
14525                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14526                };
14527                {
14528                    <Vec<Decorator> as VisitWith<V>>::visit_with(decorators, visitor)
14529                };
14530                {
14531                    <Option<Accessibility> as VisitWith<V>>::visit_with(accessibility, visitor)
14532                };
14533                {
14534                    <TsParamPropParam as VisitWith<V>>::visit_with(param, visitor)
14535                };
14536            }
14537        }
14538    }
14539}
14540impl<V: ?Sized + Visit> VisitWith<V> for TsParamPropParam {
14541    #[doc = "Calls [Visit`::visit_ts_param_prop_param`] with `self`."]
14542    fn visit_with(&self, visitor: &mut V) {
14543        <V as Visit>::visit_ts_param_prop_param(visitor, self)
14544    }
14545
14546    fn visit_children_with(&self, visitor: &mut V) {
14547        match self {
14548            TsParamPropParam::Ident { 0: _field_0 } => {
14549                <BindingIdent as VisitWith<V>>::visit_with(_field_0, visitor);
14550            }
14551            TsParamPropParam::Assign { 0: _field_0 } => {
14552                <AssignPat as VisitWith<V>>::visit_with(_field_0, visitor);
14553            }
14554        }
14555    }
14556}
14557impl<V: ?Sized + Visit> VisitWith<V> for TsParenthesizedType {
14558    #[doc = "Calls [Visit`::visit_ts_parenthesized_type`] with `self`."]
14559    fn visit_with(&self, visitor: &mut V) {
14560        <V as Visit>::visit_ts_parenthesized_type(visitor, self)
14561    }
14562
14563    fn visit_children_with(&self, visitor: &mut V) {
14564        match self {
14565            TsParenthesizedType { span, type_ann } => {
14566                {
14567                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14568                };
14569                {
14570                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
14571                };
14572            }
14573        }
14574    }
14575}
14576impl<V: ?Sized + Visit> VisitWith<V> for TsPropertySignature {
14577    #[doc = "Calls [Visit`::visit_ts_property_signature`] with `self`."]
14578    fn visit_with(&self, visitor: &mut V) {
14579        <V as Visit>::visit_ts_property_signature(visitor, self)
14580    }
14581
14582    fn visit_children_with(&self, visitor: &mut V) {
14583        match self {
14584            TsPropertySignature {
14585                span,
14586                readonly,
14587                key,
14588                computed,
14589                optional,
14590                type_ann,
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                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
14600                };
14601            }
14602        }
14603    }
14604}
14605impl<V: ?Sized + Visit> VisitWith<V> for TsQualifiedName {
14606    #[doc = "Calls [Visit`::visit_ts_qualified_name`] with `self`."]
14607    fn visit_with(&self, visitor: &mut V) {
14608        <V as Visit>::visit_ts_qualified_name(visitor, self)
14609    }
14610
14611    fn visit_children_with(&self, visitor: &mut V) {
14612        match self {
14613            TsQualifiedName { span, left, right } => {
14614                {
14615                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14616                };
14617                {
14618                    <TsEntityName as VisitWith<V>>::visit_with(left, visitor)
14619                };
14620                {
14621                    <IdentName as VisitWith<V>>::visit_with(right, visitor)
14622                };
14623            }
14624        }
14625    }
14626}
14627impl<V: ?Sized + Visit> VisitWith<V> for TsRestType {
14628    #[doc = "Calls [Visit`::visit_ts_rest_type`] with `self`."]
14629    fn visit_with(&self, visitor: &mut V) {
14630        <V as Visit>::visit_ts_rest_type(visitor, self)
14631    }
14632
14633    fn visit_children_with(&self, visitor: &mut V) {
14634        match self {
14635            TsRestType { span, type_ann } => {
14636                {
14637                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14638                };
14639                {
14640                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
14641                };
14642            }
14643        }
14644    }
14645}
14646impl<V: ?Sized + Visit> VisitWith<V> for TsSatisfiesExpr {
14647    #[doc = "Calls [Visit`::visit_ts_satisfies_expr`] with `self`."]
14648    fn visit_with(&self, visitor: &mut V) {
14649        <V as Visit>::visit_ts_satisfies_expr(visitor, self)
14650    }
14651
14652    fn visit_children_with(&self, visitor: &mut V) {
14653        match self {
14654            TsSatisfiesExpr {
14655                span,
14656                expr,
14657                type_ann,
14658            } => {
14659                {
14660                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14661                };
14662                {
14663                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
14664                };
14665                {
14666                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
14667                };
14668            }
14669        }
14670    }
14671}
14672impl<V: ?Sized + Visit> VisitWith<V> for TsSetterSignature {
14673    #[doc = "Calls [Visit`::visit_ts_setter_signature`] with `self`."]
14674    fn visit_with(&self, visitor: &mut V) {
14675        <V as Visit>::visit_ts_setter_signature(visitor, self)
14676    }
14677
14678    fn visit_children_with(&self, visitor: &mut V) {
14679        match self {
14680            TsSetterSignature {
14681                span,
14682                key,
14683                computed,
14684                param,
14685            } => {
14686                {
14687                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14688                };
14689                {
14690                    <Box<Expr> as VisitWith<V>>::visit_with(key, visitor)
14691                };
14692                {
14693                    <TsFnParam as VisitWith<V>>::visit_with(param, visitor)
14694                };
14695            }
14696        }
14697    }
14698}
14699impl<V: ?Sized + Visit> VisitWith<V> for TsThisType {
14700    #[doc = "Calls [Visit`::visit_ts_this_type`] with `self`."]
14701    fn visit_with(&self, visitor: &mut V) {
14702        <V as Visit>::visit_ts_this_type(visitor, self)
14703    }
14704
14705    fn visit_children_with(&self, visitor: &mut V) {
14706        match self {
14707            TsThisType { span } => {
14708                {
14709                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14710                };
14711            }
14712        }
14713    }
14714}
14715impl<V: ?Sized + Visit> VisitWith<V> for TsThisTypeOrIdent {
14716    #[doc = "Calls [Visit`::visit_ts_this_type_or_ident`] with `self`."]
14717    fn visit_with(&self, visitor: &mut V) {
14718        <V as Visit>::visit_ts_this_type_or_ident(visitor, self)
14719    }
14720
14721    fn visit_children_with(&self, visitor: &mut V) {
14722        match self {
14723            TsThisTypeOrIdent::TsThisType { 0: _field_0 } => {
14724                <TsThisType as VisitWith<V>>::visit_with(_field_0, visitor);
14725            }
14726            TsThisTypeOrIdent::Ident { 0: _field_0 } => {
14727                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
14728            }
14729        }
14730    }
14731}
14732impl<V: ?Sized + Visit> VisitWith<V> for TsTplLitType {
14733    #[doc = "Calls [Visit`::visit_ts_tpl_lit_type`] with `self`."]
14734    fn visit_with(&self, visitor: &mut V) {
14735        <V as Visit>::visit_ts_tpl_lit_type(visitor, self)
14736    }
14737
14738    fn visit_children_with(&self, visitor: &mut V) {
14739        match self {
14740            TsTplLitType {
14741                span,
14742                types,
14743                quasis,
14744            } => {
14745                {
14746                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14747                };
14748                {
14749                    <Vec<Box<TsType>> as VisitWith<V>>::visit_with(types, visitor)
14750                };
14751                {
14752                    <Vec<TplElement> as VisitWith<V>>::visit_with(quasis, visitor)
14753                };
14754            }
14755        }
14756    }
14757}
14758impl<V: ?Sized + Visit> VisitWith<V> for TsTupleElement {
14759    #[doc = "Calls [Visit`::visit_ts_tuple_element`] with `self`."]
14760    fn visit_with(&self, visitor: &mut V) {
14761        <V as Visit>::visit_ts_tuple_element(visitor, self)
14762    }
14763
14764    fn visit_children_with(&self, visitor: &mut V) {
14765        match self {
14766            TsTupleElement { span, label, ty } => {
14767                {
14768                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14769                };
14770                {
14771                    <Option<Pat> as VisitWith<V>>::visit_with(label, visitor)
14772                };
14773                {
14774                    <Box<TsType> as VisitWith<V>>::visit_with(ty, visitor)
14775                };
14776            }
14777        }
14778    }
14779}
14780impl<V: ?Sized + Visit> VisitWith<V> for TsTupleType {
14781    #[doc = "Calls [Visit`::visit_ts_tuple_type`] with `self`."]
14782    fn visit_with(&self, visitor: &mut V) {
14783        <V as Visit>::visit_ts_tuple_type(visitor, self)
14784    }
14785
14786    fn visit_children_with(&self, visitor: &mut V) {
14787        match self {
14788            TsTupleType { span, elem_types } => {
14789                {
14790                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14791                };
14792                {
14793                    <Vec<TsTupleElement> as VisitWith<V>>::visit_with(elem_types, visitor)
14794                };
14795            }
14796        }
14797    }
14798}
14799impl<V: ?Sized + Visit> VisitWith<V> for TsType {
14800    #[doc = "Calls [Visit`::visit_ts_type`] with `self`."]
14801    fn visit_with(&self, visitor: &mut V) {
14802        <V as Visit>::visit_ts_type(visitor, self)
14803    }
14804
14805    fn visit_children_with(&self, visitor: &mut V) {
14806        match self {
14807            TsType::TsKeywordType { 0: _field_0 } => {
14808                <TsKeywordType as VisitWith<V>>::visit_with(_field_0, visitor);
14809            }
14810            TsType::TsThisType { 0: _field_0 } => {
14811                <TsThisType as VisitWith<V>>::visit_with(_field_0, visitor);
14812            }
14813            TsType::TsFnOrConstructorType { 0: _field_0 } => {
14814                <TsFnOrConstructorType as VisitWith<V>>::visit_with(_field_0, visitor);
14815            }
14816            TsType::TsTypeRef { 0: _field_0 } => {
14817                <TsTypeRef as VisitWith<V>>::visit_with(_field_0, visitor);
14818            }
14819            TsType::TsTypeQuery { 0: _field_0 } => {
14820                <TsTypeQuery as VisitWith<V>>::visit_with(_field_0, visitor);
14821            }
14822            TsType::TsTypeLit { 0: _field_0 } => {
14823                <TsTypeLit as VisitWith<V>>::visit_with(_field_0, visitor);
14824            }
14825            TsType::TsArrayType { 0: _field_0 } => {
14826                <TsArrayType as VisitWith<V>>::visit_with(_field_0, visitor);
14827            }
14828            TsType::TsTupleType { 0: _field_0 } => {
14829                <TsTupleType as VisitWith<V>>::visit_with(_field_0, visitor);
14830            }
14831            TsType::TsOptionalType { 0: _field_0 } => {
14832                <TsOptionalType as VisitWith<V>>::visit_with(_field_0, visitor);
14833            }
14834            TsType::TsRestType { 0: _field_0 } => {
14835                <TsRestType as VisitWith<V>>::visit_with(_field_0, visitor);
14836            }
14837            TsType::TsUnionOrIntersectionType { 0: _field_0 } => {
14838                <TsUnionOrIntersectionType as VisitWith<V>>::visit_with(_field_0, visitor);
14839            }
14840            TsType::TsConditionalType { 0: _field_0 } => {
14841                <TsConditionalType as VisitWith<V>>::visit_with(_field_0, visitor);
14842            }
14843            TsType::TsInferType { 0: _field_0 } => {
14844                <TsInferType as VisitWith<V>>::visit_with(_field_0, visitor);
14845            }
14846            TsType::TsParenthesizedType { 0: _field_0 } => {
14847                <TsParenthesizedType as VisitWith<V>>::visit_with(_field_0, visitor);
14848            }
14849            TsType::TsTypeOperator { 0: _field_0 } => {
14850                <TsTypeOperator as VisitWith<V>>::visit_with(_field_0, visitor);
14851            }
14852            TsType::TsIndexedAccessType { 0: _field_0 } => {
14853                <TsIndexedAccessType as VisitWith<V>>::visit_with(_field_0, visitor);
14854            }
14855            TsType::TsMappedType { 0: _field_0 } => {
14856                <TsMappedType as VisitWith<V>>::visit_with(_field_0, visitor);
14857            }
14858            TsType::TsLitType { 0: _field_0 } => {
14859                <TsLitType as VisitWith<V>>::visit_with(_field_0, visitor);
14860            }
14861            TsType::TsTypePredicate { 0: _field_0 } => {
14862                <TsTypePredicate as VisitWith<V>>::visit_with(_field_0, visitor);
14863            }
14864            TsType::TsImportType { 0: _field_0 } => {
14865                <TsImportType as VisitWith<V>>::visit_with(_field_0, visitor);
14866            }
14867        }
14868    }
14869}
14870impl<V: ?Sized + Visit> VisitWith<V> for TsTypeAliasDecl {
14871    #[doc = "Calls [Visit`::visit_ts_type_alias_decl`] with `self`."]
14872    fn visit_with(&self, visitor: &mut V) {
14873        <V as Visit>::visit_ts_type_alias_decl(visitor, self)
14874    }
14875
14876    fn visit_children_with(&self, visitor: &mut V) {
14877        match self {
14878            TsTypeAliasDecl {
14879                span,
14880                declare,
14881                id,
14882                type_params,
14883                type_ann,
14884            } => {
14885                {
14886                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14887                };
14888                {
14889                    <Ident as VisitWith<V>>::visit_with(id, visitor)
14890                };
14891                {
14892                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
14893                };
14894                {
14895                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
14896                };
14897            }
14898        }
14899    }
14900}
14901impl<V: ?Sized + Visit> VisitWith<V> for TsTypeAnn {
14902    #[doc = "Calls [Visit`::visit_ts_type_ann`] with `self`."]
14903    fn visit_with(&self, visitor: &mut V) {
14904        <V as Visit>::visit_ts_type_ann(visitor, self)
14905    }
14906
14907    fn visit_children_with(&self, visitor: &mut V) {
14908        match self {
14909            TsTypeAnn { span, type_ann } => {
14910                {
14911                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14912                };
14913                {
14914                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
14915                };
14916            }
14917        }
14918    }
14919}
14920impl<V: ?Sized + Visit> VisitWith<V> for TsTypeAssertion {
14921    #[doc = "Calls [Visit`::visit_ts_type_assertion`] with `self`."]
14922    fn visit_with(&self, visitor: &mut V) {
14923        <V as Visit>::visit_ts_type_assertion(visitor, self)
14924    }
14925
14926    fn visit_children_with(&self, visitor: &mut V) {
14927        match self {
14928            TsTypeAssertion {
14929                span,
14930                expr,
14931                type_ann,
14932            } => {
14933                {
14934                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14935                };
14936                {
14937                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
14938                };
14939                {
14940                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
14941                };
14942            }
14943        }
14944    }
14945}
14946impl<V: ?Sized + Visit> VisitWith<V> for TsTypeElement {
14947    #[doc = "Calls [Visit`::visit_ts_type_element`] with `self`."]
14948    fn visit_with(&self, visitor: &mut V) {
14949        <V as Visit>::visit_ts_type_element(visitor, self)
14950    }
14951
14952    fn visit_children_with(&self, visitor: &mut V) {
14953        match self {
14954            TsTypeElement::TsCallSignatureDecl { 0: _field_0 } => {
14955                <TsCallSignatureDecl as VisitWith<V>>::visit_with(_field_0, visitor);
14956            }
14957            TsTypeElement::TsConstructSignatureDecl { 0: _field_0 } => {
14958                <TsConstructSignatureDecl as VisitWith<V>>::visit_with(_field_0, visitor);
14959            }
14960            TsTypeElement::TsPropertySignature { 0: _field_0 } => {
14961                <TsPropertySignature as VisitWith<V>>::visit_with(_field_0, visitor);
14962            }
14963            TsTypeElement::TsGetterSignature { 0: _field_0 } => {
14964                <TsGetterSignature as VisitWith<V>>::visit_with(_field_0, visitor);
14965            }
14966            TsTypeElement::TsSetterSignature { 0: _field_0 } => {
14967                <TsSetterSignature as VisitWith<V>>::visit_with(_field_0, visitor);
14968            }
14969            TsTypeElement::TsMethodSignature { 0: _field_0 } => {
14970                <TsMethodSignature as VisitWith<V>>::visit_with(_field_0, visitor);
14971            }
14972            TsTypeElement::TsIndexSignature { 0: _field_0 } => {
14973                <TsIndexSignature as VisitWith<V>>::visit_with(_field_0, visitor);
14974            }
14975        }
14976    }
14977}
14978impl<V: ?Sized + Visit> VisitWith<V> for TsTypeLit {
14979    #[doc = "Calls [Visit`::visit_ts_type_lit`] with `self`."]
14980    fn visit_with(&self, visitor: &mut V) {
14981        <V as Visit>::visit_ts_type_lit(visitor, self)
14982    }
14983
14984    fn visit_children_with(&self, visitor: &mut V) {
14985        match self {
14986            TsTypeLit { span, members } => {
14987                {
14988                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14989                };
14990                {
14991                    <Vec<TsTypeElement> as VisitWith<V>>::visit_with(members, visitor)
14992                };
14993            }
14994        }
14995    }
14996}
14997impl<V: ?Sized + Visit> VisitWith<V> for TsTypeOperator {
14998    #[doc = "Calls [Visit`::visit_ts_type_operator`] with `self`."]
14999    fn visit_with(&self, visitor: &mut V) {
15000        <V as Visit>::visit_ts_type_operator(visitor, self)
15001    }
15002
15003    fn visit_children_with(&self, visitor: &mut V) {
15004        match self {
15005            TsTypeOperator { span, op, type_ann } => {
15006                {
15007                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15008                };
15009                {
15010                    <TsTypeOperatorOp as VisitWith<V>>::visit_with(op, visitor)
15011                };
15012                {
15013                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
15014                };
15015            }
15016        }
15017    }
15018}
15019impl<V: ?Sized + Visit> VisitWith<V> for TsTypeOperatorOp {
15020    #[doc = "Calls [Visit`::visit_ts_type_operator_op`] with `self`."]
15021    fn visit_with(&self, visitor: &mut V) {
15022        <V as Visit>::visit_ts_type_operator_op(visitor, self)
15023    }
15024
15025    fn visit_children_with(&self, visitor: &mut V) {
15026        match self {
15027            TsTypeOperatorOp::KeyOf => {}
15028            TsTypeOperatorOp::Unique => {}
15029            TsTypeOperatorOp::ReadOnly => {}
15030        }
15031    }
15032}
15033impl<V: ?Sized + Visit> VisitWith<V> for TsTypeParam {
15034    #[doc = "Calls [Visit`::visit_ts_type_param`] with `self`."]
15035    fn visit_with(&self, visitor: &mut V) {
15036        <V as Visit>::visit_ts_type_param(visitor, self)
15037    }
15038
15039    fn visit_children_with(&self, visitor: &mut V) {
15040        match self {
15041            TsTypeParam {
15042                span,
15043                name,
15044                is_in,
15045                is_out,
15046                is_const,
15047                constraint,
15048                default,
15049            } => {
15050                {
15051                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15052                };
15053                {
15054                    <Ident as VisitWith<V>>::visit_with(name, visitor)
15055                };
15056                {
15057                    <Option<Box<TsType>> as VisitWith<V>>::visit_with(constraint, visitor)
15058                };
15059                {
15060                    <Option<Box<TsType>> as VisitWith<V>>::visit_with(default, visitor)
15061                };
15062            }
15063        }
15064    }
15065}
15066impl<V: ?Sized + Visit> VisitWith<V> for TsTypeParamDecl {
15067    #[doc = "Calls [Visit`::visit_ts_type_param_decl`] with `self`."]
15068    fn visit_with(&self, visitor: &mut V) {
15069        <V as Visit>::visit_ts_type_param_decl(visitor, self)
15070    }
15071
15072    fn visit_children_with(&self, visitor: &mut V) {
15073        match self {
15074            TsTypeParamDecl { span, params } => {
15075                {
15076                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15077                };
15078                {
15079                    <Vec<TsTypeParam> as VisitWith<V>>::visit_with(params, visitor)
15080                };
15081            }
15082        }
15083    }
15084}
15085impl<V: ?Sized + Visit> VisitWith<V> for TsTypeParamInstantiation {
15086    #[doc = "Calls [Visit`::visit_ts_type_param_instantiation`] with `self`."]
15087    fn visit_with(&self, visitor: &mut V) {
15088        <V as Visit>::visit_ts_type_param_instantiation(visitor, self)
15089    }
15090
15091    fn visit_children_with(&self, visitor: &mut V) {
15092        match self {
15093            TsTypeParamInstantiation { span, params } => {
15094                {
15095                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15096                };
15097                {
15098                    <Vec<Box<TsType>> as VisitWith<V>>::visit_with(params, visitor)
15099                };
15100            }
15101        }
15102    }
15103}
15104impl<V: ?Sized + Visit> VisitWith<V> for TsTypePredicate {
15105    #[doc = "Calls [Visit`::visit_ts_type_predicate`] with `self`."]
15106    fn visit_with(&self, visitor: &mut V) {
15107        <V as Visit>::visit_ts_type_predicate(visitor, self)
15108    }
15109
15110    fn visit_children_with(&self, visitor: &mut V) {
15111        match self {
15112            TsTypePredicate {
15113                span,
15114                asserts,
15115                param_name,
15116                type_ann,
15117            } => {
15118                {
15119                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15120                };
15121                {
15122                    <TsThisTypeOrIdent as VisitWith<V>>::visit_with(param_name, visitor)
15123                };
15124                {
15125                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
15126                };
15127            }
15128        }
15129    }
15130}
15131impl<V: ?Sized + Visit> VisitWith<V> for TsTypeQuery {
15132    #[doc = "Calls [Visit`::visit_ts_type_query`] with `self`."]
15133    fn visit_with(&self, visitor: &mut V) {
15134        <V as Visit>::visit_ts_type_query(visitor, self)
15135    }
15136
15137    fn visit_children_with(&self, visitor: &mut V) {
15138        match self {
15139            TsTypeQuery {
15140                span,
15141                expr_name,
15142                type_args,
15143            } => {
15144                {
15145                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15146                };
15147                {
15148                    <TsTypeQueryExpr as VisitWith<V>>::visit_with(expr_name, visitor)
15149                };
15150                {
15151                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
15152                        type_args, visitor,
15153                    )
15154                };
15155            }
15156        }
15157    }
15158}
15159impl<V: ?Sized + Visit> VisitWith<V> for TsTypeQueryExpr {
15160    #[doc = "Calls [Visit`::visit_ts_type_query_expr`] with `self`."]
15161    fn visit_with(&self, visitor: &mut V) {
15162        <V as Visit>::visit_ts_type_query_expr(visitor, self)
15163    }
15164
15165    fn visit_children_with(&self, visitor: &mut V) {
15166        match self {
15167            TsTypeQueryExpr::TsEntityName { 0: _field_0 } => {
15168                <TsEntityName as VisitWith<V>>::visit_with(_field_0, visitor);
15169            }
15170            TsTypeQueryExpr::Import { 0: _field_0 } => {
15171                <TsImportType as VisitWith<V>>::visit_with(_field_0, visitor);
15172            }
15173        }
15174    }
15175}
15176impl<V: ?Sized + Visit> VisitWith<V> for TsTypeRef {
15177    #[doc = "Calls [Visit`::visit_ts_type_ref`] with `self`."]
15178    fn visit_with(&self, visitor: &mut V) {
15179        <V as Visit>::visit_ts_type_ref(visitor, self)
15180    }
15181
15182    fn visit_children_with(&self, visitor: &mut V) {
15183        match self {
15184            TsTypeRef {
15185                span,
15186                type_name,
15187                type_params,
15188            } => {
15189                {
15190                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15191                };
15192                {
15193                    <TsEntityName as VisitWith<V>>::visit_with(type_name, visitor)
15194                };
15195                {
15196                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
15197                        type_params,
15198                        visitor,
15199                    )
15200                };
15201            }
15202        }
15203    }
15204}
15205impl<V: ?Sized + Visit> VisitWith<V> for TsUnionOrIntersectionType {
15206    #[doc = "Calls [Visit`::visit_ts_union_or_intersection_type`] with `self`."]
15207    fn visit_with(&self, visitor: &mut V) {
15208        <V as Visit>::visit_ts_union_or_intersection_type(visitor, self)
15209    }
15210
15211    fn visit_children_with(&self, visitor: &mut V) {
15212        match self {
15213            TsUnionOrIntersectionType::TsUnionType { 0: _field_0 } => {
15214                <TsUnionType as VisitWith<V>>::visit_with(_field_0, visitor);
15215            }
15216            TsUnionOrIntersectionType::TsIntersectionType { 0: _field_0 } => {
15217                <TsIntersectionType as VisitWith<V>>::visit_with(_field_0, visitor);
15218            }
15219        }
15220    }
15221}
15222impl<V: ?Sized + Visit> VisitWith<V> for TsUnionType {
15223    #[doc = "Calls [Visit`::visit_ts_union_type`] with `self`."]
15224    fn visit_with(&self, visitor: &mut V) {
15225        <V as Visit>::visit_ts_union_type(visitor, self)
15226    }
15227
15228    fn visit_children_with(&self, visitor: &mut V) {
15229        match self {
15230            TsUnionType { span, types } => {
15231                {
15232                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15233                };
15234                {
15235                    <Vec<Box<TsType>> as VisitWith<V>>::visit_with(types, visitor)
15236                };
15237            }
15238        }
15239    }
15240}
15241impl<V: ?Sized + Visit> VisitWith<V> for UnaryExpr {
15242    #[doc = "Calls [Visit`::visit_unary_expr`] with `self`."]
15243    fn visit_with(&self, visitor: &mut V) {
15244        <V as Visit>::visit_unary_expr(visitor, self)
15245    }
15246
15247    fn visit_children_with(&self, visitor: &mut V) {
15248        match self {
15249            UnaryExpr { span, op, arg } => {
15250                {
15251                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15252                };
15253                {
15254                    <UnaryOp as VisitWith<V>>::visit_with(op, visitor)
15255                };
15256                {
15257                    <Box<Expr> as VisitWith<V>>::visit_with(arg, visitor)
15258                };
15259            }
15260        }
15261    }
15262}
15263impl<V: ?Sized + Visit> VisitWith<V> for UnaryOp {
15264    #[doc = "Calls [Visit`::visit_unary_op`] with `self`."]
15265    fn visit_with(&self, visitor: &mut V) {
15266        <V as Visit>::visit_unary_op(visitor, self)
15267    }
15268
15269    fn visit_children_with(&self, visitor: &mut V) {
15270        match self {
15271            UnaryOp::Minus => {}
15272            UnaryOp::Plus => {}
15273            UnaryOp::Bang => {}
15274            UnaryOp::Tilde => {}
15275            UnaryOp::TypeOf => {}
15276            UnaryOp::Void => {}
15277            UnaryOp::Delete => {}
15278        }
15279    }
15280}
15281impl<V: ?Sized + Visit> VisitWith<V> for UpdateExpr {
15282    #[doc = "Calls [Visit`::visit_update_expr`] with `self`."]
15283    fn visit_with(&self, visitor: &mut V) {
15284        <V as Visit>::visit_update_expr(visitor, self)
15285    }
15286
15287    fn visit_children_with(&self, visitor: &mut V) {
15288        match self {
15289            UpdateExpr {
15290                span,
15291                op,
15292                prefix,
15293                arg,
15294            } => {
15295                {
15296                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15297                };
15298                {
15299                    <UpdateOp as VisitWith<V>>::visit_with(op, visitor)
15300                };
15301                {
15302                    <Box<Expr> as VisitWith<V>>::visit_with(arg, visitor)
15303                };
15304            }
15305        }
15306    }
15307}
15308impl<V: ?Sized + Visit> VisitWith<V> for UpdateOp {
15309    #[doc = "Calls [Visit`::visit_update_op`] with `self`."]
15310    fn visit_with(&self, visitor: &mut V) {
15311        <V as Visit>::visit_update_op(visitor, self)
15312    }
15313
15314    fn visit_children_with(&self, visitor: &mut V) {
15315        match self {
15316            UpdateOp::PlusPlus => {}
15317            UpdateOp::MinusMinus => {}
15318        }
15319    }
15320}
15321impl<V: ?Sized + Visit> VisitWith<V> for UsingDecl {
15322    #[doc = "Calls [Visit`::visit_using_decl`] with `self`."]
15323    fn visit_with(&self, visitor: &mut V) {
15324        <V as Visit>::visit_using_decl(visitor, self)
15325    }
15326
15327    fn visit_children_with(&self, visitor: &mut V) {
15328        match self {
15329            UsingDecl {
15330                span,
15331                is_await,
15332                decls,
15333            } => {
15334                {
15335                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15336                };
15337                {
15338                    <Vec<VarDeclarator> as VisitWith<V>>::visit_with(decls, visitor)
15339                };
15340            }
15341        }
15342    }
15343}
15344impl<V: ?Sized + Visit> VisitWith<V> for VarDecl {
15345    #[doc = "Calls [Visit`::visit_var_decl`] with `self`."]
15346    fn visit_with(&self, visitor: &mut V) {
15347        <V as Visit>::visit_var_decl(visitor, self)
15348    }
15349
15350    fn visit_children_with(&self, visitor: &mut V) {
15351        match self {
15352            VarDecl {
15353                span,
15354                ctxt,
15355                kind,
15356                declare,
15357                decls,
15358            } => {
15359                {
15360                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15361                };
15362                {
15363                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
15364                };
15365                {
15366                    <VarDeclKind as VisitWith<V>>::visit_with(kind, visitor)
15367                };
15368                {
15369                    <Vec<VarDeclarator> as VisitWith<V>>::visit_with(decls, visitor)
15370                };
15371            }
15372        }
15373    }
15374}
15375impl<V: ?Sized + Visit> VisitWith<V> for VarDeclKind {
15376    #[doc = "Calls [Visit`::visit_var_decl_kind`] with `self`."]
15377    fn visit_with(&self, visitor: &mut V) {
15378        <V as Visit>::visit_var_decl_kind(visitor, self)
15379    }
15380
15381    fn visit_children_with(&self, visitor: &mut V) {
15382        match self {
15383            VarDeclKind::Var => {}
15384            VarDeclKind::Let => {}
15385            VarDeclKind::Const => {}
15386        }
15387    }
15388}
15389impl<V: ?Sized + Visit> VisitWith<V> for VarDeclOrExpr {
15390    #[doc = "Calls [Visit`::visit_var_decl_or_expr`] with `self`."]
15391    fn visit_with(&self, visitor: &mut V) {
15392        <V as Visit>::visit_var_decl_or_expr(visitor, self)
15393    }
15394
15395    fn visit_children_with(&self, visitor: &mut V) {
15396        match self {
15397            VarDeclOrExpr::VarDecl { 0: _field_0 } => {
15398                <Box<VarDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
15399            }
15400            VarDeclOrExpr::Expr { 0: _field_0 } => {
15401                <Box<Expr> as VisitWith<V>>::visit_with(_field_0, visitor);
15402            }
15403        }
15404    }
15405}
15406impl<V: ?Sized + Visit> VisitWith<V> for VarDeclarator {
15407    #[doc = "Calls [Visit`::visit_var_declarator`] with `self`."]
15408    fn visit_with(&self, visitor: &mut V) {
15409        <V as Visit>::visit_var_declarator(visitor, self)
15410    }
15411
15412    fn visit_children_with(&self, visitor: &mut V) {
15413        match self {
15414            VarDeclarator {
15415                span,
15416                name,
15417                init,
15418                definite,
15419            } => {
15420                {
15421                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15422                };
15423                {
15424                    <Pat as VisitWith<V>>::visit_with(name, visitor)
15425                };
15426                {
15427                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(init, visitor)
15428                };
15429            }
15430        }
15431    }
15432}
15433impl<V: ?Sized + Visit> VisitWith<V> for WhileStmt {
15434    #[doc = "Calls [Visit`::visit_while_stmt`] with `self`."]
15435    fn visit_with(&self, visitor: &mut V) {
15436        <V as Visit>::visit_while_stmt(visitor, self)
15437    }
15438
15439    fn visit_children_with(&self, visitor: &mut V) {
15440        match self {
15441            WhileStmt { span, test, body } => {
15442                {
15443                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15444                };
15445                {
15446                    <Box<Expr> as VisitWith<V>>::visit_with(test, visitor)
15447                };
15448                {
15449                    <Box<Stmt> as VisitWith<V>>::visit_with(body, visitor)
15450                };
15451            }
15452        }
15453    }
15454}
15455impl<V: ?Sized + Visit> VisitWith<V> for WithStmt {
15456    #[doc = "Calls [Visit`::visit_with_stmt`] with `self`."]
15457    fn visit_with(&self, visitor: &mut V) {
15458        <V as Visit>::visit_with_stmt(visitor, self)
15459    }
15460
15461    fn visit_children_with(&self, visitor: &mut V) {
15462        match self {
15463            WithStmt { span, obj, body } => {
15464                {
15465                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15466                };
15467                {
15468                    <Box<Expr> as VisitWith<V>>::visit_with(obj, visitor)
15469                };
15470                {
15471                    <Box<Stmt> as VisitWith<V>>::visit_with(body, visitor)
15472                };
15473            }
15474        }
15475    }
15476}
15477impl<V: ?Sized + Visit> VisitWith<V> for YieldExpr {
15478    #[doc = "Calls [Visit`::visit_yield_expr`] with `self`."]
15479    fn visit_with(&self, visitor: &mut V) {
15480        <V as Visit>::visit_yield_expr(visitor, self)
15481    }
15482
15483    fn visit_children_with(&self, visitor: &mut V) {
15484        match self {
15485            YieldExpr {
15486                span,
15487                arg,
15488                delegate,
15489            } => {
15490                {
15491                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15492                };
15493                {
15494                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(arg, visitor)
15495                };
15496            }
15497        }
15498    }
15499}
15500impl<V: ?Sized + Visit> VisitWith<V> for swc_atoms::Atom {
15501    #[doc = "Calls [Visit`::visit_atom`] with `self`. (Extra impl)"]
15502    #[inline]
15503    fn visit_with(&self, visitor: &mut V) {
15504        <V as Visit>::visit_atom(visitor, self)
15505    }
15506
15507    #[inline]
15508    fn visit_children_with(&self, visitor: &mut V) {
15509        {}
15510    }
15511}
15512impl<V: ?Sized + Visit> VisitWith<V> for BigIntValue {
15513    #[doc = "Calls [Visit`::visit_big_int_value`] with `self`. (Extra impl)"]
15514    #[inline]
15515    fn visit_with(&self, visitor: &mut V) {
15516        <V as Visit>::visit_big_int_value(visitor, self)
15517    }
15518
15519    #[inline]
15520    fn visit_children_with(&self, visitor: &mut V) {
15521        {}
15522    }
15523}
15524impl<V: ?Sized + Visit> VisitWith<V> for [ClassMember] {
15525    #[doc = "Calls [Visit`::visit_class_members`] with `self`. (Extra impl)"]
15526    #[inline]
15527    fn visit_with(&self, visitor: &mut V) {
15528        <V as Visit>::visit_class_members(visitor, self)
15529    }
15530
15531    #[inline]
15532    fn visit_children_with(&self, visitor: &mut V) {
15533        self.iter()
15534            .for_each(|item| <ClassMember as VisitWith<V>>::visit_with(item, visitor))
15535    }
15536}
15537impl<V: ?Sized + Visit> VisitWith<V> for [Decorator] {
15538    #[doc = "Calls [Visit`::visit_decorators`] with `self`. (Extra impl)"]
15539    #[inline]
15540    fn visit_with(&self, visitor: &mut V) {
15541        <V as Visit>::visit_decorators(visitor, self)
15542    }
15543
15544    #[inline]
15545    fn visit_children_with(&self, visitor: &mut V) {
15546        self.iter()
15547            .for_each(|item| <Decorator as VisitWith<V>>::visit_with(item, visitor))
15548    }
15549}
15550impl<V: ?Sized + Visit> VisitWith<V> for [ExportSpecifier] {
15551    #[doc = "Calls [Visit`::visit_export_specifiers`] with `self`. (Extra impl)"]
15552    #[inline]
15553    fn visit_with(&self, visitor: &mut V) {
15554        <V as Visit>::visit_export_specifiers(visitor, self)
15555    }
15556
15557    #[inline]
15558    fn visit_children_with(&self, visitor: &mut V) {
15559        self.iter()
15560            .for_each(|item| <ExportSpecifier as VisitWith<V>>::visit_with(item, visitor))
15561    }
15562}
15563impl<V: ?Sized + Visit> VisitWith<V> for [ExprOrSpread] {
15564    #[doc = "Calls [Visit`::visit_expr_or_spreads`] with `self`. (Extra impl)"]
15565    #[inline]
15566    fn visit_with(&self, visitor: &mut V) {
15567        <V as Visit>::visit_expr_or_spreads(visitor, self)
15568    }
15569
15570    #[inline]
15571    fn visit_children_with(&self, visitor: &mut V) {
15572        self.iter()
15573            .for_each(|item| <ExprOrSpread as VisitWith<V>>::visit_with(item, visitor))
15574    }
15575}
15576impl<V: ?Sized + Visit> VisitWith<V> for [Box<Expr>] {
15577    #[doc = "Calls [Visit`::visit_exprs`] with `self`. (Extra impl)"]
15578    #[inline]
15579    fn visit_with(&self, visitor: &mut V) {
15580        <V as Visit>::visit_exprs(visitor, self)
15581    }
15582
15583    #[inline]
15584    fn visit_children_with(&self, visitor: &mut V) {
15585        self.iter()
15586            .for_each(|item| <Box<Expr> as VisitWith<V>>::visit_with(item, visitor))
15587    }
15588}
15589impl<V: ?Sized + Visit> VisitWith<V> for [ImportSpecifier] {
15590    #[doc = "Calls [Visit`::visit_import_specifiers`] with `self`. (Extra impl)"]
15591    #[inline]
15592    fn visit_with(&self, visitor: &mut V) {
15593        <V as Visit>::visit_import_specifiers(visitor, self)
15594    }
15595
15596    #[inline]
15597    fn visit_children_with(&self, visitor: &mut V) {
15598        self.iter()
15599            .for_each(|item| <ImportSpecifier as VisitWith<V>>::visit_with(item, visitor))
15600    }
15601}
15602impl<V: ?Sized + Visit> VisitWith<V> for [ImportWithItem] {
15603    #[doc = "Calls [Visit`::visit_import_with_items`] with `self`. (Extra impl)"]
15604    #[inline]
15605    fn visit_with(&self, visitor: &mut V) {
15606        <V as Visit>::visit_import_with_items(visitor, self)
15607    }
15608
15609    #[inline]
15610    fn visit_children_with(&self, visitor: &mut V) {
15611        self.iter()
15612            .for_each(|item| <ImportWithItem as VisitWith<V>>::visit_with(item, visitor))
15613    }
15614}
15615impl<V: ?Sized + Visit> VisitWith<V> for [JSXAttrOrSpread] {
15616    #[doc = "Calls [Visit`::visit_jsx_attr_or_spreads`] with `self`. (Extra impl)"]
15617    #[inline]
15618    fn visit_with(&self, visitor: &mut V) {
15619        <V as Visit>::visit_jsx_attr_or_spreads(visitor, self)
15620    }
15621
15622    #[inline]
15623    fn visit_children_with(&self, visitor: &mut V) {
15624        self.iter()
15625            .for_each(|item| <JSXAttrOrSpread as VisitWith<V>>::visit_with(item, visitor))
15626    }
15627}
15628impl<V: ?Sized + Visit> VisitWith<V> for [JSXElementChild] {
15629    #[doc = "Calls [Visit`::visit_jsx_element_childs`] with `self`. (Extra impl)"]
15630    #[inline]
15631    fn visit_with(&self, visitor: &mut V) {
15632        <V as Visit>::visit_jsx_element_childs(visitor, self)
15633    }
15634
15635    #[inline]
15636    fn visit_children_with(&self, visitor: &mut V) {
15637        self.iter()
15638            .for_each(|item| <JSXElementChild as VisitWith<V>>::visit_with(item, visitor))
15639    }
15640}
15641impl<V: ?Sized + Visit> VisitWith<V> for [ModuleItem] {
15642    #[doc = "Calls [Visit`::visit_module_items`] with `self`. (Extra impl)"]
15643    #[inline]
15644    fn visit_with(&self, visitor: &mut V) {
15645        <V as Visit>::visit_module_items(visitor, self)
15646    }
15647
15648    #[inline]
15649    fn visit_children_with(&self, visitor: &mut V) {
15650        self.iter()
15651            .for_each(|item| <ModuleItem as VisitWith<V>>::visit_with(item, visitor))
15652    }
15653}
15654impl<V: ?Sized + Visit> VisitWith<V> for [ObjectPatProp] {
15655    #[doc = "Calls [Visit`::visit_object_pat_props`] with `self`. (Extra impl)"]
15656    #[inline]
15657    fn visit_with(&self, visitor: &mut V) {
15658        <V as Visit>::visit_object_pat_props(visitor, self)
15659    }
15660
15661    #[inline]
15662    fn visit_children_with(&self, visitor: &mut V) {
15663        self.iter()
15664            .for_each(|item| <ObjectPatProp as VisitWith<V>>::visit_with(item, visitor))
15665    }
15666}
15667impl<V: ?Sized + Visit> VisitWith<V> for Option<Accessibility> {
15668    #[doc = "Calls [Visit`::visit_opt_accessibility`] with `self`. (Extra impl)"]
15669    #[inline]
15670    fn visit_with(&self, visitor: &mut V) {
15671        <V as Visit>::visit_opt_accessibility(visitor, self)
15672    }
15673
15674    #[inline]
15675    fn visit_children_with(&self, visitor: &mut V) {
15676        match self {
15677            Some(inner) => <Accessibility as VisitWith<V>>::visit_with(inner, visitor),
15678            None => {}
15679        }
15680    }
15681}
15682impl<V: ?Sized + Visit> VisitWith<V> for Option<swc_atoms::Atom> {
15683    #[doc = "Calls [Visit`::visit_opt_atom`] with `self`. (Extra impl)"]
15684    #[inline]
15685    fn visit_with(&self, visitor: &mut V) {
15686        <V as Visit>::visit_opt_atom(visitor, self)
15687    }
15688
15689    #[inline]
15690    fn visit_children_with(&self, visitor: &mut V) {
15691        match self {
15692            Some(inner) => <swc_atoms::Atom as VisitWith<V>>::visit_with(inner, visitor),
15693            None => {}
15694        }
15695    }
15696}
15697impl<V: ?Sized + Visit> VisitWith<V> for Option<BlockStmt> {
15698    #[doc = "Calls [Visit`::visit_opt_block_stmt`] with `self`. (Extra impl)"]
15699    #[inline]
15700    fn visit_with(&self, visitor: &mut V) {
15701        <V as Visit>::visit_opt_block_stmt(visitor, self)
15702    }
15703
15704    #[inline]
15705    fn visit_children_with(&self, visitor: &mut V) {
15706        match self {
15707            Some(inner) => <BlockStmt as VisitWith<V>>::visit_with(inner, visitor),
15708            None => {}
15709        }
15710    }
15711}
15712impl<V: ?Sized + Visit> VisitWith<V> for Option<CatchClause> {
15713    #[doc = "Calls [Visit`::visit_opt_catch_clause`] with `self`. (Extra impl)"]
15714    #[inline]
15715    fn visit_with(&self, visitor: &mut V) {
15716        <V as Visit>::visit_opt_catch_clause(visitor, self)
15717    }
15718
15719    #[inline]
15720    fn visit_children_with(&self, visitor: &mut V) {
15721        match self {
15722            Some(inner) => <CatchClause as VisitWith<V>>::visit_with(inner, visitor),
15723            None => {}
15724        }
15725    }
15726}
15727impl<V: ?Sized + Visit> VisitWith<V> for Option<Box<Expr>> {
15728    #[doc = "Calls [Visit`::visit_opt_expr`] with `self`. (Extra impl)"]
15729    #[inline]
15730    fn visit_with(&self, visitor: &mut V) {
15731        <V as Visit>::visit_opt_expr(visitor, self)
15732    }
15733
15734    #[inline]
15735    fn visit_children_with(&self, visitor: &mut V) {
15736        match self {
15737            Some(inner) => <Box<Expr> as VisitWith<V>>::visit_with(inner, visitor),
15738            None => {}
15739        }
15740    }
15741}
15742impl<V: ?Sized + Visit> VisitWith<V> for Option<ExprOrSpread> {
15743    #[doc = "Calls [Visit`::visit_opt_expr_or_spread`] with `self`. (Extra impl)"]
15744    #[inline]
15745    fn visit_with(&self, visitor: &mut V) {
15746        <V as Visit>::visit_opt_expr_or_spread(visitor, self)
15747    }
15748
15749    #[inline]
15750    fn visit_children_with(&self, visitor: &mut V) {
15751        match self {
15752            Some(inner) => <ExprOrSpread as VisitWith<V>>::visit_with(inner, visitor),
15753            None => {}
15754        }
15755    }
15756}
15757impl<V: ?Sized + Visit> VisitWith<V> for Option<Vec<ExprOrSpread>> {
15758    #[doc = "Calls [Visit`::visit_opt_expr_or_spreads`] with `self`. (Extra impl)"]
15759    #[inline]
15760    fn visit_with(&self, visitor: &mut V) {
15761        <V as Visit>::visit_opt_expr_or_spreads(visitor, self)
15762    }
15763
15764    #[inline]
15765    fn visit_children_with(&self, visitor: &mut V) {
15766        match self {
15767            Some(inner) => <Vec<ExprOrSpread> as VisitWith<V>>::visit_with(inner, visitor),
15768            None => {}
15769        }
15770    }
15771}
15772impl<V: ?Sized + Visit> VisitWith<V> for Option<Ident> {
15773    #[doc = "Calls [Visit`::visit_opt_ident`] with `self`. (Extra impl)"]
15774    #[inline]
15775    fn visit_with(&self, visitor: &mut V) {
15776        <V as Visit>::visit_opt_ident(visitor, self)
15777    }
15778
15779    #[inline]
15780    fn visit_children_with(&self, visitor: &mut V) {
15781        match self {
15782            Some(inner) => <Ident as VisitWith<V>>::visit_with(inner, visitor),
15783            None => {}
15784        }
15785    }
15786}
15787impl<V: ?Sized + Visit> VisitWith<V> for Option<JSXAttrValue> {
15788    #[doc = "Calls [Visit`::visit_opt_jsx_attr_value`] with `self`. (Extra impl)"]
15789    #[inline]
15790    fn visit_with(&self, visitor: &mut V) {
15791        <V as Visit>::visit_opt_jsx_attr_value(visitor, self)
15792    }
15793
15794    #[inline]
15795    fn visit_children_with(&self, visitor: &mut V) {
15796        match self {
15797            Some(inner) => <JSXAttrValue as VisitWith<V>>::visit_with(inner, visitor),
15798            None => {}
15799        }
15800    }
15801}
15802impl<V: ?Sized + Visit> VisitWith<V> for Option<JSXClosingElement> {
15803    #[doc = "Calls [Visit`::visit_opt_jsx_closing_element`] with `self`. (Extra impl)"]
15804    #[inline]
15805    fn visit_with(&self, visitor: &mut V) {
15806        <V as Visit>::visit_opt_jsx_closing_element(visitor, self)
15807    }
15808
15809    #[inline]
15810    fn visit_children_with(&self, visitor: &mut V) {
15811        match self {
15812            Some(inner) => <JSXClosingElement as VisitWith<V>>::visit_with(inner, visitor),
15813            None => {}
15814        }
15815    }
15816}
15817impl<V: ?Sized + Visit> VisitWith<V> for Option<ModuleExportName> {
15818    #[doc = "Calls [Visit`::visit_opt_module_export_name`] with `self`. (Extra impl)"]
15819    #[inline]
15820    fn visit_with(&self, visitor: &mut V) {
15821        <V as Visit>::visit_opt_module_export_name(visitor, self)
15822    }
15823
15824    #[inline]
15825    fn visit_children_with(&self, visitor: &mut V) {
15826        match self {
15827            Some(inner) => <ModuleExportName as VisitWith<V>>::visit_with(inner, visitor),
15828            None => {}
15829        }
15830    }
15831}
15832impl<V: ?Sized + Visit> VisitWith<V> for Option<Box<ObjectLit>> {
15833    #[doc = "Calls [Visit`::visit_opt_object_lit`] with `self`. (Extra impl)"]
15834    #[inline]
15835    fn visit_with(&self, visitor: &mut V) {
15836        <V as Visit>::visit_opt_object_lit(visitor, self)
15837    }
15838
15839    #[inline]
15840    fn visit_children_with(&self, visitor: &mut V) {
15841        match self {
15842            Some(inner) => <Box<ObjectLit> as VisitWith<V>>::visit_with(inner, visitor),
15843            None => {}
15844        }
15845    }
15846}
15847impl<V: ?Sized + Visit> VisitWith<V> for Option<Pat> {
15848    #[doc = "Calls [Visit`::visit_opt_pat`] with `self`. (Extra impl)"]
15849    #[inline]
15850    fn visit_with(&self, visitor: &mut V) {
15851        <V as Visit>::visit_opt_pat(visitor, self)
15852    }
15853
15854    #[inline]
15855    fn visit_children_with(&self, visitor: &mut V) {
15856        match self {
15857            Some(inner) => <Pat as VisitWith<V>>::visit_with(inner, visitor),
15858            None => {}
15859        }
15860    }
15861}
15862impl<V: ?Sized + Visit> VisitWith<V> for Option<swc_common::Span> {
15863    #[doc = "Calls [Visit`::visit_opt_span`] with `self`. (Extra impl)"]
15864    #[inline]
15865    fn visit_with(&self, visitor: &mut V) {
15866        <V as Visit>::visit_opt_span(visitor, self)
15867    }
15868
15869    #[inline]
15870    fn visit_children_with(&self, visitor: &mut V) {
15871        match self {
15872            Some(inner) => <swc_common::Span as VisitWith<V>>::visit_with(inner, visitor),
15873            None => {}
15874        }
15875    }
15876}
15877impl<V: ?Sized + Visit> VisitWith<V> for Option<Box<Stmt>> {
15878    #[doc = "Calls [Visit`::visit_opt_stmt`] with `self`. (Extra impl)"]
15879    #[inline]
15880    fn visit_with(&self, visitor: &mut V) {
15881        <V as Visit>::visit_opt_stmt(visitor, self)
15882    }
15883
15884    #[inline]
15885    fn visit_children_with(&self, visitor: &mut V) {
15886        match self {
15887            Some(inner) => <Box<Stmt> as VisitWith<V>>::visit_with(inner, visitor),
15888            None => {}
15889        }
15890    }
15891}
15892impl<V: ?Sized + Visit> VisitWith<V> for Option<Box<Str>> {
15893    #[doc = "Calls [Visit`::visit_opt_str`] with `self`. (Extra impl)"]
15894    #[inline]
15895    fn visit_with(&self, visitor: &mut V) {
15896        <V as Visit>::visit_opt_str(visitor, self)
15897    }
15898
15899    #[inline]
15900    fn visit_children_with(&self, visitor: &mut V) {
15901        match self {
15902            Some(inner) => <Box<Str> as VisitWith<V>>::visit_with(inner, visitor),
15903            None => {}
15904        }
15905    }
15906}
15907impl<V: ?Sized + Visit> VisitWith<V> for Option<TruePlusMinus> {
15908    #[doc = "Calls [Visit`::visit_opt_true_plus_minus`] with `self`. (Extra impl)"]
15909    #[inline]
15910    fn visit_with(&self, visitor: &mut V) {
15911        <V as Visit>::visit_opt_true_plus_minus(visitor, self)
15912    }
15913
15914    #[inline]
15915    fn visit_children_with(&self, visitor: &mut V) {
15916        match self {
15917            Some(inner) => <TruePlusMinus as VisitWith<V>>::visit_with(inner, visitor),
15918            None => {}
15919        }
15920    }
15921}
15922impl<V: ?Sized + Visit> VisitWith<V> for Option<TsEntityName> {
15923    #[doc = "Calls [Visit`::visit_opt_ts_entity_name`] with `self`. (Extra impl)"]
15924    #[inline]
15925    fn visit_with(&self, visitor: &mut V) {
15926        <V as Visit>::visit_opt_ts_entity_name(visitor, self)
15927    }
15928
15929    #[inline]
15930    fn visit_children_with(&self, visitor: &mut V) {
15931        match self {
15932            Some(inner) => <TsEntityName as VisitWith<V>>::visit_with(inner, visitor),
15933            None => {}
15934        }
15935    }
15936}
15937impl<V: ?Sized + Visit> VisitWith<V> for Option<TsImportCallOptions> {
15938    #[doc = "Calls [Visit`::visit_opt_ts_import_call_options`] with `self`. (Extra impl)"]
15939    #[inline]
15940    fn visit_with(&self, visitor: &mut V) {
15941        <V as Visit>::visit_opt_ts_import_call_options(visitor, self)
15942    }
15943
15944    #[inline]
15945    fn visit_children_with(&self, visitor: &mut V) {
15946        match self {
15947            Some(inner) => <TsImportCallOptions as VisitWith<V>>::visit_with(inner, visitor),
15948            None => {}
15949        }
15950    }
15951}
15952impl<V: ?Sized + Visit> VisitWith<V> for Option<TsNamespaceBody> {
15953    #[doc = "Calls [Visit`::visit_opt_ts_namespace_body`] with `self`. (Extra impl)"]
15954    #[inline]
15955    fn visit_with(&self, visitor: &mut V) {
15956        <V as Visit>::visit_opt_ts_namespace_body(visitor, self)
15957    }
15958
15959    #[inline]
15960    fn visit_children_with(&self, visitor: &mut V) {
15961        match self {
15962            Some(inner) => <TsNamespaceBody as VisitWith<V>>::visit_with(inner, visitor),
15963            None => {}
15964        }
15965    }
15966}
15967impl<V: ?Sized + Visit> VisitWith<V> for Option<Box<TsType>> {
15968    #[doc = "Calls [Visit`::visit_opt_ts_type`] with `self`. (Extra impl)"]
15969    #[inline]
15970    fn visit_with(&self, visitor: &mut V) {
15971        <V as Visit>::visit_opt_ts_type(visitor, self)
15972    }
15973
15974    #[inline]
15975    fn visit_children_with(&self, visitor: &mut V) {
15976        match self {
15977            Some(inner) => <Box<TsType> as VisitWith<V>>::visit_with(inner, visitor),
15978            None => {}
15979        }
15980    }
15981}
15982impl<V: ?Sized + Visit> VisitWith<V> for Option<Box<TsTypeAnn>> {
15983    #[doc = "Calls [Visit`::visit_opt_ts_type_ann`] with `self`. (Extra impl)"]
15984    #[inline]
15985    fn visit_with(&self, visitor: &mut V) {
15986        <V as Visit>::visit_opt_ts_type_ann(visitor, self)
15987    }
15988
15989    #[inline]
15990    fn visit_children_with(&self, visitor: &mut V) {
15991        match self {
15992            Some(inner) => <Box<TsTypeAnn> as VisitWith<V>>::visit_with(inner, visitor),
15993            None => {}
15994        }
15995    }
15996}
15997impl<V: ?Sized + Visit> VisitWith<V> for Option<Box<TsTypeParamDecl>> {
15998    #[doc = "Calls [Visit`::visit_opt_ts_type_param_decl`] with `self`. (Extra impl)"]
15999    #[inline]
16000    fn visit_with(&self, visitor: &mut V) {
16001        <V as Visit>::visit_opt_ts_type_param_decl(visitor, self)
16002    }
16003
16004    #[inline]
16005    fn visit_children_with(&self, visitor: &mut V) {
16006        match self {
16007            Some(inner) => <Box<TsTypeParamDecl> as VisitWith<V>>::visit_with(inner, visitor),
16008            None => {}
16009        }
16010    }
16011}
16012impl<V: ?Sized + Visit> VisitWith<V> for Option<Box<TsTypeParamInstantiation>> {
16013    #[doc = "Calls [Visit`::visit_opt_ts_type_param_instantiation`] with `self`. (Extra impl)"]
16014    #[inline]
16015    fn visit_with(&self, visitor: &mut V) {
16016        <V as Visit>::visit_opt_ts_type_param_instantiation(visitor, self)
16017    }
16018
16019    #[inline]
16020    fn visit_children_with(&self, visitor: &mut V) {
16021        match self {
16022            Some(inner) => {
16023                <Box<TsTypeParamInstantiation> as VisitWith<V>>::visit_with(inner, visitor)
16024            }
16025            None => {}
16026        }
16027    }
16028}
16029impl<V: ?Sized + Visit> VisitWith<V> for Option<VarDeclOrExpr> {
16030    #[doc = "Calls [Visit`::visit_opt_var_decl_or_expr`] with `self`. (Extra impl)"]
16031    #[inline]
16032    fn visit_with(&self, visitor: &mut V) {
16033        <V as Visit>::visit_opt_var_decl_or_expr(visitor, self)
16034    }
16035
16036    #[inline]
16037    fn visit_children_with(&self, visitor: &mut V) {
16038        match self {
16039            Some(inner) => <VarDeclOrExpr as VisitWith<V>>::visit_with(inner, visitor),
16040            None => {}
16041        }
16042    }
16043}
16044impl<V: ?Sized + Visit> VisitWith<V> for [Option<ExprOrSpread>] {
16045    #[doc = "Calls [Visit`::visit_opt_vec_expr_or_spreads`] with `self`. (Extra impl)"]
16046    #[inline]
16047    fn visit_with(&self, visitor: &mut V) {
16048        <V as Visit>::visit_opt_vec_expr_or_spreads(visitor, self)
16049    }
16050
16051    #[inline]
16052    fn visit_children_with(&self, visitor: &mut V) {
16053        self.iter()
16054            .for_each(|item| <Option<ExprOrSpread> as VisitWith<V>>::visit_with(item, visitor))
16055    }
16056}
16057impl<V: ?Sized + Visit> VisitWith<V> for [Option<Pat>] {
16058    #[doc = "Calls [Visit`::visit_opt_vec_pats`] with `self`. (Extra impl)"]
16059    #[inline]
16060    fn visit_with(&self, visitor: &mut V) {
16061        <V as Visit>::visit_opt_vec_pats(visitor, self)
16062    }
16063
16064    #[inline]
16065    fn visit_children_with(&self, visitor: &mut V) {
16066        self.iter()
16067            .for_each(|item| <Option<Pat> as VisitWith<V>>::visit_with(item, visitor))
16068    }
16069}
16070impl<V: ?Sized + Visit> VisitWith<V> for [ParamOrTsParamProp] {
16071    #[doc = "Calls [Visit`::visit_param_or_ts_param_props`] with `self`. (Extra impl)"]
16072    #[inline]
16073    fn visit_with(&self, visitor: &mut V) {
16074        <V as Visit>::visit_param_or_ts_param_props(visitor, self)
16075    }
16076
16077    #[inline]
16078    fn visit_children_with(&self, visitor: &mut V) {
16079        self.iter()
16080            .for_each(|item| <ParamOrTsParamProp as VisitWith<V>>::visit_with(item, visitor))
16081    }
16082}
16083impl<V: ?Sized + Visit> VisitWith<V> for [Param] {
16084    #[doc = "Calls [Visit`::visit_params`] with `self`. (Extra impl)"]
16085    #[inline]
16086    fn visit_with(&self, visitor: &mut V) {
16087        <V as Visit>::visit_params(visitor, self)
16088    }
16089
16090    #[inline]
16091    fn visit_children_with(&self, visitor: &mut V) {
16092        self.iter()
16093            .for_each(|item| <Param as VisitWith<V>>::visit_with(item, visitor))
16094    }
16095}
16096impl<V: ?Sized + Visit> VisitWith<V> for [Pat] {
16097    #[doc = "Calls [Visit`::visit_pats`] with `self`. (Extra impl)"]
16098    #[inline]
16099    fn visit_with(&self, visitor: &mut V) {
16100        <V as Visit>::visit_pats(visitor, self)
16101    }
16102
16103    #[inline]
16104    fn visit_children_with(&self, visitor: &mut V) {
16105        self.iter()
16106            .for_each(|item| <Pat as VisitWith<V>>::visit_with(item, visitor))
16107    }
16108}
16109impl<V: ?Sized + Visit> VisitWith<V> for [PropOrSpread] {
16110    #[doc = "Calls [Visit`::visit_prop_or_spreads`] with `self`. (Extra impl)"]
16111    #[inline]
16112    fn visit_with(&self, visitor: &mut V) {
16113        <V as Visit>::visit_prop_or_spreads(visitor, self)
16114    }
16115
16116    #[inline]
16117    fn visit_children_with(&self, visitor: &mut V) {
16118        self.iter()
16119            .for_each(|item| <PropOrSpread as VisitWith<V>>::visit_with(item, visitor))
16120    }
16121}
16122impl<V: ?Sized + Visit> VisitWith<V> for swc_common::Span {
16123    #[doc = "Calls [Visit`::visit_span`] with `self`. (Extra impl)"]
16124    #[inline]
16125    fn visit_with(&self, visitor: &mut V) {
16126        <V as Visit>::visit_span(visitor, self)
16127    }
16128
16129    #[inline]
16130    fn visit_children_with(&self, visitor: &mut V) {
16131        {}
16132    }
16133}
16134impl<V: ?Sized + Visit> VisitWith<V> for [Stmt] {
16135    #[doc = "Calls [Visit`::visit_stmts`] with `self`. (Extra impl)"]
16136    #[inline]
16137    fn visit_with(&self, visitor: &mut V) {
16138        <V as Visit>::visit_stmts(visitor, self)
16139    }
16140
16141    #[inline]
16142    fn visit_children_with(&self, visitor: &mut V) {
16143        self.iter()
16144            .for_each(|item| <Stmt as VisitWith<V>>::visit_with(item, visitor))
16145    }
16146}
16147impl<V: ?Sized + Visit> VisitWith<V> for [SwitchCase] {
16148    #[doc = "Calls [Visit`::visit_switch_cases`] with `self`. (Extra impl)"]
16149    #[inline]
16150    fn visit_with(&self, visitor: &mut V) {
16151        <V as Visit>::visit_switch_cases(visitor, self)
16152    }
16153
16154    #[inline]
16155    fn visit_children_with(&self, visitor: &mut V) {
16156        self.iter()
16157            .for_each(|item| <SwitchCase as VisitWith<V>>::visit_with(item, visitor))
16158    }
16159}
16160impl<V: ?Sized + Visit> VisitWith<V> for swc_common::SyntaxContext {
16161    #[doc = "Calls [Visit`::visit_syntax_context`] with `self`. (Extra impl)"]
16162    #[inline]
16163    fn visit_with(&self, visitor: &mut V) {
16164        <V as Visit>::visit_syntax_context(visitor, self)
16165    }
16166
16167    #[inline]
16168    fn visit_children_with(&self, visitor: &mut V) {
16169        {}
16170    }
16171}
16172impl<V: ?Sized + Visit> VisitWith<V> for [TplElement] {
16173    #[doc = "Calls [Visit`::visit_tpl_elements`] with `self`. (Extra impl)"]
16174    #[inline]
16175    fn visit_with(&self, visitor: &mut V) {
16176        <V as Visit>::visit_tpl_elements(visitor, self)
16177    }
16178
16179    #[inline]
16180    fn visit_children_with(&self, visitor: &mut V) {
16181        self.iter()
16182            .for_each(|item| <TplElement as VisitWith<V>>::visit_with(item, visitor))
16183    }
16184}
16185impl<V: ?Sized + Visit> VisitWith<V> for [TsEnumMember] {
16186    #[doc = "Calls [Visit`::visit_ts_enum_members`] with `self`. (Extra impl)"]
16187    #[inline]
16188    fn visit_with(&self, visitor: &mut V) {
16189        <V as Visit>::visit_ts_enum_members(visitor, self)
16190    }
16191
16192    #[inline]
16193    fn visit_children_with(&self, visitor: &mut V) {
16194        self.iter()
16195            .for_each(|item| <TsEnumMember as VisitWith<V>>::visit_with(item, visitor))
16196    }
16197}
16198impl<V: ?Sized + Visit> VisitWith<V> for [TsExprWithTypeArgs] {
16199    #[doc = "Calls [Visit`::visit_ts_expr_with_type_argss`] with `self`. (Extra impl)"]
16200    #[inline]
16201    fn visit_with(&self, visitor: &mut V) {
16202        <V as Visit>::visit_ts_expr_with_type_argss(visitor, self)
16203    }
16204
16205    #[inline]
16206    fn visit_children_with(&self, visitor: &mut V) {
16207        self.iter()
16208            .for_each(|item| <TsExprWithTypeArgs as VisitWith<V>>::visit_with(item, visitor))
16209    }
16210}
16211impl<V: ?Sized + Visit> VisitWith<V> for [TsFnParam] {
16212    #[doc = "Calls [Visit`::visit_ts_fn_params`] with `self`. (Extra impl)"]
16213    #[inline]
16214    fn visit_with(&self, visitor: &mut V) {
16215        <V as Visit>::visit_ts_fn_params(visitor, self)
16216    }
16217
16218    #[inline]
16219    fn visit_children_with(&self, visitor: &mut V) {
16220        self.iter()
16221            .for_each(|item| <TsFnParam as VisitWith<V>>::visit_with(item, visitor))
16222    }
16223}
16224impl<V: ?Sized + Visit> VisitWith<V> for [TsTupleElement] {
16225    #[doc = "Calls [Visit`::visit_ts_tuple_elements`] with `self`. (Extra impl)"]
16226    #[inline]
16227    fn visit_with(&self, visitor: &mut V) {
16228        <V as Visit>::visit_ts_tuple_elements(visitor, self)
16229    }
16230
16231    #[inline]
16232    fn visit_children_with(&self, visitor: &mut V) {
16233        self.iter()
16234            .for_each(|item| <TsTupleElement as VisitWith<V>>::visit_with(item, visitor))
16235    }
16236}
16237impl<V: ?Sized + Visit> VisitWith<V> for [TsTypeElement] {
16238    #[doc = "Calls [Visit`::visit_ts_type_elements`] with `self`. (Extra impl)"]
16239    #[inline]
16240    fn visit_with(&self, visitor: &mut V) {
16241        <V as Visit>::visit_ts_type_elements(visitor, self)
16242    }
16243
16244    #[inline]
16245    fn visit_children_with(&self, visitor: &mut V) {
16246        self.iter()
16247            .for_each(|item| <TsTypeElement as VisitWith<V>>::visit_with(item, visitor))
16248    }
16249}
16250impl<V: ?Sized + Visit> VisitWith<V> for [TsTypeParam] {
16251    #[doc = "Calls [Visit`::visit_ts_type_params`] with `self`. (Extra impl)"]
16252    #[inline]
16253    fn visit_with(&self, visitor: &mut V) {
16254        <V as Visit>::visit_ts_type_params(visitor, self)
16255    }
16256
16257    #[inline]
16258    fn visit_children_with(&self, visitor: &mut V) {
16259        self.iter()
16260            .for_each(|item| <TsTypeParam as VisitWith<V>>::visit_with(item, visitor))
16261    }
16262}
16263impl<V: ?Sized + Visit> VisitWith<V> for [Box<TsType>] {
16264    #[doc = "Calls [Visit`::visit_ts_types`] with `self`. (Extra impl)"]
16265    #[inline]
16266    fn visit_with(&self, visitor: &mut V) {
16267        <V as Visit>::visit_ts_types(visitor, self)
16268    }
16269
16270    #[inline]
16271    fn visit_children_with(&self, visitor: &mut V) {
16272        self.iter()
16273            .for_each(|item| <Box<TsType> as VisitWith<V>>::visit_with(item, visitor))
16274    }
16275}
16276impl<V: ?Sized + Visit> VisitWith<V> for [VarDeclarator] {
16277    #[doc = "Calls [Visit`::visit_var_declarators`] with `self`. (Extra impl)"]
16278    #[inline]
16279    fn visit_with(&self, visitor: &mut V) {
16280        <V as Visit>::visit_var_declarators(visitor, self)
16281    }
16282
16283    #[inline]
16284    fn visit_children_with(&self, visitor: &mut V) {
16285        self.iter()
16286            .for_each(|item| <VarDeclarator as VisitWith<V>>::visit_with(item, visitor))
16287    }
16288}
16289impl<V, T> VisitWith<V> for std::boxed::Box<T>
16290where
16291    V: ?Sized + Visit,
16292    T: VisitWith<V>,
16293{
16294    #[inline]
16295    fn visit_with(&self, visitor: &mut V) {
16296        let v = <T as VisitWith<V>>::visit_with(&**self, visitor);
16297        v
16298    }
16299
16300    #[inline]
16301    fn visit_children_with(&self, visitor: &mut V) {
16302        let v = <T as VisitWith<V>>::visit_children_with(&**self, visitor);
16303        v
16304    }
16305}
16306impl<V, T> VisitWith<V> for std::vec::Vec<T>
16307where
16308    V: ?Sized + Visit,
16309    [T]: VisitWith<V>,
16310{
16311    #[inline]
16312    fn visit_with(&self, visitor: &mut V) {
16313        let v = <[T] as VisitWith<V>>::visit_with(self, visitor);
16314        v
16315    }
16316
16317    #[inline]
16318    fn visit_children_with(&self, visitor: &mut V) {
16319        let v = <[T] as VisitWith<V>>::visit_children_with(self, visitor);
16320        v
16321    }
16322}
16323#[doc = r" A visitor trait for traversing the AST."]
16324#[cfg(any(docsrs, feature = "path"))]
16325#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
16326pub trait VisitAstPath {
16327    #[doc = "Visit a node of type `Accessibility`.\n\nBy default, this method calls \
16328             [`Accessibility::visit_children_with_ast_path`]. If you want to recurse, you need to \
16329             call it manually."]
16330    #[inline]
16331    fn visit_accessibility<'ast: 'r, 'r>(
16332        &mut self,
16333        node: &'ast Accessibility,
16334        __ast_path: &mut AstNodePath<'r>,
16335    ) {
16336        <Accessibility as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16337            node, self, __ast_path,
16338        )
16339    }
16340    #[doc = "Visit a node of type `ArrayLit`.\n\nBy default, this method calls \
16341             [`ArrayLit::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16342             it manually."]
16343    #[inline]
16344    fn visit_array_lit<'ast: 'r, 'r>(
16345        &mut self,
16346        node: &'ast ArrayLit,
16347        __ast_path: &mut AstNodePath<'r>,
16348    ) {
16349        <ArrayLit as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16350    }
16351    #[doc = "Visit a node of type `ArrayPat`.\n\nBy default, this method calls \
16352             [`ArrayPat::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16353             it manually."]
16354    #[inline]
16355    fn visit_array_pat<'ast: 'r, 'r>(
16356        &mut self,
16357        node: &'ast ArrayPat,
16358        __ast_path: &mut AstNodePath<'r>,
16359    ) {
16360        <ArrayPat as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16361    }
16362    #[doc = "Visit a node of type `ArrowExpr`.\n\nBy default, this method calls \
16363             [`ArrowExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16364             it manually."]
16365    #[inline]
16366    fn visit_arrow_expr<'ast: 'r, 'r>(
16367        &mut self,
16368        node: &'ast ArrowExpr,
16369        __ast_path: &mut AstNodePath<'r>,
16370    ) {
16371        <ArrowExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16372    }
16373    #[doc = "Visit a node of type `AssignExpr`.\n\nBy default, this method calls \
16374             [`AssignExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
16375             call it manually."]
16376    #[inline]
16377    fn visit_assign_expr<'ast: 'r, 'r>(
16378        &mut self,
16379        node: &'ast AssignExpr,
16380        __ast_path: &mut AstNodePath<'r>,
16381    ) {
16382        <AssignExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16383    }
16384    #[doc = "Visit a node of type `AssignOp`.\n\nBy default, this method calls \
16385             [`AssignOp::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16386             it manually."]
16387    #[inline]
16388    fn visit_assign_op<'ast: 'r, 'r>(
16389        &mut self,
16390        node: &'ast AssignOp,
16391        __ast_path: &mut AstNodePath<'r>,
16392    ) {
16393        <AssignOp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16394    }
16395    #[doc = "Visit a node of type `AssignPat`.\n\nBy default, this method calls \
16396             [`AssignPat::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16397             it manually."]
16398    #[inline]
16399    fn visit_assign_pat<'ast: 'r, 'r>(
16400        &mut self,
16401        node: &'ast AssignPat,
16402        __ast_path: &mut AstNodePath<'r>,
16403    ) {
16404        <AssignPat as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16405    }
16406    #[doc = "Visit a node of type `AssignPatProp`.\n\nBy default, this method calls \
16407             [`AssignPatProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
16408             call it manually."]
16409    #[inline]
16410    fn visit_assign_pat_prop<'ast: 'r, 'r>(
16411        &mut self,
16412        node: &'ast AssignPatProp,
16413        __ast_path: &mut AstNodePath<'r>,
16414    ) {
16415        <AssignPatProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16416            node, self, __ast_path,
16417        )
16418    }
16419    #[doc = "Visit a node of type `AssignProp`.\n\nBy default, this method calls \
16420             [`AssignProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
16421             call it manually."]
16422    #[inline]
16423    fn visit_assign_prop<'ast: 'r, 'r>(
16424        &mut self,
16425        node: &'ast AssignProp,
16426        __ast_path: &mut AstNodePath<'r>,
16427    ) {
16428        <AssignProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16429    }
16430    #[doc = "Visit a node of type `AssignTarget`.\n\nBy default, this method calls \
16431             [`AssignTarget::visit_children_with_ast_path`]. If you want to recurse, you need to \
16432             call it manually."]
16433    #[inline]
16434    fn visit_assign_target<'ast: 'r, 'r>(
16435        &mut self,
16436        node: &'ast AssignTarget,
16437        __ast_path: &mut AstNodePath<'r>,
16438    ) {
16439        <AssignTarget as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16440            node, self, __ast_path,
16441        )
16442    }
16443    #[doc = "Visit a node of type `AssignTargetPat`.\n\nBy default, this method calls \
16444             [`AssignTargetPat::visit_children_with_ast_path`]. If you want to recurse, you need \
16445             to call it manually."]
16446    #[inline]
16447    fn visit_assign_target_pat<'ast: 'r, 'r>(
16448        &mut self,
16449        node: &'ast AssignTargetPat,
16450        __ast_path: &mut AstNodePath<'r>,
16451    ) {
16452        <AssignTargetPat as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16453            node, self, __ast_path,
16454        )
16455    }
16456    #[doc = "Visit a node of type `swc_atoms :: Atom`.\n\nBy default, this method calls \
16457             [`swc_atoms :: Atom::visit_children_with_ast_path`]. If you want to recurse, you need \
16458             to call it manually."]
16459    #[inline]
16460    fn visit_atom<'ast: 'r, 'r>(
16461        &mut self,
16462        node: &'ast swc_atoms::Atom,
16463        __ast_path: &mut AstNodePath<'r>,
16464    ) {
16465        <swc_atoms::Atom as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16466            node, self, __ast_path,
16467        )
16468    }
16469    #[doc = "Visit a node of type `AutoAccessor`.\n\nBy default, this method calls \
16470             [`AutoAccessor::visit_children_with_ast_path`]. If you want to recurse, you need to \
16471             call it manually."]
16472    #[inline]
16473    fn visit_auto_accessor<'ast: 'r, 'r>(
16474        &mut self,
16475        node: &'ast AutoAccessor,
16476        __ast_path: &mut AstNodePath<'r>,
16477    ) {
16478        <AutoAccessor as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16479            node, self, __ast_path,
16480        )
16481    }
16482    #[doc = "Visit a node of type `AwaitExpr`.\n\nBy default, this method calls \
16483             [`AwaitExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16484             it manually."]
16485    #[inline]
16486    fn visit_await_expr<'ast: 'r, 'r>(
16487        &mut self,
16488        node: &'ast AwaitExpr,
16489        __ast_path: &mut AstNodePath<'r>,
16490    ) {
16491        <AwaitExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16492    }
16493    #[doc = "Visit a node of type `BigInt`.\n\nBy default, this method calls \
16494             [`BigInt::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
16495             manually."]
16496    #[inline]
16497    fn visit_big_int<'ast: 'r, 'r>(
16498        &mut self,
16499        node: &'ast BigInt,
16500        __ast_path: &mut AstNodePath<'r>,
16501    ) {
16502        <BigInt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16503    }
16504    #[doc = "Visit a node of type `BigIntValue`.\n\nBy default, this method calls \
16505             [`BigIntValue::visit_children_with_ast_path`]. If you want to recurse, you need to \
16506             call it manually."]
16507    #[inline]
16508    fn visit_big_int_value<'ast: 'r, 'r>(
16509        &mut self,
16510        node: &'ast BigIntValue,
16511        __ast_path: &mut AstNodePath<'r>,
16512    ) {
16513        <BigIntValue as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16514            node, self, __ast_path,
16515        )
16516    }
16517    #[doc = "Visit a node of type `BinExpr`.\n\nBy default, this method calls \
16518             [`BinExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16519             it manually."]
16520    #[inline]
16521    fn visit_bin_expr<'ast: 'r, 'r>(
16522        &mut self,
16523        node: &'ast BinExpr,
16524        __ast_path: &mut AstNodePath<'r>,
16525    ) {
16526        <BinExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16527    }
16528    #[doc = "Visit a node of type `BinaryOp`.\n\nBy default, this method calls \
16529             [`BinaryOp::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16530             it manually."]
16531    #[inline]
16532    fn visit_binary_op<'ast: 'r, 'r>(
16533        &mut self,
16534        node: &'ast BinaryOp,
16535        __ast_path: &mut AstNodePath<'r>,
16536    ) {
16537        <BinaryOp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16538    }
16539    #[doc = "Visit a node of type `BindingIdent`.\n\nBy default, this method calls \
16540             [`BindingIdent::visit_children_with_ast_path`]. If you want to recurse, you need to \
16541             call it manually."]
16542    #[inline]
16543    fn visit_binding_ident<'ast: 'r, 'r>(
16544        &mut self,
16545        node: &'ast BindingIdent,
16546        __ast_path: &mut AstNodePath<'r>,
16547    ) {
16548        <BindingIdent as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16549            node, self, __ast_path,
16550        )
16551    }
16552    #[doc = "Visit a node of type `BlockStmt`.\n\nBy default, this method calls \
16553             [`BlockStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16554             it manually."]
16555    #[inline]
16556    fn visit_block_stmt<'ast: 'r, 'r>(
16557        &mut self,
16558        node: &'ast BlockStmt,
16559        __ast_path: &mut AstNodePath<'r>,
16560    ) {
16561        <BlockStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16562    }
16563    #[doc = "Visit a node of type `BlockStmtOrExpr`.\n\nBy default, this method calls \
16564             [`BlockStmtOrExpr::visit_children_with_ast_path`]. If you want to recurse, you need \
16565             to call it manually."]
16566    #[inline]
16567    fn visit_block_stmt_or_expr<'ast: 'r, 'r>(
16568        &mut self,
16569        node: &'ast BlockStmtOrExpr,
16570        __ast_path: &mut AstNodePath<'r>,
16571    ) {
16572        <BlockStmtOrExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16573            node, self, __ast_path,
16574        )
16575    }
16576    #[doc = "Visit a node of type `Bool`.\n\nBy default, this method calls \
16577             [`Bool::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
16578             manually."]
16579    #[inline]
16580    fn visit_bool<'ast: 'r, 'r>(&mut self, node: &'ast Bool, __ast_path: &mut AstNodePath<'r>) {
16581        <Bool as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16582    }
16583    #[doc = "Visit a node of type `BreakStmt`.\n\nBy default, this method calls \
16584             [`BreakStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16585             it manually."]
16586    #[inline]
16587    fn visit_break_stmt<'ast: 'r, 'r>(
16588        &mut self,
16589        node: &'ast BreakStmt,
16590        __ast_path: &mut AstNodePath<'r>,
16591    ) {
16592        <BreakStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16593    }
16594    #[doc = "Visit a node of type `CallExpr`.\n\nBy default, this method calls \
16595             [`CallExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16596             it manually."]
16597    #[inline]
16598    fn visit_call_expr<'ast: 'r, 'r>(
16599        &mut self,
16600        node: &'ast CallExpr,
16601        __ast_path: &mut AstNodePath<'r>,
16602    ) {
16603        <CallExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16604    }
16605    #[doc = "Visit a node of type `Callee`.\n\nBy default, this method calls \
16606             [`Callee::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
16607             manually."]
16608    #[inline]
16609    fn visit_callee<'ast: 'r, 'r>(&mut self, node: &'ast Callee, __ast_path: &mut AstNodePath<'r>) {
16610        <Callee as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16611    }
16612    #[doc = "Visit a node of type `CatchClause`.\n\nBy default, this method calls \
16613             [`CatchClause::visit_children_with_ast_path`]. If you want to recurse, you need to \
16614             call it manually."]
16615    #[inline]
16616    fn visit_catch_clause<'ast: 'r, 'r>(
16617        &mut self,
16618        node: &'ast CatchClause,
16619        __ast_path: &mut AstNodePath<'r>,
16620    ) {
16621        <CatchClause as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16622            node, self, __ast_path,
16623        )
16624    }
16625    #[doc = "Visit a node of type `Class`.\n\nBy default, this method calls \
16626             [`Class::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
16627             manually."]
16628    #[inline]
16629    fn visit_class<'ast: 'r, 'r>(&mut self, node: &'ast Class, __ast_path: &mut AstNodePath<'r>) {
16630        <Class as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16631    }
16632    #[doc = "Visit a node of type `ClassDecl`.\n\nBy default, this method calls \
16633             [`ClassDecl::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16634             it manually."]
16635    #[inline]
16636    fn visit_class_decl<'ast: 'r, 'r>(
16637        &mut self,
16638        node: &'ast ClassDecl,
16639        __ast_path: &mut AstNodePath<'r>,
16640    ) {
16641        <ClassDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16642    }
16643    #[doc = "Visit a node of type `ClassExpr`.\n\nBy default, this method calls \
16644             [`ClassExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16645             it manually."]
16646    #[inline]
16647    fn visit_class_expr<'ast: 'r, 'r>(
16648        &mut self,
16649        node: &'ast ClassExpr,
16650        __ast_path: &mut AstNodePath<'r>,
16651    ) {
16652        <ClassExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16653    }
16654    #[doc = "Visit a node of type `ClassMember`.\n\nBy default, this method calls \
16655             [`ClassMember::visit_children_with_ast_path`]. If you want to recurse, you need to \
16656             call it manually."]
16657    #[inline]
16658    fn visit_class_member<'ast: 'r, 'r>(
16659        &mut self,
16660        node: &'ast ClassMember,
16661        __ast_path: &mut AstNodePath<'r>,
16662    ) {
16663        <ClassMember as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16664            node, self, __ast_path,
16665        )
16666    }
16667    #[doc = "Visit a node of type `Vec < ClassMember >`.\n\nBy default, this method calls [`Vec < \
16668             ClassMember >::visit_children_with_ast_path`]. If you want to recurse, you need to \
16669             call it manually."]
16670    #[inline]
16671    fn visit_class_members<'ast: 'r, 'r>(
16672        &mut self,
16673        node: &'ast [ClassMember],
16674        __ast_path: &mut AstNodePath<'r>,
16675    ) {
16676        <[ClassMember] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16677            node, self, __ast_path,
16678        )
16679    }
16680    #[doc = "Visit a node of type `ClassMethod`.\n\nBy default, this method calls \
16681             [`ClassMethod::visit_children_with_ast_path`]. If you want to recurse, you need to \
16682             call it manually."]
16683    #[inline]
16684    fn visit_class_method<'ast: 'r, 'r>(
16685        &mut self,
16686        node: &'ast ClassMethod,
16687        __ast_path: &mut AstNodePath<'r>,
16688    ) {
16689        <ClassMethod as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16690            node, self, __ast_path,
16691        )
16692    }
16693    #[doc = "Visit a node of type `ClassProp`.\n\nBy default, this method calls \
16694             [`ClassProp::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16695             it manually."]
16696    #[inline]
16697    fn visit_class_prop<'ast: 'r, 'r>(
16698        &mut self,
16699        node: &'ast ClassProp,
16700        __ast_path: &mut AstNodePath<'r>,
16701    ) {
16702        <ClassProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16703    }
16704    #[doc = "Visit a node of type `ComputedPropName`.\n\nBy default, this method calls \
16705             [`ComputedPropName::visit_children_with_ast_path`]. If you want to recurse, you need \
16706             to call it manually."]
16707    #[inline]
16708    fn visit_computed_prop_name<'ast: 'r, 'r>(
16709        &mut self,
16710        node: &'ast ComputedPropName,
16711        __ast_path: &mut AstNodePath<'r>,
16712    ) {
16713        <ComputedPropName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16714            node, self, __ast_path,
16715        )
16716    }
16717    #[doc = "Visit a node of type `CondExpr`.\n\nBy default, this method calls \
16718             [`CondExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16719             it manually."]
16720    #[inline]
16721    fn visit_cond_expr<'ast: 'r, 'r>(
16722        &mut self,
16723        node: &'ast CondExpr,
16724        __ast_path: &mut AstNodePath<'r>,
16725    ) {
16726        <CondExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16727    }
16728    #[doc = "Visit a node of type `Constructor`.\n\nBy default, this method calls \
16729             [`Constructor::visit_children_with_ast_path`]. If you want to recurse, you need to \
16730             call it manually."]
16731    #[inline]
16732    fn visit_constructor<'ast: 'r, 'r>(
16733        &mut self,
16734        node: &'ast Constructor,
16735        __ast_path: &mut AstNodePath<'r>,
16736    ) {
16737        <Constructor as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16738            node, self, __ast_path,
16739        )
16740    }
16741    #[doc = "Visit a node of type `ContinueStmt`.\n\nBy default, this method calls \
16742             [`ContinueStmt::visit_children_with_ast_path`]. If you want to recurse, you need to \
16743             call it manually."]
16744    #[inline]
16745    fn visit_continue_stmt<'ast: 'r, 'r>(
16746        &mut self,
16747        node: &'ast ContinueStmt,
16748        __ast_path: &mut AstNodePath<'r>,
16749    ) {
16750        <ContinueStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16751            node, self, __ast_path,
16752        )
16753    }
16754    #[doc = "Visit a node of type `DebuggerStmt`.\n\nBy default, this method calls \
16755             [`DebuggerStmt::visit_children_with_ast_path`]. If you want to recurse, you need to \
16756             call it manually."]
16757    #[inline]
16758    fn visit_debugger_stmt<'ast: 'r, 'r>(
16759        &mut self,
16760        node: &'ast DebuggerStmt,
16761        __ast_path: &mut AstNodePath<'r>,
16762    ) {
16763        <DebuggerStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16764            node, self, __ast_path,
16765        )
16766    }
16767    #[doc = "Visit a node of type `Decl`.\n\nBy default, this method calls \
16768             [`Decl::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
16769             manually."]
16770    #[inline]
16771    fn visit_decl<'ast: 'r, 'r>(&mut self, node: &'ast Decl, __ast_path: &mut AstNodePath<'r>) {
16772        <Decl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16773    }
16774    #[doc = "Visit a node of type `Decorator`.\n\nBy default, this method calls \
16775             [`Decorator::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16776             it manually."]
16777    #[inline]
16778    fn visit_decorator<'ast: 'r, 'r>(
16779        &mut self,
16780        node: &'ast Decorator,
16781        __ast_path: &mut AstNodePath<'r>,
16782    ) {
16783        <Decorator as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16784    }
16785    #[doc = "Visit a node of type `Vec < Decorator >`.\n\nBy default, this method calls [`Vec < \
16786             Decorator >::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16787             it manually."]
16788    #[inline]
16789    fn visit_decorators<'ast: 'r, 'r>(
16790        &mut self,
16791        node: &'ast [Decorator],
16792        __ast_path: &mut AstNodePath<'r>,
16793    ) {
16794        <[Decorator] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16795            node, self, __ast_path,
16796        )
16797    }
16798    #[doc = "Visit a node of type `DefaultDecl`.\n\nBy default, this method calls \
16799             [`DefaultDecl::visit_children_with_ast_path`]. If you want to recurse, you need to \
16800             call it manually."]
16801    #[inline]
16802    fn visit_default_decl<'ast: 'r, 'r>(
16803        &mut self,
16804        node: &'ast DefaultDecl,
16805        __ast_path: &mut AstNodePath<'r>,
16806    ) {
16807        <DefaultDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16808            node, self, __ast_path,
16809        )
16810    }
16811    #[doc = "Visit a node of type `DoWhileStmt`.\n\nBy default, this method calls \
16812             [`DoWhileStmt::visit_children_with_ast_path`]. If you want to recurse, you need to \
16813             call it manually."]
16814    #[inline]
16815    fn visit_do_while_stmt<'ast: 'r, 'r>(
16816        &mut self,
16817        node: &'ast DoWhileStmt,
16818        __ast_path: &mut AstNodePath<'r>,
16819    ) {
16820        <DoWhileStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16821            node, self, __ast_path,
16822        )
16823    }
16824    #[doc = "Visit a node of type `EmptyStmt`.\n\nBy default, this method calls \
16825             [`EmptyStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16826             it manually."]
16827    #[inline]
16828    fn visit_empty_stmt<'ast: 'r, 'r>(
16829        &mut self,
16830        node: &'ast EmptyStmt,
16831        __ast_path: &mut AstNodePath<'r>,
16832    ) {
16833        <EmptyStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16834    }
16835    #[doc = "Visit a node of type `ExportAll`.\n\nBy default, this method calls \
16836             [`ExportAll::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16837             it manually."]
16838    #[inline]
16839    fn visit_export_all<'ast: 'r, 'r>(
16840        &mut self,
16841        node: &'ast ExportAll,
16842        __ast_path: &mut AstNodePath<'r>,
16843    ) {
16844        <ExportAll as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16845    }
16846    #[doc = "Visit a node of type `ExportDecl`.\n\nBy default, this method calls \
16847             [`ExportDecl::visit_children_with_ast_path`]. If you want to recurse, you need to \
16848             call it manually."]
16849    #[inline]
16850    fn visit_export_decl<'ast: 'r, 'r>(
16851        &mut self,
16852        node: &'ast ExportDecl,
16853        __ast_path: &mut AstNodePath<'r>,
16854    ) {
16855        <ExportDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16856    }
16857    #[doc = "Visit a node of type `ExportDefaultDecl`.\n\nBy default, this method calls \
16858             [`ExportDefaultDecl::visit_children_with_ast_path`]. If you want to recurse, you need \
16859             to call it manually."]
16860    #[inline]
16861    fn visit_export_default_decl<'ast: 'r, 'r>(
16862        &mut self,
16863        node: &'ast ExportDefaultDecl,
16864        __ast_path: &mut AstNodePath<'r>,
16865    ) {
16866        <ExportDefaultDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16867            node, self, __ast_path,
16868        )
16869    }
16870    #[doc = "Visit a node of type `ExportDefaultExpr`.\n\nBy default, this method calls \
16871             [`ExportDefaultExpr::visit_children_with_ast_path`]. If you want to recurse, you need \
16872             to call it manually."]
16873    #[inline]
16874    fn visit_export_default_expr<'ast: 'r, 'r>(
16875        &mut self,
16876        node: &'ast ExportDefaultExpr,
16877        __ast_path: &mut AstNodePath<'r>,
16878    ) {
16879        <ExportDefaultExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16880            node, self, __ast_path,
16881        )
16882    }
16883    #[doc = "Visit a node of type `ExportDefaultSpecifier`.\n\nBy default, this method calls \
16884             [`ExportDefaultSpecifier::visit_children_with_ast_path`]. If you want to recurse, you \
16885             need to call it manually."]
16886    #[inline]
16887    fn visit_export_default_specifier<'ast: 'r, 'r>(
16888        &mut self,
16889        node: &'ast ExportDefaultSpecifier,
16890        __ast_path: &mut AstNodePath<'r>,
16891    ) {
16892        <ExportDefaultSpecifier as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16893            node, self, __ast_path,
16894        )
16895    }
16896    #[doc = "Visit a node of type `ExportNamedSpecifier`.\n\nBy default, this method calls \
16897             [`ExportNamedSpecifier::visit_children_with_ast_path`]. If you want to recurse, you \
16898             need to call it manually."]
16899    #[inline]
16900    fn visit_export_named_specifier<'ast: 'r, 'r>(
16901        &mut self,
16902        node: &'ast ExportNamedSpecifier,
16903        __ast_path: &mut AstNodePath<'r>,
16904    ) {
16905        <ExportNamedSpecifier as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16906            node, self, __ast_path,
16907        )
16908    }
16909    #[doc = "Visit a node of type `ExportNamespaceSpecifier`.\n\nBy default, this method calls \
16910             [`ExportNamespaceSpecifier::visit_children_with_ast_path`]. If you want to recurse, \
16911             you need to call it manually."]
16912    #[inline]
16913    fn visit_export_namespace_specifier<'ast: 'r, 'r>(
16914        &mut self,
16915        node: &'ast ExportNamespaceSpecifier,
16916        __ast_path: &mut AstNodePath<'r>,
16917    ) {
16918        <ExportNamespaceSpecifier as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16919            node, self, __ast_path,
16920        )
16921    }
16922    #[doc = "Visit a node of type `ExportSpecifier`.\n\nBy default, this method calls \
16923             [`ExportSpecifier::visit_children_with_ast_path`]. If you want to recurse, you need \
16924             to call it manually."]
16925    #[inline]
16926    fn visit_export_specifier<'ast: 'r, 'r>(
16927        &mut self,
16928        node: &'ast ExportSpecifier,
16929        __ast_path: &mut AstNodePath<'r>,
16930    ) {
16931        <ExportSpecifier as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16932            node, self, __ast_path,
16933        )
16934    }
16935    #[doc = "Visit a node of type `Vec < ExportSpecifier >`.\n\nBy default, this method calls \
16936             [`Vec < ExportSpecifier >::visit_children_with_ast_path`]. If you want to recurse, \
16937             you need to call it manually."]
16938    #[inline]
16939    fn visit_export_specifiers<'ast: 'r, 'r>(
16940        &mut self,
16941        node: &'ast [ExportSpecifier],
16942        __ast_path: &mut AstNodePath<'r>,
16943    ) {
16944        <[ExportSpecifier] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16945            node, self, __ast_path,
16946        )
16947    }
16948    #[doc = "Visit a node of type `Expr`.\n\nBy default, this method calls \
16949             [`Expr::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
16950             manually."]
16951    #[inline]
16952    fn visit_expr<'ast: 'r, 'r>(&mut self, node: &'ast Expr, __ast_path: &mut AstNodePath<'r>) {
16953        <Expr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16954    }
16955    #[doc = "Visit a node of type `ExprOrSpread`.\n\nBy default, this method calls \
16956             [`ExprOrSpread::visit_children_with_ast_path`]. If you want to recurse, you need to \
16957             call it manually."]
16958    #[inline]
16959    fn visit_expr_or_spread<'ast: 'r, 'r>(
16960        &mut self,
16961        node: &'ast ExprOrSpread,
16962        __ast_path: &mut AstNodePath<'r>,
16963    ) {
16964        <ExprOrSpread as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16965            node, self, __ast_path,
16966        )
16967    }
16968    #[doc = "Visit a node of type `Vec < ExprOrSpread >`.\n\nBy default, this method calls [`Vec < \
16969             ExprOrSpread >::visit_children_with_ast_path`]. If you want to recurse, you need to \
16970             call it manually."]
16971    #[inline]
16972    fn visit_expr_or_spreads<'ast: 'r, 'r>(
16973        &mut self,
16974        node: &'ast [ExprOrSpread],
16975        __ast_path: &mut AstNodePath<'r>,
16976    ) {
16977        <[ExprOrSpread] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16978            node, self, __ast_path,
16979        )
16980    }
16981    #[doc = "Visit a node of type `ExprStmt`.\n\nBy default, this method calls \
16982             [`ExprStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16983             it manually."]
16984    #[inline]
16985    fn visit_expr_stmt<'ast: 'r, 'r>(
16986        &mut self,
16987        node: &'ast ExprStmt,
16988        __ast_path: &mut AstNodePath<'r>,
16989    ) {
16990        <ExprStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16991    }
16992    #[doc = "Visit a node of type `Vec < Box < Expr > >`.\n\nBy default, this method calls [`Vec < \
16993             Box < Expr > >::visit_children_with_ast_path`]. If you want to recurse, you need to \
16994             call it manually."]
16995    #[inline]
16996    fn visit_exprs<'ast: 'r, 'r>(
16997        &mut self,
16998        node: &'ast [Box<Expr>],
16999        __ast_path: &mut AstNodePath<'r>,
17000    ) {
17001        <[Box<Expr>] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17002            node, self, __ast_path,
17003        )
17004    }
17005    #[doc = "Visit a node of type `FnDecl`.\n\nBy default, this method calls \
17006             [`FnDecl::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17007             manually."]
17008    #[inline]
17009    fn visit_fn_decl<'ast: 'r, 'r>(
17010        &mut self,
17011        node: &'ast FnDecl,
17012        __ast_path: &mut AstNodePath<'r>,
17013    ) {
17014        <FnDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17015    }
17016    #[doc = "Visit a node of type `FnExpr`.\n\nBy default, this method calls \
17017             [`FnExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17018             manually."]
17019    #[inline]
17020    fn visit_fn_expr<'ast: 'r, 'r>(
17021        &mut self,
17022        node: &'ast FnExpr,
17023        __ast_path: &mut AstNodePath<'r>,
17024    ) {
17025        <FnExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17026    }
17027    #[doc = "Visit a node of type `ForHead`.\n\nBy default, this method calls \
17028             [`ForHead::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17029             it manually."]
17030    #[inline]
17031    fn visit_for_head<'ast: 'r, 'r>(
17032        &mut self,
17033        node: &'ast ForHead,
17034        __ast_path: &mut AstNodePath<'r>,
17035    ) {
17036        <ForHead as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17037    }
17038    #[doc = "Visit a node of type `ForInStmt`.\n\nBy default, this method calls \
17039             [`ForInStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17040             it manually."]
17041    #[inline]
17042    fn visit_for_in_stmt<'ast: 'r, 'r>(
17043        &mut self,
17044        node: &'ast ForInStmt,
17045        __ast_path: &mut AstNodePath<'r>,
17046    ) {
17047        <ForInStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17048    }
17049    #[doc = "Visit a node of type `ForOfStmt`.\n\nBy default, this method calls \
17050             [`ForOfStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17051             it manually."]
17052    #[inline]
17053    fn visit_for_of_stmt<'ast: 'r, 'r>(
17054        &mut self,
17055        node: &'ast ForOfStmt,
17056        __ast_path: &mut AstNodePath<'r>,
17057    ) {
17058        <ForOfStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17059    }
17060    #[doc = "Visit a node of type `ForStmt`.\n\nBy default, this method calls \
17061             [`ForStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17062             it manually."]
17063    #[inline]
17064    fn visit_for_stmt<'ast: 'r, 'r>(
17065        &mut self,
17066        node: &'ast ForStmt,
17067        __ast_path: &mut AstNodePath<'r>,
17068    ) {
17069        <ForStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17070    }
17071    #[doc = "Visit a node of type `Function`.\n\nBy default, this method calls \
17072             [`Function::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17073             it manually."]
17074    #[inline]
17075    fn visit_function<'ast: 'r, 'r>(
17076        &mut self,
17077        node: &'ast Function,
17078        __ast_path: &mut AstNodePath<'r>,
17079    ) {
17080        <Function as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17081    }
17082    #[doc = "Visit a node of type `GetterProp`.\n\nBy default, this method calls \
17083             [`GetterProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
17084             call it manually."]
17085    #[inline]
17086    fn visit_getter_prop<'ast: 'r, 'r>(
17087        &mut self,
17088        node: &'ast GetterProp,
17089        __ast_path: &mut AstNodePath<'r>,
17090    ) {
17091        <GetterProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17092    }
17093    #[doc = "Visit a node of type `Ident`.\n\nBy default, this method calls \
17094             [`Ident::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17095             manually."]
17096    #[inline]
17097    fn visit_ident<'ast: 'r, 'r>(&mut self, node: &'ast Ident, __ast_path: &mut AstNodePath<'r>) {
17098        <Ident as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17099    }
17100    #[doc = "Visit a node of type `IdentName`.\n\nBy default, this method calls \
17101             [`IdentName::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17102             it manually."]
17103    #[inline]
17104    fn visit_ident_name<'ast: 'r, 'r>(
17105        &mut self,
17106        node: &'ast IdentName,
17107        __ast_path: &mut AstNodePath<'r>,
17108    ) {
17109        <IdentName as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17110    }
17111    #[doc = "Visit a node of type `IfStmt`.\n\nBy default, this method calls \
17112             [`IfStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17113             manually."]
17114    #[inline]
17115    fn visit_if_stmt<'ast: 'r, 'r>(
17116        &mut self,
17117        node: &'ast IfStmt,
17118        __ast_path: &mut AstNodePath<'r>,
17119    ) {
17120        <IfStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17121    }
17122    #[doc = "Visit a node of type `Import`.\n\nBy default, this method calls \
17123             [`Import::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17124             manually."]
17125    #[inline]
17126    fn visit_import<'ast: 'r, 'r>(&mut self, node: &'ast Import, __ast_path: &mut AstNodePath<'r>) {
17127        <Import as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17128    }
17129    #[doc = "Visit a node of type `ImportDecl`.\n\nBy default, this method calls \
17130             [`ImportDecl::visit_children_with_ast_path`]. If you want to recurse, you need to \
17131             call it manually."]
17132    #[inline]
17133    fn visit_import_decl<'ast: 'r, 'r>(
17134        &mut self,
17135        node: &'ast ImportDecl,
17136        __ast_path: &mut AstNodePath<'r>,
17137    ) {
17138        <ImportDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17139    }
17140    #[doc = "Visit a node of type `ImportDefaultSpecifier`.\n\nBy default, this method calls \
17141             [`ImportDefaultSpecifier::visit_children_with_ast_path`]. If you want to recurse, you \
17142             need to call it manually."]
17143    #[inline]
17144    fn visit_import_default_specifier<'ast: 'r, 'r>(
17145        &mut self,
17146        node: &'ast ImportDefaultSpecifier,
17147        __ast_path: &mut AstNodePath<'r>,
17148    ) {
17149        <ImportDefaultSpecifier as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17150            node, self, __ast_path,
17151        )
17152    }
17153    #[doc = "Visit a node of type `ImportNamedSpecifier`.\n\nBy default, this method calls \
17154             [`ImportNamedSpecifier::visit_children_with_ast_path`]. If you want to recurse, you \
17155             need to call it manually."]
17156    #[inline]
17157    fn visit_import_named_specifier<'ast: 'r, 'r>(
17158        &mut self,
17159        node: &'ast ImportNamedSpecifier,
17160        __ast_path: &mut AstNodePath<'r>,
17161    ) {
17162        <ImportNamedSpecifier as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17163            node, self, __ast_path,
17164        )
17165    }
17166    #[doc = "Visit a node of type `ImportPhase`.\n\nBy default, this method calls \
17167             [`ImportPhase::visit_children_with_ast_path`]. If you want to recurse, you need to \
17168             call it manually."]
17169    #[inline]
17170    fn visit_import_phase<'ast: 'r, 'r>(
17171        &mut self,
17172        node: &'ast ImportPhase,
17173        __ast_path: &mut AstNodePath<'r>,
17174    ) {
17175        <ImportPhase as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17176            node, self, __ast_path,
17177        )
17178    }
17179    #[doc = "Visit a node of type `ImportSpecifier`.\n\nBy default, this method calls \
17180             [`ImportSpecifier::visit_children_with_ast_path`]. If you want to recurse, you need \
17181             to call it manually."]
17182    #[inline]
17183    fn visit_import_specifier<'ast: 'r, 'r>(
17184        &mut self,
17185        node: &'ast ImportSpecifier,
17186        __ast_path: &mut AstNodePath<'r>,
17187    ) {
17188        <ImportSpecifier as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17189            node, self, __ast_path,
17190        )
17191    }
17192    #[doc = "Visit a node of type `Vec < ImportSpecifier >`.\n\nBy default, this method calls \
17193             [`Vec < ImportSpecifier >::visit_children_with_ast_path`]. If you want to recurse, \
17194             you need to call it manually."]
17195    #[inline]
17196    fn visit_import_specifiers<'ast: 'r, 'r>(
17197        &mut self,
17198        node: &'ast [ImportSpecifier],
17199        __ast_path: &mut AstNodePath<'r>,
17200    ) {
17201        <[ImportSpecifier] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17202            node, self, __ast_path,
17203        )
17204    }
17205    #[doc = "Visit a node of type `ImportStarAsSpecifier`.\n\nBy default, this method calls \
17206             [`ImportStarAsSpecifier::visit_children_with_ast_path`]. If you want to recurse, you \
17207             need to call it manually."]
17208    #[inline]
17209    fn visit_import_star_as_specifier<'ast: 'r, 'r>(
17210        &mut self,
17211        node: &'ast ImportStarAsSpecifier,
17212        __ast_path: &mut AstNodePath<'r>,
17213    ) {
17214        <ImportStarAsSpecifier as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17215            node, self, __ast_path,
17216        )
17217    }
17218    #[doc = "Visit a node of type `ImportWith`.\n\nBy default, this method calls \
17219             [`ImportWith::visit_children_with_ast_path`]. If you want to recurse, you need to \
17220             call it manually."]
17221    #[inline]
17222    fn visit_import_with<'ast: 'r, 'r>(
17223        &mut self,
17224        node: &'ast ImportWith,
17225        __ast_path: &mut AstNodePath<'r>,
17226    ) {
17227        <ImportWith as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17228    }
17229    #[doc = "Visit a node of type `ImportWithItem`.\n\nBy default, this method calls \
17230             [`ImportWithItem::visit_children_with_ast_path`]. If you want to recurse, you need to \
17231             call it manually."]
17232    #[inline]
17233    fn visit_import_with_item<'ast: 'r, 'r>(
17234        &mut self,
17235        node: &'ast ImportWithItem,
17236        __ast_path: &mut AstNodePath<'r>,
17237    ) {
17238        <ImportWithItem as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17239            node, self, __ast_path,
17240        )
17241    }
17242    #[doc = "Visit a node of type `Vec < ImportWithItem >`.\n\nBy default, this method calls [`Vec \
17243             < ImportWithItem >::visit_children_with_ast_path`]. If you want to recurse, you need \
17244             to call it manually."]
17245    #[inline]
17246    fn visit_import_with_items<'ast: 'r, 'r>(
17247        &mut self,
17248        node: &'ast [ImportWithItem],
17249        __ast_path: &mut AstNodePath<'r>,
17250    ) {
17251        <[ImportWithItem] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17252            node, self, __ast_path,
17253        )
17254    }
17255    #[doc = "Visit a node of type `Invalid`.\n\nBy default, this method calls \
17256             [`Invalid::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17257             it manually."]
17258    #[inline]
17259    fn visit_invalid<'ast: 'r, 'r>(
17260        &mut self,
17261        node: &'ast Invalid,
17262        __ast_path: &mut AstNodePath<'r>,
17263    ) {
17264        <Invalid as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17265    }
17266    #[doc = "Visit a node of type `JSXAttr`.\n\nBy default, this method calls \
17267             [`JSXAttr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17268             it manually."]
17269    #[inline]
17270    fn visit_jsx_attr<'ast: 'r, 'r>(
17271        &mut self,
17272        node: &'ast JSXAttr,
17273        __ast_path: &mut AstNodePath<'r>,
17274    ) {
17275        <JSXAttr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17276    }
17277    #[doc = "Visit a node of type `JSXAttrName`.\n\nBy default, this method calls \
17278             [`JSXAttrName::visit_children_with_ast_path`]. If you want to recurse, you need to \
17279             call it manually."]
17280    #[inline]
17281    fn visit_jsx_attr_name<'ast: 'r, 'r>(
17282        &mut self,
17283        node: &'ast JSXAttrName,
17284        __ast_path: &mut AstNodePath<'r>,
17285    ) {
17286        <JSXAttrName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17287            node, self, __ast_path,
17288        )
17289    }
17290    #[doc = "Visit a node of type `JSXAttrOrSpread`.\n\nBy default, this method calls \
17291             [`JSXAttrOrSpread::visit_children_with_ast_path`]. If you want to recurse, you need \
17292             to call it manually."]
17293    #[inline]
17294    fn visit_jsx_attr_or_spread<'ast: 'r, 'r>(
17295        &mut self,
17296        node: &'ast JSXAttrOrSpread,
17297        __ast_path: &mut AstNodePath<'r>,
17298    ) {
17299        <JSXAttrOrSpread as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17300            node, self, __ast_path,
17301        )
17302    }
17303    #[doc = "Visit a node of type `Vec < JSXAttrOrSpread >`.\n\nBy default, this method calls \
17304             [`Vec < JSXAttrOrSpread >::visit_children_with_ast_path`]. If you want to recurse, \
17305             you need to call it manually."]
17306    #[inline]
17307    fn visit_jsx_attr_or_spreads<'ast: 'r, 'r>(
17308        &mut self,
17309        node: &'ast [JSXAttrOrSpread],
17310        __ast_path: &mut AstNodePath<'r>,
17311    ) {
17312        <[JSXAttrOrSpread] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17313            node, self, __ast_path,
17314        )
17315    }
17316    #[doc = "Visit a node of type `JSXAttrValue`.\n\nBy default, this method calls \
17317             [`JSXAttrValue::visit_children_with_ast_path`]. If you want to recurse, you need to \
17318             call it manually."]
17319    #[inline]
17320    fn visit_jsx_attr_value<'ast: 'r, 'r>(
17321        &mut self,
17322        node: &'ast JSXAttrValue,
17323        __ast_path: &mut AstNodePath<'r>,
17324    ) {
17325        <JSXAttrValue as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17326            node, self, __ast_path,
17327        )
17328    }
17329    #[doc = "Visit a node of type `JSXClosingElement`.\n\nBy default, this method calls \
17330             [`JSXClosingElement::visit_children_with_ast_path`]. If you want to recurse, you need \
17331             to call it manually."]
17332    #[inline]
17333    fn visit_jsx_closing_element<'ast: 'r, 'r>(
17334        &mut self,
17335        node: &'ast JSXClosingElement,
17336        __ast_path: &mut AstNodePath<'r>,
17337    ) {
17338        <JSXClosingElement as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17339            node, self, __ast_path,
17340        )
17341    }
17342    #[doc = "Visit a node of type `JSXClosingFragment`.\n\nBy default, this method calls \
17343             [`JSXClosingFragment::visit_children_with_ast_path`]. If you want to recurse, you \
17344             need to call it manually."]
17345    #[inline]
17346    fn visit_jsx_closing_fragment<'ast: 'r, 'r>(
17347        &mut self,
17348        node: &'ast JSXClosingFragment,
17349        __ast_path: &mut AstNodePath<'r>,
17350    ) {
17351        <JSXClosingFragment as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17352            node, self, __ast_path,
17353        )
17354    }
17355    #[doc = "Visit a node of type `JSXElement`.\n\nBy default, this method calls \
17356             [`JSXElement::visit_children_with_ast_path`]. If you want to recurse, you need to \
17357             call it manually."]
17358    #[inline]
17359    fn visit_jsx_element<'ast: 'r, 'r>(
17360        &mut self,
17361        node: &'ast JSXElement,
17362        __ast_path: &mut AstNodePath<'r>,
17363    ) {
17364        <JSXElement as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17365    }
17366    #[doc = "Visit a node of type `JSXElementChild`.\n\nBy default, this method calls \
17367             [`JSXElementChild::visit_children_with_ast_path`]. If you want to recurse, you need \
17368             to call it manually."]
17369    #[inline]
17370    fn visit_jsx_element_child<'ast: 'r, 'r>(
17371        &mut self,
17372        node: &'ast JSXElementChild,
17373        __ast_path: &mut AstNodePath<'r>,
17374    ) {
17375        <JSXElementChild as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17376            node, self, __ast_path,
17377        )
17378    }
17379    #[doc = "Visit a node of type `Vec < JSXElementChild >`.\n\nBy default, this method calls \
17380             [`Vec < JSXElementChild >::visit_children_with_ast_path`]. If you want to recurse, \
17381             you need to call it manually."]
17382    #[inline]
17383    fn visit_jsx_element_childs<'ast: 'r, 'r>(
17384        &mut self,
17385        node: &'ast [JSXElementChild],
17386        __ast_path: &mut AstNodePath<'r>,
17387    ) {
17388        <[JSXElementChild] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17389            node, self, __ast_path,
17390        )
17391    }
17392    #[doc = "Visit a node of type `JSXElementName`.\n\nBy default, this method calls \
17393             [`JSXElementName::visit_children_with_ast_path`]. If you want to recurse, you need to \
17394             call it manually."]
17395    #[inline]
17396    fn visit_jsx_element_name<'ast: 'r, 'r>(
17397        &mut self,
17398        node: &'ast JSXElementName,
17399        __ast_path: &mut AstNodePath<'r>,
17400    ) {
17401        <JSXElementName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17402            node, self, __ast_path,
17403        )
17404    }
17405    #[doc = "Visit a node of type `JSXEmptyExpr`.\n\nBy default, this method calls \
17406             [`JSXEmptyExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
17407             call it manually."]
17408    #[inline]
17409    fn visit_jsx_empty_expr<'ast: 'r, 'r>(
17410        &mut self,
17411        node: &'ast JSXEmptyExpr,
17412        __ast_path: &mut AstNodePath<'r>,
17413    ) {
17414        <JSXEmptyExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17415            node, self, __ast_path,
17416        )
17417    }
17418    #[doc = "Visit a node of type `JSXExpr`.\n\nBy default, this method calls \
17419             [`JSXExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17420             it manually."]
17421    #[inline]
17422    fn visit_jsx_expr<'ast: 'r, 'r>(
17423        &mut self,
17424        node: &'ast JSXExpr,
17425        __ast_path: &mut AstNodePath<'r>,
17426    ) {
17427        <JSXExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17428    }
17429    #[doc = "Visit a node of type `JSXExprContainer`.\n\nBy default, this method calls \
17430             [`JSXExprContainer::visit_children_with_ast_path`]. If you want to recurse, you need \
17431             to call it manually."]
17432    #[inline]
17433    fn visit_jsx_expr_container<'ast: 'r, 'r>(
17434        &mut self,
17435        node: &'ast JSXExprContainer,
17436        __ast_path: &mut AstNodePath<'r>,
17437    ) {
17438        <JSXExprContainer as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17439            node, self, __ast_path,
17440        )
17441    }
17442    #[doc = "Visit a node of type `JSXFragment`.\n\nBy default, this method calls \
17443             [`JSXFragment::visit_children_with_ast_path`]. If you want to recurse, you need to \
17444             call it manually."]
17445    #[inline]
17446    fn visit_jsx_fragment<'ast: 'r, 'r>(
17447        &mut self,
17448        node: &'ast JSXFragment,
17449        __ast_path: &mut AstNodePath<'r>,
17450    ) {
17451        <JSXFragment as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17452            node, self, __ast_path,
17453        )
17454    }
17455    #[doc = "Visit a node of type `JSXMemberExpr`.\n\nBy default, this method calls \
17456             [`JSXMemberExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
17457             call it manually."]
17458    #[inline]
17459    fn visit_jsx_member_expr<'ast: 'r, 'r>(
17460        &mut self,
17461        node: &'ast JSXMemberExpr,
17462        __ast_path: &mut AstNodePath<'r>,
17463    ) {
17464        <JSXMemberExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17465            node, self, __ast_path,
17466        )
17467    }
17468    #[doc = "Visit a node of type `JSXNamespacedName`.\n\nBy default, this method calls \
17469             [`JSXNamespacedName::visit_children_with_ast_path`]. If you want to recurse, you need \
17470             to call it manually."]
17471    #[inline]
17472    fn visit_jsx_namespaced_name<'ast: 'r, 'r>(
17473        &mut self,
17474        node: &'ast JSXNamespacedName,
17475        __ast_path: &mut AstNodePath<'r>,
17476    ) {
17477        <JSXNamespacedName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17478            node, self, __ast_path,
17479        )
17480    }
17481    #[doc = "Visit a node of type `JSXObject`.\n\nBy default, this method calls \
17482             [`JSXObject::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17483             it manually."]
17484    #[inline]
17485    fn visit_jsx_object<'ast: 'r, 'r>(
17486        &mut self,
17487        node: &'ast JSXObject,
17488        __ast_path: &mut AstNodePath<'r>,
17489    ) {
17490        <JSXObject as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17491    }
17492    #[doc = "Visit a node of type `JSXOpeningElement`.\n\nBy default, this method calls \
17493             [`JSXOpeningElement::visit_children_with_ast_path`]. If you want to recurse, you need \
17494             to call it manually."]
17495    #[inline]
17496    fn visit_jsx_opening_element<'ast: 'r, 'r>(
17497        &mut self,
17498        node: &'ast JSXOpeningElement,
17499        __ast_path: &mut AstNodePath<'r>,
17500    ) {
17501        <JSXOpeningElement as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17502            node, self, __ast_path,
17503        )
17504    }
17505    #[doc = "Visit a node of type `JSXOpeningFragment`.\n\nBy default, this method calls \
17506             [`JSXOpeningFragment::visit_children_with_ast_path`]. If you want to recurse, you \
17507             need to call it manually."]
17508    #[inline]
17509    fn visit_jsx_opening_fragment<'ast: 'r, 'r>(
17510        &mut self,
17511        node: &'ast JSXOpeningFragment,
17512        __ast_path: &mut AstNodePath<'r>,
17513    ) {
17514        <JSXOpeningFragment as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17515            node, self, __ast_path,
17516        )
17517    }
17518    #[doc = "Visit a node of type `JSXSpreadChild`.\n\nBy default, this method calls \
17519             [`JSXSpreadChild::visit_children_with_ast_path`]. If you want to recurse, you need to \
17520             call it manually."]
17521    #[inline]
17522    fn visit_jsx_spread_child<'ast: 'r, 'r>(
17523        &mut self,
17524        node: &'ast JSXSpreadChild,
17525        __ast_path: &mut AstNodePath<'r>,
17526    ) {
17527        <JSXSpreadChild as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17528            node, self, __ast_path,
17529        )
17530    }
17531    #[doc = "Visit a node of type `JSXText`.\n\nBy default, this method calls \
17532             [`JSXText::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17533             it manually."]
17534    #[inline]
17535    fn visit_jsx_text<'ast: 'r, 'r>(
17536        &mut self,
17537        node: &'ast JSXText,
17538        __ast_path: &mut AstNodePath<'r>,
17539    ) {
17540        <JSXText as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17541    }
17542    #[doc = "Visit a node of type `Key`.\n\nBy default, this method calls \
17543             [`Key::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17544             manually."]
17545    #[inline]
17546    fn visit_key<'ast: 'r, 'r>(&mut self, node: &'ast Key, __ast_path: &mut AstNodePath<'r>) {
17547        <Key as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17548    }
17549    #[doc = "Visit a node of type `KeyValuePatProp`.\n\nBy default, this method calls \
17550             [`KeyValuePatProp::visit_children_with_ast_path`]. If you want to recurse, you need \
17551             to call it manually."]
17552    #[inline]
17553    fn visit_key_value_pat_prop<'ast: 'r, 'r>(
17554        &mut self,
17555        node: &'ast KeyValuePatProp,
17556        __ast_path: &mut AstNodePath<'r>,
17557    ) {
17558        <KeyValuePatProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17559            node, self, __ast_path,
17560        )
17561    }
17562    #[doc = "Visit a node of type `KeyValueProp`.\n\nBy default, this method calls \
17563             [`KeyValueProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
17564             call it manually."]
17565    #[inline]
17566    fn visit_key_value_prop<'ast: 'r, 'r>(
17567        &mut self,
17568        node: &'ast KeyValueProp,
17569        __ast_path: &mut AstNodePath<'r>,
17570    ) {
17571        <KeyValueProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17572            node, self, __ast_path,
17573        )
17574    }
17575    #[doc = "Visit a node of type `LabeledStmt`.\n\nBy default, this method calls \
17576             [`LabeledStmt::visit_children_with_ast_path`]. If you want to recurse, you need to \
17577             call it manually."]
17578    #[inline]
17579    fn visit_labeled_stmt<'ast: 'r, 'r>(
17580        &mut self,
17581        node: &'ast LabeledStmt,
17582        __ast_path: &mut AstNodePath<'r>,
17583    ) {
17584        <LabeledStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17585            node, self, __ast_path,
17586        )
17587    }
17588    #[doc = "Visit a node of type `Lit`.\n\nBy default, this method calls \
17589             [`Lit::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17590             manually."]
17591    #[inline]
17592    fn visit_lit<'ast: 'r, 'r>(&mut self, node: &'ast Lit, __ast_path: &mut AstNodePath<'r>) {
17593        <Lit as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17594    }
17595    #[doc = "Visit a node of type `MemberExpr`.\n\nBy default, this method calls \
17596             [`MemberExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
17597             call it manually."]
17598    #[inline]
17599    fn visit_member_expr<'ast: 'r, 'r>(
17600        &mut self,
17601        node: &'ast MemberExpr,
17602        __ast_path: &mut AstNodePath<'r>,
17603    ) {
17604        <MemberExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17605    }
17606    #[doc = "Visit a node of type `MemberProp`.\n\nBy default, this method calls \
17607             [`MemberProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
17608             call it manually."]
17609    #[inline]
17610    fn visit_member_prop<'ast: 'r, 'r>(
17611        &mut self,
17612        node: &'ast MemberProp,
17613        __ast_path: &mut AstNodePath<'r>,
17614    ) {
17615        <MemberProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17616    }
17617    #[doc = "Visit a node of type `MetaPropExpr`.\n\nBy default, this method calls \
17618             [`MetaPropExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
17619             call it manually."]
17620    #[inline]
17621    fn visit_meta_prop_expr<'ast: 'r, 'r>(
17622        &mut self,
17623        node: &'ast MetaPropExpr,
17624        __ast_path: &mut AstNodePath<'r>,
17625    ) {
17626        <MetaPropExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17627            node, self, __ast_path,
17628        )
17629    }
17630    #[doc = "Visit a node of type `MetaPropKind`.\n\nBy default, this method calls \
17631             [`MetaPropKind::visit_children_with_ast_path`]. If you want to recurse, you need to \
17632             call it manually."]
17633    #[inline]
17634    fn visit_meta_prop_kind<'ast: 'r, 'r>(
17635        &mut self,
17636        node: &'ast MetaPropKind,
17637        __ast_path: &mut AstNodePath<'r>,
17638    ) {
17639        <MetaPropKind as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17640            node, self, __ast_path,
17641        )
17642    }
17643    #[doc = "Visit a node of type `MethodKind`.\n\nBy default, this method calls \
17644             [`MethodKind::visit_children_with_ast_path`]. If you want to recurse, you need to \
17645             call it manually."]
17646    #[inline]
17647    fn visit_method_kind<'ast: 'r, 'r>(
17648        &mut self,
17649        node: &'ast MethodKind,
17650        __ast_path: &mut AstNodePath<'r>,
17651    ) {
17652        <MethodKind as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17653    }
17654    #[doc = "Visit a node of type `MethodProp`.\n\nBy default, this method calls \
17655             [`MethodProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
17656             call it manually."]
17657    #[inline]
17658    fn visit_method_prop<'ast: 'r, 'r>(
17659        &mut self,
17660        node: &'ast MethodProp,
17661        __ast_path: &mut AstNodePath<'r>,
17662    ) {
17663        <MethodProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17664    }
17665    #[doc = "Visit a node of type `Module`.\n\nBy default, this method calls \
17666             [`Module::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17667             manually."]
17668    #[inline]
17669    fn visit_module<'ast: 'r, 'r>(&mut self, node: &'ast Module, __ast_path: &mut AstNodePath<'r>) {
17670        <Module as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17671    }
17672    #[doc = "Visit a node of type `ModuleDecl`.\n\nBy default, this method calls \
17673             [`ModuleDecl::visit_children_with_ast_path`]. If you want to recurse, you need to \
17674             call it manually."]
17675    #[inline]
17676    fn visit_module_decl<'ast: 'r, 'r>(
17677        &mut self,
17678        node: &'ast ModuleDecl,
17679        __ast_path: &mut AstNodePath<'r>,
17680    ) {
17681        <ModuleDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17682    }
17683    #[doc = "Visit a node of type `ModuleExportName`.\n\nBy default, this method calls \
17684             [`ModuleExportName::visit_children_with_ast_path`]. If you want to recurse, you need \
17685             to call it manually."]
17686    #[inline]
17687    fn visit_module_export_name<'ast: 'r, 'r>(
17688        &mut self,
17689        node: &'ast ModuleExportName,
17690        __ast_path: &mut AstNodePath<'r>,
17691    ) {
17692        <ModuleExportName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17693            node, self, __ast_path,
17694        )
17695    }
17696    #[doc = "Visit a node of type `ModuleItem`.\n\nBy default, this method calls \
17697             [`ModuleItem::visit_children_with_ast_path`]. If you want to recurse, you need to \
17698             call it manually."]
17699    #[inline]
17700    fn visit_module_item<'ast: 'r, 'r>(
17701        &mut self,
17702        node: &'ast ModuleItem,
17703        __ast_path: &mut AstNodePath<'r>,
17704    ) {
17705        <ModuleItem as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17706    }
17707    #[doc = "Visit a node of type `Vec < ModuleItem >`.\n\nBy default, this method calls [`Vec < \
17708             ModuleItem >::visit_children_with_ast_path`]. If you want to recurse, you need to \
17709             call it manually."]
17710    #[inline]
17711    fn visit_module_items<'ast: 'r, 'r>(
17712        &mut self,
17713        node: &'ast [ModuleItem],
17714        __ast_path: &mut AstNodePath<'r>,
17715    ) {
17716        <[ModuleItem] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17717            node, self, __ast_path,
17718        )
17719    }
17720    #[doc = "Visit a node of type `NamedExport`.\n\nBy default, this method calls \
17721             [`NamedExport::visit_children_with_ast_path`]. If you want to recurse, you need to \
17722             call it manually."]
17723    #[inline]
17724    fn visit_named_export<'ast: 'r, 'r>(
17725        &mut self,
17726        node: &'ast NamedExport,
17727        __ast_path: &mut AstNodePath<'r>,
17728    ) {
17729        <NamedExport as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17730            node, self, __ast_path,
17731        )
17732    }
17733    #[doc = "Visit a node of type `NewExpr`.\n\nBy default, this method calls \
17734             [`NewExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17735             it manually."]
17736    #[inline]
17737    fn visit_new_expr<'ast: 'r, 'r>(
17738        &mut self,
17739        node: &'ast NewExpr,
17740        __ast_path: &mut AstNodePath<'r>,
17741    ) {
17742        <NewExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17743    }
17744    #[doc = "Visit a node of type `Null`.\n\nBy default, this method calls \
17745             [`Null::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17746             manually."]
17747    #[inline]
17748    fn visit_null<'ast: 'r, 'r>(&mut self, node: &'ast Null, __ast_path: &mut AstNodePath<'r>) {
17749        <Null as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17750    }
17751    #[doc = "Visit a node of type `Number`.\n\nBy default, this method calls \
17752             [`Number::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17753             manually."]
17754    #[inline]
17755    fn visit_number<'ast: 'r, 'r>(&mut self, node: &'ast Number, __ast_path: &mut AstNodePath<'r>) {
17756        <Number as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17757    }
17758    #[doc = "Visit a node of type `ObjectLit`.\n\nBy default, this method calls \
17759             [`ObjectLit::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17760             it manually."]
17761    #[inline]
17762    fn visit_object_lit<'ast: 'r, 'r>(
17763        &mut self,
17764        node: &'ast ObjectLit,
17765        __ast_path: &mut AstNodePath<'r>,
17766    ) {
17767        <ObjectLit as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17768    }
17769    #[doc = "Visit a node of type `ObjectPat`.\n\nBy default, this method calls \
17770             [`ObjectPat::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17771             it manually."]
17772    #[inline]
17773    fn visit_object_pat<'ast: 'r, 'r>(
17774        &mut self,
17775        node: &'ast ObjectPat,
17776        __ast_path: &mut AstNodePath<'r>,
17777    ) {
17778        <ObjectPat as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17779    }
17780    #[doc = "Visit a node of type `ObjectPatProp`.\n\nBy default, this method calls \
17781             [`ObjectPatProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
17782             call it manually."]
17783    #[inline]
17784    fn visit_object_pat_prop<'ast: 'r, 'r>(
17785        &mut self,
17786        node: &'ast ObjectPatProp,
17787        __ast_path: &mut AstNodePath<'r>,
17788    ) {
17789        <ObjectPatProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17790            node, self, __ast_path,
17791        )
17792    }
17793    #[doc = "Visit a node of type `Vec < ObjectPatProp >`.\n\nBy default, this method calls [`Vec \
17794             < ObjectPatProp >::visit_children_with_ast_path`]. If you want to recurse, you need \
17795             to call it manually."]
17796    #[inline]
17797    fn visit_object_pat_props<'ast: 'r, 'r>(
17798        &mut self,
17799        node: &'ast [ObjectPatProp],
17800        __ast_path: &mut AstNodePath<'r>,
17801    ) {
17802        <[ObjectPatProp] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17803            node, self, __ast_path,
17804        )
17805    }
17806    #[doc = "Visit a node of type `Option < Accessibility >`.\n\nBy default, this method calls \
17807             [`Option < Accessibility >::visit_children_with_ast_path`]. If you want to recurse, \
17808             you need to call it manually."]
17809    #[inline]
17810    fn visit_opt_accessibility<'ast: 'r, 'r>(
17811        &mut self,
17812        node: &'ast Option<Accessibility>,
17813        __ast_path: &mut AstNodePath<'r>,
17814    ) {
17815        <Option<Accessibility> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17816            node, self, __ast_path,
17817        )
17818    }
17819    #[doc = "Visit a node of type `Option < swc_atoms :: Atom >`.\n\nBy default, this method calls \
17820             [`Option < swc_atoms :: Atom >::visit_children_with_ast_path`]. If you want to \
17821             recurse, you need to call it manually."]
17822    #[inline]
17823    fn visit_opt_atom<'ast: 'r, 'r>(
17824        &mut self,
17825        node: &'ast Option<swc_atoms::Atom>,
17826        __ast_path: &mut AstNodePath<'r>,
17827    ) {
17828        <Option<swc_atoms::Atom> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17829            node, self, __ast_path,
17830        )
17831    }
17832    #[doc = "Visit a node of type `Option < BlockStmt >`.\n\nBy default, this method calls \
17833             [`Option < BlockStmt >::visit_children_with_ast_path`]. If you want to recurse, you \
17834             need to call it manually."]
17835    #[inline]
17836    fn visit_opt_block_stmt<'ast: 'r, 'r>(
17837        &mut self,
17838        node: &'ast Option<BlockStmt>,
17839        __ast_path: &mut AstNodePath<'r>,
17840    ) {
17841        <Option<BlockStmt> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17842            node, self, __ast_path,
17843        )
17844    }
17845    #[doc = "Visit a node of type `OptCall`.\n\nBy default, this method calls \
17846             [`OptCall::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17847             it manually."]
17848    #[inline]
17849    fn visit_opt_call<'ast: 'r, 'r>(
17850        &mut self,
17851        node: &'ast OptCall,
17852        __ast_path: &mut AstNodePath<'r>,
17853    ) {
17854        <OptCall as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17855    }
17856    #[doc = "Visit a node of type `Option < CatchClause >`.\n\nBy default, this method calls \
17857             [`Option < CatchClause >::visit_children_with_ast_path`]. If you want to recurse, you \
17858             need to call it manually."]
17859    #[inline]
17860    fn visit_opt_catch_clause<'ast: 'r, 'r>(
17861        &mut self,
17862        node: &'ast Option<CatchClause>,
17863        __ast_path: &mut AstNodePath<'r>,
17864    ) {
17865        <Option<CatchClause> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17866            node, self, __ast_path,
17867        )
17868    }
17869    #[doc = "Visit a node of type `OptChainBase`.\n\nBy default, this method calls \
17870             [`OptChainBase::visit_children_with_ast_path`]. If you want to recurse, you need to \
17871             call it manually."]
17872    #[inline]
17873    fn visit_opt_chain_base<'ast: 'r, 'r>(
17874        &mut self,
17875        node: &'ast OptChainBase,
17876        __ast_path: &mut AstNodePath<'r>,
17877    ) {
17878        <OptChainBase as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17879            node, self, __ast_path,
17880        )
17881    }
17882    #[doc = "Visit a node of type `OptChainExpr`.\n\nBy default, this method calls \
17883             [`OptChainExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
17884             call it manually."]
17885    #[inline]
17886    fn visit_opt_chain_expr<'ast: 'r, 'r>(
17887        &mut self,
17888        node: &'ast OptChainExpr,
17889        __ast_path: &mut AstNodePath<'r>,
17890    ) {
17891        <OptChainExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17892            node, self, __ast_path,
17893        )
17894    }
17895    #[doc = "Visit a node of type `Option < Box < Expr > >`.\n\nBy default, this method calls \
17896             [`Option < Box < Expr > >::visit_children_with_ast_path`]. If you want to recurse, \
17897             you need to call it manually."]
17898    #[inline]
17899    fn visit_opt_expr<'ast: 'r, 'r>(
17900        &mut self,
17901        node: &'ast Option<Box<Expr>>,
17902        __ast_path: &mut AstNodePath<'r>,
17903    ) {
17904        <Option<Box<Expr>> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17905            node, self, __ast_path,
17906        )
17907    }
17908    #[doc = "Visit a node of type `Option < ExprOrSpread >`.\n\nBy default, this method calls \
17909             [`Option < ExprOrSpread >::visit_children_with_ast_path`]. If you want to recurse, \
17910             you need to call it manually."]
17911    #[inline]
17912    fn visit_opt_expr_or_spread<'ast: 'r, 'r>(
17913        &mut self,
17914        node: &'ast Option<ExprOrSpread>,
17915        __ast_path: &mut AstNodePath<'r>,
17916    ) {
17917        <Option<ExprOrSpread> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17918            node, self, __ast_path,
17919        )
17920    }
17921    #[doc = "Visit a node of type `Option < Vec < ExprOrSpread > >`.\n\nBy default, this method \
17922             calls [`Option < Vec < ExprOrSpread > >::visit_children_with_ast_path`]. If you want \
17923             to recurse, you need to call it manually."]
17924    #[inline]
17925    fn visit_opt_expr_or_spreads<'ast: 'r, 'r>(
17926        &mut self,
17927        node: &'ast Option<Vec<ExprOrSpread>>,
17928        __ast_path: &mut AstNodePath<'r>,
17929    ) {
17930        <Option<Vec<ExprOrSpread>> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17931            node, self, __ast_path,
17932        )
17933    }
17934    #[doc = "Visit a node of type `Option < Ident >`.\n\nBy default, this method calls [`Option < \
17935             Ident >::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17936             manually."]
17937    #[inline]
17938    fn visit_opt_ident<'ast: 'r, 'r>(
17939        &mut self,
17940        node: &'ast Option<Ident>,
17941        __ast_path: &mut AstNodePath<'r>,
17942    ) {
17943        <Option<Ident> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17944            node, self, __ast_path,
17945        )
17946    }
17947    #[doc = "Visit a node of type `Option < JSXAttrValue >`.\n\nBy default, this method calls \
17948             [`Option < JSXAttrValue >::visit_children_with_ast_path`]. If you want to recurse, \
17949             you need to call it manually."]
17950    #[inline]
17951    fn visit_opt_jsx_attr_value<'ast: 'r, 'r>(
17952        &mut self,
17953        node: &'ast Option<JSXAttrValue>,
17954        __ast_path: &mut AstNodePath<'r>,
17955    ) {
17956        <Option<JSXAttrValue> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17957            node, self, __ast_path,
17958        )
17959    }
17960    #[doc = "Visit a node of type `Option < JSXClosingElement >`.\n\nBy default, this method calls \
17961             [`Option < JSXClosingElement >::visit_children_with_ast_path`]. If you want to \
17962             recurse, you need to call it manually."]
17963    #[inline]
17964    fn visit_opt_jsx_closing_element<'ast: 'r, 'r>(
17965        &mut self,
17966        node: &'ast Option<JSXClosingElement>,
17967        __ast_path: &mut AstNodePath<'r>,
17968    ) {
17969        <Option<JSXClosingElement> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17970            node, self, __ast_path,
17971        )
17972    }
17973    #[doc = "Visit a node of type `Option < ModuleExportName >`.\n\nBy default, this method calls \
17974             [`Option < ModuleExportName >::visit_children_with_ast_path`]. If you want to \
17975             recurse, you need to call it manually."]
17976    #[inline]
17977    fn visit_opt_module_export_name<'ast: 'r, 'r>(
17978        &mut self,
17979        node: &'ast Option<ModuleExportName>,
17980        __ast_path: &mut AstNodePath<'r>,
17981    ) {
17982        <Option<ModuleExportName> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17983            node, self, __ast_path,
17984        )
17985    }
17986    #[doc = "Visit a node of type `Option < Box < ObjectLit > >`.\n\nBy default, this method calls \
17987             [`Option < Box < ObjectLit > >::visit_children_with_ast_path`]. If you want to \
17988             recurse, you need to call it manually."]
17989    #[inline]
17990    fn visit_opt_object_lit<'ast: 'r, 'r>(
17991        &mut self,
17992        node: &'ast Option<Box<ObjectLit>>,
17993        __ast_path: &mut AstNodePath<'r>,
17994    ) {
17995        <Option<Box<ObjectLit>> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17996            node, self, __ast_path,
17997        )
17998    }
17999    #[doc = "Visit a node of type `Option < Pat >`.\n\nBy default, this method calls [`Option < \
18000             Pat >::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18001             manually."]
18002    #[inline]
18003    fn visit_opt_pat<'ast: 'r, 'r>(
18004        &mut self,
18005        node: &'ast Option<Pat>,
18006        __ast_path: &mut AstNodePath<'r>,
18007    ) {
18008        <Option<Pat> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18009            node, self, __ast_path,
18010        )
18011    }
18012    #[doc = "Visit a node of type `Option < swc_common :: Span >`.\n\nBy default, this method \
18013             calls [`Option < swc_common :: Span >::visit_children_with_ast_path`]. If you want to \
18014             recurse, you need to call it manually."]
18015    #[inline]
18016    fn visit_opt_span<'ast: 'r, 'r>(
18017        &mut self,
18018        node: &'ast Option<swc_common::Span>,
18019        __ast_path: &mut AstNodePath<'r>,
18020    ) {
18021        <Option<swc_common::Span> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18022            node, self, __ast_path,
18023        )
18024    }
18025    #[doc = "Visit a node of type `Option < Box < Stmt > >`.\n\nBy default, this method calls \
18026             [`Option < Box < Stmt > >::visit_children_with_ast_path`]. If you want to recurse, \
18027             you need to call it manually."]
18028    #[inline]
18029    fn visit_opt_stmt<'ast: 'r, 'r>(
18030        &mut self,
18031        node: &'ast Option<Box<Stmt>>,
18032        __ast_path: &mut AstNodePath<'r>,
18033    ) {
18034        <Option<Box<Stmt>> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18035            node, self, __ast_path,
18036        )
18037    }
18038    #[doc = "Visit a node of type `Option < Box < Str > >`.\n\nBy default, this method calls \
18039             [`Option < Box < Str > >::visit_children_with_ast_path`]. If you want to recurse, you \
18040             need to call it manually."]
18041    #[inline]
18042    fn visit_opt_str<'ast: 'r, 'r>(
18043        &mut self,
18044        node: &'ast Option<Box<Str>>,
18045        __ast_path: &mut AstNodePath<'r>,
18046    ) {
18047        <Option<Box<Str>> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18048            node, self, __ast_path,
18049        )
18050    }
18051    #[doc = "Visit a node of type `Option < TruePlusMinus >`.\n\nBy default, this method calls \
18052             [`Option < TruePlusMinus >::visit_children_with_ast_path`]. If you want to recurse, \
18053             you need to call it manually."]
18054    #[inline]
18055    fn visit_opt_true_plus_minus<'ast: 'r, 'r>(
18056        &mut self,
18057        node: &'ast Option<TruePlusMinus>,
18058        __ast_path: &mut AstNodePath<'r>,
18059    ) {
18060        <Option<TruePlusMinus> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18061            node, self, __ast_path,
18062        )
18063    }
18064    #[doc = "Visit a node of type `Option < TsEntityName >`.\n\nBy default, this method calls \
18065             [`Option < TsEntityName >::visit_children_with_ast_path`]. If you want to recurse, \
18066             you need to call it manually."]
18067    #[inline]
18068    fn visit_opt_ts_entity_name<'ast: 'r, 'r>(
18069        &mut self,
18070        node: &'ast Option<TsEntityName>,
18071        __ast_path: &mut AstNodePath<'r>,
18072    ) {
18073        <Option<TsEntityName> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18074            node, self, __ast_path,
18075        )
18076    }
18077    #[doc = "Visit a node of type `Option < TsImportCallOptions >`.\n\nBy default, this method \
18078             calls [`Option < TsImportCallOptions >::visit_children_with_ast_path`]. If you want \
18079             to recurse, you need to call it manually."]
18080    #[inline]
18081    fn visit_opt_ts_import_call_options<'ast: 'r, 'r>(
18082        &mut self,
18083        node: &'ast Option<TsImportCallOptions>,
18084        __ast_path: &mut AstNodePath<'r>,
18085    ) {
18086        <Option<TsImportCallOptions> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18087            node, self, __ast_path,
18088        )
18089    }
18090    #[doc = "Visit a node of type `Option < TsNamespaceBody >`.\n\nBy default, this method calls \
18091             [`Option < TsNamespaceBody >::visit_children_with_ast_path`]. If you want to recurse, \
18092             you need to call it manually."]
18093    #[inline]
18094    fn visit_opt_ts_namespace_body<'ast: 'r, 'r>(
18095        &mut self,
18096        node: &'ast Option<TsNamespaceBody>,
18097        __ast_path: &mut AstNodePath<'r>,
18098    ) {
18099        <Option<TsNamespaceBody> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18100            node, self, __ast_path,
18101        )
18102    }
18103    #[doc = "Visit a node of type `Option < Box < TsType > >`.\n\nBy default, this method calls \
18104             [`Option < Box < TsType > >::visit_children_with_ast_path`]. If you want to recurse, \
18105             you need to call it manually."]
18106    #[inline]
18107    fn visit_opt_ts_type<'ast: 'r, 'r>(
18108        &mut self,
18109        node: &'ast Option<Box<TsType>>,
18110        __ast_path: &mut AstNodePath<'r>,
18111    ) {
18112        <Option<Box<TsType>> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18113            node, self, __ast_path,
18114        )
18115    }
18116    #[doc = "Visit a node of type `Option < Box < TsTypeAnn > >`.\n\nBy default, this method calls \
18117             [`Option < Box < TsTypeAnn > >::visit_children_with_ast_path`]. If you want to \
18118             recurse, you need to call it manually."]
18119    #[inline]
18120    fn visit_opt_ts_type_ann<'ast: 'r, 'r>(
18121        &mut self,
18122        node: &'ast Option<Box<TsTypeAnn>>,
18123        __ast_path: &mut AstNodePath<'r>,
18124    ) {
18125        <Option<Box<TsTypeAnn>> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18126            node, self, __ast_path,
18127        )
18128    }
18129    #[doc = "Visit a node of type `Option < Box < TsTypeParamDecl > >`.\n\nBy default, this method \
18130             calls [`Option < Box < TsTypeParamDecl > >::visit_children_with_ast_path`]. If you \
18131             want to recurse, you need to call it manually."]
18132    #[inline]
18133    fn visit_opt_ts_type_param_decl<'ast: 'r, 'r>(
18134        &mut self,
18135        node: &'ast Option<Box<TsTypeParamDecl>>,
18136        __ast_path: &mut AstNodePath<'r>,
18137    ) {
18138        <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18139            node, self, __ast_path,
18140        )
18141    }
18142    #[doc = "Visit a node of type `Option < Box < TsTypeParamInstantiation > >`.\n\nBy default, \
18143             this method calls [`Option < Box < TsTypeParamInstantiation > \
18144             >::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18145             manually."]
18146    #[inline]
18147    fn visit_opt_ts_type_param_instantiation<'ast: 'r, 'r>(
18148        &mut self,
18149        node: &'ast Option<Box<TsTypeParamInstantiation>>,
18150        __ast_path: &mut AstNodePath<'r>,
18151    ) {
18152        < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < Self > > :: visit_children_with_ast_path (node , self , __ast_path)
18153    }
18154    #[doc = "Visit a node of type `Option < VarDeclOrExpr >`.\n\nBy default, this method calls \
18155             [`Option < VarDeclOrExpr >::visit_children_with_ast_path`]. If you want to recurse, \
18156             you need to call it manually."]
18157    #[inline]
18158    fn visit_opt_var_decl_or_expr<'ast: 'r, 'r>(
18159        &mut self,
18160        node: &'ast Option<VarDeclOrExpr>,
18161        __ast_path: &mut AstNodePath<'r>,
18162    ) {
18163        <Option<VarDeclOrExpr> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18164            node, self, __ast_path,
18165        )
18166    }
18167    #[doc = "Visit a node of type `Vec < Option < ExprOrSpread > >`.\n\nBy default, this method \
18168             calls [`Vec < Option < ExprOrSpread > >::visit_children_with_ast_path`]. If you want \
18169             to recurse, you need to call it manually."]
18170    #[inline]
18171    fn visit_opt_vec_expr_or_spreads<'ast: 'r, 'r>(
18172        &mut self,
18173        node: &'ast [Option<ExprOrSpread>],
18174        __ast_path: &mut AstNodePath<'r>,
18175    ) {
18176        <[Option<ExprOrSpread>] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18177            node, self, __ast_path,
18178        )
18179    }
18180    #[doc = "Visit a node of type `Vec < Option < Pat > >`.\n\nBy default, this method calls [`Vec \
18181             < Option < Pat > >::visit_children_with_ast_path`]. If you want to recurse, you need \
18182             to call it manually."]
18183    #[inline]
18184    fn visit_opt_vec_pats<'ast: 'r, 'r>(
18185        &mut self,
18186        node: &'ast [Option<Pat>],
18187        __ast_path: &mut AstNodePath<'r>,
18188    ) {
18189        <[Option<Pat>] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18190            node, self, __ast_path,
18191        )
18192    }
18193    #[doc = "Visit a node of type `Param`.\n\nBy default, this method calls \
18194             [`Param::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18195             manually."]
18196    #[inline]
18197    fn visit_param<'ast: 'r, 'r>(&mut self, node: &'ast Param, __ast_path: &mut AstNodePath<'r>) {
18198        <Param as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18199    }
18200    #[doc = "Visit a node of type `ParamOrTsParamProp`.\n\nBy default, this method calls \
18201             [`ParamOrTsParamProp::visit_children_with_ast_path`]. If you want to recurse, you \
18202             need to call it manually."]
18203    #[inline]
18204    fn visit_param_or_ts_param_prop<'ast: 'r, 'r>(
18205        &mut self,
18206        node: &'ast ParamOrTsParamProp,
18207        __ast_path: &mut AstNodePath<'r>,
18208    ) {
18209        <ParamOrTsParamProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18210            node, self, __ast_path,
18211        )
18212    }
18213    #[doc = "Visit a node of type `Vec < ParamOrTsParamProp >`.\n\nBy default, this method calls \
18214             [`Vec < ParamOrTsParamProp >::visit_children_with_ast_path`]. If you want to recurse, \
18215             you need to call it manually."]
18216    #[inline]
18217    fn visit_param_or_ts_param_props<'ast: 'r, 'r>(
18218        &mut self,
18219        node: &'ast [ParamOrTsParamProp],
18220        __ast_path: &mut AstNodePath<'r>,
18221    ) {
18222        <[ParamOrTsParamProp] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18223            node, self, __ast_path,
18224        )
18225    }
18226    #[doc = "Visit a node of type `Vec < Param >`.\n\nBy default, this method calls [`Vec < Param \
18227             >::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18228             manually."]
18229    #[inline]
18230    fn visit_params<'ast: 'r, 'r>(
18231        &mut self,
18232        node: &'ast [Param],
18233        __ast_path: &mut AstNodePath<'r>,
18234    ) {
18235        <[Param] as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18236    }
18237    #[doc = "Visit a node of type `ParenExpr`.\n\nBy default, this method calls \
18238             [`ParenExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18239             it manually."]
18240    #[inline]
18241    fn visit_paren_expr<'ast: 'r, 'r>(
18242        &mut self,
18243        node: &'ast ParenExpr,
18244        __ast_path: &mut AstNodePath<'r>,
18245    ) {
18246        <ParenExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18247    }
18248    #[doc = "Visit a node of type `Pat`.\n\nBy default, this method calls \
18249             [`Pat::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18250             manually."]
18251    #[inline]
18252    fn visit_pat<'ast: 'r, 'r>(&mut self, node: &'ast Pat, __ast_path: &mut AstNodePath<'r>) {
18253        <Pat as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18254    }
18255    #[doc = "Visit a node of type `Vec < Pat >`.\n\nBy default, this method calls [`Vec < Pat \
18256             >::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18257             manually."]
18258    #[inline]
18259    fn visit_pats<'ast: 'r, 'r>(&mut self, node: &'ast [Pat], __ast_path: &mut AstNodePath<'r>) {
18260        <[Pat] as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18261    }
18262    #[doc = "Visit a node of type `PrivateMethod`.\n\nBy default, this method calls \
18263             [`PrivateMethod::visit_children_with_ast_path`]. If you want to recurse, you need to \
18264             call it manually."]
18265    #[inline]
18266    fn visit_private_method<'ast: 'r, 'r>(
18267        &mut self,
18268        node: &'ast PrivateMethod,
18269        __ast_path: &mut AstNodePath<'r>,
18270    ) {
18271        <PrivateMethod as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18272            node, self, __ast_path,
18273        )
18274    }
18275    #[doc = "Visit a node of type `PrivateName`.\n\nBy default, this method calls \
18276             [`PrivateName::visit_children_with_ast_path`]. If you want to recurse, you need to \
18277             call it manually."]
18278    #[inline]
18279    fn visit_private_name<'ast: 'r, 'r>(
18280        &mut self,
18281        node: &'ast PrivateName,
18282        __ast_path: &mut AstNodePath<'r>,
18283    ) {
18284        <PrivateName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18285            node, self, __ast_path,
18286        )
18287    }
18288    #[doc = "Visit a node of type `PrivateProp`.\n\nBy default, this method calls \
18289             [`PrivateProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
18290             call it manually."]
18291    #[inline]
18292    fn visit_private_prop<'ast: 'r, 'r>(
18293        &mut self,
18294        node: &'ast PrivateProp,
18295        __ast_path: &mut AstNodePath<'r>,
18296    ) {
18297        <PrivateProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18298            node, self, __ast_path,
18299        )
18300    }
18301    #[doc = "Visit a node of type `Program`.\n\nBy default, this method calls \
18302             [`Program::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18303             it manually."]
18304    #[inline]
18305    fn visit_program<'ast: 'r, 'r>(
18306        &mut self,
18307        node: &'ast Program,
18308        __ast_path: &mut AstNodePath<'r>,
18309    ) {
18310        <Program as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18311    }
18312    #[doc = "Visit a node of type `Prop`.\n\nBy default, this method calls \
18313             [`Prop::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18314             manually."]
18315    #[inline]
18316    fn visit_prop<'ast: 'r, 'r>(&mut self, node: &'ast Prop, __ast_path: &mut AstNodePath<'r>) {
18317        <Prop as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18318    }
18319    #[doc = "Visit a node of type `PropName`.\n\nBy default, this method calls \
18320             [`PropName::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18321             it manually."]
18322    #[inline]
18323    fn visit_prop_name<'ast: 'r, 'r>(
18324        &mut self,
18325        node: &'ast PropName,
18326        __ast_path: &mut AstNodePath<'r>,
18327    ) {
18328        <PropName as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18329    }
18330    #[doc = "Visit a node of type `PropOrSpread`.\n\nBy default, this method calls \
18331             [`PropOrSpread::visit_children_with_ast_path`]. If you want to recurse, you need to \
18332             call it manually."]
18333    #[inline]
18334    fn visit_prop_or_spread<'ast: 'r, 'r>(
18335        &mut self,
18336        node: &'ast PropOrSpread,
18337        __ast_path: &mut AstNodePath<'r>,
18338    ) {
18339        <PropOrSpread as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18340            node, self, __ast_path,
18341        )
18342    }
18343    #[doc = "Visit a node of type `Vec < PropOrSpread >`.\n\nBy default, this method calls [`Vec < \
18344             PropOrSpread >::visit_children_with_ast_path`]. If you want to recurse, you need to \
18345             call it manually."]
18346    #[inline]
18347    fn visit_prop_or_spreads<'ast: 'r, 'r>(
18348        &mut self,
18349        node: &'ast [PropOrSpread],
18350        __ast_path: &mut AstNodePath<'r>,
18351    ) {
18352        <[PropOrSpread] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18353            node, self, __ast_path,
18354        )
18355    }
18356    #[doc = "Visit a node of type `Regex`.\n\nBy default, this method calls \
18357             [`Regex::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18358             manually."]
18359    #[inline]
18360    fn visit_regex<'ast: 'r, 'r>(&mut self, node: &'ast Regex, __ast_path: &mut AstNodePath<'r>) {
18361        <Regex as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18362    }
18363    #[doc = "Visit a node of type `RestPat`.\n\nBy default, this method calls \
18364             [`RestPat::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18365             it manually."]
18366    #[inline]
18367    fn visit_rest_pat<'ast: 'r, 'r>(
18368        &mut self,
18369        node: &'ast RestPat,
18370        __ast_path: &mut AstNodePath<'r>,
18371    ) {
18372        <RestPat as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18373    }
18374    #[doc = "Visit a node of type `ReturnStmt`.\n\nBy default, this method calls \
18375             [`ReturnStmt::visit_children_with_ast_path`]. If you want to recurse, you need to \
18376             call it manually."]
18377    #[inline]
18378    fn visit_return_stmt<'ast: 'r, 'r>(
18379        &mut self,
18380        node: &'ast ReturnStmt,
18381        __ast_path: &mut AstNodePath<'r>,
18382    ) {
18383        <ReturnStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18384    }
18385    #[doc = "Visit a node of type `Script`.\n\nBy default, this method calls \
18386             [`Script::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18387             manually."]
18388    #[inline]
18389    fn visit_script<'ast: 'r, 'r>(&mut self, node: &'ast Script, __ast_path: &mut AstNodePath<'r>) {
18390        <Script as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18391    }
18392    #[doc = "Visit a node of type `SeqExpr`.\n\nBy default, this method calls \
18393             [`SeqExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18394             it manually."]
18395    #[inline]
18396    fn visit_seq_expr<'ast: 'r, 'r>(
18397        &mut self,
18398        node: &'ast SeqExpr,
18399        __ast_path: &mut AstNodePath<'r>,
18400    ) {
18401        <SeqExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18402    }
18403    #[doc = "Visit a node of type `SetterProp`.\n\nBy default, this method calls \
18404             [`SetterProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
18405             call it manually."]
18406    #[inline]
18407    fn visit_setter_prop<'ast: 'r, 'r>(
18408        &mut self,
18409        node: &'ast SetterProp,
18410        __ast_path: &mut AstNodePath<'r>,
18411    ) {
18412        <SetterProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18413    }
18414    #[doc = "Visit a node of type `SimpleAssignTarget`.\n\nBy default, this method calls \
18415             [`SimpleAssignTarget::visit_children_with_ast_path`]. If you want to recurse, you \
18416             need to call it manually."]
18417    #[inline]
18418    fn visit_simple_assign_target<'ast: 'r, 'r>(
18419        &mut self,
18420        node: &'ast SimpleAssignTarget,
18421        __ast_path: &mut AstNodePath<'r>,
18422    ) {
18423        <SimpleAssignTarget as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18424            node, self, __ast_path,
18425        )
18426    }
18427    #[doc = "Visit a node of type `swc_common :: Span`.\n\nBy default, this method calls \
18428             [`swc_common :: Span::visit_children_with_ast_path`]. If you want to recurse, you \
18429             need to call it manually."]
18430    #[inline]
18431    fn visit_span<'ast: 'r, 'r>(
18432        &mut self,
18433        node: &'ast swc_common::Span,
18434        __ast_path: &mut AstNodePath<'r>,
18435    ) {
18436        <swc_common::Span as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18437            node, self, __ast_path,
18438        )
18439    }
18440    #[doc = "Visit a node of type `SpreadElement`.\n\nBy default, this method calls \
18441             [`SpreadElement::visit_children_with_ast_path`]. If you want to recurse, you need to \
18442             call it manually."]
18443    #[inline]
18444    fn visit_spread_element<'ast: 'r, 'r>(
18445        &mut self,
18446        node: &'ast SpreadElement,
18447        __ast_path: &mut AstNodePath<'r>,
18448    ) {
18449        <SpreadElement as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18450            node, self, __ast_path,
18451        )
18452    }
18453    #[doc = "Visit a node of type `StaticBlock`.\n\nBy default, this method calls \
18454             [`StaticBlock::visit_children_with_ast_path`]. If you want to recurse, you need to \
18455             call it manually."]
18456    #[inline]
18457    fn visit_static_block<'ast: 'r, 'r>(
18458        &mut self,
18459        node: &'ast StaticBlock,
18460        __ast_path: &mut AstNodePath<'r>,
18461    ) {
18462        <StaticBlock as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18463            node, self, __ast_path,
18464        )
18465    }
18466    #[doc = "Visit a node of type `Stmt`.\n\nBy default, this method calls \
18467             [`Stmt::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18468             manually."]
18469    #[inline]
18470    fn visit_stmt<'ast: 'r, 'r>(&mut self, node: &'ast Stmt, __ast_path: &mut AstNodePath<'r>) {
18471        <Stmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18472    }
18473    #[doc = "Visit a node of type `Vec < Stmt >`.\n\nBy default, this method calls [`Vec < Stmt \
18474             >::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18475             manually."]
18476    #[inline]
18477    fn visit_stmts<'ast: 'r, 'r>(&mut self, node: &'ast [Stmt], __ast_path: &mut AstNodePath<'r>) {
18478        <[Stmt] as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18479    }
18480    #[doc = "Visit a node of type `Str`.\n\nBy default, this method calls \
18481             [`Str::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18482             manually."]
18483    #[inline]
18484    fn visit_str<'ast: 'r, 'r>(&mut self, node: &'ast Str, __ast_path: &mut AstNodePath<'r>) {
18485        <Str as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18486    }
18487    #[doc = "Visit a node of type `Super`.\n\nBy default, this method calls \
18488             [`Super::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18489             manually."]
18490    #[inline]
18491    fn visit_super<'ast: 'r, 'r>(&mut self, node: &'ast Super, __ast_path: &mut AstNodePath<'r>) {
18492        <Super as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18493    }
18494    #[doc = "Visit a node of type `SuperProp`.\n\nBy default, this method calls \
18495             [`SuperProp::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18496             it manually."]
18497    #[inline]
18498    fn visit_super_prop<'ast: 'r, 'r>(
18499        &mut self,
18500        node: &'ast SuperProp,
18501        __ast_path: &mut AstNodePath<'r>,
18502    ) {
18503        <SuperProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18504    }
18505    #[doc = "Visit a node of type `SuperPropExpr`.\n\nBy default, this method calls \
18506             [`SuperPropExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
18507             call it manually."]
18508    #[inline]
18509    fn visit_super_prop_expr<'ast: 'r, 'r>(
18510        &mut self,
18511        node: &'ast SuperPropExpr,
18512        __ast_path: &mut AstNodePath<'r>,
18513    ) {
18514        <SuperPropExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18515            node, self, __ast_path,
18516        )
18517    }
18518    #[doc = "Visit a node of type `SwitchCase`.\n\nBy default, this method calls \
18519             [`SwitchCase::visit_children_with_ast_path`]. If you want to recurse, you need to \
18520             call it manually."]
18521    #[inline]
18522    fn visit_switch_case<'ast: 'r, 'r>(
18523        &mut self,
18524        node: &'ast SwitchCase,
18525        __ast_path: &mut AstNodePath<'r>,
18526    ) {
18527        <SwitchCase as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18528    }
18529    #[doc = "Visit a node of type `Vec < SwitchCase >`.\n\nBy default, this method calls [`Vec < \
18530             SwitchCase >::visit_children_with_ast_path`]. If you want to recurse, you need to \
18531             call it manually."]
18532    #[inline]
18533    fn visit_switch_cases<'ast: 'r, 'r>(
18534        &mut self,
18535        node: &'ast [SwitchCase],
18536        __ast_path: &mut AstNodePath<'r>,
18537    ) {
18538        <[SwitchCase] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18539            node, self, __ast_path,
18540        )
18541    }
18542    #[doc = "Visit a node of type `SwitchStmt`.\n\nBy default, this method calls \
18543             [`SwitchStmt::visit_children_with_ast_path`]. If you want to recurse, you need to \
18544             call it manually."]
18545    #[inline]
18546    fn visit_switch_stmt<'ast: 'r, 'r>(
18547        &mut self,
18548        node: &'ast SwitchStmt,
18549        __ast_path: &mut AstNodePath<'r>,
18550    ) {
18551        <SwitchStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18552    }
18553    #[doc = "Visit a node of type `swc_common :: SyntaxContext`.\n\nBy default, this method calls \
18554             [`swc_common :: SyntaxContext::visit_children_with_ast_path`]. If you want to \
18555             recurse, you need to call it manually."]
18556    #[inline]
18557    fn visit_syntax_context<'ast: 'r, 'r>(
18558        &mut self,
18559        node: &'ast swc_common::SyntaxContext,
18560        __ast_path: &mut AstNodePath<'r>,
18561    ) {
18562        <swc_common::SyntaxContext as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18563            node, self, __ast_path,
18564        )
18565    }
18566    #[doc = "Visit a node of type `TaggedTpl`.\n\nBy default, this method calls \
18567             [`TaggedTpl::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18568             it manually."]
18569    #[inline]
18570    fn visit_tagged_tpl<'ast: 'r, 'r>(
18571        &mut self,
18572        node: &'ast TaggedTpl,
18573        __ast_path: &mut AstNodePath<'r>,
18574    ) {
18575        <TaggedTpl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18576    }
18577    #[doc = "Visit a node of type `ThisExpr`.\n\nBy default, this method calls \
18578             [`ThisExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18579             it manually."]
18580    #[inline]
18581    fn visit_this_expr<'ast: 'r, 'r>(
18582        &mut self,
18583        node: &'ast ThisExpr,
18584        __ast_path: &mut AstNodePath<'r>,
18585    ) {
18586        <ThisExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18587    }
18588    #[doc = "Visit a node of type `ThrowStmt`.\n\nBy default, this method calls \
18589             [`ThrowStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18590             it manually."]
18591    #[inline]
18592    fn visit_throw_stmt<'ast: 'r, 'r>(
18593        &mut self,
18594        node: &'ast ThrowStmt,
18595        __ast_path: &mut AstNodePath<'r>,
18596    ) {
18597        <ThrowStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18598    }
18599    #[doc = "Visit a node of type `Tpl`.\n\nBy default, this method calls \
18600             [`Tpl::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18601             manually."]
18602    #[inline]
18603    fn visit_tpl<'ast: 'r, 'r>(&mut self, node: &'ast Tpl, __ast_path: &mut AstNodePath<'r>) {
18604        <Tpl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18605    }
18606    #[doc = "Visit a node of type `TplElement`.\n\nBy default, this method calls \
18607             [`TplElement::visit_children_with_ast_path`]. If you want to recurse, you need to \
18608             call it manually."]
18609    #[inline]
18610    fn visit_tpl_element<'ast: 'r, 'r>(
18611        &mut self,
18612        node: &'ast TplElement,
18613        __ast_path: &mut AstNodePath<'r>,
18614    ) {
18615        <TplElement as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18616    }
18617    #[doc = "Visit a node of type `Vec < TplElement >`.\n\nBy default, this method calls [`Vec < \
18618             TplElement >::visit_children_with_ast_path`]. If you want to recurse, you need to \
18619             call it manually."]
18620    #[inline]
18621    fn visit_tpl_elements<'ast: 'r, 'r>(
18622        &mut self,
18623        node: &'ast [TplElement],
18624        __ast_path: &mut AstNodePath<'r>,
18625    ) {
18626        <[TplElement] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18627            node, self, __ast_path,
18628        )
18629    }
18630    #[doc = "Visit a node of type `TruePlusMinus`.\n\nBy default, this method calls \
18631             [`TruePlusMinus::visit_children_with_ast_path`]. If you want to recurse, you need to \
18632             call it manually."]
18633    #[inline]
18634    fn visit_true_plus_minus<'ast: 'r, 'r>(
18635        &mut self,
18636        node: &'ast TruePlusMinus,
18637        __ast_path: &mut AstNodePath<'r>,
18638    ) {
18639        <TruePlusMinus as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18640            node, self, __ast_path,
18641        )
18642    }
18643    #[doc = "Visit a node of type `TryStmt`.\n\nBy default, this method calls \
18644             [`TryStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18645             it manually."]
18646    #[inline]
18647    fn visit_try_stmt<'ast: 'r, 'r>(
18648        &mut self,
18649        node: &'ast TryStmt,
18650        __ast_path: &mut AstNodePath<'r>,
18651    ) {
18652        <TryStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18653    }
18654    #[doc = "Visit a node of type `TsArrayType`.\n\nBy default, this method calls \
18655             [`TsArrayType::visit_children_with_ast_path`]. If you want to recurse, you need to \
18656             call it manually."]
18657    #[inline]
18658    fn visit_ts_array_type<'ast: 'r, 'r>(
18659        &mut self,
18660        node: &'ast TsArrayType,
18661        __ast_path: &mut AstNodePath<'r>,
18662    ) {
18663        <TsArrayType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18664            node, self, __ast_path,
18665        )
18666    }
18667    #[doc = "Visit a node of type `TsAsExpr`.\n\nBy default, this method calls \
18668             [`TsAsExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18669             it manually."]
18670    #[inline]
18671    fn visit_ts_as_expr<'ast: 'r, 'r>(
18672        &mut self,
18673        node: &'ast TsAsExpr,
18674        __ast_path: &mut AstNodePath<'r>,
18675    ) {
18676        <TsAsExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18677    }
18678    #[doc = "Visit a node of type `TsCallSignatureDecl`.\n\nBy default, this method calls \
18679             [`TsCallSignatureDecl::visit_children_with_ast_path`]. If you want to recurse, you \
18680             need to call it manually."]
18681    #[inline]
18682    fn visit_ts_call_signature_decl<'ast: 'r, 'r>(
18683        &mut self,
18684        node: &'ast TsCallSignatureDecl,
18685        __ast_path: &mut AstNodePath<'r>,
18686    ) {
18687        <TsCallSignatureDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18688            node, self, __ast_path,
18689        )
18690    }
18691    #[doc = "Visit a node of type `TsConditionalType`.\n\nBy default, this method calls \
18692             [`TsConditionalType::visit_children_with_ast_path`]. If you want to recurse, you need \
18693             to call it manually."]
18694    #[inline]
18695    fn visit_ts_conditional_type<'ast: 'r, 'r>(
18696        &mut self,
18697        node: &'ast TsConditionalType,
18698        __ast_path: &mut AstNodePath<'r>,
18699    ) {
18700        <TsConditionalType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18701            node, self, __ast_path,
18702        )
18703    }
18704    #[doc = "Visit a node of type `TsConstAssertion`.\n\nBy default, this method calls \
18705             [`TsConstAssertion::visit_children_with_ast_path`]. If you want to recurse, you need \
18706             to call it manually."]
18707    #[inline]
18708    fn visit_ts_const_assertion<'ast: 'r, 'r>(
18709        &mut self,
18710        node: &'ast TsConstAssertion,
18711        __ast_path: &mut AstNodePath<'r>,
18712    ) {
18713        <TsConstAssertion as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18714            node, self, __ast_path,
18715        )
18716    }
18717    #[doc = "Visit a node of type `TsConstructSignatureDecl`.\n\nBy default, this method calls \
18718             [`TsConstructSignatureDecl::visit_children_with_ast_path`]. If you want to recurse, \
18719             you need to call it manually."]
18720    #[inline]
18721    fn visit_ts_construct_signature_decl<'ast: 'r, 'r>(
18722        &mut self,
18723        node: &'ast TsConstructSignatureDecl,
18724        __ast_path: &mut AstNodePath<'r>,
18725    ) {
18726        <TsConstructSignatureDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18727            node, self, __ast_path,
18728        )
18729    }
18730    #[doc = "Visit a node of type `TsConstructorType`.\n\nBy default, this method calls \
18731             [`TsConstructorType::visit_children_with_ast_path`]. If you want to recurse, you need \
18732             to call it manually."]
18733    #[inline]
18734    fn visit_ts_constructor_type<'ast: 'r, 'r>(
18735        &mut self,
18736        node: &'ast TsConstructorType,
18737        __ast_path: &mut AstNodePath<'r>,
18738    ) {
18739        <TsConstructorType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18740            node, self, __ast_path,
18741        )
18742    }
18743    #[doc = "Visit a node of type `TsEntityName`.\n\nBy default, this method calls \
18744             [`TsEntityName::visit_children_with_ast_path`]. If you want to recurse, you need to \
18745             call it manually."]
18746    #[inline]
18747    fn visit_ts_entity_name<'ast: 'r, 'r>(
18748        &mut self,
18749        node: &'ast TsEntityName,
18750        __ast_path: &mut AstNodePath<'r>,
18751    ) {
18752        <TsEntityName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18753            node, self, __ast_path,
18754        )
18755    }
18756    #[doc = "Visit a node of type `TsEnumDecl`.\n\nBy default, this method calls \
18757             [`TsEnumDecl::visit_children_with_ast_path`]. If you want to recurse, you need to \
18758             call it manually."]
18759    #[inline]
18760    fn visit_ts_enum_decl<'ast: 'r, 'r>(
18761        &mut self,
18762        node: &'ast TsEnumDecl,
18763        __ast_path: &mut AstNodePath<'r>,
18764    ) {
18765        <TsEnumDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18766    }
18767    #[doc = "Visit a node of type `TsEnumMember`.\n\nBy default, this method calls \
18768             [`TsEnumMember::visit_children_with_ast_path`]. If you want to recurse, you need to \
18769             call it manually."]
18770    #[inline]
18771    fn visit_ts_enum_member<'ast: 'r, 'r>(
18772        &mut self,
18773        node: &'ast TsEnumMember,
18774        __ast_path: &mut AstNodePath<'r>,
18775    ) {
18776        <TsEnumMember as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18777            node, self, __ast_path,
18778        )
18779    }
18780    #[doc = "Visit a node of type `TsEnumMemberId`.\n\nBy default, this method calls \
18781             [`TsEnumMemberId::visit_children_with_ast_path`]. If you want to recurse, you need to \
18782             call it manually."]
18783    #[inline]
18784    fn visit_ts_enum_member_id<'ast: 'r, 'r>(
18785        &mut self,
18786        node: &'ast TsEnumMemberId,
18787        __ast_path: &mut AstNodePath<'r>,
18788    ) {
18789        <TsEnumMemberId as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18790            node, self, __ast_path,
18791        )
18792    }
18793    #[doc = "Visit a node of type `Vec < TsEnumMember >`.\n\nBy default, this method calls [`Vec < \
18794             TsEnumMember >::visit_children_with_ast_path`]. If you want to recurse, you need to \
18795             call it manually."]
18796    #[inline]
18797    fn visit_ts_enum_members<'ast: 'r, 'r>(
18798        &mut self,
18799        node: &'ast [TsEnumMember],
18800        __ast_path: &mut AstNodePath<'r>,
18801    ) {
18802        <[TsEnumMember] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18803            node, self, __ast_path,
18804        )
18805    }
18806    #[doc = "Visit a node of type `TsExportAssignment`.\n\nBy default, this method calls \
18807             [`TsExportAssignment::visit_children_with_ast_path`]. If you want to recurse, you \
18808             need to call it manually."]
18809    #[inline]
18810    fn visit_ts_export_assignment<'ast: 'r, 'r>(
18811        &mut self,
18812        node: &'ast TsExportAssignment,
18813        __ast_path: &mut AstNodePath<'r>,
18814    ) {
18815        <TsExportAssignment as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18816            node, self, __ast_path,
18817        )
18818    }
18819    #[doc = "Visit a node of type `TsExprWithTypeArgs`.\n\nBy default, this method calls \
18820             [`TsExprWithTypeArgs::visit_children_with_ast_path`]. If you want to recurse, you \
18821             need to call it manually."]
18822    #[inline]
18823    fn visit_ts_expr_with_type_args<'ast: 'r, 'r>(
18824        &mut self,
18825        node: &'ast TsExprWithTypeArgs,
18826        __ast_path: &mut AstNodePath<'r>,
18827    ) {
18828        <TsExprWithTypeArgs as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18829            node, self, __ast_path,
18830        )
18831    }
18832    #[doc = "Visit a node of type `Vec < TsExprWithTypeArgs >`.\n\nBy default, this method calls \
18833             [`Vec < TsExprWithTypeArgs >::visit_children_with_ast_path`]. If you want to recurse, \
18834             you need to call it manually."]
18835    #[inline]
18836    fn visit_ts_expr_with_type_argss<'ast: 'r, 'r>(
18837        &mut self,
18838        node: &'ast [TsExprWithTypeArgs],
18839        __ast_path: &mut AstNodePath<'r>,
18840    ) {
18841        <[TsExprWithTypeArgs] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18842            node, self, __ast_path,
18843        )
18844    }
18845    #[doc = "Visit a node of type `TsExternalModuleRef`.\n\nBy default, this method calls \
18846             [`TsExternalModuleRef::visit_children_with_ast_path`]. If you want to recurse, you \
18847             need to call it manually."]
18848    #[inline]
18849    fn visit_ts_external_module_ref<'ast: 'r, 'r>(
18850        &mut self,
18851        node: &'ast TsExternalModuleRef,
18852        __ast_path: &mut AstNodePath<'r>,
18853    ) {
18854        <TsExternalModuleRef as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18855            node, self, __ast_path,
18856        )
18857    }
18858    #[doc = "Visit a node of type `TsFnOrConstructorType`.\n\nBy default, this method calls \
18859             [`TsFnOrConstructorType::visit_children_with_ast_path`]. If you want to recurse, you \
18860             need to call it manually."]
18861    #[inline]
18862    fn visit_ts_fn_or_constructor_type<'ast: 'r, 'r>(
18863        &mut self,
18864        node: &'ast TsFnOrConstructorType,
18865        __ast_path: &mut AstNodePath<'r>,
18866    ) {
18867        <TsFnOrConstructorType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18868            node, self, __ast_path,
18869        )
18870    }
18871    #[doc = "Visit a node of type `TsFnParam`.\n\nBy default, this method calls \
18872             [`TsFnParam::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18873             it manually."]
18874    #[inline]
18875    fn visit_ts_fn_param<'ast: 'r, 'r>(
18876        &mut self,
18877        node: &'ast TsFnParam,
18878        __ast_path: &mut AstNodePath<'r>,
18879    ) {
18880        <TsFnParam as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18881    }
18882    #[doc = "Visit a node of type `Vec < TsFnParam >`.\n\nBy default, this method calls [`Vec < \
18883             TsFnParam >::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18884             it manually."]
18885    #[inline]
18886    fn visit_ts_fn_params<'ast: 'r, 'r>(
18887        &mut self,
18888        node: &'ast [TsFnParam],
18889        __ast_path: &mut AstNodePath<'r>,
18890    ) {
18891        <[TsFnParam] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18892            node, self, __ast_path,
18893        )
18894    }
18895    #[doc = "Visit a node of type `TsFnType`.\n\nBy default, this method calls \
18896             [`TsFnType::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18897             it manually."]
18898    #[inline]
18899    fn visit_ts_fn_type<'ast: 'r, 'r>(
18900        &mut self,
18901        node: &'ast TsFnType,
18902        __ast_path: &mut AstNodePath<'r>,
18903    ) {
18904        <TsFnType as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18905    }
18906    #[doc = "Visit a node of type `TsGetterSignature`.\n\nBy default, this method calls \
18907             [`TsGetterSignature::visit_children_with_ast_path`]. If you want to recurse, you need \
18908             to call it manually."]
18909    #[inline]
18910    fn visit_ts_getter_signature<'ast: 'r, 'r>(
18911        &mut self,
18912        node: &'ast TsGetterSignature,
18913        __ast_path: &mut AstNodePath<'r>,
18914    ) {
18915        <TsGetterSignature as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18916            node, self, __ast_path,
18917        )
18918    }
18919    #[doc = "Visit a node of type `TsImportCallOptions`.\n\nBy default, this method calls \
18920             [`TsImportCallOptions::visit_children_with_ast_path`]. If you want to recurse, you \
18921             need to call it manually."]
18922    #[inline]
18923    fn visit_ts_import_call_options<'ast: 'r, 'r>(
18924        &mut self,
18925        node: &'ast TsImportCallOptions,
18926        __ast_path: &mut AstNodePath<'r>,
18927    ) {
18928        <TsImportCallOptions as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18929            node, self, __ast_path,
18930        )
18931    }
18932    #[doc = "Visit a node of type `TsImportEqualsDecl`.\n\nBy default, this method calls \
18933             [`TsImportEqualsDecl::visit_children_with_ast_path`]. If you want to recurse, you \
18934             need to call it manually."]
18935    #[inline]
18936    fn visit_ts_import_equals_decl<'ast: 'r, 'r>(
18937        &mut self,
18938        node: &'ast TsImportEqualsDecl,
18939        __ast_path: &mut AstNodePath<'r>,
18940    ) {
18941        <TsImportEqualsDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18942            node, self, __ast_path,
18943        )
18944    }
18945    #[doc = "Visit a node of type `TsImportType`.\n\nBy default, this method calls \
18946             [`TsImportType::visit_children_with_ast_path`]. If you want to recurse, you need to \
18947             call it manually."]
18948    #[inline]
18949    fn visit_ts_import_type<'ast: 'r, 'r>(
18950        &mut self,
18951        node: &'ast TsImportType,
18952        __ast_path: &mut AstNodePath<'r>,
18953    ) {
18954        <TsImportType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18955            node, self, __ast_path,
18956        )
18957    }
18958    #[doc = "Visit a node of type `TsIndexSignature`.\n\nBy default, this method calls \
18959             [`TsIndexSignature::visit_children_with_ast_path`]. If you want to recurse, you need \
18960             to call it manually."]
18961    #[inline]
18962    fn visit_ts_index_signature<'ast: 'r, 'r>(
18963        &mut self,
18964        node: &'ast TsIndexSignature,
18965        __ast_path: &mut AstNodePath<'r>,
18966    ) {
18967        <TsIndexSignature as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18968            node, self, __ast_path,
18969        )
18970    }
18971    #[doc = "Visit a node of type `TsIndexedAccessType`.\n\nBy default, this method calls \
18972             [`TsIndexedAccessType::visit_children_with_ast_path`]. If you want to recurse, you \
18973             need to call it manually."]
18974    #[inline]
18975    fn visit_ts_indexed_access_type<'ast: 'r, 'r>(
18976        &mut self,
18977        node: &'ast TsIndexedAccessType,
18978        __ast_path: &mut AstNodePath<'r>,
18979    ) {
18980        <TsIndexedAccessType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18981            node, self, __ast_path,
18982        )
18983    }
18984    #[doc = "Visit a node of type `TsInferType`.\n\nBy default, this method calls \
18985             [`TsInferType::visit_children_with_ast_path`]. If you want to recurse, you need to \
18986             call it manually."]
18987    #[inline]
18988    fn visit_ts_infer_type<'ast: 'r, 'r>(
18989        &mut self,
18990        node: &'ast TsInferType,
18991        __ast_path: &mut AstNodePath<'r>,
18992    ) {
18993        <TsInferType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18994            node, self, __ast_path,
18995        )
18996    }
18997    #[doc = "Visit a node of type `TsInstantiation`.\n\nBy default, this method calls \
18998             [`TsInstantiation::visit_children_with_ast_path`]. If you want to recurse, you need \
18999             to call it manually."]
19000    #[inline]
19001    fn visit_ts_instantiation<'ast: 'r, 'r>(
19002        &mut self,
19003        node: &'ast TsInstantiation,
19004        __ast_path: &mut AstNodePath<'r>,
19005    ) {
19006        <TsInstantiation as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19007            node, self, __ast_path,
19008        )
19009    }
19010    #[doc = "Visit a node of type `TsInterfaceBody`.\n\nBy default, this method calls \
19011             [`TsInterfaceBody::visit_children_with_ast_path`]. If you want to recurse, you need \
19012             to call it manually."]
19013    #[inline]
19014    fn visit_ts_interface_body<'ast: 'r, 'r>(
19015        &mut self,
19016        node: &'ast TsInterfaceBody,
19017        __ast_path: &mut AstNodePath<'r>,
19018    ) {
19019        <TsInterfaceBody as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19020            node, self, __ast_path,
19021        )
19022    }
19023    #[doc = "Visit a node of type `TsInterfaceDecl`.\n\nBy default, this method calls \
19024             [`TsInterfaceDecl::visit_children_with_ast_path`]. If you want to recurse, you need \
19025             to call it manually."]
19026    #[inline]
19027    fn visit_ts_interface_decl<'ast: 'r, 'r>(
19028        &mut self,
19029        node: &'ast TsInterfaceDecl,
19030        __ast_path: &mut AstNodePath<'r>,
19031    ) {
19032        <TsInterfaceDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19033            node, self, __ast_path,
19034        )
19035    }
19036    #[doc = "Visit a node of type `TsIntersectionType`.\n\nBy default, this method calls \
19037             [`TsIntersectionType::visit_children_with_ast_path`]. If you want to recurse, you \
19038             need to call it manually."]
19039    #[inline]
19040    fn visit_ts_intersection_type<'ast: 'r, 'r>(
19041        &mut self,
19042        node: &'ast TsIntersectionType,
19043        __ast_path: &mut AstNodePath<'r>,
19044    ) {
19045        <TsIntersectionType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19046            node, self, __ast_path,
19047        )
19048    }
19049    #[doc = "Visit a node of type `TsKeywordType`.\n\nBy default, this method calls \
19050             [`TsKeywordType::visit_children_with_ast_path`]. If you want to recurse, you need to \
19051             call it manually."]
19052    #[inline]
19053    fn visit_ts_keyword_type<'ast: 'r, 'r>(
19054        &mut self,
19055        node: &'ast TsKeywordType,
19056        __ast_path: &mut AstNodePath<'r>,
19057    ) {
19058        <TsKeywordType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19059            node, self, __ast_path,
19060        )
19061    }
19062    #[doc = "Visit a node of type `TsKeywordTypeKind`.\n\nBy default, this method calls \
19063             [`TsKeywordTypeKind::visit_children_with_ast_path`]. If you want to recurse, you need \
19064             to call it manually."]
19065    #[inline]
19066    fn visit_ts_keyword_type_kind<'ast: 'r, 'r>(
19067        &mut self,
19068        node: &'ast TsKeywordTypeKind,
19069        __ast_path: &mut AstNodePath<'r>,
19070    ) {
19071        <TsKeywordTypeKind as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19072            node, self, __ast_path,
19073        )
19074    }
19075    #[doc = "Visit a node of type `TsLit`.\n\nBy default, this method calls \
19076             [`TsLit::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
19077             manually."]
19078    #[inline]
19079    fn visit_ts_lit<'ast: 'r, 'r>(&mut self, node: &'ast TsLit, __ast_path: &mut AstNodePath<'r>) {
19080        <TsLit as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19081    }
19082    #[doc = "Visit a node of type `TsLitType`.\n\nBy default, this method calls \
19083             [`TsLitType::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19084             it manually."]
19085    #[inline]
19086    fn visit_ts_lit_type<'ast: 'r, 'r>(
19087        &mut self,
19088        node: &'ast TsLitType,
19089        __ast_path: &mut AstNodePath<'r>,
19090    ) {
19091        <TsLitType as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19092    }
19093    #[doc = "Visit a node of type `TsMappedType`.\n\nBy default, this method calls \
19094             [`TsMappedType::visit_children_with_ast_path`]. If you want to recurse, you need to \
19095             call it manually."]
19096    #[inline]
19097    fn visit_ts_mapped_type<'ast: 'r, 'r>(
19098        &mut self,
19099        node: &'ast TsMappedType,
19100        __ast_path: &mut AstNodePath<'r>,
19101    ) {
19102        <TsMappedType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19103            node, self, __ast_path,
19104        )
19105    }
19106    #[doc = "Visit a node of type `TsMethodSignature`.\n\nBy default, this method calls \
19107             [`TsMethodSignature::visit_children_with_ast_path`]. If you want to recurse, you need \
19108             to call it manually."]
19109    #[inline]
19110    fn visit_ts_method_signature<'ast: 'r, 'r>(
19111        &mut self,
19112        node: &'ast TsMethodSignature,
19113        __ast_path: &mut AstNodePath<'r>,
19114    ) {
19115        <TsMethodSignature as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19116            node, self, __ast_path,
19117        )
19118    }
19119    #[doc = "Visit a node of type `TsModuleBlock`.\n\nBy default, this method calls \
19120             [`TsModuleBlock::visit_children_with_ast_path`]. If you want to recurse, you need to \
19121             call it manually."]
19122    #[inline]
19123    fn visit_ts_module_block<'ast: 'r, 'r>(
19124        &mut self,
19125        node: &'ast TsModuleBlock,
19126        __ast_path: &mut AstNodePath<'r>,
19127    ) {
19128        <TsModuleBlock as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19129            node, self, __ast_path,
19130        )
19131    }
19132    #[doc = "Visit a node of type `TsModuleDecl`.\n\nBy default, this method calls \
19133             [`TsModuleDecl::visit_children_with_ast_path`]. If you want to recurse, you need to \
19134             call it manually."]
19135    #[inline]
19136    fn visit_ts_module_decl<'ast: 'r, 'r>(
19137        &mut self,
19138        node: &'ast TsModuleDecl,
19139        __ast_path: &mut AstNodePath<'r>,
19140    ) {
19141        <TsModuleDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19142            node, self, __ast_path,
19143        )
19144    }
19145    #[doc = "Visit a node of type `TsModuleName`.\n\nBy default, this method calls \
19146             [`TsModuleName::visit_children_with_ast_path`]. If you want to recurse, you need to \
19147             call it manually."]
19148    #[inline]
19149    fn visit_ts_module_name<'ast: 'r, 'r>(
19150        &mut self,
19151        node: &'ast TsModuleName,
19152        __ast_path: &mut AstNodePath<'r>,
19153    ) {
19154        <TsModuleName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19155            node, self, __ast_path,
19156        )
19157    }
19158    #[doc = "Visit a node of type `TsModuleRef`.\n\nBy default, this method calls \
19159             [`TsModuleRef::visit_children_with_ast_path`]. If you want to recurse, you need to \
19160             call it manually."]
19161    #[inline]
19162    fn visit_ts_module_ref<'ast: 'r, 'r>(
19163        &mut self,
19164        node: &'ast TsModuleRef,
19165        __ast_path: &mut AstNodePath<'r>,
19166    ) {
19167        <TsModuleRef as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19168            node, self, __ast_path,
19169        )
19170    }
19171    #[doc = "Visit a node of type `TsNamespaceBody`.\n\nBy default, this method calls \
19172             [`TsNamespaceBody::visit_children_with_ast_path`]. If you want to recurse, you need \
19173             to call it manually."]
19174    #[inline]
19175    fn visit_ts_namespace_body<'ast: 'r, 'r>(
19176        &mut self,
19177        node: &'ast TsNamespaceBody,
19178        __ast_path: &mut AstNodePath<'r>,
19179    ) {
19180        <TsNamespaceBody as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19181            node, self, __ast_path,
19182        )
19183    }
19184    #[doc = "Visit a node of type `TsNamespaceDecl`.\n\nBy default, this method calls \
19185             [`TsNamespaceDecl::visit_children_with_ast_path`]. If you want to recurse, you need \
19186             to call it manually."]
19187    #[inline]
19188    fn visit_ts_namespace_decl<'ast: 'r, 'r>(
19189        &mut self,
19190        node: &'ast TsNamespaceDecl,
19191        __ast_path: &mut AstNodePath<'r>,
19192    ) {
19193        <TsNamespaceDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19194            node, self, __ast_path,
19195        )
19196    }
19197    #[doc = "Visit a node of type `TsNamespaceExportDecl`.\n\nBy default, this method calls \
19198             [`TsNamespaceExportDecl::visit_children_with_ast_path`]. If you want to recurse, you \
19199             need to call it manually."]
19200    #[inline]
19201    fn visit_ts_namespace_export_decl<'ast: 'r, 'r>(
19202        &mut self,
19203        node: &'ast TsNamespaceExportDecl,
19204        __ast_path: &mut AstNodePath<'r>,
19205    ) {
19206        <TsNamespaceExportDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19207            node, self, __ast_path,
19208        )
19209    }
19210    #[doc = "Visit a node of type `TsNonNullExpr`.\n\nBy default, this method calls \
19211             [`TsNonNullExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
19212             call it manually."]
19213    #[inline]
19214    fn visit_ts_non_null_expr<'ast: 'r, 'r>(
19215        &mut self,
19216        node: &'ast TsNonNullExpr,
19217        __ast_path: &mut AstNodePath<'r>,
19218    ) {
19219        <TsNonNullExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19220            node, self, __ast_path,
19221        )
19222    }
19223    #[doc = "Visit a node of type `TsOptionalType`.\n\nBy default, this method calls \
19224             [`TsOptionalType::visit_children_with_ast_path`]. If you want to recurse, you need to \
19225             call it manually."]
19226    #[inline]
19227    fn visit_ts_optional_type<'ast: 'r, 'r>(
19228        &mut self,
19229        node: &'ast TsOptionalType,
19230        __ast_path: &mut AstNodePath<'r>,
19231    ) {
19232        <TsOptionalType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19233            node, self, __ast_path,
19234        )
19235    }
19236    #[doc = "Visit a node of type `TsParamProp`.\n\nBy default, this method calls \
19237             [`TsParamProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
19238             call it manually."]
19239    #[inline]
19240    fn visit_ts_param_prop<'ast: 'r, 'r>(
19241        &mut self,
19242        node: &'ast TsParamProp,
19243        __ast_path: &mut AstNodePath<'r>,
19244    ) {
19245        <TsParamProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19246            node, self, __ast_path,
19247        )
19248    }
19249    #[doc = "Visit a node of type `TsParamPropParam`.\n\nBy default, this method calls \
19250             [`TsParamPropParam::visit_children_with_ast_path`]. If you want to recurse, you need \
19251             to call it manually."]
19252    #[inline]
19253    fn visit_ts_param_prop_param<'ast: 'r, 'r>(
19254        &mut self,
19255        node: &'ast TsParamPropParam,
19256        __ast_path: &mut AstNodePath<'r>,
19257    ) {
19258        <TsParamPropParam as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19259            node, self, __ast_path,
19260        )
19261    }
19262    #[doc = "Visit a node of type `TsParenthesizedType`.\n\nBy default, this method calls \
19263             [`TsParenthesizedType::visit_children_with_ast_path`]. If you want to recurse, you \
19264             need to call it manually."]
19265    #[inline]
19266    fn visit_ts_parenthesized_type<'ast: 'r, 'r>(
19267        &mut self,
19268        node: &'ast TsParenthesizedType,
19269        __ast_path: &mut AstNodePath<'r>,
19270    ) {
19271        <TsParenthesizedType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19272            node, self, __ast_path,
19273        )
19274    }
19275    #[doc = "Visit a node of type `TsPropertySignature`.\n\nBy default, this method calls \
19276             [`TsPropertySignature::visit_children_with_ast_path`]. If you want to recurse, you \
19277             need to call it manually."]
19278    #[inline]
19279    fn visit_ts_property_signature<'ast: 'r, 'r>(
19280        &mut self,
19281        node: &'ast TsPropertySignature,
19282        __ast_path: &mut AstNodePath<'r>,
19283    ) {
19284        <TsPropertySignature as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19285            node, self, __ast_path,
19286        )
19287    }
19288    #[doc = "Visit a node of type `TsQualifiedName`.\n\nBy default, this method calls \
19289             [`TsQualifiedName::visit_children_with_ast_path`]. If you want to recurse, you need \
19290             to call it manually."]
19291    #[inline]
19292    fn visit_ts_qualified_name<'ast: 'r, 'r>(
19293        &mut self,
19294        node: &'ast TsQualifiedName,
19295        __ast_path: &mut AstNodePath<'r>,
19296    ) {
19297        <TsQualifiedName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19298            node, self, __ast_path,
19299        )
19300    }
19301    #[doc = "Visit a node of type `TsRestType`.\n\nBy default, this method calls \
19302             [`TsRestType::visit_children_with_ast_path`]. If you want to recurse, you need to \
19303             call it manually."]
19304    #[inline]
19305    fn visit_ts_rest_type<'ast: 'r, 'r>(
19306        &mut self,
19307        node: &'ast TsRestType,
19308        __ast_path: &mut AstNodePath<'r>,
19309    ) {
19310        <TsRestType as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19311    }
19312    #[doc = "Visit a node of type `TsSatisfiesExpr`.\n\nBy default, this method calls \
19313             [`TsSatisfiesExpr::visit_children_with_ast_path`]. If you want to recurse, you need \
19314             to call it manually."]
19315    #[inline]
19316    fn visit_ts_satisfies_expr<'ast: 'r, 'r>(
19317        &mut self,
19318        node: &'ast TsSatisfiesExpr,
19319        __ast_path: &mut AstNodePath<'r>,
19320    ) {
19321        <TsSatisfiesExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19322            node, self, __ast_path,
19323        )
19324    }
19325    #[doc = "Visit a node of type `TsSetterSignature`.\n\nBy default, this method calls \
19326             [`TsSetterSignature::visit_children_with_ast_path`]. If you want to recurse, you need \
19327             to call it manually."]
19328    #[inline]
19329    fn visit_ts_setter_signature<'ast: 'r, 'r>(
19330        &mut self,
19331        node: &'ast TsSetterSignature,
19332        __ast_path: &mut AstNodePath<'r>,
19333    ) {
19334        <TsSetterSignature as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19335            node, self, __ast_path,
19336        )
19337    }
19338    #[doc = "Visit a node of type `TsThisType`.\n\nBy default, this method calls \
19339             [`TsThisType::visit_children_with_ast_path`]. If you want to recurse, you need to \
19340             call it manually."]
19341    #[inline]
19342    fn visit_ts_this_type<'ast: 'r, 'r>(
19343        &mut self,
19344        node: &'ast TsThisType,
19345        __ast_path: &mut AstNodePath<'r>,
19346    ) {
19347        <TsThisType as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19348    }
19349    #[doc = "Visit a node of type `TsThisTypeOrIdent`.\n\nBy default, this method calls \
19350             [`TsThisTypeOrIdent::visit_children_with_ast_path`]. If you want to recurse, you need \
19351             to call it manually."]
19352    #[inline]
19353    fn visit_ts_this_type_or_ident<'ast: 'r, 'r>(
19354        &mut self,
19355        node: &'ast TsThisTypeOrIdent,
19356        __ast_path: &mut AstNodePath<'r>,
19357    ) {
19358        <TsThisTypeOrIdent as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19359            node, self, __ast_path,
19360        )
19361    }
19362    #[doc = "Visit a node of type `TsTplLitType`.\n\nBy default, this method calls \
19363             [`TsTplLitType::visit_children_with_ast_path`]. If you want to recurse, you need to \
19364             call it manually."]
19365    #[inline]
19366    fn visit_ts_tpl_lit_type<'ast: 'r, 'r>(
19367        &mut self,
19368        node: &'ast TsTplLitType,
19369        __ast_path: &mut AstNodePath<'r>,
19370    ) {
19371        <TsTplLitType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19372            node, self, __ast_path,
19373        )
19374    }
19375    #[doc = "Visit a node of type `TsTupleElement`.\n\nBy default, this method calls \
19376             [`TsTupleElement::visit_children_with_ast_path`]. If you want to recurse, you need to \
19377             call it manually."]
19378    #[inline]
19379    fn visit_ts_tuple_element<'ast: 'r, 'r>(
19380        &mut self,
19381        node: &'ast TsTupleElement,
19382        __ast_path: &mut AstNodePath<'r>,
19383    ) {
19384        <TsTupleElement as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19385            node, self, __ast_path,
19386        )
19387    }
19388    #[doc = "Visit a node of type `Vec < TsTupleElement >`.\n\nBy default, this method calls [`Vec \
19389             < TsTupleElement >::visit_children_with_ast_path`]. If you want to recurse, you need \
19390             to call it manually."]
19391    #[inline]
19392    fn visit_ts_tuple_elements<'ast: 'r, 'r>(
19393        &mut self,
19394        node: &'ast [TsTupleElement],
19395        __ast_path: &mut AstNodePath<'r>,
19396    ) {
19397        <[TsTupleElement] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19398            node, self, __ast_path,
19399        )
19400    }
19401    #[doc = "Visit a node of type `TsTupleType`.\n\nBy default, this method calls \
19402             [`TsTupleType::visit_children_with_ast_path`]. If you want to recurse, you need to \
19403             call it manually."]
19404    #[inline]
19405    fn visit_ts_tuple_type<'ast: 'r, 'r>(
19406        &mut self,
19407        node: &'ast TsTupleType,
19408        __ast_path: &mut AstNodePath<'r>,
19409    ) {
19410        <TsTupleType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19411            node, self, __ast_path,
19412        )
19413    }
19414    #[doc = "Visit a node of type `TsType`.\n\nBy default, this method calls \
19415             [`TsType::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
19416             manually."]
19417    #[inline]
19418    fn visit_ts_type<'ast: 'r, 'r>(
19419        &mut self,
19420        node: &'ast TsType,
19421        __ast_path: &mut AstNodePath<'r>,
19422    ) {
19423        <TsType as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19424    }
19425    #[doc = "Visit a node of type `TsTypeAliasDecl`.\n\nBy default, this method calls \
19426             [`TsTypeAliasDecl::visit_children_with_ast_path`]. If you want to recurse, you need \
19427             to call it manually."]
19428    #[inline]
19429    fn visit_ts_type_alias_decl<'ast: 'r, 'r>(
19430        &mut self,
19431        node: &'ast TsTypeAliasDecl,
19432        __ast_path: &mut AstNodePath<'r>,
19433    ) {
19434        <TsTypeAliasDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19435            node, self, __ast_path,
19436        )
19437    }
19438    #[doc = "Visit a node of type `TsTypeAnn`.\n\nBy default, this method calls \
19439             [`TsTypeAnn::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19440             it manually."]
19441    #[inline]
19442    fn visit_ts_type_ann<'ast: 'r, 'r>(
19443        &mut self,
19444        node: &'ast TsTypeAnn,
19445        __ast_path: &mut AstNodePath<'r>,
19446    ) {
19447        <TsTypeAnn as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19448    }
19449    #[doc = "Visit a node of type `TsTypeAssertion`.\n\nBy default, this method calls \
19450             [`TsTypeAssertion::visit_children_with_ast_path`]. If you want to recurse, you need \
19451             to call it manually."]
19452    #[inline]
19453    fn visit_ts_type_assertion<'ast: 'r, 'r>(
19454        &mut self,
19455        node: &'ast TsTypeAssertion,
19456        __ast_path: &mut AstNodePath<'r>,
19457    ) {
19458        <TsTypeAssertion as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19459            node, self, __ast_path,
19460        )
19461    }
19462    #[doc = "Visit a node of type `TsTypeElement`.\n\nBy default, this method calls \
19463             [`TsTypeElement::visit_children_with_ast_path`]. If you want to recurse, you need to \
19464             call it manually."]
19465    #[inline]
19466    fn visit_ts_type_element<'ast: 'r, 'r>(
19467        &mut self,
19468        node: &'ast TsTypeElement,
19469        __ast_path: &mut AstNodePath<'r>,
19470    ) {
19471        <TsTypeElement as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19472            node, self, __ast_path,
19473        )
19474    }
19475    #[doc = "Visit a node of type `Vec < TsTypeElement >`.\n\nBy default, this method calls [`Vec \
19476             < TsTypeElement >::visit_children_with_ast_path`]. If you want to recurse, you need \
19477             to call it manually."]
19478    #[inline]
19479    fn visit_ts_type_elements<'ast: 'r, 'r>(
19480        &mut self,
19481        node: &'ast [TsTypeElement],
19482        __ast_path: &mut AstNodePath<'r>,
19483    ) {
19484        <[TsTypeElement] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19485            node, self, __ast_path,
19486        )
19487    }
19488    #[doc = "Visit a node of type `TsTypeLit`.\n\nBy default, this method calls \
19489             [`TsTypeLit::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19490             it manually."]
19491    #[inline]
19492    fn visit_ts_type_lit<'ast: 'r, 'r>(
19493        &mut self,
19494        node: &'ast TsTypeLit,
19495        __ast_path: &mut AstNodePath<'r>,
19496    ) {
19497        <TsTypeLit as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19498    }
19499    #[doc = "Visit a node of type `TsTypeOperator`.\n\nBy default, this method calls \
19500             [`TsTypeOperator::visit_children_with_ast_path`]. If you want to recurse, you need to \
19501             call it manually."]
19502    #[inline]
19503    fn visit_ts_type_operator<'ast: 'r, 'r>(
19504        &mut self,
19505        node: &'ast TsTypeOperator,
19506        __ast_path: &mut AstNodePath<'r>,
19507    ) {
19508        <TsTypeOperator as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19509            node, self, __ast_path,
19510        )
19511    }
19512    #[doc = "Visit a node of type `TsTypeOperatorOp`.\n\nBy default, this method calls \
19513             [`TsTypeOperatorOp::visit_children_with_ast_path`]. If you want to recurse, you need \
19514             to call it manually."]
19515    #[inline]
19516    fn visit_ts_type_operator_op<'ast: 'r, 'r>(
19517        &mut self,
19518        node: &'ast TsTypeOperatorOp,
19519        __ast_path: &mut AstNodePath<'r>,
19520    ) {
19521        <TsTypeOperatorOp as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19522            node, self, __ast_path,
19523        )
19524    }
19525    #[doc = "Visit a node of type `TsTypeParam`.\n\nBy default, this method calls \
19526             [`TsTypeParam::visit_children_with_ast_path`]. If you want to recurse, you need to \
19527             call it manually."]
19528    #[inline]
19529    fn visit_ts_type_param<'ast: 'r, 'r>(
19530        &mut self,
19531        node: &'ast TsTypeParam,
19532        __ast_path: &mut AstNodePath<'r>,
19533    ) {
19534        <TsTypeParam as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19535            node, self, __ast_path,
19536        )
19537    }
19538    #[doc = "Visit a node of type `TsTypeParamDecl`.\n\nBy default, this method calls \
19539             [`TsTypeParamDecl::visit_children_with_ast_path`]. If you want to recurse, you need \
19540             to call it manually."]
19541    #[inline]
19542    fn visit_ts_type_param_decl<'ast: 'r, 'r>(
19543        &mut self,
19544        node: &'ast TsTypeParamDecl,
19545        __ast_path: &mut AstNodePath<'r>,
19546    ) {
19547        <TsTypeParamDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19548            node, self, __ast_path,
19549        )
19550    }
19551    #[doc = "Visit a node of type `TsTypeParamInstantiation`.\n\nBy default, this method calls \
19552             [`TsTypeParamInstantiation::visit_children_with_ast_path`]. If you want to recurse, \
19553             you need to call it manually."]
19554    #[inline]
19555    fn visit_ts_type_param_instantiation<'ast: 'r, 'r>(
19556        &mut self,
19557        node: &'ast TsTypeParamInstantiation,
19558        __ast_path: &mut AstNodePath<'r>,
19559    ) {
19560        <TsTypeParamInstantiation as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19561            node, self, __ast_path,
19562        )
19563    }
19564    #[doc = "Visit a node of type `Vec < TsTypeParam >`.\n\nBy default, this method calls [`Vec < \
19565             TsTypeParam >::visit_children_with_ast_path`]. If you want to recurse, you need to \
19566             call it manually."]
19567    #[inline]
19568    fn visit_ts_type_params<'ast: 'r, 'r>(
19569        &mut self,
19570        node: &'ast [TsTypeParam],
19571        __ast_path: &mut AstNodePath<'r>,
19572    ) {
19573        <[TsTypeParam] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19574            node, self, __ast_path,
19575        )
19576    }
19577    #[doc = "Visit a node of type `TsTypePredicate`.\n\nBy default, this method calls \
19578             [`TsTypePredicate::visit_children_with_ast_path`]. If you want to recurse, you need \
19579             to call it manually."]
19580    #[inline]
19581    fn visit_ts_type_predicate<'ast: 'r, 'r>(
19582        &mut self,
19583        node: &'ast TsTypePredicate,
19584        __ast_path: &mut AstNodePath<'r>,
19585    ) {
19586        <TsTypePredicate as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19587            node, self, __ast_path,
19588        )
19589    }
19590    #[doc = "Visit a node of type `TsTypeQuery`.\n\nBy default, this method calls \
19591             [`TsTypeQuery::visit_children_with_ast_path`]. If you want to recurse, you need to \
19592             call it manually."]
19593    #[inline]
19594    fn visit_ts_type_query<'ast: 'r, 'r>(
19595        &mut self,
19596        node: &'ast TsTypeQuery,
19597        __ast_path: &mut AstNodePath<'r>,
19598    ) {
19599        <TsTypeQuery as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19600            node, self, __ast_path,
19601        )
19602    }
19603    #[doc = "Visit a node of type `TsTypeQueryExpr`.\n\nBy default, this method calls \
19604             [`TsTypeQueryExpr::visit_children_with_ast_path`]. If you want to recurse, you need \
19605             to call it manually."]
19606    #[inline]
19607    fn visit_ts_type_query_expr<'ast: 'r, 'r>(
19608        &mut self,
19609        node: &'ast TsTypeQueryExpr,
19610        __ast_path: &mut AstNodePath<'r>,
19611    ) {
19612        <TsTypeQueryExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19613            node, self, __ast_path,
19614        )
19615    }
19616    #[doc = "Visit a node of type `TsTypeRef`.\n\nBy default, this method calls \
19617             [`TsTypeRef::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19618             it manually."]
19619    #[inline]
19620    fn visit_ts_type_ref<'ast: 'r, 'r>(
19621        &mut self,
19622        node: &'ast TsTypeRef,
19623        __ast_path: &mut AstNodePath<'r>,
19624    ) {
19625        <TsTypeRef as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19626    }
19627    #[doc = "Visit a node of type `Vec < Box < TsType > >`.\n\nBy default, this method calls [`Vec \
19628             < Box < TsType > >::visit_children_with_ast_path`]. If you want to recurse, you need \
19629             to call it manually."]
19630    #[inline]
19631    fn visit_ts_types<'ast: 'r, 'r>(
19632        &mut self,
19633        node: &'ast [Box<TsType>],
19634        __ast_path: &mut AstNodePath<'r>,
19635    ) {
19636        <[Box<TsType>] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19637            node, self, __ast_path,
19638        )
19639    }
19640    #[doc = "Visit a node of type `TsUnionOrIntersectionType`.\n\nBy default, this method calls \
19641             [`TsUnionOrIntersectionType::visit_children_with_ast_path`]. If you want to recurse, \
19642             you need to call it manually."]
19643    #[inline]
19644    fn visit_ts_union_or_intersection_type<'ast: 'r, 'r>(
19645        &mut self,
19646        node: &'ast TsUnionOrIntersectionType,
19647        __ast_path: &mut AstNodePath<'r>,
19648    ) {
19649        <TsUnionOrIntersectionType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19650            node, self, __ast_path,
19651        )
19652    }
19653    #[doc = "Visit a node of type `TsUnionType`.\n\nBy default, this method calls \
19654             [`TsUnionType::visit_children_with_ast_path`]. If you want to recurse, you need to \
19655             call it manually."]
19656    #[inline]
19657    fn visit_ts_union_type<'ast: 'r, 'r>(
19658        &mut self,
19659        node: &'ast TsUnionType,
19660        __ast_path: &mut AstNodePath<'r>,
19661    ) {
19662        <TsUnionType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19663            node, self, __ast_path,
19664        )
19665    }
19666    #[doc = "Visit a node of type `UnaryExpr`.\n\nBy default, this method calls \
19667             [`UnaryExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19668             it manually."]
19669    #[inline]
19670    fn visit_unary_expr<'ast: 'r, 'r>(
19671        &mut self,
19672        node: &'ast UnaryExpr,
19673        __ast_path: &mut AstNodePath<'r>,
19674    ) {
19675        <UnaryExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19676    }
19677    #[doc = "Visit a node of type `UnaryOp`.\n\nBy default, this method calls \
19678             [`UnaryOp::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19679             it manually."]
19680    #[inline]
19681    fn visit_unary_op<'ast: 'r, 'r>(
19682        &mut self,
19683        node: &'ast UnaryOp,
19684        __ast_path: &mut AstNodePath<'r>,
19685    ) {
19686        <UnaryOp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19687    }
19688    #[doc = "Visit a node of type `UpdateExpr`.\n\nBy default, this method calls \
19689             [`UpdateExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
19690             call it manually."]
19691    #[inline]
19692    fn visit_update_expr<'ast: 'r, 'r>(
19693        &mut self,
19694        node: &'ast UpdateExpr,
19695        __ast_path: &mut AstNodePath<'r>,
19696    ) {
19697        <UpdateExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19698    }
19699    #[doc = "Visit a node of type `UpdateOp`.\n\nBy default, this method calls \
19700             [`UpdateOp::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19701             it manually."]
19702    #[inline]
19703    fn visit_update_op<'ast: 'r, 'r>(
19704        &mut self,
19705        node: &'ast UpdateOp,
19706        __ast_path: &mut AstNodePath<'r>,
19707    ) {
19708        <UpdateOp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19709    }
19710    #[doc = "Visit a node of type `UsingDecl`.\n\nBy default, this method calls \
19711             [`UsingDecl::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19712             it manually."]
19713    #[inline]
19714    fn visit_using_decl<'ast: 'r, 'r>(
19715        &mut self,
19716        node: &'ast UsingDecl,
19717        __ast_path: &mut AstNodePath<'r>,
19718    ) {
19719        <UsingDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19720    }
19721    #[doc = "Visit a node of type `VarDecl`.\n\nBy default, this method calls \
19722             [`VarDecl::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19723             it manually."]
19724    #[inline]
19725    fn visit_var_decl<'ast: 'r, 'r>(
19726        &mut self,
19727        node: &'ast VarDecl,
19728        __ast_path: &mut AstNodePath<'r>,
19729    ) {
19730        <VarDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19731    }
19732    #[doc = "Visit a node of type `VarDeclKind`.\n\nBy default, this method calls \
19733             [`VarDeclKind::visit_children_with_ast_path`]. If you want to recurse, you need to \
19734             call it manually."]
19735    #[inline]
19736    fn visit_var_decl_kind<'ast: 'r, 'r>(
19737        &mut self,
19738        node: &'ast VarDeclKind,
19739        __ast_path: &mut AstNodePath<'r>,
19740    ) {
19741        <VarDeclKind as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19742            node, self, __ast_path,
19743        )
19744    }
19745    #[doc = "Visit a node of type `VarDeclOrExpr`.\n\nBy default, this method calls \
19746             [`VarDeclOrExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
19747             call it manually."]
19748    #[inline]
19749    fn visit_var_decl_or_expr<'ast: 'r, 'r>(
19750        &mut self,
19751        node: &'ast VarDeclOrExpr,
19752        __ast_path: &mut AstNodePath<'r>,
19753    ) {
19754        <VarDeclOrExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19755            node, self, __ast_path,
19756        )
19757    }
19758    #[doc = "Visit a node of type `VarDeclarator`.\n\nBy default, this method calls \
19759             [`VarDeclarator::visit_children_with_ast_path`]. If you want to recurse, you need to \
19760             call it manually."]
19761    #[inline]
19762    fn visit_var_declarator<'ast: 'r, 'r>(
19763        &mut self,
19764        node: &'ast VarDeclarator,
19765        __ast_path: &mut AstNodePath<'r>,
19766    ) {
19767        <VarDeclarator as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19768            node, self, __ast_path,
19769        )
19770    }
19771    #[doc = "Visit a node of type `Vec < VarDeclarator >`.\n\nBy default, this method calls [`Vec \
19772             < VarDeclarator >::visit_children_with_ast_path`]. If you want to recurse, you need \
19773             to call it manually."]
19774    #[inline]
19775    fn visit_var_declarators<'ast: 'r, 'r>(
19776        &mut self,
19777        node: &'ast [VarDeclarator],
19778        __ast_path: &mut AstNodePath<'r>,
19779    ) {
19780        <[VarDeclarator] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19781            node, self, __ast_path,
19782        )
19783    }
19784    #[doc = "Visit a node of type `WhileStmt`.\n\nBy default, this method calls \
19785             [`WhileStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19786             it manually."]
19787    #[inline]
19788    fn visit_while_stmt<'ast: 'r, 'r>(
19789        &mut self,
19790        node: &'ast WhileStmt,
19791        __ast_path: &mut AstNodePath<'r>,
19792    ) {
19793        <WhileStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19794    }
19795    #[doc = "Visit a node of type `WithStmt`.\n\nBy default, this method calls \
19796             [`WithStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19797             it manually."]
19798    #[inline]
19799    fn visit_with_stmt<'ast: 'r, 'r>(
19800        &mut self,
19801        node: &'ast WithStmt,
19802        __ast_path: &mut AstNodePath<'r>,
19803    ) {
19804        <WithStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19805    }
19806    #[doc = "Visit a node of type `YieldExpr`.\n\nBy default, this method calls \
19807             [`YieldExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19808             it manually."]
19809    #[inline]
19810    fn visit_yield_expr<'ast: 'r, 'r>(
19811        &mut self,
19812        node: &'ast YieldExpr,
19813        __ast_path: &mut AstNodePath<'r>,
19814    ) {
19815        <YieldExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19816    }
19817}
19818#[cfg(any(docsrs, feature = "path"))]
19819#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
19820impl<V> VisitAstPath for &mut V
19821where
19822    V: ?Sized + VisitAstPath,
19823{
19824    #[inline]
19825    fn visit_accessibility<'ast: 'r, 'r>(
19826        &mut self,
19827        node: &'ast Accessibility,
19828        __ast_path: &mut AstNodePath<'r>,
19829    ) {
19830        <V as VisitAstPath>::visit_accessibility(&mut **self, node, __ast_path)
19831    }
19832
19833    #[inline]
19834    fn visit_array_lit<'ast: 'r, 'r>(
19835        &mut self,
19836        node: &'ast ArrayLit,
19837        __ast_path: &mut AstNodePath<'r>,
19838    ) {
19839        <V as VisitAstPath>::visit_array_lit(&mut **self, node, __ast_path)
19840    }
19841
19842    #[inline]
19843    fn visit_array_pat<'ast: 'r, 'r>(
19844        &mut self,
19845        node: &'ast ArrayPat,
19846        __ast_path: &mut AstNodePath<'r>,
19847    ) {
19848        <V as VisitAstPath>::visit_array_pat(&mut **self, node, __ast_path)
19849    }
19850
19851    #[inline]
19852    fn visit_arrow_expr<'ast: 'r, 'r>(
19853        &mut self,
19854        node: &'ast ArrowExpr,
19855        __ast_path: &mut AstNodePath<'r>,
19856    ) {
19857        <V as VisitAstPath>::visit_arrow_expr(&mut **self, node, __ast_path)
19858    }
19859
19860    #[inline]
19861    fn visit_assign_expr<'ast: 'r, 'r>(
19862        &mut self,
19863        node: &'ast AssignExpr,
19864        __ast_path: &mut AstNodePath<'r>,
19865    ) {
19866        <V as VisitAstPath>::visit_assign_expr(&mut **self, node, __ast_path)
19867    }
19868
19869    #[inline]
19870    fn visit_assign_op<'ast: 'r, 'r>(
19871        &mut self,
19872        node: &'ast AssignOp,
19873        __ast_path: &mut AstNodePath<'r>,
19874    ) {
19875        <V as VisitAstPath>::visit_assign_op(&mut **self, node, __ast_path)
19876    }
19877
19878    #[inline]
19879    fn visit_assign_pat<'ast: 'r, 'r>(
19880        &mut self,
19881        node: &'ast AssignPat,
19882        __ast_path: &mut AstNodePath<'r>,
19883    ) {
19884        <V as VisitAstPath>::visit_assign_pat(&mut **self, node, __ast_path)
19885    }
19886
19887    #[inline]
19888    fn visit_assign_pat_prop<'ast: 'r, 'r>(
19889        &mut self,
19890        node: &'ast AssignPatProp,
19891        __ast_path: &mut AstNodePath<'r>,
19892    ) {
19893        <V as VisitAstPath>::visit_assign_pat_prop(&mut **self, node, __ast_path)
19894    }
19895
19896    #[inline]
19897    fn visit_assign_prop<'ast: 'r, 'r>(
19898        &mut self,
19899        node: &'ast AssignProp,
19900        __ast_path: &mut AstNodePath<'r>,
19901    ) {
19902        <V as VisitAstPath>::visit_assign_prop(&mut **self, node, __ast_path)
19903    }
19904
19905    #[inline]
19906    fn visit_assign_target<'ast: 'r, 'r>(
19907        &mut self,
19908        node: &'ast AssignTarget,
19909        __ast_path: &mut AstNodePath<'r>,
19910    ) {
19911        <V as VisitAstPath>::visit_assign_target(&mut **self, node, __ast_path)
19912    }
19913
19914    #[inline]
19915    fn visit_assign_target_pat<'ast: 'r, 'r>(
19916        &mut self,
19917        node: &'ast AssignTargetPat,
19918        __ast_path: &mut AstNodePath<'r>,
19919    ) {
19920        <V as VisitAstPath>::visit_assign_target_pat(&mut **self, node, __ast_path)
19921    }
19922
19923    #[inline]
19924    fn visit_atom<'ast: 'r, 'r>(
19925        &mut self,
19926        node: &'ast swc_atoms::Atom,
19927        __ast_path: &mut AstNodePath<'r>,
19928    ) {
19929        <V as VisitAstPath>::visit_atom(&mut **self, node, __ast_path)
19930    }
19931
19932    #[inline]
19933    fn visit_auto_accessor<'ast: 'r, 'r>(
19934        &mut self,
19935        node: &'ast AutoAccessor,
19936        __ast_path: &mut AstNodePath<'r>,
19937    ) {
19938        <V as VisitAstPath>::visit_auto_accessor(&mut **self, node, __ast_path)
19939    }
19940
19941    #[inline]
19942    fn visit_await_expr<'ast: 'r, 'r>(
19943        &mut self,
19944        node: &'ast AwaitExpr,
19945        __ast_path: &mut AstNodePath<'r>,
19946    ) {
19947        <V as VisitAstPath>::visit_await_expr(&mut **self, node, __ast_path)
19948    }
19949
19950    #[inline]
19951    fn visit_big_int<'ast: 'r, 'r>(
19952        &mut self,
19953        node: &'ast BigInt,
19954        __ast_path: &mut AstNodePath<'r>,
19955    ) {
19956        <V as VisitAstPath>::visit_big_int(&mut **self, node, __ast_path)
19957    }
19958
19959    #[inline]
19960    fn visit_big_int_value<'ast: 'r, 'r>(
19961        &mut self,
19962        node: &'ast BigIntValue,
19963        __ast_path: &mut AstNodePath<'r>,
19964    ) {
19965        <V as VisitAstPath>::visit_big_int_value(&mut **self, node, __ast_path)
19966    }
19967
19968    #[inline]
19969    fn visit_bin_expr<'ast: 'r, 'r>(
19970        &mut self,
19971        node: &'ast BinExpr,
19972        __ast_path: &mut AstNodePath<'r>,
19973    ) {
19974        <V as VisitAstPath>::visit_bin_expr(&mut **self, node, __ast_path)
19975    }
19976
19977    #[inline]
19978    fn visit_binary_op<'ast: 'r, 'r>(
19979        &mut self,
19980        node: &'ast BinaryOp,
19981        __ast_path: &mut AstNodePath<'r>,
19982    ) {
19983        <V as VisitAstPath>::visit_binary_op(&mut **self, node, __ast_path)
19984    }
19985
19986    #[inline]
19987    fn visit_binding_ident<'ast: 'r, 'r>(
19988        &mut self,
19989        node: &'ast BindingIdent,
19990        __ast_path: &mut AstNodePath<'r>,
19991    ) {
19992        <V as VisitAstPath>::visit_binding_ident(&mut **self, node, __ast_path)
19993    }
19994
19995    #[inline]
19996    fn visit_block_stmt<'ast: 'r, 'r>(
19997        &mut self,
19998        node: &'ast BlockStmt,
19999        __ast_path: &mut AstNodePath<'r>,
20000    ) {
20001        <V as VisitAstPath>::visit_block_stmt(&mut **self, node, __ast_path)
20002    }
20003
20004    #[inline]
20005    fn visit_block_stmt_or_expr<'ast: 'r, 'r>(
20006        &mut self,
20007        node: &'ast BlockStmtOrExpr,
20008        __ast_path: &mut AstNodePath<'r>,
20009    ) {
20010        <V as VisitAstPath>::visit_block_stmt_or_expr(&mut **self, node, __ast_path)
20011    }
20012
20013    #[inline]
20014    fn visit_bool<'ast: 'r, 'r>(&mut self, node: &'ast Bool, __ast_path: &mut AstNodePath<'r>) {
20015        <V as VisitAstPath>::visit_bool(&mut **self, node, __ast_path)
20016    }
20017
20018    #[inline]
20019    fn visit_break_stmt<'ast: 'r, 'r>(
20020        &mut self,
20021        node: &'ast BreakStmt,
20022        __ast_path: &mut AstNodePath<'r>,
20023    ) {
20024        <V as VisitAstPath>::visit_break_stmt(&mut **self, node, __ast_path)
20025    }
20026
20027    #[inline]
20028    fn visit_call_expr<'ast: 'r, 'r>(
20029        &mut self,
20030        node: &'ast CallExpr,
20031        __ast_path: &mut AstNodePath<'r>,
20032    ) {
20033        <V as VisitAstPath>::visit_call_expr(&mut **self, node, __ast_path)
20034    }
20035
20036    #[inline]
20037    fn visit_callee<'ast: 'r, 'r>(&mut self, node: &'ast Callee, __ast_path: &mut AstNodePath<'r>) {
20038        <V as VisitAstPath>::visit_callee(&mut **self, node, __ast_path)
20039    }
20040
20041    #[inline]
20042    fn visit_catch_clause<'ast: 'r, 'r>(
20043        &mut self,
20044        node: &'ast CatchClause,
20045        __ast_path: &mut AstNodePath<'r>,
20046    ) {
20047        <V as VisitAstPath>::visit_catch_clause(&mut **self, node, __ast_path)
20048    }
20049
20050    #[inline]
20051    fn visit_class<'ast: 'r, 'r>(&mut self, node: &'ast Class, __ast_path: &mut AstNodePath<'r>) {
20052        <V as VisitAstPath>::visit_class(&mut **self, node, __ast_path)
20053    }
20054
20055    #[inline]
20056    fn visit_class_decl<'ast: 'r, 'r>(
20057        &mut self,
20058        node: &'ast ClassDecl,
20059        __ast_path: &mut AstNodePath<'r>,
20060    ) {
20061        <V as VisitAstPath>::visit_class_decl(&mut **self, node, __ast_path)
20062    }
20063
20064    #[inline]
20065    fn visit_class_expr<'ast: 'r, 'r>(
20066        &mut self,
20067        node: &'ast ClassExpr,
20068        __ast_path: &mut AstNodePath<'r>,
20069    ) {
20070        <V as VisitAstPath>::visit_class_expr(&mut **self, node, __ast_path)
20071    }
20072
20073    #[inline]
20074    fn visit_class_member<'ast: 'r, 'r>(
20075        &mut self,
20076        node: &'ast ClassMember,
20077        __ast_path: &mut AstNodePath<'r>,
20078    ) {
20079        <V as VisitAstPath>::visit_class_member(&mut **self, node, __ast_path)
20080    }
20081
20082    #[inline]
20083    fn visit_class_members<'ast: 'r, 'r>(
20084        &mut self,
20085        node: &'ast [ClassMember],
20086        __ast_path: &mut AstNodePath<'r>,
20087    ) {
20088        <V as VisitAstPath>::visit_class_members(&mut **self, node, __ast_path)
20089    }
20090
20091    #[inline]
20092    fn visit_class_method<'ast: 'r, 'r>(
20093        &mut self,
20094        node: &'ast ClassMethod,
20095        __ast_path: &mut AstNodePath<'r>,
20096    ) {
20097        <V as VisitAstPath>::visit_class_method(&mut **self, node, __ast_path)
20098    }
20099
20100    #[inline]
20101    fn visit_class_prop<'ast: 'r, 'r>(
20102        &mut self,
20103        node: &'ast ClassProp,
20104        __ast_path: &mut AstNodePath<'r>,
20105    ) {
20106        <V as VisitAstPath>::visit_class_prop(&mut **self, node, __ast_path)
20107    }
20108
20109    #[inline]
20110    fn visit_computed_prop_name<'ast: 'r, 'r>(
20111        &mut self,
20112        node: &'ast ComputedPropName,
20113        __ast_path: &mut AstNodePath<'r>,
20114    ) {
20115        <V as VisitAstPath>::visit_computed_prop_name(&mut **self, node, __ast_path)
20116    }
20117
20118    #[inline]
20119    fn visit_cond_expr<'ast: 'r, 'r>(
20120        &mut self,
20121        node: &'ast CondExpr,
20122        __ast_path: &mut AstNodePath<'r>,
20123    ) {
20124        <V as VisitAstPath>::visit_cond_expr(&mut **self, node, __ast_path)
20125    }
20126
20127    #[inline]
20128    fn visit_constructor<'ast: 'r, 'r>(
20129        &mut self,
20130        node: &'ast Constructor,
20131        __ast_path: &mut AstNodePath<'r>,
20132    ) {
20133        <V as VisitAstPath>::visit_constructor(&mut **self, node, __ast_path)
20134    }
20135
20136    #[inline]
20137    fn visit_continue_stmt<'ast: 'r, 'r>(
20138        &mut self,
20139        node: &'ast ContinueStmt,
20140        __ast_path: &mut AstNodePath<'r>,
20141    ) {
20142        <V as VisitAstPath>::visit_continue_stmt(&mut **self, node, __ast_path)
20143    }
20144
20145    #[inline]
20146    fn visit_debugger_stmt<'ast: 'r, 'r>(
20147        &mut self,
20148        node: &'ast DebuggerStmt,
20149        __ast_path: &mut AstNodePath<'r>,
20150    ) {
20151        <V as VisitAstPath>::visit_debugger_stmt(&mut **self, node, __ast_path)
20152    }
20153
20154    #[inline]
20155    fn visit_decl<'ast: 'r, 'r>(&mut self, node: &'ast Decl, __ast_path: &mut AstNodePath<'r>) {
20156        <V as VisitAstPath>::visit_decl(&mut **self, node, __ast_path)
20157    }
20158
20159    #[inline]
20160    fn visit_decorator<'ast: 'r, 'r>(
20161        &mut self,
20162        node: &'ast Decorator,
20163        __ast_path: &mut AstNodePath<'r>,
20164    ) {
20165        <V as VisitAstPath>::visit_decorator(&mut **self, node, __ast_path)
20166    }
20167
20168    #[inline]
20169    fn visit_decorators<'ast: 'r, 'r>(
20170        &mut self,
20171        node: &'ast [Decorator],
20172        __ast_path: &mut AstNodePath<'r>,
20173    ) {
20174        <V as VisitAstPath>::visit_decorators(&mut **self, node, __ast_path)
20175    }
20176
20177    #[inline]
20178    fn visit_default_decl<'ast: 'r, 'r>(
20179        &mut self,
20180        node: &'ast DefaultDecl,
20181        __ast_path: &mut AstNodePath<'r>,
20182    ) {
20183        <V as VisitAstPath>::visit_default_decl(&mut **self, node, __ast_path)
20184    }
20185
20186    #[inline]
20187    fn visit_do_while_stmt<'ast: 'r, 'r>(
20188        &mut self,
20189        node: &'ast DoWhileStmt,
20190        __ast_path: &mut AstNodePath<'r>,
20191    ) {
20192        <V as VisitAstPath>::visit_do_while_stmt(&mut **self, node, __ast_path)
20193    }
20194
20195    #[inline]
20196    fn visit_empty_stmt<'ast: 'r, 'r>(
20197        &mut self,
20198        node: &'ast EmptyStmt,
20199        __ast_path: &mut AstNodePath<'r>,
20200    ) {
20201        <V as VisitAstPath>::visit_empty_stmt(&mut **self, node, __ast_path)
20202    }
20203
20204    #[inline]
20205    fn visit_export_all<'ast: 'r, 'r>(
20206        &mut self,
20207        node: &'ast ExportAll,
20208        __ast_path: &mut AstNodePath<'r>,
20209    ) {
20210        <V as VisitAstPath>::visit_export_all(&mut **self, node, __ast_path)
20211    }
20212
20213    #[inline]
20214    fn visit_export_decl<'ast: 'r, 'r>(
20215        &mut self,
20216        node: &'ast ExportDecl,
20217        __ast_path: &mut AstNodePath<'r>,
20218    ) {
20219        <V as VisitAstPath>::visit_export_decl(&mut **self, node, __ast_path)
20220    }
20221
20222    #[inline]
20223    fn visit_export_default_decl<'ast: 'r, 'r>(
20224        &mut self,
20225        node: &'ast ExportDefaultDecl,
20226        __ast_path: &mut AstNodePath<'r>,
20227    ) {
20228        <V as VisitAstPath>::visit_export_default_decl(&mut **self, node, __ast_path)
20229    }
20230
20231    #[inline]
20232    fn visit_export_default_expr<'ast: 'r, 'r>(
20233        &mut self,
20234        node: &'ast ExportDefaultExpr,
20235        __ast_path: &mut AstNodePath<'r>,
20236    ) {
20237        <V as VisitAstPath>::visit_export_default_expr(&mut **self, node, __ast_path)
20238    }
20239
20240    #[inline]
20241    fn visit_export_default_specifier<'ast: 'r, 'r>(
20242        &mut self,
20243        node: &'ast ExportDefaultSpecifier,
20244        __ast_path: &mut AstNodePath<'r>,
20245    ) {
20246        <V as VisitAstPath>::visit_export_default_specifier(&mut **self, node, __ast_path)
20247    }
20248
20249    #[inline]
20250    fn visit_export_named_specifier<'ast: 'r, 'r>(
20251        &mut self,
20252        node: &'ast ExportNamedSpecifier,
20253        __ast_path: &mut AstNodePath<'r>,
20254    ) {
20255        <V as VisitAstPath>::visit_export_named_specifier(&mut **self, node, __ast_path)
20256    }
20257
20258    #[inline]
20259    fn visit_export_namespace_specifier<'ast: 'r, 'r>(
20260        &mut self,
20261        node: &'ast ExportNamespaceSpecifier,
20262        __ast_path: &mut AstNodePath<'r>,
20263    ) {
20264        <V as VisitAstPath>::visit_export_namespace_specifier(&mut **self, node, __ast_path)
20265    }
20266
20267    #[inline]
20268    fn visit_export_specifier<'ast: 'r, 'r>(
20269        &mut self,
20270        node: &'ast ExportSpecifier,
20271        __ast_path: &mut AstNodePath<'r>,
20272    ) {
20273        <V as VisitAstPath>::visit_export_specifier(&mut **self, node, __ast_path)
20274    }
20275
20276    #[inline]
20277    fn visit_export_specifiers<'ast: 'r, 'r>(
20278        &mut self,
20279        node: &'ast [ExportSpecifier],
20280        __ast_path: &mut AstNodePath<'r>,
20281    ) {
20282        <V as VisitAstPath>::visit_export_specifiers(&mut **self, node, __ast_path)
20283    }
20284
20285    #[inline]
20286    fn visit_expr<'ast: 'r, 'r>(&mut self, node: &'ast Expr, __ast_path: &mut AstNodePath<'r>) {
20287        <V as VisitAstPath>::visit_expr(&mut **self, node, __ast_path)
20288    }
20289
20290    #[inline]
20291    fn visit_expr_or_spread<'ast: 'r, 'r>(
20292        &mut self,
20293        node: &'ast ExprOrSpread,
20294        __ast_path: &mut AstNodePath<'r>,
20295    ) {
20296        <V as VisitAstPath>::visit_expr_or_spread(&mut **self, node, __ast_path)
20297    }
20298
20299    #[inline]
20300    fn visit_expr_or_spreads<'ast: 'r, 'r>(
20301        &mut self,
20302        node: &'ast [ExprOrSpread],
20303        __ast_path: &mut AstNodePath<'r>,
20304    ) {
20305        <V as VisitAstPath>::visit_expr_or_spreads(&mut **self, node, __ast_path)
20306    }
20307
20308    #[inline]
20309    fn visit_expr_stmt<'ast: 'r, 'r>(
20310        &mut self,
20311        node: &'ast ExprStmt,
20312        __ast_path: &mut AstNodePath<'r>,
20313    ) {
20314        <V as VisitAstPath>::visit_expr_stmt(&mut **self, node, __ast_path)
20315    }
20316
20317    #[inline]
20318    fn visit_exprs<'ast: 'r, 'r>(
20319        &mut self,
20320        node: &'ast [Box<Expr>],
20321        __ast_path: &mut AstNodePath<'r>,
20322    ) {
20323        <V as VisitAstPath>::visit_exprs(&mut **self, node, __ast_path)
20324    }
20325
20326    #[inline]
20327    fn visit_fn_decl<'ast: 'r, 'r>(
20328        &mut self,
20329        node: &'ast FnDecl,
20330        __ast_path: &mut AstNodePath<'r>,
20331    ) {
20332        <V as VisitAstPath>::visit_fn_decl(&mut **self, node, __ast_path)
20333    }
20334
20335    #[inline]
20336    fn visit_fn_expr<'ast: 'r, 'r>(
20337        &mut self,
20338        node: &'ast FnExpr,
20339        __ast_path: &mut AstNodePath<'r>,
20340    ) {
20341        <V as VisitAstPath>::visit_fn_expr(&mut **self, node, __ast_path)
20342    }
20343
20344    #[inline]
20345    fn visit_for_head<'ast: 'r, 'r>(
20346        &mut self,
20347        node: &'ast ForHead,
20348        __ast_path: &mut AstNodePath<'r>,
20349    ) {
20350        <V as VisitAstPath>::visit_for_head(&mut **self, node, __ast_path)
20351    }
20352
20353    #[inline]
20354    fn visit_for_in_stmt<'ast: 'r, 'r>(
20355        &mut self,
20356        node: &'ast ForInStmt,
20357        __ast_path: &mut AstNodePath<'r>,
20358    ) {
20359        <V as VisitAstPath>::visit_for_in_stmt(&mut **self, node, __ast_path)
20360    }
20361
20362    #[inline]
20363    fn visit_for_of_stmt<'ast: 'r, 'r>(
20364        &mut self,
20365        node: &'ast ForOfStmt,
20366        __ast_path: &mut AstNodePath<'r>,
20367    ) {
20368        <V as VisitAstPath>::visit_for_of_stmt(&mut **self, node, __ast_path)
20369    }
20370
20371    #[inline]
20372    fn visit_for_stmt<'ast: 'r, 'r>(
20373        &mut self,
20374        node: &'ast ForStmt,
20375        __ast_path: &mut AstNodePath<'r>,
20376    ) {
20377        <V as VisitAstPath>::visit_for_stmt(&mut **self, node, __ast_path)
20378    }
20379
20380    #[inline]
20381    fn visit_function<'ast: 'r, 'r>(
20382        &mut self,
20383        node: &'ast Function,
20384        __ast_path: &mut AstNodePath<'r>,
20385    ) {
20386        <V as VisitAstPath>::visit_function(&mut **self, node, __ast_path)
20387    }
20388
20389    #[inline]
20390    fn visit_getter_prop<'ast: 'r, 'r>(
20391        &mut self,
20392        node: &'ast GetterProp,
20393        __ast_path: &mut AstNodePath<'r>,
20394    ) {
20395        <V as VisitAstPath>::visit_getter_prop(&mut **self, node, __ast_path)
20396    }
20397
20398    #[inline]
20399    fn visit_ident<'ast: 'r, 'r>(&mut self, node: &'ast Ident, __ast_path: &mut AstNodePath<'r>) {
20400        <V as VisitAstPath>::visit_ident(&mut **self, node, __ast_path)
20401    }
20402
20403    #[inline]
20404    fn visit_ident_name<'ast: 'r, 'r>(
20405        &mut self,
20406        node: &'ast IdentName,
20407        __ast_path: &mut AstNodePath<'r>,
20408    ) {
20409        <V as VisitAstPath>::visit_ident_name(&mut **self, node, __ast_path)
20410    }
20411
20412    #[inline]
20413    fn visit_if_stmt<'ast: 'r, 'r>(
20414        &mut self,
20415        node: &'ast IfStmt,
20416        __ast_path: &mut AstNodePath<'r>,
20417    ) {
20418        <V as VisitAstPath>::visit_if_stmt(&mut **self, node, __ast_path)
20419    }
20420
20421    #[inline]
20422    fn visit_import<'ast: 'r, 'r>(&mut self, node: &'ast Import, __ast_path: &mut AstNodePath<'r>) {
20423        <V as VisitAstPath>::visit_import(&mut **self, node, __ast_path)
20424    }
20425
20426    #[inline]
20427    fn visit_import_decl<'ast: 'r, 'r>(
20428        &mut self,
20429        node: &'ast ImportDecl,
20430        __ast_path: &mut AstNodePath<'r>,
20431    ) {
20432        <V as VisitAstPath>::visit_import_decl(&mut **self, node, __ast_path)
20433    }
20434
20435    #[inline]
20436    fn visit_import_default_specifier<'ast: 'r, 'r>(
20437        &mut self,
20438        node: &'ast ImportDefaultSpecifier,
20439        __ast_path: &mut AstNodePath<'r>,
20440    ) {
20441        <V as VisitAstPath>::visit_import_default_specifier(&mut **self, node, __ast_path)
20442    }
20443
20444    #[inline]
20445    fn visit_import_named_specifier<'ast: 'r, 'r>(
20446        &mut self,
20447        node: &'ast ImportNamedSpecifier,
20448        __ast_path: &mut AstNodePath<'r>,
20449    ) {
20450        <V as VisitAstPath>::visit_import_named_specifier(&mut **self, node, __ast_path)
20451    }
20452
20453    #[inline]
20454    fn visit_import_phase<'ast: 'r, 'r>(
20455        &mut self,
20456        node: &'ast ImportPhase,
20457        __ast_path: &mut AstNodePath<'r>,
20458    ) {
20459        <V as VisitAstPath>::visit_import_phase(&mut **self, node, __ast_path)
20460    }
20461
20462    #[inline]
20463    fn visit_import_specifier<'ast: 'r, 'r>(
20464        &mut self,
20465        node: &'ast ImportSpecifier,
20466        __ast_path: &mut AstNodePath<'r>,
20467    ) {
20468        <V as VisitAstPath>::visit_import_specifier(&mut **self, node, __ast_path)
20469    }
20470
20471    #[inline]
20472    fn visit_import_specifiers<'ast: 'r, 'r>(
20473        &mut self,
20474        node: &'ast [ImportSpecifier],
20475        __ast_path: &mut AstNodePath<'r>,
20476    ) {
20477        <V as VisitAstPath>::visit_import_specifiers(&mut **self, node, __ast_path)
20478    }
20479
20480    #[inline]
20481    fn visit_import_star_as_specifier<'ast: 'r, 'r>(
20482        &mut self,
20483        node: &'ast ImportStarAsSpecifier,
20484        __ast_path: &mut AstNodePath<'r>,
20485    ) {
20486        <V as VisitAstPath>::visit_import_star_as_specifier(&mut **self, node, __ast_path)
20487    }
20488
20489    #[inline]
20490    fn visit_import_with<'ast: 'r, 'r>(
20491        &mut self,
20492        node: &'ast ImportWith,
20493        __ast_path: &mut AstNodePath<'r>,
20494    ) {
20495        <V as VisitAstPath>::visit_import_with(&mut **self, node, __ast_path)
20496    }
20497
20498    #[inline]
20499    fn visit_import_with_item<'ast: 'r, 'r>(
20500        &mut self,
20501        node: &'ast ImportWithItem,
20502        __ast_path: &mut AstNodePath<'r>,
20503    ) {
20504        <V as VisitAstPath>::visit_import_with_item(&mut **self, node, __ast_path)
20505    }
20506
20507    #[inline]
20508    fn visit_import_with_items<'ast: 'r, 'r>(
20509        &mut self,
20510        node: &'ast [ImportWithItem],
20511        __ast_path: &mut AstNodePath<'r>,
20512    ) {
20513        <V as VisitAstPath>::visit_import_with_items(&mut **self, node, __ast_path)
20514    }
20515
20516    #[inline]
20517    fn visit_invalid<'ast: 'r, 'r>(
20518        &mut self,
20519        node: &'ast Invalid,
20520        __ast_path: &mut AstNodePath<'r>,
20521    ) {
20522        <V as VisitAstPath>::visit_invalid(&mut **self, node, __ast_path)
20523    }
20524
20525    #[inline]
20526    fn visit_jsx_attr<'ast: 'r, 'r>(
20527        &mut self,
20528        node: &'ast JSXAttr,
20529        __ast_path: &mut AstNodePath<'r>,
20530    ) {
20531        <V as VisitAstPath>::visit_jsx_attr(&mut **self, node, __ast_path)
20532    }
20533
20534    #[inline]
20535    fn visit_jsx_attr_name<'ast: 'r, 'r>(
20536        &mut self,
20537        node: &'ast JSXAttrName,
20538        __ast_path: &mut AstNodePath<'r>,
20539    ) {
20540        <V as VisitAstPath>::visit_jsx_attr_name(&mut **self, node, __ast_path)
20541    }
20542
20543    #[inline]
20544    fn visit_jsx_attr_or_spread<'ast: 'r, 'r>(
20545        &mut self,
20546        node: &'ast JSXAttrOrSpread,
20547        __ast_path: &mut AstNodePath<'r>,
20548    ) {
20549        <V as VisitAstPath>::visit_jsx_attr_or_spread(&mut **self, node, __ast_path)
20550    }
20551
20552    #[inline]
20553    fn visit_jsx_attr_or_spreads<'ast: 'r, 'r>(
20554        &mut self,
20555        node: &'ast [JSXAttrOrSpread],
20556        __ast_path: &mut AstNodePath<'r>,
20557    ) {
20558        <V as VisitAstPath>::visit_jsx_attr_or_spreads(&mut **self, node, __ast_path)
20559    }
20560
20561    #[inline]
20562    fn visit_jsx_attr_value<'ast: 'r, 'r>(
20563        &mut self,
20564        node: &'ast JSXAttrValue,
20565        __ast_path: &mut AstNodePath<'r>,
20566    ) {
20567        <V as VisitAstPath>::visit_jsx_attr_value(&mut **self, node, __ast_path)
20568    }
20569
20570    #[inline]
20571    fn visit_jsx_closing_element<'ast: 'r, 'r>(
20572        &mut self,
20573        node: &'ast JSXClosingElement,
20574        __ast_path: &mut AstNodePath<'r>,
20575    ) {
20576        <V as VisitAstPath>::visit_jsx_closing_element(&mut **self, node, __ast_path)
20577    }
20578
20579    #[inline]
20580    fn visit_jsx_closing_fragment<'ast: 'r, 'r>(
20581        &mut self,
20582        node: &'ast JSXClosingFragment,
20583        __ast_path: &mut AstNodePath<'r>,
20584    ) {
20585        <V as VisitAstPath>::visit_jsx_closing_fragment(&mut **self, node, __ast_path)
20586    }
20587
20588    #[inline]
20589    fn visit_jsx_element<'ast: 'r, 'r>(
20590        &mut self,
20591        node: &'ast JSXElement,
20592        __ast_path: &mut AstNodePath<'r>,
20593    ) {
20594        <V as VisitAstPath>::visit_jsx_element(&mut **self, node, __ast_path)
20595    }
20596
20597    #[inline]
20598    fn visit_jsx_element_child<'ast: 'r, 'r>(
20599        &mut self,
20600        node: &'ast JSXElementChild,
20601        __ast_path: &mut AstNodePath<'r>,
20602    ) {
20603        <V as VisitAstPath>::visit_jsx_element_child(&mut **self, node, __ast_path)
20604    }
20605
20606    #[inline]
20607    fn visit_jsx_element_childs<'ast: 'r, 'r>(
20608        &mut self,
20609        node: &'ast [JSXElementChild],
20610        __ast_path: &mut AstNodePath<'r>,
20611    ) {
20612        <V as VisitAstPath>::visit_jsx_element_childs(&mut **self, node, __ast_path)
20613    }
20614
20615    #[inline]
20616    fn visit_jsx_element_name<'ast: 'r, 'r>(
20617        &mut self,
20618        node: &'ast JSXElementName,
20619        __ast_path: &mut AstNodePath<'r>,
20620    ) {
20621        <V as VisitAstPath>::visit_jsx_element_name(&mut **self, node, __ast_path)
20622    }
20623
20624    #[inline]
20625    fn visit_jsx_empty_expr<'ast: 'r, 'r>(
20626        &mut self,
20627        node: &'ast JSXEmptyExpr,
20628        __ast_path: &mut AstNodePath<'r>,
20629    ) {
20630        <V as VisitAstPath>::visit_jsx_empty_expr(&mut **self, node, __ast_path)
20631    }
20632
20633    #[inline]
20634    fn visit_jsx_expr<'ast: 'r, 'r>(
20635        &mut self,
20636        node: &'ast JSXExpr,
20637        __ast_path: &mut AstNodePath<'r>,
20638    ) {
20639        <V as VisitAstPath>::visit_jsx_expr(&mut **self, node, __ast_path)
20640    }
20641
20642    #[inline]
20643    fn visit_jsx_expr_container<'ast: 'r, 'r>(
20644        &mut self,
20645        node: &'ast JSXExprContainer,
20646        __ast_path: &mut AstNodePath<'r>,
20647    ) {
20648        <V as VisitAstPath>::visit_jsx_expr_container(&mut **self, node, __ast_path)
20649    }
20650
20651    #[inline]
20652    fn visit_jsx_fragment<'ast: 'r, 'r>(
20653        &mut self,
20654        node: &'ast JSXFragment,
20655        __ast_path: &mut AstNodePath<'r>,
20656    ) {
20657        <V as VisitAstPath>::visit_jsx_fragment(&mut **self, node, __ast_path)
20658    }
20659
20660    #[inline]
20661    fn visit_jsx_member_expr<'ast: 'r, 'r>(
20662        &mut self,
20663        node: &'ast JSXMemberExpr,
20664        __ast_path: &mut AstNodePath<'r>,
20665    ) {
20666        <V as VisitAstPath>::visit_jsx_member_expr(&mut **self, node, __ast_path)
20667    }
20668
20669    #[inline]
20670    fn visit_jsx_namespaced_name<'ast: 'r, 'r>(
20671        &mut self,
20672        node: &'ast JSXNamespacedName,
20673        __ast_path: &mut AstNodePath<'r>,
20674    ) {
20675        <V as VisitAstPath>::visit_jsx_namespaced_name(&mut **self, node, __ast_path)
20676    }
20677
20678    #[inline]
20679    fn visit_jsx_object<'ast: 'r, 'r>(
20680        &mut self,
20681        node: &'ast JSXObject,
20682        __ast_path: &mut AstNodePath<'r>,
20683    ) {
20684        <V as VisitAstPath>::visit_jsx_object(&mut **self, node, __ast_path)
20685    }
20686
20687    #[inline]
20688    fn visit_jsx_opening_element<'ast: 'r, 'r>(
20689        &mut self,
20690        node: &'ast JSXOpeningElement,
20691        __ast_path: &mut AstNodePath<'r>,
20692    ) {
20693        <V as VisitAstPath>::visit_jsx_opening_element(&mut **self, node, __ast_path)
20694    }
20695
20696    #[inline]
20697    fn visit_jsx_opening_fragment<'ast: 'r, 'r>(
20698        &mut self,
20699        node: &'ast JSXOpeningFragment,
20700        __ast_path: &mut AstNodePath<'r>,
20701    ) {
20702        <V as VisitAstPath>::visit_jsx_opening_fragment(&mut **self, node, __ast_path)
20703    }
20704
20705    #[inline]
20706    fn visit_jsx_spread_child<'ast: 'r, 'r>(
20707        &mut self,
20708        node: &'ast JSXSpreadChild,
20709        __ast_path: &mut AstNodePath<'r>,
20710    ) {
20711        <V as VisitAstPath>::visit_jsx_spread_child(&mut **self, node, __ast_path)
20712    }
20713
20714    #[inline]
20715    fn visit_jsx_text<'ast: 'r, 'r>(
20716        &mut self,
20717        node: &'ast JSXText,
20718        __ast_path: &mut AstNodePath<'r>,
20719    ) {
20720        <V as VisitAstPath>::visit_jsx_text(&mut **self, node, __ast_path)
20721    }
20722
20723    #[inline]
20724    fn visit_key<'ast: 'r, 'r>(&mut self, node: &'ast Key, __ast_path: &mut AstNodePath<'r>) {
20725        <V as VisitAstPath>::visit_key(&mut **self, node, __ast_path)
20726    }
20727
20728    #[inline]
20729    fn visit_key_value_pat_prop<'ast: 'r, 'r>(
20730        &mut self,
20731        node: &'ast KeyValuePatProp,
20732        __ast_path: &mut AstNodePath<'r>,
20733    ) {
20734        <V as VisitAstPath>::visit_key_value_pat_prop(&mut **self, node, __ast_path)
20735    }
20736
20737    #[inline]
20738    fn visit_key_value_prop<'ast: 'r, 'r>(
20739        &mut self,
20740        node: &'ast KeyValueProp,
20741        __ast_path: &mut AstNodePath<'r>,
20742    ) {
20743        <V as VisitAstPath>::visit_key_value_prop(&mut **self, node, __ast_path)
20744    }
20745
20746    #[inline]
20747    fn visit_labeled_stmt<'ast: 'r, 'r>(
20748        &mut self,
20749        node: &'ast LabeledStmt,
20750        __ast_path: &mut AstNodePath<'r>,
20751    ) {
20752        <V as VisitAstPath>::visit_labeled_stmt(&mut **self, node, __ast_path)
20753    }
20754
20755    #[inline]
20756    fn visit_lit<'ast: 'r, 'r>(&mut self, node: &'ast Lit, __ast_path: &mut AstNodePath<'r>) {
20757        <V as VisitAstPath>::visit_lit(&mut **self, node, __ast_path)
20758    }
20759
20760    #[inline]
20761    fn visit_member_expr<'ast: 'r, 'r>(
20762        &mut self,
20763        node: &'ast MemberExpr,
20764        __ast_path: &mut AstNodePath<'r>,
20765    ) {
20766        <V as VisitAstPath>::visit_member_expr(&mut **self, node, __ast_path)
20767    }
20768
20769    #[inline]
20770    fn visit_member_prop<'ast: 'r, 'r>(
20771        &mut self,
20772        node: &'ast MemberProp,
20773        __ast_path: &mut AstNodePath<'r>,
20774    ) {
20775        <V as VisitAstPath>::visit_member_prop(&mut **self, node, __ast_path)
20776    }
20777
20778    #[inline]
20779    fn visit_meta_prop_expr<'ast: 'r, 'r>(
20780        &mut self,
20781        node: &'ast MetaPropExpr,
20782        __ast_path: &mut AstNodePath<'r>,
20783    ) {
20784        <V as VisitAstPath>::visit_meta_prop_expr(&mut **self, node, __ast_path)
20785    }
20786
20787    #[inline]
20788    fn visit_meta_prop_kind<'ast: 'r, 'r>(
20789        &mut self,
20790        node: &'ast MetaPropKind,
20791        __ast_path: &mut AstNodePath<'r>,
20792    ) {
20793        <V as VisitAstPath>::visit_meta_prop_kind(&mut **self, node, __ast_path)
20794    }
20795
20796    #[inline]
20797    fn visit_method_kind<'ast: 'r, 'r>(
20798        &mut self,
20799        node: &'ast MethodKind,
20800        __ast_path: &mut AstNodePath<'r>,
20801    ) {
20802        <V as VisitAstPath>::visit_method_kind(&mut **self, node, __ast_path)
20803    }
20804
20805    #[inline]
20806    fn visit_method_prop<'ast: 'r, 'r>(
20807        &mut self,
20808        node: &'ast MethodProp,
20809        __ast_path: &mut AstNodePath<'r>,
20810    ) {
20811        <V as VisitAstPath>::visit_method_prop(&mut **self, node, __ast_path)
20812    }
20813
20814    #[inline]
20815    fn visit_module<'ast: 'r, 'r>(&mut self, node: &'ast Module, __ast_path: &mut AstNodePath<'r>) {
20816        <V as VisitAstPath>::visit_module(&mut **self, node, __ast_path)
20817    }
20818
20819    #[inline]
20820    fn visit_module_decl<'ast: 'r, 'r>(
20821        &mut self,
20822        node: &'ast ModuleDecl,
20823        __ast_path: &mut AstNodePath<'r>,
20824    ) {
20825        <V as VisitAstPath>::visit_module_decl(&mut **self, node, __ast_path)
20826    }
20827
20828    #[inline]
20829    fn visit_module_export_name<'ast: 'r, 'r>(
20830        &mut self,
20831        node: &'ast ModuleExportName,
20832        __ast_path: &mut AstNodePath<'r>,
20833    ) {
20834        <V as VisitAstPath>::visit_module_export_name(&mut **self, node, __ast_path)
20835    }
20836
20837    #[inline]
20838    fn visit_module_item<'ast: 'r, 'r>(
20839        &mut self,
20840        node: &'ast ModuleItem,
20841        __ast_path: &mut AstNodePath<'r>,
20842    ) {
20843        <V as VisitAstPath>::visit_module_item(&mut **self, node, __ast_path)
20844    }
20845
20846    #[inline]
20847    fn visit_module_items<'ast: 'r, 'r>(
20848        &mut self,
20849        node: &'ast [ModuleItem],
20850        __ast_path: &mut AstNodePath<'r>,
20851    ) {
20852        <V as VisitAstPath>::visit_module_items(&mut **self, node, __ast_path)
20853    }
20854
20855    #[inline]
20856    fn visit_named_export<'ast: 'r, 'r>(
20857        &mut self,
20858        node: &'ast NamedExport,
20859        __ast_path: &mut AstNodePath<'r>,
20860    ) {
20861        <V as VisitAstPath>::visit_named_export(&mut **self, node, __ast_path)
20862    }
20863
20864    #[inline]
20865    fn visit_new_expr<'ast: 'r, 'r>(
20866        &mut self,
20867        node: &'ast NewExpr,
20868        __ast_path: &mut AstNodePath<'r>,
20869    ) {
20870        <V as VisitAstPath>::visit_new_expr(&mut **self, node, __ast_path)
20871    }
20872
20873    #[inline]
20874    fn visit_null<'ast: 'r, 'r>(&mut self, node: &'ast Null, __ast_path: &mut AstNodePath<'r>) {
20875        <V as VisitAstPath>::visit_null(&mut **self, node, __ast_path)
20876    }
20877
20878    #[inline]
20879    fn visit_number<'ast: 'r, 'r>(&mut self, node: &'ast Number, __ast_path: &mut AstNodePath<'r>) {
20880        <V as VisitAstPath>::visit_number(&mut **self, node, __ast_path)
20881    }
20882
20883    #[inline]
20884    fn visit_object_lit<'ast: 'r, 'r>(
20885        &mut self,
20886        node: &'ast ObjectLit,
20887        __ast_path: &mut AstNodePath<'r>,
20888    ) {
20889        <V as VisitAstPath>::visit_object_lit(&mut **self, node, __ast_path)
20890    }
20891
20892    #[inline]
20893    fn visit_object_pat<'ast: 'r, 'r>(
20894        &mut self,
20895        node: &'ast ObjectPat,
20896        __ast_path: &mut AstNodePath<'r>,
20897    ) {
20898        <V as VisitAstPath>::visit_object_pat(&mut **self, node, __ast_path)
20899    }
20900
20901    #[inline]
20902    fn visit_object_pat_prop<'ast: 'r, 'r>(
20903        &mut self,
20904        node: &'ast ObjectPatProp,
20905        __ast_path: &mut AstNodePath<'r>,
20906    ) {
20907        <V as VisitAstPath>::visit_object_pat_prop(&mut **self, node, __ast_path)
20908    }
20909
20910    #[inline]
20911    fn visit_object_pat_props<'ast: 'r, 'r>(
20912        &mut self,
20913        node: &'ast [ObjectPatProp],
20914        __ast_path: &mut AstNodePath<'r>,
20915    ) {
20916        <V as VisitAstPath>::visit_object_pat_props(&mut **self, node, __ast_path)
20917    }
20918
20919    #[inline]
20920    fn visit_opt_accessibility<'ast: 'r, 'r>(
20921        &mut self,
20922        node: &'ast Option<Accessibility>,
20923        __ast_path: &mut AstNodePath<'r>,
20924    ) {
20925        <V as VisitAstPath>::visit_opt_accessibility(&mut **self, node, __ast_path)
20926    }
20927
20928    #[inline]
20929    fn visit_opt_atom<'ast: 'r, 'r>(
20930        &mut self,
20931        node: &'ast Option<swc_atoms::Atom>,
20932        __ast_path: &mut AstNodePath<'r>,
20933    ) {
20934        <V as VisitAstPath>::visit_opt_atom(&mut **self, node, __ast_path)
20935    }
20936
20937    #[inline]
20938    fn visit_opt_block_stmt<'ast: 'r, 'r>(
20939        &mut self,
20940        node: &'ast Option<BlockStmt>,
20941        __ast_path: &mut AstNodePath<'r>,
20942    ) {
20943        <V as VisitAstPath>::visit_opt_block_stmt(&mut **self, node, __ast_path)
20944    }
20945
20946    #[inline]
20947    fn visit_opt_call<'ast: 'r, 'r>(
20948        &mut self,
20949        node: &'ast OptCall,
20950        __ast_path: &mut AstNodePath<'r>,
20951    ) {
20952        <V as VisitAstPath>::visit_opt_call(&mut **self, node, __ast_path)
20953    }
20954
20955    #[inline]
20956    fn visit_opt_catch_clause<'ast: 'r, 'r>(
20957        &mut self,
20958        node: &'ast Option<CatchClause>,
20959        __ast_path: &mut AstNodePath<'r>,
20960    ) {
20961        <V as VisitAstPath>::visit_opt_catch_clause(&mut **self, node, __ast_path)
20962    }
20963
20964    #[inline]
20965    fn visit_opt_chain_base<'ast: 'r, 'r>(
20966        &mut self,
20967        node: &'ast OptChainBase,
20968        __ast_path: &mut AstNodePath<'r>,
20969    ) {
20970        <V as VisitAstPath>::visit_opt_chain_base(&mut **self, node, __ast_path)
20971    }
20972
20973    #[inline]
20974    fn visit_opt_chain_expr<'ast: 'r, 'r>(
20975        &mut self,
20976        node: &'ast OptChainExpr,
20977        __ast_path: &mut AstNodePath<'r>,
20978    ) {
20979        <V as VisitAstPath>::visit_opt_chain_expr(&mut **self, node, __ast_path)
20980    }
20981
20982    #[inline]
20983    fn visit_opt_expr<'ast: 'r, 'r>(
20984        &mut self,
20985        node: &'ast Option<Box<Expr>>,
20986        __ast_path: &mut AstNodePath<'r>,
20987    ) {
20988        <V as VisitAstPath>::visit_opt_expr(&mut **self, node, __ast_path)
20989    }
20990
20991    #[inline]
20992    fn visit_opt_expr_or_spread<'ast: 'r, 'r>(
20993        &mut self,
20994        node: &'ast Option<ExprOrSpread>,
20995        __ast_path: &mut AstNodePath<'r>,
20996    ) {
20997        <V as VisitAstPath>::visit_opt_expr_or_spread(&mut **self, node, __ast_path)
20998    }
20999
21000    #[inline]
21001    fn visit_opt_expr_or_spreads<'ast: 'r, 'r>(
21002        &mut self,
21003        node: &'ast Option<Vec<ExprOrSpread>>,
21004        __ast_path: &mut AstNodePath<'r>,
21005    ) {
21006        <V as VisitAstPath>::visit_opt_expr_or_spreads(&mut **self, node, __ast_path)
21007    }
21008
21009    #[inline]
21010    fn visit_opt_ident<'ast: 'r, 'r>(
21011        &mut self,
21012        node: &'ast Option<Ident>,
21013        __ast_path: &mut AstNodePath<'r>,
21014    ) {
21015        <V as VisitAstPath>::visit_opt_ident(&mut **self, node, __ast_path)
21016    }
21017
21018    #[inline]
21019    fn visit_opt_jsx_attr_value<'ast: 'r, 'r>(
21020        &mut self,
21021        node: &'ast Option<JSXAttrValue>,
21022        __ast_path: &mut AstNodePath<'r>,
21023    ) {
21024        <V as VisitAstPath>::visit_opt_jsx_attr_value(&mut **self, node, __ast_path)
21025    }
21026
21027    #[inline]
21028    fn visit_opt_jsx_closing_element<'ast: 'r, 'r>(
21029        &mut self,
21030        node: &'ast Option<JSXClosingElement>,
21031        __ast_path: &mut AstNodePath<'r>,
21032    ) {
21033        <V as VisitAstPath>::visit_opt_jsx_closing_element(&mut **self, node, __ast_path)
21034    }
21035
21036    #[inline]
21037    fn visit_opt_module_export_name<'ast: 'r, 'r>(
21038        &mut self,
21039        node: &'ast Option<ModuleExportName>,
21040        __ast_path: &mut AstNodePath<'r>,
21041    ) {
21042        <V as VisitAstPath>::visit_opt_module_export_name(&mut **self, node, __ast_path)
21043    }
21044
21045    #[inline]
21046    fn visit_opt_object_lit<'ast: 'r, 'r>(
21047        &mut self,
21048        node: &'ast Option<Box<ObjectLit>>,
21049        __ast_path: &mut AstNodePath<'r>,
21050    ) {
21051        <V as VisitAstPath>::visit_opt_object_lit(&mut **self, node, __ast_path)
21052    }
21053
21054    #[inline]
21055    fn visit_opt_pat<'ast: 'r, 'r>(
21056        &mut self,
21057        node: &'ast Option<Pat>,
21058        __ast_path: &mut AstNodePath<'r>,
21059    ) {
21060        <V as VisitAstPath>::visit_opt_pat(&mut **self, node, __ast_path)
21061    }
21062
21063    #[inline]
21064    fn visit_opt_span<'ast: 'r, 'r>(
21065        &mut self,
21066        node: &'ast Option<swc_common::Span>,
21067        __ast_path: &mut AstNodePath<'r>,
21068    ) {
21069        <V as VisitAstPath>::visit_opt_span(&mut **self, node, __ast_path)
21070    }
21071
21072    #[inline]
21073    fn visit_opt_stmt<'ast: 'r, 'r>(
21074        &mut self,
21075        node: &'ast Option<Box<Stmt>>,
21076        __ast_path: &mut AstNodePath<'r>,
21077    ) {
21078        <V as VisitAstPath>::visit_opt_stmt(&mut **self, node, __ast_path)
21079    }
21080
21081    #[inline]
21082    fn visit_opt_str<'ast: 'r, 'r>(
21083        &mut self,
21084        node: &'ast Option<Box<Str>>,
21085        __ast_path: &mut AstNodePath<'r>,
21086    ) {
21087        <V as VisitAstPath>::visit_opt_str(&mut **self, node, __ast_path)
21088    }
21089
21090    #[inline]
21091    fn visit_opt_true_plus_minus<'ast: 'r, 'r>(
21092        &mut self,
21093        node: &'ast Option<TruePlusMinus>,
21094        __ast_path: &mut AstNodePath<'r>,
21095    ) {
21096        <V as VisitAstPath>::visit_opt_true_plus_minus(&mut **self, node, __ast_path)
21097    }
21098
21099    #[inline]
21100    fn visit_opt_ts_entity_name<'ast: 'r, 'r>(
21101        &mut self,
21102        node: &'ast Option<TsEntityName>,
21103        __ast_path: &mut AstNodePath<'r>,
21104    ) {
21105        <V as VisitAstPath>::visit_opt_ts_entity_name(&mut **self, node, __ast_path)
21106    }
21107
21108    #[inline]
21109    fn visit_opt_ts_import_call_options<'ast: 'r, 'r>(
21110        &mut self,
21111        node: &'ast Option<TsImportCallOptions>,
21112        __ast_path: &mut AstNodePath<'r>,
21113    ) {
21114        <V as VisitAstPath>::visit_opt_ts_import_call_options(&mut **self, node, __ast_path)
21115    }
21116
21117    #[inline]
21118    fn visit_opt_ts_namespace_body<'ast: 'r, 'r>(
21119        &mut self,
21120        node: &'ast Option<TsNamespaceBody>,
21121        __ast_path: &mut AstNodePath<'r>,
21122    ) {
21123        <V as VisitAstPath>::visit_opt_ts_namespace_body(&mut **self, node, __ast_path)
21124    }
21125
21126    #[inline]
21127    fn visit_opt_ts_type<'ast: 'r, 'r>(
21128        &mut self,
21129        node: &'ast Option<Box<TsType>>,
21130        __ast_path: &mut AstNodePath<'r>,
21131    ) {
21132        <V as VisitAstPath>::visit_opt_ts_type(&mut **self, node, __ast_path)
21133    }
21134
21135    #[inline]
21136    fn visit_opt_ts_type_ann<'ast: 'r, 'r>(
21137        &mut self,
21138        node: &'ast Option<Box<TsTypeAnn>>,
21139        __ast_path: &mut AstNodePath<'r>,
21140    ) {
21141        <V as VisitAstPath>::visit_opt_ts_type_ann(&mut **self, node, __ast_path)
21142    }
21143
21144    #[inline]
21145    fn visit_opt_ts_type_param_decl<'ast: 'r, 'r>(
21146        &mut self,
21147        node: &'ast Option<Box<TsTypeParamDecl>>,
21148        __ast_path: &mut AstNodePath<'r>,
21149    ) {
21150        <V as VisitAstPath>::visit_opt_ts_type_param_decl(&mut **self, node, __ast_path)
21151    }
21152
21153    #[inline]
21154    fn visit_opt_ts_type_param_instantiation<'ast: 'r, 'r>(
21155        &mut self,
21156        node: &'ast Option<Box<TsTypeParamInstantiation>>,
21157        __ast_path: &mut AstNodePath<'r>,
21158    ) {
21159        <V as VisitAstPath>::visit_opt_ts_type_param_instantiation(&mut **self, node, __ast_path)
21160    }
21161
21162    #[inline]
21163    fn visit_opt_var_decl_or_expr<'ast: 'r, 'r>(
21164        &mut self,
21165        node: &'ast Option<VarDeclOrExpr>,
21166        __ast_path: &mut AstNodePath<'r>,
21167    ) {
21168        <V as VisitAstPath>::visit_opt_var_decl_or_expr(&mut **self, node, __ast_path)
21169    }
21170
21171    #[inline]
21172    fn visit_opt_vec_expr_or_spreads<'ast: 'r, 'r>(
21173        &mut self,
21174        node: &'ast [Option<ExprOrSpread>],
21175        __ast_path: &mut AstNodePath<'r>,
21176    ) {
21177        <V as VisitAstPath>::visit_opt_vec_expr_or_spreads(&mut **self, node, __ast_path)
21178    }
21179
21180    #[inline]
21181    fn visit_opt_vec_pats<'ast: 'r, 'r>(
21182        &mut self,
21183        node: &'ast [Option<Pat>],
21184        __ast_path: &mut AstNodePath<'r>,
21185    ) {
21186        <V as VisitAstPath>::visit_opt_vec_pats(&mut **self, node, __ast_path)
21187    }
21188
21189    #[inline]
21190    fn visit_param<'ast: 'r, 'r>(&mut self, node: &'ast Param, __ast_path: &mut AstNodePath<'r>) {
21191        <V as VisitAstPath>::visit_param(&mut **self, node, __ast_path)
21192    }
21193
21194    #[inline]
21195    fn visit_param_or_ts_param_prop<'ast: 'r, 'r>(
21196        &mut self,
21197        node: &'ast ParamOrTsParamProp,
21198        __ast_path: &mut AstNodePath<'r>,
21199    ) {
21200        <V as VisitAstPath>::visit_param_or_ts_param_prop(&mut **self, node, __ast_path)
21201    }
21202
21203    #[inline]
21204    fn visit_param_or_ts_param_props<'ast: 'r, 'r>(
21205        &mut self,
21206        node: &'ast [ParamOrTsParamProp],
21207        __ast_path: &mut AstNodePath<'r>,
21208    ) {
21209        <V as VisitAstPath>::visit_param_or_ts_param_props(&mut **self, node, __ast_path)
21210    }
21211
21212    #[inline]
21213    fn visit_params<'ast: 'r, 'r>(
21214        &mut self,
21215        node: &'ast [Param],
21216        __ast_path: &mut AstNodePath<'r>,
21217    ) {
21218        <V as VisitAstPath>::visit_params(&mut **self, node, __ast_path)
21219    }
21220
21221    #[inline]
21222    fn visit_paren_expr<'ast: 'r, 'r>(
21223        &mut self,
21224        node: &'ast ParenExpr,
21225        __ast_path: &mut AstNodePath<'r>,
21226    ) {
21227        <V as VisitAstPath>::visit_paren_expr(&mut **self, node, __ast_path)
21228    }
21229
21230    #[inline]
21231    fn visit_pat<'ast: 'r, 'r>(&mut self, node: &'ast Pat, __ast_path: &mut AstNodePath<'r>) {
21232        <V as VisitAstPath>::visit_pat(&mut **self, node, __ast_path)
21233    }
21234
21235    #[inline]
21236    fn visit_pats<'ast: 'r, 'r>(&mut self, node: &'ast [Pat], __ast_path: &mut AstNodePath<'r>) {
21237        <V as VisitAstPath>::visit_pats(&mut **self, node, __ast_path)
21238    }
21239
21240    #[inline]
21241    fn visit_private_method<'ast: 'r, 'r>(
21242        &mut self,
21243        node: &'ast PrivateMethod,
21244        __ast_path: &mut AstNodePath<'r>,
21245    ) {
21246        <V as VisitAstPath>::visit_private_method(&mut **self, node, __ast_path)
21247    }
21248
21249    #[inline]
21250    fn visit_private_name<'ast: 'r, 'r>(
21251        &mut self,
21252        node: &'ast PrivateName,
21253        __ast_path: &mut AstNodePath<'r>,
21254    ) {
21255        <V as VisitAstPath>::visit_private_name(&mut **self, node, __ast_path)
21256    }
21257
21258    #[inline]
21259    fn visit_private_prop<'ast: 'r, 'r>(
21260        &mut self,
21261        node: &'ast PrivateProp,
21262        __ast_path: &mut AstNodePath<'r>,
21263    ) {
21264        <V as VisitAstPath>::visit_private_prop(&mut **self, node, __ast_path)
21265    }
21266
21267    #[inline]
21268    fn visit_program<'ast: 'r, 'r>(
21269        &mut self,
21270        node: &'ast Program,
21271        __ast_path: &mut AstNodePath<'r>,
21272    ) {
21273        <V as VisitAstPath>::visit_program(&mut **self, node, __ast_path)
21274    }
21275
21276    #[inline]
21277    fn visit_prop<'ast: 'r, 'r>(&mut self, node: &'ast Prop, __ast_path: &mut AstNodePath<'r>) {
21278        <V as VisitAstPath>::visit_prop(&mut **self, node, __ast_path)
21279    }
21280
21281    #[inline]
21282    fn visit_prop_name<'ast: 'r, 'r>(
21283        &mut self,
21284        node: &'ast PropName,
21285        __ast_path: &mut AstNodePath<'r>,
21286    ) {
21287        <V as VisitAstPath>::visit_prop_name(&mut **self, node, __ast_path)
21288    }
21289
21290    #[inline]
21291    fn visit_prop_or_spread<'ast: 'r, 'r>(
21292        &mut self,
21293        node: &'ast PropOrSpread,
21294        __ast_path: &mut AstNodePath<'r>,
21295    ) {
21296        <V as VisitAstPath>::visit_prop_or_spread(&mut **self, node, __ast_path)
21297    }
21298
21299    #[inline]
21300    fn visit_prop_or_spreads<'ast: 'r, 'r>(
21301        &mut self,
21302        node: &'ast [PropOrSpread],
21303        __ast_path: &mut AstNodePath<'r>,
21304    ) {
21305        <V as VisitAstPath>::visit_prop_or_spreads(&mut **self, node, __ast_path)
21306    }
21307
21308    #[inline]
21309    fn visit_regex<'ast: 'r, 'r>(&mut self, node: &'ast Regex, __ast_path: &mut AstNodePath<'r>) {
21310        <V as VisitAstPath>::visit_regex(&mut **self, node, __ast_path)
21311    }
21312
21313    #[inline]
21314    fn visit_rest_pat<'ast: 'r, 'r>(
21315        &mut self,
21316        node: &'ast RestPat,
21317        __ast_path: &mut AstNodePath<'r>,
21318    ) {
21319        <V as VisitAstPath>::visit_rest_pat(&mut **self, node, __ast_path)
21320    }
21321
21322    #[inline]
21323    fn visit_return_stmt<'ast: 'r, 'r>(
21324        &mut self,
21325        node: &'ast ReturnStmt,
21326        __ast_path: &mut AstNodePath<'r>,
21327    ) {
21328        <V as VisitAstPath>::visit_return_stmt(&mut **self, node, __ast_path)
21329    }
21330
21331    #[inline]
21332    fn visit_script<'ast: 'r, 'r>(&mut self, node: &'ast Script, __ast_path: &mut AstNodePath<'r>) {
21333        <V as VisitAstPath>::visit_script(&mut **self, node, __ast_path)
21334    }
21335
21336    #[inline]
21337    fn visit_seq_expr<'ast: 'r, 'r>(
21338        &mut self,
21339        node: &'ast SeqExpr,
21340        __ast_path: &mut AstNodePath<'r>,
21341    ) {
21342        <V as VisitAstPath>::visit_seq_expr(&mut **self, node, __ast_path)
21343    }
21344
21345    #[inline]
21346    fn visit_setter_prop<'ast: 'r, 'r>(
21347        &mut self,
21348        node: &'ast SetterProp,
21349        __ast_path: &mut AstNodePath<'r>,
21350    ) {
21351        <V as VisitAstPath>::visit_setter_prop(&mut **self, node, __ast_path)
21352    }
21353
21354    #[inline]
21355    fn visit_simple_assign_target<'ast: 'r, 'r>(
21356        &mut self,
21357        node: &'ast SimpleAssignTarget,
21358        __ast_path: &mut AstNodePath<'r>,
21359    ) {
21360        <V as VisitAstPath>::visit_simple_assign_target(&mut **self, node, __ast_path)
21361    }
21362
21363    #[inline]
21364    fn visit_span<'ast: 'r, 'r>(
21365        &mut self,
21366        node: &'ast swc_common::Span,
21367        __ast_path: &mut AstNodePath<'r>,
21368    ) {
21369        <V as VisitAstPath>::visit_span(&mut **self, node, __ast_path)
21370    }
21371
21372    #[inline]
21373    fn visit_spread_element<'ast: 'r, 'r>(
21374        &mut self,
21375        node: &'ast SpreadElement,
21376        __ast_path: &mut AstNodePath<'r>,
21377    ) {
21378        <V as VisitAstPath>::visit_spread_element(&mut **self, node, __ast_path)
21379    }
21380
21381    #[inline]
21382    fn visit_static_block<'ast: 'r, 'r>(
21383        &mut self,
21384        node: &'ast StaticBlock,
21385        __ast_path: &mut AstNodePath<'r>,
21386    ) {
21387        <V as VisitAstPath>::visit_static_block(&mut **self, node, __ast_path)
21388    }
21389
21390    #[inline]
21391    fn visit_stmt<'ast: 'r, 'r>(&mut self, node: &'ast Stmt, __ast_path: &mut AstNodePath<'r>) {
21392        <V as VisitAstPath>::visit_stmt(&mut **self, node, __ast_path)
21393    }
21394
21395    #[inline]
21396    fn visit_stmts<'ast: 'r, 'r>(&mut self, node: &'ast [Stmt], __ast_path: &mut AstNodePath<'r>) {
21397        <V as VisitAstPath>::visit_stmts(&mut **self, node, __ast_path)
21398    }
21399
21400    #[inline]
21401    fn visit_str<'ast: 'r, 'r>(&mut self, node: &'ast Str, __ast_path: &mut AstNodePath<'r>) {
21402        <V as VisitAstPath>::visit_str(&mut **self, node, __ast_path)
21403    }
21404
21405    #[inline]
21406    fn visit_super<'ast: 'r, 'r>(&mut self, node: &'ast Super, __ast_path: &mut AstNodePath<'r>) {
21407        <V as VisitAstPath>::visit_super(&mut **self, node, __ast_path)
21408    }
21409
21410    #[inline]
21411    fn visit_super_prop<'ast: 'r, 'r>(
21412        &mut self,
21413        node: &'ast SuperProp,
21414        __ast_path: &mut AstNodePath<'r>,
21415    ) {
21416        <V as VisitAstPath>::visit_super_prop(&mut **self, node, __ast_path)
21417    }
21418
21419    #[inline]
21420    fn visit_super_prop_expr<'ast: 'r, 'r>(
21421        &mut self,
21422        node: &'ast SuperPropExpr,
21423        __ast_path: &mut AstNodePath<'r>,
21424    ) {
21425        <V as VisitAstPath>::visit_super_prop_expr(&mut **self, node, __ast_path)
21426    }
21427
21428    #[inline]
21429    fn visit_switch_case<'ast: 'r, 'r>(
21430        &mut self,
21431        node: &'ast SwitchCase,
21432        __ast_path: &mut AstNodePath<'r>,
21433    ) {
21434        <V as VisitAstPath>::visit_switch_case(&mut **self, node, __ast_path)
21435    }
21436
21437    #[inline]
21438    fn visit_switch_cases<'ast: 'r, 'r>(
21439        &mut self,
21440        node: &'ast [SwitchCase],
21441        __ast_path: &mut AstNodePath<'r>,
21442    ) {
21443        <V as VisitAstPath>::visit_switch_cases(&mut **self, node, __ast_path)
21444    }
21445
21446    #[inline]
21447    fn visit_switch_stmt<'ast: 'r, 'r>(
21448        &mut self,
21449        node: &'ast SwitchStmt,
21450        __ast_path: &mut AstNodePath<'r>,
21451    ) {
21452        <V as VisitAstPath>::visit_switch_stmt(&mut **self, node, __ast_path)
21453    }
21454
21455    #[inline]
21456    fn visit_syntax_context<'ast: 'r, 'r>(
21457        &mut self,
21458        node: &'ast swc_common::SyntaxContext,
21459        __ast_path: &mut AstNodePath<'r>,
21460    ) {
21461        <V as VisitAstPath>::visit_syntax_context(&mut **self, node, __ast_path)
21462    }
21463
21464    #[inline]
21465    fn visit_tagged_tpl<'ast: 'r, 'r>(
21466        &mut self,
21467        node: &'ast TaggedTpl,
21468        __ast_path: &mut AstNodePath<'r>,
21469    ) {
21470        <V as VisitAstPath>::visit_tagged_tpl(&mut **self, node, __ast_path)
21471    }
21472
21473    #[inline]
21474    fn visit_this_expr<'ast: 'r, 'r>(
21475        &mut self,
21476        node: &'ast ThisExpr,
21477        __ast_path: &mut AstNodePath<'r>,
21478    ) {
21479        <V as VisitAstPath>::visit_this_expr(&mut **self, node, __ast_path)
21480    }
21481
21482    #[inline]
21483    fn visit_throw_stmt<'ast: 'r, 'r>(
21484        &mut self,
21485        node: &'ast ThrowStmt,
21486        __ast_path: &mut AstNodePath<'r>,
21487    ) {
21488        <V as VisitAstPath>::visit_throw_stmt(&mut **self, node, __ast_path)
21489    }
21490
21491    #[inline]
21492    fn visit_tpl<'ast: 'r, 'r>(&mut self, node: &'ast Tpl, __ast_path: &mut AstNodePath<'r>) {
21493        <V as VisitAstPath>::visit_tpl(&mut **self, node, __ast_path)
21494    }
21495
21496    #[inline]
21497    fn visit_tpl_element<'ast: 'r, 'r>(
21498        &mut self,
21499        node: &'ast TplElement,
21500        __ast_path: &mut AstNodePath<'r>,
21501    ) {
21502        <V as VisitAstPath>::visit_tpl_element(&mut **self, node, __ast_path)
21503    }
21504
21505    #[inline]
21506    fn visit_tpl_elements<'ast: 'r, 'r>(
21507        &mut self,
21508        node: &'ast [TplElement],
21509        __ast_path: &mut AstNodePath<'r>,
21510    ) {
21511        <V as VisitAstPath>::visit_tpl_elements(&mut **self, node, __ast_path)
21512    }
21513
21514    #[inline]
21515    fn visit_true_plus_minus<'ast: 'r, 'r>(
21516        &mut self,
21517        node: &'ast TruePlusMinus,
21518        __ast_path: &mut AstNodePath<'r>,
21519    ) {
21520        <V as VisitAstPath>::visit_true_plus_minus(&mut **self, node, __ast_path)
21521    }
21522
21523    #[inline]
21524    fn visit_try_stmt<'ast: 'r, 'r>(
21525        &mut self,
21526        node: &'ast TryStmt,
21527        __ast_path: &mut AstNodePath<'r>,
21528    ) {
21529        <V as VisitAstPath>::visit_try_stmt(&mut **self, node, __ast_path)
21530    }
21531
21532    #[inline]
21533    fn visit_ts_array_type<'ast: 'r, 'r>(
21534        &mut self,
21535        node: &'ast TsArrayType,
21536        __ast_path: &mut AstNodePath<'r>,
21537    ) {
21538        <V as VisitAstPath>::visit_ts_array_type(&mut **self, node, __ast_path)
21539    }
21540
21541    #[inline]
21542    fn visit_ts_as_expr<'ast: 'r, 'r>(
21543        &mut self,
21544        node: &'ast TsAsExpr,
21545        __ast_path: &mut AstNodePath<'r>,
21546    ) {
21547        <V as VisitAstPath>::visit_ts_as_expr(&mut **self, node, __ast_path)
21548    }
21549
21550    #[inline]
21551    fn visit_ts_call_signature_decl<'ast: 'r, 'r>(
21552        &mut self,
21553        node: &'ast TsCallSignatureDecl,
21554        __ast_path: &mut AstNodePath<'r>,
21555    ) {
21556        <V as VisitAstPath>::visit_ts_call_signature_decl(&mut **self, node, __ast_path)
21557    }
21558
21559    #[inline]
21560    fn visit_ts_conditional_type<'ast: 'r, 'r>(
21561        &mut self,
21562        node: &'ast TsConditionalType,
21563        __ast_path: &mut AstNodePath<'r>,
21564    ) {
21565        <V as VisitAstPath>::visit_ts_conditional_type(&mut **self, node, __ast_path)
21566    }
21567
21568    #[inline]
21569    fn visit_ts_const_assertion<'ast: 'r, 'r>(
21570        &mut self,
21571        node: &'ast TsConstAssertion,
21572        __ast_path: &mut AstNodePath<'r>,
21573    ) {
21574        <V as VisitAstPath>::visit_ts_const_assertion(&mut **self, node, __ast_path)
21575    }
21576
21577    #[inline]
21578    fn visit_ts_construct_signature_decl<'ast: 'r, 'r>(
21579        &mut self,
21580        node: &'ast TsConstructSignatureDecl,
21581        __ast_path: &mut AstNodePath<'r>,
21582    ) {
21583        <V as VisitAstPath>::visit_ts_construct_signature_decl(&mut **self, node, __ast_path)
21584    }
21585
21586    #[inline]
21587    fn visit_ts_constructor_type<'ast: 'r, 'r>(
21588        &mut self,
21589        node: &'ast TsConstructorType,
21590        __ast_path: &mut AstNodePath<'r>,
21591    ) {
21592        <V as VisitAstPath>::visit_ts_constructor_type(&mut **self, node, __ast_path)
21593    }
21594
21595    #[inline]
21596    fn visit_ts_entity_name<'ast: 'r, 'r>(
21597        &mut self,
21598        node: &'ast TsEntityName,
21599        __ast_path: &mut AstNodePath<'r>,
21600    ) {
21601        <V as VisitAstPath>::visit_ts_entity_name(&mut **self, node, __ast_path)
21602    }
21603
21604    #[inline]
21605    fn visit_ts_enum_decl<'ast: 'r, 'r>(
21606        &mut self,
21607        node: &'ast TsEnumDecl,
21608        __ast_path: &mut AstNodePath<'r>,
21609    ) {
21610        <V as VisitAstPath>::visit_ts_enum_decl(&mut **self, node, __ast_path)
21611    }
21612
21613    #[inline]
21614    fn visit_ts_enum_member<'ast: 'r, 'r>(
21615        &mut self,
21616        node: &'ast TsEnumMember,
21617        __ast_path: &mut AstNodePath<'r>,
21618    ) {
21619        <V as VisitAstPath>::visit_ts_enum_member(&mut **self, node, __ast_path)
21620    }
21621
21622    #[inline]
21623    fn visit_ts_enum_member_id<'ast: 'r, 'r>(
21624        &mut self,
21625        node: &'ast TsEnumMemberId,
21626        __ast_path: &mut AstNodePath<'r>,
21627    ) {
21628        <V as VisitAstPath>::visit_ts_enum_member_id(&mut **self, node, __ast_path)
21629    }
21630
21631    #[inline]
21632    fn visit_ts_enum_members<'ast: 'r, 'r>(
21633        &mut self,
21634        node: &'ast [TsEnumMember],
21635        __ast_path: &mut AstNodePath<'r>,
21636    ) {
21637        <V as VisitAstPath>::visit_ts_enum_members(&mut **self, node, __ast_path)
21638    }
21639
21640    #[inline]
21641    fn visit_ts_export_assignment<'ast: 'r, 'r>(
21642        &mut self,
21643        node: &'ast TsExportAssignment,
21644        __ast_path: &mut AstNodePath<'r>,
21645    ) {
21646        <V as VisitAstPath>::visit_ts_export_assignment(&mut **self, node, __ast_path)
21647    }
21648
21649    #[inline]
21650    fn visit_ts_expr_with_type_args<'ast: 'r, 'r>(
21651        &mut self,
21652        node: &'ast TsExprWithTypeArgs,
21653        __ast_path: &mut AstNodePath<'r>,
21654    ) {
21655        <V as VisitAstPath>::visit_ts_expr_with_type_args(&mut **self, node, __ast_path)
21656    }
21657
21658    #[inline]
21659    fn visit_ts_expr_with_type_argss<'ast: 'r, 'r>(
21660        &mut self,
21661        node: &'ast [TsExprWithTypeArgs],
21662        __ast_path: &mut AstNodePath<'r>,
21663    ) {
21664        <V as VisitAstPath>::visit_ts_expr_with_type_argss(&mut **self, node, __ast_path)
21665    }
21666
21667    #[inline]
21668    fn visit_ts_external_module_ref<'ast: 'r, 'r>(
21669        &mut self,
21670        node: &'ast TsExternalModuleRef,
21671        __ast_path: &mut AstNodePath<'r>,
21672    ) {
21673        <V as VisitAstPath>::visit_ts_external_module_ref(&mut **self, node, __ast_path)
21674    }
21675
21676    #[inline]
21677    fn visit_ts_fn_or_constructor_type<'ast: 'r, 'r>(
21678        &mut self,
21679        node: &'ast TsFnOrConstructorType,
21680        __ast_path: &mut AstNodePath<'r>,
21681    ) {
21682        <V as VisitAstPath>::visit_ts_fn_or_constructor_type(&mut **self, node, __ast_path)
21683    }
21684
21685    #[inline]
21686    fn visit_ts_fn_param<'ast: 'r, 'r>(
21687        &mut self,
21688        node: &'ast TsFnParam,
21689        __ast_path: &mut AstNodePath<'r>,
21690    ) {
21691        <V as VisitAstPath>::visit_ts_fn_param(&mut **self, node, __ast_path)
21692    }
21693
21694    #[inline]
21695    fn visit_ts_fn_params<'ast: 'r, 'r>(
21696        &mut self,
21697        node: &'ast [TsFnParam],
21698        __ast_path: &mut AstNodePath<'r>,
21699    ) {
21700        <V as VisitAstPath>::visit_ts_fn_params(&mut **self, node, __ast_path)
21701    }
21702
21703    #[inline]
21704    fn visit_ts_fn_type<'ast: 'r, 'r>(
21705        &mut self,
21706        node: &'ast TsFnType,
21707        __ast_path: &mut AstNodePath<'r>,
21708    ) {
21709        <V as VisitAstPath>::visit_ts_fn_type(&mut **self, node, __ast_path)
21710    }
21711
21712    #[inline]
21713    fn visit_ts_getter_signature<'ast: 'r, 'r>(
21714        &mut self,
21715        node: &'ast TsGetterSignature,
21716        __ast_path: &mut AstNodePath<'r>,
21717    ) {
21718        <V as VisitAstPath>::visit_ts_getter_signature(&mut **self, node, __ast_path)
21719    }
21720
21721    #[inline]
21722    fn visit_ts_import_call_options<'ast: 'r, 'r>(
21723        &mut self,
21724        node: &'ast TsImportCallOptions,
21725        __ast_path: &mut AstNodePath<'r>,
21726    ) {
21727        <V as VisitAstPath>::visit_ts_import_call_options(&mut **self, node, __ast_path)
21728    }
21729
21730    #[inline]
21731    fn visit_ts_import_equals_decl<'ast: 'r, 'r>(
21732        &mut self,
21733        node: &'ast TsImportEqualsDecl,
21734        __ast_path: &mut AstNodePath<'r>,
21735    ) {
21736        <V as VisitAstPath>::visit_ts_import_equals_decl(&mut **self, node, __ast_path)
21737    }
21738
21739    #[inline]
21740    fn visit_ts_import_type<'ast: 'r, 'r>(
21741        &mut self,
21742        node: &'ast TsImportType,
21743        __ast_path: &mut AstNodePath<'r>,
21744    ) {
21745        <V as VisitAstPath>::visit_ts_import_type(&mut **self, node, __ast_path)
21746    }
21747
21748    #[inline]
21749    fn visit_ts_index_signature<'ast: 'r, 'r>(
21750        &mut self,
21751        node: &'ast TsIndexSignature,
21752        __ast_path: &mut AstNodePath<'r>,
21753    ) {
21754        <V as VisitAstPath>::visit_ts_index_signature(&mut **self, node, __ast_path)
21755    }
21756
21757    #[inline]
21758    fn visit_ts_indexed_access_type<'ast: 'r, 'r>(
21759        &mut self,
21760        node: &'ast TsIndexedAccessType,
21761        __ast_path: &mut AstNodePath<'r>,
21762    ) {
21763        <V as VisitAstPath>::visit_ts_indexed_access_type(&mut **self, node, __ast_path)
21764    }
21765
21766    #[inline]
21767    fn visit_ts_infer_type<'ast: 'r, 'r>(
21768        &mut self,
21769        node: &'ast TsInferType,
21770        __ast_path: &mut AstNodePath<'r>,
21771    ) {
21772        <V as VisitAstPath>::visit_ts_infer_type(&mut **self, node, __ast_path)
21773    }
21774
21775    #[inline]
21776    fn visit_ts_instantiation<'ast: 'r, 'r>(
21777        &mut self,
21778        node: &'ast TsInstantiation,
21779        __ast_path: &mut AstNodePath<'r>,
21780    ) {
21781        <V as VisitAstPath>::visit_ts_instantiation(&mut **self, node, __ast_path)
21782    }
21783
21784    #[inline]
21785    fn visit_ts_interface_body<'ast: 'r, 'r>(
21786        &mut self,
21787        node: &'ast TsInterfaceBody,
21788        __ast_path: &mut AstNodePath<'r>,
21789    ) {
21790        <V as VisitAstPath>::visit_ts_interface_body(&mut **self, node, __ast_path)
21791    }
21792
21793    #[inline]
21794    fn visit_ts_interface_decl<'ast: 'r, 'r>(
21795        &mut self,
21796        node: &'ast TsInterfaceDecl,
21797        __ast_path: &mut AstNodePath<'r>,
21798    ) {
21799        <V as VisitAstPath>::visit_ts_interface_decl(&mut **self, node, __ast_path)
21800    }
21801
21802    #[inline]
21803    fn visit_ts_intersection_type<'ast: 'r, 'r>(
21804        &mut self,
21805        node: &'ast TsIntersectionType,
21806        __ast_path: &mut AstNodePath<'r>,
21807    ) {
21808        <V as VisitAstPath>::visit_ts_intersection_type(&mut **self, node, __ast_path)
21809    }
21810
21811    #[inline]
21812    fn visit_ts_keyword_type<'ast: 'r, 'r>(
21813        &mut self,
21814        node: &'ast TsKeywordType,
21815        __ast_path: &mut AstNodePath<'r>,
21816    ) {
21817        <V as VisitAstPath>::visit_ts_keyword_type(&mut **self, node, __ast_path)
21818    }
21819
21820    #[inline]
21821    fn visit_ts_keyword_type_kind<'ast: 'r, 'r>(
21822        &mut self,
21823        node: &'ast TsKeywordTypeKind,
21824        __ast_path: &mut AstNodePath<'r>,
21825    ) {
21826        <V as VisitAstPath>::visit_ts_keyword_type_kind(&mut **self, node, __ast_path)
21827    }
21828
21829    #[inline]
21830    fn visit_ts_lit<'ast: 'r, 'r>(&mut self, node: &'ast TsLit, __ast_path: &mut AstNodePath<'r>) {
21831        <V as VisitAstPath>::visit_ts_lit(&mut **self, node, __ast_path)
21832    }
21833
21834    #[inline]
21835    fn visit_ts_lit_type<'ast: 'r, 'r>(
21836        &mut self,
21837        node: &'ast TsLitType,
21838        __ast_path: &mut AstNodePath<'r>,
21839    ) {
21840        <V as VisitAstPath>::visit_ts_lit_type(&mut **self, node, __ast_path)
21841    }
21842
21843    #[inline]
21844    fn visit_ts_mapped_type<'ast: 'r, 'r>(
21845        &mut self,
21846        node: &'ast TsMappedType,
21847        __ast_path: &mut AstNodePath<'r>,
21848    ) {
21849        <V as VisitAstPath>::visit_ts_mapped_type(&mut **self, node, __ast_path)
21850    }
21851
21852    #[inline]
21853    fn visit_ts_method_signature<'ast: 'r, 'r>(
21854        &mut self,
21855        node: &'ast TsMethodSignature,
21856        __ast_path: &mut AstNodePath<'r>,
21857    ) {
21858        <V as VisitAstPath>::visit_ts_method_signature(&mut **self, node, __ast_path)
21859    }
21860
21861    #[inline]
21862    fn visit_ts_module_block<'ast: 'r, 'r>(
21863        &mut self,
21864        node: &'ast TsModuleBlock,
21865        __ast_path: &mut AstNodePath<'r>,
21866    ) {
21867        <V as VisitAstPath>::visit_ts_module_block(&mut **self, node, __ast_path)
21868    }
21869
21870    #[inline]
21871    fn visit_ts_module_decl<'ast: 'r, 'r>(
21872        &mut self,
21873        node: &'ast TsModuleDecl,
21874        __ast_path: &mut AstNodePath<'r>,
21875    ) {
21876        <V as VisitAstPath>::visit_ts_module_decl(&mut **self, node, __ast_path)
21877    }
21878
21879    #[inline]
21880    fn visit_ts_module_name<'ast: 'r, 'r>(
21881        &mut self,
21882        node: &'ast TsModuleName,
21883        __ast_path: &mut AstNodePath<'r>,
21884    ) {
21885        <V as VisitAstPath>::visit_ts_module_name(&mut **self, node, __ast_path)
21886    }
21887
21888    #[inline]
21889    fn visit_ts_module_ref<'ast: 'r, 'r>(
21890        &mut self,
21891        node: &'ast TsModuleRef,
21892        __ast_path: &mut AstNodePath<'r>,
21893    ) {
21894        <V as VisitAstPath>::visit_ts_module_ref(&mut **self, node, __ast_path)
21895    }
21896
21897    #[inline]
21898    fn visit_ts_namespace_body<'ast: 'r, 'r>(
21899        &mut self,
21900        node: &'ast TsNamespaceBody,
21901        __ast_path: &mut AstNodePath<'r>,
21902    ) {
21903        <V as VisitAstPath>::visit_ts_namespace_body(&mut **self, node, __ast_path)
21904    }
21905
21906    #[inline]
21907    fn visit_ts_namespace_decl<'ast: 'r, 'r>(
21908        &mut self,
21909        node: &'ast TsNamespaceDecl,
21910        __ast_path: &mut AstNodePath<'r>,
21911    ) {
21912        <V as VisitAstPath>::visit_ts_namespace_decl(&mut **self, node, __ast_path)
21913    }
21914
21915    #[inline]
21916    fn visit_ts_namespace_export_decl<'ast: 'r, 'r>(
21917        &mut self,
21918        node: &'ast TsNamespaceExportDecl,
21919        __ast_path: &mut AstNodePath<'r>,
21920    ) {
21921        <V as VisitAstPath>::visit_ts_namespace_export_decl(&mut **self, node, __ast_path)
21922    }
21923
21924    #[inline]
21925    fn visit_ts_non_null_expr<'ast: 'r, 'r>(
21926        &mut self,
21927        node: &'ast TsNonNullExpr,
21928        __ast_path: &mut AstNodePath<'r>,
21929    ) {
21930        <V as VisitAstPath>::visit_ts_non_null_expr(&mut **self, node, __ast_path)
21931    }
21932
21933    #[inline]
21934    fn visit_ts_optional_type<'ast: 'r, 'r>(
21935        &mut self,
21936        node: &'ast TsOptionalType,
21937        __ast_path: &mut AstNodePath<'r>,
21938    ) {
21939        <V as VisitAstPath>::visit_ts_optional_type(&mut **self, node, __ast_path)
21940    }
21941
21942    #[inline]
21943    fn visit_ts_param_prop<'ast: 'r, 'r>(
21944        &mut self,
21945        node: &'ast TsParamProp,
21946        __ast_path: &mut AstNodePath<'r>,
21947    ) {
21948        <V as VisitAstPath>::visit_ts_param_prop(&mut **self, node, __ast_path)
21949    }
21950
21951    #[inline]
21952    fn visit_ts_param_prop_param<'ast: 'r, 'r>(
21953        &mut self,
21954        node: &'ast TsParamPropParam,
21955        __ast_path: &mut AstNodePath<'r>,
21956    ) {
21957        <V as VisitAstPath>::visit_ts_param_prop_param(&mut **self, node, __ast_path)
21958    }
21959
21960    #[inline]
21961    fn visit_ts_parenthesized_type<'ast: 'r, 'r>(
21962        &mut self,
21963        node: &'ast TsParenthesizedType,
21964        __ast_path: &mut AstNodePath<'r>,
21965    ) {
21966        <V as VisitAstPath>::visit_ts_parenthesized_type(&mut **self, node, __ast_path)
21967    }
21968
21969    #[inline]
21970    fn visit_ts_property_signature<'ast: 'r, 'r>(
21971        &mut self,
21972        node: &'ast TsPropertySignature,
21973        __ast_path: &mut AstNodePath<'r>,
21974    ) {
21975        <V as VisitAstPath>::visit_ts_property_signature(&mut **self, node, __ast_path)
21976    }
21977
21978    #[inline]
21979    fn visit_ts_qualified_name<'ast: 'r, 'r>(
21980        &mut self,
21981        node: &'ast TsQualifiedName,
21982        __ast_path: &mut AstNodePath<'r>,
21983    ) {
21984        <V as VisitAstPath>::visit_ts_qualified_name(&mut **self, node, __ast_path)
21985    }
21986
21987    #[inline]
21988    fn visit_ts_rest_type<'ast: 'r, 'r>(
21989        &mut self,
21990        node: &'ast TsRestType,
21991        __ast_path: &mut AstNodePath<'r>,
21992    ) {
21993        <V as VisitAstPath>::visit_ts_rest_type(&mut **self, node, __ast_path)
21994    }
21995
21996    #[inline]
21997    fn visit_ts_satisfies_expr<'ast: 'r, 'r>(
21998        &mut self,
21999        node: &'ast TsSatisfiesExpr,
22000        __ast_path: &mut AstNodePath<'r>,
22001    ) {
22002        <V as VisitAstPath>::visit_ts_satisfies_expr(&mut **self, node, __ast_path)
22003    }
22004
22005    #[inline]
22006    fn visit_ts_setter_signature<'ast: 'r, 'r>(
22007        &mut self,
22008        node: &'ast TsSetterSignature,
22009        __ast_path: &mut AstNodePath<'r>,
22010    ) {
22011        <V as VisitAstPath>::visit_ts_setter_signature(&mut **self, node, __ast_path)
22012    }
22013
22014    #[inline]
22015    fn visit_ts_this_type<'ast: 'r, 'r>(
22016        &mut self,
22017        node: &'ast TsThisType,
22018        __ast_path: &mut AstNodePath<'r>,
22019    ) {
22020        <V as VisitAstPath>::visit_ts_this_type(&mut **self, node, __ast_path)
22021    }
22022
22023    #[inline]
22024    fn visit_ts_this_type_or_ident<'ast: 'r, 'r>(
22025        &mut self,
22026        node: &'ast TsThisTypeOrIdent,
22027        __ast_path: &mut AstNodePath<'r>,
22028    ) {
22029        <V as VisitAstPath>::visit_ts_this_type_or_ident(&mut **self, node, __ast_path)
22030    }
22031
22032    #[inline]
22033    fn visit_ts_tpl_lit_type<'ast: 'r, 'r>(
22034        &mut self,
22035        node: &'ast TsTplLitType,
22036        __ast_path: &mut AstNodePath<'r>,
22037    ) {
22038        <V as VisitAstPath>::visit_ts_tpl_lit_type(&mut **self, node, __ast_path)
22039    }
22040
22041    #[inline]
22042    fn visit_ts_tuple_element<'ast: 'r, 'r>(
22043        &mut self,
22044        node: &'ast TsTupleElement,
22045        __ast_path: &mut AstNodePath<'r>,
22046    ) {
22047        <V as VisitAstPath>::visit_ts_tuple_element(&mut **self, node, __ast_path)
22048    }
22049
22050    #[inline]
22051    fn visit_ts_tuple_elements<'ast: 'r, 'r>(
22052        &mut self,
22053        node: &'ast [TsTupleElement],
22054        __ast_path: &mut AstNodePath<'r>,
22055    ) {
22056        <V as VisitAstPath>::visit_ts_tuple_elements(&mut **self, node, __ast_path)
22057    }
22058
22059    #[inline]
22060    fn visit_ts_tuple_type<'ast: 'r, 'r>(
22061        &mut self,
22062        node: &'ast TsTupleType,
22063        __ast_path: &mut AstNodePath<'r>,
22064    ) {
22065        <V as VisitAstPath>::visit_ts_tuple_type(&mut **self, node, __ast_path)
22066    }
22067
22068    #[inline]
22069    fn visit_ts_type<'ast: 'r, 'r>(
22070        &mut self,
22071        node: &'ast TsType,
22072        __ast_path: &mut AstNodePath<'r>,
22073    ) {
22074        <V as VisitAstPath>::visit_ts_type(&mut **self, node, __ast_path)
22075    }
22076
22077    #[inline]
22078    fn visit_ts_type_alias_decl<'ast: 'r, 'r>(
22079        &mut self,
22080        node: &'ast TsTypeAliasDecl,
22081        __ast_path: &mut AstNodePath<'r>,
22082    ) {
22083        <V as VisitAstPath>::visit_ts_type_alias_decl(&mut **self, node, __ast_path)
22084    }
22085
22086    #[inline]
22087    fn visit_ts_type_ann<'ast: 'r, 'r>(
22088        &mut self,
22089        node: &'ast TsTypeAnn,
22090        __ast_path: &mut AstNodePath<'r>,
22091    ) {
22092        <V as VisitAstPath>::visit_ts_type_ann(&mut **self, node, __ast_path)
22093    }
22094
22095    #[inline]
22096    fn visit_ts_type_assertion<'ast: 'r, 'r>(
22097        &mut self,
22098        node: &'ast TsTypeAssertion,
22099        __ast_path: &mut AstNodePath<'r>,
22100    ) {
22101        <V as VisitAstPath>::visit_ts_type_assertion(&mut **self, node, __ast_path)
22102    }
22103
22104    #[inline]
22105    fn visit_ts_type_element<'ast: 'r, 'r>(
22106        &mut self,
22107        node: &'ast TsTypeElement,
22108        __ast_path: &mut AstNodePath<'r>,
22109    ) {
22110        <V as VisitAstPath>::visit_ts_type_element(&mut **self, node, __ast_path)
22111    }
22112
22113    #[inline]
22114    fn visit_ts_type_elements<'ast: 'r, 'r>(
22115        &mut self,
22116        node: &'ast [TsTypeElement],
22117        __ast_path: &mut AstNodePath<'r>,
22118    ) {
22119        <V as VisitAstPath>::visit_ts_type_elements(&mut **self, node, __ast_path)
22120    }
22121
22122    #[inline]
22123    fn visit_ts_type_lit<'ast: 'r, 'r>(
22124        &mut self,
22125        node: &'ast TsTypeLit,
22126        __ast_path: &mut AstNodePath<'r>,
22127    ) {
22128        <V as VisitAstPath>::visit_ts_type_lit(&mut **self, node, __ast_path)
22129    }
22130
22131    #[inline]
22132    fn visit_ts_type_operator<'ast: 'r, 'r>(
22133        &mut self,
22134        node: &'ast TsTypeOperator,
22135        __ast_path: &mut AstNodePath<'r>,
22136    ) {
22137        <V as VisitAstPath>::visit_ts_type_operator(&mut **self, node, __ast_path)
22138    }
22139
22140    #[inline]
22141    fn visit_ts_type_operator_op<'ast: 'r, 'r>(
22142        &mut self,
22143        node: &'ast TsTypeOperatorOp,
22144        __ast_path: &mut AstNodePath<'r>,
22145    ) {
22146        <V as VisitAstPath>::visit_ts_type_operator_op(&mut **self, node, __ast_path)
22147    }
22148
22149    #[inline]
22150    fn visit_ts_type_param<'ast: 'r, 'r>(
22151        &mut self,
22152        node: &'ast TsTypeParam,
22153        __ast_path: &mut AstNodePath<'r>,
22154    ) {
22155        <V as VisitAstPath>::visit_ts_type_param(&mut **self, node, __ast_path)
22156    }
22157
22158    #[inline]
22159    fn visit_ts_type_param_decl<'ast: 'r, 'r>(
22160        &mut self,
22161        node: &'ast TsTypeParamDecl,
22162        __ast_path: &mut AstNodePath<'r>,
22163    ) {
22164        <V as VisitAstPath>::visit_ts_type_param_decl(&mut **self, node, __ast_path)
22165    }
22166
22167    #[inline]
22168    fn visit_ts_type_param_instantiation<'ast: 'r, 'r>(
22169        &mut self,
22170        node: &'ast TsTypeParamInstantiation,
22171        __ast_path: &mut AstNodePath<'r>,
22172    ) {
22173        <V as VisitAstPath>::visit_ts_type_param_instantiation(&mut **self, node, __ast_path)
22174    }
22175
22176    #[inline]
22177    fn visit_ts_type_params<'ast: 'r, 'r>(
22178        &mut self,
22179        node: &'ast [TsTypeParam],
22180        __ast_path: &mut AstNodePath<'r>,
22181    ) {
22182        <V as VisitAstPath>::visit_ts_type_params(&mut **self, node, __ast_path)
22183    }
22184
22185    #[inline]
22186    fn visit_ts_type_predicate<'ast: 'r, 'r>(
22187        &mut self,
22188        node: &'ast TsTypePredicate,
22189        __ast_path: &mut AstNodePath<'r>,
22190    ) {
22191        <V as VisitAstPath>::visit_ts_type_predicate(&mut **self, node, __ast_path)
22192    }
22193
22194    #[inline]
22195    fn visit_ts_type_query<'ast: 'r, 'r>(
22196        &mut self,
22197        node: &'ast TsTypeQuery,
22198        __ast_path: &mut AstNodePath<'r>,
22199    ) {
22200        <V as VisitAstPath>::visit_ts_type_query(&mut **self, node, __ast_path)
22201    }
22202
22203    #[inline]
22204    fn visit_ts_type_query_expr<'ast: 'r, 'r>(
22205        &mut self,
22206        node: &'ast TsTypeQueryExpr,
22207        __ast_path: &mut AstNodePath<'r>,
22208    ) {
22209        <V as VisitAstPath>::visit_ts_type_query_expr(&mut **self, node, __ast_path)
22210    }
22211
22212    #[inline]
22213    fn visit_ts_type_ref<'ast: 'r, 'r>(
22214        &mut self,
22215        node: &'ast TsTypeRef,
22216        __ast_path: &mut AstNodePath<'r>,
22217    ) {
22218        <V as VisitAstPath>::visit_ts_type_ref(&mut **self, node, __ast_path)
22219    }
22220
22221    #[inline]
22222    fn visit_ts_types<'ast: 'r, 'r>(
22223        &mut self,
22224        node: &'ast [Box<TsType>],
22225        __ast_path: &mut AstNodePath<'r>,
22226    ) {
22227        <V as VisitAstPath>::visit_ts_types(&mut **self, node, __ast_path)
22228    }
22229
22230    #[inline]
22231    fn visit_ts_union_or_intersection_type<'ast: 'r, 'r>(
22232        &mut self,
22233        node: &'ast TsUnionOrIntersectionType,
22234        __ast_path: &mut AstNodePath<'r>,
22235    ) {
22236        <V as VisitAstPath>::visit_ts_union_or_intersection_type(&mut **self, node, __ast_path)
22237    }
22238
22239    #[inline]
22240    fn visit_ts_union_type<'ast: 'r, 'r>(
22241        &mut self,
22242        node: &'ast TsUnionType,
22243        __ast_path: &mut AstNodePath<'r>,
22244    ) {
22245        <V as VisitAstPath>::visit_ts_union_type(&mut **self, node, __ast_path)
22246    }
22247
22248    #[inline]
22249    fn visit_unary_expr<'ast: 'r, 'r>(
22250        &mut self,
22251        node: &'ast UnaryExpr,
22252        __ast_path: &mut AstNodePath<'r>,
22253    ) {
22254        <V as VisitAstPath>::visit_unary_expr(&mut **self, node, __ast_path)
22255    }
22256
22257    #[inline]
22258    fn visit_unary_op<'ast: 'r, 'r>(
22259        &mut self,
22260        node: &'ast UnaryOp,
22261        __ast_path: &mut AstNodePath<'r>,
22262    ) {
22263        <V as VisitAstPath>::visit_unary_op(&mut **self, node, __ast_path)
22264    }
22265
22266    #[inline]
22267    fn visit_update_expr<'ast: 'r, 'r>(
22268        &mut self,
22269        node: &'ast UpdateExpr,
22270        __ast_path: &mut AstNodePath<'r>,
22271    ) {
22272        <V as VisitAstPath>::visit_update_expr(&mut **self, node, __ast_path)
22273    }
22274
22275    #[inline]
22276    fn visit_update_op<'ast: 'r, 'r>(
22277        &mut self,
22278        node: &'ast UpdateOp,
22279        __ast_path: &mut AstNodePath<'r>,
22280    ) {
22281        <V as VisitAstPath>::visit_update_op(&mut **self, node, __ast_path)
22282    }
22283
22284    #[inline]
22285    fn visit_using_decl<'ast: 'r, 'r>(
22286        &mut self,
22287        node: &'ast UsingDecl,
22288        __ast_path: &mut AstNodePath<'r>,
22289    ) {
22290        <V as VisitAstPath>::visit_using_decl(&mut **self, node, __ast_path)
22291    }
22292
22293    #[inline]
22294    fn visit_var_decl<'ast: 'r, 'r>(
22295        &mut self,
22296        node: &'ast VarDecl,
22297        __ast_path: &mut AstNodePath<'r>,
22298    ) {
22299        <V as VisitAstPath>::visit_var_decl(&mut **self, node, __ast_path)
22300    }
22301
22302    #[inline]
22303    fn visit_var_decl_kind<'ast: 'r, 'r>(
22304        &mut self,
22305        node: &'ast VarDeclKind,
22306        __ast_path: &mut AstNodePath<'r>,
22307    ) {
22308        <V as VisitAstPath>::visit_var_decl_kind(&mut **self, node, __ast_path)
22309    }
22310
22311    #[inline]
22312    fn visit_var_decl_or_expr<'ast: 'r, 'r>(
22313        &mut self,
22314        node: &'ast VarDeclOrExpr,
22315        __ast_path: &mut AstNodePath<'r>,
22316    ) {
22317        <V as VisitAstPath>::visit_var_decl_or_expr(&mut **self, node, __ast_path)
22318    }
22319
22320    #[inline]
22321    fn visit_var_declarator<'ast: 'r, 'r>(
22322        &mut self,
22323        node: &'ast VarDeclarator,
22324        __ast_path: &mut AstNodePath<'r>,
22325    ) {
22326        <V as VisitAstPath>::visit_var_declarator(&mut **self, node, __ast_path)
22327    }
22328
22329    #[inline]
22330    fn visit_var_declarators<'ast: 'r, 'r>(
22331        &mut self,
22332        node: &'ast [VarDeclarator],
22333        __ast_path: &mut AstNodePath<'r>,
22334    ) {
22335        <V as VisitAstPath>::visit_var_declarators(&mut **self, node, __ast_path)
22336    }
22337
22338    #[inline]
22339    fn visit_while_stmt<'ast: 'r, 'r>(
22340        &mut self,
22341        node: &'ast WhileStmt,
22342        __ast_path: &mut AstNodePath<'r>,
22343    ) {
22344        <V as VisitAstPath>::visit_while_stmt(&mut **self, node, __ast_path)
22345    }
22346
22347    #[inline]
22348    fn visit_with_stmt<'ast: 'r, 'r>(
22349        &mut self,
22350        node: &'ast WithStmt,
22351        __ast_path: &mut AstNodePath<'r>,
22352    ) {
22353        <V as VisitAstPath>::visit_with_stmt(&mut **self, node, __ast_path)
22354    }
22355
22356    #[inline]
22357    fn visit_yield_expr<'ast: 'r, 'r>(
22358        &mut self,
22359        node: &'ast YieldExpr,
22360        __ast_path: &mut AstNodePath<'r>,
22361    ) {
22362        <V as VisitAstPath>::visit_yield_expr(&mut **self, node, __ast_path)
22363    }
22364}
22365#[cfg(any(docsrs, feature = "path"))]
22366#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
22367impl<V> VisitAstPath for Box<V>
22368where
22369    V: ?Sized + VisitAstPath,
22370{
22371    #[inline]
22372    fn visit_accessibility<'ast: 'r, 'r>(
22373        &mut self,
22374        node: &'ast Accessibility,
22375        __ast_path: &mut AstNodePath<'r>,
22376    ) {
22377        <V as VisitAstPath>::visit_accessibility(&mut **self, node, __ast_path)
22378    }
22379
22380    #[inline]
22381    fn visit_array_lit<'ast: 'r, 'r>(
22382        &mut self,
22383        node: &'ast ArrayLit,
22384        __ast_path: &mut AstNodePath<'r>,
22385    ) {
22386        <V as VisitAstPath>::visit_array_lit(&mut **self, node, __ast_path)
22387    }
22388
22389    #[inline]
22390    fn visit_array_pat<'ast: 'r, 'r>(
22391        &mut self,
22392        node: &'ast ArrayPat,
22393        __ast_path: &mut AstNodePath<'r>,
22394    ) {
22395        <V as VisitAstPath>::visit_array_pat(&mut **self, node, __ast_path)
22396    }
22397
22398    #[inline]
22399    fn visit_arrow_expr<'ast: 'r, 'r>(
22400        &mut self,
22401        node: &'ast ArrowExpr,
22402        __ast_path: &mut AstNodePath<'r>,
22403    ) {
22404        <V as VisitAstPath>::visit_arrow_expr(&mut **self, node, __ast_path)
22405    }
22406
22407    #[inline]
22408    fn visit_assign_expr<'ast: 'r, 'r>(
22409        &mut self,
22410        node: &'ast AssignExpr,
22411        __ast_path: &mut AstNodePath<'r>,
22412    ) {
22413        <V as VisitAstPath>::visit_assign_expr(&mut **self, node, __ast_path)
22414    }
22415
22416    #[inline]
22417    fn visit_assign_op<'ast: 'r, 'r>(
22418        &mut self,
22419        node: &'ast AssignOp,
22420        __ast_path: &mut AstNodePath<'r>,
22421    ) {
22422        <V as VisitAstPath>::visit_assign_op(&mut **self, node, __ast_path)
22423    }
22424
22425    #[inline]
22426    fn visit_assign_pat<'ast: 'r, 'r>(
22427        &mut self,
22428        node: &'ast AssignPat,
22429        __ast_path: &mut AstNodePath<'r>,
22430    ) {
22431        <V as VisitAstPath>::visit_assign_pat(&mut **self, node, __ast_path)
22432    }
22433
22434    #[inline]
22435    fn visit_assign_pat_prop<'ast: 'r, 'r>(
22436        &mut self,
22437        node: &'ast AssignPatProp,
22438        __ast_path: &mut AstNodePath<'r>,
22439    ) {
22440        <V as VisitAstPath>::visit_assign_pat_prop(&mut **self, node, __ast_path)
22441    }
22442
22443    #[inline]
22444    fn visit_assign_prop<'ast: 'r, 'r>(
22445        &mut self,
22446        node: &'ast AssignProp,
22447        __ast_path: &mut AstNodePath<'r>,
22448    ) {
22449        <V as VisitAstPath>::visit_assign_prop(&mut **self, node, __ast_path)
22450    }
22451
22452    #[inline]
22453    fn visit_assign_target<'ast: 'r, 'r>(
22454        &mut self,
22455        node: &'ast AssignTarget,
22456        __ast_path: &mut AstNodePath<'r>,
22457    ) {
22458        <V as VisitAstPath>::visit_assign_target(&mut **self, node, __ast_path)
22459    }
22460
22461    #[inline]
22462    fn visit_assign_target_pat<'ast: 'r, 'r>(
22463        &mut self,
22464        node: &'ast AssignTargetPat,
22465        __ast_path: &mut AstNodePath<'r>,
22466    ) {
22467        <V as VisitAstPath>::visit_assign_target_pat(&mut **self, node, __ast_path)
22468    }
22469
22470    #[inline]
22471    fn visit_atom<'ast: 'r, 'r>(
22472        &mut self,
22473        node: &'ast swc_atoms::Atom,
22474        __ast_path: &mut AstNodePath<'r>,
22475    ) {
22476        <V as VisitAstPath>::visit_atom(&mut **self, node, __ast_path)
22477    }
22478
22479    #[inline]
22480    fn visit_auto_accessor<'ast: 'r, 'r>(
22481        &mut self,
22482        node: &'ast AutoAccessor,
22483        __ast_path: &mut AstNodePath<'r>,
22484    ) {
22485        <V as VisitAstPath>::visit_auto_accessor(&mut **self, node, __ast_path)
22486    }
22487
22488    #[inline]
22489    fn visit_await_expr<'ast: 'r, 'r>(
22490        &mut self,
22491        node: &'ast AwaitExpr,
22492        __ast_path: &mut AstNodePath<'r>,
22493    ) {
22494        <V as VisitAstPath>::visit_await_expr(&mut **self, node, __ast_path)
22495    }
22496
22497    #[inline]
22498    fn visit_big_int<'ast: 'r, 'r>(
22499        &mut self,
22500        node: &'ast BigInt,
22501        __ast_path: &mut AstNodePath<'r>,
22502    ) {
22503        <V as VisitAstPath>::visit_big_int(&mut **self, node, __ast_path)
22504    }
22505
22506    #[inline]
22507    fn visit_big_int_value<'ast: 'r, 'r>(
22508        &mut self,
22509        node: &'ast BigIntValue,
22510        __ast_path: &mut AstNodePath<'r>,
22511    ) {
22512        <V as VisitAstPath>::visit_big_int_value(&mut **self, node, __ast_path)
22513    }
22514
22515    #[inline]
22516    fn visit_bin_expr<'ast: 'r, 'r>(
22517        &mut self,
22518        node: &'ast BinExpr,
22519        __ast_path: &mut AstNodePath<'r>,
22520    ) {
22521        <V as VisitAstPath>::visit_bin_expr(&mut **self, node, __ast_path)
22522    }
22523
22524    #[inline]
22525    fn visit_binary_op<'ast: 'r, 'r>(
22526        &mut self,
22527        node: &'ast BinaryOp,
22528        __ast_path: &mut AstNodePath<'r>,
22529    ) {
22530        <V as VisitAstPath>::visit_binary_op(&mut **self, node, __ast_path)
22531    }
22532
22533    #[inline]
22534    fn visit_binding_ident<'ast: 'r, 'r>(
22535        &mut self,
22536        node: &'ast BindingIdent,
22537        __ast_path: &mut AstNodePath<'r>,
22538    ) {
22539        <V as VisitAstPath>::visit_binding_ident(&mut **self, node, __ast_path)
22540    }
22541
22542    #[inline]
22543    fn visit_block_stmt<'ast: 'r, 'r>(
22544        &mut self,
22545        node: &'ast BlockStmt,
22546        __ast_path: &mut AstNodePath<'r>,
22547    ) {
22548        <V as VisitAstPath>::visit_block_stmt(&mut **self, node, __ast_path)
22549    }
22550
22551    #[inline]
22552    fn visit_block_stmt_or_expr<'ast: 'r, 'r>(
22553        &mut self,
22554        node: &'ast BlockStmtOrExpr,
22555        __ast_path: &mut AstNodePath<'r>,
22556    ) {
22557        <V as VisitAstPath>::visit_block_stmt_or_expr(&mut **self, node, __ast_path)
22558    }
22559
22560    #[inline]
22561    fn visit_bool<'ast: 'r, 'r>(&mut self, node: &'ast Bool, __ast_path: &mut AstNodePath<'r>) {
22562        <V as VisitAstPath>::visit_bool(&mut **self, node, __ast_path)
22563    }
22564
22565    #[inline]
22566    fn visit_break_stmt<'ast: 'r, 'r>(
22567        &mut self,
22568        node: &'ast BreakStmt,
22569        __ast_path: &mut AstNodePath<'r>,
22570    ) {
22571        <V as VisitAstPath>::visit_break_stmt(&mut **self, node, __ast_path)
22572    }
22573
22574    #[inline]
22575    fn visit_call_expr<'ast: 'r, 'r>(
22576        &mut self,
22577        node: &'ast CallExpr,
22578        __ast_path: &mut AstNodePath<'r>,
22579    ) {
22580        <V as VisitAstPath>::visit_call_expr(&mut **self, node, __ast_path)
22581    }
22582
22583    #[inline]
22584    fn visit_callee<'ast: 'r, 'r>(&mut self, node: &'ast Callee, __ast_path: &mut AstNodePath<'r>) {
22585        <V as VisitAstPath>::visit_callee(&mut **self, node, __ast_path)
22586    }
22587
22588    #[inline]
22589    fn visit_catch_clause<'ast: 'r, 'r>(
22590        &mut self,
22591        node: &'ast CatchClause,
22592        __ast_path: &mut AstNodePath<'r>,
22593    ) {
22594        <V as VisitAstPath>::visit_catch_clause(&mut **self, node, __ast_path)
22595    }
22596
22597    #[inline]
22598    fn visit_class<'ast: 'r, 'r>(&mut self, node: &'ast Class, __ast_path: &mut AstNodePath<'r>) {
22599        <V as VisitAstPath>::visit_class(&mut **self, node, __ast_path)
22600    }
22601
22602    #[inline]
22603    fn visit_class_decl<'ast: 'r, 'r>(
22604        &mut self,
22605        node: &'ast ClassDecl,
22606        __ast_path: &mut AstNodePath<'r>,
22607    ) {
22608        <V as VisitAstPath>::visit_class_decl(&mut **self, node, __ast_path)
22609    }
22610
22611    #[inline]
22612    fn visit_class_expr<'ast: 'r, 'r>(
22613        &mut self,
22614        node: &'ast ClassExpr,
22615        __ast_path: &mut AstNodePath<'r>,
22616    ) {
22617        <V as VisitAstPath>::visit_class_expr(&mut **self, node, __ast_path)
22618    }
22619
22620    #[inline]
22621    fn visit_class_member<'ast: 'r, 'r>(
22622        &mut self,
22623        node: &'ast ClassMember,
22624        __ast_path: &mut AstNodePath<'r>,
22625    ) {
22626        <V as VisitAstPath>::visit_class_member(&mut **self, node, __ast_path)
22627    }
22628
22629    #[inline]
22630    fn visit_class_members<'ast: 'r, 'r>(
22631        &mut self,
22632        node: &'ast [ClassMember],
22633        __ast_path: &mut AstNodePath<'r>,
22634    ) {
22635        <V as VisitAstPath>::visit_class_members(&mut **self, node, __ast_path)
22636    }
22637
22638    #[inline]
22639    fn visit_class_method<'ast: 'r, 'r>(
22640        &mut self,
22641        node: &'ast ClassMethod,
22642        __ast_path: &mut AstNodePath<'r>,
22643    ) {
22644        <V as VisitAstPath>::visit_class_method(&mut **self, node, __ast_path)
22645    }
22646
22647    #[inline]
22648    fn visit_class_prop<'ast: 'r, 'r>(
22649        &mut self,
22650        node: &'ast ClassProp,
22651        __ast_path: &mut AstNodePath<'r>,
22652    ) {
22653        <V as VisitAstPath>::visit_class_prop(&mut **self, node, __ast_path)
22654    }
22655
22656    #[inline]
22657    fn visit_computed_prop_name<'ast: 'r, 'r>(
22658        &mut self,
22659        node: &'ast ComputedPropName,
22660        __ast_path: &mut AstNodePath<'r>,
22661    ) {
22662        <V as VisitAstPath>::visit_computed_prop_name(&mut **self, node, __ast_path)
22663    }
22664
22665    #[inline]
22666    fn visit_cond_expr<'ast: 'r, 'r>(
22667        &mut self,
22668        node: &'ast CondExpr,
22669        __ast_path: &mut AstNodePath<'r>,
22670    ) {
22671        <V as VisitAstPath>::visit_cond_expr(&mut **self, node, __ast_path)
22672    }
22673
22674    #[inline]
22675    fn visit_constructor<'ast: 'r, 'r>(
22676        &mut self,
22677        node: &'ast Constructor,
22678        __ast_path: &mut AstNodePath<'r>,
22679    ) {
22680        <V as VisitAstPath>::visit_constructor(&mut **self, node, __ast_path)
22681    }
22682
22683    #[inline]
22684    fn visit_continue_stmt<'ast: 'r, 'r>(
22685        &mut self,
22686        node: &'ast ContinueStmt,
22687        __ast_path: &mut AstNodePath<'r>,
22688    ) {
22689        <V as VisitAstPath>::visit_continue_stmt(&mut **self, node, __ast_path)
22690    }
22691
22692    #[inline]
22693    fn visit_debugger_stmt<'ast: 'r, 'r>(
22694        &mut self,
22695        node: &'ast DebuggerStmt,
22696        __ast_path: &mut AstNodePath<'r>,
22697    ) {
22698        <V as VisitAstPath>::visit_debugger_stmt(&mut **self, node, __ast_path)
22699    }
22700
22701    #[inline]
22702    fn visit_decl<'ast: 'r, 'r>(&mut self, node: &'ast Decl, __ast_path: &mut AstNodePath<'r>) {
22703        <V as VisitAstPath>::visit_decl(&mut **self, node, __ast_path)
22704    }
22705
22706    #[inline]
22707    fn visit_decorator<'ast: 'r, 'r>(
22708        &mut self,
22709        node: &'ast Decorator,
22710        __ast_path: &mut AstNodePath<'r>,
22711    ) {
22712        <V as VisitAstPath>::visit_decorator(&mut **self, node, __ast_path)
22713    }
22714
22715    #[inline]
22716    fn visit_decorators<'ast: 'r, 'r>(
22717        &mut self,
22718        node: &'ast [Decorator],
22719        __ast_path: &mut AstNodePath<'r>,
22720    ) {
22721        <V as VisitAstPath>::visit_decorators(&mut **self, node, __ast_path)
22722    }
22723
22724    #[inline]
22725    fn visit_default_decl<'ast: 'r, 'r>(
22726        &mut self,
22727        node: &'ast DefaultDecl,
22728        __ast_path: &mut AstNodePath<'r>,
22729    ) {
22730        <V as VisitAstPath>::visit_default_decl(&mut **self, node, __ast_path)
22731    }
22732
22733    #[inline]
22734    fn visit_do_while_stmt<'ast: 'r, 'r>(
22735        &mut self,
22736        node: &'ast DoWhileStmt,
22737        __ast_path: &mut AstNodePath<'r>,
22738    ) {
22739        <V as VisitAstPath>::visit_do_while_stmt(&mut **self, node, __ast_path)
22740    }
22741
22742    #[inline]
22743    fn visit_empty_stmt<'ast: 'r, 'r>(
22744        &mut self,
22745        node: &'ast EmptyStmt,
22746        __ast_path: &mut AstNodePath<'r>,
22747    ) {
22748        <V as VisitAstPath>::visit_empty_stmt(&mut **self, node, __ast_path)
22749    }
22750
22751    #[inline]
22752    fn visit_export_all<'ast: 'r, 'r>(
22753        &mut self,
22754        node: &'ast ExportAll,
22755        __ast_path: &mut AstNodePath<'r>,
22756    ) {
22757        <V as VisitAstPath>::visit_export_all(&mut **self, node, __ast_path)
22758    }
22759
22760    #[inline]
22761    fn visit_export_decl<'ast: 'r, 'r>(
22762        &mut self,
22763        node: &'ast ExportDecl,
22764        __ast_path: &mut AstNodePath<'r>,
22765    ) {
22766        <V as VisitAstPath>::visit_export_decl(&mut **self, node, __ast_path)
22767    }
22768
22769    #[inline]
22770    fn visit_export_default_decl<'ast: 'r, 'r>(
22771        &mut self,
22772        node: &'ast ExportDefaultDecl,
22773        __ast_path: &mut AstNodePath<'r>,
22774    ) {
22775        <V as VisitAstPath>::visit_export_default_decl(&mut **self, node, __ast_path)
22776    }
22777
22778    #[inline]
22779    fn visit_export_default_expr<'ast: 'r, 'r>(
22780        &mut self,
22781        node: &'ast ExportDefaultExpr,
22782        __ast_path: &mut AstNodePath<'r>,
22783    ) {
22784        <V as VisitAstPath>::visit_export_default_expr(&mut **self, node, __ast_path)
22785    }
22786
22787    #[inline]
22788    fn visit_export_default_specifier<'ast: 'r, 'r>(
22789        &mut self,
22790        node: &'ast ExportDefaultSpecifier,
22791        __ast_path: &mut AstNodePath<'r>,
22792    ) {
22793        <V as VisitAstPath>::visit_export_default_specifier(&mut **self, node, __ast_path)
22794    }
22795
22796    #[inline]
22797    fn visit_export_named_specifier<'ast: 'r, 'r>(
22798        &mut self,
22799        node: &'ast ExportNamedSpecifier,
22800        __ast_path: &mut AstNodePath<'r>,
22801    ) {
22802        <V as VisitAstPath>::visit_export_named_specifier(&mut **self, node, __ast_path)
22803    }
22804
22805    #[inline]
22806    fn visit_export_namespace_specifier<'ast: 'r, 'r>(
22807        &mut self,
22808        node: &'ast ExportNamespaceSpecifier,
22809        __ast_path: &mut AstNodePath<'r>,
22810    ) {
22811        <V as VisitAstPath>::visit_export_namespace_specifier(&mut **self, node, __ast_path)
22812    }
22813
22814    #[inline]
22815    fn visit_export_specifier<'ast: 'r, 'r>(
22816        &mut self,
22817        node: &'ast ExportSpecifier,
22818        __ast_path: &mut AstNodePath<'r>,
22819    ) {
22820        <V as VisitAstPath>::visit_export_specifier(&mut **self, node, __ast_path)
22821    }
22822
22823    #[inline]
22824    fn visit_export_specifiers<'ast: 'r, 'r>(
22825        &mut self,
22826        node: &'ast [ExportSpecifier],
22827        __ast_path: &mut AstNodePath<'r>,
22828    ) {
22829        <V as VisitAstPath>::visit_export_specifiers(&mut **self, node, __ast_path)
22830    }
22831
22832    #[inline]
22833    fn visit_expr<'ast: 'r, 'r>(&mut self, node: &'ast Expr, __ast_path: &mut AstNodePath<'r>) {
22834        <V as VisitAstPath>::visit_expr(&mut **self, node, __ast_path)
22835    }
22836
22837    #[inline]
22838    fn visit_expr_or_spread<'ast: 'r, 'r>(
22839        &mut self,
22840        node: &'ast ExprOrSpread,
22841        __ast_path: &mut AstNodePath<'r>,
22842    ) {
22843        <V as VisitAstPath>::visit_expr_or_spread(&mut **self, node, __ast_path)
22844    }
22845
22846    #[inline]
22847    fn visit_expr_or_spreads<'ast: 'r, 'r>(
22848        &mut self,
22849        node: &'ast [ExprOrSpread],
22850        __ast_path: &mut AstNodePath<'r>,
22851    ) {
22852        <V as VisitAstPath>::visit_expr_or_spreads(&mut **self, node, __ast_path)
22853    }
22854
22855    #[inline]
22856    fn visit_expr_stmt<'ast: 'r, 'r>(
22857        &mut self,
22858        node: &'ast ExprStmt,
22859        __ast_path: &mut AstNodePath<'r>,
22860    ) {
22861        <V as VisitAstPath>::visit_expr_stmt(&mut **self, node, __ast_path)
22862    }
22863
22864    #[inline]
22865    fn visit_exprs<'ast: 'r, 'r>(
22866        &mut self,
22867        node: &'ast [Box<Expr>],
22868        __ast_path: &mut AstNodePath<'r>,
22869    ) {
22870        <V as VisitAstPath>::visit_exprs(&mut **self, node, __ast_path)
22871    }
22872
22873    #[inline]
22874    fn visit_fn_decl<'ast: 'r, 'r>(
22875        &mut self,
22876        node: &'ast FnDecl,
22877        __ast_path: &mut AstNodePath<'r>,
22878    ) {
22879        <V as VisitAstPath>::visit_fn_decl(&mut **self, node, __ast_path)
22880    }
22881
22882    #[inline]
22883    fn visit_fn_expr<'ast: 'r, 'r>(
22884        &mut self,
22885        node: &'ast FnExpr,
22886        __ast_path: &mut AstNodePath<'r>,
22887    ) {
22888        <V as VisitAstPath>::visit_fn_expr(&mut **self, node, __ast_path)
22889    }
22890
22891    #[inline]
22892    fn visit_for_head<'ast: 'r, 'r>(
22893        &mut self,
22894        node: &'ast ForHead,
22895        __ast_path: &mut AstNodePath<'r>,
22896    ) {
22897        <V as VisitAstPath>::visit_for_head(&mut **self, node, __ast_path)
22898    }
22899
22900    #[inline]
22901    fn visit_for_in_stmt<'ast: 'r, 'r>(
22902        &mut self,
22903        node: &'ast ForInStmt,
22904        __ast_path: &mut AstNodePath<'r>,
22905    ) {
22906        <V as VisitAstPath>::visit_for_in_stmt(&mut **self, node, __ast_path)
22907    }
22908
22909    #[inline]
22910    fn visit_for_of_stmt<'ast: 'r, 'r>(
22911        &mut self,
22912        node: &'ast ForOfStmt,
22913        __ast_path: &mut AstNodePath<'r>,
22914    ) {
22915        <V as VisitAstPath>::visit_for_of_stmt(&mut **self, node, __ast_path)
22916    }
22917
22918    #[inline]
22919    fn visit_for_stmt<'ast: 'r, 'r>(
22920        &mut self,
22921        node: &'ast ForStmt,
22922        __ast_path: &mut AstNodePath<'r>,
22923    ) {
22924        <V as VisitAstPath>::visit_for_stmt(&mut **self, node, __ast_path)
22925    }
22926
22927    #[inline]
22928    fn visit_function<'ast: 'r, 'r>(
22929        &mut self,
22930        node: &'ast Function,
22931        __ast_path: &mut AstNodePath<'r>,
22932    ) {
22933        <V as VisitAstPath>::visit_function(&mut **self, node, __ast_path)
22934    }
22935
22936    #[inline]
22937    fn visit_getter_prop<'ast: 'r, 'r>(
22938        &mut self,
22939        node: &'ast GetterProp,
22940        __ast_path: &mut AstNodePath<'r>,
22941    ) {
22942        <V as VisitAstPath>::visit_getter_prop(&mut **self, node, __ast_path)
22943    }
22944
22945    #[inline]
22946    fn visit_ident<'ast: 'r, 'r>(&mut self, node: &'ast Ident, __ast_path: &mut AstNodePath<'r>) {
22947        <V as VisitAstPath>::visit_ident(&mut **self, node, __ast_path)
22948    }
22949
22950    #[inline]
22951    fn visit_ident_name<'ast: 'r, 'r>(
22952        &mut self,
22953        node: &'ast IdentName,
22954        __ast_path: &mut AstNodePath<'r>,
22955    ) {
22956        <V as VisitAstPath>::visit_ident_name(&mut **self, node, __ast_path)
22957    }
22958
22959    #[inline]
22960    fn visit_if_stmt<'ast: 'r, 'r>(
22961        &mut self,
22962        node: &'ast IfStmt,
22963        __ast_path: &mut AstNodePath<'r>,
22964    ) {
22965        <V as VisitAstPath>::visit_if_stmt(&mut **self, node, __ast_path)
22966    }
22967
22968    #[inline]
22969    fn visit_import<'ast: 'r, 'r>(&mut self, node: &'ast Import, __ast_path: &mut AstNodePath<'r>) {
22970        <V as VisitAstPath>::visit_import(&mut **self, node, __ast_path)
22971    }
22972
22973    #[inline]
22974    fn visit_import_decl<'ast: 'r, 'r>(
22975        &mut self,
22976        node: &'ast ImportDecl,
22977        __ast_path: &mut AstNodePath<'r>,
22978    ) {
22979        <V as VisitAstPath>::visit_import_decl(&mut **self, node, __ast_path)
22980    }
22981
22982    #[inline]
22983    fn visit_import_default_specifier<'ast: 'r, 'r>(
22984        &mut self,
22985        node: &'ast ImportDefaultSpecifier,
22986        __ast_path: &mut AstNodePath<'r>,
22987    ) {
22988        <V as VisitAstPath>::visit_import_default_specifier(&mut **self, node, __ast_path)
22989    }
22990
22991    #[inline]
22992    fn visit_import_named_specifier<'ast: 'r, 'r>(
22993        &mut self,
22994        node: &'ast ImportNamedSpecifier,
22995        __ast_path: &mut AstNodePath<'r>,
22996    ) {
22997        <V as VisitAstPath>::visit_import_named_specifier(&mut **self, node, __ast_path)
22998    }
22999
23000    #[inline]
23001    fn visit_import_phase<'ast: 'r, 'r>(
23002        &mut self,
23003        node: &'ast ImportPhase,
23004        __ast_path: &mut AstNodePath<'r>,
23005    ) {
23006        <V as VisitAstPath>::visit_import_phase(&mut **self, node, __ast_path)
23007    }
23008
23009    #[inline]
23010    fn visit_import_specifier<'ast: 'r, 'r>(
23011        &mut self,
23012        node: &'ast ImportSpecifier,
23013        __ast_path: &mut AstNodePath<'r>,
23014    ) {
23015        <V as VisitAstPath>::visit_import_specifier(&mut **self, node, __ast_path)
23016    }
23017
23018    #[inline]
23019    fn visit_import_specifiers<'ast: 'r, 'r>(
23020        &mut self,
23021        node: &'ast [ImportSpecifier],
23022        __ast_path: &mut AstNodePath<'r>,
23023    ) {
23024        <V as VisitAstPath>::visit_import_specifiers(&mut **self, node, __ast_path)
23025    }
23026
23027    #[inline]
23028    fn visit_import_star_as_specifier<'ast: 'r, 'r>(
23029        &mut self,
23030        node: &'ast ImportStarAsSpecifier,
23031        __ast_path: &mut AstNodePath<'r>,
23032    ) {
23033        <V as VisitAstPath>::visit_import_star_as_specifier(&mut **self, node, __ast_path)
23034    }
23035
23036    #[inline]
23037    fn visit_import_with<'ast: 'r, 'r>(
23038        &mut self,
23039        node: &'ast ImportWith,
23040        __ast_path: &mut AstNodePath<'r>,
23041    ) {
23042        <V as VisitAstPath>::visit_import_with(&mut **self, node, __ast_path)
23043    }
23044
23045    #[inline]
23046    fn visit_import_with_item<'ast: 'r, 'r>(
23047        &mut self,
23048        node: &'ast ImportWithItem,
23049        __ast_path: &mut AstNodePath<'r>,
23050    ) {
23051        <V as VisitAstPath>::visit_import_with_item(&mut **self, node, __ast_path)
23052    }
23053
23054    #[inline]
23055    fn visit_import_with_items<'ast: 'r, 'r>(
23056        &mut self,
23057        node: &'ast [ImportWithItem],
23058        __ast_path: &mut AstNodePath<'r>,
23059    ) {
23060        <V as VisitAstPath>::visit_import_with_items(&mut **self, node, __ast_path)
23061    }
23062
23063    #[inline]
23064    fn visit_invalid<'ast: 'r, 'r>(
23065        &mut self,
23066        node: &'ast Invalid,
23067        __ast_path: &mut AstNodePath<'r>,
23068    ) {
23069        <V as VisitAstPath>::visit_invalid(&mut **self, node, __ast_path)
23070    }
23071
23072    #[inline]
23073    fn visit_jsx_attr<'ast: 'r, 'r>(
23074        &mut self,
23075        node: &'ast JSXAttr,
23076        __ast_path: &mut AstNodePath<'r>,
23077    ) {
23078        <V as VisitAstPath>::visit_jsx_attr(&mut **self, node, __ast_path)
23079    }
23080
23081    #[inline]
23082    fn visit_jsx_attr_name<'ast: 'r, 'r>(
23083        &mut self,
23084        node: &'ast JSXAttrName,
23085        __ast_path: &mut AstNodePath<'r>,
23086    ) {
23087        <V as VisitAstPath>::visit_jsx_attr_name(&mut **self, node, __ast_path)
23088    }
23089
23090    #[inline]
23091    fn visit_jsx_attr_or_spread<'ast: 'r, 'r>(
23092        &mut self,
23093        node: &'ast JSXAttrOrSpread,
23094        __ast_path: &mut AstNodePath<'r>,
23095    ) {
23096        <V as VisitAstPath>::visit_jsx_attr_or_spread(&mut **self, node, __ast_path)
23097    }
23098
23099    #[inline]
23100    fn visit_jsx_attr_or_spreads<'ast: 'r, 'r>(
23101        &mut self,
23102        node: &'ast [JSXAttrOrSpread],
23103        __ast_path: &mut AstNodePath<'r>,
23104    ) {
23105        <V as VisitAstPath>::visit_jsx_attr_or_spreads(&mut **self, node, __ast_path)
23106    }
23107
23108    #[inline]
23109    fn visit_jsx_attr_value<'ast: 'r, 'r>(
23110        &mut self,
23111        node: &'ast JSXAttrValue,
23112        __ast_path: &mut AstNodePath<'r>,
23113    ) {
23114        <V as VisitAstPath>::visit_jsx_attr_value(&mut **self, node, __ast_path)
23115    }
23116
23117    #[inline]
23118    fn visit_jsx_closing_element<'ast: 'r, 'r>(
23119        &mut self,
23120        node: &'ast JSXClosingElement,
23121        __ast_path: &mut AstNodePath<'r>,
23122    ) {
23123        <V as VisitAstPath>::visit_jsx_closing_element(&mut **self, node, __ast_path)
23124    }
23125
23126    #[inline]
23127    fn visit_jsx_closing_fragment<'ast: 'r, 'r>(
23128        &mut self,
23129        node: &'ast JSXClosingFragment,
23130        __ast_path: &mut AstNodePath<'r>,
23131    ) {
23132        <V as VisitAstPath>::visit_jsx_closing_fragment(&mut **self, node, __ast_path)
23133    }
23134
23135    #[inline]
23136    fn visit_jsx_element<'ast: 'r, 'r>(
23137        &mut self,
23138        node: &'ast JSXElement,
23139        __ast_path: &mut AstNodePath<'r>,
23140    ) {
23141        <V as VisitAstPath>::visit_jsx_element(&mut **self, node, __ast_path)
23142    }
23143
23144    #[inline]
23145    fn visit_jsx_element_child<'ast: 'r, 'r>(
23146        &mut self,
23147        node: &'ast JSXElementChild,
23148        __ast_path: &mut AstNodePath<'r>,
23149    ) {
23150        <V as VisitAstPath>::visit_jsx_element_child(&mut **self, node, __ast_path)
23151    }
23152
23153    #[inline]
23154    fn visit_jsx_element_childs<'ast: 'r, 'r>(
23155        &mut self,
23156        node: &'ast [JSXElementChild],
23157        __ast_path: &mut AstNodePath<'r>,
23158    ) {
23159        <V as VisitAstPath>::visit_jsx_element_childs(&mut **self, node, __ast_path)
23160    }
23161
23162    #[inline]
23163    fn visit_jsx_element_name<'ast: 'r, 'r>(
23164        &mut self,
23165        node: &'ast JSXElementName,
23166        __ast_path: &mut AstNodePath<'r>,
23167    ) {
23168        <V as VisitAstPath>::visit_jsx_element_name(&mut **self, node, __ast_path)
23169    }
23170
23171    #[inline]
23172    fn visit_jsx_empty_expr<'ast: 'r, 'r>(
23173        &mut self,
23174        node: &'ast JSXEmptyExpr,
23175        __ast_path: &mut AstNodePath<'r>,
23176    ) {
23177        <V as VisitAstPath>::visit_jsx_empty_expr(&mut **self, node, __ast_path)
23178    }
23179
23180    #[inline]
23181    fn visit_jsx_expr<'ast: 'r, 'r>(
23182        &mut self,
23183        node: &'ast JSXExpr,
23184        __ast_path: &mut AstNodePath<'r>,
23185    ) {
23186        <V as VisitAstPath>::visit_jsx_expr(&mut **self, node, __ast_path)
23187    }
23188
23189    #[inline]
23190    fn visit_jsx_expr_container<'ast: 'r, 'r>(
23191        &mut self,
23192        node: &'ast JSXExprContainer,
23193        __ast_path: &mut AstNodePath<'r>,
23194    ) {
23195        <V as VisitAstPath>::visit_jsx_expr_container(&mut **self, node, __ast_path)
23196    }
23197
23198    #[inline]
23199    fn visit_jsx_fragment<'ast: 'r, 'r>(
23200        &mut self,
23201        node: &'ast JSXFragment,
23202        __ast_path: &mut AstNodePath<'r>,
23203    ) {
23204        <V as VisitAstPath>::visit_jsx_fragment(&mut **self, node, __ast_path)
23205    }
23206
23207    #[inline]
23208    fn visit_jsx_member_expr<'ast: 'r, 'r>(
23209        &mut self,
23210        node: &'ast JSXMemberExpr,
23211        __ast_path: &mut AstNodePath<'r>,
23212    ) {
23213        <V as VisitAstPath>::visit_jsx_member_expr(&mut **self, node, __ast_path)
23214    }
23215
23216    #[inline]
23217    fn visit_jsx_namespaced_name<'ast: 'r, 'r>(
23218        &mut self,
23219        node: &'ast JSXNamespacedName,
23220        __ast_path: &mut AstNodePath<'r>,
23221    ) {
23222        <V as VisitAstPath>::visit_jsx_namespaced_name(&mut **self, node, __ast_path)
23223    }
23224
23225    #[inline]
23226    fn visit_jsx_object<'ast: 'r, 'r>(
23227        &mut self,
23228        node: &'ast JSXObject,
23229        __ast_path: &mut AstNodePath<'r>,
23230    ) {
23231        <V as VisitAstPath>::visit_jsx_object(&mut **self, node, __ast_path)
23232    }
23233
23234    #[inline]
23235    fn visit_jsx_opening_element<'ast: 'r, 'r>(
23236        &mut self,
23237        node: &'ast JSXOpeningElement,
23238        __ast_path: &mut AstNodePath<'r>,
23239    ) {
23240        <V as VisitAstPath>::visit_jsx_opening_element(&mut **self, node, __ast_path)
23241    }
23242
23243    #[inline]
23244    fn visit_jsx_opening_fragment<'ast: 'r, 'r>(
23245        &mut self,
23246        node: &'ast JSXOpeningFragment,
23247        __ast_path: &mut AstNodePath<'r>,
23248    ) {
23249        <V as VisitAstPath>::visit_jsx_opening_fragment(&mut **self, node, __ast_path)
23250    }
23251
23252    #[inline]
23253    fn visit_jsx_spread_child<'ast: 'r, 'r>(
23254        &mut self,
23255        node: &'ast JSXSpreadChild,
23256        __ast_path: &mut AstNodePath<'r>,
23257    ) {
23258        <V as VisitAstPath>::visit_jsx_spread_child(&mut **self, node, __ast_path)
23259    }
23260
23261    #[inline]
23262    fn visit_jsx_text<'ast: 'r, 'r>(
23263        &mut self,
23264        node: &'ast JSXText,
23265        __ast_path: &mut AstNodePath<'r>,
23266    ) {
23267        <V as VisitAstPath>::visit_jsx_text(&mut **self, node, __ast_path)
23268    }
23269
23270    #[inline]
23271    fn visit_key<'ast: 'r, 'r>(&mut self, node: &'ast Key, __ast_path: &mut AstNodePath<'r>) {
23272        <V as VisitAstPath>::visit_key(&mut **self, node, __ast_path)
23273    }
23274
23275    #[inline]
23276    fn visit_key_value_pat_prop<'ast: 'r, 'r>(
23277        &mut self,
23278        node: &'ast KeyValuePatProp,
23279        __ast_path: &mut AstNodePath<'r>,
23280    ) {
23281        <V as VisitAstPath>::visit_key_value_pat_prop(&mut **self, node, __ast_path)
23282    }
23283
23284    #[inline]
23285    fn visit_key_value_prop<'ast: 'r, 'r>(
23286        &mut self,
23287        node: &'ast KeyValueProp,
23288        __ast_path: &mut AstNodePath<'r>,
23289    ) {
23290        <V as VisitAstPath>::visit_key_value_prop(&mut **self, node, __ast_path)
23291    }
23292
23293    #[inline]
23294    fn visit_labeled_stmt<'ast: 'r, 'r>(
23295        &mut self,
23296        node: &'ast LabeledStmt,
23297        __ast_path: &mut AstNodePath<'r>,
23298    ) {
23299        <V as VisitAstPath>::visit_labeled_stmt(&mut **self, node, __ast_path)
23300    }
23301
23302    #[inline]
23303    fn visit_lit<'ast: 'r, 'r>(&mut self, node: &'ast Lit, __ast_path: &mut AstNodePath<'r>) {
23304        <V as VisitAstPath>::visit_lit(&mut **self, node, __ast_path)
23305    }
23306
23307    #[inline]
23308    fn visit_member_expr<'ast: 'r, 'r>(
23309        &mut self,
23310        node: &'ast MemberExpr,
23311        __ast_path: &mut AstNodePath<'r>,
23312    ) {
23313        <V as VisitAstPath>::visit_member_expr(&mut **self, node, __ast_path)
23314    }
23315
23316    #[inline]
23317    fn visit_member_prop<'ast: 'r, 'r>(
23318        &mut self,
23319        node: &'ast MemberProp,
23320        __ast_path: &mut AstNodePath<'r>,
23321    ) {
23322        <V as VisitAstPath>::visit_member_prop(&mut **self, node, __ast_path)
23323    }
23324
23325    #[inline]
23326    fn visit_meta_prop_expr<'ast: 'r, 'r>(
23327        &mut self,
23328        node: &'ast MetaPropExpr,
23329        __ast_path: &mut AstNodePath<'r>,
23330    ) {
23331        <V as VisitAstPath>::visit_meta_prop_expr(&mut **self, node, __ast_path)
23332    }
23333
23334    #[inline]
23335    fn visit_meta_prop_kind<'ast: 'r, 'r>(
23336        &mut self,
23337        node: &'ast MetaPropKind,
23338        __ast_path: &mut AstNodePath<'r>,
23339    ) {
23340        <V as VisitAstPath>::visit_meta_prop_kind(&mut **self, node, __ast_path)
23341    }
23342
23343    #[inline]
23344    fn visit_method_kind<'ast: 'r, 'r>(
23345        &mut self,
23346        node: &'ast MethodKind,
23347        __ast_path: &mut AstNodePath<'r>,
23348    ) {
23349        <V as VisitAstPath>::visit_method_kind(&mut **self, node, __ast_path)
23350    }
23351
23352    #[inline]
23353    fn visit_method_prop<'ast: 'r, 'r>(
23354        &mut self,
23355        node: &'ast MethodProp,
23356        __ast_path: &mut AstNodePath<'r>,
23357    ) {
23358        <V as VisitAstPath>::visit_method_prop(&mut **self, node, __ast_path)
23359    }
23360
23361    #[inline]
23362    fn visit_module<'ast: 'r, 'r>(&mut self, node: &'ast Module, __ast_path: &mut AstNodePath<'r>) {
23363        <V as VisitAstPath>::visit_module(&mut **self, node, __ast_path)
23364    }
23365
23366    #[inline]
23367    fn visit_module_decl<'ast: 'r, 'r>(
23368        &mut self,
23369        node: &'ast ModuleDecl,
23370        __ast_path: &mut AstNodePath<'r>,
23371    ) {
23372        <V as VisitAstPath>::visit_module_decl(&mut **self, node, __ast_path)
23373    }
23374
23375    #[inline]
23376    fn visit_module_export_name<'ast: 'r, 'r>(
23377        &mut self,
23378        node: &'ast ModuleExportName,
23379        __ast_path: &mut AstNodePath<'r>,
23380    ) {
23381        <V as VisitAstPath>::visit_module_export_name(&mut **self, node, __ast_path)
23382    }
23383
23384    #[inline]
23385    fn visit_module_item<'ast: 'r, 'r>(
23386        &mut self,
23387        node: &'ast ModuleItem,
23388        __ast_path: &mut AstNodePath<'r>,
23389    ) {
23390        <V as VisitAstPath>::visit_module_item(&mut **self, node, __ast_path)
23391    }
23392
23393    #[inline]
23394    fn visit_module_items<'ast: 'r, 'r>(
23395        &mut self,
23396        node: &'ast [ModuleItem],
23397        __ast_path: &mut AstNodePath<'r>,
23398    ) {
23399        <V as VisitAstPath>::visit_module_items(&mut **self, node, __ast_path)
23400    }
23401
23402    #[inline]
23403    fn visit_named_export<'ast: 'r, 'r>(
23404        &mut self,
23405        node: &'ast NamedExport,
23406        __ast_path: &mut AstNodePath<'r>,
23407    ) {
23408        <V as VisitAstPath>::visit_named_export(&mut **self, node, __ast_path)
23409    }
23410
23411    #[inline]
23412    fn visit_new_expr<'ast: 'r, 'r>(
23413        &mut self,
23414        node: &'ast NewExpr,
23415        __ast_path: &mut AstNodePath<'r>,
23416    ) {
23417        <V as VisitAstPath>::visit_new_expr(&mut **self, node, __ast_path)
23418    }
23419
23420    #[inline]
23421    fn visit_null<'ast: 'r, 'r>(&mut self, node: &'ast Null, __ast_path: &mut AstNodePath<'r>) {
23422        <V as VisitAstPath>::visit_null(&mut **self, node, __ast_path)
23423    }
23424
23425    #[inline]
23426    fn visit_number<'ast: 'r, 'r>(&mut self, node: &'ast Number, __ast_path: &mut AstNodePath<'r>) {
23427        <V as VisitAstPath>::visit_number(&mut **self, node, __ast_path)
23428    }
23429
23430    #[inline]
23431    fn visit_object_lit<'ast: 'r, 'r>(
23432        &mut self,
23433        node: &'ast ObjectLit,
23434        __ast_path: &mut AstNodePath<'r>,
23435    ) {
23436        <V as VisitAstPath>::visit_object_lit(&mut **self, node, __ast_path)
23437    }
23438
23439    #[inline]
23440    fn visit_object_pat<'ast: 'r, 'r>(
23441        &mut self,
23442        node: &'ast ObjectPat,
23443        __ast_path: &mut AstNodePath<'r>,
23444    ) {
23445        <V as VisitAstPath>::visit_object_pat(&mut **self, node, __ast_path)
23446    }
23447
23448    #[inline]
23449    fn visit_object_pat_prop<'ast: 'r, 'r>(
23450        &mut self,
23451        node: &'ast ObjectPatProp,
23452        __ast_path: &mut AstNodePath<'r>,
23453    ) {
23454        <V as VisitAstPath>::visit_object_pat_prop(&mut **self, node, __ast_path)
23455    }
23456
23457    #[inline]
23458    fn visit_object_pat_props<'ast: 'r, 'r>(
23459        &mut self,
23460        node: &'ast [ObjectPatProp],
23461        __ast_path: &mut AstNodePath<'r>,
23462    ) {
23463        <V as VisitAstPath>::visit_object_pat_props(&mut **self, node, __ast_path)
23464    }
23465
23466    #[inline]
23467    fn visit_opt_accessibility<'ast: 'r, 'r>(
23468        &mut self,
23469        node: &'ast Option<Accessibility>,
23470        __ast_path: &mut AstNodePath<'r>,
23471    ) {
23472        <V as VisitAstPath>::visit_opt_accessibility(&mut **self, node, __ast_path)
23473    }
23474
23475    #[inline]
23476    fn visit_opt_atom<'ast: 'r, 'r>(
23477        &mut self,
23478        node: &'ast Option<swc_atoms::Atom>,
23479        __ast_path: &mut AstNodePath<'r>,
23480    ) {
23481        <V as VisitAstPath>::visit_opt_atom(&mut **self, node, __ast_path)
23482    }
23483
23484    #[inline]
23485    fn visit_opt_block_stmt<'ast: 'r, 'r>(
23486        &mut self,
23487        node: &'ast Option<BlockStmt>,
23488        __ast_path: &mut AstNodePath<'r>,
23489    ) {
23490        <V as VisitAstPath>::visit_opt_block_stmt(&mut **self, node, __ast_path)
23491    }
23492
23493    #[inline]
23494    fn visit_opt_call<'ast: 'r, 'r>(
23495        &mut self,
23496        node: &'ast OptCall,
23497        __ast_path: &mut AstNodePath<'r>,
23498    ) {
23499        <V as VisitAstPath>::visit_opt_call(&mut **self, node, __ast_path)
23500    }
23501
23502    #[inline]
23503    fn visit_opt_catch_clause<'ast: 'r, 'r>(
23504        &mut self,
23505        node: &'ast Option<CatchClause>,
23506        __ast_path: &mut AstNodePath<'r>,
23507    ) {
23508        <V as VisitAstPath>::visit_opt_catch_clause(&mut **self, node, __ast_path)
23509    }
23510
23511    #[inline]
23512    fn visit_opt_chain_base<'ast: 'r, 'r>(
23513        &mut self,
23514        node: &'ast OptChainBase,
23515        __ast_path: &mut AstNodePath<'r>,
23516    ) {
23517        <V as VisitAstPath>::visit_opt_chain_base(&mut **self, node, __ast_path)
23518    }
23519
23520    #[inline]
23521    fn visit_opt_chain_expr<'ast: 'r, 'r>(
23522        &mut self,
23523        node: &'ast OptChainExpr,
23524        __ast_path: &mut AstNodePath<'r>,
23525    ) {
23526        <V as VisitAstPath>::visit_opt_chain_expr(&mut **self, node, __ast_path)
23527    }
23528
23529    #[inline]
23530    fn visit_opt_expr<'ast: 'r, 'r>(
23531        &mut self,
23532        node: &'ast Option<Box<Expr>>,
23533        __ast_path: &mut AstNodePath<'r>,
23534    ) {
23535        <V as VisitAstPath>::visit_opt_expr(&mut **self, node, __ast_path)
23536    }
23537
23538    #[inline]
23539    fn visit_opt_expr_or_spread<'ast: 'r, 'r>(
23540        &mut self,
23541        node: &'ast Option<ExprOrSpread>,
23542        __ast_path: &mut AstNodePath<'r>,
23543    ) {
23544        <V as VisitAstPath>::visit_opt_expr_or_spread(&mut **self, node, __ast_path)
23545    }
23546
23547    #[inline]
23548    fn visit_opt_expr_or_spreads<'ast: 'r, 'r>(
23549        &mut self,
23550        node: &'ast Option<Vec<ExprOrSpread>>,
23551        __ast_path: &mut AstNodePath<'r>,
23552    ) {
23553        <V as VisitAstPath>::visit_opt_expr_or_spreads(&mut **self, node, __ast_path)
23554    }
23555
23556    #[inline]
23557    fn visit_opt_ident<'ast: 'r, 'r>(
23558        &mut self,
23559        node: &'ast Option<Ident>,
23560        __ast_path: &mut AstNodePath<'r>,
23561    ) {
23562        <V as VisitAstPath>::visit_opt_ident(&mut **self, node, __ast_path)
23563    }
23564
23565    #[inline]
23566    fn visit_opt_jsx_attr_value<'ast: 'r, 'r>(
23567        &mut self,
23568        node: &'ast Option<JSXAttrValue>,
23569        __ast_path: &mut AstNodePath<'r>,
23570    ) {
23571        <V as VisitAstPath>::visit_opt_jsx_attr_value(&mut **self, node, __ast_path)
23572    }
23573
23574    #[inline]
23575    fn visit_opt_jsx_closing_element<'ast: 'r, 'r>(
23576        &mut self,
23577        node: &'ast Option<JSXClosingElement>,
23578        __ast_path: &mut AstNodePath<'r>,
23579    ) {
23580        <V as VisitAstPath>::visit_opt_jsx_closing_element(&mut **self, node, __ast_path)
23581    }
23582
23583    #[inline]
23584    fn visit_opt_module_export_name<'ast: 'r, 'r>(
23585        &mut self,
23586        node: &'ast Option<ModuleExportName>,
23587        __ast_path: &mut AstNodePath<'r>,
23588    ) {
23589        <V as VisitAstPath>::visit_opt_module_export_name(&mut **self, node, __ast_path)
23590    }
23591
23592    #[inline]
23593    fn visit_opt_object_lit<'ast: 'r, 'r>(
23594        &mut self,
23595        node: &'ast Option<Box<ObjectLit>>,
23596        __ast_path: &mut AstNodePath<'r>,
23597    ) {
23598        <V as VisitAstPath>::visit_opt_object_lit(&mut **self, node, __ast_path)
23599    }
23600
23601    #[inline]
23602    fn visit_opt_pat<'ast: 'r, 'r>(
23603        &mut self,
23604        node: &'ast Option<Pat>,
23605        __ast_path: &mut AstNodePath<'r>,
23606    ) {
23607        <V as VisitAstPath>::visit_opt_pat(&mut **self, node, __ast_path)
23608    }
23609
23610    #[inline]
23611    fn visit_opt_span<'ast: 'r, 'r>(
23612        &mut self,
23613        node: &'ast Option<swc_common::Span>,
23614        __ast_path: &mut AstNodePath<'r>,
23615    ) {
23616        <V as VisitAstPath>::visit_opt_span(&mut **self, node, __ast_path)
23617    }
23618
23619    #[inline]
23620    fn visit_opt_stmt<'ast: 'r, 'r>(
23621        &mut self,
23622        node: &'ast Option<Box<Stmt>>,
23623        __ast_path: &mut AstNodePath<'r>,
23624    ) {
23625        <V as VisitAstPath>::visit_opt_stmt(&mut **self, node, __ast_path)
23626    }
23627
23628    #[inline]
23629    fn visit_opt_str<'ast: 'r, 'r>(
23630        &mut self,
23631        node: &'ast Option<Box<Str>>,
23632        __ast_path: &mut AstNodePath<'r>,
23633    ) {
23634        <V as VisitAstPath>::visit_opt_str(&mut **self, node, __ast_path)
23635    }
23636
23637    #[inline]
23638    fn visit_opt_true_plus_minus<'ast: 'r, 'r>(
23639        &mut self,
23640        node: &'ast Option<TruePlusMinus>,
23641        __ast_path: &mut AstNodePath<'r>,
23642    ) {
23643        <V as VisitAstPath>::visit_opt_true_plus_minus(&mut **self, node, __ast_path)
23644    }
23645
23646    #[inline]
23647    fn visit_opt_ts_entity_name<'ast: 'r, 'r>(
23648        &mut self,
23649        node: &'ast Option<TsEntityName>,
23650        __ast_path: &mut AstNodePath<'r>,
23651    ) {
23652        <V as VisitAstPath>::visit_opt_ts_entity_name(&mut **self, node, __ast_path)
23653    }
23654
23655    #[inline]
23656    fn visit_opt_ts_import_call_options<'ast: 'r, 'r>(
23657        &mut self,
23658        node: &'ast Option<TsImportCallOptions>,
23659        __ast_path: &mut AstNodePath<'r>,
23660    ) {
23661        <V as VisitAstPath>::visit_opt_ts_import_call_options(&mut **self, node, __ast_path)
23662    }
23663
23664    #[inline]
23665    fn visit_opt_ts_namespace_body<'ast: 'r, 'r>(
23666        &mut self,
23667        node: &'ast Option<TsNamespaceBody>,
23668        __ast_path: &mut AstNodePath<'r>,
23669    ) {
23670        <V as VisitAstPath>::visit_opt_ts_namespace_body(&mut **self, node, __ast_path)
23671    }
23672
23673    #[inline]
23674    fn visit_opt_ts_type<'ast: 'r, 'r>(
23675        &mut self,
23676        node: &'ast Option<Box<TsType>>,
23677        __ast_path: &mut AstNodePath<'r>,
23678    ) {
23679        <V as VisitAstPath>::visit_opt_ts_type(&mut **self, node, __ast_path)
23680    }
23681
23682    #[inline]
23683    fn visit_opt_ts_type_ann<'ast: 'r, 'r>(
23684        &mut self,
23685        node: &'ast Option<Box<TsTypeAnn>>,
23686        __ast_path: &mut AstNodePath<'r>,
23687    ) {
23688        <V as VisitAstPath>::visit_opt_ts_type_ann(&mut **self, node, __ast_path)
23689    }
23690
23691    #[inline]
23692    fn visit_opt_ts_type_param_decl<'ast: 'r, 'r>(
23693        &mut self,
23694        node: &'ast Option<Box<TsTypeParamDecl>>,
23695        __ast_path: &mut AstNodePath<'r>,
23696    ) {
23697        <V as VisitAstPath>::visit_opt_ts_type_param_decl(&mut **self, node, __ast_path)
23698    }
23699
23700    #[inline]
23701    fn visit_opt_ts_type_param_instantiation<'ast: 'r, 'r>(
23702        &mut self,
23703        node: &'ast Option<Box<TsTypeParamInstantiation>>,
23704        __ast_path: &mut AstNodePath<'r>,
23705    ) {
23706        <V as VisitAstPath>::visit_opt_ts_type_param_instantiation(&mut **self, node, __ast_path)
23707    }
23708
23709    #[inline]
23710    fn visit_opt_var_decl_or_expr<'ast: 'r, 'r>(
23711        &mut self,
23712        node: &'ast Option<VarDeclOrExpr>,
23713        __ast_path: &mut AstNodePath<'r>,
23714    ) {
23715        <V as VisitAstPath>::visit_opt_var_decl_or_expr(&mut **self, node, __ast_path)
23716    }
23717
23718    #[inline]
23719    fn visit_opt_vec_expr_or_spreads<'ast: 'r, 'r>(
23720        &mut self,
23721        node: &'ast [Option<ExprOrSpread>],
23722        __ast_path: &mut AstNodePath<'r>,
23723    ) {
23724        <V as VisitAstPath>::visit_opt_vec_expr_or_spreads(&mut **self, node, __ast_path)
23725    }
23726
23727    #[inline]
23728    fn visit_opt_vec_pats<'ast: 'r, 'r>(
23729        &mut self,
23730        node: &'ast [Option<Pat>],
23731        __ast_path: &mut AstNodePath<'r>,
23732    ) {
23733        <V as VisitAstPath>::visit_opt_vec_pats(&mut **self, node, __ast_path)
23734    }
23735
23736    #[inline]
23737    fn visit_param<'ast: 'r, 'r>(&mut self, node: &'ast Param, __ast_path: &mut AstNodePath<'r>) {
23738        <V as VisitAstPath>::visit_param(&mut **self, node, __ast_path)
23739    }
23740
23741    #[inline]
23742    fn visit_param_or_ts_param_prop<'ast: 'r, 'r>(
23743        &mut self,
23744        node: &'ast ParamOrTsParamProp,
23745        __ast_path: &mut AstNodePath<'r>,
23746    ) {
23747        <V as VisitAstPath>::visit_param_or_ts_param_prop(&mut **self, node, __ast_path)
23748    }
23749
23750    #[inline]
23751    fn visit_param_or_ts_param_props<'ast: 'r, 'r>(
23752        &mut self,
23753        node: &'ast [ParamOrTsParamProp],
23754        __ast_path: &mut AstNodePath<'r>,
23755    ) {
23756        <V as VisitAstPath>::visit_param_or_ts_param_props(&mut **self, node, __ast_path)
23757    }
23758
23759    #[inline]
23760    fn visit_params<'ast: 'r, 'r>(
23761        &mut self,
23762        node: &'ast [Param],
23763        __ast_path: &mut AstNodePath<'r>,
23764    ) {
23765        <V as VisitAstPath>::visit_params(&mut **self, node, __ast_path)
23766    }
23767
23768    #[inline]
23769    fn visit_paren_expr<'ast: 'r, 'r>(
23770        &mut self,
23771        node: &'ast ParenExpr,
23772        __ast_path: &mut AstNodePath<'r>,
23773    ) {
23774        <V as VisitAstPath>::visit_paren_expr(&mut **self, node, __ast_path)
23775    }
23776
23777    #[inline]
23778    fn visit_pat<'ast: 'r, 'r>(&mut self, node: &'ast Pat, __ast_path: &mut AstNodePath<'r>) {
23779        <V as VisitAstPath>::visit_pat(&mut **self, node, __ast_path)
23780    }
23781
23782    #[inline]
23783    fn visit_pats<'ast: 'r, 'r>(&mut self, node: &'ast [Pat], __ast_path: &mut AstNodePath<'r>) {
23784        <V as VisitAstPath>::visit_pats(&mut **self, node, __ast_path)
23785    }
23786
23787    #[inline]
23788    fn visit_private_method<'ast: 'r, 'r>(
23789        &mut self,
23790        node: &'ast PrivateMethod,
23791        __ast_path: &mut AstNodePath<'r>,
23792    ) {
23793        <V as VisitAstPath>::visit_private_method(&mut **self, node, __ast_path)
23794    }
23795
23796    #[inline]
23797    fn visit_private_name<'ast: 'r, 'r>(
23798        &mut self,
23799        node: &'ast PrivateName,
23800        __ast_path: &mut AstNodePath<'r>,
23801    ) {
23802        <V as VisitAstPath>::visit_private_name(&mut **self, node, __ast_path)
23803    }
23804
23805    #[inline]
23806    fn visit_private_prop<'ast: 'r, 'r>(
23807        &mut self,
23808        node: &'ast PrivateProp,
23809        __ast_path: &mut AstNodePath<'r>,
23810    ) {
23811        <V as VisitAstPath>::visit_private_prop(&mut **self, node, __ast_path)
23812    }
23813
23814    #[inline]
23815    fn visit_program<'ast: 'r, 'r>(
23816        &mut self,
23817        node: &'ast Program,
23818        __ast_path: &mut AstNodePath<'r>,
23819    ) {
23820        <V as VisitAstPath>::visit_program(&mut **self, node, __ast_path)
23821    }
23822
23823    #[inline]
23824    fn visit_prop<'ast: 'r, 'r>(&mut self, node: &'ast Prop, __ast_path: &mut AstNodePath<'r>) {
23825        <V as VisitAstPath>::visit_prop(&mut **self, node, __ast_path)
23826    }
23827
23828    #[inline]
23829    fn visit_prop_name<'ast: 'r, 'r>(
23830        &mut self,
23831        node: &'ast PropName,
23832        __ast_path: &mut AstNodePath<'r>,
23833    ) {
23834        <V as VisitAstPath>::visit_prop_name(&mut **self, node, __ast_path)
23835    }
23836
23837    #[inline]
23838    fn visit_prop_or_spread<'ast: 'r, 'r>(
23839        &mut self,
23840        node: &'ast PropOrSpread,
23841        __ast_path: &mut AstNodePath<'r>,
23842    ) {
23843        <V as VisitAstPath>::visit_prop_or_spread(&mut **self, node, __ast_path)
23844    }
23845
23846    #[inline]
23847    fn visit_prop_or_spreads<'ast: 'r, 'r>(
23848        &mut self,
23849        node: &'ast [PropOrSpread],
23850        __ast_path: &mut AstNodePath<'r>,
23851    ) {
23852        <V as VisitAstPath>::visit_prop_or_spreads(&mut **self, node, __ast_path)
23853    }
23854
23855    #[inline]
23856    fn visit_regex<'ast: 'r, 'r>(&mut self, node: &'ast Regex, __ast_path: &mut AstNodePath<'r>) {
23857        <V as VisitAstPath>::visit_regex(&mut **self, node, __ast_path)
23858    }
23859
23860    #[inline]
23861    fn visit_rest_pat<'ast: 'r, 'r>(
23862        &mut self,
23863        node: &'ast RestPat,
23864        __ast_path: &mut AstNodePath<'r>,
23865    ) {
23866        <V as VisitAstPath>::visit_rest_pat(&mut **self, node, __ast_path)
23867    }
23868
23869    #[inline]
23870    fn visit_return_stmt<'ast: 'r, 'r>(
23871        &mut self,
23872        node: &'ast ReturnStmt,
23873        __ast_path: &mut AstNodePath<'r>,
23874    ) {
23875        <V as VisitAstPath>::visit_return_stmt(&mut **self, node, __ast_path)
23876    }
23877
23878    #[inline]
23879    fn visit_script<'ast: 'r, 'r>(&mut self, node: &'ast Script, __ast_path: &mut AstNodePath<'r>) {
23880        <V as VisitAstPath>::visit_script(&mut **self, node, __ast_path)
23881    }
23882
23883    #[inline]
23884    fn visit_seq_expr<'ast: 'r, 'r>(
23885        &mut self,
23886        node: &'ast SeqExpr,
23887        __ast_path: &mut AstNodePath<'r>,
23888    ) {
23889        <V as VisitAstPath>::visit_seq_expr(&mut **self, node, __ast_path)
23890    }
23891
23892    #[inline]
23893    fn visit_setter_prop<'ast: 'r, 'r>(
23894        &mut self,
23895        node: &'ast SetterProp,
23896        __ast_path: &mut AstNodePath<'r>,
23897    ) {
23898        <V as VisitAstPath>::visit_setter_prop(&mut **self, node, __ast_path)
23899    }
23900
23901    #[inline]
23902    fn visit_simple_assign_target<'ast: 'r, 'r>(
23903        &mut self,
23904        node: &'ast SimpleAssignTarget,
23905        __ast_path: &mut AstNodePath<'r>,
23906    ) {
23907        <V as VisitAstPath>::visit_simple_assign_target(&mut **self, node, __ast_path)
23908    }
23909
23910    #[inline]
23911    fn visit_span<'ast: 'r, 'r>(
23912        &mut self,
23913        node: &'ast swc_common::Span,
23914        __ast_path: &mut AstNodePath<'r>,
23915    ) {
23916        <V as VisitAstPath>::visit_span(&mut **self, node, __ast_path)
23917    }
23918
23919    #[inline]
23920    fn visit_spread_element<'ast: 'r, 'r>(
23921        &mut self,
23922        node: &'ast SpreadElement,
23923        __ast_path: &mut AstNodePath<'r>,
23924    ) {
23925        <V as VisitAstPath>::visit_spread_element(&mut **self, node, __ast_path)
23926    }
23927
23928    #[inline]
23929    fn visit_static_block<'ast: 'r, 'r>(
23930        &mut self,
23931        node: &'ast StaticBlock,
23932        __ast_path: &mut AstNodePath<'r>,
23933    ) {
23934        <V as VisitAstPath>::visit_static_block(&mut **self, node, __ast_path)
23935    }
23936
23937    #[inline]
23938    fn visit_stmt<'ast: 'r, 'r>(&mut self, node: &'ast Stmt, __ast_path: &mut AstNodePath<'r>) {
23939        <V as VisitAstPath>::visit_stmt(&mut **self, node, __ast_path)
23940    }
23941
23942    #[inline]
23943    fn visit_stmts<'ast: 'r, 'r>(&mut self, node: &'ast [Stmt], __ast_path: &mut AstNodePath<'r>) {
23944        <V as VisitAstPath>::visit_stmts(&mut **self, node, __ast_path)
23945    }
23946
23947    #[inline]
23948    fn visit_str<'ast: 'r, 'r>(&mut self, node: &'ast Str, __ast_path: &mut AstNodePath<'r>) {
23949        <V as VisitAstPath>::visit_str(&mut **self, node, __ast_path)
23950    }
23951
23952    #[inline]
23953    fn visit_super<'ast: 'r, 'r>(&mut self, node: &'ast Super, __ast_path: &mut AstNodePath<'r>) {
23954        <V as VisitAstPath>::visit_super(&mut **self, node, __ast_path)
23955    }
23956
23957    #[inline]
23958    fn visit_super_prop<'ast: 'r, 'r>(
23959        &mut self,
23960        node: &'ast SuperProp,
23961        __ast_path: &mut AstNodePath<'r>,
23962    ) {
23963        <V as VisitAstPath>::visit_super_prop(&mut **self, node, __ast_path)
23964    }
23965
23966    #[inline]
23967    fn visit_super_prop_expr<'ast: 'r, 'r>(
23968        &mut self,
23969        node: &'ast SuperPropExpr,
23970        __ast_path: &mut AstNodePath<'r>,
23971    ) {
23972        <V as VisitAstPath>::visit_super_prop_expr(&mut **self, node, __ast_path)
23973    }
23974
23975    #[inline]
23976    fn visit_switch_case<'ast: 'r, 'r>(
23977        &mut self,
23978        node: &'ast SwitchCase,
23979        __ast_path: &mut AstNodePath<'r>,
23980    ) {
23981        <V as VisitAstPath>::visit_switch_case(&mut **self, node, __ast_path)
23982    }
23983
23984    #[inline]
23985    fn visit_switch_cases<'ast: 'r, 'r>(
23986        &mut self,
23987        node: &'ast [SwitchCase],
23988        __ast_path: &mut AstNodePath<'r>,
23989    ) {
23990        <V as VisitAstPath>::visit_switch_cases(&mut **self, node, __ast_path)
23991    }
23992
23993    #[inline]
23994    fn visit_switch_stmt<'ast: 'r, 'r>(
23995        &mut self,
23996        node: &'ast SwitchStmt,
23997        __ast_path: &mut AstNodePath<'r>,
23998    ) {
23999        <V as VisitAstPath>::visit_switch_stmt(&mut **self, node, __ast_path)
24000    }
24001
24002    #[inline]
24003    fn visit_syntax_context<'ast: 'r, 'r>(
24004        &mut self,
24005        node: &'ast swc_common::SyntaxContext,
24006        __ast_path: &mut AstNodePath<'r>,
24007    ) {
24008        <V as VisitAstPath>::visit_syntax_context(&mut **self, node, __ast_path)
24009    }
24010
24011    #[inline]
24012    fn visit_tagged_tpl<'ast: 'r, 'r>(
24013        &mut self,
24014        node: &'ast TaggedTpl,
24015        __ast_path: &mut AstNodePath<'r>,
24016    ) {
24017        <V as VisitAstPath>::visit_tagged_tpl(&mut **self, node, __ast_path)
24018    }
24019
24020    #[inline]
24021    fn visit_this_expr<'ast: 'r, 'r>(
24022        &mut self,
24023        node: &'ast ThisExpr,
24024        __ast_path: &mut AstNodePath<'r>,
24025    ) {
24026        <V as VisitAstPath>::visit_this_expr(&mut **self, node, __ast_path)
24027    }
24028
24029    #[inline]
24030    fn visit_throw_stmt<'ast: 'r, 'r>(
24031        &mut self,
24032        node: &'ast ThrowStmt,
24033        __ast_path: &mut AstNodePath<'r>,
24034    ) {
24035        <V as VisitAstPath>::visit_throw_stmt(&mut **self, node, __ast_path)
24036    }
24037
24038    #[inline]
24039    fn visit_tpl<'ast: 'r, 'r>(&mut self, node: &'ast Tpl, __ast_path: &mut AstNodePath<'r>) {
24040        <V as VisitAstPath>::visit_tpl(&mut **self, node, __ast_path)
24041    }
24042
24043    #[inline]
24044    fn visit_tpl_element<'ast: 'r, 'r>(
24045        &mut self,
24046        node: &'ast TplElement,
24047        __ast_path: &mut AstNodePath<'r>,
24048    ) {
24049        <V as VisitAstPath>::visit_tpl_element(&mut **self, node, __ast_path)
24050    }
24051
24052    #[inline]
24053    fn visit_tpl_elements<'ast: 'r, 'r>(
24054        &mut self,
24055        node: &'ast [TplElement],
24056        __ast_path: &mut AstNodePath<'r>,
24057    ) {
24058        <V as VisitAstPath>::visit_tpl_elements(&mut **self, node, __ast_path)
24059    }
24060
24061    #[inline]
24062    fn visit_true_plus_minus<'ast: 'r, 'r>(
24063        &mut self,
24064        node: &'ast TruePlusMinus,
24065        __ast_path: &mut AstNodePath<'r>,
24066    ) {
24067        <V as VisitAstPath>::visit_true_plus_minus(&mut **self, node, __ast_path)
24068    }
24069
24070    #[inline]
24071    fn visit_try_stmt<'ast: 'r, 'r>(
24072        &mut self,
24073        node: &'ast TryStmt,
24074        __ast_path: &mut AstNodePath<'r>,
24075    ) {
24076        <V as VisitAstPath>::visit_try_stmt(&mut **self, node, __ast_path)
24077    }
24078
24079    #[inline]
24080    fn visit_ts_array_type<'ast: 'r, 'r>(
24081        &mut self,
24082        node: &'ast TsArrayType,
24083        __ast_path: &mut AstNodePath<'r>,
24084    ) {
24085        <V as VisitAstPath>::visit_ts_array_type(&mut **self, node, __ast_path)
24086    }
24087
24088    #[inline]
24089    fn visit_ts_as_expr<'ast: 'r, 'r>(
24090        &mut self,
24091        node: &'ast TsAsExpr,
24092        __ast_path: &mut AstNodePath<'r>,
24093    ) {
24094        <V as VisitAstPath>::visit_ts_as_expr(&mut **self, node, __ast_path)
24095    }
24096
24097    #[inline]
24098    fn visit_ts_call_signature_decl<'ast: 'r, 'r>(
24099        &mut self,
24100        node: &'ast TsCallSignatureDecl,
24101        __ast_path: &mut AstNodePath<'r>,
24102    ) {
24103        <V as VisitAstPath>::visit_ts_call_signature_decl(&mut **self, node, __ast_path)
24104    }
24105
24106    #[inline]
24107    fn visit_ts_conditional_type<'ast: 'r, 'r>(
24108        &mut self,
24109        node: &'ast TsConditionalType,
24110        __ast_path: &mut AstNodePath<'r>,
24111    ) {
24112        <V as VisitAstPath>::visit_ts_conditional_type(&mut **self, node, __ast_path)
24113    }
24114
24115    #[inline]
24116    fn visit_ts_const_assertion<'ast: 'r, 'r>(
24117        &mut self,
24118        node: &'ast TsConstAssertion,
24119        __ast_path: &mut AstNodePath<'r>,
24120    ) {
24121        <V as VisitAstPath>::visit_ts_const_assertion(&mut **self, node, __ast_path)
24122    }
24123
24124    #[inline]
24125    fn visit_ts_construct_signature_decl<'ast: 'r, 'r>(
24126        &mut self,
24127        node: &'ast TsConstructSignatureDecl,
24128        __ast_path: &mut AstNodePath<'r>,
24129    ) {
24130        <V as VisitAstPath>::visit_ts_construct_signature_decl(&mut **self, node, __ast_path)
24131    }
24132
24133    #[inline]
24134    fn visit_ts_constructor_type<'ast: 'r, 'r>(
24135        &mut self,
24136        node: &'ast TsConstructorType,
24137        __ast_path: &mut AstNodePath<'r>,
24138    ) {
24139        <V as VisitAstPath>::visit_ts_constructor_type(&mut **self, node, __ast_path)
24140    }
24141
24142    #[inline]
24143    fn visit_ts_entity_name<'ast: 'r, 'r>(
24144        &mut self,
24145        node: &'ast TsEntityName,
24146        __ast_path: &mut AstNodePath<'r>,
24147    ) {
24148        <V as VisitAstPath>::visit_ts_entity_name(&mut **self, node, __ast_path)
24149    }
24150
24151    #[inline]
24152    fn visit_ts_enum_decl<'ast: 'r, 'r>(
24153        &mut self,
24154        node: &'ast TsEnumDecl,
24155        __ast_path: &mut AstNodePath<'r>,
24156    ) {
24157        <V as VisitAstPath>::visit_ts_enum_decl(&mut **self, node, __ast_path)
24158    }
24159
24160    #[inline]
24161    fn visit_ts_enum_member<'ast: 'r, 'r>(
24162        &mut self,
24163        node: &'ast TsEnumMember,
24164        __ast_path: &mut AstNodePath<'r>,
24165    ) {
24166        <V as VisitAstPath>::visit_ts_enum_member(&mut **self, node, __ast_path)
24167    }
24168
24169    #[inline]
24170    fn visit_ts_enum_member_id<'ast: 'r, 'r>(
24171        &mut self,
24172        node: &'ast TsEnumMemberId,
24173        __ast_path: &mut AstNodePath<'r>,
24174    ) {
24175        <V as VisitAstPath>::visit_ts_enum_member_id(&mut **self, node, __ast_path)
24176    }
24177
24178    #[inline]
24179    fn visit_ts_enum_members<'ast: 'r, 'r>(
24180        &mut self,
24181        node: &'ast [TsEnumMember],
24182        __ast_path: &mut AstNodePath<'r>,
24183    ) {
24184        <V as VisitAstPath>::visit_ts_enum_members(&mut **self, node, __ast_path)
24185    }
24186
24187    #[inline]
24188    fn visit_ts_export_assignment<'ast: 'r, 'r>(
24189        &mut self,
24190        node: &'ast TsExportAssignment,
24191        __ast_path: &mut AstNodePath<'r>,
24192    ) {
24193        <V as VisitAstPath>::visit_ts_export_assignment(&mut **self, node, __ast_path)
24194    }
24195
24196    #[inline]
24197    fn visit_ts_expr_with_type_args<'ast: 'r, 'r>(
24198        &mut self,
24199        node: &'ast TsExprWithTypeArgs,
24200        __ast_path: &mut AstNodePath<'r>,
24201    ) {
24202        <V as VisitAstPath>::visit_ts_expr_with_type_args(&mut **self, node, __ast_path)
24203    }
24204
24205    #[inline]
24206    fn visit_ts_expr_with_type_argss<'ast: 'r, 'r>(
24207        &mut self,
24208        node: &'ast [TsExprWithTypeArgs],
24209        __ast_path: &mut AstNodePath<'r>,
24210    ) {
24211        <V as VisitAstPath>::visit_ts_expr_with_type_argss(&mut **self, node, __ast_path)
24212    }
24213
24214    #[inline]
24215    fn visit_ts_external_module_ref<'ast: 'r, 'r>(
24216        &mut self,
24217        node: &'ast TsExternalModuleRef,
24218        __ast_path: &mut AstNodePath<'r>,
24219    ) {
24220        <V as VisitAstPath>::visit_ts_external_module_ref(&mut **self, node, __ast_path)
24221    }
24222
24223    #[inline]
24224    fn visit_ts_fn_or_constructor_type<'ast: 'r, 'r>(
24225        &mut self,
24226        node: &'ast TsFnOrConstructorType,
24227        __ast_path: &mut AstNodePath<'r>,
24228    ) {
24229        <V as VisitAstPath>::visit_ts_fn_or_constructor_type(&mut **self, node, __ast_path)
24230    }
24231
24232    #[inline]
24233    fn visit_ts_fn_param<'ast: 'r, 'r>(
24234        &mut self,
24235        node: &'ast TsFnParam,
24236        __ast_path: &mut AstNodePath<'r>,
24237    ) {
24238        <V as VisitAstPath>::visit_ts_fn_param(&mut **self, node, __ast_path)
24239    }
24240
24241    #[inline]
24242    fn visit_ts_fn_params<'ast: 'r, 'r>(
24243        &mut self,
24244        node: &'ast [TsFnParam],
24245        __ast_path: &mut AstNodePath<'r>,
24246    ) {
24247        <V as VisitAstPath>::visit_ts_fn_params(&mut **self, node, __ast_path)
24248    }
24249
24250    #[inline]
24251    fn visit_ts_fn_type<'ast: 'r, 'r>(
24252        &mut self,
24253        node: &'ast TsFnType,
24254        __ast_path: &mut AstNodePath<'r>,
24255    ) {
24256        <V as VisitAstPath>::visit_ts_fn_type(&mut **self, node, __ast_path)
24257    }
24258
24259    #[inline]
24260    fn visit_ts_getter_signature<'ast: 'r, 'r>(
24261        &mut self,
24262        node: &'ast TsGetterSignature,
24263        __ast_path: &mut AstNodePath<'r>,
24264    ) {
24265        <V as VisitAstPath>::visit_ts_getter_signature(&mut **self, node, __ast_path)
24266    }
24267
24268    #[inline]
24269    fn visit_ts_import_call_options<'ast: 'r, 'r>(
24270        &mut self,
24271        node: &'ast TsImportCallOptions,
24272        __ast_path: &mut AstNodePath<'r>,
24273    ) {
24274        <V as VisitAstPath>::visit_ts_import_call_options(&mut **self, node, __ast_path)
24275    }
24276
24277    #[inline]
24278    fn visit_ts_import_equals_decl<'ast: 'r, 'r>(
24279        &mut self,
24280        node: &'ast TsImportEqualsDecl,
24281        __ast_path: &mut AstNodePath<'r>,
24282    ) {
24283        <V as VisitAstPath>::visit_ts_import_equals_decl(&mut **self, node, __ast_path)
24284    }
24285
24286    #[inline]
24287    fn visit_ts_import_type<'ast: 'r, 'r>(
24288        &mut self,
24289        node: &'ast TsImportType,
24290        __ast_path: &mut AstNodePath<'r>,
24291    ) {
24292        <V as VisitAstPath>::visit_ts_import_type(&mut **self, node, __ast_path)
24293    }
24294
24295    #[inline]
24296    fn visit_ts_index_signature<'ast: 'r, 'r>(
24297        &mut self,
24298        node: &'ast TsIndexSignature,
24299        __ast_path: &mut AstNodePath<'r>,
24300    ) {
24301        <V as VisitAstPath>::visit_ts_index_signature(&mut **self, node, __ast_path)
24302    }
24303
24304    #[inline]
24305    fn visit_ts_indexed_access_type<'ast: 'r, 'r>(
24306        &mut self,
24307        node: &'ast TsIndexedAccessType,
24308        __ast_path: &mut AstNodePath<'r>,
24309    ) {
24310        <V as VisitAstPath>::visit_ts_indexed_access_type(&mut **self, node, __ast_path)
24311    }
24312
24313    #[inline]
24314    fn visit_ts_infer_type<'ast: 'r, 'r>(
24315        &mut self,
24316        node: &'ast TsInferType,
24317        __ast_path: &mut AstNodePath<'r>,
24318    ) {
24319        <V as VisitAstPath>::visit_ts_infer_type(&mut **self, node, __ast_path)
24320    }
24321
24322    #[inline]
24323    fn visit_ts_instantiation<'ast: 'r, 'r>(
24324        &mut self,
24325        node: &'ast TsInstantiation,
24326        __ast_path: &mut AstNodePath<'r>,
24327    ) {
24328        <V as VisitAstPath>::visit_ts_instantiation(&mut **self, node, __ast_path)
24329    }
24330
24331    #[inline]
24332    fn visit_ts_interface_body<'ast: 'r, 'r>(
24333        &mut self,
24334        node: &'ast TsInterfaceBody,
24335        __ast_path: &mut AstNodePath<'r>,
24336    ) {
24337        <V as VisitAstPath>::visit_ts_interface_body(&mut **self, node, __ast_path)
24338    }
24339
24340    #[inline]
24341    fn visit_ts_interface_decl<'ast: 'r, 'r>(
24342        &mut self,
24343        node: &'ast TsInterfaceDecl,
24344        __ast_path: &mut AstNodePath<'r>,
24345    ) {
24346        <V as VisitAstPath>::visit_ts_interface_decl(&mut **self, node, __ast_path)
24347    }
24348
24349    #[inline]
24350    fn visit_ts_intersection_type<'ast: 'r, 'r>(
24351        &mut self,
24352        node: &'ast TsIntersectionType,
24353        __ast_path: &mut AstNodePath<'r>,
24354    ) {
24355        <V as VisitAstPath>::visit_ts_intersection_type(&mut **self, node, __ast_path)
24356    }
24357
24358    #[inline]
24359    fn visit_ts_keyword_type<'ast: 'r, 'r>(
24360        &mut self,
24361        node: &'ast TsKeywordType,
24362        __ast_path: &mut AstNodePath<'r>,
24363    ) {
24364        <V as VisitAstPath>::visit_ts_keyword_type(&mut **self, node, __ast_path)
24365    }
24366
24367    #[inline]
24368    fn visit_ts_keyword_type_kind<'ast: 'r, 'r>(
24369        &mut self,
24370        node: &'ast TsKeywordTypeKind,
24371        __ast_path: &mut AstNodePath<'r>,
24372    ) {
24373        <V as VisitAstPath>::visit_ts_keyword_type_kind(&mut **self, node, __ast_path)
24374    }
24375
24376    #[inline]
24377    fn visit_ts_lit<'ast: 'r, 'r>(&mut self, node: &'ast TsLit, __ast_path: &mut AstNodePath<'r>) {
24378        <V as VisitAstPath>::visit_ts_lit(&mut **self, node, __ast_path)
24379    }
24380
24381    #[inline]
24382    fn visit_ts_lit_type<'ast: 'r, 'r>(
24383        &mut self,
24384        node: &'ast TsLitType,
24385        __ast_path: &mut AstNodePath<'r>,
24386    ) {
24387        <V as VisitAstPath>::visit_ts_lit_type(&mut **self, node, __ast_path)
24388    }
24389
24390    #[inline]
24391    fn visit_ts_mapped_type<'ast: 'r, 'r>(
24392        &mut self,
24393        node: &'ast TsMappedType,
24394        __ast_path: &mut AstNodePath<'r>,
24395    ) {
24396        <V as VisitAstPath>::visit_ts_mapped_type(&mut **self, node, __ast_path)
24397    }
24398
24399    #[inline]
24400    fn visit_ts_method_signature<'ast: 'r, 'r>(
24401        &mut self,
24402        node: &'ast TsMethodSignature,
24403        __ast_path: &mut AstNodePath<'r>,
24404    ) {
24405        <V as VisitAstPath>::visit_ts_method_signature(&mut **self, node, __ast_path)
24406    }
24407
24408    #[inline]
24409    fn visit_ts_module_block<'ast: 'r, 'r>(
24410        &mut self,
24411        node: &'ast TsModuleBlock,
24412        __ast_path: &mut AstNodePath<'r>,
24413    ) {
24414        <V as VisitAstPath>::visit_ts_module_block(&mut **self, node, __ast_path)
24415    }
24416
24417    #[inline]
24418    fn visit_ts_module_decl<'ast: 'r, 'r>(
24419        &mut self,
24420        node: &'ast TsModuleDecl,
24421        __ast_path: &mut AstNodePath<'r>,
24422    ) {
24423        <V as VisitAstPath>::visit_ts_module_decl(&mut **self, node, __ast_path)
24424    }
24425
24426    #[inline]
24427    fn visit_ts_module_name<'ast: 'r, 'r>(
24428        &mut self,
24429        node: &'ast TsModuleName,
24430        __ast_path: &mut AstNodePath<'r>,
24431    ) {
24432        <V as VisitAstPath>::visit_ts_module_name(&mut **self, node, __ast_path)
24433    }
24434
24435    #[inline]
24436    fn visit_ts_module_ref<'ast: 'r, 'r>(
24437        &mut self,
24438        node: &'ast TsModuleRef,
24439        __ast_path: &mut AstNodePath<'r>,
24440    ) {
24441        <V as VisitAstPath>::visit_ts_module_ref(&mut **self, node, __ast_path)
24442    }
24443
24444    #[inline]
24445    fn visit_ts_namespace_body<'ast: 'r, 'r>(
24446        &mut self,
24447        node: &'ast TsNamespaceBody,
24448        __ast_path: &mut AstNodePath<'r>,
24449    ) {
24450        <V as VisitAstPath>::visit_ts_namespace_body(&mut **self, node, __ast_path)
24451    }
24452
24453    #[inline]
24454    fn visit_ts_namespace_decl<'ast: 'r, 'r>(
24455        &mut self,
24456        node: &'ast TsNamespaceDecl,
24457        __ast_path: &mut AstNodePath<'r>,
24458    ) {
24459        <V as VisitAstPath>::visit_ts_namespace_decl(&mut **self, node, __ast_path)
24460    }
24461
24462    #[inline]
24463    fn visit_ts_namespace_export_decl<'ast: 'r, 'r>(
24464        &mut self,
24465        node: &'ast TsNamespaceExportDecl,
24466        __ast_path: &mut AstNodePath<'r>,
24467    ) {
24468        <V as VisitAstPath>::visit_ts_namespace_export_decl(&mut **self, node, __ast_path)
24469    }
24470
24471    #[inline]
24472    fn visit_ts_non_null_expr<'ast: 'r, 'r>(
24473        &mut self,
24474        node: &'ast TsNonNullExpr,
24475        __ast_path: &mut AstNodePath<'r>,
24476    ) {
24477        <V as VisitAstPath>::visit_ts_non_null_expr(&mut **self, node, __ast_path)
24478    }
24479
24480    #[inline]
24481    fn visit_ts_optional_type<'ast: 'r, 'r>(
24482        &mut self,
24483        node: &'ast TsOptionalType,
24484        __ast_path: &mut AstNodePath<'r>,
24485    ) {
24486        <V as VisitAstPath>::visit_ts_optional_type(&mut **self, node, __ast_path)
24487    }
24488
24489    #[inline]
24490    fn visit_ts_param_prop<'ast: 'r, 'r>(
24491        &mut self,
24492        node: &'ast TsParamProp,
24493        __ast_path: &mut AstNodePath<'r>,
24494    ) {
24495        <V as VisitAstPath>::visit_ts_param_prop(&mut **self, node, __ast_path)
24496    }
24497
24498    #[inline]
24499    fn visit_ts_param_prop_param<'ast: 'r, 'r>(
24500        &mut self,
24501        node: &'ast TsParamPropParam,
24502        __ast_path: &mut AstNodePath<'r>,
24503    ) {
24504        <V as VisitAstPath>::visit_ts_param_prop_param(&mut **self, node, __ast_path)
24505    }
24506
24507    #[inline]
24508    fn visit_ts_parenthesized_type<'ast: 'r, 'r>(
24509        &mut self,
24510        node: &'ast TsParenthesizedType,
24511        __ast_path: &mut AstNodePath<'r>,
24512    ) {
24513        <V as VisitAstPath>::visit_ts_parenthesized_type(&mut **self, node, __ast_path)
24514    }
24515
24516    #[inline]
24517    fn visit_ts_property_signature<'ast: 'r, 'r>(
24518        &mut self,
24519        node: &'ast TsPropertySignature,
24520        __ast_path: &mut AstNodePath<'r>,
24521    ) {
24522        <V as VisitAstPath>::visit_ts_property_signature(&mut **self, node, __ast_path)
24523    }
24524
24525    #[inline]
24526    fn visit_ts_qualified_name<'ast: 'r, 'r>(
24527        &mut self,
24528        node: &'ast TsQualifiedName,
24529        __ast_path: &mut AstNodePath<'r>,
24530    ) {
24531        <V as VisitAstPath>::visit_ts_qualified_name(&mut **self, node, __ast_path)
24532    }
24533
24534    #[inline]
24535    fn visit_ts_rest_type<'ast: 'r, 'r>(
24536        &mut self,
24537        node: &'ast TsRestType,
24538        __ast_path: &mut AstNodePath<'r>,
24539    ) {
24540        <V as VisitAstPath>::visit_ts_rest_type(&mut **self, node, __ast_path)
24541    }
24542
24543    #[inline]
24544    fn visit_ts_satisfies_expr<'ast: 'r, 'r>(
24545        &mut self,
24546        node: &'ast TsSatisfiesExpr,
24547        __ast_path: &mut AstNodePath<'r>,
24548    ) {
24549        <V as VisitAstPath>::visit_ts_satisfies_expr(&mut **self, node, __ast_path)
24550    }
24551
24552    #[inline]
24553    fn visit_ts_setter_signature<'ast: 'r, 'r>(
24554        &mut self,
24555        node: &'ast TsSetterSignature,
24556        __ast_path: &mut AstNodePath<'r>,
24557    ) {
24558        <V as VisitAstPath>::visit_ts_setter_signature(&mut **self, node, __ast_path)
24559    }
24560
24561    #[inline]
24562    fn visit_ts_this_type<'ast: 'r, 'r>(
24563        &mut self,
24564        node: &'ast TsThisType,
24565        __ast_path: &mut AstNodePath<'r>,
24566    ) {
24567        <V as VisitAstPath>::visit_ts_this_type(&mut **self, node, __ast_path)
24568    }
24569
24570    #[inline]
24571    fn visit_ts_this_type_or_ident<'ast: 'r, 'r>(
24572        &mut self,
24573        node: &'ast TsThisTypeOrIdent,
24574        __ast_path: &mut AstNodePath<'r>,
24575    ) {
24576        <V as VisitAstPath>::visit_ts_this_type_or_ident(&mut **self, node, __ast_path)
24577    }
24578
24579    #[inline]
24580    fn visit_ts_tpl_lit_type<'ast: 'r, 'r>(
24581        &mut self,
24582        node: &'ast TsTplLitType,
24583        __ast_path: &mut AstNodePath<'r>,
24584    ) {
24585        <V as VisitAstPath>::visit_ts_tpl_lit_type(&mut **self, node, __ast_path)
24586    }
24587
24588    #[inline]
24589    fn visit_ts_tuple_element<'ast: 'r, 'r>(
24590        &mut self,
24591        node: &'ast TsTupleElement,
24592        __ast_path: &mut AstNodePath<'r>,
24593    ) {
24594        <V as VisitAstPath>::visit_ts_tuple_element(&mut **self, node, __ast_path)
24595    }
24596
24597    #[inline]
24598    fn visit_ts_tuple_elements<'ast: 'r, 'r>(
24599        &mut self,
24600        node: &'ast [TsTupleElement],
24601        __ast_path: &mut AstNodePath<'r>,
24602    ) {
24603        <V as VisitAstPath>::visit_ts_tuple_elements(&mut **self, node, __ast_path)
24604    }
24605
24606    #[inline]
24607    fn visit_ts_tuple_type<'ast: 'r, 'r>(
24608        &mut self,
24609        node: &'ast TsTupleType,
24610        __ast_path: &mut AstNodePath<'r>,
24611    ) {
24612        <V as VisitAstPath>::visit_ts_tuple_type(&mut **self, node, __ast_path)
24613    }
24614
24615    #[inline]
24616    fn visit_ts_type<'ast: 'r, 'r>(
24617        &mut self,
24618        node: &'ast TsType,
24619        __ast_path: &mut AstNodePath<'r>,
24620    ) {
24621        <V as VisitAstPath>::visit_ts_type(&mut **self, node, __ast_path)
24622    }
24623
24624    #[inline]
24625    fn visit_ts_type_alias_decl<'ast: 'r, 'r>(
24626        &mut self,
24627        node: &'ast TsTypeAliasDecl,
24628        __ast_path: &mut AstNodePath<'r>,
24629    ) {
24630        <V as VisitAstPath>::visit_ts_type_alias_decl(&mut **self, node, __ast_path)
24631    }
24632
24633    #[inline]
24634    fn visit_ts_type_ann<'ast: 'r, 'r>(
24635        &mut self,
24636        node: &'ast TsTypeAnn,
24637        __ast_path: &mut AstNodePath<'r>,
24638    ) {
24639        <V as VisitAstPath>::visit_ts_type_ann(&mut **self, node, __ast_path)
24640    }
24641
24642    #[inline]
24643    fn visit_ts_type_assertion<'ast: 'r, 'r>(
24644        &mut self,
24645        node: &'ast TsTypeAssertion,
24646        __ast_path: &mut AstNodePath<'r>,
24647    ) {
24648        <V as VisitAstPath>::visit_ts_type_assertion(&mut **self, node, __ast_path)
24649    }
24650
24651    #[inline]
24652    fn visit_ts_type_element<'ast: 'r, 'r>(
24653        &mut self,
24654        node: &'ast TsTypeElement,
24655        __ast_path: &mut AstNodePath<'r>,
24656    ) {
24657        <V as VisitAstPath>::visit_ts_type_element(&mut **self, node, __ast_path)
24658    }
24659
24660    #[inline]
24661    fn visit_ts_type_elements<'ast: 'r, 'r>(
24662        &mut self,
24663        node: &'ast [TsTypeElement],
24664        __ast_path: &mut AstNodePath<'r>,
24665    ) {
24666        <V as VisitAstPath>::visit_ts_type_elements(&mut **self, node, __ast_path)
24667    }
24668
24669    #[inline]
24670    fn visit_ts_type_lit<'ast: 'r, 'r>(
24671        &mut self,
24672        node: &'ast TsTypeLit,
24673        __ast_path: &mut AstNodePath<'r>,
24674    ) {
24675        <V as VisitAstPath>::visit_ts_type_lit(&mut **self, node, __ast_path)
24676    }
24677
24678    #[inline]
24679    fn visit_ts_type_operator<'ast: 'r, 'r>(
24680        &mut self,
24681        node: &'ast TsTypeOperator,
24682        __ast_path: &mut AstNodePath<'r>,
24683    ) {
24684        <V as VisitAstPath>::visit_ts_type_operator(&mut **self, node, __ast_path)
24685    }
24686
24687    #[inline]
24688    fn visit_ts_type_operator_op<'ast: 'r, 'r>(
24689        &mut self,
24690        node: &'ast TsTypeOperatorOp,
24691        __ast_path: &mut AstNodePath<'r>,
24692    ) {
24693        <V as VisitAstPath>::visit_ts_type_operator_op(&mut **self, node, __ast_path)
24694    }
24695
24696    #[inline]
24697    fn visit_ts_type_param<'ast: 'r, 'r>(
24698        &mut self,
24699        node: &'ast TsTypeParam,
24700        __ast_path: &mut AstNodePath<'r>,
24701    ) {
24702        <V as VisitAstPath>::visit_ts_type_param(&mut **self, node, __ast_path)
24703    }
24704
24705    #[inline]
24706    fn visit_ts_type_param_decl<'ast: 'r, 'r>(
24707        &mut self,
24708        node: &'ast TsTypeParamDecl,
24709        __ast_path: &mut AstNodePath<'r>,
24710    ) {
24711        <V as VisitAstPath>::visit_ts_type_param_decl(&mut **self, node, __ast_path)
24712    }
24713
24714    #[inline]
24715    fn visit_ts_type_param_instantiation<'ast: 'r, 'r>(
24716        &mut self,
24717        node: &'ast TsTypeParamInstantiation,
24718        __ast_path: &mut AstNodePath<'r>,
24719    ) {
24720        <V as VisitAstPath>::visit_ts_type_param_instantiation(&mut **self, node, __ast_path)
24721    }
24722
24723    #[inline]
24724    fn visit_ts_type_params<'ast: 'r, 'r>(
24725        &mut self,
24726        node: &'ast [TsTypeParam],
24727        __ast_path: &mut AstNodePath<'r>,
24728    ) {
24729        <V as VisitAstPath>::visit_ts_type_params(&mut **self, node, __ast_path)
24730    }
24731
24732    #[inline]
24733    fn visit_ts_type_predicate<'ast: 'r, 'r>(
24734        &mut self,
24735        node: &'ast TsTypePredicate,
24736        __ast_path: &mut AstNodePath<'r>,
24737    ) {
24738        <V as VisitAstPath>::visit_ts_type_predicate(&mut **self, node, __ast_path)
24739    }
24740
24741    #[inline]
24742    fn visit_ts_type_query<'ast: 'r, 'r>(
24743        &mut self,
24744        node: &'ast TsTypeQuery,
24745        __ast_path: &mut AstNodePath<'r>,
24746    ) {
24747        <V as VisitAstPath>::visit_ts_type_query(&mut **self, node, __ast_path)
24748    }
24749
24750    #[inline]
24751    fn visit_ts_type_query_expr<'ast: 'r, 'r>(
24752        &mut self,
24753        node: &'ast TsTypeQueryExpr,
24754        __ast_path: &mut AstNodePath<'r>,
24755    ) {
24756        <V as VisitAstPath>::visit_ts_type_query_expr(&mut **self, node, __ast_path)
24757    }
24758
24759    #[inline]
24760    fn visit_ts_type_ref<'ast: 'r, 'r>(
24761        &mut self,
24762        node: &'ast TsTypeRef,
24763        __ast_path: &mut AstNodePath<'r>,
24764    ) {
24765        <V as VisitAstPath>::visit_ts_type_ref(&mut **self, node, __ast_path)
24766    }
24767
24768    #[inline]
24769    fn visit_ts_types<'ast: 'r, 'r>(
24770        &mut self,
24771        node: &'ast [Box<TsType>],
24772        __ast_path: &mut AstNodePath<'r>,
24773    ) {
24774        <V as VisitAstPath>::visit_ts_types(&mut **self, node, __ast_path)
24775    }
24776
24777    #[inline]
24778    fn visit_ts_union_or_intersection_type<'ast: 'r, 'r>(
24779        &mut self,
24780        node: &'ast TsUnionOrIntersectionType,
24781        __ast_path: &mut AstNodePath<'r>,
24782    ) {
24783        <V as VisitAstPath>::visit_ts_union_or_intersection_type(&mut **self, node, __ast_path)
24784    }
24785
24786    #[inline]
24787    fn visit_ts_union_type<'ast: 'r, 'r>(
24788        &mut self,
24789        node: &'ast TsUnionType,
24790        __ast_path: &mut AstNodePath<'r>,
24791    ) {
24792        <V as VisitAstPath>::visit_ts_union_type(&mut **self, node, __ast_path)
24793    }
24794
24795    #[inline]
24796    fn visit_unary_expr<'ast: 'r, 'r>(
24797        &mut self,
24798        node: &'ast UnaryExpr,
24799        __ast_path: &mut AstNodePath<'r>,
24800    ) {
24801        <V as VisitAstPath>::visit_unary_expr(&mut **self, node, __ast_path)
24802    }
24803
24804    #[inline]
24805    fn visit_unary_op<'ast: 'r, 'r>(
24806        &mut self,
24807        node: &'ast UnaryOp,
24808        __ast_path: &mut AstNodePath<'r>,
24809    ) {
24810        <V as VisitAstPath>::visit_unary_op(&mut **self, node, __ast_path)
24811    }
24812
24813    #[inline]
24814    fn visit_update_expr<'ast: 'r, 'r>(
24815        &mut self,
24816        node: &'ast UpdateExpr,
24817        __ast_path: &mut AstNodePath<'r>,
24818    ) {
24819        <V as VisitAstPath>::visit_update_expr(&mut **self, node, __ast_path)
24820    }
24821
24822    #[inline]
24823    fn visit_update_op<'ast: 'r, 'r>(
24824        &mut self,
24825        node: &'ast UpdateOp,
24826        __ast_path: &mut AstNodePath<'r>,
24827    ) {
24828        <V as VisitAstPath>::visit_update_op(&mut **self, node, __ast_path)
24829    }
24830
24831    #[inline]
24832    fn visit_using_decl<'ast: 'r, 'r>(
24833        &mut self,
24834        node: &'ast UsingDecl,
24835        __ast_path: &mut AstNodePath<'r>,
24836    ) {
24837        <V as VisitAstPath>::visit_using_decl(&mut **self, node, __ast_path)
24838    }
24839
24840    #[inline]
24841    fn visit_var_decl<'ast: 'r, 'r>(
24842        &mut self,
24843        node: &'ast VarDecl,
24844        __ast_path: &mut AstNodePath<'r>,
24845    ) {
24846        <V as VisitAstPath>::visit_var_decl(&mut **self, node, __ast_path)
24847    }
24848
24849    #[inline]
24850    fn visit_var_decl_kind<'ast: 'r, 'r>(
24851        &mut self,
24852        node: &'ast VarDeclKind,
24853        __ast_path: &mut AstNodePath<'r>,
24854    ) {
24855        <V as VisitAstPath>::visit_var_decl_kind(&mut **self, node, __ast_path)
24856    }
24857
24858    #[inline]
24859    fn visit_var_decl_or_expr<'ast: 'r, 'r>(
24860        &mut self,
24861        node: &'ast VarDeclOrExpr,
24862        __ast_path: &mut AstNodePath<'r>,
24863    ) {
24864        <V as VisitAstPath>::visit_var_decl_or_expr(&mut **self, node, __ast_path)
24865    }
24866
24867    #[inline]
24868    fn visit_var_declarator<'ast: 'r, 'r>(
24869        &mut self,
24870        node: &'ast VarDeclarator,
24871        __ast_path: &mut AstNodePath<'r>,
24872    ) {
24873        <V as VisitAstPath>::visit_var_declarator(&mut **self, node, __ast_path)
24874    }
24875
24876    #[inline]
24877    fn visit_var_declarators<'ast: 'r, 'r>(
24878        &mut self,
24879        node: &'ast [VarDeclarator],
24880        __ast_path: &mut AstNodePath<'r>,
24881    ) {
24882        <V as VisitAstPath>::visit_var_declarators(&mut **self, node, __ast_path)
24883    }
24884
24885    #[inline]
24886    fn visit_while_stmt<'ast: 'r, 'r>(
24887        &mut self,
24888        node: &'ast WhileStmt,
24889        __ast_path: &mut AstNodePath<'r>,
24890    ) {
24891        <V as VisitAstPath>::visit_while_stmt(&mut **self, node, __ast_path)
24892    }
24893
24894    #[inline]
24895    fn visit_with_stmt<'ast: 'r, 'r>(
24896        &mut self,
24897        node: &'ast WithStmt,
24898        __ast_path: &mut AstNodePath<'r>,
24899    ) {
24900        <V as VisitAstPath>::visit_with_stmt(&mut **self, node, __ast_path)
24901    }
24902
24903    #[inline]
24904    fn visit_yield_expr<'ast: 'r, 'r>(
24905        &mut self,
24906        node: &'ast YieldExpr,
24907        __ast_path: &mut AstNodePath<'r>,
24908    ) {
24909        <V as VisitAstPath>::visit_yield_expr(&mut **self, node, __ast_path)
24910    }
24911}
24912#[cfg(any(docsrs, feature = "path"))]
24913#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
24914impl<A, B> VisitAstPath for ::swc_visit::Either<A, B>
24915where
24916    A: VisitAstPath,
24917    B: VisitAstPath,
24918{
24919    #[inline]
24920    fn visit_accessibility<'ast: 'r, 'r>(
24921        &mut self,
24922        node: &'ast Accessibility,
24923        __ast_path: &mut AstNodePath<'r>,
24924    ) {
24925        match self {
24926            swc_visit::Either::Left(visitor) => {
24927                VisitAstPath::visit_accessibility(visitor, node, __ast_path)
24928            }
24929            swc_visit::Either::Right(visitor) => {
24930                VisitAstPath::visit_accessibility(visitor, node, __ast_path)
24931            }
24932        }
24933    }
24934
24935    #[inline]
24936    fn visit_array_lit<'ast: 'r, 'r>(
24937        &mut self,
24938        node: &'ast ArrayLit,
24939        __ast_path: &mut AstNodePath<'r>,
24940    ) {
24941        match self {
24942            swc_visit::Either::Left(visitor) => {
24943                VisitAstPath::visit_array_lit(visitor, node, __ast_path)
24944            }
24945            swc_visit::Either::Right(visitor) => {
24946                VisitAstPath::visit_array_lit(visitor, node, __ast_path)
24947            }
24948        }
24949    }
24950
24951    #[inline]
24952    fn visit_array_pat<'ast: 'r, 'r>(
24953        &mut self,
24954        node: &'ast ArrayPat,
24955        __ast_path: &mut AstNodePath<'r>,
24956    ) {
24957        match self {
24958            swc_visit::Either::Left(visitor) => {
24959                VisitAstPath::visit_array_pat(visitor, node, __ast_path)
24960            }
24961            swc_visit::Either::Right(visitor) => {
24962                VisitAstPath::visit_array_pat(visitor, node, __ast_path)
24963            }
24964        }
24965    }
24966
24967    #[inline]
24968    fn visit_arrow_expr<'ast: 'r, 'r>(
24969        &mut self,
24970        node: &'ast ArrowExpr,
24971        __ast_path: &mut AstNodePath<'r>,
24972    ) {
24973        match self {
24974            swc_visit::Either::Left(visitor) => {
24975                VisitAstPath::visit_arrow_expr(visitor, node, __ast_path)
24976            }
24977            swc_visit::Either::Right(visitor) => {
24978                VisitAstPath::visit_arrow_expr(visitor, node, __ast_path)
24979            }
24980        }
24981    }
24982
24983    #[inline]
24984    fn visit_assign_expr<'ast: 'r, 'r>(
24985        &mut self,
24986        node: &'ast AssignExpr,
24987        __ast_path: &mut AstNodePath<'r>,
24988    ) {
24989        match self {
24990            swc_visit::Either::Left(visitor) => {
24991                VisitAstPath::visit_assign_expr(visitor, node, __ast_path)
24992            }
24993            swc_visit::Either::Right(visitor) => {
24994                VisitAstPath::visit_assign_expr(visitor, node, __ast_path)
24995            }
24996        }
24997    }
24998
24999    #[inline]
25000    fn visit_assign_op<'ast: 'r, 'r>(
25001        &mut self,
25002        node: &'ast AssignOp,
25003        __ast_path: &mut AstNodePath<'r>,
25004    ) {
25005        match self {
25006            swc_visit::Either::Left(visitor) => {
25007                VisitAstPath::visit_assign_op(visitor, node, __ast_path)
25008            }
25009            swc_visit::Either::Right(visitor) => {
25010                VisitAstPath::visit_assign_op(visitor, node, __ast_path)
25011            }
25012        }
25013    }
25014
25015    #[inline]
25016    fn visit_assign_pat<'ast: 'r, 'r>(
25017        &mut self,
25018        node: &'ast AssignPat,
25019        __ast_path: &mut AstNodePath<'r>,
25020    ) {
25021        match self {
25022            swc_visit::Either::Left(visitor) => {
25023                VisitAstPath::visit_assign_pat(visitor, node, __ast_path)
25024            }
25025            swc_visit::Either::Right(visitor) => {
25026                VisitAstPath::visit_assign_pat(visitor, node, __ast_path)
25027            }
25028        }
25029    }
25030
25031    #[inline]
25032    fn visit_assign_pat_prop<'ast: 'r, 'r>(
25033        &mut self,
25034        node: &'ast AssignPatProp,
25035        __ast_path: &mut AstNodePath<'r>,
25036    ) {
25037        match self {
25038            swc_visit::Either::Left(visitor) => {
25039                VisitAstPath::visit_assign_pat_prop(visitor, node, __ast_path)
25040            }
25041            swc_visit::Either::Right(visitor) => {
25042                VisitAstPath::visit_assign_pat_prop(visitor, node, __ast_path)
25043            }
25044        }
25045    }
25046
25047    #[inline]
25048    fn visit_assign_prop<'ast: 'r, 'r>(
25049        &mut self,
25050        node: &'ast AssignProp,
25051        __ast_path: &mut AstNodePath<'r>,
25052    ) {
25053        match self {
25054            swc_visit::Either::Left(visitor) => {
25055                VisitAstPath::visit_assign_prop(visitor, node, __ast_path)
25056            }
25057            swc_visit::Either::Right(visitor) => {
25058                VisitAstPath::visit_assign_prop(visitor, node, __ast_path)
25059            }
25060        }
25061    }
25062
25063    #[inline]
25064    fn visit_assign_target<'ast: 'r, 'r>(
25065        &mut self,
25066        node: &'ast AssignTarget,
25067        __ast_path: &mut AstNodePath<'r>,
25068    ) {
25069        match self {
25070            swc_visit::Either::Left(visitor) => {
25071                VisitAstPath::visit_assign_target(visitor, node, __ast_path)
25072            }
25073            swc_visit::Either::Right(visitor) => {
25074                VisitAstPath::visit_assign_target(visitor, node, __ast_path)
25075            }
25076        }
25077    }
25078
25079    #[inline]
25080    fn visit_assign_target_pat<'ast: 'r, 'r>(
25081        &mut self,
25082        node: &'ast AssignTargetPat,
25083        __ast_path: &mut AstNodePath<'r>,
25084    ) {
25085        match self {
25086            swc_visit::Either::Left(visitor) => {
25087                VisitAstPath::visit_assign_target_pat(visitor, node, __ast_path)
25088            }
25089            swc_visit::Either::Right(visitor) => {
25090                VisitAstPath::visit_assign_target_pat(visitor, node, __ast_path)
25091            }
25092        }
25093    }
25094
25095    #[inline]
25096    fn visit_atom<'ast: 'r, 'r>(
25097        &mut self,
25098        node: &'ast swc_atoms::Atom,
25099        __ast_path: &mut AstNodePath<'r>,
25100    ) {
25101        match self {
25102            swc_visit::Either::Left(visitor) => VisitAstPath::visit_atom(visitor, node, __ast_path),
25103            swc_visit::Either::Right(visitor) => {
25104                VisitAstPath::visit_atom(visitor, node, __ast_path)
25105            }
25106        }
25107    }
25108
25109    #[inline]
25110    fn visit_auto_accessor<'ast: 'r, 'r>(
25111        &mut self,
25112        node: &'ast AutoAccessor,
25113        __ast_path: &mut AstNodePath<'r>,
25114    ) {
25115        match self {
25116            swc_visit::Either::Left(visitor) => {
25117                VisitAstPath::visit_auto_accessor(visitor, node, __ast_path)
25118            }
25119            swc_visit::Either::Right(visitor) => {
25120                VisitAstPath::visit_auto_accessor(visitor, node, __ast_path)
25121            }
25122        }
25123    }
25124
25125    #[inline]
25126    fn visit_await_expr<'ast: 'r, 'r>(
25127        &mut self,
25128        node: &'ast AwaitExpr,
25129        __ast_path: &mut AstNodePath<'r>,
25130    ) {
25131        match self {
25132            swc_visit::Either::Left(visitor) => {
25133                VisitAstPath::visit_await_expr(visitor, node, __ast_path)
25134            }
25135            swc_visit::Either::Right(visitor) => {
25136                VisitAstPath::visit_await_expr(visitor, node, __ast_path)
25137            }
25138        }
25139    }
25140
25141    #[inline]
25142    fn visit_big_int<'ast: 'r, 'r>(
25143        &mut self,
25144        node: &'ast BigInt,
25145        __ast_path: &mut AstNodePath<'r>,
25146    ) {
25147        match self {
25148            swc_visit::Either::Left(visitor) => {
25149                VisitAstPath::visit_big_int(visitor, node, __ast_path)
25150            }
25151            swc_visit::Either::Right(visitor) => {
25152                VisitAstPath::visit_big_int(visitor, node, __ast_path)
25153            }
25154        }
25155    }
25156
25157    #[inline]
25158    fn visit_big_int_value<'ast: 'r, 'r>(
25159        &mut self,
25160        node: &'ast BigIntValue,
25161        __ast_path: &mut AstNodePath<'r>,
25162    ) {
25163        match self {
25164            swc_visit::Either::Left(visitor) => {
25165                VisitAstPath::visit_big_int_value(visitor, node, __ast_path)
25166            }
25167            swc_visit::Either::Right(visitor) => {
25168                VisitAstPath::visit_big_int_value(visitor, node, __ast_path)
25169            }
25170        }
25171    }
25172
25173    #[inline]
25174    fn visit_bin_expr<'ast: 'r, 'r>(
25175        &mut self,
25176        node: &'ast BinExpr,
25177        __ast_path: &mut AstNodePath<'r>,
25178    ) {
25179        match self {
25180            swc_visit::Either::Left(visitor) => {
25181                VisitAstPath::visit_bin_expr(visitor, node, __ast_path)
25182            }
25183            swc_visit::Either::Right(visitor) => {
25184                VisitAstPath::visit_bin_expr(visitor, node, __ast_path)
25185            }
25186        }
25187    }
25188
25189    #[inline]
25190    fn visit_binary_op<'ast: 'r, 'r>(
25191        &mut self,
25192        node: &'ast BinaryOp,
25193        __ast_path: &mut AstNodePath<'r>,
25194    ) {
25195        match self {
25196            swc_visit::Either::Left(visitor) => {
25197                VisitAstPath::visit_binary_op(visitor, node, __ast_path)
25198            }
25199            swc_visit::Either::Right(visitor) => {
25200                VisitAstPath::visit_binary_op(visitor, node, __ast_path)
25201            }
25202        }
25203    }
25204
25205    #[inline]
25206    fn visit_binding_ident<'ast: 'r, 'r>(
25207        &mut self,
25208        node: &'ast BindingIdent,
25209        __ast_path: &mut AstNodePath<'r>,
25210    ) {
25211        match self {
25212            swc_visit::Either::Left(visitor) => {
25213                VisitAstPath::visit_binding_ident(visitor, node, __ast_path)
25214            }
25215            swc_visit::Either::Right(visitor) => {
25216                VisitAstPath::visit_binding_ident(visitor, node, __ast_path)
25217            }
25218        }
25219    }
25220
25221    #[inline]
25222    fn visit_block_stmt<'ast: 'r, 'r>(
25223        &mut self,
25224        node: &'ast BlockStmt,
25225        __ast_path: &mut AstNodePath<'r>,
25226    ) {
25227        match self {
25228            swc_visit::Either::Left(visitor) => {
25229                VisitAstPath::visit_block_stmt(visitor, node, __ast_path)
25230            }
25231            swc_visit::Either::Right(visitor) => {
25232                VisitAstPath::visit_block_stmt(visitor, node, __ast_path)
25233            }
25234        }
25235    }
25236
25237    #[inline]
25238    fn visit_block_stmt_or_expr<'ast: 'r, 'r>(
25239        &mut self,
25240        node: &'ast BlockStmtOrExpr,
25241        __ast_path: &mut AstNodePath<'r>,
25242    ) {
25243        match self {
25244            swc_visit::Either::Left(visitor) => {
25245                VisitAstPath::visit_block_stmt_or_expr(visitor, node, __ast_path)
25246            }
25247            swc_visit::Either::Right(visitor) => {
25248                VisitAstPath::visit_block_stmt_or_expr(visitor, node, __ast_path)
25249            }
25250        }
25251    }
25252
25253    #[inline]
25254    fn visit_bool<'ast: 'r, 'r>(&mut self, node: &'ast Bool, __ast_path: &mut AstNodePath<'r>) {
25255        match self {
25256            swc_visit::Either::Left(visitor) => VisitAstPath::visit_bool(visitor, node, __ast_path),
25257            swc_visit::Either::Right(visitor) => {
25258                VisitAstPath::visit_bool(visitor, node, __ast_path)
25259            }
25260        }
25261    }
25262
25263    #[inline]
25264    fn visit_break_stmt<'ast: 'r, 'r>(
25265        &mut self,
25266        node: &'ast BreakStmt,
25267        __ast_path: &mut AstNodePath<'r>,
25268    ) {
25269        match self {
25270            swc_visit::Either::Left(visitor) => {
25271                VisitAstPath::visit_break_stmt(visitor, node, __ast_path)
25272            }
25273            swc_visit::Either::Right(visitor) => {
25274                VisitAstPath::visit_break_stmt(visitor, node, __ast_path)
25275            }
25276        }
25277    }
25278
25279    #[inline]
25280    fn visit_call_expr<'ast: 'r, 'r>(
25281        &mut self,
25282        node: &'ast CallExpr,
25283        __ast_path: &mut AstNodePath<'r>,
25284    ) {
25285        match self {
25286            swc_visit::Either::Left(visitor) => {
25287                VisitAstPath::visit_call_expr(visitor, node, __ast_path)
25288            }
25289            swc_visit::Either::Right(visitor) => {
25290                VisitAstPath::visit_call_expr(visitor, node, __ast_path)
25291            }
25292        }
25293    }
25294
25295    #[inline]
25296    fn visit_callee<'ast: 'r, 'r>(&mut self, node: &'ast Callee, __ast_path: &mut AstNodePath<'r>) {
25297        match self {
25298            swc_visit::Either::Left(visitor) => {
25299                VisitAstPath::visit_callee(visitor, node, __ast_path)
25300            }
25301            swc_visit::Either::Right(visitor) => {
25302                VisitAstPath::visit_callee(visitor, node, __ast_path)
25303            }
25304        }
25305    }
25306
25307    #[inline]
25308    fn visit_catch_clause<'ast: 'r, 'r>(
25309        &mut self,
25310        node: &'ast CatchClause,
25311        __ast_path: &mut AstNodePath<'r>,
25312    ) {
25313        match self {
25314            swc_visit::Either::Left(visitor) => {
25315                VisitAstPath::visit_catch_clause(visitor, node, __ast_path)
25316            }
25317            swc_visit::Either::Right(visitor) => {
25318                VisitAstPath::visit_catch_clause(visitor, node, __ast_path)
25319            }
25320        }
25321    }
25322
25323    #[inline]
25324    fn visit_class<'ast: 'r, 'r>(&mut self, node: &'ast Class, __ast_path: &mut AstNodePath<'r>) {
25325        match self {
25326            swc_visit::Either::Left(visitor) => {
25327                VisitAstPath::visit_class(visitor, node, __ast_path)
25328            }
25329            swc_visit::Either::Right(visitor) => {
25330                VisitAstPath::visit_class(visitor, node, __ast_path)
25331            }
25332        }
25333    }
25334
25335    #[inline]
25336    fn visit_class_decl<'ast: 'r, 'r>(
25337        &mut self,
25338        node: &'ast ClassDecl,
25339        __ast_path: &mut AstNodePath<'r>,
25340    ) {
25341        match self {
25342            swc_visit::Either::Left(visitor) => {
25343                VisitAstPath::visit_class_decl(visitor, node, __ast_path)
25344            }
25345            swc_visit::Either::Right(visitor) => {
25346                VisitAstPath::visit_class_decl(visitor, node, __ast_path)
25347            }
25348        }
25349    }
25350
25351    #[inline]
25352    fn visit_class_expr<'ast: 'r, 'r>(
25353        &mut self,
25354        node: &'ast ClassExpr,
25355        __ast_path: &mut AstNodePath<'r>,
25356    ) {
25357        match self {
25358            swc_visit::Either::Left(visitor) => {
25359                VisitAstPath::visit_class_expr(visitor, node, __ast_path)
25360            }
25361            swc_visit::Either::Right(visitor) => {
25362                VisitAstPath::visit_class_expr(visitor, node, __ast_path)
25363            }
25364        }
25365    }
25366
25367    #[inline]
25368    fn visit_class_member<'ast: 'r, 'r>(
25369        &mut self,
25370        node: &'ast ClassMember,
25371        __ast_path: &mut AstNodePath<'r>,
25372    ) {
25373        match self {
25374            swc_visit::Either::Left(visitor) => {
25375                VisitAstPath::visit_class_member(visitor, node, __ast_path)
25376            }
25377            swc_visit::Either::Right(visitor) => {
25378                VisitAstPath::visit_class_member(visitor, node, __ast_path)
25379            }
25380        }
25381    }
25382
25383    #[inline]
25384    fn visit_class_members<'ast: 'r, 'r>(
25385        &mut self,
25386        node: &'ast [ClassMember],
25387        __ast_path: &mut AstNodePath<'r>,
25388    ) {
25389        match self {
25390            swc_visit::Either::Left(visitor) => {
25391                VisitAstPath::visit_class_members(visitor, node, __ast_path)
25392            }
25393            swc_visit::Either::Right(visitor) => {
25394                VisitAstPath::visit_class_members(visitor, node, __ast_path)
25395            }
25396        }
25397    }
25398
25399    #[inline]
25400    fn visit_class_method<'ast: 'r, 'r>(
25401        &mut self,
25402        node: &'ast ClassMethod,
25403        __ast_path: &mut AstNodePath<'r>,
25404    ) {
25405        match self {
25406            swc_visit::Either::Left(visitor) => {
25407                VisitAstPath::visit_class_method(visitor, node, __ast_path)
25408            }
25409            swc_visit::Either::Right(visitor) => {
25410                VisitAstPath::visit_class_method(visitor, node, __ast_path)
25411            }
25412        }
25413    }
25414
25415    #[inline]
25416    fn visit_class_prop<'ast: 'r, 'r>(
25417        &mut self,
25418        node: &'ast ClassProp,
25419        __ast_path: &mut AstNodePath<'r>,
25420    ) {
25421        match self {
25422            swc_visit::Either::Left(visitor) => {
25423                VisitAstPath::visit_class_prop(visitor, node, __ast_path)
25424            }
25425            swc_visit::Either::Right(visitor) => {
25426                VisitAstPath::visit_class_prop(visitor, node, __ast_path)
25427            }
25428        }
25429    }
25430
25431    #[inline]
25432    fn visit_computed_prop_name<'ast: 'r, 'r>(
25433        &mut self,
25434        node: &'ast ComputedPropName,
25435        __ast_path: &mut AstNodePath<'r>,
25436    ) {
25437        match self {
25438            swc_visit::Either::Left(visitor) => {
25439                VisitAstPath::visit_computed_prop_name(visitor, node, __ast_path)
25440            }
25441            swc_visit::Either::Right(visitor) => {
25442                VisitAstPath::visit_computed_prop_name(visitor, node, __ast_path)
25443            }
25444        }
25445    }
25446
25447    #[inline]
25448    fn visit_cond_expr<'ast: 'r, 'r>(
25449        &mut self,
25450        node: &'ast CondExpr,
25451        __ast_path: &mut AstNodePath<'r>,
25452    ) {
25453        match self {
25454            swc_visit::Either::Left(visitor) => {
25455                VisitAstPath::visit_cond_expr(visitor, node, __ast_path)
25456            }
25457            swc_visit::Either::Right(visitor) => {
25458                VisitAstPath::visit_cond_expr(visitor, node, __ast_path)
25459            }
25460        }
25461    }
25462
25463    #[inline]
25464    fn visit_constructor<'ast: 'r, 'r>(
25465        &mut self,
25466        node: &'ast Constructor,
25467        __ast_path: &mut AstNodePath<'r>,
25468    ) {
25469        match self {
25470            swc_visit::Either::Left(visitor) => {
25471                VisitAstPath::visit_constructor(visitor, node, __ast_path)
25472            }
25473            swc_visit::Either::Right(visitor) => {
25474                VisitAstPath::visit_constructor(visitor, node, __ast_path)
25475            }
25476        }
25477    }
25478
25479    #[inline]
25480    fn visit_continue_stmt<'ast: 'r, 'r>(
25481        &mut self,
25482        node: &'ast ContinueStmt,
25483        __ast_path: &mut AstNodePath<'r>,
25484    ) {
25485        match self {
25486            swc_visit::Either::Left(visitor) => {
25487                VisitAstPath::visit_continue_stmt(visitor, node, __ast_path)
25488            }
25489            swc_visit::Either::Right(visitor) => {
25490                VisitAstPath::visit_continue_stmt(visitor, node, __ast_path)
25491            }
25492        }
25493    }
25494
25495    #[inline]
25496    fn visit_debugger_stmt<'ast: 'r, 'r>(
25497        &mut self,
25498        node: &'ast DebuggerStmt,
25499        __ast_path: &mut AstNodePath<'r>,
25500    ) {
25501        match self {
25502            swc_visit::Either::Left(visitor) => {
25503                VisitAstPath::visit_debugger_stmt(visitor, node, __ast_path)
25504            }
25505            swc_visit::Either::Right(visitor) => {
25506                VisitAstPath::visit_debugger_stmt(visitor, node, __ast_path)
25507            }
25508        }
25509    }
25510
25511    #[inline]
25512    fn visit_decl<'ast: 'r, 'r>(&mut self, node: &'ast Decl, __ast_path: &mut AstNodePath<'r>) {
25513        match self {
25514            swc_visit::Either::Left(visitor) => VisitAstPath::visit_decl(visitor, node, __ast_path),
25515            swc_visit::Either::Right(visitor) => {
25516                VisitAstPath::visit_decl(visitor, node, __ast_path)
25517            }
25518        }
25519    }
25520
25521    #[inline]
25522    fn visit_decorator<'ast: 'r, 'r>(
25523        &mut self,
25524        node: &'ast Decorator,
25525        __ast_path: &mut AstNodePath<'r>,
25526    ) {
25527        match self {
25528            swc_visit::Either::Left(visitor) => {
25529                VisitAstPath::visit_decorator(visitor, node, __ast_path)
25530            }
25531            swc_visit::Either::Right(visitor) => {
25532                VisitAstPath::visit_decorator(visitor, node, __ast_path)
25533            }
25534        }
25535    }
25536
25537    #[inline]
25538    fn visit_decorators<'ast: 'r, 'r>(
25539        &mut self,
25540        node: &'ast [Decorator],
25541        __ast_path: &mut AstNodePath<'r>,
25542    ) {
25543        match self {
25544            swc_visit::Either::Left(visitor) => {
25545                VisitAstPath::visit_decorators(visitor, node, __ast_path)
25546            }
25547            swc_visit::Either::Right(visitor) => {
25548                VisitAstPath::visit_decorators(visitor, node, __ast_path)
25549            }
25550        }
25551    }
25552
25553    #[inline]
25554    fn visit_default_decl<'ast: 'r, 'r>(
25555        &mut self,
25556        node: &'ast DefaultDecl,
25557        __ast_path: &mut AstNodePath<'r>,
25558    ) {
25559        match self {
25560            swc_visit::Either::Left(visitor) => {
25561                VisitAstPath::visit_default_decl(visitor, node, __ast_path)
25562            }
25563            swc_visit::Either::Right(visitor) => {
25564                VisitAstPath::visit_default_decl(visitor, node, __ast_path)
25565            }
25566        }
25567    }
25568
25569    #[inline]
25570    fn visit_do_while_stmt<'ast: 'r, 'r>(
25571        &mut self,
25572        node: &'ast DoWhileStmt,
25573        __ast_path: &mut AstNodePath<'r>,
25574    ) {
25575        match self {
25576            swc_visit::Either::Left(visitor) => {
25577                VisitAstPath::visit_do_while_stmt(visitor, node, __ast_path)
25578            }
25579            swc_visit::Either::Right(visitor) => {
25580                VisitAstPath::visit_do_while_stmt(visitor, node, __ast_path)
25581            }
25582        }
25583    }
25584
25585    #[inline]
25586    fn visit_empty_stmt<'ast: 'r, 'r>(
25587        &mut self,
25588        node: &'ast EmptyStmt,
25589        __ast_path: &mut AstNodePath<'r>,
25590    ) {
25591        match self {
25592            swc_visit::Either::Left(visitor) => {
25593                VisitAstPath::visit_empty_stmt(visitor, node, __ast_path)
25594            }
25595            swc_visit::Either::Right(visitor) => {
25596                VisitAstPath::visit_empty_stmt(visitor, node, __ast_path)
25597            }
25598        }
25599    }
25600
25601    #[inline]
25602    fn visit_export_all<'ast: 'r, 'r>(
25603        &mut self,
25604        node: &'ast ExportAll,
25605        __ast_path: &mut AstNodePath<'r>,
25606    ) {
25607        match self {
25608            swc_visit::Either::Left(visitor) => {
25609                VisitAstPath::visit_export_all(visitor, node, __ast_path)
25610            }
25611            swc_visit::Either::Right(visitor) => {
25612                VisitAstPath::visit_export_all(visitor, node, __ast_path)
25613            }
25614        }
25615    }
25616
25617    #[inline]
25618    fn visit_export_decl<'ast: 'r, 'r>(
25619        &mut self,
25620        node: &'ast ExportDecl,
25621        __ast_path: &mut AstNodePath<'r>,
25622    ) {
25623        match self {
25624            swc_visit::Either::Left(visitor) => {
25625                VisitAstPath::visit_export_decl(visitor, node, __ast_path)
25626            }
25627            swc_visit::Either::Right(visitor) => {
25628                VisitAstPath::visit_export_decl(visitor, node, __ast_path)
25629            }
25630        }
25631    }
25632
25633    #[inline]
25634    fn visit_export_default_decl<'ast: 'r, 'r>(
25635        &mut self,
25636        node: &'ast ExportDefaultDecl,
25637        __ast_path: &mut AstNodePath<'r>,
25638    ) {
25639        match self {
25640            swc_visit::Either::Left(visitor) => {
25641                VisitAstPath::visit_export_default_decl(visitor, node, __ast_path)
25642            }
25643            swc_visit::Either::Right(visitor) => {
25644                VisitAstPath::visit_export_default_decl(visitor, node, __ast_path)
25645            }
25646        }
25647    }
25648
25649    #[inline]
25650    fn visit_export_default_expr<'ast: 'r, 'r>(
25651        &mut self,
25652        node: &'ast ExportDefaultExpr,
25653        __ast_path: &mut AstNodePath<'r>,
25654    ) {
25655        match self {
25656            swc_visit::Either::Left(visitor) => {
25657                VisitAstPath::visit_export_default_expr(visitor, node, __ast_path)
25658            }
25659            swc_visit::Either::Right(visitor) => {
25660                VisitAstPath::visit_export_default_expr(visitor, node, __ast_path)
25661            }
25662        }
25663    }
25664
25665    #[inline]
25666    fn visit_export_default_specifier<'ast: 'r, 'r>(
25667        &mut self,
25668        node: &'ast ExportDefaultSpecifier,
25669        __ast_path: &mut AstNodePath<'r>,
25670    ) {
25671        match self {
25672            swc_visit::Either::Left(visitor) => {
25673                VisitAstPath::visit_export_default_specifier(visitor, node, __ast_path)
25674            }
25675            swc_visit::Either::Right(visitor) => {
25676                VisitAstPath::visit_export_default_specifier(visitor, node, __ast_path)
25677            }
25678        }
25679    }
25680
25681    #[inline]
25682    fn visit_export_named_specifier<'ast: 'r, 'r>(
25683        &mut self,
25684        node: &'ast ExportNamedSpecifier,
25685        __ast_path: &mut AstNodePath<'r>,
25686    ) {
25687        match self {
25688            swc_visit::Either::Left(visitor) => {
25689                VisitAstPath::visit_export_named_specifier(visitor, node, __ast_path)
25690            }
25691            swc_visit::Either::Right(visitor) => {
25692                VisitAstPath::visit_export_named_specifier(visitor, node, __ast_path)
25693            }
25694        }
25695    }
25696
25697    #[inline]
25698    fn visit_export_namespace_specifier<'ast: 'r, 'r>(
25699        &mut self,
25700        node: &'ast ExportNamespaceSpecifier,
25701        __ast_path: &mut AstNodePath<'r>,
25702    ) {
25703        match self {
25704            swc_visit::Either::Left(visitor) => {
25705                VisitAstPath::visit_export_namespace_specifier(visitor, node, __ast_path)
25706            }
25707            swc_visit::Either::Right(visitor) => {
25708                VisitAstPath::visit_export_namespace_specifier(visitor, node, __ast_path)
25709            }
25710        }
25711    }
25712
25713    #[inline]
25714    fn visit_export_specifier<'ast: 'r, 'r>(
25715        &mut self,
25716        node: &'ast ExportSpecifier,
25717        __ast_path: &mut AstNodePath<'r>,
25718    ) {
25719        match self {
25720            swc_visit::Either::Left(visitor) => {
25721                VisitAstPath::visit_export_specifier(visitor, node, __ast_path)
25722            }
25723            swc_visit::Either::Right(visitor) => {
25724                VisitAstPath::visit_export_specifier(visitor, node, __ast_path)
25725            }
25726        }
25727    }
25728
25729    #[inline]
25730    fn visit_export_specifiers<'ast: 'r, 'r>(
25731        &mut self,
25732        node: &'ast [ExportSpecifier],
25733        __ast_path: &mut AstNodePath<'r>,
25734    ) {
25735        match self {
25736            swc_visit::Either::Left(visitor) => {
25737                VisitAstPath::visit_export_specifiers(visitor, node, __ast_path)
25738            }
25739            swc_visit::Either::Right(visitor) => {
25740                VisitAstPath::visit_export_specifiers(visitor, node, __ast_path)
25741            }
25742        }
25743    }
25744
25745    #[inline]
25746    fn visit_expr<'ast: 'r, 'r>(&mut self, node: &'ast Expr, __ast_path: &mut AstNodePath<'r>) {
25747        match self {
25748            swc_visit::Either::Left(visitor) => VisitAstPath::visit_expr(visitor, node, __ast_path),
25749            swc_visit::Either::Right(visitor) => {
25750                VisitAstPath::visit_expr(visitor, node, __ast_path)
25751            }
25752        }
25753    }
25754
25755    #[inline]
25756    fn visit_expr_or_spread<'ast: 'r, 'r>(
25757        &mut self,
25758        node: &'ast ExprOrSpread,
25759        __ast_path: &mut AstNodePath<'r>,
25760    ) {
25761        match self {
25762            swc_visit::Either::Left(visitor) => {
25763                VisitAstPath::visit_expr_or_spread(visitor, node, __ast_path)
25764            }
25765            swc_visit::Either::Right(visitor) => {
25766                VisitAstPath::visit_expr_or_spread(visitor, node, __ast_path)
25767            }
25768        }
25769    }
25770
25771    #[inline]
25772    fn visit_expr_or_spreads<'ast: 'r, 'r>(
25773        &mut self,
25774        node: &'ast [ExprOrSpread],
25775        __ast_path: &mut AstNodePath<'r>,
25776    ) {
25777        match self {
25778            swc_visit::Either::Left(visitor) => {
25779                VisitAstPath::visit_expr_or_spreads(visitor, node, __ast_path)
25780            }
25781            swc_visit::Either::Right(visitor) => {
25782                VisitAstPath::visit_expr_or_spreads(visitor, node, __ast_path)
25783            }
25784        }
25785    }
25786
25787    #[inline]
25788    fn visit_expr_stmt<'ast: 'r, 'r>(
25789        &mut self,
25790        node: &'ast ExprStmt,
25791        __ast_path: &mut AstNodePath<'r>,
25792    ) {
25793        match self {
25794            swc_visit::Either::Left(visitor) => {
25795                VisitAstPath::visit_expr_stmt(visitor, node, __ast_path)
25796            }
25797            swc_visit::Either::Right(visitor) => {
25798                VisitAstPath::visit_expr_stmt(visitor, node, __ast_path)
25799            }
25800        }
25801    }
25802
25803    #[inline]
25804    fn visit_exprs<'ast: 'r, 'r>(
25805        &mut self,
25806        node: &'ast [Box<Expr>],
25807        __ast_path: &mut AstNodePath<'r>,
25808    ) {
25809        match self {
25810            swc_visit::Either::Left(visitor) => {
25811                VisitAstPath::visit_exprs(visitor, node, __ast_path)
25812            }
25813            swc_visit::Either::Right(visitor) => {
25814                VisitAstPath::visit_exprs(visitor, node, __ast_path)
25815            }
25816        }
25817    }
25818
25819    #[inline]
25820    fn visit_fn_decl<'ast: 'r, 'r>(
25821        &mut self,
25822        node: &'ast FnDecl,
25823        __ast_path: &mut AstNodePath<'r>,
25824    ) {
25825        match self {
25826            swc_visit::Either::Left(visitor) => {
25827                VisitAstPath::visit_fn_decl(visitor, node, __ast_path)
25828            }
25829            swc_visit::Either::Right(visitor) => {
25830                VisitAstPath::visit_fn_decl(visitor, node, __ast_path)
25831            }
25832        }
25833    }
25834
25835    #[inline]
25836    fn visit_fn_expr<'ast: 'r, 'r>(
25837        &mut self,
25838        node: &'ast FnExpr,
25839        __ast_path: &mut AstNodePath<'r>,
25840    ) {
25841        match self {
25842            swc_visit::Either::Left(visitor) => {
25843                VisitAstPath::visit_fn_expr(visitor, node, __ast_path)
25844            }
25845            swc_visit::Either::Right(visitor) => {
25846                VisitAstPath::visit_fn_expr(visitor, node, __ast_path)
25847            }
25848        }
25849    }
25850
25851    #[inline]
25852    fn visit_for_head<'ast: 'r, 'r>(
25853        &mut self,
25854        node: &'ast ForHead,
25855        __ast_path: &mut AstNodePath<'r>,
25856    ) {
25857        match self {
25858            swc_visit::Either::Left(visitor) => {
25859                VisitAstPath::visit_for_head(visitor, node, __ast_path)
25860            }
25861            swc_visit::Either::Right(visitor) => {
25862                VisitAstPath::visit_for_head(visitor, node, __ast_path)
25863            }
25864        }
25865    }
25866
25867    #[inline]
25868    fn visit_for_in_stmt<'ast: 'r, 'r>(
25869        &mut self,
25870        node: &'ast ForInStmt,
25871        __ast_path: &mut AstNodePath<'r>,
25872    ) {
25873        match self {
25874            swc_visit::Either::Left(visitor) => {
25875                VisitAstPath::visit_for_in_stmt(visitor, node, __ast_path)
25876            }
25877            swc_visit::Either::Right(visitor) => {
25878                VisitAstPath::visit_for_in_stmt(visitor, node, __ast_path)
25879            }
25880        }
25881    }
25882
25883    #[inline]
25884    fn visit_for_of_stmt<'ast: 'r, 'r>(
25885        &mut self,
25886        node: &'ast ForOfStmt,
25887        __ast_path: &mut AstNodePath<'r>,
25888    ) {
25889        match self {
25890            swc_visit::Either::Left(visitor) => {
25891                VisitAstPath::visit_for_of_stmt(visitor, node, __ast_path)
25892            }
25893            swc_visit::Either::Right(visitor) => {
25894                VisitAstPath::visit_for_of_stmt(visitor, node, __ast_path)
25895            }
25896        }
25897    }
25898
25899    #[inline]
25900    fn visit_for_stmt<'ast: 'r, 'r>(
25901        &mut self,
25902        node: &'ast ForStmt,
25903        __ast_path: &mut AstNodePath<'r>,
25904    ) {
25905        match self {
25906            swc_visit::Either::Left(visitor) => {
25907                VisitAstPath::visit_for_stmt(visitor, node, __ast_path)
25908            }
25909            swc_visit::Either::Right(visitor) => {
25910                VisitAstPath::visit_for_stmt(visitor, node, __ast_path)
25911            }
25912        }
25913    }
25914
25915    #[inline]
25916    fn visit_function<'ast: 'r, 'r>(
25917        &mut self,
25918        node: &'ast Function,
25919        __ast_path: &mut AstNodePath<'r>,
25920    ) {
25921        match self {
25922            swc_visit::Either::Left(visitor) => {
25923                VisitAstPath::visit_function(visitor, node, __ast_path)
25924            }
25925            swc_visit::Either::Right(visitor) => {
25926                VisitAstPath::visit_function(visitor, node, __ast_path)
25927            }
25928        }
25929    }
25930
25931    #[inline]
25932    fn visit_getter_prop<'ast: 'r, 'r>(
25933        &mut self,
25934        node: &'ast GetterProp,
25935        __ast_path: &mut AstNodePath<'r>,
25936    ) {
25937        match self {
25938            swc_visit::Either::Left(visitor) => {
25939                VisitAstPath::visit_getter_prop(visitor, node, __ast_path)
25940            }
25941            swc_visit::Either::Right(visitor) => {
25942                VisitAstPath::visit_getter_prop(visitor, node, __ast_path)
25943            }
25944        }
25945    }
25946
25947    #[inline]
25948    fn visit_ident<'ast: 'r, 'r>(&mut self, node: &'ast Ident, __ast_path: &mut AstNodePath<'r>) {
25949        match self {
25950            swc_visit::Either::Left(visitor) => {
25951                VisitAstPath::visit_ident(visitor, node, __ast_path)
25952            }
25953            swc_visit::Either::Right(visitor) => {
25954                VisitAstPath::visit_ident(visitor, node, __ast_path)
25955            }
25956        }
25957    }
25958
25959    #[inline]
25960    fn visit_ident_name<'ast: 'r, 'r>(
25961        &mut self,
25962        node: &'ast IdentName,
25963        __ast_path: &mut AstNodePath<'r>,
25964    ) {
25965        match self {
25966            swc_visit::Either::Left(visitor) => {
25967                VisitAstPath::visit_ident_name(visitor, node, __ast_path)
25968            }
25969            swc_visit::Either::Right(visitor) => {
25970                VisitAstPath::visit_ident_name(visitor, node, __ast_path)
25971            }
25972        }
25973    }
25974
25975    #[inline]
25976    fn visit_if_stmt<'ast: 'r, 'r>(
25977        &mut self,
25978        node: &'ast IfStmt,
25979        __ast_path: &mut AstNodePath<'r>,
25980    ) {
25981        match self {
25982            swc_visit::Either::Left(visitor) => {
25983                VisitAstPath::visit_if_stmt(visitor, node, __ast_path)
25984            }
25985            swc_visit::Either::Right(visitor) => {
25986                VisitAstPath::visit_if_stmt(visitor, node, __ast_path)
25987            }
25988        }
25989    }
25990
25991    #[inline]
25992    fn visit_import<'ast: 'r, 'r>(&mut self, node: &'ast Import, __ast_path: &mut AstNodePath<'r>) {
25993        match self {
25994            swc_visit::Either::Left(visitor) => {
25995                VisitAstPath::visit_import(visitor, node, __ast_path)
25996            }
25997            swc_visit::Either::Right(visitor) => {
25998                VisitAstPath::visit_import(visitor, node, __ast_path)
25999            }
26000        }
26001    }
26002
26003    #[inline]
26004    fn visit_import_decl<'ast: 'r, 'r>(
26005        &mut self,
26006        node: &'ast ImportDecl,
26007        __ast_path: &mut AstNodePath<'r>,
26008    ) {
26009        match self {
26010            swc_visit::Either::Left(visitor) => {
26011                VisitAstPath::visit_import_decl(visitor, node, __ast_path)
26012            }
26013            swc_visit::Either::Right(visitor) => {
26014                VisitAstPath::visit_import_decl(visitor, node, __ast_path)
26015            }
26016        }
26017    }
26018
26019    #[inline]
26020    fn visit_import_default_specifier<'ast: 'r, 'r>(
26021        &mut self,
26022        node: &'ast ImportDefaultSpecifier,
26023        __ast_path: &mut AstNodePath<'r>,
26024    ) {
26025        match self {
26026            swc_visit::Either::Left(visitor) => {
26027                VisitAstPath::visit_import_default_specifier(visitor, node, __ast_path)
26028            }
26029            swc_visit::Either::Right(visitor) => {
26030                VisitAstPath::visit_import_default_specifier(visitor, node, __ast_path)
26031            }
26032        }
26033    }
26034
26035    #[inline]
26036    fn visit_import_named_specifier<'ast: 'r, 'r>(
26037        &mut self,
26038        node: &'ast ImportNamedSpecifier,
26039        __ast_path: &mut AstNodePath<'r>,
26040    ) {
26041        match self {
26042            swc_visit::Either::Left(visitor) => {
26043                VisitAstPath::visit_import_named_specifier(visitor, node, __ast_path)
26044            }
26045            swc_visit::Either::Right(visitor) => {
26046                VisitAstPath::visit_import_named_specifier(visitor, node, __ast_path)
26047            }
26048        }
26049    }
26050
26051    #[inline]
26052    fn visit_import_phase<'ast: 'r, 'r>(
26053        &mut self,
26054        node: &'ast ImportPhase,
26055        __ast_path: &mut AstNodePath<'r>,
26056    ) {
26057        match self {
26058            swc_visit::Either::Left(visitor) => {
26059                VisitAstPath::visit_import_phase(visitor, node, __ast_path)
26060            }
26061            swc_visit::Either::Right(visitor) => {
26062                VisitAstPath::visit_import_phase(visitor, node, __ast_path)
26063            }
26064        }
26065    }
26066
26067    #[inline]
26068    fn visit_import_specifier<'ast: 'r, 'r>(
26069        &mut self,
26070        node: &'ast ImportSpecifier,
26071        __ast_path: &mut AstNodePath<'r>,
26072    ) {
26073        match self {
26074            swc_visit::Either::Left(visitor) => {
26075                VisitAstPath::visit_import_specifier(visitor, node, __ast_path)
26076            }
26077            swc_visit::Either::Right(visitor) => {
26078                VisitAstPath::visit_import_specifier(visitor, node, __ast_path)
26079            }
26080        }
26081    }
26082
26083    #[inline]
26084    fn visit_import_specifiers<'ast: 'r, 'r>(
26085        &mut self,
26086        node: &'ast [ImportSpecifier],
26087        __ast_path: &mut AstNodePath<'r>,
26088    ) {
26089        match self {
26090            swc_visit::Either::Left(visitor) => {
26091                VisitAstPath::visit_import_specifiers(visitor, node, __ast_path)
26092            }
26093            swc_visit::Either::Right(visitor) => {
26094                VisitAstPath::visit_import_specifiers(visitor, node, __ast_path)
26095            }
26096        }
26097    }
26098
26099    #[inline]
26100    fn visit_import_star_as_specifier<'ast: 'r, 'r>(
26101        &mut self,
26102        node: &'ast ImportStarAsSpecifier,
26103        __ast_path: &mut AstNodePath<'r>,
26104    ) {
26105        match self {
26106            swc_visit::Either::Left(visitor) => {
26107                VisitAstPath::visit_import_star_as_specifier(visitor, node, __ast_path)
26108            }
26109            swc_visit::Either::Right(visitor) => {
26110                VisitAstPath::visit_import_star_as_specifier(visitor, node, __ast_path)
26111            }
26112        }
26113    }
26114
26115    #[inline]
26116    fn visit_import_with<'ast: 'r, 'r>(
26117        &mut self,
26118        node: &'ast ImportWith,
26119        __ast_path: &mut AstNodePath<'r>,
26120    ) {
26121        match self {
26122            swc_visit::Either::Left(visitor) => {
26123                VisitAstPath::visit_import_with(visitor, node, __ast_path)
26124            }
26125            swc_visit::Either::Right(visitor) => {
26126                VisitAstPath::visit_import_with(visitor, node, __ast_path)
26127            }
26128        }
26129    }
26130
26131    #[inline]
26132    fn visit_import_with_item<'ast: 'r, 'r>(
26133        &mut self,
26134        node: &'ast ImportWithItem,
26135        __ast_path: &mut AstNodePath<'r>,
26136    ) {
26137        match self {
26138            swc_visit::Either::Left(visitor) => {
26139                VisitAstPath::visit_import_with_item(visitor, node, __ast_path)
26140            }
26141            swc_visit::Either::Right(visitor) => {
26142                VisitAstPath::visit_import_with_item(visitor, node, __ast_path)
26143            }
26144        }
26145    }
26146
26147    #[inline]
26148    fn visit_import_with_items<'ast: 'r, 'r>(
26149        &mut self,
26150        node: &'ast [ImportWithItem],
26151        __ast_path: &mut AstNodePath<'r>,
26152    ) {
26153        match self {
26154            swc_visit::Either::Left(visitor) => {
26155                VisitAstPath::visit_import_with_items(visitor, node, __ast_path)
26156            }
26157            swc_visit::Either::Right(visitor) => {
26158                VisitAstPath::visit_import_with_items(visitor, node, __ast_path)
26159            }
26160        }
26161    }
26162
26163    #[inline]
26164    fn visit_invalid<'ast: 'r, 'r>(
26165        &mut self,
26166        node: &'ast Invalid,
26167        __ast_path: &mut AstNodePath<'r>,
26168    ) {
26169        match self {
26170            swc_visit::Either::Left(visitor) => {
26171                VisitAstPath::visit_invalid(visitor, node, __ast_path)
26172            }
26173            swc_visit::Either::Right(visitor) => {
26174                VisitAstPath::visit_invalid(visitor, node, __ast_path)
26175            }
26176        }
26177    }
26178
26179    #[inline]
26180    fn visit_jsx_attr<'ast: 'r, 'r>(
26181        &mut self,
26182        node: &'ast JSXAttr,
26183        __ast_path: &mut AstNodePath<'r>,
26184    ) {
26185        match self {
26186            swc_visit::Either::Left(visitor) => {
26187                VisitAstPath::visit_jsx_attr(visitor, node, __ast_path)
26188            }
26189            swc_visit::Either::Right(visitor) => {
26190                VisitAstPath::visit_jsx_attr(visitor, node, __ast_path)
26191            }
26192        }
26193    }
26194
26195    #[inline]
26196    fn visit_jsx_attr_name<'ast: 'r, 'r>(
26197        &mut self,
26198        node: &'ast JSXAttrName,
26199        __ast_path: &mut AstNodePath<'r>,
26200    ) {
26201        match self {
26202            swc_visit::Either::Left(visitor) => {
26203                VisitAstPath::visit_jsx_attr_name(visitor, node, __ast_path)
26204            }
26205            swc_visit::Either::Right(visitor) => {
26206                VisitAstPath::visit_jsx_attr_name(visitor, node, __ast_path)
26207            }
26208        }
26209    }
26210
26211    #[inline]
26212    fn visit_jsx_attr_or_spread<'ast: 'r, 'r>(
26213        &mut self,
26214        node: &'ast JSXAttrOrSpread,
26215        __ast_path: &mut AstNodePath<'r>,
26216    ) {
26217        match self {
26218            swc_visit::Either::Left(visitor) => {
26219                VisitAstPath::visit_jsx_attr_or_spread(visitor, node, __ast_path)
26220            }
26221            swc_visit::Either::Right(visitor) => {
26222                VisitAstPath::visit_jsx_attr_or_spread(visitor, node, __ast_path)
26223            }
26224        }
26225    }
26226
26227    #[inline]
26228    fn visit_jsx_attr_or_spreads<'ast: 'r, 'r>(
26229        &mut self,
26230        node: &'ast [JSXAttrOrSpread],
26231        __ast_path: &mut AstNodePath<'r>,
26232    ) {
26233        match self {
26234            swc_visit::Either::Left(visitor) => {
26235                VisitAstPath::visit_jsx_attr_or_spreads(visitor, node, __ast_path)
26236            }
26237            swc_visit::Either::Right(visitor) => {
26238                VisitAstPath::visit_jsx_attr_or_spreads(visitor, node, __ast_path)
26239            }
26240        }
26241    }
26242
26243    #[inline]
26244    fn visit_jsx_attr_value<'ast: 'r, 'r>(
26245        &mut self,
26246        node: &'ast JSXAttrValue,
26247        __ast_path: &mut AstNodePath<'r>,
26248    ) {
26249        match self {
26250            swc_visit::Either::Left(visitor) => {
26251                VisitAstPath::visit_jsx_attr_value(visitor, node, __ast_path)
26252            }
26253            swc_visit::Either::Right(visitor) => {
26254                VisitAstPath::visit_jsx_attr_value(visitor, node, __ast_path)
26255            }
26256        }
26257    }
26258
26259    #[inline]
26260    fn visit_jsx_closing_element<'ast: 'r, 'r>(
26261        &mut self,
26262        node: &'ast JSXClosingElement,
26263        __ast_path: &mut AstNodePath<'r>,
26264    ) {
26265        match self {
26266            swc_visit::Either::Left(visitor) => {
26267                VisitAstPath::visit_jsx_closing_element(visitor, node, __ast_path)
26268            }
26269            swc_visit::Either::Right(visitor) => {
26270                VisitAstPath::visit_jsx_closing_element(visitor, node, __ast_path)
26271            }
26272        }
26273    }
26274
26275    #[inline]
26276    fn visit_jsx_closing_fragment<'ast: 'r, 'r>(
26277        &mut self,
26278        node: &'ast JSXClosingFragment,
26279        __ast_path: &mut AstNodePath<'r>,
26280    ) {
26281        match self {
26282            swc_visit::Either::Left(visitor) => {
26283                VisitAstPath::visit_jsx_closing_fragment(visitor, node, __ast_path)
26284            }
26285            swc_visit::Either::Right(visitor) => {
26286                VisitAstPath::visit_jsx_closing_fragment(visitor, node, __ast_path)
26287            }
26288        }
26289    }
26290
26291    #[inline]
26292    fn visit_jsx_element<'ast: 'r, 'r>(
26293        &mut self,
26294        node: &'ast JSXElement,
26295        __ast_path: &mut AstNodePath<'r>,
26296    ) {
26297        match self {
26298            swc_visit::Either::Left(visitor) => {
26299                VisitAstPath::visit_jsx_element(visitor, node, __ast_path)
26300            }
26301            swc_visit::Either::Right(visitor) => {
26302                VisitAstPath::visit_jsx_element(visitor, node, __ast_path)
26303            }
26304        }
26305    }
26306
26307    #[inline]
26308    fn visit_jsx_element_child<'ast: 'r, 'r>(
26309        &mut self,
26310        node: &'ast JSXElementChild,
26311        __ast_path: &mut AstNodePath<'r>,
26312    ) {
26313        match self {
26314            swc_visit::Either::Left(visitor) => {
26315                VisitAstPath::visit_jsx_element_child(visitor, node, __ast_path)
26316            }
26317            swc_visit::Either::Right(visitor) => {
26318                VisitAstPath::visit_jsx_element_child(visitor, node, __ast_path)
26319            }
26320        }
26321    }
26322
26323    #[inline]
26324    fn visit_jsx_element_childs<'ast: 'r, 'r>(
26325        &mut self,
26326        node: &'ast [JSXElementChild],
26327        __ast_path: &mut AstNodePath<'r>,
26328    ) {
26329        match self {
26330            swc_visit::Either::Left(visitor) => {
26331                VisitAstPath::visit_jsx_element_childs(visitor, node, __ast_path)
26332            }
26333            swc_visit::Either::Right(visitor) => {
26334                VisitAstPath::visit_jsx_element_childs(visitor, node, __ast_path)
26335            }
26336        }
26337    }
26338
26339    #[inline]
26340    fn visit_jsx_element_name<'ast: 'r, 'r>(
26341        &mut self,
26342        node: &'ast JSXElementName,
26343        __ast_path: &mut AstNodePath<'r>,
26344    ) {
26345        match self {
26346            swc_visit::Either::Left(visitor) => {
26347                VisitAstPath::visit_jsx_element_name(visitor, node, __ast_path)
26348            }
26349            swc_visit::Either::Right(visitor) => {
26350                VisitAstPath::visit_jsx_element_name(visitor, node, __ast_path)
26351            }
26352        }
26353    }
26354
26355    #[inline]
26356    fn visit_jsx_empty_expr<'ast: 'r, 'r>(
26357        &mut self,
26358        node: &'ast JSXEmptyExpr,
26359        __ast_path: &mut AstNodePath<'r>,
26360    ) {
26361        match self {
26362            swc_visit::Either::Left(visitor) => {
26363                VisitAstPath::visit_jsx_empty_expr(visitor, node, __ast_path)
26364            }
26365            swc_visit::Either::Right(visitor) => {
26366                VisitAstPath::visit_jsx_empty_expr(visitor, node, __ast_path)
26367            }
26368        }
26369    }
26370
26371    #[inline]
26372    fn visit_jsx_expr<'ast: 'r, 'r>(
26373        &mut self,
26374        node: &'ast JSXExpr,
26375        __ast_path: &mut AstNodePath<'r>,
26376    ) {
26377        match self {
26378            swc_visit::Either::Left(visitor) => {
26379                VisitAstPath::visit_jsx_expr(visitor, node, __ast_path)
26380            }
26381            swc_visit::Either::Right(visitor) => {
26382                VisitAstPath::visit_jsx_expr(visitor, node, __ast_path)
26383            }
26384        }
26385    }
26386
26387    #[inline]
26388    fn visit_jsx_expr_container<'ast: 'r, 'r>(
26389        &mut self,
26390        node: &'ast JSXExprContainer,
26391        __ast_path: &mut AstNodePath<'r>,
26392    ) {
26393        match self {
26394            swc_visit::Either::Left(visitor) => {
26395                VisitAstPath::visit_jsx_expr_container(visitor, node, __ast_path)
26396            }
26397            swc_visit::Either::Right(visitor) => {
26398                VisitAstPath::visit_jsx_expr_container(visitor, node, __ast_path)
26399            }
26400        }
26401    }
26402
26403    #[inline]
26404    fn visit_jsx_fragment<'ast: 'r, 'r>(
26405        &mut self,
26406        node: &'ast JSXFragment,
26407        __ast_path: &mut AstNodePath<'r>,
26408    ) {
26409        match self {
26410            swc_visit::Either::Left(visitor) => {
26411                VisitAstPath::visit_jsx_fragment(visitor, node, __ast_path)
26412            }
26413            swc_visit::Either::Right(visitor) => {
26414                VisitAstPath::visit_jsx_fragment(visitor, node, __ast_path)
26415            }
26416        }
26417    }
26418
26419    #[inline]
26420    fn visit_jsx_member_expr<'ast: 'r, 'r>(
26421        &mut self,
26422        node: &'ast JSXMemberExpr,
26423        __ast_path: &mut AstNodePath<'r>,
26424    ) {
26425        match self {
26426            swc_visit::Either::Left(visitor) => {
26427                VisitAstPath::visit_jsx_member_expr(visitor, node, __ast_path)
26428            }
26429            swc_visit::Either::Right(visitor) => {
26430                VisitAstPath::visit_jsx_member_expr(visitor, node, __ast_path)
26431            }
26432        }
26433    }
26434
26435    #[inline]
26436    fn visit_jsx_namespaced_name<'ast: 'r, 'r>(
26437        &mut self,
26438        node: &'ast JSXNamespacedName,
26439        __ast_path: &mut AstNodePath<'r>,
26440    ) {
26441        match self {
26442            swc_visit::Either::Left(visitor) => {
26443                VisitAstPath::visit_jsx_namespaced_name(visitor, node, __ast_path)
26444            }
26445            swc_visit::Either::Right(visitor) => {
26446                VisitAstPath::visit_jsx_namespaced_name(visitor, node, __ast_path)
26447            }
26448        }
26449    }
26450
26451    #[inline]
26452    fn visit_jsx_object<'ast: 'r, 'r>(
26453        &mut self,
26454        node: &'ast JSXObject,
26455        __ast_path: &mut AstNodePath<'r>,
26456    ) {
26457        match self {
26458            swc_visit::Either::Left(visitor) => {
26459                VisitAstPath::visit_jsx_object(visitor, node, __ast_path)
26460            }
26461            swc_visit::Either::Right(visitor) => {
26462                VisitAstPath::visit_jsx_object(visitor, node, __ast_path)
26463            }
26464        }
26465    }
26466
26467    #[inline]
26468    fn visit_jsx_opening_element<'ast: 'r, 'r>(
26469        &mut self,
26470        node: &'ast JSXOpeningElement,
26471        __ast_path: &mut AstNodePath<'r>,
26472    ) {
26473        match self {
26474            swc_visit::Either::Left(visitor) => {
26475                VisitAstPath::visit_jsx_opening_element(visitor, node, __ast_path)
26476            }
26477            swc_visit::Either::Right(visitor) => {
26478                VisitAstPath::visit_jsx_opening_element(visitor, node, __ast_path)
26479            }
26480        }
26481    }
26482
26483    #[inline]
26484    fn visit_jsx_opening_fragment<'ast: 'r, 'r>(
26485        &mut self,
26486        node: &'ast JSXOpeningFragment,
26487        __ast_path: &mut AstNodePath<'r>,
26488    ) {
26489        match self {
26490            swc_visit::Either::Left(visitor) => {
26491                VisitAstPath::visit_jsx_opening_fragment(visitor, node, __ast_path)
26492            }
26493            swc_visit::Either::Right(visitor) => {
26494                VisitAstPath::visit_jsx_opening_fragment(visitor, node, __ast_path)
26495            }
26496        }
26497    }
26498
26499    #[inline]
26500    fn visit_jsx_spread_child<'ast: 'r, 'r>(
26501        &mut self,
26502        node: &'ast JSXSpreadChild,
26503        __ast_path: &mut AstNodePath<'r>,
26504    ) {
26505        match self {
26506            swc_visit::Either::Left(visitor) => {
26507                VisitAstPath::visit_jsx_spread_child(visitor, node, __ast_path)
26508            }
26509            swc_visit::Either::Right(visitor) => {
26510                VisitAstPath::visit_jsx_spread_child(visitor, node, __ast_path)
26511            }
26512        }
26513    }
26514
26515    #[inline]
26516    fn visit_jsx_text<'ast: 'r, 'r>(
26517        &mut self,
26518        node: &'ast JSXText,
26519        __ast_path: &mut AstNodePath<'r>,
26520    ) {
26521        match self {
26522            swc_visit::Either::Left(visitor) => {
26523                VisitAstPath::visit_jsx_text(visitor, node, __ast_path)
26524            }
26525            swc_visit::Either::Right(visitor) => {
26526                VisitAstPath::visit_jsx_text(visitor, node, __ast_path)
26527            }
26528        }
26529    }
26530
26531    #[inline]
26532    fn visit_key<'ast: 'r, 'r>(&mut self, node: &'ast Key, __ast_path: &mut AstNodePath<'r>) {
26533        match self {
26534            swc_visit::Either::Left(visitor) => VisitAstPath::visit_key(visitor, node, __ast_path),
26535            swc_visit::Either::Right(visitor) => VisitAstPath::visit_key(visitor, node, __ast_path),
26536        }
26537    }
26538
26539    #[inline]
26540    fn visit_key_value_pat_prop<'ast: 'r, 'r>(
26541        &mut self,
26542        node: &'ast KeyValuePatProp,
26543        __ast_path: &mut AstNodePath<'r>,
26544    ) {
26545        match self {
26546            swc_visit::Either::Left(visitor) => {
26547                VisitAstPath::visit_key_value_pat_prop(visitor, node, __ast_path)
26548            }
26549            swc_visit::Either::Right(visitor) => {
26550                VisitAstPath::visit_key_value_pat_prop(visitor, node, __ast_path)
26551            }
26552        }
26553    }
26554
26555    #[inline]
26556    fn visit_key_value_prop<'ast: 'r, 'r>(
26557        &mut self,
26558        node: &'ast KeyValueProp,
26559        __ast_path: &mut AstNodePath<'r>,
26560    ) {
26561        match self {
26562            swc_visit::Either::Left(visitor) => {
26563                VisitAstPath::visit_key_value_prop(visitor, node, __ast_path)
26564            }
26565            swc_visit::Either::Right(visitor) => {
26566                VisitAstPath::visit_key_value_prop(visitor, node, __ast_path)
26567            }
26568        }
26569    }
26570
26571    #[inline]
26572    fn visit_labeled_stmt<'ast: 'r, 'r>(
26573        &mut self,
26574        node: &'ast LabeledStmt,
26575        __ast_path: &mut AstNodePath<'r>,
26576    ) {
26577        match self {
26578            swc_visit::Either::Left(visitor) => {
26579                VisitAstPath::visit_labeled_stmt(visitor, node, __ast_path)
26580            }
26581            swc_visit::Either::Right(visitor) => {
26582                VisitAstPath::visit_labeled_stmt(visitor, node, __ast_path)
26583            }
26584        }
26585    }
26586
26587    #[inline]
26588    fn visit_lit<'ast: 'r, 'r>(&mut self, node: &'ast Lit, __ast_path: &mut AstNodePath<'r>) {
26589        match self {
26590            swc_visit::Either::Left(visitor) => VisitAstPath::visit_lit(visitor, node, __ast_path),
26591            swc_visit::Either::Right(visitor) => VisitAstPath::visit_lit(visitor, node, __ast_path),
26592        }
26593    }
26594
26595    #[inline]
26596    fn visit_member_expr<'ast: 'r, 'r>(
26597        &mut self,
26598        node: &'ast MemberExpr,
26599        __ast_path: &mut AstNodePath<'r>,
26600    ) {
26601        match self {
26602            swc_visit::Either::Left(visitor) => {
26603                VisitAstPath::visit_member_expr(visitor, node, __ast_path)
26604            }
26605            swc_visit::Either::Right(visitor) => {
26606                VisitAstPath::visit_member_expr(visitor, node, __ast_path)
26607            }
26608        }
26609    }
26610
26611    #[inline]
26612    fn visit_member_prop<'ast: 'r, 'r>(
26613        &mut self,
26614        node: &'ast MemberProp,
26615        __ast_path: &mut AstNodePath<'r>,
26616    ) {
26617        match self {
26618            swc_visit::Either::Left(visitor) => {
26619                VisitAstPath::visit_member_prop(visitor, node, __ast_path)
26620            }
26621            swc_visit::Either::Right(visitor) => {
26622                VisitAstPath::visit_member_prop(visitor, node, __ast_path)
26623            }
26624        }
26625    }
26626
26627    #[inline]
26628    fn visit_meta_prop_expr<'ast: 'r, 'r>(
26629        &mut self,
26630        node: &'ast MetaPropExpr,
26631        __ast_path: &mut AstNodePath<'r>,
26632    ) {
26633        match self {
26634            swc_visit::Either::Left(visitor) => {
26635                VisitAstPath::visit_meta_prop_expr(visitor, node, __ast_path)
26636            }
26637            swc_visit::Either::Right(visitor) => {
26638                VisitAstPath::visit_meta_prop_expr(visitor, node, __ast_path)
26639            }
26640        }
26641    }
26642
26643    #[inline]
26644    fn visit_meta_prop_kind<'ast: 'r, 'r>(
26645        &mut self,
26646        node: &'ast MetaPropKind,
26647        __ast_path: &mut AstNodePath<'r>,
26648    ) {
26649        match self {
26650            swc_visit::Either::Left(visitor) => {
26651                VisitAstPath::visit_meta_prop_kind(visitor, node, __ast_path)
26652            }
26653            swc_visit::Either::Right(visitor) => {
26654                VisitAstPath::visit_meta_prop_kind(visitor, node, __ast_path)
26655            }
26656        }
26657    }
26658
26659    #[inline]
26660    fn visit_method_kind<'ast: 'r, 'r>(
26661        &mut self,
26662        node: &'ast MethodKind,
26663        __ast_path: &mut AstNodePath<'r>,
26664    ) {
26665        match self {
26666            swc_visit::Either::Left(visitor) => {
26667                VisitAstPath::visit_method_kind(visitor, node, __ast_path)
26668            }
26669            swc_visit::Either::Right(visitor) => {
26670                VisitAstPath::visit_method_kind(visitor, node, __ast_path)
26671            }
26672        }
26673    }
26674
26675    #[inline]
26676    fn visit_method_prop<'ast: 'r, 'r>(
26677        &mut self,
26678        node: &'ast MethodProp,
26679        __ast_path: &mut AstNodePath<'r>,
26680    ) {
26681        match self {
26682            swc_visit::Either::Left(visitor) => {
26683                VisitAstPath::visit_method_prop(visitor, node, __ast_path)
26684            }
26685            swc_visit::Either::Right(visitor) => {
26686                VisitAstPath::visit_method_prop(visitor, node, __ast_path)
26687            }
26688        }
26689    }
26690
26691    #[inline]
26692    fn visit_module<'ast: 'r, 'r>(&mut self, node: &'ast Module, __ast_path: &mut AstNodePath<'r>) {
26693        match self {
26694            swc_visit::Either::Left(visitor) => {
26695                VisitAstPath::visit_module(visitor, node, __ast_path)
26696            }
26697            swc_visit::Either::Right(visitor) => {
26698                VisitAstPath::visit_module(visitor, node, __ast_path)
26699            }
26700        }
26701    }
26702
26703    #[inline]
26704    fn visit_module_decl<'ast: 'r, 'r>(
26705        &mut self,
26706        node: &'ast ModuleDecl,
26707        __ast_path: &mut AstNodePath<'r>,
26708    ) {
26709        match self {
26710            swc_visit::Either::Left(visitor) => {
26711                VisitAstPath::visit_module_decl(visitor, node, __ast_path)
26712            }
26713            swc_visit::Either::Right(visitor) => {
26714                VisitAstPath::visit_module_decl(visitor, node, __ast_path)
26715            }
26716        }
26717    }
26718
26719    #[inline]
26720    fn visit_module_export_name<'ast: 'r, 'r>(
26721        &mut self,
26722        node: &'ast ModuleExportName,
26723        __ast_path: &mut AstNodePath<'r>,
26724    ) {
26725        match self {
26726            swc_visit::Either::Left(visitor) => {
26727                VisitAstPath::visit_module_export_name(visitor, node, __ast_path)
26728            }
26729            swc_visit::Either::Right(visitor) => {
26730                VisitAstPath::visit_module_export_name(visitor, node, __ast_path)
26731            }
26732        }
26733    }
26734
26735    #[inline]
26736    fn visit_module_item<'ast: 'r, 'r>(
26737        &mut self,
26738        node: &'ast ModuleItem,
26739        __ast_path: &mut AstNodePath<'r>,
26740    ) {
26741        match self {
26742            swc_visit::Either::Left(visitor) => {
26743                VisitAstPath::visit_module_item(visitor, node, __ast_path)
26744            }
26745            swc_visit::Either::Right(visitor) => {
26746                VisitAstPath::visit_module_item(visitor, node, __ast_path)
26747            }
26748        }
26749    }
26750
26751    #[inline]
26752    fn visit_module_items<'ast: 'r, 'r>(
26753        &mut self,
26754        node: &'ast [ModuleItem],
26755        __ast_path: &mut AstNodePath<'r>,
26756    ) {
26757        match self {
26758            swc_visit::Either::Left(visitor) => {
26759                VisitAstPath::visit_module_items(visitor, node, __ast_path)
26760            }
26761            swc_visit::Either::Right(visitor) => {
26762                VisitAstPath::visit_module_items(visitor, node, __ast_path)
26763            }
26764        }
26765    }
26766
26767    #[inline]
26768    fn visit_named_export<'ast: 'r, 'r>(
26769        &mut self,
26770        node: &'ast NamedExport,
26771        __ast_path: &mut AstNodePath<'r>,
26772    ) {
26773        match self {
26774            swc_visit::Either::Left(visitor) => {
26775                VisitAstPath::visit_named_export(visitor, node, __ast_path)
26776            }
26777            swc_visit::Either::Right(visitor) => {
26778                VisitAstPath::visit_named_export(visitor, node, __ast_path)
26779            }
26780        }
26781    }
26782
26783    #[inline]
26784    fn visit_new_expr<'ast: 'r, 'r>(
26785        &mut self,
26786        node: &'ast NewExpr,
26787        __ast_path: &mut AstNodePath<'r>,
26788    ) {
26789        match self {
26790            swc_visit::Either::Left(visitor) => {
26791                VisitAstPath::visit_new_expr(visitor, node, __ast_path)
26792            }
26793            swc_visit::Either::Right(visitor) => {
26794                VisitAstPath::visit_new_expr(visitor, node, __ast_path)
26795            }
26796        }
26797    }
26798
26799    #[inline]
26800    fn visit_null<'ast: 'r, 'r>(&mut self, node: &'ast Null, __ast_path: &mut AstNodePath<'r>) {
26801        match self {
26802            swc_visit::Either::Left(visitor) => VisitAstPath::visit_null(visitor, node, __ast_path),
26803            swc_visit::Either::Right(visitor) => {
26804                VisitAstPath::visit_null(visitor, node, __ast_path)
26805            }
26806        }
26807    }
26808
26809    #[inline]
26810    fn visit_number<'ast: 'r, 'r>(&mut self, node: &'ast Number, __ast_path: &mut AstNodePath<'r>) {
26811        match self {
26812            swc_visit::Either::Left(visitor) => {
26813                VisitAstPath::visit_number(visitor, node, __ast_path)
26814            }
26815            swc_visit::Either::Right(visitor) => {
26816                VisitAstPath::visit_number(visitor, node, __ast_path)
26817            }
26818        }
26819    }
26820
26821    #[inline]
26822    fn visit_object_lit<'ast: 'r, 'r>(
26823        &mut self,
26824        node: &'ast ObjectLit,
26825        __ast_path: &mut AstNodePath<'r>,
26826    ) {
26827        match self {
26828            swc_visit::Either::Left(visitor) => {
26829                VisitAstPath::visit_object_lit(visitor, node, __ast_path)
26830            }
26831            swc_visit::Either::Right(visitor) => {
26832                VisitAstPath::visit_object_lit(visitor, node, __ast_path)
26833            }
26834        }
26835    }
26836
26837    #[inline]
26838    fn visit_object_pat<'ast: 'r, 'r>(
26839        &mut self,
26840        node: &'ast ObjectPat,
26841        __ast_path: &mut AstNodePath<'r>,
26842    ) {
26843        match self {
26844            swc_visit::Either::Left(visitor) => {
26845                VisitAstPath::visit_object_pat(visitor, node, __ast_path)
26846            }
26847            swc_visit::Either::Right(visitor) => {
26848                VisitAstPath::visit_object_pat(visitor, node, __ast_path)
26849            }
26850        }
26851    }
26852
26853    #[inline]
26854    fn visit_object_pat_prop<'ast: 'r, 'r>(
26855        &mut self,
26856        node: &'ast ObjectPatProp,
26857        __ast_path: &mut AstNodePath<'r>,
26858    ) {
26859        match self {
26860            swc_visit::Either::Left(visitor) => {
26861                VisitAstPath::visit_object_pat_prop(visitor, node, __ast_path)
26862            }
26863            swc_visit::Either::Right(visitor) => {
26864                VisitAstPath::visit_object_pat_prop(visitor, node, __ast_path)
26865            }
26866        }
26867    }
26868
26869    #[inline]
26870    fn visit_object_pat_props<'ast: 'r, 'r>(
26871        &mut self,
26872        node: &'ast [ObjectPatProp],
26873        __ast_path: &mut AstNodePath<'r>,
26874    ) {
26875        match self {
26876            swc_visit::Either::Left(visitor) => {
26877                VisitAstPath::visit_object_pat_props(visitor, node, __ast_path)
26878            }
26879            swc_visit::Either::Right(visitor) => {
26880                VisitAstPath::visit_object_pat_props(visitor, node, __ast_path)
26881            }
26882        }
26883    }
26884
26885    #[inline]
26886    fn visit_opt_accessibility<'ast: 'r, 'r>(
26887        &mut self,
26888        node: &'ast Option<Accessibility>,
26889        __ast_path: &mut AstNodePath<'r>,
26890    ) {
26891        match self {
26892            swc_visit::Either::Left(visitor) => {
26893                VisitAstPath::visit_opt_accessibility(visitor, node, __ast_path)
26894            }
26895            swc_visit::Either::Right(visitor) => {
26896                VisitAstPath::visit_opt_accessibility(visitor, node, __ast_path)
26897            }
26898        }
26899    }
26900
26901    #[inline]
26902    fn visit_opt_atom<'ast: 'r, 'r>(
26903        &mut self,
26904        node: &'ast Option<swc_atoms::Atom>,
26905        __ast_path: &mut AstNodePath<'r>,
26906    ) {
26907        match self {
26908            swc_visit::Either::Left(visitor) => {
26909                VisitAstPath::visit_opt_atom(visitor, node, __ast_path)
26910            }
26911            swc_visit::Either::Right(visitor) => {
26912                VisitAstPath::visit_opt_atom(visitor, node, __ast_path)
26913            }
26914        }
26915    }
26916
26917    #[inline]
26918    fn visit_opt_block_stmt<'ast: 'r, 'r>(
26919        &mut self,
26920        node: &'ast Option<BlockStmt>,
26921        __ast_path: &mut AstNodePath<'r>,
26922    ) {
26923        match self {
26924            swc_visit::Either::Left(visitor) => {
26925                VisitAstPath::visit_opt_block_stmt(visitor, node, __ast_path)
26926            }
26927            swc_visit::Either::Right(visitor) => {
26928                VisitAstPath::visit_opt_block_stmt(visitor, node, __ast_path)
26929            }
26930        }
26931    }
26932
26933    #[inline]
26934    fn visit_opt_call<'ast: 'r, 'r>(
26935        &mut self,
26936        node: &'ast OptCall,
26937        __ast_path: &mut AstNodePath<'r>,
26938    ) {
26939        match self {
26940            swc_visit::Either::Left(visitor) => {
26941                VisitAstPath::visit_opt_call(visitor, node, __ast_path)
26942            }
26943            swc_visit::Either::Right(visitor) => {
26944                VisitAstPath::visit_opt_call(visitor, node, __ast_path)
26945            }
26946        }
26947    }
26948
26949    #[inline]
26950    fn visit_opt_catch_clause<'ast: 'r, 'r>(
26951        &mut self,
26952        node: &'ast Option<CatchClause>,
26953        __ast_path: &mut AstNodePath<'r>,
26954    ) {
26955        match self {
26956            swc_visit::Either::Left(visitor) => {
26957                VisitAstPath::visit_opt_catch_clause(visitor, node, __ast_path)
26958            }
26959            swc_visit::Either::Right(visitor) => {
26960                VisitAstPath::visit_opt_catch_clause(visitor, node, __ast_path)
26961            }
26962        }
26963    }
26964
26965    #[inline]
26966    fn visit_opt_chain_base<'ast: 'r, 'r>(
26967        &mut self,
26968        node: &'ast OptChainBase,
26969        __ast_path: &mut AstNodePath<'r>,
26970    ) {
26971        match self {
26972            swc_visit::Either::Left(visitor) => {
26973                VisitAstPath::visit_opt_chain_base(visitor, node, __ast_path)
26974            }
26975            swc_visit::Either::Right(visitor) => {
26976                VisitAstPath::visit_opt_chain_base(visitor, node, __ast_path)
26977            }
26978        }
26979    }
26980
26981    #[inline]
26982    fn visit_opt_chain_expr<'ast: 'r, 'r>(
26983        &mut self,
26984        node: &'ast OptChainExpr,
26985        __ast_path: &mut AstNodePath<'r>,
26986    ) {
26987        match self {
26988            swc_visit::Either::Left(visitor) => {
26989                VisitAstPath::visit_opt_chain_expr(visitor, node, __ast_path)
26990            }
26991            swc_visit::Either::Right(visitor) => {
26992                VisitAstPath::visit_opt_chain_expr(visitor, node, __ast_path)
26993            }
26994        }
26995    }
26996
26997    #[inline]
26998    fn visit_opt_expr<'ast: 'r, 'r>(
26999        &mut self,
27000        node: &'ast Option<Box<Expr>>,
27001        __ast_path: &mut AstNodePath<'r>,
27002    ) {
27003        match self {
27004            swc_visit::Either::Left(visitor) => {
27005                VisitAstPath::visit_opt_expr(visitor, node, __ast_path)
27006            }
27007            swc_visit::Either::Right(visitor) => {
27008                VisitAstPath::visit_opt_expr(visitor, node, __ast_path)
27009            }
27010        }
27011    }
27012
27013    #[inline]
27014    fn visit_opt_expr_or_spread<'ast: 'r, 'r>(
27015        &mut self,
27016        node: &'ast Option<ExprOrSpread>,
27017        __ast_path: &mut AstNodePath<'r>,
27018    ) {
27019        match self {
27020            swc_visit::Either::Left(visitor) => {
27021                VisitAstPath::visit_opt_expr_or_spread(visitor, node, __ast_path)
27022            }
27023            swc_visit::Either::Right(visitor) => {
27024                VisitAstPath::visit_opt_expr_or_spread(visitor, node, __ast_path)
27025            }
27026        }
27027    }
27028
27029    #[inline]
27030    fn visit_opt_expr_or_spreads<'ast: 'r, 'r>(
27031        &mut self,
27032        node: &'ast Option<Vec<ExprOrSpread>>,
27033        __ast_path: &mut AstNodePath<'r>,
27034    ) {
27035        match self {
27036            swc_visit::Either::Left(visitor) => {
27037                VisitAstPath::visit_opt_expr_or_spreads(visitor, node, __ast_path)
27038            }
27039            swc_visit::Either::Right(visitor) => {
27040                VisitAstPath::visit_opt_expr_or_spreads(visitor, node, __ast_path)
27041            }
27042        }
27043    }
27044
27045    #[inline]
27046    fn visit_opt_ident<'ast: 'r, 'r>(
27047        &mut self,
27048        node: &'ast Option<Ident>,
27049        __ast_path: &mut AstNodePath<'r>,
27050    ) {
27051        match self {
27052            swc_visit::Either::Left(visitor) => {
27053                VisitAstPath::visit_opt_ident(visitor, node, __ast_path)
27054            }
27055            swc_visit::Either::Right(visitor) => {
27056                VisitAstPath::visit_opt_ident(visitor, node, __ast_path)
27057            }
27058        }
27059    }
27060
27061    #[inline]
27062    fn visit_opt_jsx_attr_value<'ast: 'r, 'r>(
27063        &mut self,
27064        node: &'ast Option<JSXAttrValue>,
27065        __ast_path: &mut AstNodePath<'r>,
27066    ) {
27067        match self {
27068            swc_visit::Either::Left(visitor) => {
27069                VisitAstPath::visit_opt_jsx_attr_value(visitor, node, __ast_path)
27070            }
27071            swc_visit::Either::Right(visitor) => {
27072                VisitAstPath::visit_opt_jsx_attr_value(visitor, node, __ast_path)
27073            }
27074        }
27075    }
27076
27077    #[inline]
27078    fn visit_opt_jsx_closing_element<'ast: 'r, 'r>(
27079        &mut self,
27080        node: &'ast Option<JSXClosingElement>,
27081        __ast_path: &mut AstNodePath<'r>,
27082    ) {
27083        match self {
27084            swc_visit::Either::Left(visitor) => {
27085                VisitAstPath::visit_opt_jsx_closing_element(visitor, node, __ast_path)
27086            }
27087            swc_visit::Either::Right(visitor) => {
27088                VisitAstPath::visit_opt_jsx_closing_element(visitor, node, __ast_path)
27089            }
27090        }
27091    }
27092
27093    #[inline]
27094    fn visit_opt_module_export_name<'ast: 'r, 'r>(
27095        &mut self,
27096        node: &'ast Option<ModuleExportName>,
27097        __ast_path: &mut AstNodePath<'r>,
27098    ) {
27099        match self {
27100            swc_visit::Either::Left(visitor) => {
27101                VisitAstPath::visit_opt_module_export_name(visitor, node, __ast_path)
27102            }
27103            swc_visit::Either::Right(visitor) => {
27104                VisitAstPath::visit_opt_module_export_name(visitor, node, __ast_path)
27105            }
27106        }
27107    }
27108
27109    #[inline]
27110    fn visit_opt_object_lit<'ast: 'r, 'r>(
27111        &mut self,
27112        node: &'ast Option<Box<ObjectLit>>,
27113        __ast_path: &mut AstNodePath<'r>,
27114    ) {
27115        match self {
27116            swc_visit::Either::Left(visitor) => {
27117                VisitAstPath::visit_opt_object_lit(visitor, node, __ast_path)
27118            }
27119            swc_visit::Either::Right(visitor) => {
27120                VisitAstPath::visit_opt_object_lit(visitor, node, __ast_path)
27121            }
27122        }
27123    }
27124
27125    #[inline]
27126    fn visit_opt_pat<'ast: 'r, 'r>(
27127        &mut self,
27128        node: &'ast Option<Pat>,
27129        __ast_path: &mut AstNodePath<'r>,
27130    ) {
27131        match self {
27132            swc_visit::Either::Left(visitor) => {
27133                VisitAstPath::visit_opt_pat(visitor, node, __ast_path)
27134            }
27135            swc_visit::Either::Right(visitor) => {
27136                VisitAstPath::visit_opt_pat(visitor, node, __ast_path)
27137            }
27138        }
27139    }
27140
27141    #[inline]
27142    fn visit_opt_span<'ast: 'r, 'r>(
27143        &mut self,
27144        node: &'ast Option<swc_common::Span>,
27145        __ast_path: &mut AstNodePath<'r>,
27146    ) {
27147        match self {
27148            swc_visit::Either::Left(visitor) => {
27149                VisitAstPath::visit_opt_span(visitor, node, __ast_path)
27150            }
27151            swc_visit::Either::Right(visitor) => {
27152                VisitAstPath::visit_opt_span(visitor, node, __ast_path)
27153            }
27154        }
27155    }
27156
27157    #[inline]
27158    fn visit_opt_stmt<'ast: 'r, 'r>(
27159        &mut self,
27160        node: &'ast Option<Box<Stmt>>,
27161        __ast_path: &mut AstNodePath<'r>,
27162    ) {
27163        match self {
27164            swc_visit::Either::Left(visitor) => {
27165                VisitAstPath::visit_opt_stmt(visitor, node, __ast_path)
27166            }
27167            swc_visit::Either::Right(visitor) => {
27168                VisitAstPath::visit_opt_stmt(visitor, node, __ast_path)
27169            }
27170        }
27171    }
27172
27173    #[inline]
27174    fn visit_opt_str<'ast: 'r, 'r>(
27175        &mut self,
27176        node: &'ast Option<Box<Str>>,
27177        __ast_path: &mut AstNodePath<'r>,
27178    ) {
27179        match self {
27180            swc_visit::Either::Left(visitor) => {
27181                VisitAstPath::visit_opt_str(visitor, node, __ast_path)
27182            }
27183            swc_visit::Either::Right(visitor) => {
27184                VisitAstPath::visit_opt_str(visitor, node, __ast_path)
27185            }
27186        }
27187    }
27188
27189    #[inline]
27190    fn visit_opt_true_plus_minus<'ast: 'r, 'r>(
27191        &mut self,
27192        node: &'ast Option<TruePlusMinus>,
27193        __ast_path: &mut AstNodePath<'r>,
27194    ) {
27195        match self {
27196            swc_visit::Either::Left(visitor) => {
27197                VisitAstPath::visit_opt_true_plus_minus(visitor, node, __ast_path)
27198            }
27199            swc_visit::Either::Right(visitor) => {
27200                VisitAstPath::visit_opt_true_plus_minus(visitor, node, __ast_path)
27201            }
27202        }
27203    }
27204
27205    #[inline]
27206    fn visit_opt_ts_entity_name<'ast: 'r, 'r>(
27207        &mut self,
27208        node: &'ast Option<TsEntityName>,
27209        __ast_path: &mut AstNodePath<'r>,
27210    ) {
27211        match self {
27212            swc_visit::Either::Left(visitor) => {
27213                VisitAstPath::visit_opt_ts_entity_name(visitor, node, __ast_path)
27214            }
27215            swc_visit::Either::Right(visitor) => {
27216                VisitAstPath::visit_opt_ts_entity_name(visitor, node, __ast_path)
27217            }
27218        }
27219    }
27220
27221    #[inline]
27222    fn visit_opt_ts_import_call_options<'ast: 'r, 'r>(
27223        &mut self,
27224        node: &'ast Option<TsImportCallOptions>,
27225        __ast_path: &mut AstNodePath<'r>,
27226    ) {
27227        match self {
27228            swc_visit::Either::Left(visitor) => {
27229                VisitAstPath::visit_opt_ts_import_call_options(visitor, node, __ast_path)
27230            }
27231            swc_visit::Either::Right(visitor) => {
27232                VisitAstPath::visit_opt_ts_import_call_options(visitor, node, __ast_path)
27233            }
27234        }
27235    }
27236
27237    #[inline]
27238    fn visit_opt_ts_namespace_body<'ast: 'r, 'r>(
27239        &mut self,
27240        node: &'ast Option<TsNamespaceBody>,
27241        __ast_path: &mut AstNodePath<'r>,
27242    ) {
27243        match self {
27244            swc_visit::Either::Left(visitor) => {
27245                VisitAstPath::visit_opt_ts_namespace_body(visitor, node, __ast_path)
27246            }
27247            swc_visit::Either::Right(visitor) => {
27248                VisitAstPath::visit_opt_ts_namespace_body(visitor, node, __ast_path)
27249            }
27250        }
27251    }
27252
27253    #[inline]
27254    fn visit_opt_ts_type<'ast: 'r, 'r>(
27255        &mut self,
27256        node: &'ast Option<Box<TsType>>,
27257        __ast_path: &mut AstNodePath<'r>,
27258    ) {
27259        match self {
27260            swc_visit::Either::Left(visitor) => {
27261                VisitAstPath::visit_opt_ts_type(visitor, node, __ast_path)
27262            }
27263            swc_visit::Either::Right(visitor) => {
27264                VisitAstPath::visit_opt_ts_type(visitor, node, __ast_path)
27265            }
27266        }
27267    }
27268
27269    #[inline]
27270    fn visit_opt_ts_type_ann<'ast: 'r, 'r>(
27271        &mut self,
27272        node: &'ast Option<Box<TsTypeAnn>>,
27273        __ast_path: &mut AstNodePath<'r>,
27274    ) {
27275        match self {
27276            swc_visit::Either::Left(visitor) => {
27277                VisitAstPath::visit_opt_ts_type_ann(visitor, node, __ast_path)
27278            }
27279            swc_visit::Either::Right(visitor) => {
27280                VisitAstPath::visit_opt_ts_type_ann(visitor, node, __ast_path)
27281            }
27282        }
27283    }
27284
27285    #[inline]
27286    fn visit_opt_ts_type_param_decl<'ast: 'r, 'r>(
27287        &mut self,
27288        node: &'ast Option<Box<TsTypeParamDecl>>,
27289        __ast_path: &mut AstNodePath<'r>,
27290    ) {
27291        match self {
27292            swc_visit::Either::Left(visitor) => {
27293                VisitAstPath::visit_opt_ts_type_param_decl(visitor, node, __ast_path)
27294            }
27295            swc_visit::Either::Right(visitor) => {
27296                VisitAstPath::visit_opt_ts_type_param_decl(visitor, node, __ast_path)
27297            }
27298        }
27299    }
27300
27301    #[inline]
27302    fn visit_opt_ts_type_param_instantiation<'ast: 'r, 'r>(
27303        &mut self,
27304        node: &'ast Option<Box<TsTypeParamInstantiation>>,
27305        __ast_path: &mut AstNodePath<'r>,
27306    ) {
27307        match self {
27308            swc_visit::Either::Left(visitor) => {
27309                VisitAstPath::visit_opt_ts_type_param_instantiation(visitor, node, __ast_path)
27310            }
27311            swc_visit::Either::Right(visitor) => {
27312                VisitAstPath::visit_opt_ts_type_param_instantiation(visitor, node, __ast_path)
27313            }
27314        }
27315    }
27316
27317    #[inline]
27318    fn visit_opt_var_decl_or_expr<'ast: 'r, 'r>(
27319        &mut self,
27320        node: &'ast Option<VarDeclOrExpr>,
27321        __ast_path: &mut AstNodePath<'r>,
27322    ) {
27323        match self {
27324            swc_visit::Either::Left(visitor) => {
27325                VisitAstPath::visit_opt_var_decl_or_expr(visitor, node, __ast_path)
27326            }
27327            swc_visit::Either::Right(visitor) => {
27328                VisitAstPath::visit_opt_var_decl_or_expr(visitor, node, __ast_path)
27329            }
27330        }
27331    }
27332
27333    #[inline]
27334    fn visit_opt_vec_expr_or_spreads<'ast: 'r, 'r>(
27335        &mut self,
27336        node: &'ast [Option<ExprOrSpread>],
27337        __ast_path: &mut AstNodePath<'r>,
27338    ) {
27339        match self {
27340            swc_visit::Either::Left(visitor) => {
27341                VisitAstPath::visit_opt_vec_expr_or_spreads(visitor, node, __ast_path)
27342            }
27343            swc_visit::Either::Right(visitor) => {
27344                VisitAstPath::visit_opt_vec_expr_or_spreads(visitor, node, __ast_path)
27345            }
27346        }
27347    }
27348
27349    #[inline]
27350    fn visit_opt_vec_pats<'ast: 'r, 'r>(
27351        &mut self,
27352        node: &'ast [Option<Pat>],
27353        __ast_path: &mut AstNodePath<'r>,
27354    ) {
27355        match self {
27356            swc_visit::Either::Left(visitor) => {
27357                VisitAstPath::visit_opt_vec_pats(visitor, node, __ast_path)
27358            }
27359            swc_visit::Either::Right(visitor) => {
27360                VisitAstPath::visit_opt_vec_pats(visitor, node, __ast_path)
27361            }
27362        }
27363    }
27364
27365    #[inline]
27366    fn visit_param<'ast: 'r, 'r>(&mut self, node: &'ast Param, __ast_path: &mut AstNodePath<'r>) {
27367        match self {
27368            swc_visit::Either::Left(visitor) => {
27369                VisitAstPath::visit_param(visitor, node, __ast_path)
27370            }
27371            swc_visit::Either::Right(visitor) => {
27372                VisitAstPath::visit_param(visitor, node, __ast_path)
27373            }
27374        }
27375    }
27376
27377    #[inline]
27378    fn visit_param_or_ts_param_prop<'ast: 'r, 'r>(
27379        &mut self,
27380        node: &'ast ParamOrTsParamProp,
27381        __ast_path: &mut AstNodePath<'r>,
27382    ) {
27383        match self {
27384            swc_visit::Either::Left(visitor) => {
27385                VisitAstPath::visit_param_or_ts_param_prop(visitor, node, __ast_path)
27386            }
27387            swc_visit::Either::Right(visitor) => {
27388                VisitAstPath::visit_param_or_ts_param_prop(visitor, node, __ast_path)
27389            }
27390        }
27391    }
27392
27393    #[inline]
27394    fn visit_param_or_ts_param_props<'ast: 'r, 'r>(
27395        &mut self,
27396        node: &'ast [ParamOrTsParamProp],
27397        __ast_path: &mut AstNodePath<'r>,
27398    ) {
27399        match self {
27400            swc_visit::Either::Left(visitor) => {
27401                VisitAstPath::visit_param_or_ts_param_props(visitor, node, __ast_path)
27402            }
27403            swc_visit::Either::Right(visitor) => {
27404                VisitAstPath::visit_param_or_ts_param_props(visitor, node, __ast_path)
27405            }
27406        }
27407    }
27408
27409    #[inline]
27410    fn visit_params<'ast: 'r, 'r>(
27411        &mut self,
27412        node: &'ast [Param],
27413        __ast_path: &mut AstNodePath<'r>,
27414    ) {
27415        match self {
27416            swc_visit::Either::Left(visitor) => {
27417                VisitAstPath::visit_params(visitor, node, __ast_path)
27418            }
27419            swc_visit::Either::Right(visitor) => {
27420                VisitAstPath::visit_params(visitor, node, __ast_path)
27421            }
27422        }
27423    }
27424
27425    #[inline]
27426    fn visit_paren_expr<'ast: 'r, 'r>(
27427        &mut self,
27428        node: &'ast ParenExpr,
27429        __ast_path: &mut AstNodePath<'r>,
27430    ) {
27431        match self {
27432            swc_visit::Either::Left(visitor) => {
27433                VisitAstPath::visit_paren_expr(visitor, node, __ast_path)
27434            }
27435            swc_visit::Either::Right(visitor) => {
27436                VisitAstPath::visit_paren_expr(visitor, node, __ast_path)
27437            }
27438        }
27439    }
27440
27441    #[inline]
27442    fn visit_pat<'ast: 'r, 'r>(&mut self, node: &'ast Pat, __ast_path: &mut AstNodePath<'r>) {
27443        match self {
27444            swc_visit::Either::Left(visitor) => VisitAstPath::visit_pat(visitor, node, __ast_path),
27445            swc_visit::Either::Right(visitor) => VisitAstPath::visit_pat(visitor, node, __ast_path),
27446        }
27447    }
27448
27449    #[inline]
27450    fn visit_pats<'ast: 'r, 'r>(&mut self, node: &'ast [Pat], __ast_path: &mut AstNodePath<'r>) {
27451        match self {
27452            swc_visit::Either::Left(visitor) => VisitAstPath::visit_pats(visitor, node, __ast_path),
27453            swc_visit::Either::Right(visitor) => {
27454                VisitAstPath::visit_pats(visitor, node, __ast_path)
27455            }
27456        }
27457    }
27458
27459    #[inline]
27460    fn visit_private_method<'ast: 'r, 'r>(
27461        &mut self,
27462        node: &'ast PrivateMethod,
27463        __ast_path: &mut AstNodePath<'r>,
27464    ) {
27465        match self {
27466            swc_visit::Either::Left(visitor) => {
27467                VisitAstPath::visit_private_method(visitor, node, __ast_path)
27468            }
27469            swc_visit::Either::Right(visitor) => {
27470                VisitAstPath::visit_private_method(visitor, node, __ast_path)
27471            }
27472        }
27473    }
27474
27475    #[inline]
27476    fn visit_private_name<'ast: 'r, 'r>(
27477        &mut self,
27478        node: &'ast PrivateName,
27479        __ast_path: &mut AstNodePath<'r>,
27480    ) {
27481        match self {
27482            swc_visit::Either::Left(visitor) => {
27483                VisitAstPath::visit_private_name(visitor, node, __ast_path)
27484            }
27485            swc_visit::Either::Right(visitor) => {
27486                VisitAstPath::visit_private_name(visitor, node, __ast_path)
27487            }
27488        }
27489    }
27490
27491    #[inline]
27492    fn visit_private_prop<'ast: 'r, 'r>(
27493        &mut self,
27494        node: &'ast PrivateProp,
27495        __ast_path: &mut AstNodePath<'r>,
27496    ) {
27497        match self {
27498            swc_visit::Either::Left(visitor) => {
27499                VisitAstPath::visit_private_prop(visitor, node, __ast_path)
27500            }
27501            swc_visit::Either::Right(visitor) => {
27502                VisitAstPath::visit_private_prop(visitor, node, __ast_path)
27503            }
27504        }
27505    }
27506
27507    #[inline]
27508    fn visit_program<'ast: 'r, 'r>(
27509        &mut self,
27510        node: &'ast Program,
27511        __ast_path: &mut AstNodePath<'r>,
27512    ) {
27513        match self {
27514            swc_visit::Either::Left(visitor) => {
27515                VisitAstPath::visit_program(visitor, node, __ast_path)
27516            }
27517            swc_visit::Either::Right(visitor) => {
27518                VisitAstPath::visit_program(visitor, node, __ast_path)
27519            }
27520        }
27521    }
27522
27523    #[inline]
27524    fn visit_prop<'ast: 'r, 'r>(&mut self, node: &'ast Prop, __ast_path: &mut AstNodePath<'r>) {
27525        match self {
27526            swc_visit::Either::Left(visitor) => VisitAstPath::visit_prop(visitor, node, __ast_path),
27527            swc_visit::Either::Right(visitor) => {
27528                VisitAstPath::visit_prop(visitor, node, __ast_path)
27529            }
27530        }
27531    }
27532
27533    #[inline]
27534    fn visit_prop_name<'ast: 'r, 'r>(
27535        &mut self,
27536        node: &'ast PropName,
27537        __ast_path: &mut AstNodePath<'r>,
27538    ) {
27539        match self {
27540            swc_visit::Either::Left(visitor) => {
27541                VisitAstPath::visit_prop_name(visitor, node, __ast_path)
27542            }
27543            swc_visit::Either::Right(visitor) => {
27544                VisitAstPath::visit_prop_name(visitor, node, __ast_path)
27545            }
27546        }
27547    }
27548
27549    #[inline]
27550    fn visit_prop_or_spread<'ast: 'r, 'r>(
27551        &mut self,
27552        node: &'ast PropOrSpread,
27553        __ast_path: &mut AstNodePath<'r>,
27554    ) {
27555        match self {
27556            swc_visit::Either::Left(visitor) => {
27557                VisitAstPath::visit_prop_or_spread(visitor, node, __ast_path)
27558            }
27559            swc_visit::Either::Right(visitor) => {
27560                VisitAstPath::visit_prop_or_spread(visitor, node, __ast_path)
27561            }
27562        }
27563    }
27564
27565    #[inline]
27566    fn visit_prop_or_spreads<'ast: 'r, 'r>(
27567        &mut self,
27568        node: &'ast [PropOrSpread],
27569        __ast_path: &mut AstNodePath<'r>,
27570    ) {
27571        match self {
27572            swc_visit::Either::Left(visitor) => {
27573                VisitAstPath::visit_prop_or_spreads(visitor, node, __ast_path)
27574            }
27575            swc_visit::Either::Right(visitor) => {
27576                VisitAstPath::visit_prop_or_spreads(visitor, node, __ast_path)
27577            }
27578        }
27579    }
27580
27581    #[inline]
27582    fn visit_regex<'ast: 'r, 'r>(&mut self, node: &'ast Regex, __ast_path: &mut AstNodePath<'r>) {
27583        match self {
27584            swc_visit::Either::Left(visitor) => {
27585                VisitAstPath::visit_regex(visitor, node, __ast_path)
27586            }
27587            swc_visit::Either::Right(visitor) => {
27588                VisitAstPath::visit_regex(visitor, node, __ast_path)
27589            }
27590        }
27591    }
27592
27593    #[inline]
27594    fn visit_rest_pat<'ast: 'r, 'r>(
27595        &mut self,
27596        node: &'ast RestPat,
27597        __ast_path: &mut AstNodePath<'r>,
27598    ) {
27599        match self {
27600            swc_visit::Either::Left(visitor) => {
27601                VisitAstPath::visit_rest_pat(visitor, node, __ast_path)
27602            }
27603            swc_visit::Either::Right(visitor) => {
27604                VisitAstPath::visit_rest_pat(visitor, node, __ast_path)
27605            }
27606        }
27607    }
27608
27609    #[inline]
27610    fn visit_return_stmt<'ast: 'r, 'r>(
27611        &mut self,
27612        node: &'ast ReturnStmt,
27613        __ast_path: &mut AstNodePath<'r>,
27614    ) {
27615        match self {
27616            swc_visit::Either::Left(visitor) => {
27617                VisitAstPath::visit_return_stmt(visitor, node, __ast_path)
27618            }
27619            swc_visit::Either::Right(visitor) => {
27620                VisitAstPath::visit_return_stmt(visitor, node, __ast_path)
27621            }
27622        }
27623    }
27624
27625    #[inline]
27626    fn visit_script<'ast: 'r, 'r>(&mut self, node: &'ast Script, __ast_path: &mut AstNodePath<'r>) {
27627        match self {
27628            swc_visit::Either::Left(visitor) => {
27629                VisitAstPath::visit_script(visitor, node, __ast_path)
27630            }
27631            swc_visit::Either::Right(visitor) => {
27632                VisitAstPath::visit_script(visitor, node, __ast_path)
27633            }
27634        }
27635    }
27636
27637    #[inline]
27638    fn visit_seq_expr<'ast: 'r, 'r>(
27639        &mut self,
27640        node: &'ast SeqExpr,
27641        __ast_path: &mut AstNodePath<'r>,
27642    ) {
27643        match self {
27644            swc_visit::Either::Left(visitor) => {
27645                VisitAstPath::visit_seq_expr(visitor, node, __ast_path)
27646            }
27647            swc_visit::Either::Right(visitor) => {
27648                VisitAstPath::visit_seq_expr(visitor, node, __ast_path)
27649            }
27650        }
27651    }
27652
27653    #[inline]
27654    fn visit_setter_prop<'ast: 'r, 'r>(
27655        &mut self,
27656        node: &'ast SetterProp,
27657        __ast_path: &mut AstNodePath<'r>,
27658    ) {
27659        match self {
27660            swc_visit::Either::Left(visitor) => {
27661                VisitAstPath::visit_setter_prop(visitor, node, __ast_path)
27662            }
27663            swc_visit::Either::Right(visitor) => {
27664                VisitAstPath::visit_setter_prop(visitor, node, __ast_path)
27665            }
27666        }
27667    }
27668
27669    #[inline]
27670    fn visit_simple_assign_target<'ast: 'r, 'r>(
27671        &mut self,
27672        node: &'ast SimpleAssignTarget,
27673        __ast_path: &mut AstNodePath<'r>,
27674    ) {
27675        match self {
27676            swc_visit::Either::Left(visitor) => {
27677                VisitAstPath::visit_simple_assign_target(visitor, node, __ast_path)
27678            }
27679            swc_visit::Either::Right(visitor) => {
27680                VisitAstPath::visit_simple_assign_target(visitor, node, __ast_path)
27681            }
27682        }
27683    }
27684
27685    #[inline]
27686    fn visit_span<'ast: 'r, 'r>(
27687        &mut self,
27688        node: &'ast swc_common::Span,
27689        __ast_path: &mut AstNodePath<'r>,
27690    ) {
27691        match self {
27692            swc_visit::Either::Left(visitor) => VisitAstPath::visit_span(visitor, node, __ast_path),
27693            swc_visit::Either::Right(visitor) => {
27694                VisitAstPath::visit_span(visitor, node, __ast_path)
27695            }
27696        }
27697    }
27698
27699    #[inline]
27700    fn visit_spread_element<'ast: 'r, 'r>(
27701        &mut self,
27702        node: &'ast SpreadElement,
27703        __ast_path: &mut AstNodePath<'r>,
27704    ) {
27705        match self {
27706            swc_visit::Either::Left(visitor) => {
27707                VisitAstPath::visit_spread_element(visitor, node, __ast_path)
27708            }
27709            swc_visit::Either::Right(visitor) => {
27710                VisitAstPath::visit_spread_element(visitor, node, __ast_path)
27711            }
27712        }
27713    }
27714
27715    #[inline]
27716    fn visit_static_block<'ast: 'r, 'r>(
27717        &mut self,
27718        node: &'ast StaticBlock,
27719        __ast_path: &mut AstNodePath<'r>,
27720    ) {
27721        match self {
27722            swc_visit::Either::Left(visitor) => {
27723                VisitAstPath::visit_static_block(visitor, node, __ast_path)
27724            }
27725            swc_visit::Either::Right(visitor) => {
27726                VisitAstPath::visit_static_block(visitor, node, __ast_path)
27727            }
27728        }
27729    }
27730
27731    #[inline]
27732    fn visit_stmt<'ast: 'r, 'r>(&mut self, node: &'ast Stmt, __ast_path: &mut AstNodePath<'r>) {
27733        match self {
27734            swc_visit::Either::Left(visitor) => VisitAstPath::visit_stmt(visitor, node, __ast_path),
27735            swc_visit::Either::Right(visitor) => {
27736                VisitAstPath::visit_stmt(visitor, node, __ast_path)
27737            }
27738        }
27739    }
27740
27741    #[inline]
27742    fn visit_stmts<'ast: 'r, 'r>(&mut self, node: &'ast [Stmt], __ast_path: &mut AstNodePath<'r>) {
27743        match self {
27744            swc_visit::Either::Left(visitor) => {
27745                VisitAstPath::visit_stmts(visitor, node, __ast_path)
27746            }
27747            swc_visit::Either::Right(visitor) => {
27748                VisitAstPath::visit_stmts(visitor, node, __ast_path)
27749            }
27750        }
27751    }
27752
27753    #[inline]
27754    fn visit_str<'ast: 'r, 'r>(&mut self, node: &'ast Str, __ast_path: &mut AstNodePath<'r>) {
27755        match self {
27756            swc_visit::Either::Left(visitor) => VisitAstPath::visit_str(visitor, node, __ast_path),
27757            swc_visit::Either::Right(visitor) => VisitAstPath::visit_str(visitor, node, __ast_path),
27758        }
27759    }
27760
27761    #[inline]
27762    fn visit_super<'ast: 'r, 'r>(&mut self, node: &'ast Super, __ast_path: &mut AstNodePath<'r>) {
27763        match self {
27764            swc_visit::Either::Left(visitor) => {
27765                VisitAstPath::visit_super(visitor, node, __ast_path)
27766            }
27767            swc_visit::Either::Right(visitor) => {
27768                VisitAstPath::visit_super(visitor, node, __ast_path)
27769            }
27770        }
27771    }
27772
27773    #[inline]
27774    fn visit_super_prop<'ast: 'r, 'r>(
27775        &mut self,
27776        node: &'ast SuperProp,
27777        __ast_path: &mut AstNodePath<'r>,
27778    ) {
27779        match self {
27780            swc_visit::Either::Left(visitor) => {
27781                VisitAstPath::visit_super_prop(visitor, node, __ast_path)
27782            }
27783            swc_visit::Either::Right(visitor) => {
27784                VisitAstPath::visit_super_prop(visitor, node, __ast_path)
27785            }
27786        }
27787    }
27788
27789    #[inline]
27790    fn visit_super_prop_expr<'ast: 'r, 'r>(
27791        &mut self,
27792        node: &'ast SuperPropExpr,
27793        __ast_path: &mut AstNodePath<'r>,
27794    ) {
27795        match self {
27796            swc_visit::Either::Left(visitor) => {
27797                VisitAstPath::visit_super_prop_expr(visitor, node, __ast_path)
27798            }
27799            swc_visit::Either::Right(visitor) => {
27800                VisitAstPath::visit_super_prop_expr(visitor, node, __ast_path)
27801            }
27802        }
27803    }
27804
27805    #[inline]
27806    fn visit_switch_case<'ast: 'r, 'r>(
27807        &mut self,
27808        node: &'ast SwitchCase,
27809        __ast_path: &mut AstNodePath<'r>,
27810    ) {
27811        match self {
27812            swc_visit::Either::Left(visitor) => {
27813                VisitAstPath::visit_switch_case(visitor, node, __ast_path)
27814            }
27815            swc_visit::Either::Right(visitor) => {
27816                VisitAstPath::visit_switch_case(visitor, node, __ast_path)
27817            }
27818        }
27819    }
27820
27821    #[inline]
27822    fn visit_switch_cases<'ast: 'r, 'r>(
27823        &mut self,
27824        node: &'ast [SwitchCase],
27825        __ast_path: &mut AstNodePath<'r>,
27826    ) {
27827        match self {
27828            swc_visit::Either::Left(visitor) => {
27829                VisitAstPath::visit_switch_cases(visitor, node, __ast_path)
27830            }
27831            swc_visit::Either::Right(visitor) => {
27832                VisitAstPath::visit_switch_cases(visitor, node, __ast_path)
27833            }
27834        }
27835    }
27836
27837    #[inline]
27838    fn visit_switch_stmt<'ast: 'r, 'r>(
27839        &mut self,
27840        node: &'ast SwitchStmt,
27841        __ast_path: &mut AstNodePath<'r>,
27842    ) {
27843        match self {
27844            swc_visit::Either::Left(visitor) => {
27845                VisitAstPath::visit_switch_stmt(visitor, node, __ast_path)
27846            }
27847            swc_visit::Either::Right(visitor) => {
27848                VisitAstPath::visit_switch_stmt(visitor, node, __ast_path)
27849            }
27850        }
27851    }
27852
27853    #[inline]
27854    fn visit_syntax_context<'ast: 'r, 'r>(
27855        &mut self,
27856        node: &'ast swc_common::SyntaxContext,
27857        __ast_path: &mut AstNodePath<'r>,
27858    ) {
27859        match self {
27860            swc_visit::Either::Left(visitor) => {
27861                VisitAstPath::visit_syntax_context(visitor, node, __ast_path)
27862            }
27863            swc_visit::Either::Right(visitor) => {
27864                VisitAstPath::visit_syntax_context(visitor, node, __ast_path)
27865            }
27866        }
27867    }
27868
27869    #[inline]
27870    fn visit_tagged_tpl<'ast: 'r, 'r>(
27871        &mut self,
27872        node: &'ast TaggedTpl,
27873        __ast_path: &mut AstNodePath<'r>,
27874    ) {
27875        match self {
27876            swc_visit::Either::Left(visitor) => {
27877                VisitAstPath::visit_tagged_tpl(visitor, node, __ast_path)
27878            }
27879            swc_visit::Either::Right(visitor) => {
27880                VisitAstPath::visit_tagged_tpl(visitor, node, __ast_path)
27881            }
27882        }
27883    }
27884
27885    #[inline]
27886    fn visit_this_expr<'ast: 'r, 'r>(
27887        &mut self,
27888        node: &'ast ThisExpr,
27889        __ast_path: &mut AstNodePath<'r>,
27890    ) {
27891        match self {
27892            swc_visit::Either::Left(visitor) => {
27893                VisitAstPath::visit_this_expr(visitor, node, __ast_path)
27894            }
27895            swc_visit::Either::Right(visitor) => {
27896                VisitAstPath::visit_this_expr(visitor, node, __ast_path)
27897            }
27898        }
27899    }
27900
27901    #[inline]
27902    fn visit_throw_stmt<'ast: 'r, 'r>(
27903        &mut self,
27904        node: &'ast ThrowStmt,
27905        __ast_path: &mut AstNodePath<'r>,
27906    ) {
27907        match self {
27908            swc_visit::Either::Left(visitor) => {
27909                VisitAstPath::visit_throw_stmt(visitor, node, __ast_path)
27910            }
27911            swc_visit::Either::Right(visitor) => {
27912                VisitAstPath::visit_throw_stmt(visitor, node, __ast_path)
27913            }
27914        }
27915    }
27916
27917    #[inline]
27918    fn visit_tpl<'ast: 'r, 'r>(&mut self, node: &'ast Tpl, __ast_path: &mut AstNodePath<'r>) {
27919        match self {
27920            swc_visit::Either::Left(visitor) => VisitAstPath::visit_tpl(visitor, node, __ast_path),
27921            swc_visit::Either::Right(visitor) => VisitAstPath::visit_tpl(visitor, node, __ast_path),
27922        }
27923    }
27924
27925    #[inline]
27926    fn visit_tpl_element<'ast: 'r, 'r>(
27927        &mut self,
27928        node: &'ast TplElement,
27929        __ast_path: &mut AstNodePath<'r>,
27930    ) {
27931        match self {
27932            swc_visit::Either::Left(visitor) => {
27933                VisitAstPath::visit_tpl_element(visitor, node, __ast_path)
27934            }
27935            swc_visit::Either::Right(visitor) => {
27936                VisitAstPath::visit_tpl_element(visitor, node, __ast_path)
27937            }
27938        }
27939    }
27940
27941    #[inline]
27942    fn visit_tpl_elements<'ast: 'r, 'r>(
27943        &mut self,
27944        node: &'ast [TplElement],
27945        __ast_path: &mut AstNodePath<'r>,
27946    ) {
27947        match self {
27948            swc_visit::Either::Left(visitor) => {
27949                VisitAstPath::visit_tpl_elements(visitor, node, __ast_path)
27950            }
27951            swc_visit::Either::Right(visitor) => {
27952                VisitAstPath::visit_tpl_elements(visitor, node, __ast_path)
27953            }
27954        }
27955    }
27956
27957    #[inline]
27958    fn visit_true_plus_minus<'ast: 'r, 'r>(
27959        &mut self,
27960        node: &'ast TruePlusMinus,
27961        __ast_path: &mut AstNodePath<'r>,
27962    ) {
27963        match self {
27964            swc_visit::Either::Left(visitor) => {
27965                VisitAstPath::visit_true_plus_minus(visitor, node, __ast_path)
27966            }
27967            swc_visit::Either::Right(visitor) => {
27968                VisitAstPath::visit_true_plus_minus(visitor, node, __ast_path)
27969            }
27970        }
27971    }
27972
27973    #[inline]
27974    fn visit_try_stmt<'ast: 'r, 'r>(
27975        &mut self,
27976        node: &'ast TryStmt,
27977        __ast_path: &mut AstNodePath<'r>,
27978    ) {
27979        match self {
27980            swc_visit::Either::Left(visitor) => {
27981                VisitAstPath::visit_try_stmt(visitor, node, __ast_path)
27982            }
27983            swc_visit::Either::Right(visitor) => {
27984                VisitAstPath::visit_try_stmt(visitor, node, __ast_path)
27985            }
27986        }
27987    }
27988
27989    #[inline]
27990    fn visit_ts_array_type<'ast: 'r, 'r>(
27991        &mut self,
27992        node: &'ast TsArrayType,
27993        __ast_path: &mut AstNodePath<'r>,
27994    ) {
27995        match self {
27996            swc_visit::Either::Left(visitor) => {
27997                VisitAstPath::visit_ts_array_type(visitor, node, __ast_path)
27998            }
27999            swc_visit::Either::Right(visitor) => {
28000                VisitAstPath::visit_ts_array_type(visitor, node, __ast_path)
28001            }
28002        }
28003    }
28004
28005    #[inline]
28006    fn visit_ts_as_expr<'ast: 'r, 'r>(
28007        &mut self,
28008        node: &'ast TsAsExpr,
28009        __ast_path: &mut AstNodePath<'r>,
28010    ) {
28011        match self {
28012            swc_visit::Either::Left(visitor) => {
28013                VisitAstPath::visit_ts_as_expr(visitor, node, __ast_path)
28014            }
28015            swc_visit::Either::Right(visitor) => {
28016                VisitAstPath::visit_ts_as_expr(visitor, node, __ast_path)
28017            }
28018        }
28019    }
28020
28021    #[inline]
28022    fn visit_ts_call_signature_decl<'ast: 'r, 'r>(
28023        &mut self,
28024        node: &'ast TsCallSignatureDecl,
28025        __ast_path: &mut AstNodePath<'r>,
28026    ) {
28027        match self {
28028            swc_visit::Either::Left(visitor) => {
28029                VisitAstPath::visit_ts_call_signature_decl(visitor, node, __ast_path)
28030            }
28031            swc_visit::Either::Right(visitor) => {
28032                VisitAstPath::visit_ts_call_signature_decl(visitor, node, __ast_path)
28033            }
28034        }
28035    }
28036
28037    #[inline]
28038    fn visit_ts_conditional_type<'ast: 'r, 'r>(
28039        &mut self,
28040        node: &'ast TsConditionalType,
28041        __ast_path: &mut AstNodePath<'r>,
28042    ) {
28043        match self {
28044            swc_visit::Either::Left(visitor) => {
28045                VisitAstPath::visit_ts_conditional_type(visitor, node, __ast_path)
28046            }
28047            swc_visit::Either::Right(visitor) => {
28048                VisitAstPath::visit_ts_conditional_type(visitor, node, __ast_path)
28049            }
28050        }
28051    }
28052
28053    #[inline]
28054    fn visit_ts_const_assertion<'ast: 'r, 'r>(
28055        &mut self,
28056        node: &'ast TsConstAssertion,
28057        __ast_path: &mut AstNodePath<'r>,
28058    ) {
28059        match self {
28060            swc_visit::Either::Left(visitor) => {
28061                VisitAstPath::visit_ts_const_assertion(visitor, node, __ast_path)
28062            }
28063            swc_visit::Either::Right(visitor) => {
28064                VisitAstPath::visit_ts_const_assertion(visitor, node, __ast_path)
28065            }
28066        }
28067    }
28068
28069    #[inline]
28070    fn visit_ts_construct_signature_decl<'ast: 'r, 'r>(
28071        &mut self,
28072        node: &'ast TsConstructSignatureDecl,
28073        __ast_path: &mut AstNodePath<'r>,
28074    ) {
28075        match self {
28076            swc_visit::Either::Left(visitor) => {
28077                VisitAstPath::visit_ts_construct_signature_decl(visitor, node, __ast_path)
28078            }
28079            swc_visit::Either::Right(visitor) => {
28080                VisitAstPath::visit_ts_construct_signature_decl(visitor, node, __ast_path)
28081            }
28082        }
28083    }
28084
28085    #[inline]
28086    fn visit_ts_constructor_type<'ast: 'r, 'r>(
28087        &mut self,
28088        node: &'ast TsConstructorType,
28089        __ast_path: &mut AstNodePath<'r>,
28090    ) {
28091        match self {
28092            swc_visit::Either::Left(visitor) => {
28093                VisitAstPath::visit_ts_constructor_type(visitor, node, __ast_path)
28094            }
28095            swc_visit::Either::Right(visitor) => {
28096                VisitAstPath::visit_ts_constructor_type(visitor, node, __ast_path)
28097            }
28098        }
28099    }
28100
28101    #[inline]
28102    fn visit_ts_entity_name<'ast: 'r, 'r>(
28103        &mut self,
28104        node: &'ast TsEntityName,
28105        __ast_path: &mut AstNodePath<'r>,
28106    ) {
28107        match self {
28108            swc_visit::Either::Left(visitor) => {
28109                VisitAstPath::visit_ts_entity_name(visitor, node, __ast_path)
28110            }
28111            swc_visit::Either::Right(visitor) => {
28112                VisitAstPath::visit_ts_entity_name(visitor, node, __ast_path)
28113            }
28114        }
28115    }
28116
28117    #[inline]
28118    fn visit_ts_enum_decl<'ast: 'r, 'r>(
28119        &mut self,
28120        node: &'ast TsEnumDecl,
28121        __ast_path: &mut AstNodePath<'r>,
28122    ) {
28123        match self {
28124            swc_visit::Either::Left(visitor) => {
28125                VisitAstPath::visit_ts_enum_decl(visitor, node, __ast_path)
28126            }
28127            swc_visit::Either::Right(visitor) => {
28128                VisitAstPath::visit_ts_enum_decl(visitor, node, __ast_path)
28129            }
28130        }
28131    }
28132
28133    #[inline]
28134    fn visit_ts_enum_member<'ast: 'r, 'r>(
28135        &mut self,
28136        node: &'ast TsEnumMember,
28137        __ast_path: &mut AstNodePath<'r>,
28138    ) {
28139        match self {
28140            swc_visit::Either::Left(visitor) => {
28141                VisitAstPath::visit_ts_enum_member(visitor, node, __ast_path)
28142            }
28143            swc_visit::Either::Right(visitor) => {
28144                VisitAstPath::visit_ts_enum_member(visitor, node, __ast_path)
28145            }
28146        }
28147    }
28148
28149    #[inline]
28150    fn visit_ts_enum_member_id<'ast: 'r, 'r>(
28151        &mut self,
28152        node: &'ast TsEnumMemberId,
28153        __ast_path: &mut AstNodePath<'r>,
28154    ) {
28155        match self {
28156            swc_visit::Either::Left(visitor) => {
28157                VisitAstPath::visit_ts_enum_member_id(visitor, node, __ast_path)
28158            }
28159            swc_visit::Either::Right(visitor) => {
28160                VisitAstPath::visit_ts_enum_member_id(visitor, node, __ast_path)
28161            }
28162        }
28163    }
28164
28165    #[inline]
28166    fn visit_ts_enum_members<'ast: 'r, 'r>(
28167        &mut self,
28168        node: &'ast [TsEnumMember],
28169        __ast_path: &mut AstNodePath<'r>,
28170    ) {
28171        match self {
28172            swc_visit::Either::Left(visitor) => {
28173                VisitAstPath::visit_ts_enum_members(visitor, node, __ast_path)
28174            }
28175            swc_visit::Either::Right(visitor) => {
28176                VisitAstPath::visit_ts_enum_members(visitor, node, __ast_path)
28177            }
28178        }
28179    }
28180
28181    #[inline]
28182    fn visit_ts_export_assignment<'ast: 'r, 'r>(
28183        &mut self,
28184        node: &'ast TsExportAssignment,
28185        __ast_path: &mut AstNodePath<'r>,
28186    ) {
28187        match self {
28188            swc_visit::Either::Left(visitor) => {
28189                VisitAstPath::visit_ts_export_assignment(visitor, node, __ast_path)
28190            }
28191            swc_visit::Either::Right(visitor) => {
28192                VisitAstPath::visit_ts_export_assignment(visitor, node, __ast_path)
28193            }
28194        }
28195    }
28196
28197    #[inline]
28198    fn visit_ts_expr_with_type_args<'ast: 'r, 'r>(
28199        &mut self,
28200        node: &'ast TsExprWithTypeArgs,
28201        __ast_path: &mut AstNodePath<'r>,
28202    ) {
28203        match self {
28204            swc_visit::Either::Left(visitor) => {
28205                VisitAstPath::visit_ts_expr_with_type_args(visitor, node, __ast_path)
28206            }
28207            swc_visit::Either::Right(visitor) => {
28208                VisitAstPath::visit_ts_expr_with_type_args(visitor, node, __ast_path)
28209            }
28210        }
28211    }
28212
28213    #[inline]
28214    fn visit_ts_expr_with_type_argss<'ast: 'r, 'r>(
28215        &mut self,
28216        node: &'ast [TsExprWithTypeArgs],
28217        __ast_path: &mut AstNodePath<'r>,
28218    ) {
28219        match self {
28220            swc_visit::Either::Left(visitor) => {
28221                VisitAstPath::visit_ts_expr_with_type_argss(visitor, node, __ast_path)
28222            }
28223            swc_visit::Either::Right(visitor) => {
28224                VisitAstPath::visit_ts_expr_with_type_argss(visitor, node, __ast_path)
28225            }
28226        }
28227    }
28228
28229    #[inline]
28230    fn visit_ts_external_module_ref<'ast: 'r, 'r>(
28231        &mut self,
28232        node: &'ast TsExternalModuleRef,
28233        __ast_path: &mut AstNodePath<'r>,
28234    ) {
28235        match self {
28236            swc_visit::Either::Left(visitor) => {
28237                VisitAstPath::visit_ts_external_module_ref(visitor, node, __ast_path)
28238            }
28239            swc_visit::Either::Right(visitor) => {
28240                VisitAstPath::visit_ts_external_module_ref(visitor, node, __ast_path)
28241            }
28242        }
28243    }
28244
28245    #[inline]
28246    fn visit_ts_fn_or_constructor_type<'ast: 'r, 'r>(
28247        &mut self,
28248        node: &'ast TsFnOrConstructorType,
28249        __ast_path: &mut AstNodePath<'r>,
28250    ) {
28251        match self {
28252            swc_visit::Either::Left(visitor) => {
28253                VisitAstPath::visit_ts_fn_or_constructor_type(visitor, node, __ast_path)
28254            }
28255            swc_visit::Either::Right(visitor) => {
28256                VisitAstPath::visit_ts_fn_or_constructor_type(visitor, node, __ast_path)
28257            }
28258        }
28259    }
28260
28261    #[inline]
28262    fn visit_ts_fn_param<'ast: 'r, 'r>(
28263        &mut self,
28264        node: &'ast TsFnParam,
28265        __ast_path: &mut AstNodePath<'r>,
28266    ) {
28267        match self {
28268            swc_visit::Either::Left(visitor) => {
28269                VisitAstPath::visit_ts_fn_param(visitor, node, __ast_path)
28270            }
28271            swc_visit::Either::Right(visitor) => {
28272                VisitAstPath::visit_ts_fn_param(visitor, node, __ast_path)
28273            }
28274        }
28275    }
28276
28277    #[inline]
28278    fn visit_ts_fn_params<'ast: 'r, 'r>(
28279        &mut self,
28280        node: &'ast [TsFnParam],
28281        __ast_path: &mut AstNodePath<'r>,
28282    ) {
28283        match self {
28284            swc_visit::Either::Left(visitor) => {
28285                VisitAstPath::visit_ts_fn_params(visitor, node, __ast_path)
28286            }
28287            swc_visit::Either::Right(visitor) => {
28288                VisitAstPath::visit_ts_fn_params(visitor, node, __ast_path)
28289            }
28290        }
28291    }
28292
28293    #[inline]
28294    fn visit_ts_fn_type<'ast: 'r, 'r>(
28295        &mut self,
28296        node: &'ast TsFnType,
28297        __ast_path: &mut AstNodePath<'r>,
28298    ) {
28299        match self {
28300            swc_visit::Either::Left(visitor) => {
28301                VisitAstPath::visit_ts_fn_type(visitor, node, __ast_path)
28302            }
28303            swc_visit::Either::Right(visitor) => {
28304                VisitAstPath::visit_ts_fn_type(visitor, node, __ast_path)
28305            }
28306        }
28307    }
28308
28309    #[inline]
28310    fn visit_ts_getter_signature<'ast: 'r, 'r>(
28311        &mut self,
28312        node: &'ast TsGetterSignature,
28313        __ast_path: &mut AstNodePath<'r>,
28314    ) {
28315        match self {
28316            swc_visit::Either::Left(visitor) => {
28317                VisitAstPath::visit_ts_getter_signature(visitor, node, __ast_path)
28318            }
28319            swc_visit::Either::Right(visitor) => {
28320                VisitAstPath::visit_ts_getter_signature(visitor, node, __ast_path)
28321            }
28322        }
28323    }
28324
28325    #[inline]
28326    fn visit_ts_import_call_options<'ast: 'r, 'r>(
28327        &mut self,
28328        node: &'ast TsImportCallOptions,
28329        __ast_path: &mut AstNodePath<'r>,
28330    ) {
28331        match self {
28332            swc_visit::Either::Left(visitor) => {
28333                VisitAstPath::visit_ts_import_call_options(visitor, node, __ast_path)
28334            }
28335            swc_visit::Either::Right(visitor) => {
28336                VisitAstPath::visit_ts_import_call_options(visitor, node, __ast_path)
28337            }
28338        }
28339    }
28340
28341    #[inline]
28342    fn visit_ts_import_equals_decl<'ast: 'r, 'r>(
28343        &mut self,
28344        node: &'ast TsImportEqualsDecl,
28345        __ast_path: &mut AstNodePath<'r>,
28346    ) {
28347        match self {
28348            swc_visit::Either::Left(visitor) => {
28349                VisitAstPath::visit_ts_import_equals_decl(visitor, node, __ast_path)
28350            }
28351            swc_visit::Either::Right(visitor) => {
28352                VisitAstPath::visit_ts_import_equals_decl(visitor, node, __ast_path)
28353            }
28354        }
28355    }
28356
28357    #[inline]
28358    fn visit_ts_import_type<'ast: 'r, 'r>(
28359        &mut self,
28360        node: &'ast TsImportType,
28361        __ast_path: &mut AstNodePath<'r>,
28362    ) {
28363        match self {
28364            swc_visit::Either::Left(visitor) => {
28365                VisitAstPath::visit_ts_import_type(visitor, node, __ast_path)
28366            }
28367            swc_visit::Either::Right(visitor) => {
28368                VisitAstPath::visit_ts_import_type(visitor, node, __ast_path)
28369            }
28370        }
28371    }
28372
28373    #[inline]
28374    fn visit_ts_index_signature<'ast: 'r, 'r>(
28375        &mut self,
28376        node: &'ast TsIndexSignature,
28377        __ast_path: &mut AstNodePath<'r>,
28378    ) {
28379        match self {
28380            swc_visit::Either::Left(visitor) => {
28381                VisitAstPath::visit_ts_index_signature(visitor, node, __ast_path)
28382            }
28383            swc_visit::Either::Right(visitor) => {
28384                VisitAstPath::visit_ts_index_signature(visitor, node, __ast_path)
28385            }
28386        }
28387    }
28388
28389    #[inline]
28390    fn visit_ts_indexed_access_type<'ast: 'r, 'r>(
28391        &mut self,
28392        node: &'ast TsIndexedAccessType,
28393        __ast_path: &mut AstNodePath<'r>,
28394    ) {
28395        match self {
28396            swc_visit::Either::Left(visitor) => {
28397                VisitAstPath::visit_ts_indexed_access_type(visitor, node, __ast_path)
28398            }
28399            swc_visit::Either::Right(visitor) => {
28400                VisitAstPath::visit_ts_indexed_access_type(visitor, node, __ast_path)
28401            }
28402        }
28403    }
28404
28405    #[inline]
28406    fn visit_ts_infer_type<'ast: 'r, 'r>(
28407        &mut self,
28408        node: &'ast TsInferType,
28409        __ast_path: &mut AstNodePath<'r>,
28410    ) {
28411        match self {
28412            swc_visit::Either::Left(visitor) => {
28413                VisitAstPath::visit_ts_infer_type(visitor, node, __ast_path)
28414            }
28415            swc_visit::Either::Right(visitor) => {
28416                VisitAstPath::visit_ts_infer_type(visitor, node, __ast_path)
28417            }
28418        }
28419    }
28420
28421    #[inline]
28422    fn visit_ts_instantiation<'ast: 'r, 'r>(
28423        &mut self,
28424        node: &'ast TsInstantiation,
28425        __ast_path: &mut AstNodePath<'r>,
28426    ) {
28427        match self {
28428            swc_visit::Either::Left(visitor) => {
28429                VisitAstPath::visit_ts_instantiation(visitor, node, __ast_path)
28430            }
28431            swc_visit::Either::Right(visitor) => {
28432                VisitAstPath::visit_ts_instantiation(visitor, node, __ast_path)
28433            }
28434        }
28435    }
28436
28437    #[inline]
28438    fn visit_ts_interface_body<'ast: 'r, 'r>(
28439        &mut self,
28440        node: &'ast TsInterfaceBody,
28441        __ast_path: &mut AstNodePath<'r>,
28442    ) {
28443        match self {
28444            swc_visit::Either::Left(visitor) => {
28445                VisitAstPath::visit_ts_interface_body(visitor, node, __ast_path)
28446            }
28447            swc_visit::Either::Right(visitor) => {
28448                VisitAstPath::visit_ts_interface_body(visitor, node, __ast_path)
28449            }
28450        }
28451    }
28452
28453    #[inline]
28454    fn visit_ts_interface_decl<'ast: 'r, 'r>(
28455        &mut self,
28456        node: &'ast TsInterfaceDecl,
28457        __ast_path: &mut AstNodePath<'r>,
28458    ) {
28459        match self {
28460            swc_visit::Either::Left(visitor) => {
28461                VisitAstPath::visit_ts_interface_decl(visitor, node, __ast_path)
28462            }
28463            swc_visit::Either::Right(visitor) => {
28464                VisitAstPath::visit_ts_interface_decl(visitor, node, __ast_path)
28465            }
28466        }
28467    }
28468
28469    #[inline]
28470    fn visit_ts_intersection_type<'ast: 'r, 'r>(
28471        &mut self,
28472        node: &'ast TsIntersectionType,
28473        __ast_path: &mut AstNodePath<'r>,
28474    ) {
28475        match self {
28476            swc_visit::Either::Left(visitor) => {
28477                VisitAstPath::visit_ts_intersection_type(visitor, node, __ast_path)
28478            }
28479            swc_visit::Either::Right(visitor) => {
28480                VisitAstPath::visit_ts_intersection_type(visitor, node, __ast_path)
28481            }
28482        }
28483    }
28484
28485    #[inline]
28486    fn visit_ts_keyword_type<'ast: 'r, 'r>(
28487        &mut self,
28488        node: &'ast TsKeywordType,
28489        __ast_path: &mut AstNodePath<'r>,
28490    ) {
28491        match self {
28492            swc_visit::Either::Left(visitor) => {
28493                VisitAstPath::visit_ts_keyword_type(visitor, node, __ast_path)
28494            }
28495            swc_visit::Either::Right(visitor) => {
28496                VisitAstPath::visit_ts_keyword_type(visitor, node, __ast_path)
28497            }
28498        }
28499    }
28500
28501    #[inline]
28502    fn visit_ts_keyword_type_kind<'ast: 'r, 'r>(
28503        &mut self,
28504        node: &'ast TsKeywordTypeKind,
28505        __ast_path: &mut AstNodePath<'r>,
28506    ) {
28507        match self {
28508            swc_visit::Either::Left(visitor) => {
28509                VisitAstPath::visit_ts_keyword_type_kind(visitor, node, __ast_path)
28510            }
28511            swc_visit::Either::Right(visitor) => {
28512                VisitAstPath::visit_ts_keyword_type_kind(visitor, node, __ast_path)
28513            }
28514        }
28515    }
28516
28517    #[inline]
28518    fn visit_ts_lit<'ast: 'r, 'r>(&mut self, node: &'ast TsLit, __ast_path: &mut AstNodePath<'r>) {
28519        match self {
28520            swc_visit::Either::Left(visitor) => {
28521                VisitAstPath::visit_ts_lit(visitor, node, __ast_path)
28522            }
28523            swc_visit::Either::Right(visitor) => {
28524                VisitAstPath::visit_ts_lit(visitor, node, __ast_path)
28525            }
28526        }
28527    }
28528
28529    #[inline]
28530    fn visit_ts_lit_type<'ast: 'r, 'r>(
28531        &mut self,
28532        node: &'ast TsLitType,
28533        __ast_path: &mut AstNodePath<'r>,
28534    ) {
28535        match self {
28536            swc_visit::Either::Left(visitor) => {
28537                VisitAstPath::visit_ts_lit_type(visitor, node, __ast_path)
28538            }
28539            swc_visit::Either::Right(visitor) => {
28540                VisitAstPath::visit_ts_lit_type(visitor, node, __ast_path)
28541            }
28542        }
28543    }
28544
28545    #[inline]
28546    fn visit_ts_mapped_type<'ast: 'r, 'r>(
28547        &mut self,
28548        node: &'ast TsMappedType,
28549        __ast_path: &mut AstNodePath<'r>,
28550    ) {
28551        match self {
28552            swc_visit::Either::Left(visitor) => {
28553                VisitAstPath::visit_ts_mapped_type(visitor, node, __ast_path)
28554            }
28555            swc_visit::Either::Right(visitor) => {
28556                VisitAstPath::visit_ts_mapped_type(visitor, node, __ast_path)
28557            }
28558        }
28559    }
28560
28561    #[inline]
28562    fn visit_ts_method_signature<'ast: 'r, 'r>(
28563        &mut self,
28564        node: &'ast TsMethodSignature,
28565        __ast_path: &mut AstNodePath<'r>,
28566    ) {
28567        match self {
28568            swc_visit::Either::Left(visitor) => {
28569                VisitAstPath::visit_ts_method_signature(visitor, node, __ast_path)
28570            }
28571            swc_visit::Either::Right(visitor) => {
28572                VisitAstPath::visit_ts_method_signature(visitor, node, __ast_path)
28573            }
28574        }
28575    }
28576
28577    #[inline]
28578    fn visit_ts_module_block<'ast: 'r, 'r>(
28579        &mut self,
28580        node: &'ast TsModuleBlock,
28581        __ast_path: &mut AstNodePath<'r>,
28582    ) {
28583        match self {
28584            swc_visit::Either::Left(visitor) => {
28585                VisitAstPath::visit_ts_module_block(visitor, node, __ast_path)
28586            }
28587            swc_visit::Either::Right(visitor) => {
28588                VisitAstPath::visit_ts_module_block(visitor, node, __ast_path)
28589            }
28590        }
28591    }
28592
28593    #[inline]
28594    fn visit_ts_module_decl<'ast: 'r, 'r>(
28595        &mut self,
28596        node: &'ast TsModuleDecl,
28597        __ast_path: &mut AstNodePath<'r>,
28598    ) {
28599        match self {
28600            swc_visit::Either::Left(visitor) => {
28601                VisitAstPath::visit_ts_module_decl(visitor, node, __ast_path)
28602            }
28603            swc_visit::Either::Right(visitor) => {
28604                VisitAstPath::visit_ts_module_decl(visitor, node, __ast_path)
28605            }
28606        }
28607    }
28608
28609    #[inline]
28610    fn visit_ts_module_name<'ast: 'r, 'r>(
28611        &mut self,
28612        node: &'ast TsModuleName,
28613        __ast_path: &mut AstNodePath<'r>,
28614    ) {
28615        match self {
28616            swc_visit::Either::Left(visitor) => {
28617                VisitAstPath::visit_ts_module_name(visitor, node, __ast_path)
28618            }
28619            swc_visit::Either::Right(visitor) => {
28620                VisitAstPath::visit_ts_module_name(visitor, node, __ast_path)
28621            }
28622        }
28623    }
28624
28625    #[inline]
28626    fn visit_ts_module_ref<'ast: 'r, 'r>(
28627        &mut self,
28628        node: &'ast TsModuleRef,
28629        __ast_path: &mut AstNodePath<'r>,
28630    ) {
28631        match self {
28632            swc_visit::Either::Left(visitor) => {
28633                VisitAstPath::visit_ts_module_ref(visitor, node, __ast_path)
28634            }
28635            swc_visit::Either::Right(visitor) => {
28636                VisitAstPath::visit_ts_module_ref(visitor, node, __ast_path)
28637            }
28638        }
28639    }
28640
28641    #[inline]
28642    fn visit_ts_namespace_body<'ast: 'r, 'r>(
28643        &mut self,
28644        node: &'ast TsNamespaceBody,
28645        __ast_path: &mut AstNodePath<'r>,
28646    ) {
28647        match self {
28648            swc_visit::Either::Left(visitor) => {
28649                VisitAstPath::visit_ts_namespace_body(visitor, node, __ast_path)
28650            }
28651            swc_visit::Either::Right(visitor) => {
28652                VisitAstPath::visit_ts_namespace_body(visitor, node, __ast_path)
28653            }
28654        }
28655    }
28656
28657    #[inline]
28658    fn visit_ts_namespace_decl<'ast: 'r, 'r>(
28659        &mut self,
28660        node: &'ast TsNamespaceDecl,
28661        __ast_path: &mut AstNodePath<'r>,
28662    ) {
28663        match self {
28664            swc_visit::Either::Left(visitor) => {
28665                VisitAstPath::visit_ts_namespace_decl(visitor, node, __ast_path)
28666            }
28667            swc_visit::Either::Right(visitor) => {
28668                VisitAstPath::visit_ts_namespace_decl(visitor, node, __ast_path)
28669            }
28670        }
28671    }
28672
28673    #[inline]
28674    fn visit_ts_namespace_export_decl<'ast: 'r, 'r>(
28675        &mut self,
28676        node: &'ast TsNamespaceExportDecl,
28677        __ast_path: &mut AstNodePath<'r>,
28678    ) {
28679        match self {
28680            swc_visit::Either::Left(visitor) => {
28681                VisitAstPath::visit_ts_namespace_export_decl(visitor, node, __ast_path)
28682            }
28683            swc_visit::Either::Right(visitor) => {
28684                VisitAstPath::visit_ts_namespace_export_decl(visitor, node, __ast_path)
28685            }
28686        }
28687    }
28688
28689    #[inline]
28690    fn visit_ts_non_null_expr<'ast: 'r, 'r>(
28691        &mut self,
28692        node: &'ast TsNonNullExpr,
28693        __ast_path: &mut AstNodePath<'r>,
28694    ) {
28695        match self {
28696            swc_visit::Either::Left(visitor) => {
28697                VisitAstPath::visit_ts_non_null_expr(visitor, node, __ast_path)
28698            }
28699            swc_visit::Either::Right(visitor) => {
28700                VisitAstPath::visit_ts_non_null_expr(visitor, node, __ast_path)
28701            }
28702        }
28703    }
28704
28705    #[inline]
28706    fn visit_ts_optional_type<'ast: 'r, 'r>(
28707        &mut self,
28708        node: &'ast TsOptionalType,
28709        __ast_path: &mut AstNodePath<'r>,
28710    ) {
28711        match self {
28712            swc_visit::Either::Left(visitor) => {
28713                VisitAstPath::visit_ts_optional_type(visitor, node, __ast_path)
28714            }
28715            swc_visit::Either::Right(visitor) => {
28716                VisitAstPath::visit_ts_optional_type(visitor, node, __ast_path)
28717            }
28718        }
28719    }
28720
28721    #[inline]
28722    fn visit_ts_param_prop<'ast: 'r, 'r>(
28723        &mut self,
28724        node: &'ast TsParamProp,
28725        __ast_path: &mut AstNodePath<'r>,
28726    ) {
28727        match self {
28728            swc_visit::Either::Left(visitor) => {
28729                VisitAstPath::visit_ts_param_prop(visitor, node, __ast_path)
28730            }
28731            swc_visit::Either::Right(visitor) => {
28732                VisitAstPath::visit_ts_param_prop(visitor, node, __ast_path)
28733            }
28734        }
28735    }
28736
28737    #[inline]
28738    fn visit_ts_param_prop_param<'ast: 'r, 'r>(
28739        &mut self,
28740        node: &'ast TsParamPropParam,
28741        __ast_path: &mut AstNodePath<'r>,
28742    ) {
28743        match self {
28744            swc_visit::Either::Left(visitor) => {
28745                VisitAstPath::visit_ts_param_prop_param(visitor, node, __ast_path)
28746            }
28747            swc_visit::Either::Right(visitor) => {
28748                VisitAstPath::visit_ts_param_prop_param(visitor, node, __ast_path)
28749            }
28750        }
28751    }
28752
28753    #[inline]
28754    fn visit_ts_parenthesized_type<'ast: 'r, 'r>(
28755        &mut self,
28756        node: &'ast TsParenthesizedType,
28757        __ast_path: &mut AstNodePath<'r>,
28758    ) {
28759        match self {
28760            swc_visit::Either::Left(visitor) => {
28761                VisitAstPath::visit_ts_parenthesized_type(visitor, node, __ast_path)
28762            }
28763            swc_visit::Either::Right(visitor) => {
28764                VisitAstPath::visit_ts_parenthesized_type(visitor, node, __ast_path)
28765            }
28766        }
28767    }
28768
28769    #[inline]
28770    fn visit_ts_property_signature<'ast: 'r, 'r>(
28771        &mut self,
28772        node: &'ast TsPropertySignature,
28773        __ast_path: &mut AstNodePath<'r>,
28774    ) {
28775        match self {
28776            swc_visit::Either::Left(visitor) => {
28777                VisitAstPath::visit_ts_property_signature(visitor, node, __ast_path)
28778            }
28779            swc_visit::Either::Right(visitor) => {
28780                VisitAstPath::visit_ts_property_signature(visitor, node, __ast_path)
28781            }
28782        }
28783    }
28784
28785    #[inline]
28786    fn visit_ts_qualified_name<'ast: 'r, 'r>(
28787        &mut self,
28788        node: &'ast TsQualifiedName,
28789        __ast_path: &mut AstNodePath<'r>,
28790    ) {
28791        match self {
28792            swc_visit::Either::Left(visitor) => {
28793                VisitAstPath::visit_ts_qualified_name(visitor, node, __ast_path)
28794            }
28795            swc_visit::Either::Right(visitor) => {
28796                VisitAstPath::visit_ts_qualified_name(visitor, node, __ast_path)
28797            }
28798        }
28799    }
28800
28801    #[inline]
28802    fn visit_ts_rest_type<'ast: 'r, 'r>(
28803        &mut self,
28804        node: &'ast TsRestType,
28805        __ast_path: &mut AstNodePath<'r>,
28806    ) {
28807        match self {
28808            swc_visit::Either::Left(visitor) => {
28809                VisitAstPath::visit_ts_rest_type(visitor, node, __ast_path)
28810            }
28811            swc_visit::Either::Right(visitor) => {
28812                VisitAstPath::visit_ts_rest_type(visitor, node, __ast_path)
28813            }
28814        }
28815    }
28816
28817    #[inline]
28818    fn visit_ts_satisfies_expr<'ast: 'r, 'r>(
28819        &mut self,
28820        node: &'ast TsSatisfiesExpr,
28821        __ast_path: &mut AstNodePath<'r>,
28822    ) {
28823        match self {
28824            swc_visit::Either::Left(visitor) => {
28825                VisitAstPath::visit_ts_satisfies_expr(visitor, node, __ast_path)
28826            }
28827            swc_visit::Either::Right(visitor) => {
28828                VisitAstPath::visit_ts_satisfies_expr(visitor, node, __ast_path)
28829            }
28830        }
28831    }
28832
28833    #[inline]
28834    fn visit_ts_setter_signature<'ast: 'r, 'r>(
28835        &mut self,
28836        node: &'ast TsSetterSignature,
28837        __ast_path: &mut AstNodePath<'r>,
28838    ) {
28839        match self {
28840            swc_visit::Either::Left(visitor) => {
28841                VisitAstPath::visit_ts_setter_signature(visitor, node, __ast_path)
28842            }
28843            swc_visit::Either::Right(visitor) => {
28844                VisitAstPath::visit_ts_setter_signature(visitor, node, __ast_path)
28845            }
28846        }
28847    }
28848
28849    #[inline]
28850    fn visit_ts_this_type<'ast: 'r, 'r>(
28851        &mut self,
28852        node: &'ast TsThisType,
28853        __ast_path: &mut AstNodePath<'r>,
28854    ) {
28855        match self {
28856            swc_visit::Either::Left(visitor) => {
28857                VisitAstPath::visit_ts_this_type(visitor, node, __ast_path)
28858            }
28859            swc_visit::Either::Right(visitor) => {
28860                VisitAstPath::visit_ts_this_type(visitor, node, __ast_path)
28861            }
28862        }
28863    }
28864
28865    #[inline]
28866    fn visit_ts_this_type_or_ident<'ast: 'r, 'r>(
28867        &mut self,
28868        node: &'ast TsThisTypeOrIdent,
28869        __ast_path: &mut AstNodePath<'r>,
28870    ) {
28871        match self {
28872            swc_visit::Either::Left(visitor) => {
28873                VisitAstPath::visit_ts_this_type_or_ident(visitor, node, __ast_path)
28874            }
28875            swc_visit::Either::Right(visitor) => {
28876                VisitAstPath::visit_ts_this_type_or_ident(visitor, node, __ast_path)
28877            }
28878        }
28879    }
28880
28881    #[inline]
28882    fn visit_ts_tpl_lit_type<'ast: 'r, 'r>(
28883        &mut self,
28884        node: &'ast TsTplLitType,
28885        __ast_path: &mut AstNodePath<'r>,
28886    ) {
28887        match self {
28888            swc_visit::Either::Left(visitor) => {
28889                VisitAstPath::visit_ts_tpl_lit_type(visitor, node, __ast_path)
28890            }
28891            swc_visit::Either::Right(visitor) => {
28892                VisitAstPath::visit_ts_tpl_lit_type(visitor, node, __ast_path)
28893            }
28894        }
28895    }
28896
28897    #[inline]
28898    fn visit_ts_tuple_element<'ast: 'r, 'r>(
28899        &mut self,
28900        node: &'ast TsTupleElement,
28901        __ast_path: &mut AstNodePath<'r>,
28902    ) {
28903        match self {
28904            swc_visit::Either::Left(visitor) => {
28905                VisitAstPath::visit_ts_tuple_element(visitor, node, __ast_path)
28906            }
28907            swc_visit::Either::Right(visitor) => {
28908                VisitAstPath::visit_ts_tuple_element(visitor, node, __ast_path)
28909            }
28910        }
28911    }
28912
28913    #[inline]
28914    fn visit_ts_tuple_elements<'ast: 'r, 'r>(
28915        &mut self,
28916        node: &'ast [TsTupleElement],
28917        __ast_path: &mut AstNodePath<'r>,
28918    ) {
28919        match self {
28920            swc_visit::Either::Left(visitor) => {
28921                VisitAstPath::visit_ts_tuple_elements(visitor, node, __ast_path)
28922            }
28923            swc_visit::Either::Right(visitor) => {
28924                VisitAstPath::visit_ts_tuple_elements(visitor, node, __ast_path)
28925            }
28926        }
28927    }
28928
28929    #[inline]
28930    fn visit_ts_tuple_type<'ast: 'r, 'r>(
28931        &mut self,
28932        node: &'ast TsTupleType,
28933        __ast_path: &mut AstNodePath<'r>,
28934    ) {
28935        match self {
28936            swc_visit::Either::Left(visitor) => {
28937                VisitAstPath::visit_ts_tuple_type(visitor, node, __ast_path)
28938            }
28939            swc_visit::Either::Right(visitor) => {
28940                VisitAstPath::visit_ts_tuple_type(visitor, node, __ast_path)
28941            }
28942        }
28943    }
28944
28945    #[inline]
28946    fn visit_ts_type<'ast: 'r, 'r>(
28947        &mut self,
28948        node: &'ast TsType,
28949        __ast_path: &mut AstNodePath<'r>,
28950    ) {
28951        match self {
28952            swc_visit::Either::Left(visitor) => {
28953                VisitAstPath::visit_ts_type(visitor, node, __ast_path)
28954            }
28955            swc_visit::Either::Right(visitor) => {
28956                VisitAstPath::visit_ts_type(visitor, node, __ast_path)
28957            }
28958        }
28959    }
28960
28961    #[inline]
28962    fn visit_ts_type_alias_decl<'ast: 'r, 'r>(
28963        &mut self,
28964        node: &'ast TsTypeAliasDecl,
28965        __ast_path: &mut AstNodePath<'r>,
28966    ) {
28967        match self {
28968            swc_visit::Either::Left(visitor) => {
28969                VisitAstPath::visit_ts_type_alias_decl(visitor, node, __ast_path)
28970            }
28971            swc_visit::Either::Right(visitor) => {
28972                VisitAstPath::visit_ts_type_alias_decl(visitor, node, __ast_path)
28973            }
28974        }
28975    }
28976
28977    #[inline]
28978    fn visit_ts_type_ann<'ast: 'r, 'r>(
28979        &mut self,
28980        node: &'ast TsTypeAnn,
28981        __ast_path: &mut AstNodePath<'r>,
28982    ) {
28983        match self {
28984            swc_visit::Either::Left(visitor) => {
28985                VisitAstPath::visit_ts_type_ann(visitor, node, __ast_path)
28986            }
28987            swc_visit::Either::Right(visitor) => {
28988                VisitAstPath::visit_ts_type_ann(visitor, node, __ast_path)
28989            }
28990        }
28991    }
28992
28993    #[inline]
28994    fn visit_ts_type_assertion<'ast: 'r, 'r>(
28995        &mut self,
28996        node: &'ast TsTypeAssertion,
28997        __ast_path: &mut AstNodePath<'r>,
28998    ) {
28999        match self {
29000            swc_visit::Either::Left(visitor) => {
29001                VisitAstPath::visit_ts_type_assertion(visitor, node, __ast_path)
29002            }
29003            swc_visit::Either::Right(visitor) => {
29004                VisitAstPath::visit_ts_type_assertion(visitor, node, __ast_path)
29005            }
29006        }
29007    }
29008
29009    #[inline]
29010    fn visit_ts_type_element<'ast: 'r, 'r>(
29011        &mut self,
29012        node: &'ast TsTypeElement,
29013        __ast_path: &mut AstNodePath<'r>,
29014    ) {
29015        match self {
29016            swc_visit::Either::Left(visitor) => {
29017                VisitAstPath::visit_ts_type_element(visitor, node, __ast_path)
29018            }
29019            swc_visit::Either::Right(visitor) => {
29020                VisitAstPath::visit_ts_type_element(visitor, node, __ast_path)
29021            }
29022        }
29023    }
29024
29025    #[inline]
29026    fn visit_ts_type_elements<'ast: 'r, 'r>(
29027        &mut self,
29028        node: &'ast [TsTypeElement],
29029        __ast_path: &mut AstNodePath<'r>,
29030    ) {
29031        match self {
29032            swc_visit::Either::Left(visitor) => {
29033                VisitAstPath::visit_ts_type_elements(visitor, node, __ast_path)
29034            }
29035            swc_visit::Either::Right(visitor) => {
29036                VisitAstPath::visit_ts_type_elements(visitor, node, __ast_path)
29037            }
29038        }
29039    }
29040
29041    #[inline]
29042    fn visit_ts_type_lit<'ast: 'r, 'r>(
29043        &mut self,
29044        node: &'ast TsTypeLit,
29045        __ast_path: &mut AstNodePath<'r>,
29046    ) {
29047        match self {
29048            swc_visit::Either::Left(visitor) => {
29049                VisitAstPath::visit_ts_type_lit(visitor, node, __ast_path)
29050            }
29051            swc_visit::Either::Right(visitor) => {
29052                VisitAstPath::visit_ts_type_lit(visitor, node, __ast_path)
29053            }
29054        }
29055    }
29056
29057    #[inline]
29058    fn visit_ts_type_operator<'ast: 'r, 'r>(
29059        &mut self,
29060        node: &'ast TsTypeOperator,
29061        __ast_path: &mut AstNodePath<'r>,
29062    ) {
29063        match self {
29064            swc_visit::Either::Left(visitor) => {
29065                VisitAstPath::visit_ts_type_operator(visitor, node, __ast_path)
29066            }
29067            swc_visit::Either::Right(visitor) => {
29068                VisitAstPath::visit_ts_type_operator(visitor, node, __ast_path)
29069            }
29070        }
29071    }
29072
29073    #[inline]
29074    fn visit_ts_type_operator_op<'ast: 'r, 'r>(
29075        &mut self,
29076        node: &'ast TsTypeOperatorOp,
29077        __ast_path: &mut AstNodePath<'r>,
29078    ) {
29079        match self {
29080            swc_visit::Either::Left(visitor) => {
29081                VisitAstPath::visit_ts_type_operator_op(visitor, node, __ast_path)
29082            }
29083            swc_visit::Either::Right(visitor) => {
29084                VisitAstPath::visit_ts_type_operator_op(visitor, node, __ast_path)
29085            }
29086        }
29087    }
29088
29089    #[inline]
29090    fn visit_ts_type_param<'ast: 'r, 'r>(
29091        &mut self,
29092        node: &'ast TsTypeParam,
29093        __ast_path: &mut AstNodePath<'r>,
29094    ) {
29095        match self {
29096            swc_visit::Either::Left(visitor) => {
29097                VisitAstPath::visit_ts_type_param(visitor, node, __ast_path)
29098            }
29099            swc_visit::Either::Right(visitor) => {
29100                VisitAstPath::visit_ts_type_param(visitor, node, __ast_path)
29101            }
29102        }
29103    }
29104
29105    #[inline]
29106    fn visit_ts_type_param_decl<'ast: 'r, 'r>(
29107        &mut self,
29108        node: &'ast TsTypeParamDecl,
29109        __ast_path: &mut AstNodePath<'r>,
29110    ) {
29111        match self {
29112            swc_visit::Either::Left(visitor) => {
29113                VisitAstPath::visit_ts_type_param_decl(visitor, node, __ast_path)
29114            }
29115            swc_visit::Either::Right(visitor) => {
29116                VisitAstPath::visit_ts_type_param_decl(visitor, node, __ast_path)
29117            }
29118        }
29119    }
29120
29121    #[inline]
29122    fn visit_ts_type_param_instantiation<'ast: 'r, 'r>(
29123        &mut self,
29124        node: &'ast TsTypeParamInstantiation,
29125        __ast_path: &mut AstNodePath<'r>,
29126    ) {
29127        match self {
29128            swc_visit::Either::Left(visitor) => {
29129                VisitAstPath::visit_ts_type_param_instantiation(visitor, node, __ast_path)
29130            }
29131            swc_visit::Either::Right(visitor) => {
29132                VisitAstPath::visit_ts_type_param_instantiation(visitor, node, __ast_path)
29133            }
29134        }
29135    }
29136
29137    #[inline]
29138    fn visit_ts_type_params<'ast: 'r, 'r>(
29139        &mut self,
29140        node: &'ast [TsTypeParam],
29141        __ast_path: &mut AstNodePath<'r>,
29142    ) {
29143        match self {
29144            swc_visit::Either::Left(visitor) => {
29145                VisitAstPath::visit_ts_type_params(visitor, node, __ast_path)
29146            }
29147            swc_visit::Either::Right(visitor) => {
29148                VisitAstPath::visit_ts_type_params(visitor, node, __ast_path)
29149            }
29150        }
29151    }
29152
29153    #[inline]
29154    fn visit_ts_type_predicate<'ast: 'r, 'r>(
29155        &mut self,
29156        node: &'ast TsTypePredicate,
29157        __ast_path: &mut AstNodePath<'r>,
29158    ) {
29159        match self {
29160            swc_visit::Either::Left(visitor) => {
29161                VisitAstPath::visit_ts_type_predicate(visitor, node, __ast_path)
29162            }
29163            swc_visit::Either::Right(visitor) => {
29164                VisitAstPath::visit_ts_type_predicate(visitor, node, __ast_path)
29165            }
29166        }
29167    }
29168
29169    #[inline]
29170    fn visit_ts_type_query<'ast: 'r, 'r>(
29171        &mut self,
29172        node: &'ast TsTypeQuery,
29173        __ast_path: &mut AstNodePath<'r>,
29174    ) {
29175        match self {
29176            swc_visit::Either::Left(visitor) => {
29177                VisitAstPath::visit_ts_type_query(visitor, node, __ast_path)
29178            }
29179            swc_visit::Either::Right(visitor) => {
29180                VisitAstPath::visit_ts_type_query(visitor, node, __ast_path)
29181            }
29182        }
29183    }
29184
29185    #[inline]
29186    fn visit_ts_type_query_expr<'ast: 'r, 'r>(
29187        &mut self,
29188        node: &'ast TsTypeQueryExpr,
29189        __ast_path: &mut AstNodePath<'r>,
29190    ) {
29191        match self {
29192            swc_visit::Either::Left(visitor) => {
29193                VisitAstPath::visit_ts_type_query_expr(visitor, node, __ast_path)
29194            }
29195            swc_visit::Either::Right(visitor) => {
29196                VisitAstPath::visit_ts_type_query_expr(visitor, node, __ast_path)
29197            }
29198        }
29199    }
29200
29201    #[inline]
29202    fn visit_ts_type_ref<'ast: 'r, 'r>(
29203        &mut self,
29204        node: &'ast TsTypeRef,
29205        __ast_path: &mut AstNodePath<'r>,
29206    ) {
29207        match self {
29208            swc_visit::Either::Left(visitor) => {
29209                VisitAstPath::visit_ts_type_ref(visitor, node, __ast_path)
29210            }
29211            swc_visit::Either::Right(visitor) => {
29212                VisitAstPath::visit_ts_type_ref(visitor, node, __ast_path)
29213            }
29214        }
29215    }
29216
29217    #[inline]
29218    fn visit_ts_types<'ast: 'r, 'r>(
29219        &mut self,
29220        node: &'ast [Box<TsType>],
29221        __ast_path: &mut AstNodePath<'r>,
29222    ) {
29223        match self {
29224            swc_visit::Either::Left(visitor) => {
29225                VisitAstPath::visit_ts_types(visitor, node, __ast_path)
29226            }
29227            swc_visit::Either::Right(visitor) => {
29228                VisitAstPath::visit_ts_types(visitor, node, __ast_path)
29229            }
29230        }
29231    }
29232
29233    #[inline]
29234    fn visit_ts_union_or_intersection_type<'ast: 'r, 'r>(
29235        &mut self,
29236        node: &'ast TsUnionOrIntersectionType,
29237        __ast_path: &mut AstNodePath<'r>,
29238    ) {
29239        match self {
29240            swc_visit::Either::Left(visitor) => {
29241                VisitAstPath::visit_ts_union_or_intersection_type(visitor, node, __ast_path)
29242            }
29243            swc_visit::Either::Right(visitor) => {
29244                VisitAstPath::visit_ts_union_or_intersection_type(visitor, node, __ast_path)
29245            }
29246        }
29247    }
29248
29249    #[inline]
29250    fn visit_ts_union_type<'ast: 'r, 'r>(
29251        &mut self,
29252        node: &'ast TsUnionType,
29253        __ast_path: &mut AstNodePath<'r>,
29254    ) {
29255        match self {
29256            swc_visit::Either::Left(visitor) => {
29257                VisitAstPath::visit_ts_union_type(visitor, node, __ast_path)
29258            }
29259            swc_visit::Either::Right(visitor) => {
29260                VisitAstPath::visit_ts_union_type(visitor, node, __ast_path)
29261            }
29262        }
29263    }
29264
29265    #[inline]
29266    fn visit_unary_expr<'ast: 'r, 'r>(
29267        &mut self,
29268        node: &'ast UnaryExpr,
29269        __ast_path: &mut AstNodePath<'r>,
29270    ) {
29271        match self {
29272            swc_visit::Either::Left(visitor) => {
29273                VisitAstPath::visit_unary_expr(visitor, node, __ast_path)
29274            }
29275            swc_visit::Either::Right(visitor) => {
29276                VisitAstPath::visit_unary_expr(visitor, node, __ast_path)
29277            }
29278        }
29279    }
29280
29281    #[inline]
29282    fn visit_unary_op<'ast: 'r, 'r>(
29283        &mut self,
29284        node: &'ast UnaryOp,
29285        __ast_path: &mut AstNodePath<'r>,
29286    ) {
29287        match self {
29288            swc_visit::Either::Left(visitor) => {
29289                VisitAstPath::visit_unary_op(visitor, node, __ast_path)
29290            }
29291            swc_visit::Either::Right(visitor) => {
29292                VisitAstPath::visit_unary_op(visitor, node, __ast_path)
29293            }
29294        }
29295    }
29296
29297    #[inline]
29298    fn visit_update_expr<'ast: 'r, 'r>(
29299        &mut self,
29300        node: &'ast UpdateExpr,
29301        __ast_path: &mut AstNodePath<'r>,
29302    ) {
29303        match self {
29304            swc_visit::Either::Left(visitor) => {
29305                VisitAstPath::visit_update_expr(visitor, node, __ast_path)
29306            }
29307            swc_visit::Either::Right(visitor) => {
29308                VisitAstPath::visit_update_expr(visitor, node, __ast_path)
29309            }
29310        }
29311    }
29312
29313    #[inline]
29314    fn visit_update_op<'ast: 'r, 'r>(
29315        &mut self,
29316        node: &'ast UpdateOp,
29317        __ast_path: &mut AstNodePath<'r>,
29318    ) {
29319        match self {
29320            swc_visit::Either::Left(visitor) => {
29321                VisitAstPath::visit_update_op(visitor, node, __ast_path)
29322            }
29323            swc_visit::Either::Right(visitor) => {
29324                VisitAstPath::visit_update_op(visitor, node, __ast_path)
29325            }
29326        }
29327    }
29328
29329    #[inline]
29330    fn visit_using_decl<'ast: 'r, 'r>(
29331        &mut self,
29332        node: &'ast UsingDecl,
29333        __ast_path: &mut AstNodePath<'r>,
29334    ) {
29335        match self {
29336            swc_visit::Either::Left(visitor) => {
29337                VisitAstPath::visit_using_decl(visitor, node, __ast_path)
29338            }
29339            swc_visit::Either::Right(visitor) => {
29340                VisitAstPath::visit_using_decl(visitor, node, __ast_path)
29341            }
29342        }
29343    }
29344
29345    #[inline]
29346    fn visit_var_decl<'ast: 'r, 'r>(
29347        &mut self,
29348        node: &'ast VarDecl,
29349        __ast_path: &mut AstNodePath<'r>,
29350    ) {
29351        match self {
29352            swc_visit::Either::Left(visitor) => {
29353                VisitAstPath::visit_var_decl(visitor, node, __ast_path)
29354            }
29355            swc_visit::Either::Right(visitor) => {
29356                VisitAstPath::visit_var_decl(visitor, node, __ast_path)
29357            }
29358        }
29359    }
29360
29361    #[inline]
29362    fn visit_var_decl_kind<'ast: 'r, 'r>(
29363        &mut self,
29364        node: &'ast VarDeclKind,
29365        __ast_path: &mut AstNodePath<'r>,
29366    ) {
29367        match self {
29368            swc_visit::Either::Left(visitor) => {
29369                VisitAstPath::visit_var_decl_kind(visitor, node, __ast_path)
29370            }
29371            swc_visit::Either::Right(visitor) => {
29372                VisitAstPath::visit_var_decl_kind(visitor, node, __ast_path)
29373            }
29374        }
29375    }
29376
29377    #[inline]
29378    fn visit_var_decl_or_expr<'ast: 'r, 'r>(
29379        &mut self,
29380        node: &'ast VarDeclOrExpr,
29381        __ast_path: &mut AstNodePath<'r>,
29382    ) {
29383        match self {
29384            swc_visit::Either::Left(visitor) => {
29385                VisitAstPath::visit_var_decl_or_expr(visitor, node, __ast_path)
29386            }
29387            swc_visit::Either::Right(visitor) => {
29388                VisitAstPath::visit_var_decl_or_expr(visitor, node, __ast_path)
29389            }
29390        }
29391    }
29392
29393    #[inline]
29394    fn visit_var_declarator<'ast: 'r, 'r>(
29395        &mut self,
29396        node: &'ast VarDeclarator,
29397        __ast_path: &mut AstNodePath<'r>,
29398    ) {
29399        match self {
29400            swc_visit::Either::Left(visitor) => {
29401                VisitAstPath::visit_var_declarator(visitor, node, __ast_path)
29402            }
29403            swc_visit::Either::Right(visitor) => {
29404                VisitAstPath::visit_var_declarator(visitor, node, __ast_path)
29405            }
29406        }
29407    }
29408
29409    #[inline]
29410    fn visit_var_declarators<'ast: 'r, 'r>(
29411        &mut self,
29412        node: &'ast [VarDeclarator],
29413        __ast_path: &mut AstNodePath<'r>,
29414    ) {
29415        match self {
29416            swc_visit::Either::Left(visitor) => {
29417                VisitAstPath::visit_var_declarators(visitor, node, __ast_path)
29418            }
29419            swc_visit::Either::Right(visitor) => {
29420                VisitAstPath::visit_var_declarators(visitor, node, __ast_path)
29421            }
29422        }
29423    }
29424
29425    #[inline]
29426    fn visit_while_stmt<'ast: 'r, 'r>(
29427        &mut self,
29428        node: &'ast WhileStmt,
29429        __ast_path: &mut AstNodePath<'r>,
29430    ) {
29431        match self {
29432            swc_visit::Either::Left(visitor) => {
29433                VisitAstPath::visit_while_stmt(visitor, node, __ast_path)
29434            }
29435            swc_visit::Either::Right(visitor) => {
29436                VisitAstPath::visit_while_stmt(visitor, node, __ast_path)
29437            }
29438        }
29439    }
29440
29441    #[inline]
29442    fn visit_with_stmt<'ast: 'r, 'r>(
29443        &mut self,
29444        node: &'ast WithStmt,
29445        __ast_path: &mut AstNodePath<'r>,
29446    ) {
29447        match self {
29448            swc_visit::Either::Left(visitor) => {
29449                VisitAstPath::visit_with_stmt(visitor, node, __ast_path)
29450            }
29451            swc_visit::Either::Right(visitor) => {
29452                VisitAstPath::visit_with_stmt(visitor, node, __ast_path)
29453            }
29454        }
29455    }
29456
29457    #[inline]
29458    fn visit_yield_expr<'ast: 'r, 'r>(
29459        &mut self,
29460        node: &'ast YieldExpr,
29461        __ast_path: &mut AstNodePath<'r>,
29462    ) {
29463        match self {
29464            swc_visit::Either::Left(visitor) => {
29465                VisitAstPath::visit_yield_expr(visitor, node, __ast_path)
29466            }
29467            swc_visit::Either::Right(visitor) => {
29468                VisitAstPath::visit_yield_expr(visitor, node, __ast_path)
29469            }
29470        }
29471    }
29472}
29473#[cfg(any(docsrs, feature = "path"))]
29474#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
29475impl<V> VisitAstPath for ::swc_visit::Optional<V>
29476where
29477    V: VisitAstPath,
29478{
29479    #[inline]
29480    fn visit_accessibility<'ast: 'r, 'r>(
29481        &mut self,
29482        node: &'ast Accessibility,
29483        __ast_path: &mut AstNodePath<'r>,
29484    ) {
29485        if self.enabled {
29486            <V as VisitAstPath>::visit_accessibility(&mut self.visitor, node, __ast_path)
29487        } else {
29488        }
29489    }
29490
29491    #[inline]
29492    fn visit_array_lit<'ast: 'r, 'r>(
29493        &mut self,
29494        node: &'ast ArrayLit,
29495        __ast_path: &mut AstNodePath<'r>,
29496    ) {
29497        if self.enabled {
29498            <V as VisitAstPath>::visit_array_lit(&mut self.visitor, node, __ast_path)
29499        } else {
29500        }
29501    }
29502
29503    #[inline]
29504    fn visit_array_pat<'ast: 'r, 'r>(
29505        &mut self,
29506        node: &'ast ArrayPat,
29507        __ast_path: &mut AstNodePath<'r>,
29508    ) {
29509        if self.enabled {
29510            <V as VisitAstPath>::visit_array_pat(&mut self.visitor, node, __ast_path)
29511        } else {
29512        }
29513    }
29514
29515    #[inline]
29516    fn visit_arrow_expr<'ast: 'r, 'r>(
29517        &mut self,
29518        node: &'ast ArrowExpr,
29519        __ast_path: &mut AstNodePath<'r>,
29520    ) {
29521        if self.enabled {
29522            <V as VisitAstPath>::visit_arrow_expr(&mut self.visitor, node, __ast_path)
29523        } else {
29524        }
29525    }
29526
29527    #[inline]
29528    fn visit_assign_expr<'ast: 'r, 'r>(
29529        &mut self,
29530        node: &'ast AssignExpr,
29531        __ast_path: &mut AstNodePath<'r>,
29532    ) {
29533        if self.enabled {
29534            <V as VisitAstPath>::visit_assign_expr(&mut self.visitor, node, __ast_path)
29535        } else {
29536        }
29537    }
29538
29539    #[inline]
29540    fn visit_assign_op<'ast: 'r, 'r>(
29541        &mut self,
29542        node: &'ast AssignOp,
29543        __ast_path: &mut AstNodePath<'r>,
29544    ) {
29545        if self.enabled {
29546            <V as VisitAstPath>::visit_assign_op(&mut self.visitor, node, __ast_path)
29547        } else {
29548        }
29549    }
29550
29551    #[inline]
29552    fn visit_assign_pat<'ast: 'r, 'r>(
29553        &mut self,
29554        node: &'ast AssignPat,
29555        __ast_path: &mut AstNodePath<'r>,
29556    ) {
29557        if self.enabled {
29558            <V as VisitAstPath>::visit_assign_pat(&mut self.visitor, node, __ast_path)
29559        } else {
29560        }
29561    }
29562
29563    #[inline]
29564    fn visit_assign_pat_prop<'ast: 'r, 'r>(
29565        &mut self,
29566        node: &'ast AssignPatProp,
29567        __ast_path: &mut AstNodePath<'r>,
29568    ) {
29569        if self.enabled {
29570            <V as VisitAstPath>::visit_assign_pat_prop(&mut self.visitor, node, __ast_path)
29571        } else {
29572        }
29573    }
29574
29575    #[inline]
29576    fn visit_assign_prop<'ast: 'r, 'r>(
29577        &mut self,
29578        node: &'ast AssignProp,
29579        __ast_path: &mut AstNodePath<'r>,
29580    ) {
29581        if self.enabled {
29582            <V as VisitAstPath>::visit_assign_prop(&mut self.visitor, node, __ast_path)
29583        } else {
29584        }
29585    }
29586
29587    #[inline]
29588    fn visit_assign_target<'ast: 'r, 'r>(
29589        &mut self,
29590        node: &'ast AssignTarget,
29591        __ast_path: &mut AstNodePath<'r>,
29592    ) {
29593        if self.enabled {
29594            <V as VisitAstPath>::visit_assign_target(&mut self.visitor, node, __ast_path)
29595        } else {
29596        }
29597    }
29598
29599    #[inline]
29600    fn visit_assign_target_pat<'ast: 'r, 'r>(
29601        &mut self,
29602        node: &'ast AssignTargetPat,
29603        __ast_path: &mut AstNodePath<'r>,
29604    ) {
29605        if self.enabled {
29606            <V as VisitAstPath>::visit_assign_target_pat(&mut self.visitor, node, __ast_path)
29607        } else {
29608        }
29609    }
29610
29611    #[inline]
29612    fn visit_atom<'ast: 'r, 'r>(
29613        &mut self,
29614        node: &'ast swc_atoms::Atom,
29615        __ast_path: &mut AstNodePath<'r>,
29616    ) {
29617        if self.enabled {
29618            <V as VisitAstPath>::visit_atom(&mut self.visitor, node, __ast_path)
29619        } else {
29620        }
29621    }
29622
29623    #[inline]
29624    fn visit_auto_accessor<'ast: 'r, 'r>(
29625        &mut self,
29626        node: &'ast AutoAccessor,
29627        __ast_path: &mut AstNodePath<'r>,
29628    ) {
29629        if self.enabled {
29630            <V as VisitAstPath>::visit_auto_accessor(&mut self.visitor, node, __ast_path)
29631        } else {
29632        }
29633    }
29634
29635    #[inline]
29636    fn visit_await_expr<'ast: 'r, 'r>(
29637        &mut self,
29638        node: &'ast AwaitExpr,
29639        __ast_path: &mut AstNodePath<'r>,
29640    ) {
29641        if self.enabled {
29642            <V as VisitAstPath>::visit_await_expr(&mut self.visitor, node, __ast_path)
29643        } else {
29644        }
29645    }
29646
29647    #[inline]
29648    fn visit_big_int<'ast: 'r, 'r>(
29649        &mut self,
29650        node: &'ast BigInt,
29651        __ast_path: &mut AstNodePath<'r>,
29652    ) {
29653        if self.enabled {
29654            <V as VisitAstPath>::visit_big_int(&mut self.visitor, node, __ast_path)
29655        } else {
29656        }
29657    }
29658
29659    #[inline]
29660    fn visit_big_int_value<'ast: 'r, 'r>(
29661        &mut self,
29662        node: &'ast BigIntValue,
29663        __ast_path: &mut AstNodePath<'r>,
29664    ) {
29665        if self.enabled {
29666            <V as VisitAstPath>::visit_big_int_value(&mut self.visitor, node, __ast_path)
29667        } else {
29668        }
29669    }
29670
29671    #[inline]
29672    fn visit_bin_expr<'ast: 'r, 'r>(
29673        &mut self,
29674        node: &'ast BinExpr,
29675        __ast_path: &mut AstNodePath<'r>,
29676    ) {
29677        if self.enabled {
29678            <V as VisitAstPath>::visit_bin_expr(&mut self.visitor, node, __ast_path)
29679        } else {
29680        }
29681    }
29682
29683    #[inline]
29684    fn visit_binary_op<'ast: 'r, 'r>(
29685        &mut self,
29686        node: &'ast BinaryOp,
29687        __ast_path: &mut AstNodePath<'r>,
29688    ) {
29689        if self.enabled {
29690            <V as VisitAstPath>::visit_binary_op(&mut self.visitor, node, __ast_path)
29691        } else {
29692        }
29693    }
29694
29695    #[inline]
29696    fn visit_binding_ident<'ast: 'r, 'r>(
29697        &mut self,
29698        node: &'ast BindingIdent,
29699        __ast_path: &mut AstNodePath<'r>,
29700    ) {
29701        if self.enabled {
29702            <V as VisitAstPath>::visit_binding_ident(&mut self.visitor, node, __ast_path)
29703        } else {
29704        }
29705    }
29706
29707    #[inline]
29708    fn visit_block_stmt<'ast: 'r, 'r>(
29709        &mut self,
29710        node: &'ast BlockStmt,
29711        __ast_path: &mut AstNodePath<'r>,
29712    ) {
29713        if self.enabled {
29714            <V as VisitAstPath>::visit_block_stmt(&mut self.visitor, node, __ast_path)
29715        } else {
29716        }
29717    }
29718
29719    #[inline]
29720    fn visit_block_stmt_or_expr<'ast: 'r, 'r>(
29721        &mut self,
29722        node: &'ast BlockStmtOrExpr,
29723        __ast_path: &mut AstNodePath<'r>,
29724    ) {
29725        if self.enabled {
29726            <V as VisitAstPath>::visit_block_stmt_or_expr(&mut self.visitor, node, __ast_path)
29727        } else {
29728        }
29729    }
29730
29731    #[inline]
29732    fn visit_bool<'ast: 'r, 'r>(&mut self, node: &'ast Bool, __ast_path: &mut AstNodePath<'r>) {
29733        if self.enabled {
29734            <V as VisitAstPath>::visit_bool(&mut self.visitor, node, __ast_path)
29735        } else {
29736        }
29737    }
29738
29739    #[inline]
29740    fn visit_break_stmt<'ast: 'r, 'r>(
29741        &mut self,
29742        node: &'ast BreakStmt,
29743        __ast_path: &mut AstNodePath<'r>,
29744    ) {
29745        if self.enabled {
29746            <V as VisitAstPath>::visit_break_stmt(&mut self.visitor, node, __ast_path)
29747        } else {
29748        }
29749    }
29750
29751    #[inline]
29752    fn visit_call_expr<'ast: 'r, 'r>(
29753        &mut self,
29754        node: &'ast CallExpr,
29755        __ast_path: &mut AstNodePath<'r>,
29756    ) {
29757        if self.enabled {
29758            <V as VisitAstPath>::visit_call_expr(&mut self.visitor, node, __ast_path)
29759        } else {
29760        }
29761    }
29762
29763    #[inline]
29764    fn visit_callee<'ast: 'r, 'r>(&mut self, node: &'ast Callee, __ast_path: &mut AstNodePath<'r>) {
29765        if self.enabled {
29766            <V as VisitAstPath>::visit_callee(&mut self.visitor, node, __ast_path)
29767        } else {
29768        }
29769    }
29770
29771    #[inline]
29772    fn visit_catch_clause<'ast: 'r, 'r>(
29773        &mut self,
29774        node: &'ast CatchClause,
29775        __ast_path: &mut AstNodePath<'r>,
29776    ) {
29777        if self.enabled {
29778            <V as VisitAstPath>::visit_catch_clause(&mut self.visitor, node, __ast_path)
29779        } else {
29780        }
29781    }
29782
29783    #[inline]
29784    fn visit_class<'ast: 'r, 'r>(&mut self, node: &'ast Class, __ast_path: &mut AstNodePath<'r>) {
29785        if self.enabled {
29786            <V as VisitAstPath>::visit_class(&mut self.visitor, node, __ast_path)
29787        } else {
29788        }
29789    }
29790
29791    #[inline]
29792    fn visit_class_decl<'ast: 'r, 'r>(
29793        &mut self,
29794        node: &'ast ClassDecl,
29795        __ast_path: &mut AstNodePath<'r>,
29796    ) {
29797        if self.enabled {
29798            <V as VisitAstPath>::visit_class_decl(&mut self.visitor, node, __ast_path)
29799        } else {
29800        }
29801    }
29802
29803    #[inline]
29804    fn visit_class_expr<'ast: 'r, 'r>(
29805        &mut self,
29806        node: &'ast ClassExpr,
29807        __ast_path: &mut AstNodePath<'r>,
29808    ) {
29809        if self.enabled {
29810            <V as VisitAstPath>::visit_class_expr(&mut self.visitor, node, __ast_path)
29811        } else {
29812        }
29813    }
29814
29815    #[inline]
29816    fn visit_class_member<'ast: 'r, 'r>(
29817        &mut self,
29818        node: &'ast ClassMember,
29819        __ast_path: &mut AstNodePath<'r>,
29820    ) {
29821        if self.enabled {
29822            <V as VisitAstPath>::visit_class_member(&mut self.visitor, node, __ast_path)
29823        } else {
29824        }
29825    }
29826
29827    #[inline]
29828    fn visit_class_members<'ast: 'r, 'r>(
29829        &mut self,
29830        node: &'ast [ClassMember],
29831        __ast_path: &mut AstNodePath<'r>,
29832    ) {
29833        if self.enabled {
29834            <V as VisitAstPath>::visit_class_members(&mut self.visitor, node, __ast_path)
29835        } else {
29836        }
29837    }
29838
29839    #[inline]
29840    fn visit_class_method<'ast: 'r, 'r>(
29841        &mut self,
29842        node: &'ast ClassMethod,
29843        __ast_path: &mut AstNodePath<'r>,
29844    ) {
29845        if self.enabled {
29846            <V as VisitAstPath>::visit_class_method(&mut self.visitor, node, __ast_path)
29847        } else {
29848        }
29849    }
29850
29851    #[inline]
29852    fn visit_class_prop<'ast: 'r, 'r>(
29853        &mut self,
29854        node: &'ast ClassProp,
29855        __ast_path: &mut AstNodePath<'r>,
29856    ) {
29857        if self.enabled {
29858            <V as VisitAstPath>::visit_class_prop(&mut self.visitor, node, __ast_path)
29859        } else {
29860        }
29861    }
29862
29863    #[inline]
29864    fn visit_computed_prop_name<'ast: 'r, 'r>(
29865        &mut self,
29866        node: &'ast ComputedPropName,
29867        __ast_path: &mut AstNodePath<'r>,
29868    ) {
29869        if self.enabled {
29870            <V as VisitAstPath>::visit_computed_prop_name(&mut self.visitor, node, __ast_path)
29871        } else {
29872        }
29873    }
29874
29875    #[inline]
29876    fn visit_cond_expr<'ast: 'r, 'r>(
29877        &mut self,
29878        node: &'ast CondExpr,
29879        __ast_path: &mut AstNodePath<'r>,
29880    ) {
29881        if self.enabled {
29882            <V as VisitAstPath>::visit_cond_expr(&mut self.visitor, node, __ast_path)
29883        } else {
29884        }
29885    }
29886
29887    #[inline]
29888    fn visit_constructor<'ast: 'r, 'r>(
29889        &mut self,
29890        node: &'ast Constructor,
29891        __ast_path: &mut AstNodePath<'r>,
29892    ) {
29893        if self.enabled {
29894            <V as VisitAstPath>::visit_constructor(&mut self.visitor, node, __ast_path)
29895        } else {
29896        }
29897    }
29898
29899    #[inline]
29900    fn visit_continue_stmt<'ast: 'r, 'r>(
29901        &mut self,
29902        node: &'ast ContinueStmt,
29903        __ast_path: &mut AstNodePath<'r>,
29904    ) {
29905        if self.enabled {
29906            <V as VisitAstPath>::visit_continue_stmt(&mut self.visitor, node, __ast_path)
29907        } else {
29908        }
29909    }
29910
29911    #[inline]
29912    fn visit_debugger_stmt<'ast: 'r, 'r>(
29913        &mut self,
29914        node: &'ast DebuggerStmt,
29915        __ast_path: &mut AstNodePath<'r>,
29916    ) {
29917        if self.enabled {
29918            <V as VisitAstPath>::visit_debugger_stmt(&mut self.visitor, node, __ast_path)
29919        } else {
29920        }
29921    }
29922
29923    #[inline]
29924    fn visit_decl<'ast: 'r, 'r>(&mut self, node: &'ast Decl, __ast_path: &mut AstNodePath<'r>) {
29925        if self.enabled {
29926            <V as VisitAstPath>::visit_decl(&mut self.visitor, node, __ast_path)
29927        } else {
29928        }
29929    }
29930
29931    #[inline]
29932    fn visit_decorator<'ast: 'r, 'r>(
29933        &mut self,
29934        node: &'ast Decorator,
29935        __ast_path: &mut AstNodePath<'r>,
29936    ) {
29937        if self.enabled {
29938            <V as VisitAstPath>::visit_decorator(&mut self.visitor, node, __ast_path)
29939        } else {
29940        }
29941    }
29942
29943    #[inline]
29944    fn visit_decorators<'ast: 'r, 'r>(
29945        &mut self,
29946        node: &'ast [Decorator],
29947        __ast_path: &mut AstNodePath<'r>,
29948    ) {
29949        if self.enabled {
29950            <V as VisitAstPath>::visit_decorators(&mut self.visitor, node, __ast_path)
29951        } else {
29952        }
29953    }
29954
29955    #[inline]
29956    fn visit_default_decl<'ast: 'r, 'r>(
29957        &mut self,
29958        node: &'ast DefaultDecl,
29959        __ast_path: &mut AstNodePath<'r>,
29960    ) {
29961        if self.enabled {
29962            <V as VisitAstPath>::visit_default_decl(&mut self.visitor, node, __ast_path)
29963        } else {
29964        }
29965    }
29966
29967    #[inline]
29968    fn visit_do_while_stmt<'ast: 'r, 'r>(
29969        &mut self,
29970        node: &'ast DoWhileStmt,
29971        __ast_path: &mut AstNodePath<'r>,
29972    ) {
29973        if self.enabled {
29974            <V as VisitAstPath>::visit_do_while_stmt(&mut self.visitor, node, __ast_path)
29975        } else {
29976        }
29977    }
29978
29979    #[inline]
29980    fn visit_empty_stmt<'ast: 'r, 'r>(
29981        &mut self,
29982        node: &'ast EmptyStmt,
29983        __ast_path: &mut AstNodePath<'r>,
29984    ) {
29985        if self.enabled {
29986            <V as VisitAstPath>::visit_empty_stmt(&mut self.visitor, node, __ast_path)
29987        } else {
29988        }
29989    }
29990
29991    #[inline]
29992    fn visit_export_all<'ast: 'r, 'r>(
29993        &mut self,
29994        node: &'ast ExportAll,
29995        __ast_path: &mut AstNodePath<'r>,
29996    ) {
29997        if self.enabled {
29998            <V as VisitAstPath>::visit_export_all(&mut self.visitor, node, __ast_path)
29999        } else {
30000        }
30001    }
30002
30003    #[inline]
30004    fn visit_export_decl<'ast: 'r, 'r>(
30005        &mut self,
30006        node: &'ast ExportDecl,
30007        __ast_path: &mut AstNodePath<'r>,
30008    ) {
30009        if self.enabled {
30010            <V as VisitAstPath>::visit_export_decl(&mut self.visitor, node, __ast_path)
30011        } else {
30012        }
30013    }
30014
30015    #[inline]
30016    fn visit_export_default_decl<'ast: 'r, 'r>(
30017        &mut self,
30018        node: &'ast ExportDefaultDecl,
30019        __ast_path: &mut AstNodePath<'r>,
30020    ) {
30021        if self.enabled {
30022            <V as VisitAstPath>::visit_export_default_decl(&mut self.visitor, node, __ast_path)
30023        } else {
30024        }
30025    }
30026
30027    #[inline]
30028    fn visit_export_default_expr<'ast: 'r, 'r>(
30029        &mut self,
30030        node: &'ast ExportDefaultExpr,
30031        __ast_path: &mut AstNodePath<'r>,
30032    ) {
30033        if self.enabled {
30034            <V as VisitAstPath>::visit_export_default_expr(&mut self.visitor, node, __ast_path)
30035        } else {
30036        }
30037    }
30038
30039    #[inline]
30040    fn visit_export_default_specifier<'ast: 'r, 'r>(
30041        &mut self,
30042        node: &'ast ExportDefaultSpecifier,
30043        __ast_path: &mut AstNodePath<'r>,
30044    ) {
30045        if self.enabled {
30046            <V as VisitAstPath>::visit_export_default_specifier(&mut self.visitor, node, __ast_path)
30047        } else {
30048        }
30049    }
30050
30051    #[inline]
30052    fn visit_export_named_specifier<'ast: 'r, 'r>(
30053        &mut self,
30054        node: &'ast ExportNamedSpecifier,
30055        __ast_path: &mut AstNodePath<'r>,
30056    ) {
30057        if self.enabled {
30058            <V as VisitAstPath>::visit_export_named_specifier(&mut self.visitor, node, __ast_path)
30059        } else {
30060        }
30061    }
30062
30063    #[inline]
30064    fn visit_export_namespace_specifier<'ast: 'r, 'r>(
30065        &mut self,
30066        node: &'ast ExportNamespaceSpecifier,
30067        __ast_path: &mut AstNodePath<'r>,
30068    ) {
30069        if self.enabled {
30070            <V as VisitAstPath>::visit_export_namespace_specifier(
30071                &mut self.visitor,
30072                node,
30073                __ast_path,
30074            )
30075        } else {
30076        }
30077    }
30078
30079    #[inline]
30080    fn visit_export_specifier<'ast: 'r, 'r>(
30081        &mut self,
30082        node: &'ast ExportSpecifier,
30083        __ast_path: &mut AstNodePath<'r>,
30084    ) {
30085        if self.enabled {
30086            <V as VisitAstPath>::visit_export_specifier(&mut self.visitor, node, __ast_path)
30087        } else {
30088        }
30089    }
30090
30091    #[inline]
30092    fn visit_export_specifiers<'ast: 'r, 'r>(
30093        &mut self,
30094        node: &'ast [ExportSpecifier],
30095        __ast_path: &mut AstNodePath<'r>,
30096    ) {
30097        if self.enabled {
30098            <V as VisitAstPath>::visit_export_specifiers(&mut self.visitor, node, __ast_path)
30099        } else {
30100        }
30101    }
30102
30103    #[inline]
30104    fn visit_expr<'ast: 'r, 'r>(&mut self, node: &'ast Expr, __ast_path: &mut AstNodePath<'r>) {
30105        if self.enabled {
30106            <V as VisitAstPath>::visit_expr(&mut self.visitor, node, __ast_path)
30107        } else {
30108        }
30109    }
30110
30111    #[inline]
30112    fn visit_expr_or_spread<'ast: 'r, 'r>(
30113        &mut self,
30114        node: &'ast ExprOrSpread,
30115        __ast_path: &mut AstNodePath<'r>,
30116    ) {
30117        if self.enabled {
30118            <V as VisitAstPath>::visit_expr_or_spread(&mut self.visitor, node, __ast_path)
30119        } else {
30120        }
30121    }
30122
30123    #[inline]
30124    fn visit_expr_or_spreads<'ast: 'r, 'r>(
30125        &mut self,
30126        node: &'ast [ExprOrSpread],
30127        __ast_path: &mut AstNodePath<'r>,
30128    ) {
30129        if self.enabled {
30130            <V as VisitAstPath>::visit_expr_or_spreads(&mut self.visitor, node, __ast_path)
30131        } else {
30132        }
30133    }
30134
30135    #[inline]
30136    fn visit_expr_stmt<'ast: 'r, 'r>(
30137        &mut self,
30138        node: &'ast ExprStmt,
30139        __ast_path: &mut AstNodePath<'r>,
30140    ) {
30141        if self.enabled {
30142            <V as VisitAstPath>::visit_expr_stmt(&mut self.visitor, node, __ast_path)
30143        } else {
30144        }
30145    }
30146
30147    #[inline]
30148    fn visit_exprs<'ast: 'r, 'r>(
30149        &mut self,
30150        node: &'ast [Box<Expr>],
30151        __ast_path: &mut AstNodePath<'r>,
30152    ) {
30153        if self.enabled {
30154            <V as VisitAstPath>::visit_exprs(&mut self.visitor, node, __ast_path)
30155        } else {
30156        }
30157    }
30158
30159    #[inline]
30160    fn visit_fn_decl<'ast: 'r, 'r>(
30161        &mut self,
30162        node: &'ast FnDecl,
30163        __ast_path: &mut AstNodePath<'r>,
30164    ) {
30165        if self.enabled {
30166            <V as VisitAstPath>::visit_fn_decl(&mut self.visitor, node, __ast_path)
30167        } else {
30168        }
30169    }
30170
30171    #[inline]
30172    fn visit_fn_expr<'ast: 'r, 'r>(
30173        &mut self,
30174        node: &'ast FnExpr,
30175        __ast_path: &mut AstNodePath<'r>,
30176    ) {
30177        if self.enabled {
30178            <V as VisitAstPath>::visit_fn_expr(&mut self.visitor, node, __ast_path)
30179        } else {
30180        }
30181    }
30182
30183    #[inline]
30184    fn visit_for_head<'ast: 'r, 'r>(
30185        &mut self,
30186        node: &'ast ForHead,
30187        __ast_path: &mut AstNodePath<'r>,
30188    ) {
30189        if self.enabled {
30190            <V as VisitAstPath>::visit_for_head(&mut self.visitor, node, __ast_path)
30191        } else {
30192        }
30193    }
30194
30195    #[inline]
30196    fn visit_for_in_stmt<'ast: 'r, 'r>(
30197        &mut self,
30198        node: &'ast ForInStmt,
30199        __ast_path: &mut AstNodePath<'r>,
30200    ) {
30201        if self.enabled {
30202            <V as VisitAstPath>::visit_for_in_stmt(&mut self.visitor, node, __ast_path)
30203        } else {
30204        }
30205    }
30206
30207    #[inline]
30208    fn visit_for_of_stmt<'ast: 'r, 'r>(
30209        &mut self,
30210        node: &'ast ForOfStmt,
30211        __ast_path: &mut AstNodePath<'r>,
30212    ) {
30213        if self.enabled {
30214            <V as VisitAstPath>::visit_for_of_stmt(&mut self.visitor, node, __ast_path)
30215        } else {
30216        }
30217    }
30218
30219    #[inline]
30220    fn visit_for_stmt<'ast: 'r, 'r>(
30221        &mut self,
30222        node: &'ast ForStmt,
30223        __ast_path: &mut AstNodePath<'r>,
30224    ) {
30225        if self.enabled {
30226            <V as VisitAstPath>::visit_for_stmt(&mut self.visitor, node, __ast_path)
30227        } else {
30228        }
30229    }
30230
30231    #[inline]
30232    fn visit_function<'ast: 'r, 'r>(
30233        &mut self,
30234        node: &'ast Function,
30235        __ast_path: &mut AstNodePath<'r>,
30236    ) {
30237        if self.enabled {
30238            <V as VisitAstPath>::visit_function(&mut self.visitor, node, __ast_path)
30239        } else {
30240        }
30241    }
30242
30243    #[inline]
30244    fn visit_getter_prop<'ast: 'r, 'r>(
30245        &mut self,
30246        node: &'ast GetterProp,
30247        __ast_path: &mut AstNodePath<'r>,
30248    ) {
30249        if self.enabled {
30250            <V as VisitAstPath>::visit_getter_prop(&mut self.visitor, node, __ast_path)
30251        } else {
30252        }
30253    }
30254
30255    #[inline]
30256    fn visit_ident<'ast: 'r, 'r>(&mut self, node: &'ast Ident, __ast_path: &mut AstNodePath<'r>) {
30257        if self.enabled {
30258            <V as VisitAstPath>::visit_ident(&mut self.visitor, node, __ast_path)
30259        } else {
30260        }
30261    }
30262
30263    #[inline]
30264    fn visit_ident_name<'ast: 'r, 'r>(
30265        &mut self,
30266        node: &'ast IdentName,
30267        __ast_path: &mut AstNodePath<'r>,
30268    ) {
30269        if self.enabled {
30270            <V as VisitAstPath>::visit_ident_name(&mut self.visitor, node, __ast_path)
30271        } else {
30272        }
30273    }
30274
30275    #[inline]
30276    fn visit_if_stmt<'ast: 'r, 'r>(
30277        &mut self,
30278        node: &'ast IfStmt,
30279        __ast_path: &mut AstNodePath<'r>,
30280    ) {
30281        if self.enabled {
30282            <V as VisitAstPath>::visit_if_stmt(&mut self.visitor, node, __ast_path)
30283        } else {
30284        }
30285    }
30286
30287    #[inline]
30288    fn visit_import<'ast: 'r, 'r>(&mut self, node: &'ast Import, __ast_path: &mut AstNodePath<'r>) {
30289        if self.enabled {
30290            <V as VisitAstPath>::visit_import(&mut self.visitor, node, __ast_path)
30291        } else {
30292        }
30293    }
30294
30295    #[inline]
30296    fn visit_import_decl<'ast: 'r, 'r>(
30297        &mut self,
30298        node: &'ast ImportDecl,
30299        __ast_path: &mut AstNodePath<'r>,
30300    ) {
30301        if self.enabled {
30302            <V as VisitAstPath>::visit_import_decl(&mut self.visitor, node, __ast_path)
30303        } else {
30304        }
30305    }
30306
30307    #[inline]
30308    fn visit_import_default_specifier<'ast: 'r, 'r>(
30309        &mut self,
30310        node: &'ast ImportDefaultSpecifier,
30311        __ast_path: &mut AstNodePath<'r>,
30312    ) {
30313        if self.enabled {
30314            <V as VisitAstPath>::visit_import_default_specifier(&mut self.visitor, node, __ast_path)
30315        } else {
30316        }
30317    }
30318
30319    #[inline]
30320    fn visit_import_named_specifier<'ast: 'r, 'r>(
30321        &mut self,
30322        node: &'ast ImportNamedSpecifier,
30323        __ast_path: &mut AstNodePath<'r>,
30324    ) {
30325        if self.enabled {
30326            <V as VisitAstPath>::visit_import_named_specifier(&mut self.visitor, node, __ast_path)
30327        } else {
30328        }
30329    }
30330
30331    #[inline]
30332    fn visit_import_phase<'ast: 'r, 'r>(
30333        &mut self,
30334        node: &'ast ImportPhase,
30335        __ast_path: &mut AstNodePath<'r>,
30336    ) {
30337        if self.enabled {
30338            <V as VisitAstPath>::visit_import_phase(&mut self.visitor, node, __ast_path)
30339        } else {
30340        }
30341    }
30342
30343    #[inline]
30344    fn visit_import_specifier<'ast: 'r, 'r>(
30345        &mut self,
30346        node: &'ast ImportSpecifier,
30347        __ast_path: &mut AstNodePath<'r>,
30348    ) {
30349        if self.enabled {
30350            <V as VisitAstPath>::visit_import_specifier(&mut self.visitor, node, __ast_path)
30351        } else {
30352        }
30353    }
30354
30355    #[inline]
30356    fn visit_import_specifiers<'ast: 'r, 'r>(
30357        &mut self,
30358        node: &'ast [ImportSpecifier],
30359        __ast_path: &mut AstNodePath<'r>,
30360    ) {
30361        if self.enabled {
30362            <V as VisitAstPath>::visit_import_specifiers(&mut self.visitor, node, __ast_path)
30363        } else {
30364        }
30365    }
30366
30367    #[inline]
30368    fn visit_import_star_as_specifier<'ast: 'r, 'r>(
30369        &mut self,
30370        node: &'ast ImportStarAsSpecifier,
30371        __ast_path: &mut AstNodePath<'r>,
30372    ) {
30373        if self.enabled {
30374            <V as VisitAstPath>::visit_import_star_as_specifier(&mut self.visitor, node, __ast_path)
30375        } else {
30376        }
30377    }
30378
30379    #[inline]
30380    fn visit_import_with<'ast: 'r, 'r>(
30381        &mut self,
30382        node: &'ast ImportWith,
30383        __ast_path: &mut AstNodePath<'r>,
30384    ) {
30385        if self.enabled {
30386            <V as VisitAstPath>::visit_import_with(&mut self.visitor, node, __ast_path)
30387        } else {
30388        }
30389    }
30390
30391    #[inline]
30392    fn visit_import_with_item<'ast: 'r, 'r>(
30393        &mut self,
30394        node: &'ast ImportWithItem,
30395        __ast_path: &mut AstNodePath<'r>,
30396    ) {
30397        if self.enabled {
30398            <V as VisitAstPath>::visit_import_with_item(&mut self.visitor, node, __ast_path)
30399        } else {
30400        }
30401    }
30402
30403    #[inline]
30404    fn visit_import_with_items<'ast: 'r, 'r>(
30405        &mut self,
30406        node: &'ast [ImportWithItem],
30407        __ast_path: &mut AstNodePath<'r>,
30408    ) {
30409        if self.enabled {
30410            <V as VisitAstPath>::visit_import_with_items(&mut self.visitor, node, __ast_path)
30411        } else {
30412        }
30413    }
30414
30415    #[inline]
30416    fn visit_invalid<'ast: 'r, 'r>(
30417        &mut self,
30418        node: &'ast Invalid,
30419        __ast_path: &mut AstNodePath<'r>,
30420    ) {
30421        if self.enabled {
30422            <V as VisitAstPath>::visit_invalid(&mut self.visitor, node, __ast_path)
30423        } else {
30424        }
30425    }
30426
30427    #[inline]
30428    fn visit_jsx_attr<'ast: 'r, 'r>(
30429        &mut self,
30430        node: &'ast JSXAttr,
30431        __ast_path: &mut AstNodePath<'r>,
30432    ) {
30433        if self.enabled {
30434            <V as VisitAstPath>::visit_jsx_attr(&mut self.visitor, node, __ast_path)
30435        } else {
30436        }
30437    }
30438
30439    #[inline]
30440    fn visit_jsx_attr_name<'ast: 'r, 'r>(
30441        &mut self,
30442        node: &'ast JSXAttrName,
30443        __ast_path: &mut AstNodePath<'r>,
30444    ) {
30445        if self.enabled {
30446            <V as VisitAstPath>::visit_jsx_attr_name(&mut self.visitor, node, __ast_path)
30447        } else {
30448        }
30449    }
30450
30451    #[inline]
30452    fn visit_jsx_attr_or_spread<'ast: 'r, 'r>(
30453        &mut self,
30454        node: &'ast JSXAttrOrSpread,
30455        __ast_path: &mut AstNodePath<'r>,
30456    ) {
30457        if self.enabled {
30458            <V as VisitAstPath>::visit_jsx_attr_or_spread(&mut self.visitor, node, __ast_path)
30459        } else {
30460        }
30461    }
30462
30463    #[inline]
30464    fn visit_jsx_attr_or_spreads<'ast: 'r, 'r>(
30465        &mut self,
30466        node: &'ast [JSXAttrOrSpread],
30467        __ast_path: &mut AstNodePath<'r>,
30468    ) {
30469        if self.enabled {
30470            <V as VisitAstPath>::visit_jsx_attr_or_spreads(&mut self.visitor, node, __ast_path)
30471        } else {
30472        }
30473    }
30474
30475    #[inline]
30476    fn visit_jsx_attr_value<'ast: 'r, 'r>(
30477        &mut self,
30478        node: &'ast JSXAttrValue,
30479        __ast_path: &mut AstNodePath<'r>,
30480    ) {
30481        if self.enabled {
30482            <V as VisitAstPath>::visit_jsx_attr_value(&mut self.visitor, node, __ast_path)
30483        } else {
30484        }
30485    }
30486
30487    #[inline]
30488    fn visit_jsx_closing_element<'ast: 'r, 'r>(
30489        &mut self,
30490        node: &'ast JSXClosingElement,
30491        __ast_path: &mut AstNodePath<'r>,
30492    ) {
30493        if self.enabled {
30494            <V as VisitAstPath>::visit_jsx_closing_element(&mut self.visitor, node, __ast_path)
30495        } else {
30496        }
30497    }
30498
30499    #[inline]
30500    fn visit_jsx_closing_fragment<'ast: 'r, 'r>(
30501        &mut self,
30502        node: &'ast JSXClosingFragment,
30503        __ast_path: &mut AstNodePath<'r>,
30504    ) {
30505        if self.enabled {
30506            <V as VisitAstPath>::visit_jsx_closing_fragment(&mut self.visitor, node, __ast_path)
30507        } else {
30508        }
30509    }
30510
30511    #[inline]
30512    fn visit_jsx_element<'ast: 'r, 'r>(
30513        &mut self,
30514        node: &'ast JSXElement,
30515        __ast_path: &mut AstNodePath<'r>,
30516    ) {
30517        if self.enabled {
30518            <V as VisitAstPath>::visit_jsx_element(&mut self.visitor, node, __ast_path)
30519        } else {
30520        }
30521    }
30522
30523    #[inline]
30524    fn visit_jsx_element_child<'ast: 'r, 'r>(
30525        &mut self,
30526        node: &'ast JSXElementChild,
30527        __ast_path: &mut AstNodePath<'r>,
30528    ) {
30529        if self.enabled {
30530            <V as VisitAstPath>::visit_jsx_element_child(&mut self.visitor, node, __ast_path)
30531        } else {
30532        }
30533    }
30534
30535    #[inline]
30536    fn visit_jsx_element_childs<'ast: 'r, 'r>(
30537        &mut self,
30538        node: &'ast [JSXElementChild],
30539        __ast_path: &mut AstNodePath<'r>,
30540    ) {
30541        if self.enabled {
30542            <V as VisitAstPath>::visit_jsx_element_childs(&mut self.visitor, node, __ast_path)
30543        } else {
30544        }
30545    }
30546
30547    #[inline]
30548    fn visit_jsx_element_name<'ast: 'r, 'r>(
30549        &mut self,
30550        node: &'ast JSXElementName,
30551        __ast_path: &mut AstNodePath<'r>,
30552    ) {
30553        if self.enabled {
30554            <V as VisitAstPath>::visit_jsx_element_name(&mut self.visitor, node, __ast_path)
30555        } else {
30556        }
30557    }
30558
30559    #[inline]
30560    fn visit_jsx_empty_expr<'ast: 'r, 'r>(
30561        &mut self,
30562        node: &'ast JSXEmptyExpr,
30563        __ast_path: &mut AstNodePath<'r>,
30564    ) {
30565        if self.enabled {
30566            <V as VisitAstPath>::visit_jsx_empty_expr(&mut self.visitor, node, __ast_path)
30567        } else {
30568        }
30569    }
30570
30571    #[inline]
30572    fn visit_jsx_expr<'ast: 'r, 'r>(
30573        &mut self,
30574        node: &'ast JSXExpr,
30575        __ast_path: &mut AstNodePath<'r>,
30576    ) {
30577        if self.enabled {
30578            <V as VisitAstPath>::visit_jsx_expr(&mut self.visitor, node, __ast_path)
30579        } else {
30580        }
30581    }
30582
30583    #[inline]
30584    fn visit_jsx_expr_container<'ast: 'r, 'r>(
30585        &mut self,
30586        node: &'ast JSXExprContainer,
30587        __ast_path: &mut AstNodePath<'r>,
30588    ) {
30589        if self.enabled {
30590            <V as VisitAstPath>::visit_jsx_expr_container(&mut self.visitor, node, __ast_path)
30591        } else {
30592        }
30593    }
30594
30595    #[inline]
30596    fn visit_jsx_fragment<'ast: 'r, 'r>(
30597        &mut self,
30598        node: &'ast JSXFragment,
30599        __ast_path: &mut AstNodePath<'r>,
30600    ) {
30601        if self.enabled {
30602            <V as VisitAstPath>::visit_jsx_fragment(&mut self.visitor, node, __ast_path)
30603        } else {
30604        }
30605    }
30606
30607    #[inline]
30608    fn visit_jsx_member_expr<'ast: 'r, 'r>(
30609        &mut self,
30610        node: &'ast JSXMemberExpr,
30611        __ast_path: &mut AstNodePath<'r>,
30612    ) {
30613        if self.enabled {
30614            <V as VisitAstPath>::visit_jsx_member_expr(&mut self.visitor, node, __ast_path)
30615        } else {
30616        }
30617    }
30618
30619    #[inline]
30620    fn visit_jsx_namespaced_name<'ast: 'r, 'r>(
30621        &mut self,
30622        node: &'ast JSXNamespacedName,
30623        __ast_path: &mut AstNodePath<'r>,
30624    ) {
30625        if self.enabled {
30626            <V as VisitAstPath>::visit_jsx_namespaced_name(&mut self.visitor, node, __ast_path)
30627        } else {
30628        }
30629    }
30630
30631    #[inline]
30632    fn visit_jsx_object<'ast: 'r, 'r>(
30633        &mut self,
30634        node: &'ast JSXObject,
30635        __ast_path: &mut AstNodePath<'r>,
30636    ) {
30637        if self.enabled {
30638            <V as VisitAstPath>::visit_jsx_object(&mut self.visitor, node, __ast_path)
30639        } else {
30640        }
30641    }
30642
30643    #[inline]
30644    fn visit_jsx_opening_element<'ast: 'r, 'r>(
30645        &mut self,
30646        node: &'ast JSXOpeningElement,
30647        __ast_path: &mut AstNodePath<'r>,
30648    ) {
30649        if self.enabled {
30650            <V as VisitAstPath>::visit_jsx_opening_element(&mut self.visitor, node, __ast_path)
30651        } else {
30652        }
30653    }
30654
30655    #[inline]
30656    fn visit_jsx_opening_fragment<'ast: 'r, 'r>(
30657        &mut self,
30658        node: &'ast JSXOpeningFragment,
30659        __ast_path: &mut AstNodePath<'r>,
30660    ) {
30661        if self.enabled {
30662            <V as VisitAstPath>::visit_jsx_opening_fragment(&mut self.visitor, node, __ast_path)
30663        } else {
30664        }
30665    }
30666
30667    #[inline]
30668    fn visit_jsx_spread_child<'ast: 'r, 'r>(
30669        &mut self,
30670        node: &'ast JSXSpreadChild,
30671        __ast_path: &mut AstNodePath<'r>,
30672    ) {
30673        if self.enabled {
30674            <V as VisitAstPath>::visit_jsx_spread_child(&mut self.visitor, node, __ast_path)
30675        } else {
30676        }
30677    }
30678
30679    #[inline]
30680    fn visit_jsx_text<'ast: 'r, 'r>(
30681        &mut self,
30682        node: &'ast JSXText,
30683        __ast_path: &mut AstNodePath<'r>,
30684    ) {
30685        if self.enabled {
30686            <V as VisitAstPath>::visit_jsx_text(&mut self.visitor, node, __ast_path)
30687        } else {
30688        }
30689    }
30690
30691    #[inline]
30692    fn visit_key<'ast: 'r, 'r>(&mut self, node: &'ast Key, __ast_path: &mut AstNodePath<'r>) {
30693        if self.enabled {
30694            <V as VisitAstPath>::visit_key(&mut self.visitor, node, __ast_path)
30695        } else {
30696        }
30697    }
30698
30699    #[inline]
30700    fn visit_key_value_pat_prop<'ast: 'r, 'r>(
30701        &mut self,
30702        node: &'ast KeyValuePatProp,
30703        __ast_path: &mut AstNodePath<'r>,
30704    ) {
30705        if self.enabled {
30706            <V as VisitAstPath>::visit_key_value_pat_prop(&mut self.visitor, node, __ast_path)
30707        } else {
30708        }
30709    }
30710
30711    #[inline]
30712    fn visit_key_value_prop<'ast: 'r, 'r>(
30713        &mut self,
30714        node: &'ast KeyValueProp,
30715        __ast_path: &mut AstNodePath<'r>,
30716    ) {
30717        if self.enabled {
30718            <V as VisitAstPath>::visit_key_value_prop(&mut self.visitor, node, __ast_path)
30719        } else {
30720        }
30721    }
30722
30723    #[inline]
30724    fn visit_labeled_stmt<'ast: 'r, 'r>(
30725        &mut self,
30726        node: &'ast LabeledStmt,
30727        __ast_path: &mut AstNodePath<'r>,
30728    ) {
30729        if self.enabled {
30730            <V as VisitAstPath>::visit_labeled_stmt(&mut self.visitor, node, __ast_path)
30731        } else {
30732        }
30733    }
30734
30735    #[inline]
30736    fn visit_lit<'ast: 'r, 'r>(&mut self, node: &'ast Lit, __ast_path: &mut AstNodePath<'r>) {
30737        if self.enabled {
30738            <V as VisitAstPath>::visit_lit(&mut self.visitor, node, __ast_path)
30739        } else {
30740        }
30741    }
30742
30743    #[inline]
30744    fn visit_member_expr<'ast: 'r, 'r>(
30745        &mut self,
30746        node: &'ast MemberExpr,
30747        __ast_path: &mut AstNodePath<'r>,
30748    ) {
30749        if self.enabled {
30750            <V as VisitAstPath>::visit_member_expr(&mut self.visitor, node, __ast_path)
30751        } else {
30752        }
30753    }
30754
30755    #[inline]
30756    fn visit_member_prop<'ast: 'r, 'r>(
30757        &mut self,
30758        node: &'ast MemberProp,
30759        __ast_path: &mut AstNodePath<'r>,
30760    ) {
30761        if self.enabled {
30762            <V as VisitAstPath>::visit_member_prop(&mut self.visitor, node, __ast_path)
30763        } else {
30764        }
30765    }
30766
30767    #[inline]
30768    fn visit_meta_prop_expr<'ast: 'r, 'r>(
30769        &mut self,
30770        node: &'ast MetaPropExpr,
30771        __ast_path: &mut AstNodePath<'r>,
30772    ) {
30773        if self.enabled {
30774            <V as VisitAstPath>::visit_meta_prop_expr(&mut self.visitor, node, __ast_path)
30775        } else {
30776        }
30777    }
30778
30779    #[inline]
30780    fn visit_meta_prop_kind<'ast: 'r, 'r>(
30781        &mut self,
30782        node: &'ast MetaPropKind,
30783        __ast_path: &mut AstNodePath<'r>,
30784    ) {
30785        if self.enabled {
30786            <V as VisitAstPath>::visit_meta_prop_kind(&mut self.visitor, node, __ast_path)
30787        } else {
30788        }
30789    }
30790
30791    #[inline]
30792    fn visit_method_kind<'ast: 'r, 'r>(
30793        &mut self,
30794        node: &'ast MethodKind,
30795        __ast_path: &mut AstNodePath<'r>,
30796    ) {
30797        if self.enabled {
30798            <V as VisitAstPath>::visit_method_kind(&mut self.visitor, node, __ast_path)
30799        } else {
30800        }
30801    }
30802
30803    #[inline]
30804    fn visit_method_prop<'ast: 'r, 'r>(
30805        &mut self,
30806        node: &'ast MethodProp,
30807        __ast_path: &mut AstNodePath<'r>,
30808    ) {
30809        if self.enabled {
30810            <V as VisitAstPath>::visit_method_prop(&mut self.visitor, node, __ast_path)
30811        } else {
30812        }
30813    }
30814
30815    #[inline]
30816    fn visit_module<'ast: 'r, 'r>(&mut self, node: &'ast Module, __ast_path: &mut AstNodePath<'r>) {
30817        if self.enabled {
30818            <V as VisitAstPath>::visit_module(&mut self.visitor, node, __ast_path)
30819        } else {
30820        }
30821    }
30822
30823    #[inline]
30824    fn visit_module_decl<'ast: 'r, 'r>(
30825        &mut self,
30826        node: &'ast ModuleDecl,
30827        __ast_path: &mut AstNodePath<'r>,
30828    ) {
30829        if self.enabled {
30830            <V as VisitAstPath>::visit_module_decl(&mut self.visitor, node, __ast_path)
30831        } else {
30832        }
30833    }
30834
30835    #[inline]
30836    fn visit_module_export_name<'ast: 'r, 'r>(
30837        &mut self,
30838        node: &'ast ModuleExportName,
30839        __ast_path: &mut AstNodePath<'r>,
30840    ) {
30841        if self.enabled {
30842            <V as VisitAstPath>::visit_module_export_name(&mut self.visitor, node, __ast_path)
30843        } else {
30844        }
30845    }
30846
30847    #[inline]
30848    fn visit_module_item<'ast: 'r, 'r>(
30849        &mut self,
30850        node: &'ast ModuleItem,
30851        __ast_path: &mut AstNodePath<'r>,
30852    ) {
30853        if self.enabled {
30854            <V as VisitAstPath>::visit_module_item(&mut self.visitor, node, __ast_path)
30855        } else {
30856        }
30857    }
30858
30859    #[inline]
30860    fn visit_module_items<'ast: 'r, 'r>(
30861        &mut self,
30862        node: &'ast [ModuleItem],
30863        __ast_path: &mut AstNodePath<'r>,
30864    ) {
30865        if self.enabled {
30866            <V as VisitAstPath>::visit_module_items(&mut self.visitor, node, __ast_path)
30867        } else {
30868        }
30869    }
30870
30871    #[inline]
30872    fn visit_named_export<'ast: 'r, 'r>(
30873        &mut self,
30874        node: &'ast NamedExport,
30875        __ast_path: &mut AstNodePath<'r>,
30876    ) {
30877        if self.enabled {
30878            <V as VisitAstPath>::visit_named_export(&mut self.visitor, node, __ast_path)
30879        } else {
30880        }
30881    }
30882
30883    #[inline]
30884    fn visit_new_expr<'ast: 'r, 'r>(
30885        &mut self,
30886        node: &'ast NewExpr,
30887        __ast_path: &mut AstNodePath<'r>,
30888    ) {
30889        if self.enabled {
30890            <V as VisitAstPath>::visit_new_expr(&mut self.visitor, node, __ast_path)
30891        } else {
30892        }
30893    }
30894
30895    #[inline]
30896    fn visit_null<'ast: 'r, 'r>(&mut self, node: &'ast Null, __ast_path: &mut AstNodePath<'r>) {
30897        if self.enabled {
30898            <V as VisitAstPath>::visit_null(&mut self.visitor, node, __ast_path)
30899        } else {
30900        }
30901    }
30902
30903    #[inline]
30904    fn visit_number<'ast: 'r, 'r>(&mut self, node: &'ast Number, __ast_path: &mut AstNodePath<'r>) {
30905        if self.enabled {
30906            <V as VisitAstPath>::visit_number(&mut self.visitor, node, __ast_path)
30907        } else {
30908        }
30909    }
30910
30911    #[inline]
30912    fn visit_object_lit<'ast: 'r, 'r>(
30913        &mut self,
30914        node: &'ast ObjectLit,
30915        __ast_path: &mut AstNodePath<'r>,
30916    ) {
30917        if self.enabled {
30918            <V as VisitAstPath>::visit_object_lit(&mut self.visitor, node, __ast_path)
30919        } else {
30920        }
30921    }
30922
30923    #[inline]
30924    fn visit_object_pat<'ast: 'r, 'r>(
30925        &mut self,
30926        node: &'ast ObjectPat,
30927        __ast_path: &mut AstNodePath<'r>,
30928    ) {
30929        if self.enabled {
30930            <V as VisitAstPath>::visit_object_pat(&mut self.visitor, node, __ast_path)
30931        } else {
30932        }
30933    }
30934
30935    #[inline]
30936    fn visit_object_pat_prop<'ast: 'r, 'r>(
30937        &mut self,
30938        node: &'ast ObjectPatProp,
30939        __ast_path: &mut AstNodePath<'r>,
30940    ) {
30941        if self.enabled {
30942            <V as VisitAstPath>::visit_object_pat_prop(&mut self.visitor, node, __ast_path)
30943        } else {
30944        }
30945    }
30946
30947    #[inline]
30948    fn visit_object_pat_props<'ast: 'r, 'r>(
30949        &mut self,
30950        node: &'ast [ObjectPatProp],
30951        __ast_path: &mut AstNodePath<'r>,
30952    ) {
30953        if self.enabled {
30954            <V as VisitAstPath>::visit_object_pat_props(&mut self.visitor, node, __ast_path)
30955        } else {
30956        }
30957    }
30958
30959    #[inline]
30960    fn visit_opt_accessibility<'ast: 'r, 'r>(
30961        &mut self,
30962        node: &'ast Option<Accessibility>,
30963        __ast_path: &mut AstNodePath<'r>,
30964    ) {
30965        if self.enabled {
30966            <V as VisitAstPath>::visit_opt_accessibility(&mut self.visitor, node, __ast_path)
30967        } else {
30968        }
30969    }
30970
30971    #[inline]
30972    fn visit_opt_atom<'ast: 'r, 'r>(
30973        &mut self,
30974        node: &'ast Option<swc_atoms::Atom>,
30975        __ast_path: &mut AstNodePath<'r>,
30976    ) {
30977        if self.enabled {
30978            <V as VisitAstPath>::visit_opt_atom(&mut self.visitor, node, __ast_path)
30979        } else {
30980        }
30981    }
30982
30983    #[inline]
30984    fn visit_opt_block_stmt<'ast: 'r, 'r>(
30985        &mut self,
30986        node: &'ast Option<BlockStmt>,
30987        __ast_path: &mut AstNodePath<'r>,
30988    ) {
30989        if self.enabled {
30990            <V as VisitAstPath>::visit_opt_block_stmt(&mut self.visitor, node, __ast_path)
30991        } else {
30992        }
30993    }
30994
30995    #[inline]
30996    fn visit_opt_call<'ast: 'r, 'r>(
30997        &mut self,
30998        node: &'ast OptCall,
30999        __ast_path: &mut AstNodePath<'r>,
31000    ) {
31001        if self.enabled {
31002            <V as VisitAstPath>::visit_opt_call(&mut self.visitor, node, __ast_path)
31003        } else {
31004        }
31005    }
31006
31007    #[inline]
31008    fn visit_opt_catch_clause<'ast: 'r, 'r>(
31009        &mut self,
31010        node: &'ast Option<CatchClause>,
31011        __ast_path: &mut AstNodePath<'r>,
31012    ) {
31013        if self.enabled {
31014            <V as VisitAstPath>::visit_opt_catch_clause(&mut self.visitor, node, __ast_path)
31015        } else {
31016        }
31017    }
31018
31019    #[inline]
31020    fn visit_opt_chain_base<'ast: 'r, 'r>(
31021        &mut self,
31022        node: &'ast OptChainBase,
31023        __ast_path: &mut AstNodePath<'r>,
31024    ) {
31025        if self.enabled {
31026            <V as VisitAstPath>::visit_opt_chain_base(&mut self.visitor, node, __ast_path)
31027        } else {
31028        }
31029    }
31030
31031    #[inline]
31032    fn visit_opt_chain_expr<'ast: 'r, 'r>(
31033        &mut self,
31034        node: &'ast OptChainExpr,
31035        __ast_path: &mut AstNodePath<'r>,
31036    ) {
31037        if self.enabled {
31038            <V as VisitAstPath>::visit_opt_chain_expr(&mut self.visitor, node, __ast_path)
31039        } else {
31040        }
31041    }
31042
31043    #[inline]
31044    fn visit_opt_expr<'ast: 'r, 'r>(
31045        &mut self,
31046        node: &'ast Option<Box<Expr>>,
31047        __ast_path: &mut AstNodePath<'r>,
31048    ) {
31049        if self.enabled {
31050            <V as VisitAstPath>::visit_opt_expr(&mut self.visitor, node, __ast_path)
31051        } else {
31052        }
31053    }
31054
31055    #[inline]
31056    fn visit_opt_expr_or_spread<'ast: 'r, 'r>(
31057        &mut self,
31058        node: &'ast Option<ExprOrSpread>,
31059        __ast_path: &mut AstNodePath<'r>,
31060    ) {
31061        if self.enabled {
31062            <V as VisitAstPath>::visit_opt_expr_or_spread(&mut self.visitor, node, __ast_path)
31063        } else {
31064        }
31065    }
31066
31067    #[inline]
31068    fn visit_opt_expr_or_spreads<'ast: 'r, 'r>(
31069        &mut self,
31070        node: &'ast Option<Vec<ExprOrSpread>>,
31071        __ast_path: &mut AstNodePath<'r>,
31072    ) {
31073        if self.enabled {
31074            <V as VisitAstPath>::visit_opt_expr_or_spreads(&mut self.visitor, node, __ast_path)
31075        } else {
31076        }
31077    }
31078
31079    #[inline]
31080    fn visit_opt_ident<'ast: 'r, 'r>(
31081        &mut self,
31082        node: &'ast Option<Ident>,
31083        __ast_path: &mut AstNodePath<'r>,
31084    ) {
31085        if self.enabled {
31086            <V as VisitAstPath>::visit_opt_ident(&mut self.visitor, node, __ast_path)
31087        } else {
31088        }
31089    }
31090
31091    #[inline]
31092    fn visit_opt_jsx_attr_value<'ast: 'r, 'r>(
31093        &mut self,
31094        node: &'ast Option<JSXAttrValue>,
31095        __ast_path: &mut AstNodePath<'r>,
31096    ) {
31097        if self.enabled {
31098            <V as VisitAstPath>::visit_opt_jsx_attr_value(&mut self.visitor, node, __ast_path)
31099        } else {
31100        }
31101    }
31102
31103    #[inline]
31104    fn visit_opt_jsx_closing_element<'ast: 'r, 'r>(
31105        &mut self,
31106        node: &'ast Option<JSXClosingElement>,
31107        __ast_path: &mut AstNodePath<'r>,
31108    ) {
31109        if self.enabled {
31110            <V as VisitAstPath>::visit_opt_jsx_closing_element(&mut self.visitor, node, __ast_path)
31111        } else {
31112        }
31113    }
31114
31115    #[inline]
31116    fn visit_opt_module_export_name<'ast: 'r, 'r>(
31117        &mut self,
31118        node: &'ast Option<ModuleExportName>,
31119        __ast_path: &mut AstNodePath<'r>,
31120    ) {
31121        if self.enabled {
31122            <V as VisitAstPath>::visit_opt_module_export_name(&mut self.visitor, node, __ast_path)
31123        } else {
31124        }
31125    }
31126
31127    #[inline]
31128    fn visit_opt_object_lit<'ast: 'r, 'r>(
31129        &mut self,
31130        node: &'ast Option<Box<ObjectLit>>,
31131        __ast_path: &mut AstNodePath<'r>,
31132    ) {
31133        if self.enabled {
31134            <V as VisitAstPath>::visit_opt_object_lit(&mut self.visitor, node, __ast_path)
31135        } else {
31136        }
31137    }
31138
31139    #[inline]
31140    fn visit_opt_pat<'ast: 'r, 'r>(
31141        &mut self,
31142        node: &'ast Option<Pat>,
31143        __ast_path: &mut AstNodePath<'r>,
31144    ) {
31145        if self.enabled {
31146            <V as VisitAstPath>::visit_opt_pat(&mut self.visitor, node, __ast_path)
31147        } else {
31148        }
31149    }
31150
31151    #[inline]
31152    fn visit_opt_span<'ast: 'r, 'r>(
31153        &mut self,
31154        node: &'ast Option<swc_common::Span>,
31155        __ast_path: &mut AstNodePath<'r>,
31156    ) {
31157        if self.enabled {
31158            <V as VisitAstPath>::visit_opt_span(&mut self.visitor, node, __ast_path)
31159        } else {
31160        }
31161    }
31162
31163    #[inline]
31164    fn visit_opt_stmt<'ast: 'r, 'r>(
31165        &mut self,
31166        node: &'ast Option<Box<Stmt>>,
31167        __ast_path: &mut AstNodePath<'r>,
31168    ) {
31169        if self.enabled {
31170            <V as VisitAstPath>::visit_opt_stmt(&mut self.visitor, node, __ast_path)
31171        } else {
31172        }
31173    }
31174
31175    #[inline]
31176    fn visit_opt_str<'ast: 'r, 'r>(
31177        &mut self,
31178        node: &'ast Option<Box<Str>>,
31179        __ast_path: &mut AstNodePath<'r>,
31180    ) {
31181        if self.enabled {
31182            <V as VisitAstPath>::visit_opt_str(&mut self.visitor, node, __ast_path)
31183        } else {
31184        }
31185    }
31186
31187    #[inline]
31188    fn visit_opt_true_plus_minus<'ast: 'r, 'r>(
31189        &mut self,
31190        node: &'ast Option<TruePlusMinus>,
31191        __ast_path: &mut AstNodePath<'r>,
31192    ) {
31193        if self.enabled {
31194            <V as VisitAstPath>::visit_opt_true_plus_minus(&mut self.visitor, node, __ast_path)
31195        } else {
31196        }
31197    }
31198
31199    #[inline]
31200    fn visit_opt_ts_entity_name<'ast: 'r, 'r>(
31201        &mut self,
31202        node: &'ast Option<TsEntityName>,
31203        __ast_path: &mut AstNodePath<'r>,
31204    ) {
31205        if self.enabled {
31206            <V as VisitAstPath>::visit_opt_ts_entity_name(&mut self.visitor, node, __ast_path)
31207        } else {
31208        }
31209    }
31210
31211    #[inline]
31212    fn visit_opt_ts_import_call_options<'ast: 'r, 'r>(
31213        &mut self,
31214        node: &'ast Option<TsImportCallOptions>,
31215        __ast_path: &mut AstNodePath<'r>,
31216    ) {
31217        if self.enabled {
31218            <V as VisitAstPath>::visit_opt_ts_import_call_options(
31219                &mut self.visitor,
31220                node,
31221                __ast_path,
31222            )
31223        } else {
31224        }
31225    }
31226
31227    #[inline]
31228    fn visit_opt_ts_namespace_body<'ast: 'r, 'r>(
31229        &mut self,
31230        node: &'ast Option<TsNamespaceBody>,
31231        __ast_path: &mut AstNodePath<'r>,
31232    ) {
31233        if self.enabled {
31234            <V as VisitAstPath>::visit_opt_ts_namespace_body(&mut self.visitor, node, __ast_path)
31235        } else {
31236        }
31237    }
31238
31239    #[inline]
31240    fn visit_opt_ts_type<'ast: 'r, 'r>(
31241        &mut self,
31242        node: &'ast Option<Box<TsType>>,
31243        __ast_path: &mut AstNodePath<'r>,
31244    ) {
31245        if self.enabled {
31246            <V as VisitAstPath>::visit_opt_ts_type(&mut self.visitor, node, __ast_path)
31247        } else {
31248        }
31249    }
31250
31251    #[inline]
31252    fn visit_opt_ts_type_ann<'ast: 'r, 'r>(
31253        &mut self,
31254        node: &'ast Option<Box<TsTypeAnn>>,
31255        __ast_path: &mut AstNodePath<'r>,
31256    ) {
31257        if self.enabled {
31258            <V as VisitAstPath>::visit_opt_ts_type_ann(&mut self.visitor, node, __ast_path)
31259        } else {
31260        }
31261    }
31262
31263    #[inline]
31264    fn visit_opt_ts_type_param_decl<'ast: 'r, 'r>(
31265        &mut self,
31266        node: &'ast Option<Box<TsTypeParamDecl>>,
31267        __ast_path: &mut AstNodePath<'r>,
31268    ) {
31269        if self.enabled {
31270            <V as VisitAstPath>::visit_opt_ts_type_param_decl(&mut self.visitor, node, __ast_path)
31271        } else {
31272        }
31273    }
31274
31275    #[inline]
31276    fn visit_opt_ts_type_param_instantiation<'ast: 'r, 'r>(
31277        &mut self,
31278        node: &'ast Option<Box<TsTypeParamInstantiation>>,
31279        __ast_path: &mut AstNodePath<'r>,
31280    ) {
31281        if self.enabled {
31282            <V as VisitAstPath>::visit_opt_ts_type_param_instantiation(
31283                &mut self.visitor,
31284                node,
31285                __ast_path,
31286            )
31287        } else {
31288        }
31289    }
31290
31291    #[inline]
31292    fn visit_opt_var_decl_or_expr<'ast: 'r, 'r>(
31293        &mut self,
31294        node: &'ast Option<VarDeclOrExpr>,
31295        __ast_path: &mut AstNodePath<'r>,
31296    ) {
31297        if self.enabled {
31298            <V as VisitAstPath>::visit_opt_var_decl_or_expr(&mut self.visitor, node, __ast_path)
31299        } else {
31300        }
31301    }
31302
31303    #[inline]
31304    fn visit_opt_vec_expr_or_spreads<'ast: 'r, 'r>(
31305        &mut self,
31306        node: &'ast [Option<ExprOrSpread>],
31307        __ast_path: &mut AstNodePath<'r>,
31308    ) {
31309        if self.enabled {
31310            <V as VisitAstPath>::visit_opt_vec_expr_or_spreads(&mut self.visitor, node, __ast_path)
31311        } else {
31312        }
31313    }
31314
31315    #[inline]
31316    fn visit_opt_vec_pats<'ast: 'r, 'r>(
31317        &mut self,
31318        node: &'ast [Option<Pat>],
31319        __ast_path: &mut AstNodePath<'r>,
31320    ) {
31321        if self.enabled {
31322            <V as VisitAstPath>::visit_opt_vec_pats(&mut self.visitor, node, __ast_path)
31323        } else {
31324        }
31325    }
31326
31327    #[inline]
31328    fn visit_param<'ast: 'r, 'r>(&mut self, node: &'ast Param, __ast_path: &mut AstNodePath<'r>) {
31329        if self.enabled {
31330            <V as VisitAstPath>::visit_param(&mut self.visitor, node, __ast_path)
31331        } else {
31332        }
31333    }
31334
31335    #[inline]
31336    fn visit_param_or_ts_param_prop<'ast: 'r, 'r>(
31337        &mut self,
31338        node: &'ast ParamOrTsParamProp,
31339        __ast_path: &mut AstNodePath<'r>,
31340    ) {
31341        if self.enabled {
31342            <V as VisitAstPath>::visit_param_or_ts_param_prop(&mut self.visitor, node, __ast_path)
31343        } else {
31344        }
31345    }
31346
31347    #[inline]
31348    fn visit_param_or_ts_param_props<'ast: 'r, 'r>(
31349        &mut self,
31350        node: &'ast [ParamOrTsParamProp],
31351        __ast_path: &mut AstNodePath<'r>,
31352    ) {
31353        if self.enabled {
31354            <V as VisitAstPath>::visit_param_or_ts_param_props(&mut self.visitor, node, __ast_path)
31355        } else {
31356        }
31357    }
31358
31359    #[inline]
31360    fn visit_params<'ast: 'r, 'r>(
31361        &mut self,
31362        node: &'ast [Param],
31363        __ast_path: &mut AstNodePath<'r>,
31364    ) {
31365        if self.enabled {
31366            <V as VisitAstPath>::visit_params(&mut self.visitor, node, __ast_path)
31367        } else {
31368        }
31369    }
31370
31371    #[inline]
31372    fn visit_paren_expr<'ast: 'r, 'r>(
31373        &mut self,
31374        node: &'ast ParenExpr,
31375        __ast_path: &mut AstNodePath<'r>,
31376    ) {
31377        if self.enabled {
31378            <V as VisitAstPath>::visit_paren_expr(&mut self.visitor, node, __ast_path)
31379        } else {
31380        }
31381    }
31382
31383    #[inline]
31384    fn visit_pat<'ast: 'r, 'r>(&mut self, node: &'ast Pat, __ast_path: &mut AstNodePath<'r>) {
31385        if self.enabled {
31386            <V as VisitAstPath>::visit_pat(&mut self.visitor, node, __ast_path)
31387        } else {
31388        }
31389    }
31390
31391    #[inline]
31392    fn visit_pats<'ast: 'r, 'r>(&mut self, node: &'ast [Pat], __ast_path: &mut AstNodePath<'r>) {
31393        if self.enabled {
31394            <V as VisitAstPath>::visit_pats(&mut self.visitor, node, __ast_path)
31395        } else {
31396        }
31397    }
31398
31399    #[inline]
31400    fn visit_private_method<'ast: 'r, 'r>(
31401        &mut self,
31402        node: &'ast PrivateMethod,
31403        __ast_path: &mut AstNodePath<'r>,
31404    ) {
31405        if self.enabled {
31406            <V as VisitAstPath>::visit_private_method(&mut self.visitor, node, __ast_path)
31407        } else {
31408        }
31409    }
31410
31411    #[inline]
31412    fn visit_private_name<'ast: 'r, 'r>(
31413        &mut self,
31414        node: &'ast PrivateName,
31415        __ast_path: &mut AstNodePath<'r>,
31416    ) {
31417        if self.enabled {
31418            <V as VisitAstPath>::visit_private_name(&mut self.visitor, node, __ast_path)
31419        } else {
31420        }
31421    }
31422
31423    #[inline]
31424    fn visit_private_prop<'ast: 'r, 'r>(
31425        &mut self,
31426        node: &'ast PrivateProp,
31427        __ast_path: &mut AstNodePath<'r>,
31428    ) {
31429        if self.enabled {
31430            <V as VisitAstPath>::visit_private_prop(&mut self.visitor, node, __ast_path)
31431        } else {
31432        }
31433    }
31434
31435    #[inline]
31436    fn visit_program<'ast: 'r, 'r>(
31437        &mut self,
31438        node: &'ast Program,
31439        __ast_path: &mut AstNodePath<'r>,
31440    ) {
31441        if self.enabled {
31442            <V as VisitAstPath>::visit_program(&mut self.visitor, node, __ast_path)
31443        } else {
31444        }
31445    }
31446
31447    #[inline]
31448    fn visit_prop<'ast: 'r, 'r>(&mut self, node: &'ast Prop, __ast_path: &mut AstNodePath<'r>) {
31449        if self.enabled {
31450            <V as VisitAstPath>::visit_prop(&mut self.visitor, node, __ast_path)
31451        } else {
31452        }
31453    }
31454
31455    #[inline]
31456    fn visit_prop_name<'ast: 'r, 'r>(
31457        &mut self,
31458        node: &'ast PropName,
31459        __ast_path: &mut AstNodePath<'r>,
31460    ) {
31461        if self.enabled {
31462            <V as VisitAstPath>::visit_prop_name(&mut self.visitor, node, __ast_path)
31463        } else {
31464        }
31465    }
31466
31467    #[inline]
31468    fn visit_prop_or_spread<'ast: 'r, 'r>(
31469        &mut self,
31470        node: &'ast PropOrSpread,
31471        __ast_path: &mut AstNodePath<'r>,
31472    ) {
31473        if self.enabled {
31474            <V as VisitAstPath>::visit_prop_or_spread(&mut self.visitor, node, __ast_path)
31475        } else {
31476        }
31477    }
31478
31479    #[inline]
31480    fn visit_prop_or_spreads<'ast: 'r, 'r>(
31481        &mut self,
31482        node: &'ast [PropOrSpread],
31483        __ast_path: &mut AstNodePath<'r>,
31484    ) {
31485        if self.enabled {
31486            <V as VisitAstPath>::visit_prop_or_spreads(&mut self.visitor, node, __ast_path)
31487        } else {
31488        }
31489    }
31490
31491    #[inline]
31492    fn visit_regex<'ast: 'r, 'r>(&mut self, node: &'ast Regex, __ast_path: &mut AstNodePath<'r>) {
31493        if self.enabled {
31494            <V as VisitAstPath>::visit_regex(&mut self.visitor, node, __ast_path)
31495        } else {
31496        }
31497    }
31498
31499    #[inline]
31500    fn visit_rest_pat<'ast: 'r, 'r>(
31501        &mut self,
31502        node: &'ast RestPat,
31503        __ast_path: &mut AstNodePath<'r>,
31504    ) {
31505        if self.enabled {
31506            <V as VisitAstPath>::visit_rest_pat(&mut self.visitor, node, __ast_path)
31507        } else {
31508        }
31509    }
31510
31511    #[inline]
31512    fn visit_return_stmt<'ast: 'r, 'r>(
31513        &mut self,
31514        node: &'ast ReturnStmt,
31515        __ast_path: &mut AstNodePath<'r>,
31516    ) {
31517        if self.enabled {
31518            <V as VisitAstPath>::visit_return_stmt(&mut self.visitor, node, __ast_path)
31519        } else {
31520        }
31521    }
31522
31523    #[inline]
31524    fn visit_script<'ast: 'r, 'r>(&mut self, node: &'ast Script, __ast_path: &mut AstNodePath<'r>) {
31525        if self.enabled {
31526            <V as VisitAstPath>::visit_script(&mut self.visitor, node, __ast_path)
31527        } else {
31528        }
31529    }
31530
31531    #[inline]
31532    fn visit_seq_expr<'ast: 'r, 'r>(
31533        &mut self,
31534        node: &'ast SeqExpr,
31535        __ast_path: &mut AstNodePath<'r>,
31536    ) {
31537        if self.enabled {
31538            <V as VisitAstPath>::visit_seq_expr(&mut self.visitor, node, __ast_path)
31539        } else {
31540        }
31541    }
31542
31543    #[inline]
31544    fn visit_setter_prop<'ast: 'r, 'r>(
31545        &mut self,
31546        node: &'ast SetterProp,
31547        __ast_path: &mut AstNodePath<'r>,
31548    ) {
31549        if self.enabled {
31550            <V as VisitAstPath>::visit_setter_prop(&mut self.visitor, node, __ast_path)
31551        } else {
31552        }
31553    }
31554
31555    #[inline]
31556    fn visit_simple_assign_target<'ast: 'r, 'r>(
31557        &mut self,
31558        node: &'ast SimpleAssignTarget,
31559        __ast_path: &mut AstNodePath<'r>,
31560    ) {
31561        if self.enabled {
31562            <V as VisitAstPath>::visit_simple_assign_target(&mut self.visitor, node, __ast_path)
31563        } else {
31564        }
31565    }
31566
31567    #[inline]
31568    fn visit_span<'ast: 'r, 'r>(
31569        &mut self,
31570        node: &'ast swc_common::Span,
31571        __ast_path: &mut AstNodePath<'r>,
31572    ) {
31573        if self.enabled {
31574            <V as VisitAstPath>::visit_span(&mut self.visitor, node, __ast_path)
31575        } else {
31576        }
31577    }
31578
31579    #[inline]
31580    fn visit_spread_element<'ast: 'r, 'r>(
31581        &mut self,
31582        node: &'ast SpreadElement,
31583        __ast_path: &mut AstNodePath<'r>,
31584    ) {
31585        if self.enabled {
31586            <V as VisitAstPath>::visit_spread_element(&mut self.visitor, node, __ast_path)
31587        } else {
31588        }
31589    }
31590
31591    #[inline]
31592    fn visit_static_block<'ast: 'r, 'r>(
31593        &mut self,
31594        node: &'ast StaticBlock,
31595        __ast_path: &mut AstNodePath<'r>,
31596    ) {
31597        if self.enabled {
31598            <V as VisitAstPath>::visit_static_block(&mut self.visitor, node, __ast_path)
31599        } else {
31600        }
31601    }
31602
31603    #[inline]
31604    fn visit_stmt<'ast: 'r, 'r>(&mut self, node: &'ast Stmt, __ast_path: &mut AstNodePath<'r>) {
31605        if self.enabled {
31606            <V as VisitAstPath>::visit_stmt(&mut self.visitor, node, __ast_path)
31607        } else {
31608        }
31609    }
31610
31611    #[inline]
31612    fn visit_stmts<'ast: 'r, 'r>(&mut self, node: &'ast [Stmt], __ast_path: &mut AstNodePath<'r>) {
31613        if self.enabled {
31614            <V as VisitAstPath>::visit_stmts(&mut self.visitor, node, __ast_path)
31615        } else {
31616        }
31617    }
31618
31619    #[inline]
31620    fn visit_str<'ast: 'r, 'r>(&mut self, node: &'ast Str, __ast_path: &mut AstNodePath<'r>) {
31621        if self.enabled {
31622            <V as VisitAstPath>::visit_str(&mut self.visitor, node, __ast_path)
31623        } else {
31624        }
31625    }
31626
31627    #[inline]
31628    fn visit_super<'ast: 'r, 'r>(&mut self, node: &'ast Super, __ast_path: &mut AstNodePath<'r>) {
31629        if self.enabled {
31630            <V as VisitAstPath>::visit_super(&mut self.visitor, node, __ast_path)
31631        } else {
31632        }
31633    }
31634
31635    #[inline]
31636    fn visit_super_prop<'ast: 'r, 'r>(
31637        &mut self,
31638        node: &'ast SuperProp,
31639        __ast_path: &mut AstNodePath<'r>,
31640    ) {
31641        if self.enabled {
31642            <V as VisitAstPath>::visit_super_prop(&mut self.visitor, node, __ast_path)
31643        } else {
31644        }
31645    }
31646
31647    #[inline]
31648    fn visit_super_prop_expr<'ast: 'r, 'r>(
31649        &mut self,
31650        node: &'ast SuperPropExpr,
31651        __ast_path: &mut AstNodePath<'r>,
31652    ) {
31653        if self.enabled {
31654            <V as VisitAstPath>::visit_super_prop_expr(&mut self.visitor, node, __ast_path)
31655        } else {
31656        }
31657    }
31658
31659    #[inline]
31660    fn visit_switch_case<'ast: 'r, 'r>(
31661        &mut self,
31662        node: &'ast SwitchCase,
31663        __ast_path: &mut AstNodePath<'r>,
31664    ) {
31665        if self.enabled {
31666            <V as VisitAstPath>::visit_switch_case(&mut self.visitor, node, __ast_path)
31667        } else {
31668        }
31669    }
31670
31671    #[inline]
31672    fn visit_switch_cases<'ast: 'r, 'r>(
31673        &mut self,
31674        node: &'ast [SwitchCase],
31675        __ast_path: &mut AstNodePath<'r>,
31676    ) {
31677        if self.enabled {
31678            <V as VisitAstPath>::visit_switch_cases(&mut self.visitor, node, __ast_path)
31679        } else {
31680        }
31681    }
31682
31683    #[inline]
31684    fn visit_switch_stmt<'ast: 'r, 'r>(
31685        &mut self,
31686        node: &'ast SwitchStmt,
31687        __ast_path: &mut AstNodePath<'r>,
31688    ) {
31689        if self.enabled {
31690            <V as VisitAstPath>::visit_switch_stmt(&mut self.visitor, node, __ast_path)
31691        } else {
31692        }
31693    }
31694
31695    #[inline]
31696    fn visit_syntax_context<'ast: 'r, 'r>(
31697        &mut self,
31698        node: &'ast swc_common::SyntaxContext,
31699        __ast_path: &mut AstNodePath<'r>,
31700    ) {
31701        if self.enabled {
31702            <V as VisitAstPath>::visit_syntax_context(&mut self.visitor, node, __ast_path)
31703        } else {
31704        }
31705    }
31706
31707    #[inline]
31708    fn visit_tagged_tpl<'ast: 'r, 'r>(
31709        &mut self,
31710        node: &'ast TaggedTpl,
31711        __ast_path: &mut AstNodePath<'r>,
31712    ) {
31713        if self.enabled {
31714            <V as VisitAstPath>::visit_tagged_tpl(&mut self.visitor, node, __ast_path)
31715        } else {
31716        }
31717    }
31718
31719    #[inline]
31720    fn visit_this_expr<'ast: 'r, 'r>(
31721        &mut self,
31722        node: &'ast ThisExpr,
31723        __ast_path: &mut AstNodePath<'r>,
31724    ) {
31725        if self.enabled {
31726            <V as VisitAstPath>::visit_this_expr(&mut self.visitor, node, __ast_path)
31727        } else {
31728        }
31729    }
31730
31731    #[inline]
31732    fn visit_throw_stmt<'ast: 'r, 'r>(
31733        &mut self,
31734        node: &'ast ThrowStmt,
31735        __ast_path: &mut AstNodePath<'r>,
31736    ) {
31737        if self.enabled {
31738            <V as VisitAstPath>::visit_throw_stmt(&mut self.visitor, node, __ast_path)
31739        } else {
31740        }
31741    }
31742
31743    #[inline]
31744    fn visit_tpl<'ast: 'r, 'r>(&mut self, node: &'ast Tpl, __ast_path: &mut AstNodePath<'r>) {
31745        if self.enabled {
31746            <V as VisitAstPath>::visit_tpl(&mut self.visitor, node, __ast_path)
31747        } else {
31748        }
31749    }
31750
31751    #[inline]
31752    fn visit_tpl_element<'ast: 'r, 'r>(
31753        &mut self,
31754        node: &'ast TplElement,
31755        __ast_path: &mut AstNodePath<'r>,
31756    ) {
31757        if self.enabled {
31758            <V as VisitAstPath>::visit_tpl_element(&mut self.visitor, node, __ast_path)
31759        } else {
31760        }
31761    }
31762
31763    #[inline]
31764    fn visit_tpl_elements<'ast: 'r, 'r>(
31765        &mut self,
31766        node: &'ast [TplElement],
31767        __ast_path: &mut AstNodePath<'r>,
31768    ) {
31769        if self.enabled {
31770            <V as VisitAstPath>::visit_tpl_elements(&mut self.visitor, node, __ast_path)
31771        } else {
31772        }
31773    }
31774
31775    #[inline]
31776    fn visit_true_plus_minus<'ast: 'r, 'r>(
31777        &mut self,
31778        node: &'ast TruePlusMinus,
31779        __ast_path: &mut AstNodePath<'r>,
31780    ) {
31781        if self.enabled {
31782            <V as VisitAstPath>::visit_true_plus_minus(&mut self.visitor, node, __ast_path)
31783        } else {
31784        }
31785    }
31786
31787    #[inline]
31788    fn visit_try_stmt<'ast: 'r, 'r>(
31789        &mut self,
31790        node: &'ast TryStmt,
31791        __ast_path: &mut AstNodePath<'r>,
31792    ) {
31793        if self.enabled {
31794            <V as VisitAstPath>::visit_try_stmt(&mut self.visitor, node, __ast_path)
31795        } else {
31796        }
31797    }
31798
31799    #[inline]
31800    fn visit_ts_array_type<'ast: 'r, 'r>(
31801        &mut self,
31802        node: &'ast TsArrayType,
31803        __ast_path: &mut AstNodePath<'r>,
31804    ) {
31805        if self.enabled {
31806            <V as VisitAstPath>::visit_ts_array_type(&mut self.visitor, node, __ast_path)
31807        } else {
31808        }
31809    }
31810
31811    #[inline]
31812    fn visit_ts_as_expr<'ast: 'r, 'r>(
31813        &mut self,
31814        node: &'ast TsAsExpr,
31815        __ast_path: &mut AstNodePath<'r>,
31816    ) {
31817        if self.enabled {
31818            <V as VisitAstPath>::visit_ts_as_expr(&mut self.visitor, node, __ast_path)
31819        } else {
31820        }
31821    }
31822
31823    #[inline]
31824    fn visit_ts_call_signature_decl<'ast: 'r, 'r>(
31825        &mut self,
31826        node: &'ast TsCallSignatureDecl,
31827        __ast_path: &mut AstNodePath<'r>,
31828    ) {
31829        if self.enabled {
31830            <V as VisitAstPath>::visit_ts_call_signature_decl(&mut self.visitor, node, __ast_path)
31831        } else {
31832        }
31833    }
31834
31835    #[inline]
31836    fn visit_ts_conditional_type<'ast: 'r, 'r>(
31837        &mut self,
31838        node: &'ast TsConditionalType,
31839        __ast_path: &mut AstNodePath<'r>,
31840    ) {
31841        if self.enabled {
31842            <V as VisitAstPath>::visit_ts_conditional_type(&mut self.visitor, node, __ast_path)
31843        } else {
31844        }
31845    }
31846
31847    #[inline]
31848    fn visit_ts_const_assertion<'ast: 'r, 'r>(
31849        &mut self,
31850        node: &'ast TsConstAssertion,
31851        __ast_path: &mut AstNodePath<'r>,
31852    ) {
31853        if self.enabled {
31854            <V as VisitAstPath>::visit_ts_const_assertion(&mut self.visitor, node, __ast_path)
31855        } else {
31856        }
31857    }
31858
31859    #[inline]
31860    fn visit_ts_construct_signature_decl<'ast: 'r, 'r>(
31861        &mut self,
31862        node: &'ast TsConstructSignatureDecl,
31863        __ast_path: &mut AstNodePath<'r>,
31864    ) {
31865        if self.enabled {
31866            <V as VisitAstPath>::visit_ts_construct_signature_decl(
31867                &mut self.visitor,
31868                node,
31869                __ast_path,
31870            )
31871        } else {
31872        }
31873    }
31874
31875    #[inline]
31876    fn visit_ts_constructor_type<'ast: 'r, 'r>(
31877        &mut self,
31878        node: &'ast TsConstructorType,
31879        __ast_path: &mut AstNodePath<'r>,
31880    ) {
31881        if self.enabled {
31882            <V as VisitAstPath>::visit_ts_constructor_type(&mut self.visitor, node, __ast_path)
31883        } else {
31884        }
31885    }
31886
31887    #[inline]
31888    fn visit_ts_entity_name<'ast: 'r, 'r>(
31889        &mut self,
31890        node: &'ast TsEntityName,
31891        __ast_path: &mut AstNodePath<'r>,
31892    ) {
31893        if self.enabled {
31894            <V as VisitAstPath>::visit_ts_entity_name(&mut self.visitor, node, __ast_path)
31895        } else {
31896        }
31897    }
31898
31899    #[inline]
31900    fn visit_ts_enum_decl<'ast: 'r, 'r>(
31901        &mut self,
31902        node: &'ast TsEnumDecl,
31903        __ast_path: &mut AstNodePath<'r>,
31904    ) {
31905        if self.enabled {
31906            <V as VisitAstPath>::visit_ts_enum_decl(&mut self.visitor, node, __ast_path)
31907        } else {
31908        }
31909    }
31910
31911    #[inline]
31912    fn visit_ts_enum_member<'ast: 'r, 'r>(
31913        &mut self,
31914        node: &'ast TsEnumMember,
31915        __ast_path: &mut AstNodePath<'r>,
31916    ) {
31917        if self.enabled {
31918            <V as VisitAstPath>::visit_ts_enum_member(&mut self.visitor, node, __ast_path)
31919        } else {
31920        }
31921    }
31922
31923    #[inline]
31924    fn visit_ts_enum_member_id<'ast: 'r, 'r>(
31925        &mut self,
31926        node: &'ast TsEnumMemberId,
31927        __ast_path: &mut AstNodePath<'r>,
31928    ) {
31929        if self.enabled {
31930            <V as VisitAstPath>::visit_ts_enum_member_id(&mut self.visitor, node, __ast_path)
31931        } else {
31932        }
31933    }
31934
31935    #[inline]
31936    fn visit_ts_enum_members<'ast: 'r, 'r>(
31937        &mut self,
31938        node: &'ast [TsEnumMember],
31939        __ast_path: &mut AstNodePath<'r>,
31940    ) {
31941        if self.enabled {
31942            <V as VisitAstPath>::visit_ts_enum_members(&mut self.visitor, node, __ast_path)
31943        } else {
31944        }
31945    }
31946
31947    #[inline]
31948    fn visit_ts_export_assignment<'ast: 'r, 'r>(
31949        &mut self,
31950        node: &'ast TsExportAssignment,
31951        __ast_path: &mut AstNodePath<'r>,
31952    ) {
31953        if self.enabled {
31954            <V as VisitAstPath>::visit_ts_export_assignment(&mut self.visitor, node, __ast_path)
31955        } else {
31956        }
31957    }
31958
31959    #[inline]
31960    fn visit_ts_expr_with_type_args<'ast: 'r, 'r>(
31961        &mut self,
31962        node: &'ast TsExprWithTypeArgs,
31963        __ast_path: &mut AstNodePath<'r>,
31964    ) {
31965        if self.enabled {
31966            <V as VisitAstPath>::visit_ts_expr_with_type_args(&mut self.visitor, node, __ast_path)
31967        } else {
31968        }
31969    }
31970
31971    #[inline]
31972    fn visit_ts_expr_with_type_argss<'ast: 'r, 'r>(
31973        &mut self,
31974        node: &'ast [TsExprWithTypeArgs],
31975        __ast_path: &mut AstNodePath<'r>,
31976    ) {
31977        if self.enabled {
31978            <V as VisitAstPath>::visit_ts_expr_with_type_argss(&mut self.visitor, node, __ast_path)
31979        } else {
31980        }
31981    }
31982
31983    #[inline]
31984    fn visit_ts_external_module_ref<'ast: 'r, 'r>(
31985        &mut self,
31986        node: &'ast TsExternalModuleRef,
31987        __ast_path: &mut AstNodePath<'r>,
31988    ) {
31989        if self.enabled {
31990            <V as VisitAstPath>::visit_ts_external_module_ref(&mut self.visitor, node, __ast_path)
31991        } else {
31992        }
31993    }
31994
31995    #[inline]
31996    fn visit_ts_fn_or_constructor_type<'ast: 'r, 'r>(
31997        &mut self,
31998        node: &'ast TsFnOrConstructorType,
31999        __ast_path: &mut AstNodePath<'r>,
32000    ) {
32001        if self.enabled {
32002            <V as VisitAstPath>::visit_ts_fn_or_constructor_type(
32003                &mut self.visitor,
32004                node,
32005                __ast_path,
32006            )
32007        } else {
32008        }
32009    }
32010
32011    #[inline]
32012    fn visit_ts_fn_param<'ast: 'r, 'r>(
32013        &mut self,
32014        node: &'ast TsFnParam,
32015        __ast_path: &mut AstNodePath<'r>,
32016    ) {
32017        if self.enabled {
32018            <V as VisitAstPath>::visit_ts_fn_param(&mut self.visitor, node, __ast_path)
32019        } else {
32020        }
32021    }
32022
32023    #[inline]
32024    fn visit_ts_fn_params<'ast: 'r, 'r>(
32025        &mut self,
32026        node: &'ast [TsFnParam],
32027        __ast_path: &mut AstNodePath<'r>,
32028    ) {
32029        if self.enabled {
32030            <V as VisitAstPath>::visit_ts_fn_params(&mut self.visitor, node, __ast_path)
32031        } else {
32032        }
32033    }
32034
32035    #[inline]
32036    fn visit_ts_fn_type<'ast: 'r, 'r>(
32037        &mut self,
32038        node: &'ast TsFnType,
32039        __ast_path: &mut AstNodePath<'r>,
32040    ) {
32041        if self.enabled {
32042            <V as VisitAstPath>::visit_ts_fn_type(&mut self.visitor, node, __ast_path)
32043        } else {
32044        }
32045    }
32046
32047    #[inline]
32048    fn visit_ts_getter_signature<'ast: 'r, 'r>(
32049        &mut self,
32050        node: &'ast TsGetterSignature,
32051        __ast_path: &mut AstNodePath<'r>,
32052    ) {
32053        if self.enabled {
32054            <V as VisitAstPath>::visit_ts_getter_signature(&mut self.visitor, node, __ast_path)
32055        } else {
32056        }
32057    }
32058
32059    #[inline]
32060    fn visit_ts_import_call_options<'ast: 'r, 'r>(
32061        &mut self,
32062        node: &'ast TsImportCallOptions,
32063        __ast_path: &mut AstNodePath<'r>,
32064    ) {
32065        if self.enabled {
32066            <V as VisitAstPath>::visit_ts_import_call_options(&mut self.visitor, node, __ast_path)
32067        } else {
32068        }
32069    }
32070
32071    #[inline]
32072    fn visit_ts_import_equals_decl<'ast: 'r, 'r>(
32073        &mut self,
32074        node: &'ast TsImportEqualsDecl,
32075        __ast_path: &mut AstNodePath<'r>,
32076    ) {
32077        if self.enabled {
32078            <V as VisitAstPath>::visit_ts_import_equals_decl(&mut self.visitor, node, __ast_path)
32079        } else {
32080        }
32081    }
32082
32083    #[inline]
32084    fn visit_ts_import_type<'ast: 'r, 'r>(
32085        &mut self,
32086        node: &'ast TsImportType,
32087        __ast_path: &mut AstNodePath<'r>,
32088    ) {
32089        if self.enabled {
32090            <V as VisitAstPath>::visit_ts_import_type(&mut self.visitor, node, __ast_path)
32091        } else {
32092        }
32093    }
32094
32095    #[inline]
32096    fn visit_ts_index_signature<'ast: 'r, 'r>(
32097        &mut self,
32098        node: &'ast TsIndexSignature,
32099        __ast_path: &mut AstNodePath<'r>,
32100    ) {
32101        if self.enabled {
32102            <V as VisitAstPath>::visit_ts_index_signature(&mut self.visitor, node, __ast_path)
32103        } else {
32104        }
32105    }
32106
32107    #[inline]
32108    fn visit_ts_indexed_access_type<'ast: 'r, 'r>(
32109        &mut self,
32110        node: &'ast TsIndexedAccessType,
32111        __ast_path: &mut AstNodePath<'r>,
32112    ) {
32113        if self.enabled {
32114            <V as VisitAstPath>::visit_ts_indexed_access_type(&mut self.visitor, node, __ast_path)
32115        } else {
32116        }
32117    }
32118
32119    #[inline]
32120    fn visit_ts_infer_type<'ast: 'r, 'r>(
32121        &mut self,
32122        node: &'ast TsInferType,
32123        __ast_path: &mut AstNodePath<'r>,
32124    ) {
32125        if self.enabled {
32126            <V as VisitAstPath>::visit_ts_infer_type(&mut self.visitor, node, __ast_path)
32127        } else {
32128        }
32129    }
32130
32131    #[inline]
32132    fn visit_ts_instantiation<'ast: 'r, 'r>(
32133        &mut self,
32134        node: &'ast TsInstantiation,
32135        __ast_path: &mut AstNodePath<'r>,
32136    ) {
32137        if self.enabled {
32138            <V as VisitAstPath>::visit_ts_instantiation(&mut self.visitor, node, __ast_path)
32139        } else {
32140        }
32141    }
32142
32143    #[inline]
32144    fn visit_ts_interface_body<'ast: 'r, 'r>(
32145        &mut self,
32146        node: &'ast TsInterfaceBody,
32147        __ast_path: &mut AstNodePath<'r>,
32148    ) {
32149        if self.enabled {
32150            <V as VisitAstPath>::visit_ts_interface_body(&mut self.visitor, node, __ast_path)
32151        } else {
32152        }
32153    }
32154
32155    #[inline]
32156    fn visit_ts_interface_decl<'ast: 'r, 'r>(
32157        &mut self,
32158        node: &'ast TsInterfaceDecl,
32159        __ast_path: &mut AstNodePath<'r>,
32160    ) {
32161        if self.enabled {
32162            <V as VisitAstPath>::visit_ts_interface_decl(&mut self.visitor, node, __ast_path)
32163        } else {
32164        }
32165    }
32166
32167    #[inline]
32168    fn visit_ts_intersection_type<'ast: 'r, 'r>(
32169        &mut self,
32170        node: &'ast TsIntersectionType,
32171        __ast_path: &mut AstNodePath<'r>,
32172    ) {
32173        if self.enabled {
32174            <V as VisitAstPath>::visit_ts_intersection_type(&mut self.visitor, node, __ast_path)
32175        } else {
32176        }
32177    }
32178
32179    #[inline]
32180    fn visit_ts_keyword_type<'ast: 'r, 'r>(
32181        &mut self,
32182        node: &'ast TsKeywordType,
32183        __ast_path: &mut AstNodePath<'r>,
32184    ) {
32185        if self.enabled {
32186            <V as VisitAstPath>::visit_ts_keyword_type(&mut self.visitor, node, __ast_path)
32187        } else {
32188        }
32189    }
32190
32191    #[inline]
32192    fn visit_ts_keyword_type_kind<'ast: 'r, 'r>(
32193        &mut self,
32194        node: &'ast TsKeywordTypeKind,
32195        __ast_path: &mut AstNodePath<'r>,
32196    ) {
32197        if self.enabled {
32198            <V as VisitAstPath>::visit_ts_keyword_type_kind(&mut self.visitor, node, __ast_path)
32199        } else {
32200        }
32201    }
32202
32203    #[inline]
32204    fn visit_ts_lit<'ast: 'r, 'r>(&mut self, node: &'ast TsLit, __ast_path: &mut AstNodePath<'r>) {
32205        if self.enabled {
32206            <V as VisitAstPath>::visit_ts_lit(&mut self.visitor, node, __ast_path)
32207        } else {
32208        }
32209    }
32210
32211    #[inline]
32212    fn visit_ts_lit_type<'ast: 'r, 'r>(
32213        &mut self,
32214        node: &'ast TsLitType,
32215        __ast_path: &mut AstNodePath<'r>,
32216    ) {
32217        if self.enabled {
32218            <V as VisitAstPath>::visit_ts_lit_type(&mut self.visitor, node, __ast_path)
32219        } else {
32220        }
32221    }
32222
32223    #[inline]
32224    fn visit_ts_mapped_type<'ast: 'r, 'r>(
32225        &mut self,
32226        node: &'ast TsMappedType,
32227        __ast_path: &mut AstNodePath<'r>,
32228    ) {
32229        if self.enabled {
32230            <V as VisitAstPath>::visit_ts_mapped_type(&mut self.visitor, node, __ast_path)
32231        } else {
32232        }
32233    }
32234
32235    #[inline]
32236    fn visit_ts_method_signature<'ast: 'r, 'r>(
32237        &mut self,
32238        node: &'ast TsMethodSignature,
32239        __ast_path: &mut AstNodePath<'r>,
32240    ) {
32241        if self.enabled {
32242            <V as VisitAstPath>::visit_ts_method_signature(&mut self.visitor, node, __ast_path)
32243        } else {
32244        }
32245    }
32246
32247    #[inline]
32248    fn visit_ts_module_block<'ast: 'r, 'r>(
32249        &mut self,
32250        node: &'ast TsModuleBlock,
32251        __ast_path: &mut AstNodePath<'r>,
32252    ) {
32253        if self.enabled {
32254            <V as VisitAstPath>::visit_ts_module_block(&mut self.visitor, node, __ast_path)
32255        } else {
32256        }
32257    }
32258
32259    #[inline]
32260    fn visit_ts_module_decl<'ast: 'r, 'r>(
32261        &mut self,
32262        node: &'ast TsModuleDecl,
32263        __ast_path: &mut AstNodePath<'r>,
32264    ) {
32265        if self.enabled {
32266            <V as VisitAstPath>::visit_ts_module_decl(&mut self.visitor, node, __ast_path)
32267        } else {
32268        }
32269    }
32270
32271    #[inline]
32272    fn visit_ts_module_name<'ast: 'r, 'r>(
32273        &mut self,
32274        node: &'ast TsModuleName,
32275        __ast_path: &mut AstNodePath<'r>,
32276    ) {
32277        if self.enabled {
32278            <V as VisitAstPath>::visit_ts_module_name(&mut self.visitor, node, __ast_path)
32279        } else {
32280        }
32281    }
32282
32283    #[inline]
32284    fn visit_ts_module_ref<'ast: 'r, 'r>(
32285        &mut self,
32286        node: &'ast TsModuleRef,
32287        __ast_path: &mut AstNodePath<'r>,
32288    ) {
32289        if self.enabled {
32290            <V as VisitAstPath>::visit_ts_module_ref(&mut self.visitor, node, __ast_path)
32291        } else {
32292        }
32293    }
32294
32295    #[inline]
32296    fn visit_ts_namespace_body<'ast: 'r, 'r>(
32297        &mut self,
32298        node: &'ast TsNamespaceBody,
32299        __ast_path: &mut AstNodePath<'r>,
32300    ) {
32301        if self.enabled {
32302            <V as VisitAstPath>::visit_ts_namespace_body(&mut self.visitor, node, __ast_path)
32303        } else {
32304        }
32305    }
32306
32307    #[inline]
32308    fn visit_ts_namespace_decl<'ast: 'r, 'r>(
32309        &mut self,
32310        node: &'ast TsNamespaceDecl,
32311        __ast_path: &mut AstNodePath<'r>,
32312    ) {
32313        if self.enabled {
32314            <V as VisitAstPath>::visit_ts_namespace_decl(&mut self.visitor, node, __ast_path)
32315        } else {
32316        }
32317    }
32318
32319    #[inline]
32320    fn visit_ts_namespace_export_decl<'ast: 'r, 'r>(
32321        &mut self,
32322        node: &'ast TsNamespaceExportDecl,
32323        __ast_path: &mut AstNodePath<'r>,
32324    ) {
32325        if self.enabled {
32326            <V as VisitAstPath>::visit_ts_namespace_export_decl(&mut self.visitor, node, __ast_path)
32327        } else {
32328        }
32329    }
32330
32331    #[inline]
32332    fn visit_ts_non_null_expr<'ast: 'r, 'r>(
32333        &mut self,
32334        node: &'ast TsNonNullExpr,
32335        __ast_path: &mut AstNodePath<'r>,
32336    ) {
32337        if self.enabled {
32338            <V as VisitAstPath>::visit_ts_non_null_expr(&mut self.visitor, node, __ast_path)
32339        } else {
32340        }
32341    }
32342
32343    #[inline]
32344    fn visit_ts_optional_type<'ast: 'r, 'r>(
32345        &mut self,
32346        node: &'ast TsOptionalType,
32347        __ast_path: &mut AstNodePath<'r>,
32348    ) {
32349        if self.enabled {
32350            <V as VisitAstPath>::visit_ts_optional_type(&mut self.visitor, node, __ast_path)
32351        } else {
32352        }
32353    }
32354
32355    #[inline]
32356    fn visit_ts_param_prop<'ast: 'r, 'r>(
32357        &mut self,
32358        node: &'ast TsParamProp,
32359        __ast_path: &mut AstNodePath<'r>,
32360    ) {
32361        if self.enabled {
32362            <V as VisitAstPath>::visit_ts_param_prop(&mut self.visitor, node, __ast_path)
32363        } else {
32364        }
32365    }
32366
32367    #[inline]
32368    fn visit_ts_param_prop_param<'ast: 'r, 'r>(
32369        &mut self,
32370        node: &'ast TsParamPropParam,
32371        __ast_path: &mut AstNodePath<'r>,
32372    ) {
32373        if self.enabled {
32374            <V as VisitAstPath>::visit_ts_param_prop_param(&mut self.visitor, node, __ast_path)
32375        } else {
32376        }
32377    }
32378
32379    #[inline]
32380    fn visit_ts_parenthesized_type<'ast: 'r, 'r>(
32381        &mut self,
32382        node: &'ast TsParenthesizedType,
32383        __ast_path: &mut AstNodePath<'r>,
32384    ) {
32385        if self.enabled {
32386            <V as VisitAstPath>::visit_ts_parenthesized_type(&mut self.visitor, node, __ast_path)
32387        } else {
32388        }
32389    }
32390
32391    #[inline]
32392    fn visit_ts_property_signature<'ast: 'r, 'r>(
32393        &mut self,
32394        node: &'ast TsPropertySignature,
32395        __ast_path: &mut AstNodePath<'r>,
32396    ) {
32397        if self.enabled {
32398            <V as VisitAstPath>::visit_ts_property_signature(&mut self.visitor, node, __ast_path)
32399        } else {
32400        }
32401    }
32402
32403    #[inline]
32404    fn visit_ts_qualified_name<'ast: 'r, 'r>(
32405        &mut self,
32406        node: &'ast TsQualifiedName,
32407        __ast_path: &mut AstNodePath<'r>,
32408    ) {
32409        if self.enabled {
32410            <V as VisitAstPath>::visit_ts_qualified_name(&mut self.visitor, node, __ast_path)
32411        } else {
32412        }
32413    }
32414
32415    #[inline]
32416    fn visit_ts_rest_type<'ast: 'r, 'r>(
32417        &mut self,
32418        node: &'ast TsRestType,
32419        __ast_path: &mut AstNodePath<'r>,
32420    ) {
32421        if self.enabled {
32422            <V as VisitAstPath>::visit_ts_rest_type(&mut self.visitor, node, __ast_path)
32423        } else {
32424        }
32425    }
32426
32427    #[inline]
32428    fn visit_ts_satisfies_expr<'ast: 'r, 'r>(
32429        &mut self,
32430        node: &'ast TsSatisfiesExpr,
32431        __ast_path: &mut AstNodePath<'r>,
32432    ) {
32433        if self.enabled {
32434            <V as VisitAstPath>::visit_ts_satisfies_expr(&mut self.visitor, node, __ast_path)
32435        } else {
32436        }
32437    }
32438
32439    #[inline]
32440    fn visit_ts_setter_signature<'ast: 'r, 'r>(
32441        &mut self,
32442        node: &'ast TsSetterSignature,
32443        __ast_path: &mut AstNodePath<'r>,
32444    ) {
32445        if self.enabled {
32446            <V as VisitAstPath>::visit_ts_setter_signature(&mut self.visitor, node, __ast_path)
32447        } else {
32448        }
32449    }
32450
32451    #[inline]
32452    fn visit_ts_this_type<'ast: 'r, 'r>(
32453        &mut self,
32454        node: &'ast TsThisType,
32455        __ast_path: &mut AstNodePath<'r>,
32456    ) {
32457        if self.enabled {
32458            <V as VisitAstPath>::visit_ts_this_type(&mut self.visitor, node, __ast_path)
32459        } else {
32460        }
32461    }
32462
32463    #[inline]
32464    fn visit_ts_this_type_or_ident<'ast: 'r, 'r>(
32465        &mut self,
32466        node: &'ast TsThisTypeOrIdent,
32467        __ast_path: &mut AstNodePath<'r>,
32468    ) {
32469        if self.enabled {
32470            <V as VisitAstPath>::visit_ts_this_type_or_ident(&mut self.visitor, node, __ast_path)
32471        } else {
32472        }
32473    }
32474
32475    #[inline]
32476    fn visit_ts_tpl_lit_type<'ast: 'r, 'r>(
32477        &mut self,
32478        node: &'ast TsTplLitType,
32479        __ast_path: &mut AstNodePath<'r>,
32480    ) {
32481        if self.enabled {
32482            <V as VisitAstPath>::visit_ts_tpl_lit_type(&mut self.visitor, node, __ast_path)
32483        } else {
32484        }
32485    }
32486
32487    #[inline]
32488    fn visit_ts_tuple_element<'ast: 'r, 'r>(
32489        &mut self,
32490        node: &'ast TsTupleElement,
32491        __ast_path: &mut AstNodePath<'r>,
32492    ) {
32493        if self.enabled {
32494            <V as VisitAstPath>::visit_ts_tuple_element(&mut self.visitor, node, __ast_path)
32495        } else {
32496        }
32497    }
32498
32499    #[inline]
32500    fn visit_ts_tuple_elements<'ast: 'r, 'r>(
32501        &mut self,
32502        node: &'ast [TsTupleElement],
32503        __ast_path: &mut AstNodePath<'r>,
32504    ) {
32505        if self.enabled {
32506            <V as VisitAstPath>::visit_ts_tuple_elements(&mut self.visitor, node, __ast_path)
32507        } else {
32508        }
32509    }
32510
32511    #[inline]
32512    fn visit_ts_tuple_type<'ast: 'r, 'r>(
32513        &mut self,
32514        node: &'ast TsTupleType,
32515        __ast_path: &mut AstNodePath<'r>,
32516    ) {
32517        if self.enabled {
32518            <V as VisitAstPath>::visit_ts_tuple_type(&mut self.visitor, node, __ast_path)
32519        } else {
32520        }
32521    }
32522
32523    #[inline]
32524    fn visit_ts_type<'ast: 'r, 'r>(
32525        &mut self,
32526        node: &'ast TsType,
32527        __ast_path: &mut AstNodePath<'r>,
32528    ) {
32529        if self.enabled {
32530            <V as VisitAstPath>::visit_ts_type(&mut self.visitor, node, __ast_path)
32531        } else {
32532        }
32533    }
32534
32535    #[inline]
32536    fn visit_ts_type_alias_decl<'ast: 'r, 'r>(
32537        &mut self,
32538        node: &'ast TsTypeAliasDecl,
32539        __ast_path: &mut AstNodePath<'r>,
32540    ) {
32541        if self.enabled {
32542            <V as VisitAstPath>::visit_ts_type_alias_decl(&mut self.visitor, node, __ast_path)
32543        } else {
32544        }
32545    }
32546
32547    #[inline]
32548    fn visit_ts_type_ann<'ast: 'r, 'r>(
32549        &mut self,
32550        node: &'ast TsTypeAnn,
32551        __ast_path: &mut AstNodePath<'r>,
32552    ) {
32553        if self.enabled {
32554            <V as VisitAstPath>::visit_ts_type_ann(&mut self.visitor, node, __ast_path)
32555        } else {
32556        }
32557    }
32558
32559    #[inline]
32560    fn visit_ts_type_assertion<'ast: 'r, 'r>(
32561        &mut self,
32562        node: &'ast TsTypeAssertion,
32563        __ast_path: &mut AstNodePath<'r>,
32564    ) {
32565        if self.enabled {
32566            <V as VisitAstPath>::visit_ts_type_assertion(&mut self.visitor, node, __ast_path)
32567        } else {
32568        }
32569    }
32570
32571    #[inline]
32572    fn visit_ts_type_element<'ast: 'r, 'r>(
32573        &mut self,
32574        node: &'ast TsTypeElement,
32575        __ast_path: &mut AstNodePath<'r>,
32576    ) {
32577        if self.enabled {
32578            <V as VisitAstPath>::visit_ts_type_element(&mut self.visitor, node, __ast_path)
32579        } else {
32580        }
32581    }
32582
32583    #[inline]
32584    fn visit_ts_type_elements<'ast: 'r, 'r>(
32585        &mut self,
32586        node: &'ast [TsTypeElement],
32587        __ast_path: &mut AstNodePath<'r>,
32588    ) {
32589        if self.enabled {
32590            <V as VisitAstPath>::visit_ts_type_elements(&mut self.visitor, node, __ast_path)
32591        } else {
32592        }
32593    }
32594
32595    #[inline]
32596    fn visit_ts_type_lit<'ast: 'r, 'r>(
32597        &mut self,
32598        node: &'ast TsTypeLit,
32599        __ast_path: &mut AstNodePath<'r>,
32600    ) {
32601        if self.enabled {
32602            <V as VisitAstPath>::visit_ts_type_lit(&mut self.visitor, node, __ast_path)
32603        } else {
32604        }
32605    }
32606
32607    #[inline]
32608    fn visit_ts_type_operator<'ast: 'r, 'r>(
32609        &mut self,
32610        node: &'ast TsTypeOperator,
32611        __ast_path: &mut AstNodePath<'r>,
32612    ) {
32613        if self.enabled {
32614            <V as VisitAstPath>::visit_ts_type_operator(&mut self.visitor, node, __ast_path)
32615        } else {
32616        }
32617    }
32618
32619    #[inline]
32620    fn visit_ts_type_operator_op<'ast: 'r, 'r>(
32621        &mut self,
32622        node: &'ast TsTypeOperatorOp,
32623        __ast_path: &mut AstNodePath<'r>,
32624    ) {
32625        if self.enabled {
32626            <V as VisitAstPath>::visit_ts_type_operator_op(&mut self.visitor, node, __ast_path)
32627        } else {
32628        }
32629    }
32630
32631    #[inline]
32632    fn visit_ts_type_param<'ast: 'r, 'r>(
32633        &mut self,
32634        node: &'ast TsTypeParam,
32635        __ast_path: &mut AstNodePath<'r>,
32636    ) {
32637        if self.enabled {
32638            <V as VisitAstPath>::visit_ts_type_param(&mut self.visitor, node, __ast_path)
32639        } else {
32640        }
32641    }
32642
32643    #[inline]
32644    fn visit_ts_type_param_decl<'ast: 'r, 'r>(
32645        &mut self,
32646        node: &'ast TsTypeParamDecl,
32647        __ast_path: &mut AstNodePath<'r>,
32648    ) {
32649        if self.enabled {
32650            <V as VisitAstPath>::visit_ts_type_param_decl(&mut self.visitor, node, __ast_path)
32651        } else {
32652        }
32653    }
32654
32655    #[inline]
32656    fn visit_ts_type_param_instantiation<'ast: 'r, 'r>(
32657        &mut self,
32658        node: &'ast TsTypeParamInstantiation,
32659        __ast_path: &mut AstNodePath<'r>,
32660    ) {
32661        if self.enabled {
32662            <V as VisitAstPath>::visit_ts_type_param_instantiation(
32663                &mut self.visitor,
32664                node,
32665                __ast_path,
32666            )
32667        } else {
32668        }
32669    }
32670
32671    #[inline]
32672    fn visit_ts_type_params<'ast: 'r, 'r>(
32673        &mut self,
32674        node: &'ast [TsTypeParam],
32675        __ast_path: &mut AstNodePath<'r>,
32676    ) {
32677        if self.enabled {
32678            <V as VisitAstPath>::visit_ts_type_params(&mut self.visitor, node, __ast_path)
32679        } else {
32680        }
32681    }
32682
32683    #[inline]
32684    fn visit_ts_type_predicate<'ast: 'r, 'r>(
32685        &mut self,
32686        node: &'ast TsTypePredicate,
32687        __ast_path: &mut AstNodePath<'r>,
32688    ) {
32689        if self.enabled {
32690            <V as VisitAstPath>::visit_ts_type_predicate(&mut self.visitor, node, __ast_path)
32691        } else {
32692        }
32693    }
32694
32695    #[inline]
32696    fn visit_ts_type_query<'ast: 'r, 'r>(
32697        &mut self,
32698        node: &'ast TsTypeQuery,
32699        __ast_path: &mut AstNodePath<'r>,
32700    ) {
32701        if self.enabled {
32702            <V as VisitAstPath>::visit_ts_type_query(&mut self.visitor, node, __ast_path)
32703        } else {
32704        }
32705    }
32706
32707    #[inline]
32708    fn visit_ts_type_query_expr<'ast: 'r, 'r>(
32709        &mut self,
32710        node: &'ast TsTypeQueryExpr,
32711        __ast_path: &mut AstNodePath<'r>,
32712    ) {
32713        if self.enabled {
32714            <V as VisitAstPath>::visit_ts_type_query_expr(&mut self.visitor, node, __ast_path)
32715        } else {
32716        }
32717    }
32718
32719    #[inline]
32720    fn visit_ts_type_ref<'ast: 'r, 'r>(
32721        &mut self,
32722        node: &'ast TsTypeRef,
32723        __ast_path: &mut AstNodePath<'r>,
32724    ) {
32725        if self.enabled {
32726            <V as VisitAstPath>::visit_ts_type_ref(&mut self.visitor, node, __ast_path)
32727        } else {
32728        }
32729    }
32730
32731    #[inline]
32732    fn visit_ts_types<'ast: 'r, 'r>(
32733        &mut self,
32734        node: &'ast [Box<TsType>],
32735        __ast_path: &mut AstNodePath<'r>,
32736    ) {
32737        if self.enabled {
32738            <V as VisitAstPath>::visit_ts_types(&mut self.visitor, node, __ast_path)
32739        } else {
32740        }
32741    }
32742
32743    #[inline]
32744    fn visit_ts_union_or_intersection_type<'ast: 'r, 'r>(
32745        &mut self,
32746        node: &'ast TsUnionOrIntersectionType,
32747        __ast_path: &mut AstNodePath<'r>,
32748    ) {
32749        if self.enabled {
32750            <V as VisitAstPath>::visit_ts_union_or_intersection_type(
32751                &mut self.visitor,
32752                node,
32753                __ast_path,
32754            )
32755        } else {
32756        }
32757    }
32758
32759    #[inline]
32760    fn visit_ts_union_type<'ast: 'r, 'r>(
32761        &mut self,
32762        node: &'ast TsUnionType,
32763        __ast_path: &mut AstNodePath<'r>,
32764    ) {
32765        if self.enabled {
32766            <V as VisitAstPath>::visit_ts_union_type(&mut self.visitor, node, __ast_path)
32767        } else {
32768        }
32769    }
32770
32771    #[inline]
32772    fn visit_unary_expr<'ast: 'r, 'r>(
32773        &mut self,
32774        node: &'ast UnaryExpr,
32775        __ast_path: &mut AstNodePath<'r>,
32776    ) {
32777        if self.enabled {
32778            <V as VisitAstPath>::visit_unary_expr(&mut self.visitor, node, __ast_path)
32779        } else {
32780        }
32781    }
32782
32783    #[inline]
32784    fn visit_unary_op<'ast: 'r, 'r>(
32785        &mut self,
32786        node: &'ast UnaryOp,
32787        __ast_path: &mut AstNodePath<'r>,
32788    ) {
32789        if self.enabled {
32790            <V as VisitAstPath>::visit_unary_op(&mut self.visitor, node, __ast_path)
32791        } else {
32792        }
32793    }
32794
32795    #[inline]
32796    fn visit_update_expr<'ast: 'r, 'r>(
32797        &mut self,
32798        node: &'ast UpdateExpr,
32799        __ast_path: &mut AstNodePath<'r>,
32800    ) {
32801        if self.enabled {
32802            <V as VisitAstPath>::visit_update_expr(&mut self.visitor, node, __ast_path)
32803        } else {
32804        }
32805    }
32806
32807    #[inline]
32808    fn visit_update_op<'ast: 'r, 'r>(
32809        &mut self,
32810        node: &'ast UpdateOp,
32811        __ast_path: &mut AstNodePath<'r>,
32812    ) {
32813        if self.enabled {
32814            <V as VisitAstPath>::visit_update_op(&mut self.visitor, node, __ast_path)
32815        } else {
32816        }
32817    }
32818
32819    #[inline]
32820    fn visit_using_decl<'ast: 'r, 'r>(
32821        &mut self,
32822        node: &'ast UsingDecl,
32823        __ast_path: &mut AstNodePath<'r>,
32824    ) {
32825        if self.enabled {
32826            <V as VisitAstPath>::visit_using_decl(&mut self.visitor, node, __ast_path)
32827        } else {
32828        }
32829    }
32830
32831    #[inline]
32832    fn visit_var_decl<'ast: 'r, 'r>(
32833        &mut self,
32834        node: &'ast VarDecl,
32835        __ast_path: &mut AstNodePath<'r>,
32836    ) {
32837        if self.enabled {
32838            <V as VisitAstPath>::visit_var_decl(&mut self.visitor, node, __ast_path)
32839        } else {
32840        }
32841    }
32842
32843    #[inline]
32844    fn visit_var_decl_kind<'ast: 'r, 'r>(
32845        &mut self,
32846        node: &'ast VarDeclKind,
32847        __ast_path: &mut AstNodePath<'r>,
32848    ) {
32849        if self.enabled {
32850            <V as VisitAstPath>::visit_var_decl_kind(&mut self.visitor, node, __ast_path)
32851        } else {
32852        }
32853    }
32854
32855    #[inline]
32856    fn visit_var_decl_or_expr<'ast: 'r, 'r>(
32857        &mut self,
32858        node: &'ast VarDeclOrExpr,
32859        __ast_path: &mut AstNodePath<'r>,
32860    ) {
32861        if self.enabled {
32862            <V as VisitAstPath>::visit_var_decl_or_expr(&mut self.visitor, node, __ast_path)
32863        } else {
32864        }
32865    }
32866
32867    #[inline]
32868    fn visit_var_declarator<'ast: 'r, 'r>(
32869        &mut self,
32870        node: &'ast VarDeclarator,
32871        __ast_path: &mut AstNodePath<'r>,
32872    ) {
32873        if self.enabled {
32874            <V as VisitAstPath>::visit_var_declarator(&mut self.visitor, node, __ast_path)
32875        } else {
32876        }
32877    }
32878
32879    #[inline]
32880    fn visit_var_declarators<'ast: 'r, 'r>(
32881        &mut self,
32882        node: &'ast [VarDeclarator],
32883        __ast_path: &mut AstNodePath<'r>,
32884    ) {
32885        if self.enabled {
32886            <V as VisitAstPath>::visit_var_declarators(&mut self.visitor, node, __ast_path)
32887        } else {
32888        }
32889    }
32890
32891    #[inline]
32892    fn visit_while_stmt<'ast: 'r, 'r>(
32893        &mut self,
32894        node: &'ast WhileStmt,
32895        __ast_path: &mut AstNodePath<'r>,
32896    ) {
32897        if self.enabled {
32898            <V as VisitAstPath>::visit_while_stmt(&mut self.visitor, node, __ast_path)
32899        } else {
32900        }
32901    }
32902
32903    #[inline]
32904    fn visit_with_stmt<'ast: 'r, 'r>(
32905        &mut self,
32906        node: &'ast WithStmt,
32907        __ast_path: &mut AstNodePath<'r>,
32908    ) {
32909        if self.enabled {
32910            <V as VisitAstPath>::visit_with_stmt(&mut self.visitor, node, __ast_path)
32911        } else {
32912        }
32913    }
32914
32915    #[inline]
32916    fn visit_yield_expr<'ast: 'r, 'r>(
32917        &mut self,
32918        node: &'ast YieldExpr,
32919        __ast_path: &mut AstNodePath<'r>,
32920    ) {
32921        if self.enabled {
32922            <V as VisitAstPath>::visit_yield_expr(&mut self.visitor, node, __ast_path)
32923        } else {
32924        }
32925    }
32926}
32927#[doc = r" A trait implemented for types that can be visited using a visitor."]
32928#[cfg(any(docsrs, feature = "path"))]
32929#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
32930pub trait VisitWithAstPath<V: ?Sized + VisitAstPath> {
32931    #[doc = r" Calls a visitor method (visitor.fold_xxx) with self."]
32932    fn visit_with_ast_path<'ast: 'r, 'r>(
32933        &'ast self,
32934        visitor: &mut V,
32935        __ast_path: &mut AstNodePath<'r>,
32936    );
32937    #[doc = r" Visit children nodes of `self`` with `visitor`."]
32938    fn visit_children_with_ast_path<'ast: 'r, 'r>(
32939        &'ast self,
32940        visitor: &mut V,
32941        __ast_path: &mut AstNodePath<'r>,
32942    );
32943}
32944#[cfg(any(docsrs, feature = "path"))]
32945#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
32946impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Accessibility {
32947    #[doc = "Calls [VisitAstPath`::visit_accessibility`] with `self`."]
32948    fn visit_with_ast_path<'ast: 'r, 'r>(
32949        &'ast self,
32950        visitor: &mut V,
32951        __ast_path: &mut AstNodePath<'r>,
32952    ) {
32953        <V as VisitAstPath>::visit_accessibility(visitor, self, __ast_path)
32954    }
32955
32956    fn visit_children_with_ast_path<'ast: 'r, 'r>(
32957        &'ast self,
32958        visitor: &mut V,
32959        __ast_path: &mut AstNodePath<'r>,
32960    ) {
32961        match self {
32962            Accessibility::Public => {}
32963            Accessibility::Protected => {}
32964            Accessibility::Private => {}
32965        }
32966    }
32967}
32968#[cfg(any(docsrs, feature = "path"))]
32969#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
32970impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ArrayLit {
32971    #[doc = "Calls [VisitAstPath`::visit_array_lit`] with `self`."]
32972    fn visit_with_ast_path<'ast: 'r, 'r>(
32973        &'ast self,
32974        visitor: &mut V,
32975        __ast_path: &mut AstNodePath<'r>,
32976    ) {
32977        <V as VisitAstPath>::visit_array_lit(visitor, self, __ast_path)
32978    }
32979
32980    fn visit_children_with_ast_path<'ast: 'r, 'r>(
32981        &'ast self,
32982        visitor: &mut V,
32983        __ast_path: &mut AstNodePath<'r>,
32984    ) {
32985        match self {
32986            ArrayLit { span, elems } => {
32987                {
32988                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrayLit(
32989                        self,
32990                        self::fields::ArrayLitField::Span,
32991                    ));
32992                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
32993                        span,
32994                        visitor,
32995                        &mut *__ast_path,
32996                    )
32997                };
32998                {
32999                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrayLit(
33000                        self,
33001                        self::fields::ArrayLitField::Elems(usize::MAX),
33002                    ));
33003                    <Vec<Option<ExprOrSpread>> as VisitWithAstPath<V>>::visit_with_ast_path(
33004                        elems,
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 ArrayPat {
33016    #[doc = "Calls [VisitAstPath`::visit_array_pat`] 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_array_pat(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            ArrayPat {
33032                span,
33033                elems,
33034                optional,
33035                type_ann,
33036            } => {
33037                {
33038                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrayPat(
33039                        self,
33040                        self::fields::ArrayPatField::Span,
33041                    ));
33042                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33043                        span,
33044                        visitor,
33045                        &mut *__ast_path,
33046                    )
33047                };
33048                {
33049                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrayPat(
33050                        self,
33051                        self::fields::ArrayPatField::Elems(usize::MAX),
33052                    ));
33053                    <Vec<Option<Pat>> as VisitWithAstPath<V>>::visit_with_ast_path(
33054                        elems,
33055                        visitor,
33056                        &mut *__ast_path,
33057                    )
33058                };
33059                {
33060                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrayPat(
33061                        self,
33062                        self::fields::ArrayPatField::TypeAnn,
33063                    ));
33064                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
33065                        type_ann,
33066                        visitor,
33067                        &mut *__ast_path,
33068                    )
33069                };
33070            }
33071        }
33072    }
33073}
33074#[cfg(any(docsrs, feature = "path"))]
33075#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33076impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ArrowExpr {
33077    #[doc = "Calls [VisitAstPath`::visit_arrow_expr`] with `self`."]
33078    fn visit_with_ast_path<'ast: 'r, 'r>(
33079        &'ast self,
33080        visitor: &mut V,
33081        __ast_path: &mut AstNodePath<'r>,
33082    ) {
33083        <V as VisitAstPath>::visit_arrow_expr(visitor, self, __ast_path)
33084    }
33085
33086    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33087        &'ast self,
33088        visitor: &mut V,
33089        __ast_path: &mut AstNodePath<'r>,
33090    ) {
33091        match self {
33092            ArrowExpr {
33093                span,
33094                ctxt,
33095                params,
33096                body,
33097                is_async,
33098                is_generator,
33099                type_params,
33100                return_type,
33101            } => {
33102                {
33103                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrowExpr(
33104                        self,
33105                        self::fields::ArrowExprField::Span,
33106                    ));
33107                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33108                        span,
33109                        visitor,
33110                        &mut *__ast_path,
33111                    )
33112                };
33113                {
33114                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrowExpr(
33115                        self,
33116                        self::fields::ArrowExprField::Ctxt,
33117                    ));
33118                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
33119                        ctxt,
33120                        visitor,
33121                        &mut *__ast_path,
33122                    )
33123                };
33124                {
33125                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrowExpr(
33126                        self,
33127                        self::fields::ArrowExprField::Params(usize::MAX),
33128                    ));
33129                    <Vec<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
33130                        params,
33131                        visitor,
33132                        &mut *__ast_path,
33133                    )
33134                };
33135                {
33136                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrowExpr(
33137                        self,
33138                        self::fields::ArrowExprField::Body,
33139                    ));
33140                    <Box<BlockStmtOrExpr> as VisitWithAstPath<V>>::visit_with_ast_path(
33141                        body,
33142                        visitor,
33143                        &mut *__ast_path,
33144                    )
33145                };
33146                {
33147                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrowExpr(
33148                        self,
33149                        self::fields::ArrowExprField::TypeParams,
33150                    ));
33151                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
33152                        type_params,
33153                        visitor,
33154                        &mut *__ast_path,
33155                    )
33156                };
33157                {
33158                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrowExpr(
33159                        self,
33160                        self::fields::ArrowExprField::ReturnType,
33161                    ));
33162                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
33163                        return_type,
33164                        visitor,
33165                        &mut *__ast_path,
33166                    )
33167                };
33168            }
33169        }
33170    }
33171}
33172#[cfg(any(docsrs, feature = "path"))]
33173#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33174impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AssignExpr {
33175    #[doc = "Calls [VisitAstPath`::visit_assign_expr`] with `self`."]
33176    fn visit_with_ast_path<'ast: 'r, 'r>(
33177        &'ast self,
33178        visitor: &mut V,
33179        __ast_path: &mut AstNodePath<'r>,
33180    ) {
33181        <V as VisitAstPath>::visit_assign_expr(visitor, self, __ast_path)
33182    }
33183
33184    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33185        &'ast self,
33186        visitor: &mut V,
33187        __ast_path: &mut AstNodePath<'r>,
33188    ) {
33189        match self {
33190            AssignExpr {
33191                span,
33192                op,
33193                left,
33194                right,
33195            } => {
33196                {
33197                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignExpr(
33198                        self,
33199                        self::fields::AssignExprField::Span,
33200                    ));
33201                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33202                        span,
33203                        visitor,
33204                        &mut *__ast_path,
33205                    )
33206                };
33207                {
33208                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignExpr(
33209                        self,
33210                        self::fields::AssignExprField::Op,
33211                    ));
33212                    <AssignOp as VisitWithAstPath<V>>::visit_with_ast_path(
33213                        op,
33214                        visitor,
33215                        &mut *__ast_path,
33216                    )
33217                };
33218                {
33219                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignExpr(
33220                        self,
33221                        self::fields::AssignExprField::Left,
33222                    ));
33223                    <AssignTarget as VisitWithAstPath<V>>::visit_with_ast_path(
33224                        left,
33225                        visitor,
33226                        &mut *__ast_path,
33227                    )
33228                };
33229                {
33230                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignExpr(
33231                        self,
33232                        self::fields::AssignExprField::Right,
33233                    ));
33234                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
33235                        right,
33236                        visitor,
33237                        &mut *__ast_path,
33238                    )
33239                };
33240            }
33241        }
33242    }
33243}
33244#[cfg(any(docsrs, feature = "path"))]
33245#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33246impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AssignOp {
33247    #[doc = "Calls [VisitAstPath`::visit_assign_op`] with `self`."]
33248    fn visit_with_ast_path<'ast: 'r, 'r>(
33249        &'ast self,
33250        visitor: &mut V,
33251        __ast_path: &mut AstNodePath<'r>,
33252    ) {
33253        <V as VisitAstPath>::visit_assign_op(visitor, self, __ast_path)
33254    }
33255
33256    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33257        &'ast self,
33258        visitor: &mut V,
33259        __ast_path: &mut AstNodePath<'r>,
33260    ) {
33261        match self {
33262            AssignOp::Assign => {}
33263            AssignOp::AddAssign => {}
33264            AssignOp::SubAssign => {}
33265            AssignOp::MulAssign => {}
33266            AssignOp::DivAssign => {}
33267            AssignOp::ModAssign => {}
33268            AssignOp::LShiftAssign => {}
33269            AssignOp::RShiftAssign => {}
33270            AssignOp::ZeroFillRShiftAssign => {}
33271            AssignOp::BitOrAssign => {}
33272            AssignOp::BitXorAssign => {}
33273            AssignOp::BitAndAssign => {}
33274            AssignOp::ExpAssign => {}
33275            AssignOp::AndAssign => {}
33276            AssignOp::OrAssign => {}
33277            AssignOp::NullishAssign => {}
33278        }
33279    }
33280}
33281#[cfg(any(docsrs, feature = "path"))]
33282#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33283impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AssignPat {
33284    #[doc = "Calls [VisitAstPath`::visit_assign_pat`] with `self`."]
33285    fn visit_with_ast_path<'ast: 'r, 'r>(
33286        &'ast self,
33287        visitor: &mut V,
33288        __ast_path: &mut AstNodePath<'r>,
33289    ) {
33290        <V as VisitAstPath>::visit_assign_pat(visitor, self, __ast_path)
33291    }
33292
33293    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33294        &'ast self,
33295        visitor: &mut V,
33296        __ast_path: &mut AstNodePath<'r>,
33297    ) {
33298        match self {
33299            AssignPat { span, left, right } => {
33300                {
33301                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignPat(
33302                        self,
33303                        self::fields::AssignPatField::Span,
33304                    ));
33305                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33306                        span,
33307                        visitor,
33308                        &mut *__ast_path,
33309                    )
33310                };
33311                {
33312                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignPat(
33313                        self,
33314                        self::fields::AssignPatField::Left,
33315                    ));
33316                    <Box<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
33317                        left,
33318                        visitor,
33319                        &mut *__ast_path,
33320                    )
33321                };
33322                {
33323                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignPat(
33324                        self,
33325                        self::fields::AssignPatField::Right,
33326                    ));
33327                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
33328                        right,
33329                        visitor,
33330                        &mut *__ast_path,
33331                    )
33332                };
33333            }
33334        }
33335    }
33336}
33337#[cfg(any(docsrs, feature = "path"))]
33338#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33339impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AssignPatProp {
33340    #[doc = "Calls [VisitAstPath`::visit_assign_pat_prop`] with `self`."]
33341    fn visit_with_ast_path<'ast: 'r, 'r>(
33342        &'ast self,
33343        visitor: &mut V,
33344        __ast_path: &mut AstNodePath<'r>,
33345    ) {
33346        <V as VisitAstPath>::visit_assign_pat_prop(visitor, self, __ast_path)
33347    }
33348
33349    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33350        &'ast self,
33351        visitor: &mut V,
33352        __ast_path: &mut AstNodePath<'r>,
33353    ) {
33354        match self {
33355            AssignPatProp { span, key, value } => {
33356                {
33357                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignPatProp(
33358                        self,
33359                        self::fields::AssignPatPropField::Span,
33360                    ));
33361                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33362                        span,
33363                        visitor,
33364                        &mut *__ast_path,
33365                    )
33366                };
33367                {
33368                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignPatProp(
33369                        self,
33370                        self::fields::AssignPatPropField::Key,
33371                    ));
33372                    <BindingIdent as VisitWithAstPath<V>>::visit_with_ast_path(
33373                        key,
33374                        visitor,
33375                        &mut *__ast_path,
33376                    )
33377                };
33378                {
33379                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignPatProp(
33380                        self,
33381                        self::fields::AssignPatPropField::Value,
33382                    ));
33383                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
33384                        value,
33385                        visitor,
33386                        &mut *__ast_path,
33387                    )
33388                };
33389            }
33390        }
33391    }
33392}
33393#[cfg(any(docsrs, feature = "path"))]
33394#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33395impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AssignProp {
33396    #[doc = "Calls [VisitAstPath`::visit_assign_prop`] with `self`."]
33397    fn visit_with_ast_path<'ast: 'r, 'r>(
33398        &'ast self,
33399        visitor: &mut V,
33400        __ast_path: &mut AstNodePath<'r>,
33401    ) {
33402        <V as VisitAstPath>::visit_assign_prop(visitor, self, __ast_path)
33403    }
33404
33405    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33406        &'ast self,
33407        visitor: &mut V,
33408        __ast_path: &mut AstNodePath<'r>,
33409    ) {
33410        match self {
33411            AssignProp { span, key, value } => {
33412                {
33413                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignProp(
33414                        self,
33415                        self::fields::AssignPropField::Span,
33416                    ));
33417                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33418                        span,
33419                        visitor,
33420                        &mut *__ast_path,
33421                    )
33422                };
33423                {
33424                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignProp(
33425                        self,
33426                        self::fields::AssignPropField::Key,
33427                    ));
33428                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
33429                        key,
33430                        visitor,
33431                        &mut *__ast_path,
33432                    )
33433                };
33434                {
33435                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignProp(
33436                        self,
33437                        self::fields::AssignPropField::Value,
33438                    ));
33439                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
33440                        value,
33441                        visitor,
33442                        &mut *__ast_path,
33443                    )
33444                };
33445            }
33446        }
33447    }
33448}
33449#[cfg(any(docsrs, feature = "path"))]
33450#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33451impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AssignTarget {
33452    #[doc = "Calls [VisitAstPath`::visit_assign_target`] with `self`."]
33453    fn visit_with_ast_path<'ast: 'r, 'r>(
33454        &'ast self,
33455        visitor: &mut V,
33456        __ast_path: &mut AstNodePath<'r>,
33457    ) {
33458        <V as VisitAstPath>::visit_assign_target(visitor, self, __ast_path)
33459    }
33460
33461    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33462        &'ast self,
33463        visitor: &mut V,
33464        __ast_path: &mut AstNodePath<'r>,
33465    ) {
33466        match self {
33467            AssignTarget::Simple { 0: _field_0 } => {
33468                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignTarget(
33469                    self,
33470                    self::fields::AssignTargetField::Simple,
33471                ));
33472                <SimpleAssignTarget as VisitWithAstPath<V>>::visit_with_ast_path(
33473                    _field_0,
33474                    visitor,
33475                    &mut *__ast_path,
33476                );
33477            }
33478            AssignTarget::Pat { 0: _field_0 } => {
33479                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignTarget(
33480                    self,
33481                    self::fields::AssignTargetField::Pat,
33482                ));
33483                <AssignTargetPat as VisitWithAstPath<V>>::visit_with_ast_path(
33484                    _field_0,
33485                    visitor,
33486                    &mut *__ast_path,
33487                );
33488            }
33489        }
33490    }
33491}
33492#[cfg(any(docsrs, feature = "path"))]
33493#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33494impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AssignTargetPat {
33495    #[doc = "Calls [VisitAstPath`::visit_assign_target_pat`] with `self`."]
33496    fn visit_with_ast_path<'ast: 'r, 'r>(
33497        &'ast self,
33498        visitor: &mut V,
33499        __ast_path: &mut AstNodePath<'r>,
33500    ) {
33501        <V as VisitAstPath>::visit_assign_target_pat(visitor, self, __ast_path)
33502    }
33503
33504    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33505        &'ast self,
33506        visitor: &mut V,
33507        __ast_path: &mut AstNodePath<'r>,
33508    ) {
33509        match self {
33510            AssignTargetPat::Array { 0: _field_0 } => {
33511                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignTargetPat(
33512                    self,
33513                    self::fields::AssignTargetPatField::Array,
33514                ));
33515                <ArrayPat as VisitWithAstPath<V>>::visit_with_ast_path(
33516                    _field_0,
33517                    visitor,
33518                    &mut *__ast_path,
33519                );
33520            }
33521            AssignTargetPat::Object { 0: _field_0 } => {
33522                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignTargetPat(
33523                    self,
33524                    self::fields::AssignTargetPatField::Object,
33525                ));
33526                <ObjectPat as VisitWithAstPath<V>>::visit_with_ast_path(
33527                    _field_0,
33528                    visitor,
33529                    &mut *__ast_path,
33530                );
33531            }
33532            AssignTargetPat::Invalid { 0: _field_0 } => {
33533                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignTargetPat(
33534                    self,
33535                    self::fields::AssignTargetPatField::Invalid,
33536                ));
33537                <Invalid as VisitWithAstPath<V>>::visit_with_ast_path(
33538                    _field_0,
33539                    visitor,
33540                    &mut *__ast_path,
33541                );
33542            }
33543        }
33544    }
33545}
33546#[cfg(any(docsrs, feature = "path"))]
33547#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33548impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AutoAccessor {
33549    #[doc = "Calls [VisitAstPath`::visit_auto_accessor`] with `self`."]
33550    fn visit_with_ast_path<'ast: 'r, 'r>(
33551        &'ast self,
33552        visitor: &mut V,
33553        __ast_path: &mut AstNodePath<'r>,
33554    ) {
33555        <V as VisitAstPath>::visit_auto_accessor(visitor, self, __ast_path)
33556    }
33557
33558    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33559        &'ast self,
33560        visitor: &mut V,
33561        __ast_path: &mut AstNodePath<'r>,
33562    ) {
33563        match self {
33564            AutoAccessor {
33565                span,
33566                key,
33567                value,
33568                type_ann,
33569                is_static,
33570                decorators,
33571                accessibility,
33572                is_abstract,
33573                is_override,
33574                definite,
33575            } => {
33576                {
33577                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AutoAccessor(
33578                        self,
33579                        self::fields::AutoAccessorField::Span,
33580                    ));
33581                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33582                        span,
33583                        visitor,
33584                        &mut *__ast_path,
33585                    )
33586                };
33587                {
33588                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AutoAccessor(
33589                        self,
33590                        self::fields::AutoAccessorField::Key,
33591                    ));
33592                    <Key as VisitWithAstPath<V>>::visit_with_ast_path(
33593                        key,
33594                        visitor,
33595                        &mut *__ast_path,
33596                    )
33597                };
33598                {
33599                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AutoAccessor(
33600                        self,
33601                        self::fields::AutoAccessorField::Value,
33602                    ));
33603                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
33604                        value,
33605                        visitor,
33606                        &mut *__ast_path,
33607                    )
33608                };
33609                {
33610                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AutoAccessor(
33611                        self,
33612                        self::fields::AutoAccessorField::TypeAnn,
33613                    ));
33614                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
33615                        type_ann,
33616                        visitor,
33617                        &mut *__ast_path,
33618                    )
33619                };
33620                {
33621                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AutoAccessor(
33622                        self,
33623                        self::fields::AutoAccessorField::Decorators(usize::MAX),
33624                    ));
33625                    <Vec<Decorator> as VisitWithAstPath<V>>::visit_with_ast_path(
33626                        decorators,
33627                        visitor,
33628                        &mut *__ast_path,
33629                    )
33630                };
33631                {
33632                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AutoAccessor(
33633                        self,
33634                        self::fields::AutoAccessorField::Accessibility,
33635                    ));
33636                    <Option<Accessibility> as VisitWithAstPath<V>>::visit_with_ast_path(
33637                        accessibility,
33638                        visitor,
33639                        &mut *__ast_path,
33640                    )
33641                };
33642            }
33643        }
33644    }
33645}
33646#[cfg(any(docsrs, feature = "path"))]
33647#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33648impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AwaitExpr {
33649    #[doc = "Calls [VisitAstPath`::visit_await_expr`] with `self`."]
33650    fn visit_with_ast_path<'ast: 'r, 'r>(
33651        &'ast self,
33652        visitor: &mut V,
33653        __ast_path: &mut AstNodePath<'r>,
33654    ) {
33655        <V as VisitAstPath>::visit_await_expr(visitor, self, __ast_path)
33656    }
33657
33658    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33659        &'ast self,
33660        visitor: &mut V,
33661        __ast_path: &mut AstNodePath<'r>,
33662    ) {
33663        match self {
33664            AwaitExpr { span, arg } => {
33665                {
33666                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AwaitExpr(
33667                        self,
33668                        self::fields::AwaitExprField::Span,
33669                    ));
33670                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33671                        span,
33672                        visitor,
33673                        &mut *__ast_path,
33674                    )
33675                };
33676                {
33677                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AwaitExpr(
33678                        self,
33679                        self::fields::AwaitExprField::Arg,
33680                    ));
33681                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
33682                        arg,
33683                        visitor,
33684                        &mut *__ast_path,
33685                    )
33686                };
33687            }
33688        }
33689    }
33690}
33691#[cfg(any(docsrs, feature = "path"))]
33692#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33693impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for BigInt {
33694    #[doc = "Calls [VisitAstPath`::visit_big_int`] with `self`."]
33695    fn visit_with_ast_path<'ast: 'r, 'r>(
33696        &'ast self,
33697        visitor: &mut V,
33698        __ast_path: &mut AstNodePath<'r>,
33699    ) {
33700        <V as VisitAstPath>::visit_big_int(visitor, self, __ast_path)
33701    }
33702
33703    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33704        &'ast self,
33705        visitor: &mut V,
33706        __ast_path: &mut AstNodePath<'r>,
33707    ) {
33708        match self {
33709            BigInt { span, value, raw } => {
33710                {
33711                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BigInt(
33712                        self,
33713                        self::fields::BigIntField::Span,
33714                    ));
33715                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33716                        span,
33717                        visitor,
33718                        &mut *__ast_path,
33719                    )
33720                };
33721                {
33722                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BigInt(
33723                        self,
33724                        self::fields::BigIntField::Value,
33725                    ));
33726                    <Box<BigIntValue> as VisitWithAstPath<V>>::visit_with_ast_path(
33727                        value,
33728                        visitor,
33729                        &mut *__ast_path,
33730                    )
33731                };
33732                {
33733                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BigInt(
33734                        self,
33735                        self::fields::BigIntField::Raw,
33736                    ));
33737                    <Option<swc_atoms::Atom> as VisitWithAstPath<V>>::visit_with_ast_path(
33738                        raw,
33739                        visitor,
33740                        &mut *__ast_path,
33741                    )
33742                };
33743            }
33744        }
33745    }
33746}
33747#[cfg(any(docsrs, feature = "path"))]
33748#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33749impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for BinExpr {
33750    #[doc = "Calls [VisitAstPath`::visit_bin_expr`] with `self`."]
33751    fn visit_with_ast_path<'ast: 'r, 'r>(
33752        &'ast self,
33753        visitor: &mut V,
33754        __ast_path: &mut AstNodePath<'r>,
33755    ) {
33756        <V as VisitAstPath>::visit_bin_expr(visitor, self, __ast_path)
33757    }
33758
33759    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33760        &'ast self,
33761        visitor: &mut V,
33762        __ast_path: &mut AstNodePath<'r>,
33763    ) {
33764        match self {
33765            BinExpr {
33766                span,
33767                op,
33768                left,
33769                right,
33770            } => {
33771                {
33772                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BinExpr(
33773                        self,
33774                        self::fields::BinExprField::Span,
33775                    ));
33776                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33777                        span,
33778                        visitor,
33779                        &mut *__ast_path,
33780                    )
33781                };
33782                {
33783                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BinExpr(
33784                        self,
33785                        self::fields::BinExprField::Op,
33786                    ));
33787                    <BinaryOp as VisitWithAstPath<V>>::visit_with_ast_path(
33788                        op,
33789                        visitor,
33790                        &mut *__ast_path,
33791                    )
33792                };
33793                {
33794                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BinExpr(
33795                        self,
33796                        self::fields::BinExprField::Left,
33797                    ));
33798                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
33799                        left,
33800                        visitor,
33801                        &mut *__ast_path,
33802                    )
33803                };
33804                {
33805                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BinExpr(
33806                        self,
33807                        self::fields::BinExprField::Right,
33808                    ));
33809                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
33810                        right,
33811                        visitor,
33812                        &mut *__ast_path,
33813                    )
33814                };
33815            }
33816        }
33817    }
33818}
33819#[cfg(any(docsrs, feature = "path"))]
33820#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33821impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for BinaryOp {
33822    #[doc = "Calls [VisitAstPath`::visit_binary_op`] with `self`."]
33823    fn visit_with_ast_path<'ast: 'r, 'r>(
33824        &'ast self,
33825        visitor: &mut V,
33826        __ast_path: &mut AstNodePath<'r>,
33827    ) {
33828        <V as VisitAstPath>::visit_binary_op(visitor, self, __ast_path)
33829    }
33830
33831    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33832        &'ast self,
33833        visitor: &mut V,
33834        __ast_path: &mut AstNodePath<'r>,
33835    ) {
33836        match self {
33837            BinaryOp::EqEq => {}
33838            BinaryOp::NotEq => {}
33839            BinaryOp::EqEqEq => {}
33840            BinaryOp::NotEqEq => {}
33841            BinaryOp::Lt => {}
33842            BinaryOp::LtEq => {}
33843            BinaryOp::Gt => {}
33844            BinaryOp::GtEq => {}
33845            BinaryOp::LShift => {}
33846            BinaryOp::RShift => {}
33847            BinaryOp::ZeroFillRShift => {}
33848            BinaryOp::Add => {}
33849            BinaryOp::Sub => {}
33850            BinaryOp::Mul => {}
33851            BinaryOp::Div => {}
33852            BinaryOp::Mod => {}
33853            BinaryOp::BitOr => {}
33854            BinaryOp::BitXor => {}
33855            BinaryOp::BitAnd => {}
33856            BinaryOp::LogicalOr => {}
33857            BinaryOp::LogicalAnd => {}
33858            BinaryOp::In => {}
33859            BinaryOp::InstanceOf => {}
33860            BinaryOp::Exp => {}
33861            BinaryOp::NullishCoalescing => {}
33862        }
33863    }
33864}
33865#[cfg(any(docsrs, feature = "path"))]
33866#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33867impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for BindingIdent {
33868    #[doc = "Calls [VisitAstPath`::visit_binding_ident`] with `self`."]
33869    fn visit_with_ast_path<'ast: 'r, 'r>(
33870        &'ast self,
33871        visitor: &mut V,
33872        __ast_path: &mut AstNodePath<'r>,
33873    ) {
33874        <V as VisitAstPath>::visit_binding_ident(visitor, self, __ast_path)
33875    }
33876
33877    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33878        &'ast self,
33879        visitor: &mut V,
33880        __ast_path: &mut AstNodePath<'r>,
33881    ) {
33882        match self {
33883            BindingIdent { id, type_ann } => {
33884                {
33885                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BindingIdent(
33886                        self,
33887                        self::fields::BindingIdentField::Id,
33888                    ));
33889                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
33890                        id,
33891                        visitor,
33892                        &mut *__ast_path,
33893                    )
33894                };
33895                {
33896                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BindingIdent(
33897                        self,
33898                        self::fields::BindingIdentField::TypeAnn,
33899                    ));
33900                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
33901                        type_ann,
33902                        visitor,
33903                        &mut *__ast_path,
33904                    )
33905                };
33906            }
33907        }
33908    }
33909}
33910#[cfg(any(docsrs, feature = "path"))]
33911#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33912impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for BlockStmt {
33913    #[doc = "Calls [VisitAstPath`::visit_block_stmt`] with `self`."]
33914    fn visit_with_ast_path<'ast: 'r, 'r>(
33915        &'ast self,
33916        visitor: &mut V,
33917        __ast_path: &mut AstNodePath<'r>,
33918    ) {
33919        <V as VisitAstPath>::visit_block_stmt(visitor, self, __ast_path)
33920    }
33921
33922    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33923        &'ast self,
33924        visitor: &mut V,
33925        __ast_path: &mut AstNodePath<'r>,
33926    ) {
33927        match self {
33928            BlockStmt { span, ctxt, stmts } => {
33929                {
33930                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BlockStmt(
33931                        self,
33932                        self::fields::BlockStmtField::Span,
33933                    ));
33934                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33935                        span,
33936                        visitor,
33937                        &mut *__ast_path,
33938                    )
33939                };
33940                {
33941                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BlockStmt(
33942                        self,
33943                        self::fields::BlockStmtField::Ctxt,
33944                    ));
33945                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
33946                        ctxt,
33947                        visitor,
33948                        &mut *__ast_path,
33949                    )
33950                };
33951                {
33952                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BlockStmt(
33953                        self,
33954                        self::fields::BlockStmtField::Stmts(usize::MAX),
33955                    ));
33956                    <Vec<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
33957                        stmts,
33958                        visitor,
33959                        &mut *__ast_path,
33960                    )
33961                };
33962            }
33963        }
33964    }
33965}
33966#[cfg(any(docsrs, feature = "path"))]
33967#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33968impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for BlockStmtOrExpr {
33969    #[doc = "Calls [VisitAstPath`::visit_block_stmt_or_expr`] with `self`."]
33970    fn visit_with_ast_path<'ast: 'r, 'r>(
33971        &'ast self,
33972        visitor: &mut V,
33973        __ast_path: &mut AstNodePath<'r>,
33974    ) {
33975        <V as VisitAstPath>::visit_block_stmt_or_expr(visitor, self, __ast_path)
33976    }
33977
33978    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33979        &'ast self,
33980        visitor: &mut V,
33981        __ast_path: &mut AstNodePath<'r>,
33982    ) {
33983        match self {
33984            BlockStmtOrExpr::BlockStmt { 0: _field_0 } => {
33985                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BlockStmtOrExpr(
33986                    self,
33987                    self::fields::BlockStmtOrExprField::BlockStmt,
33988                ));
33989                <BlockStmt as VisitWithAstPath<V>>::visit_with_ast_path(
33990                    _field_0,
33991                    visitor,
33992                    &mut *__ast_path,
33993                );
33994            }
33995            BlockStmtOrExpr::Expr { 0: _field_0 } => {
33996                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BlockStmtOrExpr(
33997                    self,
33998                    self::fields::BlockStmtOrExprField::Expr,
33999                ));
34000                <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
34001                    _field_0,
34002                    visitor,
34003                    &mut *__ast_path,
34004                );
34005            }
34006        }
34007    }
34008}
34009#[cfg(any(docsrs, feature = "path"))]
34010#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34011impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Bool {
34012    #[doc = "Calls [VisitAstPath`::visit_bool`] with `self`."]
34013    fn visit_with_ast_path<'ast: 'r, 'r>(
34014        &'ast self,
34015        visitor: &mut V,
34016        __ast_path: &mut AstNodePath<'r>,
34017    ) {
34018        <V as VisitAstPath>::visit_bool(visitor, self, __ast_path)
34019    }
34020
34021    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34022        &'ast self,
34023        visitor: &mut V,
34024        __ast_path: &mut AstNodePath<'r>,
34025    ) {
34026        match self {
34027            Bool { span, value } => {
34028                {
34029                    let mut __ast_path = __ast_path
34030                        .with_guard(AstParentNodeRef::Bool(self, self::fields::BoolField::Span));
34031                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34032                        span,
34033                        visitor,
34034                        &mut *__ast_path,
34035                    )
34036                };
34037            }
34038        }
34039    }
34040}
34041#[cfg(any(docsrs, feature = "path"))]
34042#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34043impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for BreakStmt {
34044    #[doc = "Calls [VisitAstPath`::visit_break_stmt`] with `self`."]
34045    fn visit_with_ast_path<'ast: 'r, 'r>(
34046        &'ast self,
34047        visitor: &mut V,
34048        __ast_path: &mut AstNodePath<'r>,
34049    ) {
34050        <V as VisitAstPath>::visit_break_stmt(visitor, self, __ast_path)
34051    }
34052
34053    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34054        &'ast self,
34055        visitor: &mut V,
34056        __ast_path: &mut AstNodePath<'r>,
34057    ) {
34058        match self {
34059            BreakStmt { span, label } => {
34060                {
34061                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BreakStmt(
34062                        self,
34063                        self::fields::BreakStmtField::Span,
34064                    ));
34065                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34066                        span,
34067                        visitor,
34068                        &mut *__ast_path,
34069                    )
34070                };
34071                {
34072                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BreakStmt(
34073                        self,
34074                        self::fields::BreakStmtField::Label,
34075                    ));
34076                    <Option<Ident> as VisitWithAstPath<V>>::visit_with_ast_path(
34077                        label,
34078                        visitor,
34079                        &mut *__ast_path,
34080                    )
34081                };
34082            }
34083        }
34084    }
34085}
34086#[cfg(any(docsrs, feature = "path"))]
34087#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34088impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for CallExpr {
34089    #[doc = "Calls [VisitAstPath`::visit_call_expr`] with `self`."]
34090    fn visit_with_ast_path<'ast: 'r, 'r>(
34091        &'ast self,
34092        visitor: &mut V,
34093        __ast_path: &mut AstNodePath<'r>,
34094    ) {
34095        <V as VisitAstPath>::visit_call_expr(visitor, self, __ast_path)
34096    }
34097
34098    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34099        &'ast self,
34100        visitor: &mut V,
34101        __ast_path: &mut AstNodePath<'r>,
34102    ) {
34103        match self {
34104            CallExpr {
34105                span,
34106                ctxt,
34107                callee,
34108                args,
34109                type_args,
34110            } => {
34111                {
34112                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CallExpr(
34113                        self,
34114                        self::fields::CallExprField::Span,
34115                    ));
34116                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34117                        span,
34118                        visitor,
34119                        &mut *__ast_path,
34120                    )
34121                };
34122                {
34123                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CallExpr(
34124                        self,
34125                        self::fields::CallExprField::Ctxt,
34126                    ));
34127                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
34128                        ctxt,
34129                        visitor,
34130                        &mut *__ast_path,
34131                    )
34132                };
34133                {
34134                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CallExpr(
34135                        self,
34136                        self::fields::CallExprField::Callee,
34137                    ));
34138                    <Callee as VisitWithAstPath<V>>::visit_with_ast_path(
34139                        callee,
34140                        visitor,
34141                        &mut *__ast_path,
34142                    )
34143                };
34144                {
34145                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CallExpr(
34146                        self,
34147                        self::fields::CallExprField::Args(usize::MAX),
34148                    ));
34149                    <Vec<ExprOrSpread> as VisitWithAstPath<V>>::visit_with_ast_path(
34150                        args,
34151                        visitor,
34152                        &mut *__ast_path,
34153                    )
34154                };
34155                {
34156                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CallExpr(
34157                        self,
34158                        self::fields::CallExprField::TypeArgs,
34159                    ));
34160                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_args , visitor , & mut * __ast_path)
34161                };
34162            }
34163        }
34164    }
34165}
34166#[cfg(any(docsrs, feature = "path"))]
34167#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34168impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Callee {
34169    #[doc = "Calls [VisitAstPath`::visit_callee`] with `self`."]
34170    fn visit_with_ast_path<'ast: 'r, 'r>(
34171        &'ast self,
34172        visitor: &mut V,
34173        __ast_path: &mut AstNodePath<'r>,
34174    ) {
34175        <V as VisitAstPath>::visit_callee(visitor, self, __ast_path)
34176    }
34177
34178    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34179        &'ast self,
34180        visitor: &mut V,
34181        __ast_path: &mut AstNodePath<'r>,
34182    ) {
34183        match self {
34184            Callee::Super { 0: _field_0 } => {
34185                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Callee(
34186                    self,
34187                    self::fields::CalleeField::Super,
34188                ));
34189                <Super as VisitWithAstPath<V>>::visit_with_ast_path(
34190                    _field_0,
34191                    visitor,
34192                    &mut *__ast_path,
34193                );
34194            }
34195            Callee::Import { 0: _field_0 } => {
34196                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Callee(
34197                    self,
34198                    self::fields::CalleeField::Import,
34199                ));
34200                <Import as VisitWithAstPath<V>>::visit_with_ast_path(
34201                    _field_0,
34202                    visitor,
34203                    &mut *__ast_path,
34204                );
34205            }
34206            Callee::Expr { 0: _field_0 } => {
34207                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Callee(
34208                    self,
34209                    self::fields::CalleeField::Expr,
34210                ));
34211                <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
34212                    _field_0,
34213                    visitor,
34214                    &mut *__ast_path,
34215                );
34216            }
34217        }
34218    }
34219}
34220#[cfg(any(docsrs, feature = "path"))]
34221#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34222impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for CatchClause {
34223    #[doc = "Calls [VisitAstPath`::visit_catch_clause`] with `self`."]
34224    fn visit_with_ast_path<'ast: 'r, 'r>(
34225        &'ast self,
34226        visitor: &mut V,
34227        __ast_path: &mut AstNodePath<'r>,
34228    ) {
34229        <V as VisitAstPath>::visit_catch_clause(visitor, self, __ast_path)
34230    }
34231
34232    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34233        &'ast self,
34234        visitor: &mut V,
34235        __ast_path: &mut AstNodePath<'r>,
34236    ) {
34237        match self {
34238            CatchClause { span, param, body } => {
34239                {
34240                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CatchClause(
34241                        self,
34242                        self::fields::CatchClauseField::Span,
34243                    ));
34244                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34245                        span,
34246                        visitor,
34247                        &mut *__ast_path,
34248                    )
34249                };
34250                {
34251                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CatchClause(
34252                        self,
34253                        self::fields::CatchClauseField::Param,
34254                    ));
34255                    <Option<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
34256                        param,
34257                        visitor,
34258                        &mut *__ast_path,
34259                    )
34260                };
34261                {
34262                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CatchClause(
34263                        self,
34264                        self::fields::CatchClauseField::Body,
34265                    ));
34266                    <BlockStmt as VisitWithAstPath<V>>::visit_with_ast_path(
34267                        body,
34268                        visitor,
34269                        &mut *__ast_path,
34270                    )
34271                };
34272            }
34273        }
34274    }
34275}
34276#[cfg(any(docsrs, feature = "path"))]
34277#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34278impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Class {
34279    #[doc = "Calls [VisitAstPath`::visit_class`] with `self`."]
34280    fn visit_with_ast_path<'ast: 'r, 'r>(
34281        &'ast self,
34282        visitor: &mut V,
34283        __ast_path: &mut AstNodePath<'r>,
34284    ) {
34285        <V as VisitAstPath>::visit_class(visitor, self, __ast_path)
34286    }
34287
34288    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34289        &'ast self,
34290        visitor: &mut V,
34291        __ast_path: &mut AstNodePath<'r>,
34292    ) {
34293        match self {
34294            Class {
34295                span,
34296                ctxt,
34297                decorators,
34298                body,
34299                super_class,
34300                is_abstract,
34301                type_params,
34302                super_type_params,
34303                implements,
34304            } => {
34305                {
34306                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Class(
34307                        self,
34308                        self::fields::ClassField::Span,
34309                    ));
34310                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34311                        span,
34312                        visitor,
34313                        &mut *__ast_path,
34314                    )
34315                };
34316                {
34317                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Class(
34318                        self,
34319                        self::fields::ClassField::Ctxt,
34320                    ));
34321                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
34322                        ctxt,
34323                        visitor,
34324                        &mut *__ast_path,
34325                    )
34326                };
34327                {
34328                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Class(
34329                        self,
34330                        self::fields::ClassField::Decorators(usize::MAX),
34331                    ));
34332                    <Vec<Decorator> as VisitWithAstPath<V>>::visit_with_ast_path(
34333                        decorators,
34334                        visitor,
34335                        &mut *__ast_path,
34336                    )
34337                };
34338                {
34339                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Class(
34340                        self,
34341                        self::fields::ClassField::Body(usize::MAX),
34342                    ));
34343                    <Vec<ClassMember> as VisitWithAstPath<V>>::visit_with_ast_path(
34344                        body,
34345                        visitor,
34346                        &mut *__ast_path,
34347                    )
34348                };
34349                {
34350                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Class(
34351                        self,
34352                        self::fields::ClassField::SuperClass,
34353                    ));
34354                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
34355                        super_class,
34356                        visitor,
34357                        &mut *__ast_path,
34358                    )
34359                };
34360                {
34361                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Class(
34362                        self,
34363                        self::fields::ClassField::TypeParams,
34364                    ));
34365                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
34366                        type_params,
34367                        visitor,
34368                        &mut *__ast_path,
34369                    )
34370                };
34371                {
34372                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Class(
34373                        self,
34374                        self::fields::ClassField::SuperTypeParams,
34375                    ));
34376                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (super_type_params , visitor , & mut * __ast_path)
34377                };
34378                {
34379                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Class(
34380                        self,
34381                        self::fields::ClassField::Implements(usize::MAX),
34382                    ));
34383                    <Vec<TsExprWithTypeArgs> as VisitWithAstPath<V>>::visit_with_ast_path(
34384                        implements,
34385                        visitor,
34386                        &mut *__ast_path,
34387                    )
34388                };
34389            }
34390        }
34391    }
34392}
34393#[cfg(any(docsrs, feature = "path"))]
34394#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34395impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ClassDecl {
34396    #[doc = "Calls [VisitAstPath`::visit_class_decl`] with `self`."]
34397    fn visit_with_ast_path<'ast: 'r, 'r>(
34398        &'ast self,
34399        visitor: &mut V,
34400        __ast_path: &mut AstNodePath<'r>,
34401    ) {
34402        <V as VisitAstPath>::visit_class_decl(visitor, self, __ast_path)
34403    }
34404
34405    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34406        &'ast self,
34407        visitor: &mut V,
34408        __ast_path: &mut AstNodePath<'r>,
34409    ) {
34410        match self {
34411            ClassDecl {
34412                ident,
34413                declare,
34414                class,
34415            } => {
34416                {
34417                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassDecl(
34418                        self,
34419                        self::fields::ClassDeclField::Ident,
34420                    ));
34421                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
34422                        ident,
34423                        visitor,
34424                        &mut *__ast_path,
34425                    )
34426                };
34427                {
34428                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassDecl(
34429                        self,
34430                        self::fields::ClassDeclField::Class,
34431                    ));
34432                    <Box<Class> as VisitWithAstPath<V>>::visit_with_ast_path(
34433                        class,
34434                        visitor,
34435                        &mut *__ast_path,
34436                    )
34437                };
34438            }
34439        }
34440    }
34441}
34442#[cfg(any(docsrs, feature = "path"))]
34443#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34444impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ClassExpr {
34445    #[doc = "Calls [VisitAstPath`::visit_class_expr`] with `self`."]
34446    fn visit_with_ast_path<'ast: 'r, 'r>(
34447        &'ast self,
34448        visitor: &mut V,
34449        __ast_path: &mut AstNodePath<'r>,
34450    ) {
34451        <V as VisitAstPath>::visit_class_expr(visitor, self, __ast_path)
34452    }
34453
34454    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34455        &'ast self,
34456        visitor: &mut V,
34457        __ast_path: &mut AstNodePath<'r>,
34458    ) {
34459        match self {
34460            ClassExpr { ident, class } => {
34461                {
34462                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassExpr(
34463                        self,
34464                        self::fields::ClassExprField::Ident,
34465                    ));
34466                    <Option<Ident> as VisitWithAstPath<V>>::visit_with_ast_path(
34467                        ident,
34468                        visitor,
34469                        &mut *__ast_path,
34470                    )
34471                };
34472                {
34473                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassExpr(
34474                        self,
34475                        self::fields::ClassExprField::Class,
34476                    ));
34477                    <Box<Class> as VisitWithAstPath<V>>::visit_with_ast_path(
34478                        class,
34479                        visitor,
34480                        &mut *__ast_path,
34481                    )
34482                };
34483            }
34484        }
34485    }
34486}
34487#[cfg(any(docsrs, feature = "path"))]
34488#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34489impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ClassMember {
34490    #[doc = "Calls [VisitAstPath`::visit_class_member`] with `self`."]
34491    fn visit_with_ast_path<'ast: 'r, 'r>(
34492        &'ast self,
34493        visitor: &mut V,
34494        __ast_path: &mut AstNodePath<'r>,
34495    ) {
34496        <V as VisitAstPath>::visit_class_member(visitor, self, __ast_path)
34497    }
34498
34499    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34500        &'ast self,
34501        visitor: &mut V,
34502        __ast_path: &mut AstNodePath<'r>,
34503    ) {
34504        match self {
34505            ClassMember::Constructor { 0: _field_0 } => {
34506                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34507                    self,
34508                    self::fields::ClassMemberField::Constructor,
34509                ));
34510                <Constructor as VisitWithAstPath<V>>::visit_with_ast_path(
34511                    _field_0,
34512                    visitor,
34513                    &mut *__ast_path,
34514                );
34515            }
34516            ClassMember::Method { 0: _field_0 } => {
34517                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34518                    self,
34519                    self::fields::ClassMemberField::Method,
34520                ));
34521                <ClassMethod as VisitWithAstPath<V>>::visit_with_ast_path(
34522                    _field_0,
34523                    visitor,
34524                    &mut *__ast_path,
34525                );
34526            }
34527            ClassMember::PrivateMethod { 0: _field_0 } => {
34528                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34529                    self,
34530                    self::fields::ClassMemberField::PrivateMethod,
34531                ));
34532                <PrivateMethod as VisitWithAstPath<V>>::visit_with_ast_path(
34533                    _field_0,
34534                    visitor,
34535                    &mut *__ast_path,
34536                );
34537            }
34538            ClassMember::ClassProp { 0: _field_0 } => {
34539                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34540                    self,
34541                    self::fields::ClassMemberField::ClassProp,
34542                ));
34543                <ClassProp as VisitWithAstPath<V>>::visit_with_ast_path(
34544                    _field_0,
34545                    visitor,
34546                    &mut *__ast_path,
34547                );
34548            }
34549            ClassMember::PrivateProp { 0: _field_0 } => {
34550                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34551                    self,
34552                    self::fields::ClassMemberField::PrivateProp,
34553                ));
34554                <PrivateProp as VisitWithAstPath<V>>::visit_with_ast_path(
34555                    _field_0,
34556                    visitor,
34557                    &mut *__ast_path,
34558                );
34559            }
34560            ClassMember::TsIndexSignature { 0: _field_0 } => {
34561                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34562                    self,
34563                    self::fields::ClassMemberField::TsIndexSignature,
34564                ));
34565                <TsIndexSignature as VisitWithAstPath<V>>::visit_with_ast_path(
34566                    _field_0,
34567                    visitor,
34568                    &mut *__ast_path,
34569                );
34570            }
34571            ClassMember::Empty { 0: _field_0 } => {
34572                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34573                    self,
34574                    self::fields::ClassMemberField::Empty,
34575                ));
34576                <EmptyStmt as VisitWithAstPath<V>>::visit_with_ast_path(
34577                    _field_0,
34578                    visitor,
34579                    &mut *__ast_path,
34580                );
34581            }
34582            ClassMember::StaticBlock { 0: _field_0 } => {
34583                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34584                    self,
34585                    self::fields::ClassMemberField::StaticBlock,
34586                ));
34587                <StaticBlock as VisitWithAstPath<V>>::visit_with_ast_path(
34588                    _field_0,
34589                    visitor,
34590                    &mut *__ast_path,
34591                );
34592            }
34593            ClassMember::AutoAccessor { 0: _field_0 } => {
34594                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34595                    self,
34596                    self::fields::ClassMemberField::AutoAccessor,
34597                ));
34598                <AutoAccessor as VisitWithAstPath<V>>::visit_with_ast_path(
34599                    _field_0,
34600                    visitor,
34601                    &mut *__ast_path,
34602                );
34603            }
34604        }
34605    }
34606}
34607#[cfg(any(docsrs, feature = "path"))]
34608#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34609impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ClassMethod {
34610    #[doc = "Calls [VisitAstPath`::visit_class_method`] with `self`."]
34611    fn visit_with_ast_path<'ast: 'r, 'r>(
34612        &'ast self,
34613        visitor: &mut V,
34614        __ast_path: &mut AstNodePath<'r>,
34615    ) {
34616        <V as VisitAstPath>::visit_class_method(visitor, self, __ast_path)
34617    }
34618
34619    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34620        &'ast self,
34621        visitor: &mut V,
34622        __ast_path: &mut AstNodePath<'r>,
34623    ) {
34624        match self {
34625            ClassMethod {
34626                span,
34627                key,
34628                function,
34629                kind,
34630                is_static,
34631                accessibility,
34632                is_abstract,
34633                is_optional,
34634                is_override,
34635            } => {
34636                {
34637                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMethod(
34638                        self,
34639                        self::fields::ClassMethodField::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::ClassMethod(
34649                        self,
34650                        self::fields::ClassMethodField::Key,
34651                    ));
34652                    <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
34653                        key,
34654                        visitor,
34655                        &mut *__ast_path,
34656                    )
34657                };
34658                {
34659                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMethod(
34660                        self,
34661                        self::fields::ClassMethodField::Function,
34662                    ));
34663                    <Box<Function> as VisitWithAstPath<V>>::visit_with_ast_path(
34664                        function,
34665                        visitor,
34666                        &mut *__ast_path,
34667                    )
34668                };
34669                {
34670                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMethod(
34671                        self,
34672                        self::fields::ClassMethodField::Kind,
34673                    ));
34674                    <MethodKind as VisitWithAstPath<V>>::visit_with_ast_path(
34675                        kind,
34676                        visitor,
34677                        &mut *__ast_path,
34678                    )
34679                };
34680                {
34681                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMethod(
34682                        self,
34683                        self::fields::ClassMethodField::Accessibility,
34684                    ));
34685                    <Option<Accessibility> as VisitWithAstPath<V>>::visit_with_ast_path(
34686                        accessibility,
34687                        visitor,
34688                        &mut *__ast_path,
34689                    )
34690                };
34691            }
34692        }
34693    }
34694}
34695#[cfg(any(docsrs, feature = "path"))]
34696#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34697impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ClassProp {
34698    #[doc = "Calls [VisitAstPath`::visit_class_prop`] with `self`."]
34699    fn visit_with_ast_path<'ast: 'r, 'r>(
34700        &'ast self,
34701        visitor: &mut V,
34702        __ast_path: &mut AstNodePath<'r>,
34703    ) {
34704        <V as VisitAstPath>::visit_class_prop(visitor, self, __ast_path)
34705    }
34706
34707    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34708        &'ast self,
34709        visitor: &mut V,
34710        __ast_path: &mut AstNodePath<'r>,
34711    ) {
34712        match self {
34713            ClassProp {
34714                span,
34715                key,
34716                value,
34717                type_ann,
34718                is_static,
34719                decorators,
34720                accessibility,
34721                is_abstract,
34722                is_optional,
34723                is_override,
34724                readonly,
34725                declare,
34726                definite,
34727            } => {
34728                {
34729                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassProp(
34730                        self,
34731                        self::fields::ClassPropField::Span,
34732                    ));
34733                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34734                        span,
34735                        visitor,
34736                        &mut *__ast_path,
34737                    )
34738                };
34739                {
34740                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassProp(
34741                        self,
34742                        self::fields::ClassPropField::Key,
34743                    ));
34744                    <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
34745                        key,
34746                        visitor,
34747                        &mut *__ast_path,
34748                    )
34749                };
34750                {
34751                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassProp(
34752                        self,
34753                        self::fields::ClassPropField::Value,
34754                    ));
34755                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
34756                        value,
34757                        visitor,
34758                        &mut *__ast_path,
34759                    )
34760                };
34761                {
34762                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassProp(
34763                        self,
34764                        self::fields::ClassPropField::TypeAnn,
34765                    ));
34766                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
34767                        type_ann,
34768                        visitor,
34769                        &mut *__ast_path,
34770                    )
34771                };
34772                {
34773                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassProp(
34774                        self,
34775                        self::fields::ClassPropField::Decorators(usize::MAX),
34776                    ));
34777                    <Vec<Decorator> as VisitWithAstPath<V>>::visit_with_ast_path(
34778                        decorators,
34779                        visitor,
34780                        &mut *__ast_path,
34781                    )
34782                };
34783                {
34784                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassProp(
34785                        self,
34786                        self::fields::ClassPropField::Accessibility,
34787                    ));
34788                    <Option<Accessibility> as VisitWithAstPath<V>>::visit_with_ast_path(
34789                        accessibility,
34790                        visitor,
34791                        &mut *__ast_path,
34792                    )
34793                };
34794            }
34795        }
34796    }
34797}
34798#[cfg(any(docsrs, feature = "path"))]
34799#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34800impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ComputedPropName {
34801    #[doc = "Calls [VisitAstPath`::visit_computed_prop_name`] with `self`."]
34802    fn visit_with_ast_path<'ast: 'r, 'r>(
34803        &'ast self,
34804        visitor: &mut V,
34805        __ast_path: &mut AstNodePath<'r>,
34806    ) {
34807        <V as VisitAstPath>::visit_computed_prop_name(visitor, self, __ast_path)
34808    }
34809
34810    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34811        &'ast self,
34812        visitor: &mut V,
34813        __ast_path: &mut AstNodePath<'r>,
34814    ) {
34815        match self {
34816            ComputedPropName { span, expr } => {
34817                {
34818                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ComputedPropName(
34819                        self,
34820                        self::fields::ComputedPropNameField::Span,
34821                    ));
34822                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34823                        span,
34824                        visitor,
34825                        &mut *__ast_path,
34826                    )
34827                };
34828                {
34829                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ComputedPropName(
34830                        self,
34831                        self::fields::ComputedPropNameField::Expr,
34832                    ));
34833                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
34834                        expr,
34835                        visitor,
34836                        &mut *__ast_path,
34837                    )
34838                };
34839            }
34840        }
34841    }
34842}
34843#[cfg(any(docsrs, feature = "path"))]
34844#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34845impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for CondExpr {
34846    #[doc = "Calls [VisitAstPath`::visit_cond_expr`] with `self`."]
34847    fn visit_with_ast_path<'ast: 'r, 'r>(
34848        &'ast self,
34849        visitor: &mut V,
34850        __ast_path: &mut AstNodePath<'r>,
34851    ) {
34852        <V as VisitAstPath>::visit_cond_expr(visitor, self, __ast_path)
34853    }
34854
34855    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34856        &'ast self,
34857        visitor: &mut V,
34858        __ast_path: &mut AstNodePath<'r>,
34859    ) {
34860        match self {
34861            CondExpr {
34862                span,
34863                test,
34864                cons,
34865                alt,
34866            } => {
34867                {
34868                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CondExpr(
34869                        self,
34870                        self::fields::CondExprField::Span,
34871                    ));
34872                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34873                        span,
34874                        visitor,
34875                        &mut *__ast_path,
34876                    )
34877                };
34878                {
34879                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CondExpr(
34880                        self,
34881                        self::fields::CondExprField::Test,
34882                    ));
34883                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
34884                        test,
34885                        visitor,
34886                        &mut *__ast_path,
34887                    )
34888                };
34889                {
34890                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CondExpr(
34891                        self,
34892                        self::fields::CondExprField::Cons,
34893                    ));
34894                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
34895                        cons,
34896                        visitor,
34897                        &mut *__ast_path,
34898                    )
34899                };
34900                {
34901                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CondExpr(
34902                        self,
34903                        self::fields::CondExprField::Alt,
34904                    ));
34905                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
34906                        alt,
34907                        visitor,
34908                        &mut *__ast_path,
34909                    )
34910                };
34911            }
34912        }
34913    }
34914}
34915#[cfg(any(docsrs, feature = "path"))]
34916#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34917impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Constructor {
34918    #[doc = "Calls [VisitAstPath`::visit_constructor`] with `self`."]
34919    fn visit_with_ast_path<'ast: 'r, 'r>(
34920        &'ast self,
34921        visitor: &mut V,
34922        __ast_path: &mut AstNodePath<'r>,
34923    ) {
34924        <V as VisitAstPath>::visit_constructor(visitor, self, __ast_path)
34925    }
34926
34927    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34928        &'ast self,
34929        visitor: &mut V,
34930        __ast_path: &mut AstNodePath<'r>,
34931    ) {
34932        match self {
34933            Constructor {
34934                span,
34935                ctxt,
34936                key,
34937                params,
34938                body,
34939                accessibility,
34940                is_optional,
34941            } => {
34942                {
34943                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Constructor(
34944                        self,
34945                        self::fields::ConstructorField::Span,
34946                    ));
34947                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34948                        span,
34949                        visitor,
34950                        &mut *__ast_path,
34951                    )
34952                };
34953                {
34954                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Constructor(
34955                        self,
34956                        self::fields::ConstructorField::Ctxt,
34957                    ));
34958                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
34959                        ctxt,
34960                        visitor,
34961                        &mut *__ast_path,
34962                    )
34963                };
34964                {
34965                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Constructor(
34966                        self,
34967                        self::fields::ConstructorField::Key,
34968                    ));
34969                    <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
34970                        key,
34971                        visitor,
34972                        &mut *__ast_path,
34973                    )
34974                };
34975                {
34976                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Constructor(
34977                        self,
34978                        self::fields::ConstructorField::Params(usize::MAX),
34979                    ));
34980                    <Vec<ParamOrTsParamProp> as VisitWithAstPath<V>>::visit_with_ast_path(
34981                        params,
34982                        visitor,
34983                        &mut *__ast_path,
34984                    )
34985                };
34986                {
34987                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Constructor(
34988                        self,
34989                        self::fields::ConstructorField::Body,
34990                    ));
34991                    <Option<BlockStmt> as VisitWithAstPath<V>>::visit_with_ast_path(
34992                        body,
34993                        visitor,
34994                        &mut *__ast_path,
34995                    )
34996                };
34997                {
34998                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Constructor(
34999                        self,
35000                        self::fields::ConstructorField::Accessibility,
35001                    ));
35002                    <Option<Accessibility> as VisitWithAstPath<V>>::visit_with_ast_path(
35003                        accessibility,
35004                        visitor,
35005                        &mut *__ast_path,
35006                    )
35007                };
35008            }
35009        }
35010    }
35011}
35012#[cfg(any(docsrs, feature = "path"))]
35013#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35014impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ContinueStmt {
35015    #[doc = "Calls [VisitAstPath`::visit_continue_stmt`] with `self`."]
35016    fn visit_with_ast_path<'ast: 'r, 'r>(
35017        &'ast self,
35018        visitor: &mut V,
35019        __ast_path: &mut AstNodePath<'r>,
35020    ) {
35021        <V as VisitAstPath>::visit_continue_stmt(visitor, self, __ast_path)
35022    }
35023
35024    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35025        &'ast self,
35026        visitor: &mut V,
35027        __ast_path: &mut AstNodePath<'r>,
35028    ) {
35029        match self {
35030            ContinueStmt { span, label } => {
35031                {
35032                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ContinueStmt(
35033                        self,
35034                        self::fields::ContinueStmtField::Span,
35035                    ));
35036                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35037                        span,
35038                        visitor,
35039                        &mut *__ast_path,
35040                    )
35041                };
35042                {
35043                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ContinueStmt(
35044                        self,
35045                        self::fields::ContinueStmtField::Label,
35046                    ));
35047                    <Option<Ident> as VisitWithAstPath<V>>::visit_with_ast_path(
35048                        label,
35049                        visitor,
35050                        &mut *__ast_path,
35051                    )
35052                };
35053            }
35054        }
35055    }
35056}
35057#[cfg(any(docsrs, feature = "path"))]
35058#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35059impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for DebuggerStmt {
35060    #[doc = "Calls [VisitAstPath`::visit_debugger_stmt`] with `self`."]
35061    fn visit_with_ast_path<'ast: 'r, 'r>(
35062        &'ast self,
35063        visitor: &mut V,
35064        __ast_path: &mut AstNodePath<'r>,
35065    ) {
35066        <V as VisitAstPath>::visit_debugger_stmt(visitor, self, __ast_path)
35067    }
35068
35069    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35070        &'ast self,
35071        visitor: &mut V,
35072        __ast_path: &mut AstNodePath<'r>,
35073    ) {
35074        match self {
35075            DebuggerStmt { span } => {
35076                {
35077                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::DebuggerStmt(
35078                        self,
35079                        self::fields::DebuggerStmtField::Span,
35080                    ));
35081                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35082                        span,
35083                        visitor,
35084                        &mut *__ast_path,
35085                    )
35086                };
35087            }
35088        }
35089    }
35090}
35091#[cfg(any(docsrs, feature = "path"))]
35092#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35093impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Decl {
35094    #[doc = "Calls [VisitAstPath`::visit_decl`] with `self`."]
35095    fn visit_with_ast_path<'ast: 'r, 'r>(
35096        &'ast self,
35097        visitor: &mut V,
35098        __ast_path: &mut AstNodePath<'r>,
35099    ) {
35100        <V as VisitAstPath>::visit_decl(visitor, self, __ast_path)
35101    }
35102
35103    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35104        &'ast self,
35105        visitor: &mut V,
35106        __ast_path: &mut AstNodePath<'r>,
35107    ) {
35108        match self {
35109            Decl::Class { 0: _field_0 } => {
35110                let mut __ast_path = __ast_path
35111                    .with_guard(AstParentNodeRef::Decl(self, self::fields::DeclField::Class));
35112                <ClassDecl as VisitWithAstPath<V>>::visit_with_ast_path(
35113                    _field_0,
35114                    visitor,
35115                    &mut *__ast_path,
35116                );
35117            }
35118            Decl::Fn { 0: _field_0 } => {
35119                let mut __ast_path = __ast_path
35120                    .with_guard(AstParentNodeRef::Decl(self, self::fields::DeclField::Fn));
35121                <FnDecl as VisitWithAstPath<V>>::visit_with_ast_path(
35122                    _field_0,
35123                    visitor,
35124                    &mut *__ast_path,
35125                );
35126            }
35127            Decl::Var { 0: _field_0 } => {
35128                let mut __ast_path = __ast_path
35129                    .with_guard(AstParentNodeRef::Decl(self, self::fields::DeclField::Var));
35130                <Box<VarDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
35131                    _field_0,
35132                    visitor,
35133                    &mut *__ast_path,
35134                );
35135            }
35136            Decl::Using { 0: _field_0 } => {
35137                let mut __ast_path = __ast_path
35138                    .with_guard(AstParentNodeRef::Decl(self, self::fields::DeclField::Using));
35139                <Box<UsingDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
35140                    _field_0,
35141                    visitor,
35142                    &mut *__ast_path,
35143                );
35144            }
35145            Decl::TsInterface { 0: _field_0 } => {
35146                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Decl(
35147                    self,
35148                    self::fields::DeclField::TsInterface,
35149                ));
35150                <Box<TsInterfaceDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
35151                    _field_0,
35152                    visitor,
35153                    &mut *__ast_path,
35154                );
35155            }
35156            Decl::TsTypeAlias { 0: _field_0 } => {
35157                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Decl(
35158                    self,
35159                    self::fields::DeclField::TsTypeAlias,
35160                ));
35161                <Box<TsTypeAliasDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
35162                    _field_0,
35163                    visitor,
35164                    &mut *__ast_path,
35165                );
35166            }
35167            Decl::TsEnum { 0: _field_0 } => {
35168                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Decl(
35169                    self,
35170                    self::fields::DeclField::TsEnum,
35171                ));
35172                <Box<TsEnumDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
35173                    _field_0,
35174                    visitor,
35175                    &mut *__ast_path,
35176                );
35177            }
35178            Decl::TsModule { 0: _field_0 } => {
35179                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Decl(
35180                    self,
35181                    self::fields::DeclField::TsModule,
35182                ));
35183                <Box<TsModuleDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
35184                    _field_0,
35185                    visitor,
35186                    &mut *__ast_path,
35187                );
35188            }
35189        }
35190    }
35191}
35192#[cfg(any(docsrs, feature = "path"))]
35193#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35194impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Decorator {
35195    #[doc = "Calls [VisitAstPath`::visit_decorator`] with `self`."]
35196    fn visit_with_ast_path<'ast: 'r, 'r>(
35197        &'ast self,
35198        visitor: &mut V,
35199        __ast_path: &mut AstNodePath<'r>,
35200    ) {
35201        <V as VisitAstPath>::visit_decorator(visitor, self, __ast_path)
35202    }
35203
35204    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35205        &'ast self,
35206        visitor: &mut V,
35207        __ast_path: &mut AstNodePath<'r>,
35208    ) {
35209        match self {
35210            Decorator { span, expr } => {
35211                {
35212                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Decorator(
35213                        self,
35214                        self::fields::DecoratorField::Span,
35215                    ));
35216                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35217                        span,
35218                        visitor,
35219                        &mut *__ast_path,
35220                    )
35221                };
35222                {
35223                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Decorator(
35224                        self,
35225                        self::fields::DecoratorField::Expr,
35226                    ));
35227                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
35228                        expr,
35229                        visitor,
35230                        &mut *__ast_path,
35231                    )
35232                };
35233            }
35234        }
35235    }
35236}
35237#[cfg(any(docsrs, feature = "path"))]
35238#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35239impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for DefaultDecl {
35240    #[doc = "Calls [VisitAstPath`::visit_default_decl`] with `self`."]
35241    fn visit_with_ast_path<'ast: 'r, 'r>(
35242        &'ast self,
35243        visitor: &mut V,
35244        __ast_path: &mut AstNodePath<'r>,
35245    ) {
35246        <V as VisitAstPath>::visit_default_decl(visitor, self, __ast_path)
35247    }
35248
35249    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35250        &'ast self,
35251        visitor: &mut V,
35252        __ast_path: &mut AstNodePath<'r>,
35253    ) {
35254        match self {
35255            DefaultDecl::Class { 0: _field_0 } => {
35256                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::DefaultDecl(
35257                    self,
35258                    self::fields::DefaultDeclField::Class,
35259                ));
35260                <ClassExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35261                    _field_0,
35262                    visitor,
35263                    &mut *__ast_path,
35264                );
35265            }
35266            DefaultDecl::Fn { 0: _field_0 } => {
35267                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::DefaultDecl(
35268                    self,
35269                    self::fields::DefaultDeclField::Fn,
35270                ));
35271                <FnExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35272                    _field_0,
35273                    visitor,
35274                    &mut *__ast_path,
35275                );
35276            }
35277            DefaultDecl::TsInterfaceDecl { 0: _field_0 } => {
35278                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::DefaultDecl(
35279                    self,
35280                    self::fields::DefaultDeclField::TsInterfaceDecl,
35281                ));
35282                <Box<TsInterfaceDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
35283                    _field_0,
35284                    visitor,
35285                    &mut *__ast_path,
35286                );
35287            }
35288        }
35289    }
35290}
35291#[cfg(any(docsrs, feature = "path"))]
35292#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35293impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for DoWhileStmt {
35294    #[doc = "Calls [VisitAstPath`::visit_do_while_stmt`] with `self`."]
35295    fn visit_with_ast_path<'ast: 'r, 'r>(
35296        &'ast self,
35297        visitor: &mut V,
35298        __ast_path: &mut AstNodePath<'r>,
35299    ) {
35300        <V as VisitAstPath>::visit_do_while_stmt(visitor, self, __ast_path)
35301    }
35302
35303    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35304        &'ast self,
35305        visitor: &mut V,
35306        __ast_path: &mut AstNodePath<'r>,
35307    ) {
35308        match self {
35309            DoWhileStmt { span, test, body } => {
35310                {
35311                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::DoWhileStmt(
35312                        self,
35313                        self::fields::DoWhileStmtField::Span,
35314                    ));
35315                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35316                        span,
35317                        visitor,
35318                        &mut *__ast_path,
35319                    )
35320                };
35321                {
35322                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::DoWhileStmt(
35323                        self,
35324                        self::fields::DoWhileStmtField::Test,
35325                    ));
35326                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
35327                        test,
35328                        visitor,
35329                        &mut *__ast_path,
35330                    )
35331                };
35332                {
35333                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::DoWhileStmt(
35334                        self,
35335                        self::fields::DoWhileStmtField::Body,
35336                    ));
35337                    <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
35338                        body,
35339                        visitor,
35340                        &mut *__ast_path,
35341                    )
35342                };
35343            }
35344        }
35345    }
35346}
35347#[cfg(any(docsrs, feature = "path"))]
35348#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35349impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for EmptyStmt {
35350    #[doc = "Calls [VisitAstPath`::visit_empty_stmt`] with `self`."]
35351    fn visit_with_ast_path<'ast: 'r, 'r>(
35352        &'ast self,
35353        visitor: &mut V,
35354        __ast_path: &mut AstNodePath<'r>,
35355    ) {
35356        <V as VisitAstPath>::visit_empty_stmt(visitor, self, __ast_path)
35357    }
35358
35359    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35360        &'ast self,
35361        visitor: &mut V,
35362        __ast_path: &mut AstNodePath<'r>,
35363    ) {
35364        match self {
35365            EmptyStmt { span } => {
35366                {
35367                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::EmptyStmt(
35368                        self,
35369                        self::fields::EmptyStmtField::Span,
35370                    ));
35371                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35372                        span,
35373                        visitor,
35374                        &mut *__ast_path,
35375                    )
35376                };
35377            }
35378        }
35379    }
35380}
35381#[cfg(any(docsrs, feature = "path"))]
35382#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35383impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExportAll {
35384    #[doc = "Calls [VisitAstPath`::visit_export_all`] with `self`."]
35385    fn visit_with_ast_path<'ast: 'r, 'r>(
35386        &'ast self,
35387        visitor: &mut V,
35388        __ast_path: &mut AstNodePath<'r>,
35389    ) {
35390        <V as VisitAstPath>::visit_export_all(visitor, self, __ast_path)
35391    }
35392
35393    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35394        &'ast self,
35395        visitor: &mut V,
35396        __ast_path: &mut AstNodePath<'r>,
35397    ) {
35398        match self {
35399            ExportAll {
35400                span,
35401                src,
35402                type_only,
35403                with,
35404            } => {
35405                {
35406                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExportAll(
35407                        self,
35408                        self::fields::ExportAllField::Span,
35409                    ));
35410                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35411                        span,
35412                        visitor,
35413                        &mut *__ast_path,
35414                    )
35415                };
35416                {
35417                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExportAll(
35418                        self,
35419                        self::fields::ExportAllField::Src,
35420                    ));
35421                    <Box<Str> as VisitWithAstPath<V>>::visit_with_ast_path(
35422                        src,
35423                        visitor,
35424                        &mut *__ast_path,
35425                    )
35426                };
35427                {
35428                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExportAll(
35429                        self,
35430                        self::fields::ExportAllField::With,
35431                    ));
35432                    <Option<Box<ObjectLit>> as VisitWithAstPath<V>>::visit_with_ast_path(
35433                        with,
35434                        visitor,
35435                        &mut *__ast_path,
35436                    )
35437                };
35438            }
35439        }
35440    }
35441}
35442#[cfg(any(docsrs, feature = "path"))]
35443#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35444impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExportDecl {
35445    #[doc = "Calls [VisitAstPath`::visit_export_decl`] with `self`."]
35446    fn visit_with_ast_path<'ast: 'r, 'r>(
35447        &'ast self,
35448        visitor: &mut V,
35449        __ast_path: &mut AstNodePath<'r>,
35450    ) {
35451        <V as VisitAstPath>::visit_export_decl(visitor, self, __ast_path)
35452    }
35453
35454    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35455        &'ast self,
35456        visitor: &mut V,
35457        __ast_path: &mut AstNodePath<'r>,
35458    ) {
35459        match self {
35460            ExportDecl { span, decl } => {
35461                {
35462                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExportDecl(
35463                        self,
35464                        self::fields::ExportDeclField::Span,
35465                    ));
35466                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35467                        span,
35468                        visitor,
35469                        &mut *__ast_path,
35470                    )
35471                };
35472                {
35473                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExportDecl(
35474                        self,
35475                        self::fields::ExportDeclField::Decl,
35476                    ));
35477                    <Decl as VisitWithAstPath<V>>::visit_with_ast_path(
35478                        decl,
35479                        visitor,
35480                        &mut *__ast_path,
35481                    )
35482                };
35483            }
35484        }
35485    }
35486}
35487#[cfg(any(docsrs, feature = "path"))]
35488#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35489impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExportDefaultDecl {
35490    #[doc = "Calls [VisitAstPath`::visit_export_default_decl`] with `self`."]
35491    fn visit_with_ast_path<'ast: 'r, 'r>(
35492        &'ast self,
35493        visitor: &mut V,
35494        __ast_path: &mut AstNodePath<'r>,
35495    ) {
35496        <V as VisitAstPath>::visit_export_default_decl(visitor, self, __ast_path)
35497    }
35498
35499    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35500        &'ast self,
35501        visitor: &mut V,
35502        __ast_path: &mut AstNodePath<'r>,
35503    ) {
35504        match self {
35505            ExportDefaultDecl { span, decl } => {
35506                {
35507                    let mut __ast_path =
35508                        __ast_path.with_guard(AstParentNodeRef::ExportDefaultDecl(
35509                            self,
35510                            self::fields::ExportDefaultDeclField::Span,
35511                        ));
35512                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35513                        span,
35514                        visitor,
35515                        &mut *__ast_path,
35516                    )
35517                };
35518                {
35519                    let mut __ast_path =
35520                        __ast_path.with_guard(AstParentNodeRef::ExportDefaultDecl(
35521                            self,
35522                            self::fields::ExportDefaultDeclField::Decl,
35523                        ));
35524                    <DefaultDecl as VisitWithAstPath<V>>::visit_with_ast_path(
35525                        decl,
35526                        visitor,
35527                        &mut *__ast_path,
35528                    )
35529                };
35530            }
35531        }
35532    }
35533}
35534#[cfg(any(docsrs, feature = "path"))]
35535#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35536impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExportDefaultExpr {
35537    #[doc = "Calls [VisitAstPath`::visit_export_default_expr`] with `self`."]
35538    fn visit_with_ast_path<'ast: 'r, 'r>(
35539        &'ast self,
35540        visitor: &mut V,
35541        __ast_path: &mut AstNodePath<'r>,
35542    ) {
35543        <V as VisitAstPath>::visit_export_default_expr(visitor, self, __ast_path)
35544    }
35545
35546    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35547        &'ast self,
35548        visitor: &mut V,
35549        __ast_path: &mut AstNodePath<'r>,
35550    ) {
35551        match self {
35552            ExportDefaultExpr { span, expr } => {
35553                {
35554                    let mut __ast_path =
35555                        __ast_path.with_guard(AstParentNodeRef::ExportDefaultExpr(
35556                            self,
35557                            self::fields::ExportDefaultExprField::Span,
35558                        ));
35559                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35560                        span,
35561                        visitor,
35562                        &mut *__ast_path,
35563                    )
35564                };
35565                {
35566                    let mut __ast_path =
35567                        __ast_path.with_guard(AstParentNodeRef::ExportDefaultExpr(
35568                            self,
35569                            self::fields::ExportDefaultExprField::Expr,
35570                        ));
35571                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
35572                        expr,
35573                        visitor,
35574                        &mut *__ast_path,
35575                    )
35576                };
35577            }
35578        }
35579    }
35580}
35581#[cfg(any(docsrs, feature = "path"))]
35582#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35583impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExportDefaultSpecifier {
35584    #[doc = "Calls [VisitAstPath`::visit_export_default_specifier`] with `self`."]
35585    fn visit_with_ast_path<'ast: 'r, 'r>(
35586        &'ast self,
35587        visitor: &mut V,
35588        __ast_path: &mut AstNodePath<'r>,
35589    ) {
35590        <V as VisitAstPath>::visit_export_default_specifier(visitor, self, __ast_path)
35591    }
35592
35593    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35594        &'ast self,
35595        visitor: &mut V,
35596        __ast_path: &mut AstNodePath<'r>,
35597    ) {
35598        match self {
35599            ExportDefaultSpecifier { exported } => {
35600                {
35601                    let mut __ast_path =
35602                        __ast_path.with_guard(AstParentNodeRef::ExportDefaultSpecifier(
35603                            self,
35604                            self::fields::ExportDefaultSpecifierField::Exported,
35605                        ));
35606                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
35607                        exported,
35608                        visitor,
35609                        &mut *__ast_path,
35610                    )
35611                };
35612            }
35613        }
35614    }
35615}
35616#[cfg(any(docsrs, feature = "path"))]
35617#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35618impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExportNamedSpecifier {
35619    #[doc = "Calls [VisitAstPath`::visit_export_named_specifier`] with `self`."]
35620    fn visit_with_ast_path<'ast: 'r, 'r>(
35621        &'ast self,
35622        visitor: &mut V,
35623        __ast_path: &mut AstNodePath<'r>,
35624    ) {
35625        <V as VisitAstPath>::visit_export_named_specifier(visitor, self, __ast_path)
35626    }
35627
35628    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35629        &'ast self,
35630        visitor: &mut V,
35631        __ast_path: &mut AstNodePath<'r>,
35632    ) {
35633        match self {
35634            ExportNamedSpecifier {
35635                span,
35636                orig,
35637                exported,
35638                is_type_only,
35639            } => {
35640                {
35641                    let mut __ast_path =
35642                        __ast_path.with_guard(AstParentNodeRef::ExportNamedSpecifier(
35643                            self,
35644                            self::fields::ExportNamedSpecifierField::Span,
35645                        ));
35646                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35647                        span,
35648                        visitor,
35649                        &mut *__ast_path,
35650                    )
35651                };
35652                {
35653                    let mut __ast_path =
35654                        __ast_path.with_guard(AstParentNodeRef::ExportNamedSpecifier(
35655                            self,
35656                            self::fields::ExportNamedSpecifierField::Orig,
35657                        ));
35658                    <ModuleExportName as VisitWithAstPath<V>>::visit_with_ast_path(
35659                        orig,
35660                        visitor,
35661                        &mut *__ast_path,
35662                    )
35663                };
35664                {
35665                    let mut __ast_path =
35666                        __ast_path.with_guard(AstParentNodeRef::ExportNamedSpecifier(
35667                            self,
35668                            self::fields::ExportNamedSpecifierField::Exported,
35669                        ));
35670                    <Option<ModuleExportName> as VisitWithAstPath<V>>::visit_with_ast_path(
35671                        exported,
35672                        visitor,
35673                        &mut *__ast_path,
35674                    )
35675                };
35676            }
35677        }
35678    }
35679}
35680#[cfg(any(docsrs, feature = "path"))]
35681#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35682impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExportNamespaceSpecifier {
35683    #[doc = "Calls [VisitAstPath`::visit_export_namespace_specifier`] with `self`."]
35684    fn visit_with_ast_path<'ast: 'r, 'r>(
35685        &'ast self,
35686        visitor: &mut V,
35687        __ast_path: &mut AstNodePath<'r>,
35688    ) {
35689        <V as VisitAstPath>::visit_export_namespace_specifier(visitor, self, __ast_path)
35690    }
35691
35692    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35693        &'ast self,
35694        visitor: &mut V,
35695        __ast_path: &mut AstNodePath<'r>,
35696    ) {
35697        match self {
35698            ExportNamespaceSpecifier { span, name } => {
35699                {
35700                    let mut __ast_path =
35701                        __ast_path.with_guard(AstParentNodeRef::ExportNamespaceSpecifier(
35702                            self,
35703                            self::fields::ExportNamespaceSpecifierField::Span,
35704                        ));
35705                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35706                        span,
35707                        visitor,
35708                        &mut *__ast_path,
35709                    )
35710                };
35711                {
35712                    let mut __ast_path =
35713                        __ast_path.with_guard(AstParentNodeRef::ExportNamespaceSpecifier(
35714                            self,
35715                            self::fields::ExportNamespaceSpecifierField::Name,
35716                        ));
35717                    <ModuleExportName as VisitWithAstPath<V>>::visit_with_ast_path(
35718                        name,
35719                        visitor,
35720                        &mut *__ast_path,
35721                    )
35722                };
35723            }
35724        }
35725    }
35726}
35727#[cfg(any(docsrs, feature = "path"))]
35728#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35729impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExportSpecifier {
35730    #[doc = "Calls [VisitAstPath`::visit_export_specifier`] with `self`."]
35731    fn visit_with_ast_path<'ast: 'r, 'r>(
35732        &'ast self,
35733        visitor: &mut V,
35734        __ast_path: &mut AstNodePath<'r>,
35735    ) {
35736        <V as VisitAstPath>::visit_export_specifier(visitor, self, __ast_path)
35737    }
35738
35739    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35740        &'ast self,
35741        visitor: &mut V,
35742        __ast_path: &mut AstNodePath<'r>,
35743    ) {
35744        match self {
35745            ExportSpecifier::Namespace { 0: _field_0 } => {
35746                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExportSpecifier(
35747                    self,
35748                    self::fields::ExportSpecifierField::Namespace,
35749                ));
35750                <ExportNamespaceSpecifier as VisitWithAstPath<V>>::visit_with_ast_path(
35751                    _field_0,
35752                    visitor,
35753                    &mut *__ast_path,
35754                );
35755            }
35756            ExportSpecifier::Default { 0: _field_0 } => {
35757                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExportSpecifier(
35758                    self,
35759                    self::fields::ExportSpecifierField::Default,
35760                ));
35761                <ExportDefaultSpecifier as VisitWithAstPath<V>>::visit_with_ast_path(
35762                    _field_0,
35763                    visitor,
35764                    &mut *__ast_path,
35765                );
35766            }
35767            ExportSpecifier::Named { 0: _field_0 } => {
35768                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExportSpecifier(
35769                    self,
35770                    self::fields::ExportSpecifierField::Named,
35771                ));
35772                <ExportNamedSpecifier as VisitWithAstPath<V>>::visit_with_ast_path(
35773                    _field_0,
35774                    visitor,
35775                    &mut *__ast_path,
35776                );
35777            }
35778        }
35779    }
35780}
35781#[cfg(any(docsrs, feature = "path"))]
35782#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35783impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Expr {
35784    #[doc = "Calls [VisitAstPath`::visit_expr`] with `self`."]
35785    fn visit_with_ast_path<'ast: 'r, 'r>(
35786        &'ast self,
35787        visitor: &mut V,
35788        __ast_path: &mut AstNodePath<'r>,
35789    ) {
35790        <V as VisitAstPath>::visit_expr(visitor, self, __ast_path)
35791    }
35792
35793    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35794        &'ast self,
35795        visitor: &mut V,
35796        __ast_path: &mut AstNodePath<'r>,
35797    ) {
35798        match self {
35799            Expr::This { 0: _field_0 } => {
35800                let mut __ast_path = __ast_path
35801                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::This));
35802                <ThisExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35803                    _field_0,
35804                    visitor,
35805                    &mut *__ast_path,
35806                );
35807            }
35808            Expr::Array { 0: _field_0 } => {
35809                let mut __ast_path = __ast_path
35810                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Array));
35811                <ArrayLit as VisitWithAstPath<V>>::visit_with_ast_path(
35812                    _field_0,
35813                    visitor,
35814                    &mut *__ast_path,
35815                );
35816            }
35817            Expr::Object { 0: _field_0 } => {
35818                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35819                    self,
35820                    self::fields::ExprField::Object,
35821                ));
35822                <ObjectLit as VisitWithAstPath<V>>::visit_with_ast_path(
35823                    _field_0,
35824                    visitor,
35825                    &mut *__ast_path,
35826                );
35827            }
35828            Expr::Fn { 0: _field_0 } => {
35829                let mut __ast_path = __ast_path
35830                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Fn));
35831                <FnExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35832                    _field_0,
35833                    visitor,
35834                    &mut *__ast_path,
35835                );
35836            }
35837            Expr::Unary { 0: _field_0 } => {
35838                let mut __ast_path = __ast_path
35839                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Unary));
35840                <UnaryExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35841                    _field_0,
35842                    visitor,
35843                    &mut *__ast_path,
35844                );
35845            }
35846            Expr::Update { 0: _field_0 } => {
35847                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35848                    self,
35849                    self::fields::ExprField::Update,
35850                ));
35851                <UpdateExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35852                    _field_0,
35853                    visitor,
35854                    &mut *__ast_path,
35855                );
35856            }
35857            Expr::Bin { 0: _field_0 } => {
35858                let mut __ast_path = __ast_path
35859                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Bin));
35860                <BinExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35861                    _field_0,
35862                    visitor,
35863                    &mut *__ast_path,
35864                );
35865            }
35866            Expr::Assign { 0: _field_0 } => {
35867                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35868                    self,
35869                    self::fields::ExprField::Assign,
35870                ));
35871                <AssignExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35872                    _field_0,
35873                    visitor,
35874                    &mut *__ast_path,
35875                );
35876            }
35877            Expr::Member { 0: _field_0 } => {
35878                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35879                    self,
35880                    self::fields::ExprField::Member,
35881                ));
35882                <MemberExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35883                    _field_0,
35884                    visitor,
35885                    &mut *__ast_path,
35886                );
35887            }
35888            Expr::SuperProp { 0: _field_0 } => {
35889                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35890                    self,
35891                    self::fields::ExprField::SuperProp,
35892                ));
35893                <SuperPropExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35894                    _field_0,
35895                    visitor,
35896                    &mut *__ast_path,
35897                );
35898            }
35899            Expr::Cond { 0: _field_0 } => {
35900                let mut __ast_path = __ast_path
35901                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Cond));
35902                <CondExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35903                    _field_0,
35904                    visitor,
35905                    &mut *__ast_path,
35906                );
35907            }
35908            Expr::Call { 0: _field_0 } => {
35909                let mut __ast_path = __ast_path
35910                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Call));
35911                <CallExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35912                    _field_0,
35913                    visitor,
35914                    &mut *__ast_path,
35915                );
35916            }
35917            Expr::New { 0: _field_0 } => {
35918                let mut __ast_path = __ast_path
35919                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::New));
35920                <NewExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35921                    _field_0,
35922                    visitor,
35923                    &mut *__ast_path,
35924                );
35925            }
35926            Expr::Seq { 0: _field_0 } => {
35927                let mut __ast_path = __ast_path
35928                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Seq));
35929                <SeqExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35930                    _field_0,
35931                    visitor,
35932                    &mut *__ast_path,
35933                );
35934            }
35935            Expr::Ident { 0: _field_0 } => {
35936                let mut __ast_path = __ast_path
35937                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Ident));
35938                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
35939                    _field_0,
35940                    visitor,
35941                    &mut *__ast_path,
35942                );
35943            }
35944            Expr::Lit { 0: _field_0 } => {
35945                let mut __ast_path = __ast_path
35946                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Lit));
35947                <Lit as VisitWithAstPath<V>>::visit_with_ast_path(
35948                    _field_0,
35949                    visitor,
35950                    &mut *__ast_path,
35951                );
35952            }
35953            Expr::Tpl { 0: _field_0 } => {
35954                let mut __ast_path = __ast_path
35955                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Tpl));
35956                <Tpl as VisitWithAstPath<V>>::visit_with_ast_path(
35957                    _field_0,
35958                    visitor,
35959                    &mut *__ast_path,
35960                );
35961            }
35962            Expr::TaggedTpl { 0: _field_0 } => {
35963                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35964                    self,
35965                    self::fields::ExprField::TaggedTpl,
35966                ));
35967                <TaggedTpl as VisitWithAstPath<V>>::visit_with_ast_path(
35968                    _field_0,
35969                    visitor,
35970                    &mut *__ast_path,
35971                );
35972            }
35973            Expr::Arrow { 0: _field_0 } => {
35974                let mut __ast_path = __ast_path
35975                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Arrow));
35976                <ArrowExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35977                    _field_0,
35978                    visitor,
35979                    &mut *__ast_path,
35980                );
35981            }
35982            Expr::Class { 0: _field_0 } => {
35983                let mut __ast_path = __ast_path
35984                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Class));
35985                <ClassExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35986                    _field_0,
35987                    visitor,
35988                    &mut *__ast_path,
35989                );
35990            }
35991            Expr::Yield { 0: _field_0 } => {
35992                let mut __ast_path = __ast_path
35993                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Yield));
35994                <YieldExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35995                    _field_0,
35996                    visitor,
35997                    &mut *__ast_path,
35998                );
35999            }
36000            Expr::MetaProp { 0: _field_0 } => {
36001                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
36002                    self,
36003                    self::fields::ExprField::MetaProp,
36004                ));
36005                <MetaPropExpr as VisitWithAstPath<V>>::visit_with_ast_path(
36006                    _field_0,
36007                    visitor,
36008                    &mut *__ast_path,
36009                );
36010            }
36011            Expr::Await { 0: _field_0 } => {
36012                let mut __ast_path = __ast_path
36013                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Await));
36014                <AwaitExpr as VisitWithAstPath<V>>::visit_with_ast_path(
36015                    _field_0,
36016                    visitor,
36017                    &mut *__ast_path,
36018                );
36019            }
36020            Expr::Paren { 0: _field_0 } => {
36021                let mut __ast_path = __ast_path
36022                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Paren));
36023                <ParenExpr as VisitWithAstPath<V>>::visit_with_ast_path(
36024                    _field_0,
36025                    visitor,
36026                    &mut *__ast_path,
36027                );
36028            }
36029            Expr::JSXMember { 0: _field_0 } => {
36030                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
36031                    self,
36032                    self::fields::ExprField::Jsxmember,
36033                ));
36034                <JSXMemberExpr as VisitWithAstPath<V>>::visit_with_ast_path(
36035                    _field_0,
36036                    visitor,
36037                    &mut *__ast_path,
36038                );
36039            }
36040            Expr::JSXNamespacedName { 0: _field_0 } => {
36041                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
36042                    self,
36043                    self::fields::ExprField::JsxnamespacedName,
36044                ));
36045                <JSXNamespacedName as VisitWithAstPath<V>>::visit_with_ast_path(
36046                    _field_0,
36047                    visitor,
36048                    &mut *__ast_path,
36049                );
36050            }
36051            Expr::JSXEmpty { 0: _field_0 } => {
36052                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
36053                    self,
36054                    self::fields::ExprField::Jsxempty,
36055                ));
36056                <JSXEmptyExpr as VisitWithAstPath<V>>::visit_with_ast_path(
36057                    _field_0,
36058                    visitor,
36059                    &mut *__ast_path,
36060                );
36061            }
36062            Expr::JSXElement { 0: _field_0 } => {
36063                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
36064                    self,
36065                    self::fields::ExprField::Jsxelement,
36066                ));
36067                <Box<JSXElement> as VisitWithAstPath<V>>::visit_with_ast_path(
36068                    _field_0,
36069                    visitor,
36070                    &mut *__ast_path,
36071                );
36072            }
36073            Expr::JSXFragment { 0: _field_0 } => {
36074                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
36075                    self,
36076                    self::fields::ExprField::Jsxfragment,
36077                ));
36078                <JSXFragment as VisitWithAstPath<V>>::visit_with_ast_path(
36079                    _field_0,
36080                    visitor,
36081                    &mut *__ast_path,
36082                );
36083            }
36084            Expr::TsTypeAssertion { 0: _field_0 } => {
36085                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
36086                    self,
36087                    self::fields::ExprField::TsTypeAssertion,
36088                ));
36089                <TsTypeAssertion as VisitWithAstPath<V>>::visit_with_ast_path(
36090                    _field_0,
36091                    visitor,
36092                    &mut *__ast_path,
36093                );
36094            }
36095            Expr::TsConstAssertion { 0: _field_0 } => {
36096                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
36097                    self,
36098                    self::fields::ExprField::TsConstAssertion,
36099                ));
36100                <TsConstAssertion as VisitWithAstPath<V>>::visit_with_ast_path(
36101                    _field_0,
36102                    visitor,
36103                    &mut *__ast_path,
36104                );
36105            }
36106            Expr::TsNonNull { 0: _field_0 } => {
36107                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
36108                    self,
36109                    self::fields::ExprField::TsNonNull,
36110                ));
36111                <TsNonNullExpr as VisitWithAstPath<V>>::visit_with_ast_path(
36112                    _field_0,
36113                    visitor,
36114                    &mut *__ast_path,
36115                );
36116            }
36117            Expr::TsAs { 0: _field_0 } => {
36118                let mut __ast_path = __ast_path
36119                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::TsAs));
36120                <TsAsExpr as VisitWithAstPath<V>>::visit_with_ast_path(
36121                    _field_0,
36122                    visitor,
36123                    &mut *__ast_path,
36124                );
36125            }
36126            Expr::TsInstantiation { 0: _field_0 } => {
36127                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
36128                    self,
36129                    self::fields::ExprField::TsInstantiation,
36130                ));
36131                <TsInstantiation as VisitWithAstPath<V>>::visit_with_ast_path(
36132                    _field_0,
36133                    visitor,
36134                    &mut *__ast_path,
36135                );
36136            }
36137            Expr::TsSatisfies { 0: _field_0 } => {
36138                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
36139                    self,
36140                    self::fields::ExprField::TsSatisfies,
36141                ));
36142                <TsSatisfiesExpr as VisitWithAstPath<V>>::visit_with_ast_path(
36143                    _field_0,
36144                    visitor,
36145                    &mut *__ast_path,
36146                );
36147            }
36148            Expr::PrivateName { 0: _field_0 } => {
36149                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
36150                    self,
36151                    self::fields::ExprField::PrivateName,
36152                ));
36153                <PrivateName as VisitWithAstPath<V>>::visit_with_ast_path(
36154                    _field_0,
36155                    visitor,
36156                    &mut *__ast_path,
36157                );
36158            }
36159            Expr::OptChain { 0: _field_0 } => {
36160                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
36161                    self,
36162                    self::fields::ExprField::OptChain,
36163                ));
36164                <OptChainExpr as VisitWithAstPath<V>>::visit_with_ast_path(
36165                    _field_0,
36166                    visitor,
36167                    &mut *__ast_path,
36168                );
36169            }
36170            Expr::Invalid { 0: _field_0 } => {
36171                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
36172                    self,
36173                    self::fields::ExprField::Invalid,
36174                ));
36175                <Invalid as VisitWithAstPath<V>>::visit_with_ast_path(
36176                    _field_0,
36177                    visitor,
36178                    &mut *__ast_path,
36179                );
36180            }
36181        }
36182    }
36183}
36184#[cfg(any(docsrs, feature = "path"))]
36185#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36186impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExprOrSpread {
36187    #[doc = "Calls [VisitAstPath`::visit_expr_or_spread`] with `self`."]
36188    fn visit_with_ast_path<'ast: 'r, 'r>(
36189        &'ast self,
36190        visitor: &mut V,
36191        __ast_path: &mut AstNodePath<'r>,
36192    ) {
36193        <V as VisitAstPath>::visit_expr_or_spread(visitor, self, __ast_path)
36194    }
36195
36196    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36197        &'ast self,
36198        visitor: &mut V,
36199        __ast_path: &mut AstNodePath<'r>,
36200    ) {
36201        match self {
36202            ExprOrSpread { spread, expr } => {
36203                {
36204                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExprOrSpread(
36205                        self,
36206                        self::fields::ExprOrSpreadField::Spread,
36207                    ));
36208                    <Option<swc_common::Span> as VisitWithAstPath<V>>::visit_with_ast_path(
36209                        spread,
36210                        visitor,
36211                        &mut *__ast_path,
36212                    )
36213                };
36214                {
36215                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExprOrSpread(
36216                        self,
36217                        self::fields::ExprOrSpreadField::Expr,
36218                    ));
36219                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
36220                        expr,
36221                        visitor,
36222                        &mut *__ast_path,
36223                    )
36224                };
36225            }
36226        }
36227    }
36228}
36229#[cfg(any(docsrs, feature = "path"))]
36230#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36231impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExprStmt {
36232    #[doc = "Calls [VisitAstPath`::visit_expr_stmt`] with `self`."]
36233    fn visit_with_ast_path<'ast: 'r, 'r>(
36234        &'ast self,
36235        visitor: &mut V,
36236        __ast_path: &mut AstNodePath<'r>,
36237    ) {
36238        <V as VisitAstPath>::visit_expr_stmt(visitor, self, __ast_path)
36239    }
36240
36241    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36242        &'ast self,
36243        visitor: &mut V,
36244        __ast_path: &mut AstNodePath<'r>,
36245    ) {
36246        match self {
36247            ExprStmt { span, expr } => {
36248                {
36249                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExprStmt(
36250                        self,
36251                        self::fields::ExprStmtField::Span,
36252                    ));
36253                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36254                        span,
36255                        visitor,
36256                        &mut *__ast_path,
36257                    )
36258                };
36259                {
36260                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExprStmt(
36261                        self,
36262                        self::fields::ExprStmtField::Expr,
36263                    ));
36264                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
36265                        expr,
36266                        visitor,
36267                        &mut *__ast_path,
36268                    )
36269                };
36270            }
36271        }
36272    }
36273}
36274#[cfg(any(docsrs, feature = "path"))]
36275#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36276impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for FnDecl {
36277    #[doc = "Calls [VisitAstPath`::visit_fn_decl`] with `self`."]
36278    fn visit_with_ast_path<'ast: 'r, 'r>(
36279        &'ast self,
36280        visitor: &mut V,
36281        __ast_path: &mut AstNodePath<'r>,
36282    ) {
36283        <V as VisitAstPath>::visit_fn_decl(visitor, self, __ast_path)
36284    }
36285
36286    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36287        &'ast self,
36288        visitor: &mut V,
36289        __ast_path: &mut AstNodePath<'r>,
36290    ) {
36291        match self {
36292            FnDecl {
36293                ident,
36294                declare,
36295                function,
36296            } => {
36297                {
36298                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::FnDecl(
36299                        self,
36300                        self::fields::FnDeclField::Ident,
36301                    ));
36302                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
36303                        ident,
36304                        visitor,
36305                        &mut *__ast_path,
36306                    )
36307                };
36308                {
36309                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::FnDecl(
36310                        self,
36311                        self::fields::FnDeclField::Function,
36312                    ));
36313                    <Box<Function> as VisitWithAstPath<V>>::visit_with_ast_path(
36314                        function,
36315                        visitor,
36316                        &mut *__ast_path,
36317                    )
36318                };
36319            }
36320        }
36321    }
36322}
36323#[cfg(any(docsrs, feature = "path"))]
36324#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36325impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for FnExpr {
36326    #[doc = "Calls [VisitAstPath`::visit_fn_expr`] with `self`."]
36327    fn visit_with_ast_path<'ast: 'r, 'r>(
36328        &'ast self,
36329        visitor: &mut V,
36330        __ast_path: &mut AstNodePath<'r>,
36331    ) {
36332        <V as VisitAstPath>::visit_fn_expr(visitor, self, __ast_path)
36333    }
36334
36335    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36336        &'ast self,
36337        visitor: &mut V,
36338        __ast_path: &mut AstNodePath<'r>,
36339    ) {
36340        match self {
36341            FnExpr { ident, function } => {
36342                {
36343                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::FnExpr(
36344                        self,
36345                        self::fields::FnExprField::Ident,
36346                    ));
36347                    <Option<Ident> as VisitWithAstPath<V>>::visit_with_ast_path(
36348                        ident,
36349                        visitor,
36350                        &mut *__ast_path,
36351                    )
36352                };
36353                {
36354                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::FnExpr(
36355                        self,
36356                        self::fields::FnExprField::Function,
36357                    ));
36358                    <Box<Function> as VisitWithAstPath<V>>::visit_with_ast_path(
36359                        function,
36360                        visitor,
36361                        &mut *__ast_path,
36362                    )
36363                };
36364            }
36365        }
36366    }
36367}
36368#[cfg(any(docsrs, feature = "path"))]
36369#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36370impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ForHead {
36371    #[doc = "Calls [VisitAstPath`::visit_for_head`] with `self`."]
36372    fn visit_with_ast_path<'ast: 'r, 'r>(
36373        &'ast self,
36374        visitor: &mut V,
36375        __ast_path: &mut AstNodePath<'r>,
36376    ) {
36377        <V as VisitAstPath>::visit_for_head(visitor, self, __ast_path)
36378    }
36379
36380    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36381        &'ast self,
36382        visitor: &mut V,
36383        __ast_path: &mut AstNodePath<'r>,
36384    ) {
36385        match self {
36386            ForHead::VarDecl { 0: _field_0 } => {
36387                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForHead(
36388                    self,
36389                    self::fields::ForHeadField::VarDecl,
36390                ));
36391                <Box<VarDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
36392                    _field_0,
36393                    visitor,
36394                    &mut *__ast_path,
36395                );
36396            }
36397            ForHead::UsingDecl { 0: _field_0 } => {
36398                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForHead(
36399                    self,
36400                    self::fields::ForHeadField::UsingDecl,
36401                ));
36402                <Box<UsingDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
36403                    _field_0,
36404                    visitor,
36405                    &mut *__ast_path,
36406                );
36407            }
36408            ForHead::Pat { 0: _field_0 } => {
36409                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForHead(
36410                    self,
36411                    self::fields::ForHeadField::Pat,
36412                ));
36413                <Box<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
36414                    _field_0,
36415                    visitor,
36416                    &mut *__ast_path,
36417                );
36418            }
36419        }
36420    }
36421}
36422#[cfg(any(docsrs, feature = "path"))]
36423#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36424impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ForInStmt {
36425    #[doc = "Calls [VisitAstPath`::visit_for_in_stmt`] with `self`."]
36426    fn visit_with_ast_path<'ast: 'r, 'r>(
36427        &'ast self,
36428        visitor: &mut V,
36429        __ast_path: &mut AstNodePath<'r>,
36430    ) {
36431        <V as VisitAstPath>::visit_for_in_stmt(visitor, self, __ast_path)
36432    }
36433
36434    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36435        &'ast self,
36436        visitor: &mut V,
36437        __ast_path: &mut AstNodePath<'r>,
36438    ) {
36439        match self {
36440            ForInStmt {
36441                span,
36442                left,
36443                right,
36444                body,
36445            } => {
36446                {
36447                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForInStmt(
36448                        self,
36449                        self::fields::ForInStmtField::Span,
36450                    ));
36451                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36452                        span,
36453                        visitor,
36454                        &mut *__ast_path,
36455                    )
36456                };
36457                {
36458                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForInStmt(
36459                        self,
36460                        self::fields::ForInStmtField::Left,
36461                    ));
36462                    <ForHead as VisitWithAstPath<V>>::visit_with_ast_path(
36463                        left,
36464                        visitor,
36465                        &mut *__ast_path,
36466                    )
36467                };
36468                {
36469                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForInStmt(
36470                        self,
36471                        self::fields::ForInStmtField::Right,
36472                    ));
36473                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
36474                        right,
36475                        visitor,
36476                        &mut *__ast_path,
36477                    )
36478                };
36479                {
36480                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForInStmt(
36481                        self,
36482                        self::fields::ForInStmtField::Body,
36483                    ));
36484                    <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
36485                        body,
36486                        visitor,
36487                        &mut *__ast_path,
36488                    )
36489                };
36490            }
36491        }
36492    }
36493}
36494#[cfg(any(docsrs, feature = "path"))]
36495#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36496impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ForOfStmt {
36497    #[doc = "Calls [VisitAstPath`::visit_for_of_stmt`] with `self`."]
36498    fn visit_with_ast_path<'ast: 'r, 'r>(
36499        &'ast self,
36500        visitor: &mut V,
36501        __ast_path: &mut AstNodePath<'r>,
36502    ) {
36503        <V as VisitAstPath>::visit_for_of_stmt(visitor, self, __ast_path)
36504    }
36505
36506    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36507        &'ast self,
36508        visitor: &mut V,
36509        __ast_path: &mut AstNodePath<'r>,
36510    ) {
36511        match self {
36512            ForOfStmt {
36513                span,
36514                is_await,
36515                left,
36516                right,
36517                body,
36518            } => {
36519                {
36520                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForOfStmt(
36521                        self,
36522                        self::fields::ForOfStmtField::Span,
36523                    ));
36524                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36525                        span,
36526                        visitor,
36527                        &mut *__ast_path,
36528                    )
36529                };
36530                {
36531                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForOfStmt(
36532                        self,
36533                        self::fields::ForOfStmtField::Left,
36534                    ));
36535                    <ForHead as VisitWithAstPath<V>>::visit_with_ast_path(
36536                        left,
36537                        visitor,
36538                        &mut *__ast_path,
36539                    )
36540                };
36541                {
36542                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForOfStmt(
36543                        self,
36544                        self::fields::ForOfStmtField::Right,
36545                    ));
36546                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
36547                        right,
36548                        visitor,
36549                        &mut *__ast_path,
36550                    )
36551                };
36552                {
36553                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForOfStmt(
36554                        self,
36555                        self::fields::ForOfStmtField::Body,
36556                    ));
36557                    <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
36558                        body,
36559                        visitor,
36560                        &mut *__ast_path,
36561                    )
36562                };
36563            }
36564        }
36565    }
36566}
36567#[cfg(any(docsrs, feature = "path"))]
36568#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36569impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ForStmt {
36570    #[doc = "Calls [VisitAstPath`::visit_for_stmt`] with `self`."]
36571    fn visit_with_ast_path<'ast: 'r, 'r>(
36572        &'ast self,
36573        visitor: &mut V,
36574        __ast_path: &mut AstNodePath<'r>,
36575    ) {
36576        <V as VisitAstPath>::visit_for_stmt(visitor, self, __ast_path)
36577    }
36578
36579    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36580        &'ast self,
36581        visitor: &mut V,
36582        __ast_path: &mut AstNodePath<'r>,
36583    ) {
36584        match self {
36585            ForStmt {
36586                span,
36587                init,
36588                test,
36589                update,
36590                body,
36591            } => {
36592                {
36593                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForStmt(
36594                        self,
36595                        self::fields::ForStmtField::Span,
36596                    ));
36597                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36598                        span,
36599                        visitor,
36600                        &mut *__ast_path,
36601                    )
36602                };
36603                {
36604                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForStmt(
36605                        self,
36606                        self::fields::ForStmtField::Init,
36607                    ));
36608                    <Option<VarDeclOrExpr> as VisitWithAstPath<V>>::visit_with_ast_path(
36609                        init,
36610                        visitor,
36611                        &mut *__ast_path,
36612                    )
36613                };
36614                {
36615                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForStmt(
36616                        self,
36617                        self::fields::ForStmtField::Test,
36618                    ));
36619                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
36620                        test,
36621                        visitor,
36622                        &mut *__ast_path,
36623                    )
36624                };
36625                {
36626                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForStmt(
36627                        self,
36628                        self::fields::ForStmtField::Update,
36629                    ));
36630                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
36631                        update,
36632                        visitor,
36633                        &mut *__ast_path,
36634                    )
36635                };
36636                {
36637                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForStmt(
36638                        self,
36639                        self::fields::ForStmtField::Body,
36640                    ));
36641                    <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
36642                        body,
36643                        visitor,
36644                        &mut *__ast_path,
36645                    )
36646                };
36647            }
36648        }
36649    }
36650}
36651#[cfg(any(docsrs, feature = "path"))]
36652#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36653impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Function {
36654    #[doc = "Calls [VisitAstPath`::visit_function`] with `self`."]
36655    fn visit_with_ast_path<'ast: 'r, 'r>(
36656        &'ast self,
36657        visitor: &mut V,
36658        __ast_path: &mut AstNodePath<'r>,
36659    ) {
36660        <V as VisitAstPath>::visit_function(visitor, self, __ast_path)
36661    }
36662
36663    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36664        &'ast self,
36665        visitor: &mut V,
36666        __ast_path: &mut AstNodePath<'r>,
36667    ) {
36668        match self {
36669            Function {
36670                params,
36671                decorators,
36672                span,
36673                ctxt,
36674                body,
36675                is_generator,
36676                is_async,
36677                type_params,
36678                return_type,
36679            } => {
36680                {
36681                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Function(
36682                        self,
36683                        self::fields::FunctionField::Params(usize::MAX),
36684                    ));
36685                    <Vec<Param> as VisitWithAstPath<V>>::visit_with_ast_path(
36686                        params,
36687                        visitor,
36688                        &mut *__ast_path,
36689                    )
36690                };
36691                {
36692                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Function(
36693                        self,
36694                        self::fields::FunctionField::Decorators(usize::MAX),
36695                    ));
36696                    <Vec<Decorator> as VisitWithAstPath<V>>::visit_with_ast_path(
36697                        decorators,
36698                        visitor,
36699                        &mut *__ast_path,
36700                    )
36701                };
36702                {
36703                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Function(
36704                        self,
36705                        self::fields::FunctionField::Span,
36706                    ));
36707                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36708                        span,
36709                        visitor,
36710                        &mut *__ast_path,
36711                    )
36712                };
36713                {
36714                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Function(
36715                        self,
36716                        self::fields::FunctionField::Ctxt,
36717                    ));
36718                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
36719                        ctxt,
36720                        visitor,
36721                        &mut *__ast_path,
36722                    )
36723                };
36724                {
36725                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Function(
36726                        self,
36727                        self::fields::FunctionField::Body,
36728                    ));
36729                    <Option<BlockStmt> as VisitWithAstPath<V>>::visit_with_ast_path(
36730                        body,
36731                        visitor,
36732                        &mut *__ast_path,
36733                    )
36734                };
36735                {
36736                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Function(
36737                        self,
36738                        self::fields::FunctionField::TypeParams,
36739                    ));
36740                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
36741                        type_params,
36742                        visitor,
36743                        &mut *__ast_path,
36744                    )
36745                };
36746                {
36747                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Function(
36748                        self,
36749                        self::fields::FunctionField::ReturnType,
36750                    ));
36751                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
36752                        return_type,
36753                        visitor,
36754                        &mut *__ast_path,
36755                    )
36756                };
36757            }
36758        }
36759    }
36760}
36761#[cfg(any(docsrs, feature = "path"))]
36762#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36763impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for GetterProp {
36764    #[doc = "Calls [VisitAstPath`::visit_getter_prop`] with `self`."]
36765    fn visit_with_ast_path<'ast: 'r, 'r>(
36766        &'ast self,
36767        visitor: &mut V,
36768        __ast_path: &mut AstNodePath<'r>,
36769    ) {
36770        <V as VisitAstPath>::visit_getter_prop(visitor, self, __ast_path)
36771    }
36772
36773    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36774        &'ast self,
36775        visitor: &mut V,
36776        __ast_path: &mut AstNodePath<'r>,
36777    ) {
36778        match self {
36779            GetterProp {
36780                span,
36781                key,
36782                type_ann,
36783                body,
36784            } => {
36785                {
36786                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::GetterProp(
36787                        self,
36788                        self::fields::GetterPropField::Span,
36789                    ));
36790                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36791                        span,
36792                        visitor,
36793                        &mut *__ast_path,
36794                    )
36795                };
36796                {
36797                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::GetterProp(
36798                        self,
36799                        self::fields::GetterPropField::Key,
36800                    ));
36801                    <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
36802                        key,
36803                        visitor,
36804                        &mut *__ast_path,
36805                    )
36806                };
36807                {
36808                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::GetterProp(
36809                        self,
36810                        self::fields::GetterPropField::TypeAnn,
36811                    ));
36812                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
36813                        type_ann,
36814                        visitor,
36815                        &mut *__ast_path,
36816                    )
36817                };
36818                {
36819                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::GetterProp(
36820                        self,
36821                        self::fields::GetterPropField::Body,
36822                    ));
36823                    <Option<BlockStmt> as VisitWithAstPath<V>>::visit_with_ast_path(
36824                        body,
36825                        visitor,
36826                        &mut *__ast_path,
36827                    )
36828                };
36829            }
36830        }
36831    }
36832}
36833#[cfg(any(docsrs, feature = "path"))]
36834#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36835impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Ident {
36836    #[doc = "Calls [VisitAstPath`::visit_ident`] with `self`."]
36837    fn visit_with_ast_path<'ast: 'r, 'r>(
36838        &'ast self,
36839        visitor: &mut V,
36840        __ast_path: &mut AstNodePath<'r>,
36841    ) {
36842        <V as VisitAstPath>::visit_ident(visitor, self, __ast_path)
36843    }
36844
36845    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36846        &'ast self,
36847        visitor: &mut V,
36848        __ast_path: &mut AstNodePath<'r>,
36849    ) {
36850        match self {
36851            Ident {
36852                span,
36853                ctxt,
36854                sym,
36855                optional,
36856            } => {
36857                {
36858                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Ident(
36859                        self,
36860                        self::fields::IdentField::Span,
36861                    ));
36862                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36863                        span,
36864                        visitor,
36865                        &mut *__ast_path,
36866                    )
36867                };
36868                {
36869                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Ident(
36870                        self,
36871                        self::fields::IdentField::Ctxt,
36872                    ));
36873                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
36874                        ctxt,
36875                        visitor,
36876                        &mut *__ast_path,
36877                    )
36878                };
36879                {
36880                    let mut __ast_path = __ast_path
36881                        .with_guard(AstParentNodeRef::Ident(self, self::fields::IdentField::Sym));
36882                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
36883                        sym,
36884                        visitor,
36885                        &mut *__ast_path,
36886                    )
36887                };
36888            }
36889        }
36890    }
36891}
36892#[cfg(any(docsrs, feature = "path"))]
36893#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36894impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for IdentName {
36895    #[doc = "Calls [VisitAstPath`::visit_ident_name`] with `self`."]
36896    fn visit_with_ast_path<'ast: 'r, 'r>(
36897        &'ast self,
36898        visitor: &mut V,
36899        __ast_path: &mut AstNodePath<'r>,
36900    ) {
36901        <V as VisitAstPath>::visit_ident_name(visitor, self, __ast_path)
36902    }
36903
36904    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36905        &'ast self,
36906        visitor: &mut V,
36907        __ast_path: &mut AstNodePath<'r>,
36908    ) {
36909        match self {
36910            IdentName { span, sym } => {
36911                {
36912                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::IdentName(
36913                        self,
36914                        self::fields::IdentNameField::Span,
36915                    ));
36916                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36917                        span,
36918                        visitor,
36919                        &mut *__ast_path,
36920                    )
36921                };
36922                {
36923                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::IdentName(
36924                        self,
36925                        self::fields::IdentNameField::Sym,
36926                    ));
36927                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
36928                        sym,
36929                        visitor,
36930                        &mut *__ast_path,
36931                    )
36932                };
36933            }
36934        }
36935    }
36936}
36937#[cfg(any(docsrs, feature = "path"))]
36938#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36939impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for IfStmt {
36940    #[doc = "Calls [VisitAstPath`::visit_if_stmt`] with `self`."]
36941    fn visit_with_ast_path<'ast: 'r, 'r>(
36942        &'ast self,
36943        visitor: &mut V,
36944        __ast_path: &mut AstNodePath<'r>,
36945    ) {
36946        <V as VisitAstPath>::visit_if_stmt(visitor, self, __ast_path)
36947    }
36948
36949    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36950        &'ast self,
36951        visitor: &mut V,
36952        __ast_path: &mut AstNodePath<'r>,
36953    ) {
36954        match self {
36955            IfStmt {
36956                span,
36957                test,
36958                cons,
36959                alt,
36960            } => {
36961                {
36962                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::IfStmt(
36963                        self,
36964                        self::fields::IfStmtField::Span,
36965                    ));
36966                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36967                        span,
36968                        visitor,
36969                        &mut *__ast_path,
36970                    )
36971                };
36972                {
36973                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::IfStmt(
36974                        self,
36975                        self::fields::IfStmtField::Test,
36976                    ));
36977                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
36978                        test,
36979                        visitor,
36980                        &mut *__ast_path,
36981                    )
36982                };
36983                {
36984                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::IfStmt(
36985                        self,
36986                        self::fields::IfStmtField::Cons,
36987                    ));
36988                    <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
36989                        cons,
36990                        visitor,
36991                        &mut *__ast_path,
36992                    )
36993                };
36994                {
36995                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::IfStmt(
36996                        self,
36997                        self::fields::IfStmtField::Alt,
36998                    ));
36999                    <Option<Box<Stmt>> as VisitWithAstPath<V>>::visit_with_ast_path(
37000                        alt,
37001                        visitor,
37002                        &mut *__ast_path,
37003                    )
37004                };
37005            }
37006        }
37007    }
37008}
37009#[cfg(any(docsrs, feature = "path"))]
37010#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37011impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Import {
37012    #[doc = "Calls [VisitAstPath`::visit_import`] with `self`."]
37013    fn visit_with_ast_path<'ast: 'r, 'r>(
37014        &'ast self,
37015        visitor: &mut V,
37016        __ast_path: &mut AstNodePath<'r>,
37017    ) {
37018        <V as VisitAstPath>::visit_import(visitor, self, __ast_path)
37019    }
37020
37021    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37022        &'ast self,
37023        visitor: &mut V,
37024        __ast_path: &mut AstNodePath<'r>,
37025    ) {
37026        match self {
37027            Import { span, phase } => {
37028                {
37029                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Import(
37030                        self,
37031                        self::fields::ImportField::Span,
37032                    ));
37033                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37034                        span,
37035                        visitor,
37036                        &mut *__ast_path,
37037                    )
37038                };
37039                {
37040                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Import(
37041                        self,
37042                        self::fields::ImportField::Phase,
37043                    ));
37044                    <ImportPhase as VisitWithAstPath<V>>::visit_with_ast_path(
37045                        phase,
37046                        visitor,
37047                        &mut *__ast_path,
37048                    )
37049                };
37050            }
37051        }
37052    }
37053}
37054#[cfg(any(docsrs, feature = "path"))]
37055#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37056impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ImportDecl {
37057    #[doc = "Calls [VisitAstPath`::visit_import_decl`] with `self`."]
37058    fn visit_with_ast_path<'ast: 'r, 'r>(
37059        &'ast self,
37060        visitor: &mut V,
37061        __ast_path: &mut AstNodePath<'r>,
37062    ) {
37063        <V as VisitAstPath>::visit_import_decl(visitor, self, __ast_path)
37064    }
37065
37066    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37067        &'ast self,
37068        visitor: &mut V,
37069        __ast_path: &mut AstNodePath<'r>,
37070    ) {
37071        match self {
37072            ImportDecl {
37073                span,
37074                specifiers,
37075                src,
37076                type_only,
37077                with,
37078                phase,
37079            } => {
37080                {
37081                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportDecl(
37082                        self,
37083                        self::fields::ImportDeclField::Span,
37084                    ));
37085                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37086                        span,
37087                        visitor,
37088                        &mut *__ast_path,
37089                    )
37090                };
37091                {
37092                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportDecl(
37093                        self,
37094                        self::fields::ImportDeclField::Specifiers(usize::MAX),
37095                    ));
37096                    <Vec<ImportSpecifier> as VisitWithAstPath<V>>::visit_with_ast_path(
37097                        specifiers,
37098                        visitor,
37099                        &mut *__ast_path,
37100                    )
37101                };
37102                {
37103                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportDecl(
37104                        self,
37105                        self::fields::ImportDeclField::Src,
37106                    ));
37107                    <Box<Str> as VisitWithAstPath<V>>::visit_with_ast_path(
37108                        src,
37109                        visitor,
37110                        &mut *__ast_path,
37111                    )
37112                };
37113                {
37114                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportDecl(
37115                        self,
37116                        self::fields::ImportDeclField::With,
37117                    ));
37118                    <Option<Box<ObjectLit>> as VisitWithAstPath<V>>::visit_with_ast_path(
37119                        with,
37120                        visitor,
37121                        &mut *__ast_path,
37122                    )
37123                };
37124                {
37125                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportDecl(
37126                        self,
37127                        self::fields::ImportDeclField::Phase,
37128                    ));
37129                    <ImportPhase as VisitWithAstPath<V>>::visit_with_ast_path(
37130                        phase,
37131                        visitor,
37132                        &mut *__ast_path,
37133                    )
37134                };
37135            }
37136        }
37137    }
37138}
37139#[cfg(any(docsrs, feature = "path"))]
37140#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37141impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ImportDefaultSpecifier {
37142    #[doc = "Calls [VisitAstPath`::visit_import_default_specifier`] with `self`."]
37143    fn visit_with_ast_path<'ast: 'r, 'r>(
37144        &'ast self,
37145        visitor: &mut V,
37146        __ast_path: &mut AstNodePath<'r>,
37147    ) {
37148        <V as VisitAstPath>::visit_import_default_specifier(visitor, self, __ast_path)
37149    }
37150
37151    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37152        &'ast self,
37153        visitor: &mut V,
37154        __ast_path: &mut AstNodePath<'r>,
37155    ) {
37156        match self {
37157            ImportDefaultSpecifier { span, local } => {
37158                {
37159                    let mut __ast_path =
37160                        __ast_path.with_guard(AstParentNodeRef::ImportDefaultSpecifier(
37161                            self,
37162                            self::fields::ImportDefaultSpecifierField::Span,
37163                        ));
37164                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37165                        span,
37166                        visitor,
37167                        &mut *__ast_path,
37168                    )
37169                };
37170                {
37171                    let mut __ast_path =
37172                        __ast_path.with_guard(AstParentNodeRef::ImportDefaultSpecifier(
37173                            self,
37174                            self::fields::ImportDefaultSpecifierField::Local,
37175                        ));
37176                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
37177                        local,
37178                        visitor,
37179                        &mut *__ast_path,
37180                    )
37181                };
37182            }
37183        }
37184    }
37185}
37186#[cfg(any(docsrs, feature = "path"))]
37187#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37188impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ImportNamedSpecifier {
37189    #[doc = "Calls [VisitAstPath`::visit_import_named_specifier`] with `self`."]
37190    fn visit_with_ast_path<'ast: 'r, 'r>(
37191        &'ast self,
37192        visitor: &mut V,
37193        __ast_path: &mut AstNodePath<'r>,
37194    ) {
37195        <V as VisitAstPath>::visit_import_named_specifier(visitor, self, __ast_path)
37196    }
37197
37198    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37199        &'ast self,
37200        visitor: &mut V,
37201        __ast_path: &mut AstNodePath<'r>,
37202    ) {
37203        match self {
37204            ImportNamedSpecifier {
37205                span,
37206                local,
37207                imported,
37208                is_type_only,
37209            } => {
37210                {
37211                    let mut __ast_path =
37212                        __ast_path.with_guard(AstParentNodeRef::ImportNamedSpecifier(
37213                            self,
37214                            self::fields::ImportNamedSpecifierField::Span,
37215                        ));
37216                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37217                        span,
37218                        visitor,
37219                        &mut *__ast_path,
37220                    )
37221                };
37222                {
37223                    let mut __ast_path =
37224                        __ast_path.with_guard(AstParentNodeRef::ImportNamedSpecifier(
37225                            self,
37226                            self::fields::ImportNamedSpecifierField::Local,
37227                        ));
37228                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
37229                        local,
37230                        visitor,
37231                        &mut *__ast_path,
37232                    )
37233                };
37234                {
37235                    let mut __ast_path =
37236                        __ast_path.with_guard(AstParentNodeRef::ImportNamedSpecifier(
37237                            self,
37238                            self::fields::ImportNamedSpecifierField::Imported,
37239                        ));
37240                    <Option<ModuleExportName> as VisitWithAstPath<V>>::visit_with_ast_path(
37241                        imported,
37242                        visitor,
37243                        &mut *__ast_path,
37244                    )
37245                };
37246            }
37247        }
37248    }
37249}
37250#[cfg(any(docsrs, feature = "path"))]
37251#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37252impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ImportPhase {
37253    #[doc = "Calls [VisitAstPath`::visit_import_phase`] with `self`."]
37254    fn visit_with_ast_path<'ast: 'r, 'r>(
37255        &'ast self,
37256        visitor: &mut V,
37257        __ast_path: &mut AstNodePath<'r>,
37258    ) {
37259        <V as VisitAstPath>::visit_import_phase(visitor, self, __ast_path)
37260    }
37261
37262    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37263        &'ast self,
37264        visitor: &mut V,
37265        __ast_path: &mut AstNodePath<'r>,
37266    ) {
37267        match self {
37268            ImportPhase::Evaluation => {}
37269            ImportPhase::Source => {}
37270            ImportPhase::Defer => {}
37271        }
37272    }
37273}
37274#[cfg(any(docsrs, feature = "path"))]
37275#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37276impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ImportSpecifier {
37277    #[doc = "Calls [VisitAstPath`::visit_import_specifier`] with `self`."]
37278    fn visit_with_ast_path<'ast: 'r, 'r>(
37279        &'ast self,
37280        visitor: &mut V,
37281        __ast_path: &mut AstNodePath<'r>,
37282    ) {
37283        <V as VisitAstPath>::visit_import_specifier(visitor, self, __ast_path)
37284    }
37285
37286    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37287        &'ast self,
37288        visitor: &mut V,
37289        __ast_path: &mut AstNodePath<'r>,
37290    ) {
37291        match self {
37292            ImportSpecifier::Named { 0: _field_0 } => {
37293                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportSpecifier(
37294                    self,
37295                    self::fields::ImportSpecifierField::Named,
37296                ));
37297                <ImportNamedSpecifier as VisitWithAstPath<V>>::visit_with_ast_path(
37298                    _field_0,
37299                    visitor,
37300                    &mut *__ast_path,
37301                );
37302            }
37303            ImportSpecifier::Default { 0: _field_0 } => {
37304                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportSpecifier(
37305                    self,
37306                    self::fields::ImportSpecifierField::Default,
37307                ));
37308                <ImportDefaultSpecifier as VisitWithAstPath<V>>::visit_with_ast_path(
37309                    _field_0,
37310                    visitor,
37311                    &mut *__ast_path,
37312                );
37313            }
37314            ImportSpecifier::Namespace { 0: _field_0 } => {
37315                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportSpecifier(
37316                    self,
37317                    self::fields::ImportSpecifierField::Namespace,
37318                ));
37319                <ImportStarAsSpecifier as VisitWithAstPath<V>>::visit_with_ast_path(
37320                    _field_0,
37321                    visitor,
37322                    &mut *__ast_path,
37323                );
37324            }
37325        }
37326    }
37327}
37328#[cfg(any(docsrs, feature = "path"))]
37329#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37330impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ImportStarAsSpecifier {
37331    #[doc = "Calls [VisitAstPath`::visit_import_star_as_specifier`] with `self`."]
37332    fn visit_with_ast_path<'ast: 'r, 'r>(
37333        &'ast self,
37334        visitor: &mut V,
37335        __ast_path: &mut AstNodePath<'r>,
37336    ) {
37337        <V as VisitAstPath>::visit_import_star_as_specifier(visitor, self, __ast_path)
37338    }
37339
37340    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37341        &'ast self,
37342        visitor: &mut V,
37343        __ast_path: &mut AstNodePath<'r>,
37344    ) {
37345        match self {
37346            ImportStarAsSpecifier { span, local } => {
37347                {
37348                    let mut __ast_path =
37349                        __ast_path.with_guard(AstParentNodeRef::ImportStarAsSpecifier(
37350                            self,
37351                            self::fields::ImportStarAsSpecifierField::Span,
37352                        ));
37353                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37354                        span,
37355                        visitor,
37356                        &mut *__ast_path,
37357                    )
37358                };
37359                {
37360                    let mut __ast_path =
37361                        __ast_path.with_guard(AstParentNodeRef::ImportStarAsSpecifier(
37362                            self,
37363                            self::fields::ImportStarAsSpecifierField::Local,
37364                        ));
37365                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
37366                        local,
37367                        visitor,
37368                        &mut *__ast_path,
37369                    )
37370                };
37371            }
37372        }
37373    }
37374}
37375#[cfg(any(docsrs, feature = "path"))]
37376#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37377impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ImportWith {
37378    #[doc = "Calls [VisitAstPath`::visit_import_with`] with `self`."]
37379    fn visit_with_ast_path<'ast: 'r, 'r>(
37380        &'ast self,
37381        visitor: &mut V,
37382        __ast_path: &mut AstNodePath<'r>,
37383    ) {
37384        <V as VisitAstPath>::visit_import_with(visitor, self, __ast_path)
37385    }
37386
37387    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37388        &'ast self,
37389        visitor: &mut V,
37390        __ast_path: &mut AstNodePath<'r>,
37391    ) {
37392        match self {
37393            ImportWith { span, values } => {
37394                {
37395                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportWith(
37396                        self,
37397                        self::fields::ImportWithField::Span,
37398                    ));
37399                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37400                        span,
37401                        visitor,
37402                        &mut *__ast_path,
37403                    )
37404                };
37405                {
37406                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportWith(
37407                        self,
37408                        self::fields::ImportWithField::Values(usize::MAX),
37409                    ));
37410                    <Vec<ImportWithItem> as VisitWithAstPath<V>>::visit_with_ast_path(
37411                        values,
37412                        visitor,
37413                        &mut *__ast_path,
37414                    )
37415                };
37416            }
37417        }
37418    }
37419}
37420#[cfg(any(docsrs, feature = "path"))]
37421#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37422impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ImportWithItem {
37423    #[doc = "Calls [VisitAstPath`::visit_import_with_item`] with `self`."]
37424    fn visit_with_ast_path<'ast: 'r, 'r>(
37425        &'ast self,
37426        visitor: &mut V,
37427        __ast_path: &mut AstNodePath<'r>,
37428    ) {
37429        <V as VisitAstPath>::visit_import_with_item(visitor, self, __ast_path)
37430    }
37431
37432    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37433        &'ast self,
37434        visitor: &mut V,
37435        __ast_path: &mut AstNodePath<'r>,
37436    ) {
37437        match self {
37438            ImportWithItem { key, value } => {
37439                {
37440                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportWithItem(
37441                        self,
37442                        self::fields::ImportWithItemField::Key,
37443                    ));
37444                    <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
37445                        key,
37446                        visitor,
37447                        &mut *__ast_path,
37448                    )
37449                };
37450                {
37451                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportWithItem(
37452                        self,
37453                        self::fields::ImportWithItemField::Value,
37454                    ));
37455                    <Str as VisitWithAstPath<V>>::visit_with_ast_path(
37456                        value,
37457                        visitor,
37458                        &mut *__ast_path,
37459                    )
37460                };
37461            }
37462        }
37463    }
37464}
37465#[cfg(any(docsrs, feature = "path"))]
37466#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37467impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Invalid {
37468    #[doc = "Calls [VisitAstPath`::visit_invalid`] with `self`."]
37469    fn visit_with_ast_path<'ast: 'r, 'r>(
37470        &'ast self,
37471        visitor: &mut V,
37472        __ast_path: &mut AstNodePath<'r>,
37473    ) {
37474        <V as VisitAstPath>::visit_invalid(visitor, self, __ast_path)
37475    }
37476
37477    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37478        &'ast self,
37479        visitor: &mut V,
37480        __ast_path: &mut AstNodePath<'r>,
37481    ) {
37482        match self {
37483            Invalid { span } => {
37484                {
37485                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Invalid(
37486                        self,
37487                        self::fields::InvalidField::Span,
37488                    ));
37489                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37490                        span,
37491                        visitor,
37492                        &mut *__ast_path,
37493                    )
37494                };
37495            }
37496        }
37497    }
37498}
37499#[cfg(any(docsrs, feature = "path"))]
37500#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37501impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXAttr {
37502    #[doc = "Calls [VisitAstPath`::visit_jsx_attr`] with `self`."]
37503    fn visit_with_ast_path<'ast: 'r, 'r>(
37504        &'ast self,
37505        visitor: &mut V,
37506        __ast_path: &mut AstNodePath<'r>,
37507    ) {
37508        <V as VisitAstPath>::visit_jsx_attr(visitor, self, __ast_path)
37509    }
37510
37511    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37512        &'ast self,
37513        visitor: &mut V,
37514        __ast_path: &mut AstNodePath<'r>,
37515    ) {
37516        match self {
37517            JSXAttr { span, name, value } => {
37518                {
37519                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttr(
37520                        self,
37521                        self::fields::JSXAttrField::Span,
37522                    ));
37523                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37524                        span,
37525                        visitor,
37526                        &mut *__ast_path,
37527                    )
37528                };
37529                {
37530                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttr(
37531                        self,
37532                        self::fields::JSXAttrField::Name,
37533                    ));
37534                    <JSXAttrName as VisitWithAstPath<V>>::visit_with_ast_path(
37535                        name,
37536                        visitor,
37537                        &mut *__ast_path,
37538                    )
37539                };
37540                {
37541                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttr(
37542                        self,
37543                        self::fields::JSXAttrField::Value,
37544                    ));
37545                    <Option<JSXAttrValue> as VisitWithAstPath<V>>::visit_with_ast_path(
37546                        value,
37547                        visitor,
37548                        &mut *__ast_path,
37549                    )
37550                };
37551            }
37552        }
37553    }
37554}
37555#[cfg(any(docsrs, feature = "path"))]
37556#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37557impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXAttrName {
37558    #[doc = "Calls [VisitAstPath`::visit_jsx_attr_name`] with `self`."]
37559    fn visit_with_ast_path<'ast: 'r, 'r>(
37560        &'ast self,
37561        visitor: &mut V,
37562        __ast_path: &mut AstNodePath<'r>,
37563    ) {
37564        <V as VisitAstPath>::visit_jsx_attr_name(visitor, self, __ast_path)
37565    }
37566
37567    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37568        &'ast self,
37569        visitor: &mut V,
37570        __ast_path: &mut AstNodePath<'r>,
37571    ) {
37572        match self {
37573            JSXAttrName::Ident { 0: _field_0 } => {
37574                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttrName(
37575                    self,
37576                    self::fields::JSXAttrNameField::Ident,
37577                ));
37578                <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
37579                    _field_0,
37580                    visitor,
37581                    &mut *__ast_path,
37582                );
37583            }
37584            JSXAttrName::JSXNamespacedName { 0: _field_0 } => {
37585                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttrName(
37586                    self,
37587                    self::fields::JSXAttrNameField::JsxnamespacedName,
37588                ));
37589                <JSXNamespacedName as VisitWithAstPath<V>>::visit_with_ast_path(
37590                    _field_0,
37591                    visitor,
37592                    &mut *__ast_path,
37593                );
37594            }
37595        }
37596    }
37597}
37598#[cfg(any(docsrs, feature = "path"))]
37599#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37600impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXAttrOrSpread {
37601    #[doc = "Calls [VisitAstPath`::visit_jsx_attr_or_spread`] with `self`."]
37602    fn visit_with_ast_path<'ast: 'r, 'r>(
37603        &'ast self,
37604        visitor: &mut V,
37605        __ast_path: &mut AstNodePath<'r>,
37606    ) {
37607        <V as VisitAstPath>::visit_jsx_attr_or_spread(visitor, self, __ast_path)
37608    }
37609
37610    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37611        &'ast self,
37612        visitor: &mut V,
37613        __ast_path: &mut AstNodePath<'r>,
37614    ) {
37615        match self {
37616            JSXAttrOrSpread::JSXAttr { 0: _field_0 } => {
37617                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttrOrSpread(
37618                    self,
37619                    self::fields::JSXAttrOrSpreadField::Jsxattr,
37620                ));
37621                <JSXAttr as VisitWithAstPath<V>>::visit_with_ast_path(
37622                    _field_0,
37623                    visitor,
37624                    &mut *__ast_path,
37625                );
37626            }
37627            JSXAttrOrSpread::SpreadElement { 0: _field_0 } => {
37628                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttrOrSpread(
37629                    self,
37630                    self::fields::JSXAttrOrSpreadField::SpreadElement,
37631                ));
37632                <SpreadElement as VisitWithAstPath<V>>::visit_with_ast_path(
37633                    _field_0,
37634                    visitor,
37635                    &mut *__ast_path,
37636                );
37637            }
37638        }
37639    }
37640}
37641#[cfg(any(docsrs, feature = "path"))]
37642#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37643impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXAttrValue {
37644    #[doc = "Calls [VisitAstPath`::visit_jsx_attr_value`] with `self`."]
37645    fn visit_with_ast_path<'ast: 'r, 'r>(
37646        &'ast self,
37647        visitor: &mut V,
37648        __ast_path: &mut AstNodePath<'r>,
37649    ) {
37650        <V as VisitAstPath>::visit_jsx_attr_value(visitor, self, __ast_path)
37651    }
37652
37653    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37654        &'ast self,
37655        visitor: &mut V,
37656        __ast_path: &mut AstNodePath<'r>,
37657    ) {
37658        match self {
37659            JSXAttrValue::Lit { 0: _field_0 } => {
37660                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttrValue(
37661                    self,
37662                    self::fields::JSXAttrValueField::Lit,
37663                ));
37664                <Lit as VisitWithAstPath<V>>::visit_with_ast_path(
37665                    _field_0,
37666                    visitor,
37667                    &mut *__ast_path,
37668                );
37669            }
37670            JSXAttrValue::JSXExprContainer { 0: _field_0 } => {
37671                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttrValue(
37672                    self,
37673                    self::fields::JSXAttrValueField::JsxexprContainer,
37674                ));
37675                <JSXExprContainer as VisitWithAstPath<V>>::visit_with_ast_path(
37676                    _field_0,
37677                    visitor,
37678                    &mut *__ast_path,
37679                );
37680            }
37681            JSXAttrValue::JSXElement { 0: _field_0 } => {
37682                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttrValue(
37683                    self,
37684                    self::fields::JSXAttrValueField::Jsxelement,
37685                ));
37686                <Box<JSXElement> as VisitWithAstPath<V>>::visit_with_ast_path(
37687                    _field_0,
37688                    visitor,
37689                    &mut *__ast_path,
37690                );
37691            }
37692            JSXAttrValue::JSXFragment { 0: _field_0 } => {
37693                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttrValue(
37694                    self,
37695                    self::fields::JSXAttrValueField::Jsxfragment,
37696                ));
37697                <JSXFragment as VisitWithAstPath<V>>::visit_with_ast_path(
37698                    _field_0,
37699                    visitor,
37700                    &mut *__ast_path,
37701                );
37702            }
37703        }
37704    }
37705}
37706#[cfg(any(docsrs, feature = "path"))]
37707#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37708impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXClosingElement {
37709    #[doc = "Calls [VisitAstPath`::visit_jsx_closing_element`] with `self`."]
37710    fn visit_with_ast_path<'ast: 'r, 'r>(
37711        &'ast self,
37712        visitor: &mut V,
37713        __ast_path: &mut AstNodePath<'r>,
37714    ) {
37715        <V as VisitAstPath>::visit_jsx_closing_element(visitor, self, __ast_path)
37716    }
37717
37718    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37719        &'ast self,
37720        visitor: &mut V,
37721        __ast_path: &mut AstNodePath<'r>,
37722    ) {
37723        match self {
37724            JSXClosingElement { span, name } => {
37725                {
37726                    let mut __ast_path =
37727                        __ast_path.with_guard(AstParentNodeRef::JSXClosingElement(
37728                            self,
37729                            self::fields::JSXClosingElementField::Span,
37730                        ));
37731                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37732                        span,
37733                        visitor,
37734                        &mut *__ast_path,
37735                    )
37736                };
37737                {
37738                    let mut __ast_path =
37739                        __ast_path.with_guard(AstParentNodeRef::JSXClosingElement(
37740                            self,
37741                            self::fields::JSXClosingElementField::Name,
37742                        ));
37743                    <JSXElementName as VisitWithAstPath<V>>::visit_with_ast_path(
37744                        name,
37745                        visitor,
37746                        &mut *__ast_path,
37747                    )
37748                };
37749            }
37750        }
37751    }
37752}
37753#[cfg(any(docsrs, feature = "path"))]
37754#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37755impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXClosingFragment {
37756    #[doc = "Calls [VisitAstPath`::visit_jsx_closing_fragment`] with `self`."]
37757    fn visit_with_ast_path<'ast: 'r, 'r>(
37758        &'ast self,
37759        visitor: &mut V,
37760        __ast_path: &mut AstNodePath<'r>,
37761    ) {
37762        <V as VisitAstPath>::visit_jsx_closing_fragment(visitor, self, __ast_path)
37763    }
37764
37765    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37766        &'ast self,
37767        visitor: &mut V,
37768        __ast_path: &mut AstNodePath<'r>,
37769    ) {
37770        match self {
37771            JSXClosingFragment { span } => {
37772                {
37773                    let mut __ast_path =
37774                        __ast_path.with_guard(AstParentNodeRef::JSXClosingFragment(
37775                            self,
37776                            self::fields::JSXClosingFragmentField::Span,
37777                        ));
37778                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37779                        span,
37780                        visitor,
37781                        &mut *__ast_path,
37782                    )
37783                };
37784            }
37785        }
37786    }
37787}
37788#[cfg(any(docsrs, feature = "path"))]
37789#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37790impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXElement {
37791    #[doc = "Calls [VisitAstPath`::visit_jsx_element`] with `self`."]
37792    fn visit_with_ast_path<'ast: 'r, 'r>(
37793        &'ast self,
37794        visitor: &mut V,
37795        __ast_path: &mut AstNodePath<'r>,
37796    ) {
37797        <V as VisitAstPath>::visit_jsx_element(visitor, self, __ast_path)
37798    }
37799
37800    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37801        &'ast self,
37802        visitor: &mut V,
37803        __ast_path: &mut AstNodePath<'r>,
37804    ) {
37805        match self {
37806            JSXElement {
37807                span,
37808                opening,
37809                children,
37810                closing,
37811            } => {
37812                {
37813                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElement(
37814                        self,
37815                        self::fields::JSXElementField::Span,
37816                    ));
37817                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37818                        span,
37819                        visitor,
37820                        &mut *__ast_path,
37821                    )
37822                };
37823                {
37824                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElement(
37825                        self,
37826                        self::fields::JSXElementField::Opening,
37827                    ));
37828                    <JSXOpeningElement as VisitWithAstPath<V>>::visit_with_ast_path(
37829                        opening,
37830                        visitor,
37831                        &mut *__ast_path,
37832                    )
37833                };
37834                {
37835                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElement(
37836                        self,
37837                        self::fields::JSXElementField::Children(usize::MAX),
37838                    ));
37839                    <Vec<JSXElementChild> as VisitWithAstPath<V>>::visit_with_ast_path(
37840                        children,
37841                        visitor,
37842                        &mut *__ast_path,
37843                    )
37844                };
37845                {
37846                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElement(
37847                        self,
37848                        self::fields::JSXElementField::Closing,
37849                    ));
37850                    <Option<JSXClosingElement> as VisitWithAstPath<V>>::visit_with_ast_path(
37851                        closing,
37852                        visitor,
37853                        &mut *__ast_path,
37854                    )
37855                };
37856            }
37857        }
37858    }
37859}
37860#[cfg(any(docsrs, feature = "path"))]
37861#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37862impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXElementChild {
37863    #[doc = "Calls [VisitAstPath`::visit_jsx_element_child`] with `self`."]
37864    fn visit_with_ast_path<'ast: 'r, 'r>(
37865        &'ast self,
37866        visitor: &mut V,
37867        __ast_path: &mut AstNodePath<'r>,
37868    ) {
37869        <V as VisitAstPath>::visit_jsx_element_child(visitor, self, __ast_path)
37870    }
37871
37872    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37873        &'ast self,
37874        visitor: &mut V,
37875        __ast_path: &mut AstNodePath<'r>,
37876    ) {
37877        match self {
37878            JSXElementChild::JSXText { 0: _field_0 } => {
37879                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElementChild(
37880                    self,
37881                    self::fields::JSXElementChildField::Jsxtext,
37882                ));
37883                <JSXText as VisitWithAstPath<V>>::visit_with_ast_path(
37884                    _field_0,
37885                    visitor,
37886                    &mut *__ast_path,
37887                );
37888            }
37889            JSXElementChild::JSXExprContainer { 0: _field_0 } => {
37890                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElementChild(
37891                    self,
37892                    self::fields::JSXElementChildField::JsxexprContainer,
37893                ));
37894                <JSXExprContainer as VisitWithAstPath<V>>::visit_with_ast_path(
37895                    _field_0,
37896                    visitor,
37897                    &mut *__ast_path,
37898                );
37899            }
37900            JSXElementChild::JSXSpreadChild { 0: _field_0 } => {
37901                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElementChild(
37902                    self,
37903                    self::fields::JSXElementChildField::JsxspreadChild,
37904                ));
37905                <JSXSpreadChild as VisitWithAstPath<V>>::visit_with_ast_path(
37906                    _field_0,
37907                    visitor,
37908                    &mut *__ast_path,
37909                );
37910            }
37911            JSXElementChild::JSXElement { 0: _field_0 } => {
37912                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElementChild(
37913                    self,
37914                    self::fields::JSXElementChildField::Jsxelement,
37915                ));
37916                <Box<JSXElement> as VisitWithAstPath<V>>::visit_with_ast_path(
37917                    _field_0,
37918                    visitor,
37919                    &mut *__ast_path,
37920                );
37921            }
37922            JSXElementChild::JSXFragment { 0: _field_0 } => {
37923                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElementChild(
37924                    self,
37925                    self::fields::JSXElementChildField::Jsxfragment,
37926                ));
37927                <JSXFragment as VisitWithAstPath<V>>::visit_with_ast_path(
37928                    _field_0,
37929                    visitor,
37930                    &mut *__ast_path,
37931                );
37932            }
37933        }
37934    }
37935}
37936#[cfg(any(docsrs, feature = "path"))]
37937#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37938impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXElementName {
37939    #[doc = "Calls [VisitAstPath`::visit_jsx_element_name`] with `self`."]
37940    fn visit_with_ast_path<'ast: 'r, 'r>(
37941        &'ast self,
37942        visitor: &mut V,
37943        __ast_path: &mut AstNodePath<'r>,
37944    ) {
37945        <V as VisitAstPath>::visit_jsx_element_name(visitor, self, __ast_path)
37946    }
37947
37948    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37949        &'ast self,
37950        visitor: &mut V,
37951        __ast_path: &mut AstNodePath<'r>,
37952    ) {
37953        match self {
37954            JSXElementName::Ident { 0: _field_0 } => {
37955                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElementName(
37956                    self,
37957                    self::fields::JSXElementNameField::Ident,
37958                ));
37959                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
37960                    _field_0,
37961                    visitor,
37962                    &mut *__ast_path,
37963                );
37964            }
37965            JSXElementName::JSXMemberExpr { 0: _field_0 } => {
37966                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElementName(
37967                    self,
37968                    self::fields::JSXElementNameField::JsxmemberExpr,
37969                ));
37970                <JSXMemberExpr as VisitWithAstPath<V>>::visit_with_ast_path(
37971                    _field_0,
37972                    visitor,
37973                    &mut *__ast_path,
37974                );
37975            }
37976            JSXElementName::JSXNamespacedName { 0: _field_0 } => {
37977                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElementName(
37978                    self,
37979                    self::fields::JSXElementNameField::JsxnamespacedName,
37980                ));
37981                <JSXNamespacedName as VisitWithAstPath<V>>::visit_with_ast_path(
37982                    _field_0,
37983                    visitor,
37984                    &mut *__ast_path,
37985                );
37986            }
37987        }
37988    }
37989}
37990#[cfg(any(docsrs, feature = "path"))]
37991#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37992impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXEmptyExpr {
37993    #[doc = "Calls [VisitAstPath`::visit_jsx_empty_expr`] with `self`."]
37994    fn visit_with_ast_path<'ast: 'r, 'r>(
37995        &'ast self,
37996        visitor: &mut V,
37997        __ast_path: &mut AstNodePath<'r>,
37998    ) {
37999        <V as VisitAstPath>::visit_jsx_empty_expr(visitor, self, __ast_path)
38000    }
38001
38002    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38003        &'ast self,
38004        visitor: &mut V,
38005        __ast_path: &mut AstNodePath<'r>,
38006    ) {
38007        match self {
38008            JSXEmptyExpr { span } => {
38009                {
38010                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXEmptyExpr(
38011                        self,
38012                        self::fields::JSXEmptyExprField::Span,
38013                    ));
38014                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38015                        span,
38016                        visitor,
38017                        &mut *__ast_path,
38018                    )
38019                };
38020            }
38021        }
38022    }
38023}
38024#[cfg(any(docsrs, feature = "path"))]
38025#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38026impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXExpr {
38027    #[doc = "Calls [VisitAstPath`::visit_jsx_expr`] with `self`."]
38028    fn visit_with_ast_path<'ast: 'r, 'r>(
38029        &'ast self,
38030        visitor: &mut V,
38031        __ast_path: &mut AstNodePath<'r>,
38032    ) {
38033        <V as VisitAstPath>::visit_jsx_expr(visitor, self, __ast_path)
38034    }
38035
38036    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38037        &'ast self,
38038        visitor: &mut V,
38039        __ast_path: &mut AstNodePath<'r>,
38040    ) {
38041        match self {
38042            JSXExpr::JSXEmptyExpr { 0: _field_0 } => {
38043                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXExpr(
38044                    self,
38045                    self::fields::JSXExprField::JsxemptyExpr,
38046                ));
38047                <JSXEmptyExpr as VisitWithAstPath<V>>::visit_with_ast_path(
38048                    _field_0,
38049                    visitor,
38050                    &mut *__ast_path,
38051                );
38052            }
38053            JSXExpr::Expr { 0: _field_0 } => {
38054                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXExpr(
38055                    self,
38056                    self::fields::JSXExprField::Expr,
38057                ));
38058                <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
38059                    _field_0,
38060                    visitor,
38061                    &mut *__ast_path,
38062                );
38063            }
38064        }
38065    }
38066}
38067#[cfg(any(docsrs, feature = "path"))]
38068#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38069impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXExprContainer {
38070    #[doc = "Calls [VisitAstPath`::visit_jsx_expr_container`] with `self`."]
38071    fn visit_with_ast_path<'ast: 'r, 'r>(
38072        &'ast self,
38073        visitor: &mut V,
38074        __ast_path: &mut AstNodePath<'r>,
38075    ) {
38076        <V as VisitAstPath>::visit_jsx_expr_container(visitor, self, __ast_path)
38077    }
38078
38079    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38080        &'ast self,
38081        visitor: &mut V,
38082        __ast_path: &mut AstNodePath<'r>,
38083    ) {
38084        match self {
38085            JSXExprContainer { span, expr } => {
38086                {
38087                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXExprContainer(
38088                        self,
38089                        self::fields::JSXExprContainerField::Span,
38090                    ));
38091                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38092                        span,
38093                        visitor,
38094                        &mut *__ast_path,
38095                    )
38096                };
38097                {
38098                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXExprContainer(
38099                        self,
38100                        self::fields::JSXExprContainerField::Expr,
38101                    ));
38102                    <JSXExpr as VisitWithAstPath<V>>::visit_with_ast_path(
38103                        expr,
38104                        visitor,
38105                        &mut *__ast_path,
38106                    )
38107                };
38108            }
38109        }
38110    }
38111}
38112#[cfg(any(docsrs, feature = "path"))]
38113#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38114impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXFragment {
38115    #[doc = "Calls [VisitAstPath`::visit_jsx_fragment`] with `self`."]
38116    fn visit_with_ast_path<'ast: 'r, 'r>(
38117        &'ast self,
38118        visitor: &mut V,
38119        __ast_path: &mut AstNodePath<'r>,
38120    ) {
38121        <V as VisitAstPath>::visit_jsx_fragment(visitor, self, __ast_path)
38122    }
38123
38124    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38125        &'ast self,
38126        visitor: &mut V,
38127        __ast_path: &mut AstNodePath<'r>,
38128    ) {
38129        match self {
38130            JSXFragment {
38131                span,
38132                opening,
38133                children,
38134                closing,
38135            } => {
38136                {
38137                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXFragment(
38138                        self,
38139                        self::fields::JSXFragmentField::Span,
38140                    ));
38141                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38142                        span,
38143                        visitor,
38144                        &mut *__ast_path,
38145                    )
38146                };
38147                {
38148                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXFragment(
38149                        self,
38150                        self::fields::JSXFragmentField::Opening,
38151                    ));
38152                    <JSXOpeningFragment as VisitWithAstPath<V>>::visit_with_ast_path(
38153                        opening,
38154                        visitor,
38155                        &mut *__ast_path,
38156                    )
38157                };
38158                {
38159                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXFragment(
38160                        self,
38161                        self::fields::JSXFragmentField::Children(usize::MAX),
38162                    ));
38163                    <Vec<JSXElementChild> as VisitWithAstPath<V>>::visit_with_ast_path(
38164                        children,
38165                        visitor,
38166                        &mut *__ast_path,
38167                    )
38168                };
38169                {
38170                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXFragment(
38171                        self,
38172                        self::fields::JSXFragmentField::Closing,
38173                    ));
38174                    <JSXClosingFragment as VisitWithAstPath<V>>::visit_with_ast_path(
38175                        closing,
38176                        visitor,
38177                        &mut *__ast_path,
38178                    )
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 JSXMemberExpr {
38187    #[doc = "Calls [VisitAstPath`::visit_jsx_member_expr`] 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_member_expr(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            JSXMemberExpr { span, obj, prop } => {
38203                {
38204                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXMemberExpr(
38205                        self,
38206                        self::fields::JSXMemberExprField::Span,
38207                    ));
38208                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38209                        span,
38210                        visitor,
38211                        &mut *__ast_path,
38212                    )
38213                };
38214                {
38215                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXMemberExpr(
38216                        self,
38217                        self::fields::JSXMemberExprField::Obj,
38218                    ));
38219                    <JSXObject as VisitWithAstPath<V>>::visit_with_ast_path(
38220                        obj,
38221                        visitor,
38222                        &mut *__ast_path,
38223                    )
38224                };
38225                {
38226                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXMemberExpr(
38227                        self,
38228                        self::fields::JSXMemberExprField::Prop,
38229                    ));
38230                    <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
38231                        prop,
38232                        visitor,
38233                        &mut *__ast_path,
38234                    )
38235                };
38236            }
38237        }
38238    }
38239}
38240#[cfg(any(docsrs, feature = "path"))]
38241#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38242impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXNamespacedName {
38243    #[doc = "Calls [VisitAstPath`::visit_jsx_namespaced_name`] with `self`."]
38244    fn visit_with_ast_path<'ast: 'r, 'r>(
38245        &'ast self,
38246        visitor: &mut V,
38247        __ast_path: &mut AstNodePath<'r>,
38248    ) {
38249        <V as VisitAstPath>::visit_jsx_namespaced_name(visitor, self, __ast_path)
38250    }
38251
38252    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38253        &'ast self,
38254        visitor: &mut V,
38255        __ast_path: &mut AstNodePath<'r>,
38256    ) {
38257        match self {
38258            JSXNamespacedName { span, ns, name } => {
38259                {
38260                    let mut __ast_path =
38261                        __ast_path.with_guard(AstParentNodeRef::JSXNamespacedName(
38262                            self,
38263                            self::fields::JSXNamespacedNameField::Span,
38264                        ));
38265                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38266                        span,
38267                        visitor,
38268                        &mut *__ast_path,
38269                    )
38270                };
38271                {
38272                    let mut __ast_path =
38273                        __ast_path.with_guard(AstParentNodeRef::JSXNamespacedName(
38274                            self,
38275                            self::fields::JSXNamespacedNameField::Ns,
38276                        ));
38277                    <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
38278                        ns,
38279                        visitor,
38280                        &mut *__ast_path,
38281                    )
38282                };
38283                {
38284                    let mut __ast_path =
38285                        __ast_path.with_guard(AstParentNodeRef::JSXNamespacedName(
38286                            self,
38287                            self::fields::JSXNamespacedNameField::Name,
38288                        ));
38289                    <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
38290                        name,
38291                        visitor,
38292                        &mut *__ast_path,
38293                    )
38294                };
38295            }
38296        }
38297    }
38298}
38299#[cfg(any(docsrs, feature = "path"))]
38300#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38301impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXObject {
38302    #[doc = "Calls [VisitAstPath`::visit_jsx_object`] with `self`."]
38303    fn visit_with_ast_path<'ast: 'r, 'r>(
38304        &'ast self,
38305        visitor: &mut V,
38306        __ast_path: &mut AstNodePath<'r>,
38307    ) {
38308        <V as VisitAstPath>::visit_jsx_object(visitor, self, __ast_path)
38309    }
38310
38311    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38312        &'ast self,
38313        visitor: &mut V,
38314        __ast_path: &mut AstNodePath<'r>,
38315    ) {
38316        match self {
38317            JSXObject::JSXMemberExpr { 0: _field_0 } => {
38318                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXObject(
38319                    self,
38320                    self::fields::JSXObjectField::JsxmemberExpr,
38321                ));
38322                <Box<JSXMemberExpr> as VisitWithAstPath<V>>::visit_with_ast_path(
38323                    _field_0,
38324                    visitor,
38325                    &mut *__ast_path,
38326                );
38327            }
38328            JSXObject::Ident { 0: _field_0 } => {
38329                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXObject(
38330                    self,
38331                    self::fields::JSXObjectField::Ident,
38332                ));
38333                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
38334                    _field_0,
38335                    visitor,
38336                    &mut *__ast_path,
38337                );
38338            }
38339        }
38340    }
38341}
38342#[cfg(any(docsrs, feature = "path"))]
38343#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38344impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXOpeningElement {
38345    #[doc = "Calls [VisitAstPath`::visit_jsx_opening_element`] with `self`."]
38346    fn visit_with_ast_path<'ast: 'r, 'r>(
38347        &'ast self,
38348        visitor: &mut V,
38349        __ast_path: &mut AstNodePath<'r>,
38350    ) {
38351        <V as VisitAstPath>::visit_jsx_opening_element(visitor, self, __ast_path)
38352    }
38353
38354    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38355        &'ast self,
38356        visitor: &mut V,
38357        __ast_path: &mut AstNodePath<'r>,
38358    ) {
38359        match self {
38360            JSXOpeningElement {
38361                name,
38362                span,
38363                attrs,
38364                self_closing,
38365                type_args,
38366            } => {
38367                {
38368                    let mut __ast_path =
38369                        __ast_path.with_guard(AstParentNodeRef::JSXOpeningElement(
38370                            self,
38371                            self::fields::JSXOpeningElementField::Name,
38372                        ));
38373                    <JSXElementName as VisitWithAstPath<V>>::visit_with_ast_path(
38374                        name,
38375                        visitor,
38376                        &mut *__ast_path,
38377                    )
38378                };
38379                {
38380                    let mut __ast_path =
38381                        __ast_path.with_guard(AstParentNodeRef::JSXOpeningElement(
38382                            self,
38383                            self::fields::JSXOpeningElementField::Span,
38384                        ));
38385                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38386                        span,
38387                        visitor,
38388                        &mut *__ast_path,
38389                    )
38390                };
38391                {
38392                    let mut __ast_path =
38393                        __ast_path.with_guard(AstParentNodeRef::JSXOpeningElement(
38394                            self,
38395                            self::fields::JSXOpeningElementField::Attrs(usize::MAX),
38396                        ));
38397                    <Vec<JSXAttrOrSpread> as VisitWithAstPath<V>>::visit_with_ast_path(
38398                        attrs,
38399                        visitor,
38400                        &mut *__ast_path,
38401                    )
38402                };
38403                {
38404                    let mut __ast_path =
38405                        __ast_path.with_guard(AstParentNodeRef::JSXOpeningElement(
38406                            self,
38407                            self::fields::JSXOpeningElementField::TypeArgs,
38408                        ));
38409                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_args , visitor , & mut * __ast_path)
38410                };
38411            }
38412        }
38413    }
38414}
38415#[cfg(any(docsrs, feature = "path"))]
38416#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38417impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXOpeningFragment {
38418    #[doc = "Calls [VisitAstPath`::visit_jsx_opening_fragment`] with `self`."]
38419    fn visit_with_ast_path<'ast: 'r, 'r>(
38420        &'ast self,
38421        visitor: &mut V,
38422        __ast_path: &mut AstNodePath<'r>,
38423    ) {
38424        <V as VisitAstPath>::visit_jsx_opening_fragment(visitor, self, __ast_path)
38425    }
38426
38427    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38428        &'ast self,
38429        visitor: &mut V,
38430        __ast_path: &mut AstNodePath<'r>,
38431    ) {
38432        match self {
38433            JSXOpeningFragment { span } => {
38434                {
38435                    let mut __ast_path =
38436                        __ast_path.with_guard(AstParentNodeRef::JSXOpeningFragment(
38437                            self,
38438                            self::fields::JSXOpeningFragmentField::Span,
38439                        ));
38440                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38441                        span,
38442                        visitor,
38443                        &mut *__ast_path,
38444                    )
38445                };
38446            }
38447        }
38448    }
38449}
38450#[cfg(any(docsrs, feature = "path"))]
38451#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38452impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXSpreadChild {
38453    #[doc = "Calls [VisitAstPath`::visit_jsx_spread_child`] with `self`."]
38454    fn visit_with_ast_path<'ast: 'r, 'r>(
38455        &'ast self,
38456        visitor: &mut V,
38457        __ast_path: &mut AstNodePath<'r>,
38458    ) {
38459        <V as VisitAstPath>::visit_jsx_spread_child(visitor, self, __ast_path)
38460    }
38461
38462    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38463        &'ast self,
38464        visitor: &mut V,
38465        __ast_path: &mut AstNodePath<'r>,
38466    ) {
38467        match self {
38468            JSXSpreadChild { span, expr } => {
38469                {
38470                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXSpreadChild(
38471                        self,
38472                        self::fields::JSXSpreadChildField::Span,
38473                    ));
38474                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38475                        span,
38476                        visitor,
38477                        &mut *__ast_path,
38478                    )
38479                };
38480                {
38481                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXSpreadChild(
38482                        self,
38483                        self::fields::JSXSpreadChildField::Expr,
38484                    ));
38485                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
38486                        expr,
38487                        visitor,
38488                        &mut *__ast_path,
38489                    )
38490                };
38491            }
38492        }
38493    }
38494}
38495#[cfg(any(docsrs, feature = "path"))]
38496#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38497impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXText {
38498    #[doc = "Calls [VisitAstPath`::visit_jsx_text`] with `self`."]
38499    fn visit_with_ast_path<'ast: 'r, 'r>(
38500        &'ast self,
38501        visitor: &mut V,
38502        __ast_path: &mut AstNodePath<'r>,
38503    ) {
38504        <V as VisitAstPath>::visit_jsx_text(visitor, self, __ast_path)
38505    }
38506
38507    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38508        &'ast self,
38509        visitor: &mut V,
38510        __ast_path: &mut AstNodePath<'r>,
38511    ) {
38512        match self {
38513            JSXText { span, value, raw } => {
38514                {
38515                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXText(
38516                        self,
38517                        self::fields::JSXTextField::Span,
38518                    ));
38519                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38520                        span,
38521                        visitor,
38522                        &mut *__ast_path,
38523                    )
38524                };
38525                {
38526                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXText(
38527                        self,
38528                        self::fields::JSXTextField::Value,
38529                    ));
38530                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
38531                        value,
38532                        visitor,
38533                        &mut *__ast_path,
38534                    )
38535                };
38536                {
38537                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXText(
38538                        self,
38539                        self::fields::JSXTextField::Raw,
38540                    ));
38541                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
38542                        raw,
38543                        visitor,
38544                        &mut *__ast_path,
38545                    )
38546                };
38547            }
38548        }
38549    }
38550}
38551#[cfg(any(docsrs, feature = "path"))]
38552#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38553impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Key {
38554    #[doc = "Calls [VisitAstPath`::visit_key`] with `self`."]
38555    fn visit_with_ast_path<'ast: 'r, 'r>(
38556        &'ast self,
38557        visitor: &mut V,
38558        __ast_path: &mut AstNodePath<'r>,
38559    ) {
38560        <V as VisitAstPath>::visit_key(visitor, self, __ast_path)
38561    }
38562
38563    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38564        &'ast self,
38565        visitor: &mut V,
38566        __ast_path: &mut AstNodePath<'r>,
38567    ) {
38568        match self {
38569            Key::Private { 0: _field_0 } => {
38570                let mut __ast_path = __ast_path
38571                    .with_guard(AstParentNodeRef::Key(self, self::fields::KeyField::Private));
38572                <PrivateName as VisitWithAstPath<V>>::visit_with_ast_path(
38573                    _field_0,
38574                    visitor,
38575                    &mut *__ast_path,
38576                );
38577            }
38578            Key::Public { 0: _field_0 } => {
38579                let mut __ast_path = __ast_path
38580                    .with_guard(AstParentNodeRef::Key(self, self::fields::KeyField::Public));
38581                <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
38582                    _field_0,
38583                    visitor,
38584                    &mut *__ast_path,
38585                );
38586            }
38587        }
38588    }
38589}
38590#[cfg(any(docsrs, feature = "path"))]
38591#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38592impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for KeyValuePatProp {
38593    #[doc = "Calls [VisitAstPath`::visit_key_value_pat_prop`] with `self`."]
38594    fn visit_with_ast_path<'ast: 'r, 'r>(
38595        &'ast self,
38596        visitor: &mut V,
38597        __ast_path: &mut AstNodePath<'r>,
38598    ) {
38599        <V as VisitAstPath>::visit_key_value_pat_prop(visitor, self, __ast_path)
38600    }
38601
38602    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38603        &'ast self,
38604        visitor: &mut V,
38605        __ast_path: &mut AstNodePath<'r>,
38606    ) {
38607        match self {
38608            KeyValuePatProp { key, value } => {
38609                {
38610                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::KeyValuePatProp(
38611                        self,
38612                        self::fields::KeyValuePatPropField::Key,
38613                    ));
38614                    <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
38615                        key,
38616                        visitor,
38617                        &mut *__ast_path,
38618                    )
38619                };
38620                {
38621                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::KeyValuePatProp(
38622                        self,
38623                        self::fields::KeyValuePatPropField::Value,
38624                    ));
38625                    <Box<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
38626                        value,
38627                        visitor,
38628                        &mut *__ast_path,
38629                    )
38630                };
38631            }
38632        }
38633    }
38634}
38635#[cfg(any(docsrs, feature = "path"))]
38636#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38637impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for KeyValueProp {
38638    #[doc = "Calls [VisitAstPath`::visit_key_value_prop`] with `self`."]
38639    fn visit_with_ast_path<'ast: 'r, 'r>(
38640        &'ast self,
38641        visitor: &mut V,
38642        __ast_path: &mut AstNodePath<'r>,
38643    ) {
38644        <V as VisitAstPath>::visit_key_value_prop(visitor, self, __ast_path)
38645    }
38646
38647    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38648        &'ast self,
38649        visitor: &mut V,
38650        __ast_path: &mut AstNodePath<'r>,
38651    ) {
38652        match self {
38653            KeyValueProp { key, value } => {
38654                {
38655                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::KeyValueProp(
38656                        self,
38657                        self::fields::KeyValuePropField::Key,
38658                    ));
38659                    <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
38660                        key,
38661                        visitor,
38662                        &mut *__ast_path,
38663                    )
38664                };
38665                {
38666                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::KeyValueProp(
38667                        self,
38668                        self::fields::KeyValuePropField::Value,
38669                    ));
38670                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
38671                        value,
38672                        visitor,
38673                        &mut *__ast_path,
38674                    )
38675                };
38676            }
38677        }
38678    }
38679}
38680#[cfg(any(docsrs, feature = "path"))]
38681#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38682impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for LabeledStmt {
38683    #[doc = "Calls [VisitAstPath`::visit_labeled_stmt`] with `self`."]
38684    fn visit_with_ast_path<'ast: 'r, 'r>(
38685        &'ast self,
38686        visitor: &mut V,
38687        __ast_path: &mut AstNodePath<'r>,
38688    ) {
38689        <V as VisitAstPath>::visit_labeled_stmt(visitor, self, __ast_path)
38690    }
38691
38692    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38693        &'ast self,
38694        visitor: &mut V,
38695        __ast_path: &mut AstNodePath<'r>,
38696    ) {
38697        match self {
38698            LabeledStmt { span, label, body } => {
38699                {
38700                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::LabeledStmt(
38701                        self,
38702                        self::fields::LabeledStmtField::Span,
38703                    ));
38704                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38705                        span,
38706                        visitor,
38707                        &mut *__ast_path,
38708                    )
38709                };
38710                {
38711                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::LabeledStmt(
38712                        self,
38713                        self::fields::LabeledStmtField::Label,
38714                    ));
38715                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
38716                        label,
38717                        visitor,
38718                        &mut *__ast_path,
38719                    )
38720                };
38721                {
38722                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::LabeledStmt(
38723                        self,
38724                        self::fields::LabeledStmtField::Body,
38725                    ));
38726                    <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
38727                        body,
38728                        visitor,
38729                        &mut *__ast_path,
38730                    )
38731                };
38732            }
38733        }
38734    }
38735}
38736#[cfg(any(docsrs, feature = "path"))]
38737#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38738impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Lit {
38739    #[doc = "Calls [VisitAstPath`::visit_lit`] with `self`."]
38740    fn visit_with_ast_path<'ast: 'r, 'r>(
38741        &'ast self,
38742        visitor: &mut V,
38743        __ast_path: &mut AstNodePath<'r>,
38744    ) {
38745        <V as VisitAstPath>::visit_lit(visitor, self, __ast_path)
38746    }
38747
38748    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38749        &'ast self,
38750        visitor: &mut V,
38751        __ast_path: &mut AstNodePath<'r>,
38752    ) {
38753        match self {
38754            Lit::Str { 0: _field_0 } => {
38755                let mut __ast_path =
38756                    __ast_path.with_guard(AstParentNodeRef::Lit(self, self::fields::LitField::Str));
38757                <Str as VisitWithAstPath<V>>::visit_with_ast_path(
38758                    _field_0,
38759                    visitor,
38760                    &mut *__ast_path,
38761                );
38762            }
38763            Lit::Bool { 0: _field_0 } => {
38764                let mut __ast_path = __ast_path
38765                    .with_guard(AstParentNodeRef::Lit(self, self::fields::LitField::Bool));
38766                <Bool as VisitWithAstPath<V>>::visit_with_ast_path(
38767                    _field_0,
38768                    visitor,
38769                    &mut *__ast_path,
38770                );
38771            }
38772            Lit::Null { 0: _field_0 } => {
38773                let mut __ast_path = __ast_path
38774                    .with_guard(AstParentNodeRef::Lit(self, self::fields::LitField::Null));
38775                <Null as VisitWithAstPath<V>>::visit_with_ast_path(
38776                    _field_0,
38777                    visitor,
38778                    &mut *__ast_path,
38779                );
38780            }
38781            Lit::Num { 0: _field_0 } => {
38782                let mut __ast_path =
38783                    __ast_path.with_guard(AstParentNodeRef::Lit(self, self::fields::LitField::Num));
38784                <Number as VisitWithAstPath<V>>::visit_with_ast_path(
38785                    _field_0,
38786                    visitor,
38787                    &mut *__ast_path,
38788                );
38789            }
38790            Lit::BigInt { 0: _field_0 } => {
38791                let mut __ast_path = __ast_path
38792                    .with_guard(AstParentNodeRef::Lit(self, self::fields::LitField::BigInt));
38793                <BigInt as VisitWithAstPath<V>>::visit_with_ast_path(
38794                    _field_0,
38795                    visitor,
38796                    &mut *__ast_path,
38797                );
38798            }
38799            Lit::Regex { 0: _field_0 } => {
38800                let mut __ast_path = __ast_path
38801                    .with_guard(AstParentNodeRef::Lit(self, self::fields::LitField::Regex));
38802                <Regex as VisitWithAstPath<V>>::visit_with_ast_path(
38803                    _field_0,
38804                    visitor,
38805                    &mut *__ast_path,
38806                );
38807            }
38808            Lit::JSXText { 0: _field_0 } => {
38809                let mut __ast_path = __ast_path
38810                    .with_guard(AstParentNodeRef::Lit(self, self::fields::LitField::Jsxtext));
38811                <JSXText as VisitWithAstPath<V>>::visit_with_ast_path(
38812                    _field_0,
38813                    visitor,
38814                    &mut *__ast_path,
38815                );
38816            }
38817        }
38818    }
38819}
38820#[cfg(any(docsrs, feature = "path"))]
38821#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38822impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for MemberExpr {
38823    #[doc = "Calls [VisitAstPath`::visit_member_expr`] with `self`."]
38824    fn visit_with_ast_path<'ast: 'r, 'r>(
38825        &'ast self,
38826        visitor: &mut V,
38827        __ast_path: &mut AstNodePath<'r>,
38828    ) {
38829        <V as VisitAstPath>::visit_member_expr(visitor, self, __ast_path)
38830    }
38831
38832    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38833        &'ast self,
38834        visitor: &mut V,
38835        __ast_path: &mut AstNodePath<'r>,
38836    ) {
38837        match self {
38838            MemberExpr { span, obj, prop } => {
38839                {
38840                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MemberExpr(
38841                        self,
38842                        self::fields::MemberExprField::Span,
38843                    ));
38844                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38845                        span,
38846                        visitor,
38847                        &mut *__ast_path,
38848                    )
38849                };
38850                {
38851                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MemberExpr(
38852                        self,
38853                        self::fields::MemberExprField::Obj,
38854                    ));
38855                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
38856                        obj,
38857                        visitor,
38858                        &mut *__ast_path,
38859                    )
38860                };
38861                {
38862                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MemberExpr(
38863                        self,
38864                        self::fields::MemberExprField::Prop,
38865                    ));
38866                    <MemberProp as VisitWithAstPath<V>>::visit_with_ast_path(
38867                        prop,
38868                        visitor,
38869                        &mut *__ast_path,
38870                    )
38871                };
38872            }
38873        }
38874    }
38875}
38876#[cfg(any(docsrs, feature = "path"))]
38877#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38878impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for MemberProp {
38879    #[doc = "Calls [VisitAstPath`::visit_member_prop`] with `self`."]
38880    fn visit_with_ast_path<'ast: 'r, 'r>(
38881        &'ast self,
38882        visitor: &mut V,
38883        __ast_path: &mut AstNodePath<'r>,
38884    ) {
38885        <V as VisitAstPath>::visit_member_prop(visitor, self, __ast_path)
38886    }
38887
38888    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38889        &'ast self,
38890        visitor: &mut V,
38891        __ast_path: &mut AstNodePath<'r>,
38892    ) {
38893        match self {
38894            MemberProp::Ident { 0: _field_0 } => {
38895                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MemberProp(
38896                    self,
38897                    self::fields::MemberPropField::Ident,
38898                ));
38899                <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
38900                    _field_0,
38901                    visitor,
38902                    &mut *__ast_path,
38903                );
38904            }
38905            MemberProp::PrivateName { 0: _field_0 } => {
38906                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MemberProp(
38907                    self,
38908                    self::fields::MemberPropField::PrivateName,
38909                ));
38910                <PrivateName as VisitWithAstPath<V>>::visit_with_ast_path(
38911                    _field_0,
38912                    visitor,
38913                    &mut *__ast_path,
38914                );
38915            }
38916            MemberProp::Computed { 0: _field_0 } => {
38917                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MemberProp(
38918                    self,
38919                    self::fields::MemberPropField::Computed,
38920                ));
38921                <ComputedPropName as VisitWithAstPath<V>>::visit_with_ast_path(
38922                    _field_0,
38923                    visitor,
38924                    &mut *__ast_path,
38925                );
38926            }
38927        }
38928    }
38929}
38930#[cfg(any(docsrs, feature = "path"))]
38931#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38932impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for MetaPropExpr {
38933    #[doc = "Calls [VisitAstPath`::visit_meta_prop_expr`] with `self`."]
38934    fn visit_with_ast_path<'ast: 'r, 'r>(
38935        &'ast self,
38936        visitor: &mut V,
38937        __ast_path: &mut AstNodePath<'r>,
38938    ) {
38939        <V as VisitAstPath>::visit_meta_prop_expr(visitor, self, __ast_path)
38940    }
38941
38942    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38943        &'ast self,
38944        visitor: &mut V,
38945        __ast_path: &mut AstNodePath<'r>,
38946    ) {
38947        match self {
38948            MetaPropExpr { span, kind } => {
38949                {
38950                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MetaPropExpr(
38951                        self,
38952                        self::fields::MetaPropExprField::Span,
38953                    ));
38954                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38955                        span,
38956                        visitor,
38957                        &mut *__ast_path,
38958                    )
38959                };
38960                {
38961                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MetaPropExpr(
38962                        self,
38963                        self::fields::MetaPropExprField::Kind,
38964                    ));
38965                    <MetaPropKind as VisitWithAstPath<V>>::visit_with_ast_path(
38966                        kind,
38967                        visitor,
38968                        &mut *__ast_path,
38969                    )
38970                };
38971            }
38972        }
38973    }
38974}
38975#[cfg(any(docsrs, feature = "path"))]
38976#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38977impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for MetaPropKind {
38978    #[doc = "Calls [VisitAstPath`::visit_meta_prop_kind`] with `self`."]
38979    fn visit_with_ast_path<'ast: 'r, 'r>(
38980        &'ast self,
38981        visitor: &mut V,
38982        __ast_path: &mut AstNodePath<'r>,
38983    ) {
38984        <V as VisitAstPath>::visit_meta_prop_kind(visitor, self, __ast_path)
38985    }
38986
38987    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38988        &'ast self,
38989        visitor: &mut V,
38990        __ast_path: &mut AstNodePath<'r>,
38991    ) {
38992        match self {
38993            MetaPropKind::NewTarget => {}
38994            MetaPropKind::ImportMeta => {}
38995        }
38996    }
38997}
38998#[cfg(any(docsrs, feature = "path"))]
38999#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39000impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for MethodKind {
39001    #[doc = "Calls [VisitAstPath`::visit_method_kind`] with `self`."]
39002    fn visit_with_ast_path<'ast: 'r, 'r>(
39003        &'ast self,
39004        visitor: &mut V,
39005        __ast_path: &mut AstNodePath<'r>,
39006    ) {
39007        <V as VisitAstPath>::visit_method_kind(visitor, self, __ast_path)
39008    }
39009
39010    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39011        &'ast self,
39012        visitor: &mut V,
39013        __ast_path: &mut AstNodePath<'r>,
39014    ) {
39015        match self {
39016            MethodKind::Method => {}
39017            MethodKind::Getter => {}
39018            MethodKind::Setter => {}
39019        }
39020    }
39021}
39022#[cfg(any(docsrs, feature = "path"))]
39023#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39024impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for MethodProp {
39025    #[doc = "Calls [VisitAstPath`::visit_method_prop`] with `self`."]
39026    fn visit_with_ast_path<'ast: 'r, 'r>(
39027        &'ast self,
39028        visitor: &mut V,
39029        __ast_path: &mut AstNodePath<'r>,
39030    ) {
39031        <V as VisitAstPath>::visit_method_prop(visitor, self, __ast_path)
39032    }
39033
39034    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39035        &'ast self,
39036        visitor: &mut V,
39037        __ast_path: &mut AstNodePath<'r>,
39038    ) {
39039        match self {
39040            MethodProp { key, function } => {
39041                {
39042                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MethodProp(
39043                        self,
39044                        self::fields::MethodPropField::Key,
39045                    ));
39046                    <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
39047                        key,
39048                        visitor,
39049                        &mut *__ast_path,
39050                    )
39051                };
39052                {
39053                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MethodProp(
39054                        self,
39055                        self::fields::MethodPropField::Function,
39056                    ));
39057                    <Box<Function> as VisitWithAstPath<V>>::visit_with_ast_path(
39058                        function,
39059                        visitor,
39060                        &mut *__ast_path,
39061                    )
39062                };
39063            }
39064        }
39065    }
39066}
39067#[cfg(any(docsrs, feature = "path"))]
39068#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39069impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Module {
39070    #[doc = "Calls [VisitAstPath`::visit_module`] with `self`."]
39071    fn visit_with_ast_path<'ast: 'r, 'r>(
39072        &'ast self,
39073        visitor: &mut V,
39074        __ast_path: &mut AstNodePath<'r>,
39075    ) {
39076        <V as VisitAstPath>::visit_module(visitor, self, __ast_path)
39077    }
39078
39079    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39080        &'ast self,
39081        visitor: &mut V,
39082        __ast_path: &mut AstNodePath<'r>,
39083    ) {
39084        match self {
39085            Module {
39086                span,
39087                body,
39088                shebang,
39089            } => {
39090                {
39091                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Module(
39092                        self,
39093                        self::fields::ModuleField::Span,
39094                    ));
39095                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39096                        span,
39097                        visitor,
39098                        &mut *__ast_path,
39099                    )
39100                };
39101                {
39102                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Module(
39103                        self,
39104                        self::fields::ModuleField::Body(usize::MAX),
39105                    ));
39106                    <Vec<ModuleItem> as VisitWithAstPath<V>>::visit_with_ast_path(
39107                        body,
39108                        visitor,
39109                        &mut *__ast_path,
39110                    )
39111                };
39112                {
39113                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Module(
39114                        self,
39115                        self::fields::ModuleField::Shebang,
39116                    ));
39117                    <Option<swc_atoms::Atom> as VisitWithAstPath<V>>::visit_with_ast_path(
39118                        shebang,
39119                        visitor,
39120                        &mut *__ast_path,
39121                    )
39122                };
39123            }
39124        }
39125    }
39126}
39127#[cfg(any(docsrs, feature = "path"))]
39128#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39129impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ModuleDecl {
39130    #[doc = "Calls [VisitAstPath`::visit_module_decl`] with `self`."]
39131    fn visit_with_ast_path<'ast: 'r, 'r>(
39132        &'ast self,
39133        visitor: &mut V,
39134        __ast_path: &mut AstNodePath<'r>,
39135    ) {
39136        <V as VisitAstPath>::visit_module_decl(visitor, self, __ast_path)
39137    }
39138
39139    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39140        &'ast self,
39141        visitor: &mut V,
39142        __ast_path: &mut AstNodePath<'r>,
39143    ) {
39144        match self {
39145            ModuleDecl::Import { 0: _field_0 } => {
39146                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
39147                    self,
39148                    self::fields::ModuleDeclField::Import,
39149                ));
39150                <ImportDecl as VisitWithAstPath<V>>::visit_with_ast_path(
39151                    _field_0,
39152                    visitor,
39153                    &mut *__ast_path,
39154                );
39155            }
39156            ModuleDecl::ExportDecl { 0: _field_0 } => {
39157                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
39158                    self,
39159                    self::fields::ModuleDeclField::ExportDecl,
39160                ));
39161                <ExportDecl as VisitWithAstPath<V>>::visit_with_ast_path(
39162                    _field_0,
39163                    visitor,
39164                    &mut *__ast_path,
39165                );
39166            }
39167            ModuleDecl::ExportNamed { 0: _field_0 } => {
39168                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
39169                    self,
39170                    self::fields::ModuleDeclField::ExportNamed,
39171                ));
39172                <NamedExport as VisitWithAstPath<V>>::visit_with_ast_path(
39173                    _field_0,
39174                    visitor,
39175                    &mut *__ast_path,
39176                );
39177            }
39178            ModuleDecl::ExportDefaultDecl { 0: _field_0 } => {
39179                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
39180                    self,
39181                    self::fields::ModuleDeclField::ExportDefaultDecl,
39182                ));
39183                <ExportDefaultDecl as VisitWithAstPath<V>>::visit_with_ast_path(
39184                    _field_0,
39185                    visitor,
39186                    &mut *__ast_path,
39187                );
39188            }
39189            ModuleDecl::ExportDefaultExpr { 0: _field_0 } => {
39190                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
39191                    self,
39192                    self::fields::ModuleDeclField::ExportDefaultExpr,
39193                ));
39194                <ExportDefaultExpr as VisitWithAstPath<V>>::visit_with_ast_path(
39195                    _field_0,
39196                    visitor,
39197                    &mut *__ast_path,
39198                );
39199            }
39200            ModuleDecl::ExportAll { 0: _field_0 } => {
39201                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
39202                    self,
39203                    self::fields::ModuleDeclField::ExportAll,
39204                ));
39205                <ExportAll as VisitWithAstPath<V>>::visit_with_ast_path(
39206                    _field_0,
39207                    visitor,
39208                    &mut *__ast_path,
39209                );
39210            }
39211            ModuleDecl::TsImportEquals { 0: _field_0 } => {
39212                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
39213                    self,
39214                    self::fields::ModuleDeclField::TsImportEquals,
39215                ));
39216                <Box<TsImportEqualsDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
39217                    _field_0,
39218                    visitor,
39219                    &mut *__ast_path,
39220                );
39221            }
39222            ModuleDecl::TsExportAssignment { 0: _field_0 } => {
39223                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
39224                    self,
39225                    self::fields::ModuleDeclField::TsExportAssignment,
39226                ));
39227                <TsExportAssignment as VisitWithAstPath<V>>::visit_with_ast_path(
39228                    _field_0,
39229                    visitor,
39230                    &mut *__ast_path,
39231                );
39232            }
39233            ModuleDecl::TsNamespaceExport { 0: _field_0 } => {
39234                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
39235                    self,
39236                    self::fields::ModuleDeclField::TsNamespaceExport,
39237                ));
39238                <TsNamespaceExportDecl as VisitWithAstPath<V>>::visit_with_ast_path(
39239                    _field_0,
39240                    visitor,
39241                    &mut *__ast_path,
39242                );
39243            }
39244        }
39245    }
39246}
39247#[cfg(any(docsrs, feature = "path"))]
39248#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39249impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ModuleExportName {
39250    #[doc = "Calls [VisitAstPath`::visit_module_export_name`] with `self`."]
39251    fn visit_with_ast_path<'ast: 'r, 'r>(
39252        &'ast self,
39253        visitor: &mut V,
39254        __ast_path: &mut AstNodePath<'r>,
39255    ) {
39256        <V as VisitAstPath>::visit_module_export_name(visitor, self, __ast_path)
39257    }
39258
39259    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39260        &'ast self,
39261        visitor: &mut V,
39262        __ast_path: &mut AstNodePath<'r>,
39263    ) {
39264        match self {
39265            ModuleExportName::Ident { 0: _field_0 } => {
39266                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleExportName(
39267                    self,
39268                    self::fields::ModuleExportNameField::Ident,
39269                ));
39270                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
39271                    _field_0,
39272                    visitor,
39273                    &mut *__ast_path,
39274                );
39275            }
39276            ModuleExportName::Str { 0: _field_0 } => {
39277                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleExportName(
39278                    self,
39279                    self::fields::ModuleExportNameField::Str,
39280                ));
39281                <Str as VisitWithAstPath<V>>::visit_with_ast_path(
39282                    _field_0,
39283                    visitor,
39284                    &mut *__ast_path,
39285                );
39286            }
39287        }
39288    }
39289}
39290#[cfg(any(docsrs, feature = "path"))]
39291#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39292impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ModuleItem {
39293    #[doc = "Calls [VisitAstPath`::visit_module_item`] with `self`."]
39294    fn visit_with_ast_path<'ast: 'r, 'r>(
39295        &'ast self,
39296        visitor: &mut V,
39297        __ast_path: &mut AstNodePath<'r>,
39298    ) {
39299        <V as VisitAstPath>::visit_module_item(visitor, self, __ast_path)
39300    }
39301
39302    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39303        &'ast self,
39304        visitor: &mut V,
39305        __ast_path: &mut AstNodePath<'r>,
39306    ) {
39307        match self {
39308            ModuleItem::ModuleDecl { 0: _field_0 } => {
39309                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleItem(
39310                    self,
39311                    self::fields::ModuleItemField::ModuleDecl,
39312                ));
39313                <ModuleDecl as VisitWithAstPath<V>>::visit_with_ast_path(
39314                    _field_0,
39315                    visitor,
39316                    &mut *__ast_path,
39317                );
39318            }
39319            ModuleItem::Stmt { 0: _field_0 } => {
39320                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleItem(
39321                    self,
39322                    self::fields::ModuleItemField::Stmt,
39323                ));
39324                <Stmt as VisitWithAstPath<V>>::visit_with_ast_path(
39325                    _field_0,
39326                    visitor,
39327                    &mut *__ast_path,
39328                );
39329            }
39330        }
39331    }
39332}
39333#[cfg(any(docsrs, feature = "path"))]
39334#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39335impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for NamedExport {
39336    #[doc = "Calls [VisitAstPath`::visit_named_export`] with `self`."]
39337    fn visit_with_ast_path<'ast: 'r, 'r>(
39338        &'ast self,
39339        visitor: &mut V,
39340        __ast_path: &mut AstNodePath<'r>,
39341    ) {
39342        <V as VisitAstPath>::visit_named_export(visitor, self, __ast_path)
39343    }
39344
39345    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39346        &'ast self,
39347        visitor: &mut V,
39348        __ast_path: &mut AstNodePath<'r>,
39349    ) {
39350        match self {
39351            NamedExport {
39352                span,
39353                specifiers,
39354                src,
39355                type_only,
39356                with,
39357            } => {
39358                {
39359                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NamedExport(
39360                        self,
39361                        self::fields::NamedExportField::Span,
39362                    ));
39363                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39364                        span,
39365                        visitor,
39366                        &mut *__ast_path,
39367                    )
39368                };
39369                {
39370                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NamedExport(
39371                        self,
39372                        self::fields::NamedExportField::Specifiers(usize::MAX),
39373                    ));
39374                    <Vec<ExportSpecifier> as VisitWithAstPath<V>>::visit_with_ast_path(
39375                        specifiers,
39376                        visitor,
39377                        &mut *__ast_path,
39378                    )
39379                };
39380                {
39381                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NamedExport(
39382                        self,
39383                        self::fields::NamedExportField::Src,
39384                    ));
39385                    <Option<Box<Str>> as VisitWithAstPath<V>>::visit_with_ast_path(
39386                        src,
39387                        visitor,
39388                        &mut *__ast_path,
39389                    )
39390                };
39391                {
39392                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NamedExport(
39393                        self,
39394                        self::fields::NamedExportField::With,
39395                    ));
39396                    <Option<Box<ObjectLit>> as VisitWithAstPath<V>>::visit_with_ast_path(
39397                        with,
39398                        visitor,
39399                        &mut *__ast_path,
39400                    )
39401                };
39402            }
39403        }
39404    }
39405}
39406#[cfg(any(docsrs, feature = "path"))]
39407#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39408impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for NewExpr {
39409    #[doc = "Calls [VisitAstPath`::visit_new_expr`] with `self`."]
39410    fn visit_with_ast_path<'ast: 'r, 'r>(
39411        &'ast self,
39412        visitor: &mut V,
39413        __ast_path: &mut AstNodePath<'r>,
39414    ) {
39415        <V as VisitAstPath>::visit_new_expr(visitor, self, __ast_path)
39416    }
39417
39418    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39419        &'ast self,
39420        visitor: &mut V,
39421        __ast_path: &mut AstNodePath<'r>,
39422    ) {
39423        match self {
39424            NewExpr {
39425                span,
39426                ctxt,
39427                callee,
39428                args,
39429                type_args,
39430            } => {
39431                {
39432                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NewExpr(
39433                        self,
39434                        self::fields::NewExprField::Span,
39435                    ));
39436                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39437                        span,
39438                        visitor,
39439                        &mut *__ast_path,
39440                    )
39441                };
39442                {
39443                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NewExpr(
39444                        self,
39445                        self::fields::NewExprField::Ctxt,
39446                    ));
39447                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
39448                        ctxt,
39449                        visitor,
39450                        &mut *__ast_path,
39451                    )
39452                };
39453                {
39454                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NewExpr(
39455                        self,
39456                        self::fields::NewExprField::Callee,
39457                    ));
39458                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
39459                        callee,
39460                        visitor,
39461                        &mut *__ast_path,
39462                    )
39463                };
39464                {
39465                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NewExpr(
39466                        self,
39467                        self::fields::NewExprField::Args(usize::MAX),
39468                    ));
39469                    <Option<Vec<ExprOrSpread>> as VisitWithAstPath<V>>::visit_with_ast_path(
39470                        args,
39471                        visitor,
39472                        &mut *__ast_path,
39473                    )
39474                };
39475                {
39476                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NewExpr(
39477                        self,
39478                        self::fields::NewExprField::TypeArgs,
39479                    ));
39480                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_args , visitor , & mut * __ast_path)
39481                };
39482            }
39483        }
39484    }
39485}
39486#[cfg(any(docsrs, feature = "path"))]
39487#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39488impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Null {
39489    #[doc = "Calls [VisitAstPath`::visit_null`] with `self`."]
39490    fn visit_with_ast_path<'ast: 'r, 'r>(
39491        &'ast self,
39492        visitor: &mut V,
39493        __ast_path: &mut AstNodePath<'r>,
39494    ) {
39495        <V as VisitAstPath>::visit_null(visitor, self, __ast_path)
39496    }
39497
39498    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39499        &'ast self,
39500        visitor: &mut V,
39501        __ast_path: &mut AstNodePath<'r>,
39502    ) {
39503        match self {
39504            Null { span } => {
39505                {
39506                    let mut __ast_path = __ast_path
39507                        .with_guard(AstParentNodeRef::Null(self, self::fields::NullField::Span));
39508                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39509                        span,
39510                        visitor,
39511                        &mut *__ast_path,
39512                    )
39513                };
39514            }
39515        }
39516    }
39517}
39518#[cfg(any(docsrs, feature = "path"))]
39519#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39520impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Number {
39521    #[doc = "Calls [VisitAstPath`::visit_number`] with `self`."]
39522    fn visit_with_ast_path<'ast: 'r, 'r>(
39523        &'ast self,
39524        visitor: &mut V,
39525        __ast_path: &mut AstNodePath<'r>,
39526    ) {
39527        <V as VisitAstPath>::visit_number(visitor, self, __ast_path)
39528    }
39529
39530    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39531        &'ast self,
39532        visitor: &mut V,
39533        __ast_path: &mut AstNodePath<'r>,
39534    ) {
39535        match self {
39536            Number { span, value, raw } => {
39537                {
39538                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Number(
39539                        self,
39540                        self::fields::NumberField::Span,
39541                    ));
39542                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39543                        span,
39544                        visitor,
39545                        &mut *__ast_path,
39546                    )
39547                };
39548                {
39549                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Number(
39550                        self,
39551                        self::fields::NumberField::Raw,
39552                    ));
39553                    <Option<swc_atoms::Atom> as VisitWithAstPath<V>>::visit_with_ast_path(
39554                        raw,
39555                        visitor,
39556                        &mut *__ast_path,
39557                    )
39558                };
39559            }
39560        }
39561    }
39562}
39563#[cfg(any(docsrs, feature = "path"))]
39564#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39565impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ObjectLit {
39566    #[doc = "Calls [VisitAstPath`::visit_object_lit`] with `self`."]
39567    fn visit_with_ast_path<'ast: 'r, 'r>(
39568        &'ast self,
39569        visitor: &mut V,
39570        __ast_path: &mut AstNodePath<'r>,
39571    ) {
39572        <V as VisitAstPath>::visit_object_lit(visitor, self, __ast_path)
39573    }
39574
39575    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39576        &'ast self,
39577        visitor: &mut V,
39578        __ast_path: &mut AstNodePath<'r>,
39579    ) {
39580        match self {
39581            ObjectLit { span, props } => {
39582                {
39583                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ObjectLit(
39584                        self,
39585                        self::fields::ObjectLitField::Span,
39586                    ));
39587                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39588                        span,
39589                        visitor,
39590                        &mut *__ast_path,
39591                    )
39592                };
39593                {
39594                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ObjectLit(
39595                        self,
39596                        self::fields::ObjectLitField::Props(usize::MAX),
39597                    ));
39598                    <Vec<PropOrSpread> as VisitWithAstPath<V>>::visit_with_ast_path(
39599                        props,
39600                        visitor,
39601                        &mut *__ast_path,
39602                    )
39603                };
39604            }
39605        }
39606    }
39607}
39608#[cfg(any(docsrs, feature = "path"))]
39609#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39610impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ObjectPat {
39611    #[doc = "Calls [VisitAstPath`::visit_object_pat`] with `self`."]
39612    fn visit_with_ast_path<'ast: 'r, 'r>(
39613        &'ast self,
39614        visitor: &mut V,
39615        __ast_path: &mut AstNodePath<'r>,
39616    ) {
39617        <V as VisitAstPath>::visit_object_pat(visitor, self, __ast_path)
39618    }
39619
39620    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39621        &'ast self,
39622        visitor: &mut V,
39623        __ast_path: &mut AstNodePath<'r>,
39624    ) {
39625        match self {
39626            ObjectPat {
39627                span,
39628                props,
39629                optional,
39630                type_ann,
39631            } => {
39632                {
39633                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ObjectPat(
39634                        self,
39635                        self::fields::ObjectPatField::Span,
39636                    ));
39637                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39638                        span,
39639                        visitor,
39640                        &mut *__ast_path,
39641                    )
39642                };
39643                {
39644                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ObjectPat(
39645                        self,
39646                        self::fields::ObjectPatField::Props(usize::MAX),
39647                    ));
39648                    <Vec<ObjectPatProp> as VisitWithAstPath<V>>::visit_with_ast_path(
39649                        props,
39650                        visitor,
39651                        &mut *__ast_path,
39652                    )
39653                };
39654                {
39655                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ObjectPat(
39656                        self,
39657                        self::fields::ObjectPatField::TypeAnn,
39658                    ));
39659                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
39660                        type_ann,
39661                        visitor,
39662                        &mut *__ast_path,
39663                    )
39664                };
39665            }
39666        }
39667    }
39668}
39669#[cfg(any(docsrs, feature = "path"))]
39670#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39671impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ObjectPatProp {
39672    #[doc = "Calls [VisitAstPath`::visit_object_pat_prop`] with `self`."]
39673    fn visit_with_ast_path<'ast: 'r, 'r>(
39674        &'ast self,
39675        visitor: &mut V,
39676        __ast_path: &mut AstNodePath<'r>,
39677    ) {
39678        <V as VisitAstPath>::visit_object_pat_prop(visitor, self, __ast_path)
39679    }
39680
39681    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39682        &'ast self,
39683        visitor: &mut V,
39684        __ast_path: &mut AstNodePath<'r>,
39685    ) {
39686        match self {
39687            ObjectPatProp::KeyValue { 0: _field_0 } => {
39688                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ObjectPatProp(
39689                    self,
39690                    self::fields::ObjectPatPropField::KeyValue,
39691                ));
39692                <KeyValuePatProp as VisitWithAstPath<V>>::visit_with_ast_path(
39693                    _field_0,
39694                    visitor,
39695                    &mut *__ast_path,
39696                );
39697            }
39698            ObjectPatProp::Assign { 0: _field_0 } => {
39699                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ObjectPatProp(
39700                    self,
39701                    self::fields::ObjectPatPropField::Assign,
39702                ));
39703                <AssignPatProp as VisitWithAstPath<V>>::visit_with_ast_path(
39704                    _field_0,
39705                    visitor,
39706                    &mut *__ast_path,
39707                );
39708            }
39709            ObjectPatProp::Rest { 0: _field_0 } => {
39710                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ObjectPatProp(
39711                    self,
39712                    self::fields::ObjectPatPropField::Rest,
39713                ));
39714                <RestPat as VisitWithAstPath<V>>::visit_with_ast_path(
39715                    _field_0,
39716                    visitor,
39717                    &mut *__ast_path,
39718                );
39719            }
39720        }
39721    }
39722}
39723#[cfg(any(docsrs, feature = "path"))]
39724#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39725impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for OptCall {
39726    #[doc = "Calls [VisitAstPath`::visit_opt_call`] with `self`."]
39727    fn visit_with_ast_path<'ast: 'r, 'r>(
39728        &'ast self,
39729        visitor: &mut V,
39730        __ast_path: &mut AstNodePath<'r>,
39731    ) {
39732        <V as VisitAstPath>::visit_opt_call(visitor, self, __ast_path)
39733    }
39734
39735    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39736        &'ast self,
39737        visitor: &mut V,
39738        __ast_path: &mut AstNodePath<'r>,
39739    ) {
39740        match self {
39741            OptCall {
39742                span,
39743                ctxt,
39744                callee,
39745                args,
39746                type_args,
39747            } => {
39748                {
39749                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptCall(
39750                        self,
39751                        self::fields::OptCallField::Span,
39752                    ));
39753                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39754                        span,
39755                        visitor,
39756                        &mut *__ast_path,
39757                    )
39758                };
39759                {
39760                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptCall(
39761                        self,
39762                        self::fields::OptCallField::Ctxt,
39763                    ));
39764                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
39765                        ctxt,
39766                        visitor,
39767                        &mut *__ast_path,
39768                    )
39769                };
39770                {
39771                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptCall(
39772                        self,
39773                        self::fields::OptCallField::Callee,
39774                    ));
39775                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
39776                        callee,
39777                        visitor,
39778                        &mut *__ast_path,
39779                    )
39780                };
39781                {
39782                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptCall(
39783                        self,
39784                        self::fields::OptCallField::Args(usize::MAX),
39785                    ));
39786                    <Vec<ExprOrSpread> as VisitWithAstPath<V>>::visit_with_ast_path(
39787                        args,
39788                        visitor,
39789                        &mut *__ast_path,
39790                    )
39791                };
39792                {
39793                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptCall(
39794                        self,
39795                        self::fields::OptCallField::TypeArgs,
39796                    ));
39797                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_args , visitor , & mut * __ast_path)
39798                };
39799            }
39800        }
39801    }
39802}
39803#[cfg(any(docsrs, feature = "path"))]
39804#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39805impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for OptChainBase {
39806    #[doc = "Calls [VisitAstPath`::visit_opt_chain_base`] with `self`."]
39807    fn visit_with_ast_path<'ast: 'r, 'r>(
39808        &'ast self,
39809        visitor: &mut V,
39810        __ast_path: &mut AstNodePath<'r>,
39811    ) {
39812        <V as VisitAstPath>::visit_opt_chain_base(visitor, self, __ast_path)
39813    }
39814
39815    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39816        &'ast self,
39817        visitor: &mut V,
39818        __ast_path: &mut AstNodePath<'r>,
39819    ) {
39820        match self {
39821            OptChainBase::Member { 0: _field_0 } => {
39822                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptChainBase(
39823                    self,
39824                    self::fields::OptChainBaseField::Member,
39825                ));
39826                <MemberExpr as VisitWithAstPath<V>>::visit_with_ast_path(
39827                    _field_0,
39828                    visitor,
39829                    &mut *__ast_path,
39830                );
39831            }
39832            OptChainBase::Call { 0: _field_0 } => {
39833                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptChainBase(
39834                    self,
39835                    self::fields::OptChainBaseField::Call,
39836                ));
39837                <OptCall as VisitWithAstPath<V>>::visit_with_ast_path(
39838                    _field_0,
39839                    visitor,
39840                    &mut *__ast_path,
39841                );
39842            }
39843        }
39844    }
39845}
39846#[cfg(any(docsrs, feature = "path"))]
39847#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39848impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for OptChainExpr {
39849    #[doc = "Calls [VisitAstPath`::visit_opt_chain_expr`] with `self`."]
39850    fn visit_with_ast_path<'ast: 'r, 'r>(
39851        &'ast self,
39852        visitor: &mut V,
39853        __ast_path: &mut AstNodePath<'r>,
39854    ) {
39855        <V as VisitAstPath>::visit_opt_chain_expr(visitor, self, __ast_path)
39856    }
39857
39858    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39859        &'ast self,
39860        visitor: &mut V,
39861        __ast_path: &mut AstNodePath<'r>,
39862    ) {
39863        match self {
39864            OptChainExpr {
39865                span,
39866                optional,
39867                base,
39868            } => {
39869                {
39870                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptChainExpr(
39871                        self,
39872                        self::fields::OptChainExprField::Span,
39873                    ));
39874                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39875                        span,
39876                        visitor,
39877                        &mut *__ast_path,
39878                    )
39879                };
39880                {
39881                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptChainExpr(
39882                        self,
39883                        self::fields::OptChainExprField::Base,
39884                    ));
39885                    <Box<OptChainBase> as VisitWithAstPath<V>>::visit_with_ast_path(
39886                        base,
39887                        visitor,
39888                        &mut *__ast_path,
39889                    )
39890                };
39891            }
39892        }
39893    }
39894}
39895#[cfg(any(docsrs, feature = "path"))]
39896#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39897impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Param {
39898    #[doc = "Calls [VisitAstPath`::visit_param`] with `self`."]
39899    fn visit_with_ast_path<'ast: 'r, 'r>(
39900        &'ast self,
39901        visitor: &mut V,
39902        __ast_path: &mut AstNodePath<'r>,
39903    ) {
39904        <V as VisitAstPath>::visit_param(visitor, self, __ast_path)
39905    }
39906
39907    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39908        &'ast self,
39909        visitor: &mut V,
39910        __ast_path: &mut AstNodePath<'r>,
39911    ) {
39912        match self {
39913            Param {
39914                span,
39915                decorators,
39916                pat,
39917            } => {
39918                {
39919                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Param(
39920                        self,
39921                        self::fields::ParamField::Span,
39922                    ));
39923                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39924                        span,
39925                        visitor,
39926                        &mut *__ast_path,
39927                    )
39928                };
39929                {
39930                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Param(
39931                        self,
39932                        self::fields::ParamField::Decorators(usize::MAX),
39933                    ));
39934                    <Vec<Decorator> as VisitWithAstPath<V>>::visit_with_ast_path(
39935                        decorators,
39936                        visitor,
39937                        &mut *__ast_path,
39938                    )
39939                };
39940                {
39941                    let mut __ast_path = __ast_path
39942                        .with_guard(AstParentNodeRef::Param(self, self::fields::ParamField::Pat));
39943                    <Pat as VisitWithAstPath<V>>::visit_with_ast_path(
39944                        pat,
39945                        visitor,
39946                        &mut *__ast_path,
39947                    )
39948                };
39949            }
39950        }
39951    }
39952}
39953#[cfg(any(docsrs, feature = "path"))]
39954#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39955impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ParamOrTsParamProp {
39956    #[doc = "Calls [VisitAstPath`::visit_param_or_ts_param_prop`] with `self`."]
39957    fn visit_with_ast_path<'ast: 'r, 'r>(
39958        &'ast self,
39959        visitor: &mut V,
39960        __ast_path: &mut AstNodePath<'r>,
39961    ) {
39962        <V as VisitAstPath>::visit_param_or_ts_param_prop(visitor, self, __ast_path)
39963    }
39964
39965    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39966        &'ast self,
39967        visitor: &mut V,
39968        __ast_path: &mut AstNodePath<'r>,
39969    ) {
39970        match self {
39971            ParamOrTsParamProp::TsParamProp { 0: _field_0 } => {
39972                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ParamOrTsParamProp(
39973                    self,
39974                    self::fields::ParamOrTsParamPropField::TsParamProp,
39975                ));
39976                <TsParamProp as VisitWithAstPath<V>>::visit_with_ast_path(
39977                    _field_0,
39978                    visitor,
39979                    &mut *__ast_path,
39980                );
39981            }
39982            ParamOrTsParamProp::Param { 0: _field_0 } => {
39983                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ParamOrTsParamProp(
39984                    self,
39985                    self::fields::ParamOrTsParamPropField::Param,
39986                ));
39987                <Param as VisitWithAstPath<V>>::visit_with_ast_path(
39988                    _field_0,
39989                    visitor,
39990                    &mut *__ast_path,
39991                );
39992            }
39993        }
39994    }
39995}
39996#[cfg(any(docsrs, feature = "path"))]
39997#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39998impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ParenExpr {
39999    #[doc = "Calls [VisitAstPath`::visit_paren_expr`] with `self`."]
40000    fn visit_with_ast_path<'ast: 'r, 'r>(
40001        &'ast self,
40002        visitor: &mut V,
40003        __ast_path: &mut AstNodePath<'r>,
40004    ) {
40005        <V as VisitAstPath>::visit_paren_expr(visitor, self, __ast_path)
40006    }
40007
40008    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40009        &'ast self,
40010        visitor: &mut V,
40011        __ast_path: &mut AstNodePath<'r>,
40012    ) {
40013        match self {
40014            ParenExpr { span, expr } => {
40015                {
40016                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ParenExpr(
40017                        self,
40018                        self::fields::ParenExprField::Span,
40019                    ));
40020                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40021                        span,
40022                        visitor,
40023                        &mut *__ast_path,
40024                    )
40025                };
40026                {
40027                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ParenExpr(
40028                        self,
40029                        self::fields::ParenExprField::Expr,
40030                    ));
40031                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
40032                        expr,
40033                        visitor,
40034                        &mut *__ast_path,
40035                    )
40036                };
40037            }
40038        }
40039    }
40040}
40041#[cfg(any(docsrs, feature = "path"))]
40042#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40043impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Pat {
40044    #[doc = "Calls [VisitAstPath`::visit_pat`] with `self`."]
40045    fn visit_with_ast_path<'ast: 'r, 'r>(
40046        &'ast self,
40047        visitor: &mut V,
40048        __ast_path: &mut AstNodePath<'r>,
40049    ) {
40050        <V as VisitAstPath>::visit_pat(visitor, self, __ast_path)
40051    }
40052
40053    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40054        &'ast self,
40055        visitor: &mut V,
40056        __ast_path: &mut AstNodePath<'r>,
40057    ) {
40058        match self {
40059            Pat::Ident { 0: _field_0 } => {
40060                let mut __ast_path = __ast_path
40061                    .with_guard(AstParentNodeRef::Pat(self, self::fields::PatField::Ident));
40062                <BindingIdent as VisitWithAstPath<V>>::visit_with_ast_path(
40063                    _field_0,
40064                    visitor,
40065                    &mut *__ast_path,
40066                );
40067            }
40068            Pat::Array { 0: _field_0 } => {
40069                let mut __ast_path = __ast_path
40070                    .with_guard(AstParentNodeRef::Pat(self, self::fields::PatField::Array));
40071                <ArrayPat as VisitWithAstPath<V>>::visit_with_ast_path(
40072                    _field_0,
40073                    visitor,
40074                    &mut *__ast_path,
40075                );
40076            }
40077            Pat::Rest { 0: _field_0 } => {
40078                let mut __ast_path = __ast_path
40079                    .with_guard(AstParentNodeRef::Pat(self, self::fields::PatField::Rest));
40080                <RestPat as VisitWithAstPath<V>>::visit_with_ast_path(
40081                    _field_0,
40082                    visitor,
40083                    &mut *__ast_path,
40084                );
40085            }
40086            Pat::Object { 0: _field_0 } => {
40087                let mut __ast_path = __ast_path
40088                    .with_guard(AstParentNodeRef::Pat(self, self::fields::PatField::Object));
40089                <ObjectPat as VisitWithAstPath<V>>::visit_with_ast_path(
40090                    _field_0,
40091                    visitor,
40092                    &mut *__ast_path,
40093                );
40094            }
40095            Pat::Assign { 0: _field_0 } => {
40096                let mut __ast_path = __ast_path
40097                    .with_guard(AstParentNodeRef::Pat(self, self::fields::PatField::Assign));
40098                <AssignPat as VisitWithAstPath<V>>::visit_with_ast_path(
40099                    _field_0,
40100                    visitor,
40101                    &mut *__ast_path,
40102                );
40103            }
40104            Pat::Invalid { 0: _field_0 } => {
40105                let mut __ast_path = __ast_path
40106                    .with_guard(AstParentNodeRef::Pat(self, self::fields::PatField::Invalid));
40107                <Invalid as VisitWithAstPath<V>>::visit_with_ast_path(
40108                    _field_0,
40109                    visitor,
40110                    &mut *__ast_path,
40111                );
40112            }
40113            Pat::Expr { 0: _field_0 } => {
40114                let mut __ast_path = __ast_path
40115                    .with_guard(AstParentNodeRef::Pat(self, self::fields::PatField::Expr));
40116                <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
40117                    _field_0,
40118                    visitor,
40119                    &mut *__ast_path,
40120                );
40121            }
40122        }
40123    }
40124}
40125#[cfg(any(docsrs, feature = "path"))]
40126#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40127impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for PrivateMethod {
40128    #[doc = "Calls [VisitAstPath`::visit_private_method`] with `self`."]
40129    fn visit_with_ast_path<'ast: 'r, 'r>(
40130        &'ast self,
40131        visitor: &mut V,
40132        __ast_path: &mut AstNodePath<'r>,
40133    ) {
40134        <V as VisitAstPath>::visit_private_method(visitor, self, __ast_path)
40135    }
40136
40137    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40138        &'ast self,
40139        visitor: &mut V,
40140        __ast_path: &mut AstNodePath<'r>,
40141    ) {
40142        match self {
40143            PrivateMethod {
40144                span,
40145                key,
40146                function,
40147                kind,
40148                is_static,
40149                accessibility,
40150                is_abstract,
40151                is_optional,
40152                is_override,
40153            } => {
40154                {
40155                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateMethod(
40156                        self,
40157                        self::fields::PrivateMethodField::Span,
40158                    ));
40159                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40160                        span,
40161                        visitor,
40162                        &mut *__ast_path,
40163                    )
40164                };
40165                {
40166                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateMethod(
40167                        self,
40168                        self::fields::PrivateMethodField::Key,
40169                    ));
40170                    <PrivateName as VisitWithAstPath<V>>::visit_with_ast_path(
40171                        key,
40172                        visitor,
40173                        &mut *__ast_path,
40174                    )
40175                };
40176                {
40177                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateMethod(
40178                        self,
40179                        self::fields::PrivateMethodField::Function,
40180                    ));
40181                    <Box<Function> as VisitWithAstPath<V>>::visit_with_ast_path(
40182                        function,
40183                        visitor,
40184                        &mut *__ast_path,
40185                    )
40186                };
40187                {
40188                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateMethod(
40189                        self,
40190                        self::fields::PrivateMethodField::Kind,
40191                    ));
40192                    <MethodKind as VisitWithAstPath<V>>::visit_with_ast_path(
40193                        kind,
40194                        visitor,
40195                        &mut *__ast_path,
40196                    )
40197                };
40198                {
40199                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateMethod(
40200                        self,
40201                        self::fields::PrivateMethodField::Accessibility,
40202                    ));
40203                    <Option<Accessibility> as VisitWithAstPath<V>>::visit_with_ast_path(
40204                        accessibility,
40205                        visitor,
40206                        &mut *__ast_path,
40207                    )
40208                };
40209            }
40210        }
40211    }
40212}
40213#[cfg(any(docsrs, feature = "path"))]
40214#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40215impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for PrivateName {
40216    #[doc = "Calls [VisitAstPath`::visit_private_name`] with `self`."]
40217    fn visit_with_ast_path<'ast: 'r, 'r>(
40218        &'ast self,
40219        visitor: &mut V,
40220        __ast_path: &mut AstNodePath<'r>,
40221    ) {
40222        <V as VisitAstPath>::visit_private_name(visitor, self, __ast_path)
40223    }
40224
40225    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40226        &'ast self,
40227        visitor: &mut V,
40228        __ast_path: &mut AstNodePath<'r>,
40229    ) {
40230        match self {
40231            PrivateName { span, name } => {
40232                {
40233                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateName(
40234                        self,
40235                        self::fields::PrivateNameField::Span,
40236                    ));
40237                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40238                        span,
40239                        visitor,
40240                        &mut *__ast_path,
40241                    )
40242                };
40243                {
40244                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateName(
40245                        self,
40246                        self::fields::PrivateNameField::Name,
40247                    ));
40248                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
40249                        name,
40250                        visitor,
40251                        &mut *__ast_path,
40252                    )
40253                };
40254            }
40255        }
40256    }
40257}
40258#[cfg(any(docsrs, feature = "path"))]
40259#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40260impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for PrivateProp {
40261    #[doc = "Calls [VisitAstPath`::visit_private_prop`] with `self`."]
40262    fn visit_with_ast_path<'ast: 'r, 'r>(
40263        &'ast self,
40264        visitor: &mut V,
40265        __ast_path: &mut AstNodePath<'r>,
40266    ) {
40267        <V as VisitAstPath>::visit_private_prop(visitor, self, __ast_path)
40268    }
40269
40270    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40271        &'ast self,
40272        visitor: &mut V,
40273        __ast_path: &mut AstNodePath<'r>,
40274    ) {
40275        match self {
40276            PrivateProp {
40277                span,
40278                ctxt,
40279                key,
40280                value,
40281                type_ann,
40282                is_static,
40283                decorators,
40284                accessibility,
40285                is_optional,
40286                is_override,
40287                readonly,
40288                definite,
40289            } => {
40290                {
40291                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateProp(
40292                        self,
40293                        self::fields::PrivatePropField::Span,
40294                    ));
40295                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40296                        span,
40297                        visitor,
40298                        &mut *__ast_path,
40299                    )
40300                };
40301                {
40302                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateProp(
40303                        self,
40304                        self::fields::PrivatePropField::Ctxt,
40305                    ));
40306                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
40307                        ctxt,
40308                        visitor,
40309                        &mut *__ast_path,
40310                    )
40311                };
40312                {
40313                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateProp(
40314                        self,
40315                        self::fields::PrivatePropField::Key,
40316                    ));
40317                    <PrivateName as VisitWithAstPath<V>>::visit_with_ast_path(
40318                        key,
40319                        visitor,
40320                        &mut *__ast_path,
40321                    )
40322                };
40323                {
40324                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateProp(
40325                        self,
40326                        self::fields::PrivatePropField::Value,
40327                    ));
40328                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
40329                        value,
40330                        visitor,
40331                        &mut *__ast_path,
40332                    )
40333                };
40334                {
40335                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateProp(
40336                        self,
40337                        self::fields::PrivatePropField::TypeAnn,
40338                    ));
40339                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
40340                        type_ann,
40341                        visitor,
40342                        &mut *__ast_path,
40343                    )
40344                };
40345                {
40346                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateProp(
40347                        self,
40348                        self::fields::PrivatePropField::Decorators(usize::MAX),
40349                    ));
40350                    <Vec<Decorator> as VisitWithAstPath<V>>::visit_with_ast_path(
40351                        decorators,
40352                        visitor,
40353                        &mut *__ast_path,
40354                    )
40355                };
40356                {
40357                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateProp(
40358                        self,
40359                        self::fields::PrivatePropField::Accessibility,
40360                    ));
40361                    <Option<Accessibility> as VisitWithAstPath<V>>::visit_with_ast_path(
40362                        accessibility,
40363                        visitor,
40364                        &mut *__ast_path,
40365                    )
40366                };
40367            }
40368        }
40369    }
40370}
40371#[cfg(any(docsrs, feature = "path"))]
40372#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40373impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Program {
40374    #[doc = "Calls [VisitAstPath`::visit_program`] with `self`."]
40375    fn visit_with_ast_path<'ast: 'r, 'r>(
40376        &'ast self,
40377        visitor: &mut V,
40378        __ast_path: &mut AstNodePath<'r>,
40379    ) {
40380        <V as VisitAstPath>::visit_program(visitor, self, __ast_path)
40381    }
40382
40383    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40384        &'ast self,
40385        visitor: &mut V,
40386        __ast_path: &mut AstNodePath<'r>,
40387    ) {
40388        match self {
40389            Program::Module { 0: _field_0 } => {
40390                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Program(
40391                    self,
40392                    self::fields::ProgramField::Module,
40393                ));
40394                <Module as VisitWithAstPath<V>>::visit_with_ast_path(
40395                    _field_0,
40396                    visitor,
40397                    &mut *__ast_path,
40398                );
40399            }
40400            Program::Script { 0: _field_0 } => {
40401                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Program(
40402                    self,
40403                    self::fields::ProgramField::Script,
40404                ));
40405                <Script as VisitWithAstPath<V>>::visit_with_ast_path(
40406                    _field_0,
40407                    visitor,
40408                    &mut *__ast_path,
40409                );
40410            }
40411        }
40412    }
40413}
40414#[cfg(any(docsrs, feature = "path"))]
40415#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40416impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Prop {
40417    #[doc = "Calls [VisitAstPath`::visit_prop`] with `self`."]
40418    fn visit_with_ast_path<'ast: 'r, 'r>(
40419        &'ast self,
40420        visitor: &mut V,
40421        __ast_path: &mut AstNodePath<'r>,
40422    ) {
40423        <V as VisitAstPath>::visit_prop(visitor, self, __ast_path)
40424    }
40425
40426    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40427        &'ast self,
40428        visitor: &mut V,
40429        __ast_path: &mut AstNodePath<'r>,
40430    ) {
40431        match self {
40432            Prop::Shorthand { 0: _field_0 } => {
40433                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Prop(
40434                    self,
40435                    self::fields::PropField::Shorthand,
40436                ));
40437                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
40438                    _field_0,
40439                    visitor,
40440                    &mut *__ast_path,
40441                );
40442            }
40443            Prop::KeyValue { 0: _field_0 } => {
40444                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Prop(
40445                    self,
40446                    self::fields::PropField::KeyValue,
40447                ));
40448                <KeyValueProp as VisitWithAstPath<V>>::visit_with_ast_path(
40449                    _field_0,
40450                    visitor,
40451                    &mut *__ast_path,
40452                );
40453            }
40454            Prop::Assign { 0: _field_0 } => {
40455                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Prop(
40456                    self,
40457                    self::fields::PropField::Assign,
40458                ));
40459                <AssignProp as VisitWithAstPath<V>>::visit_with_ast_path(
40460                    _field_0,
40461                    visitor,
40462                    &mut *__ast_path,
40463                );
40464            }
40465            Prop::Getter { 0: _field_0 } => {
40466                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Prop(
40467                    self,
40468                    self::fields::PropField::Getter,
40469                ));
40470                <GetterProp as VisitWithAstPath<V>>::visit_with_ast_path(
40471                    _field_0,
40472                    visitor,
40473                    &mut *__ast_path,
40474                );
40475            }
40476            Prop::Setter { 0: _field_0 } => {
40477                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Prop(
40478                    self,
40479                    self::fields::PropField::Setter,
40480                ));
40481                <SetterProp as VisitWithAstPath<V>>::visit_with_ast_path(
40482                    _field_0,
40483                    visitor,
40484                    &mut *__ast_path,
40485                );
40486            }
40487            Prop::Method { 0: _field_0 } => {
40488                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Prop(
40489                    self,
40490                    self::fields::PropField::Method,
40491                ));
40492                <MethodProp as VisitWithAstPath<V>>::visit_with_ast_path(
40493                    _field_0,
40494                    visitor,
40495                    &mut *__ast_path,
40496                );
40497            }
40498        }
40499    }
40500}
40501#[cfg(any(docsrs, feature = "path"))]
40502#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40503impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for PropName {
40504    #[doc = "Calls [VisitAstPath`::visit_prop_name`] with `self`."]
40505    fn visit_with_ast_path<'ast: 'r, 'r>(
40506        &'ast self,
40507        visitor: &mut V,
40508        __ast_path: &mut AstNodePath<'r>,
40509    ) {
40510        <V as VisitAstPath>::visit_prop_name(visitor, self, __ast_path)
40511    }
40512
40513    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40514        &'ast self,
40515        visitor: &mut V,
40516        __ast_path: &mut AstNodePath<'r>,
40517    ) {
40518        match self {
40519            PropName::Ident { 0: _field_0 } => {
40520                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PropName(
40521                    self,
40522                    self::fields::PropNameField::Ident,
40523                ));
40524                <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
40525                    _field_0,
40526                    visitor,
40527                    &mut *__ast_path,
40528                );
40529            }
40530            PropName::Str { 0: _field_0 } => {
40531                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PropName(
40532                    self,
40533                    self::fields::PropNameField::Str,
40534                ));
40535                <Str as VisitWithAstPath<V>>::visit_with_ast_path(
40536                    _field_0,
40537                    visitor,
40538                    &mut *__ast_path,
40539                );
40540            }
40541            PropName::Num { 0: _field_0 } => {
40542                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PropName(
40543                    self,
40544                    self::fields::PropNameField::Num,
40545                ));
40546                <Number as VisitWithAstPath<V>>::visit_with_ast_path(
40547                    _field_0,
40548                    visitor,
40549                    &mut *__ast_path,
40550                );
40551            }
40552            PropName::Computed { 0: _field_0 } => {
40553                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PropName(
40554                    self,
40555                    self::fields::PropNameField::Computed,
40556                ));
40557                <ComputedPropName as VisitWithAstPath<V>>::visit_with_ast_path(
40558                    _field_0,
40559                    visitor,
40560                    &mut *__ast_path,
40561                );
40562            }
40563            PropName::BigInt { 0: _field_0 } => {
40564                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PropName(
40565                    self,
40566                    self::fields::PropNameField::BigInt,
40567                ));
40568                <BigInt as VisitWithAstPath<V>>::visit_with_ast_path(
40569                    _field_0,
40570                    visitor,
40571                    &mut *__ast_path,
40572                );
40573            }
40574        }
40575    }
40576}
40577#[cfg(any(docsrs, feature = "path"))]
40578#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40579impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for PropOrSpread {
40580    #[doc = "Calls [VisitAstPath`::visit_prop_or_spread`] with `self`."]
40581    fn visit_with_ast_path<'ast: 'r, 'r>(
40582        &'ast self,
40583        visitor: &mut V,
40584        __ast_path: &mut AstNodePath<'r>,
40585    ) {
40586        <V as VisitAstPath>::visit_prop_or_spread(visitor, self, __ast_path)
40587    }
40588
40589    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40590        &'ast self,
40591        visitor: &mut V,
40592        __ast_path: &mut AstNodePath<'r>,
40593    ) {
40594        match self {
40595            PropOrSpread::Spread { 0: _field_0 } => {
40596                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PropOrSpread(
40597                    self,
40598                    self::fields::PropOrSpreadField::Spread,
40599                ));
40600                <SpreadElement as VisitWithAstPath<V>>::visit_with_ast_path(
40601                    _field_0,
40602                    visitor,
40603                    &mut *__ast_path,
40604                );
40605            }
40606            PropOrSpread::Prop { 0: _field_0 } => {
40607                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PropOrSpread(
40608                    self,
40609                    self::fields::PropOrSpreadField::Prop,
40610                ));
40611                <Box<Prop> as VisitWithAstPath<V>>::visit_with_ast_path(
40612                    _field_0,
40613                    visitor,
40614                    &mut *__ast_path,
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 Regex {
40623    #[doc = "Calls [VisitAstPath`::visit_regex`] 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_regex(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            Regex { span, exp, flags } => {
40639                {
40640                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Regex(
40641                        self,
40642                        self::fields::RegexField::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
40652                        .with_guard(AstParentNodeRef::Regex(self, self::fields::RegexField::Exp));
40653                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
40654                        exp,
40655                        visitor,
40656                        &mut *__ast_path,
40657                    )
40658                };
40659                {
40660                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Regex(
40661                        self,
40662                        self::fields::RegexField::Flags,
40663                    ));
40664                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
40665                        flags,
40666                        visitor,
40667                        &mut *__ast_path,
40668                    )
40669                };
40670            }
40671        }
40672    }
40673}
40674#[cfg(any(docsrs, feature = "path"))]
40675#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40676impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for RestPat {
40677    #[doc = "Calls [VisitAstPath`::visit_rest_pat`] with `self`."]
40678    fn visit_with_ast_path<'ast: 'r, 'r>(
40679        &'ast self,
40680        visitor: &mut V,
40681        __ast_path: &mut AstNodePath<'r>,
40682    ) {
40683        <V as VisitAstPath>::visit_rest_pat(visitor, self, __ast_path)
40684    }
40685
40686    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40687        &'ast self,
40688        visitor: &mut V,
40689        __ast_path: &mut AstNodePath<'r>,
40690    ) {
40691        match self {
40692            RestPat {
40693                span,
40694                dot3_token,
40695                arg,
40696                type_ann,
40697            } => {
40698                {
40699                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::RestPat(
40700                        self,
40701                        self::fields::RestPatField::Span,
40702                    ));
40703                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40704                        span,
40705                        visitor,
40706                        &mut *__ast_path,
40707                    )
40708                };
40709                {
40710                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::RestPat(
40711                        self,
40712                        self::fields::RestPatField::Dot3Token,
40713                    ));
40714                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40715                        dot3_token,
40716                        visitor,
40717                        &mut *__ast_path,
40718                    )
40719                };
40720                {
40721                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::RestPat(
40722                        self,
40723                        self::fields::RestPatField::Arg,
40724                    ));
40725                    <Box<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
40726                        arg,
40727                        visitor,
40728                        &mut *__ast_path,
40729                    )
40730                };
40731                {
40732                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::RestPat(
40733                        self,
40734                        self::fields::RestPatField::TypeAnn,
40735                    ));
40736                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
40737                        type_ann,
40738                        visitor,
40739                        &mut *__ast_path,
40740                    )
40741                };
40742            }
40743        }
40744    }
40745}
40746#[cfg(any(docsrs, feature = "path"))]
40747#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40748impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ReturnStmt {
40749    #[doc = "Calls [VisitAstPath`::visit_return_stmt`] with `self`."]
40750    fn visit_with_ast_path<'ast: 'r, 'r>(
40751        &'ast self,
40752        visitor: &mut V,
40753        __ast_path: &mut AstNodePath<'r>,
40754    ) {
40755        <V as VisitAstPath>::visit_return_stmt(visitor, self, __ast_path)
40756    }
40757
40758    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40759        &'ast self,
40760        visitor: &mut V,
40761        __ast_path: &mut AstNodePath<'r>,
40762    ) {
40763        match self {
40764            ReturnStmt { span, arg } => {
40765                {
40766                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ReturnStmt(
40767                        self,
40768                        self::fields::ReturnStmtField::Span,
40769                    ));
40770                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40771                        span,
40772                        visitor,
40773                        &mut *__ast_path,
40774                    )
40775                };
40776                {
40777                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ReturnStmt(
40778                        self,
40779                        self::fields::ReturnStmtField::Arg,
40780                    ));
40781                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
40782                        arg,
40783                        visitor,
40784                        &mut *__ast_path,
40785                    )
40786                };
40787            }
40788        }
40789    }
40790}
40791#[cfg(any(docsrs, feature = "path"))]
40792#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40793impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Script {
40794    #[doc = "Calls [VisitAstPath`::visit_script`] with `self`."]
40795    fn visit_with_ast_path<'ast: 'r, 'r>(
40796        &'ast self,
40797        visitor: &mut V,
40798        __ast_path: &mut AstNodePath<'r>,
40799    ) {
40800        <V as VisitAstPath>::visit_script(visitor, self, __ast_path)
40801    }
40802
40803    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40804        &'ast self,
40805        visitor: &mut V,
40806        __ast_path: &mut AstNodePath<'r>,
40807    ) {
40808        match self {
40809            Script {
40810                span,
40811                body,
40812                shebang,
40813            } => {
40814                {
40815                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Script(
40816                        self,
40817                        self::fields::ScriptField::Span,
40818                    ));
40819                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40820                        span,
40821                        visitor,
40822                        &mut *__ast_path,
40823                    )
40824                };
40825                {
40826                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Script(
40827                        self,
40828                        self::fields::ScriptField::Body(usize::MAX),
40829                    ));
40830                    <Vec<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
40831                        body,
40832                        visitor,
40833                        &mut *__ast_path,
40834                    )
40835                };
40836                {
40837                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Script(
40838                        self,
40839                        self::fields::ScriptField::Shebang,
40840                    ));
40841                    <Option<swc_atoms::Atom> as VisitWithAstPath<V>>::visit_with_ast_path(
40842                        shebang,
40843                        visitor,
40844                        &mut *__ast_path,
40845                    )
40846                };
40847            }
40848        }
40849    }
40850}
40851#[cfg(any(docsrs, feature = "path"))]
40852#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40853impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for SeqExpr {
40854    #[doc = "Calls [VisitAstPath`::visit_seq_expr`] with `self`."]
40855    fn visit_with_ast_path<'ast: 'r, 'r>(
40856        &'ast self,
40857        visitor: &mut V,
40858        __ast_path: &mut AstNodePath<'r>,
40859    ) {
40860        <V as VisitAstPath>::visit_seq_expr(visitor, self, __ast_path)
40861    }
40862
40863    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40864        &'ast self,
40865        visitor: &mut V,
40866        __ast_path: &mut AstNodePath<'r>,
40867    ) {
40868        match self {
40869            SeqExpr { span, exprs } => {
40870                {
40871                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SeqExpr(
40872                        self,
40873                        self::fields::SeqExprField::Span,
40874                    ));
40875                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40876                        span,
40877                        visitor,
40878                        &mut *__ast_path,
40879                    )
40880                };
40881                {
40882                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SeqExpr(
40883                        self,
40884                        self::fields::SeqExprField::Exprs(usize::MAX),
40885                    ));
40886                    <Vec<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
40887                        exprs,
40888                        visitor,
40889                        &mut *__ast_path,
40890                    )
40891                };
40892            }
40893        }
40894    }
40895}
40896#[cfg(any(docsrs, feature = "path"))]
40897#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40898impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for SetterProp {
40899    #[doc = "Calls [VisitAstPath`::visit_setter_prop`] with `self`."]
40900    fn visit_with_ast_path<'ast: 'r, 'r>(
40901        &'ast self,
40902        visitor: &mut V,
40903        __ast_path: &mut AstNodePath<'r>,
40904    ) {
40905        <V as VisitAstPath>::visit_setter_prop(visitor, self, __ast_path)
40906    }
40907
40908    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40909        &'ast self,
40910        visitor: &mut V,
40911        __ast_path: &mut AstNodePath<'r>,
40912    ) {
40913        match self {
40914            SetterProp {
40915                span,
40916                key,
40917                this_param,
40918                param,
40919                body,
40920            } => {
40921                {
40922                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SetterProp(
40923                        self,
40924                        self::fields::SetterPropField::Span,
40925                    ));
40926                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40927                        span,
40928                        visitor,
40929                        &mut *__ast_path,
40930                    )
40931                };
40932                {
40933                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SetterProp(
40934                        self,
40935                        self::fields::SetterPropField::Key,
40936                    ));
40937                    <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
40938                        key,
40939                        visitor,
40940                        &mut *__ast_path,
40941                    )
40942                };
40943                {
40944                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SetterProp(
40945                        self,
40946                        self::fields::SetterPropField::ThisParam,
40947                    ));
40948                    <Option<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
40949                        this_param,
40950                        visitor,
40951                        &mut *__ast_path,
40952                    )
40953                };
40954                {
40955                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SetterProp(
40956                        self,
40957                        self::fields::SetterPropField::Param,
40958                    ));
40959                    <Box<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
40960                        param,
40961                        visitor,
40962                        &mut *__ast_path,
40963                    )
40964                };
40965                {
40966                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SetterProp(
40967                        self,
40968                        self::fields::SetterPropField::Body,
40969                    ));
40970                    <Option<BlockStmt> as VisitWithAstPath<V>>::visit_with_ast_path(
40971                        body,
40972                        visitor,
40973                        &mut *__ast_path,
40974                    )
40975                };
40976            }
40977        }
40978    }
40979}
40980#[cfg(any(docsrs, feature = "path"))]
40981#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40982impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for SimpleAssignTarget {
40983    #[doc = "Calls [VisitAstPath`::visit_simple_assign_target`] with `self`."]
40984    fn visit_with_ast_path<'ast: 'r, 'r>(
40985        &'ast self,
40986        visitor: &mut V,
40987        __ast_path: &mut AstNodePath<'r>,
40988    ) {
40989        <V as VisitAstPath>::visit_simple_assign_target(visitor, self, __ast_path)
40990    }
40991
40992    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40993        &'ast self,
40994        visitor: &mut V,
40995        __ast_path: &mut AstNodePath<'r>,
40996    ) {
40997        match self {
40998            SimpleAssignTarget::Ident { 0: _field_0 } => {
40999                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
41000                    self,
41001                    self::fields::SimpleAssignTargetField::Ident,
41002                ));
41003                <BindingIdent as VisitWithAstPath<V>>::visit_with_ast_path(
41004                    _field_0,
41005                    visitor,
41006                    &mut *__ast_path,
41007                );
41008            }
41009            SimpleAssignTarget::Member { 0: _field_0 } => {
41010                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
41011                    self,
41012                    self::fields::SimpleAssignTargetField::Member,
41013                ));
41014                <MemberExpr as VisitWithAstPath<V>>::visit_with_ast_path(
41015                    _field_0,
41016                    visitor,
41017                    &mut *__ast_path,
41018                );
41019            }
41020            SimpleAssignTarget::SuperProp { 0: _field_0 } => {
41021                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
41022                    self,
41023                    self::fields::SimpleAssignTargetField::SuperProp,
41024                ));
41025                <SuperPropExpr as VisitWithAstPath<V>>::visit_with_ast_path(
41026                    _field_0,
41027                    visitor,
41028                    &mut *__ast_path,
41029                );
41030            }
41031            SimpleAssignTarget::Paren { 0: _field_0 } => {
41032                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
41033                    self,
41034                    self::fields::SimpleAssignTargetField::Paren,
41035                ));
41036                <ParenExpr as VisitWithAstPath<V>>::visit_with_ast_path(
41037                    _field_0,
41038                    visitor,
41039                    &mut *__ast_path,
41040                );
41041            }
41042            SimpleAssignTarget::OptChain { 0: _field_0 } => {
41043                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
41044                    self,
41045                    self::fields::SimpleAssignTargetField::OptChain,
41046                ));
41047                <OptChainExpr as VisitWithAstPath<V>>::visit_with_ast_path(
41048                    _field_0,
41049                    visitor,
41050                    &mut *__ast_path,
41051                );
41052            }
41053            SimpleAssignTarget::TsAs { 0: _field_0 } => {
41054                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
41055                    self,
41056                    self::fields::SimpleAssignTargetField::TsAs,
41057                ));
41058                <TsAsExpr as VisitWithAstPath<V>>::visit_with_ast_path(
41059                    _field_0,
41060                    visitor,
41061                    &mut *__ast_path,
41062                );
41063            }
41064            SimpleAssignTarget::TsSatisfies { 0: _field_0 } => {
41065                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
41066                    self,
41067                    self::fields::SimpleAssignTargetField::TsSatisfies,
41068                ));
41069                <TsSatisfiesExpr as VisitWithAstPath<V>>::visit_with_ast_path(
41070                    _field_0,
41071                    visitor,
41072                    &mut *__ast_path,
41073                );
41074            }
41075            SimpleAssignTarget::TsNonNull { 0: _field_0 } => {
41076                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
41077                    self,
41078                    self::fields::SimpleAssignTargetField::TsNonNull,
41079                ));
41080                <TsNonNullExpr as VisitWithAstPath<V>>::visit_with_ast_path(
41081                    _field_0,
41082                    visitor,
41083                    &mut *__ast_path,
41084                );
41085            }
41086            SimpleAssignTarget::TsTypeAssertion { 0: _field_0 } => {
41087                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
41088                    self,
41089                    self::fields::SimpleAssignTargetField::TsTypeAssertion,
41090                ));
41091                <TsTypeAssertion as VisitWithAstPath<V>>::visit_with_ast_path(
41092                    _field_0,
41093                    visitor,
41094                    &mut *__ast_path,
41095                );
41096            }
41097            SimpleAssignTarget::TsInstantiation { 0: _field_0 } => {
41098                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
41099                    self,
41100                    self::fields::SimpleAssignTargetField::TsInstantiation,
41101                ));
41102                <TsInstantiation as VisitWithAstPath<V>>::visit_with_ast_path(
41103                    _field_0,
41104                    visitor,
41105                    &mut *__ast_path,
41106                );
41107            }
41108            SimpleAssignTarget::Invalid { 0: _field_0 } => {
41109                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
41110                    self,
41111                    self::fields::SimpleAssignTargetField::Invalid,
41112                ));
41113                <Invalid as VisitWithAstPath<V>>::visit_with_ast_path(
41114                    _field_0,
41115                    visitor,
41116                    &mut *__ast_path,
41117                );
41118            }
41119        }
41120    }
41121}
41122#[cfg(any(docsrs, feature = "path"))]
41123#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41124impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for SpreadElement {
41125    #[doc = "Calls [VisitAstPath`::visit_spread_element`] with `self`."]
41126    fn visit_with_ast_path<'ast: 'r, 'r>(
41127        &'ast self,
41128        visitor: &mut V,
41129        __ast_path: &mut AstNodePath<'r>,
41130    ) {
41131        <V as VisitAstPath>::visit_spread_element(visitor, self, __ast_path)
41132    }
41133
41134    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41135        &'ast self,
41136        visitor: &mut V,
41137        __ast_path: &mut AstNodePath<'r>,
41138    ) {
41139        match self {
41140            SpreadElement { dot3_token, expr } => {
41141                {
41142                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SpreadElement(
41143                        self,
41144                        self::fields::SpreadElementField::Dot3Token,
41145                    ));
41146                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41147                        dot3_token,
41148                        visitor,
41149                        &mut *__ast_path,
41150                    )
41151                };
41152                {
41153                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SpreadElement(
41154                        self,
41155                        self::fields::SpreadElementField::Expr,
41156                    ));
41157                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
41158                        expr,
41159                        visitor,
41160                        &mut *__ast_path,
41161                    )
41162                };
41163            }
41164        }
41165    }
41166}
41167#[cfg(any(docsrs, feature = "path"))]
41168#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41169impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for StaticBlock {
41170    #[doc = "Calls [VisitAstPath`::visit_static_block`] with `self`."]
41171    fn visit_with_ast_path<'ast: 'r, 'r>(
41172        &'ast self,
41173        visitor: &mut V,
41174        __ast_path: &mut AstNodePath<'r>,
41175    ) {
41176        <V as VisitAstPath>::visit_static_block(visitor, self, __ast_path)
41177    }
41178
41179    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41180        &'ast self,
41181        visitor: &mut V,
41182        __ast_path: &mut AstNodePath<'r>,
41183    ) {
41184        match self {
41185            StaticBlock { span, body } => {
41186                {
41187                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::StaticBlock(
41188                        self,
41189                        self::fields::StaticBlockField::Span,
41190                    ));
41191                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41192                        span,
41193                        visitor,
41194                        &mut *__ast_path,
41195                    )
41196                };
41197                {
41198                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::StaticBlock(
41199                        self,
41200                        self::fields::StaticBlockField::Body,
41201                    ));
41202                    <BlockStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41203                        body,
41204                        visitor,
41205                        &mut *__ast_path,
41206                    )
41207                };
41208            }
41209        }
41210    }
41211}
41212#[cfg(any(docsrs, feature = "path"))]
41213#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41214impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Stmt {
41215    #[doc = "Calls [VisitAstPath`::visit_stmt`] with `self`."]
41216    fn visit_with_ast_path<'ast: 'r, 'r>(
41217        &'ast self,
41218        visitor: &mut V,
41219        __ast_path: &mut AstNodePath<'r>,
41220    ) {
41221        <V as VisitAstPath>::visit_stmt(visitor, self, __ast_path)
41222    }
41223
41224    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41225        &'ast self,
41226        visitor: &mut V,
41227        __ast_path: &mut AstNodePath<'r>,
41228    ) {
41229        match self {
41230            Stmt::Block { 0: _field_0 } => {
41231                let mut __ast_path = __ast_path
41232                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::Block));
41233                <BlockStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41234                    _field_0,
41235                    visitor,
41236                    &mut *__ast_path,
41237                );
41238            }
41239            Stmt::Empty { 0: _field_0 } => {
41240                let mut __ast_path = __ast_path
41241                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::Empty));
41242                <EmptyStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41243                    _field_0,
41244                    visitor,
41245                    &mut *__ast_path,
41246                );
41247            }
41248            Stmt::Debugger { 0: _field_0 } => {
41249                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Stmt(
41250                    self,
41251                    self::fields::StmtField::Debugger,
41252                ));
41253                <DebuggerStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41254                    _field_0,
41255                    visitor,
41256                    &mut *__ast_path,
41257                );
41258            }
41259            Stmt::With { 0: _field_0 } => {
41260                let mut __ast_path = __ast_path
41261                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::With));
41262                <WithStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41263                    _field_0,
41264                    visitor,
41265                    &mut *__ast_path,
41266                );
41267            }
41268            Stmt::Return { 0: _field_0 } => {
41269                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Stmt(
41270                    self,
41271                    self::fields::StmtField::Return,
41272                ));
41273                <ReturnStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41274                    _field_0,
41275                    visitor,
41276                    &mut *__ast_path,
41277                );
41278            }
41279            Stmt::Labeled { 0: _field_0 } => {
41280                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Stmt(
41281                    self,
41282                    self::fields::StmtField::Labeled,
41283                ));
41284                <LabeledStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41285                    _field_0,
41286                    visitor,
41287                    &mut *__ast_path,
41288                );
41289            }
41290            Stmt::Break { 0: _field_0 } => {
41291                let mut __ast_path = __ast_path
41292                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::Break));
41293                <BreakStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41294                    _field_0,
41295                    visitor,
41296                    &mut *__ast_path,
41297                );
41298            }
41299            Stmt::Continue { 0: _field_0 } => {
41300                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Stmt(
41301                    self,
41302                    self::fields::StmtField::Continue,
41303                ));
41304                <ContinueStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41305                    _field_0,
41306                    visitor,
41307                    &mut *__ast_path,
41308                );
41309            }
41310            Stmt::If { 0: _field_0 } => {
41311                let mut __ast_path = __ast_path
41312                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::If));
41313                <IfStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41314                    _field_0,
41315                    visitor,
41316                    &mut *__ast_path,
41317                );
41318            }
41319            Stmt::Switch { 0: _field_0 } => {
41320                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Stmt(
41321                    self,
41322                    self::fields::StmtField::Switch,
41323                ));
41324                <SwitchStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41325                    _field_0,
41326                    visitor,
41327                    &mut *__ast_path,
41328                );
41329            }
41330            Stmt::Throw { 0: _field_0 } => {
41331                let mut __ast_path = __ast_path
41332                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::Throw));
41333                <ThrowStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41334                    _field_0,
41335                    visitor,
41336                    &mut *__ast_path,
41337                );
41338            }
41339            Stmt::Try { 0: _field_0 } => {
41340                let mut __ast_path = __ast_path
41341                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::Try));
41342                <Box<TryStmt> as VisitWithAstPath<V>>::visit_with_ast_path(
41343                    _field_0,
41344                    visitor,
41345                    &mut *__ast_path,
41346                );
41347            }
41348            Stmt::While { 0: _field_0 } => {
41349                let mut __ast_path = __ast_path
41350                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::While));
41351                <WhileStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41352                    _field_0,
41353                    visitor,
41354                    &mut *__ast_path,
41355                );
41356            }
41357            Stmt::DoWhile { 0: _field_0 } => {
41358                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Stmt(
41359                    self,
41360                    self::fields::StmtField::DoWhile,
41361                ));
41362                <DoWhileStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41363                    _field_0,
41364                    visitor,
41365                    &mut *__ast_path,
41366                );
41367            }
41368            Stmt::For { 0: _field_0 } => {
41369                let mut __ast_path = __ast_path
41370                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::For));
41371                <ForStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41372                    _field_0,
41373                    visitor,
41374                    &mut *__ast_path,
41375                );
41376            }
41377            Stmt::ForIn { 0: _field_0 } => {
41378                let mut __ast_path = __ast_path
41379                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::ForIn));
41380                <ForInStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41381                    _field_0,
41382                    visitor,
41383                    &mut *__ast_path,
41384                );
41385            }
41386            Stmt::ForOf { 0: _field_0 } => {
41387                let mut __ast_path = __ast_path
41388                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::ForOf));
41389                <ForOfStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41390                    _field_0,
41391                    visitor,
41392                    &mut *__ast_path,
41393                );
41394            }
41395            Stmt::Decl { 0: _field_0 } => {
41396                let mut __ast_path = __ast_path
41397                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::Decl));
41398                <Decl as VisitWithAstPath<V>>::visit_with_ast_path(
41399                    _field_0,
41400                    visitor,
41401                    &mut *__ast_path,
41402                );
41403            }
41404            Stmt::Expr { 0: _field_0 } => {
41405                let mut __ast_path = __ast_path
41406                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::Expr));
41407                <ExprStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41408                    _field_0,
41409                    visitor,
41410                    &mut *__ast_path,
41411                );
41412            }
41413        }
41414    }
41415}
41416#[cfg(any(docsrs, feature = "path"))]
41417#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41418impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Str {
41419    #[doc = "Calls [VisitAstPath`::visit_str`] with `self`."]
41420    fn visit_with_ast_path<'ast: 'r, 'r>(
41421        &'ast self,
41422        visitor: &mut V,
41423        __ast_path: &mut AstNodePath<'r>,
41424    ) {
41425        <V as VisitAstPath>::visit_str(visitor, self, __ast_path)
41426    }
41427
41428    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41429        &'ast self,
41430        visitor: &mut V,
41431        __ast_path: &mut AstNodePath<'r>,
41432    ) {
41433        match self {
41434            Str { span, value, raw } => {
41435                {
41436                    let mut __ast_path = __ast_path
41437                        .with_guard(AstParentNodeRef::Str(self, self::fields::StrField::Span));
41438                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41439                        span,
41440                        visitor,
41441                        &mut *__ast_path,
41442                    )
41443                };
41444                {
41445                    let mut __ast_path = __ast_path
41446                        .with_guard(AstParentNodeRef::Str(self, self::fields::StrField::Value));
41447                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
41448                        value,
41449                        visitor,
41450                        &mut *__ast_path,
41451                    )
41452                };
41453                {
41454                    let mut __ast_path = __ast_path
41455                        .with_guard(AstParentNodeRef::Str(self, self::fields::StrField::Raw));
41456                    <Option<swc_atoms::Atom> as VisitWithAstPath<V>>::visit_with_ast_path(
41457                        raw,
41458                        visitor,
41459                        &mut *__ast_path,
41460                    )
41461                };
41462            }
41463        }
41464    }
41465}
41466#[cfg(any(docsrs, feature = "path"))]
41467#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41468impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Super {
41469    #[doc = "Calls [VisitAstPath`::visit_super`] with `self`."]
41470    fn visit_with_ast_path<'ast: 'r, 'r>(
41471        &'ast self,
41472        visitor: &mut V,
41473        __ast_path: &mut AstNodePath<'r>,
41474    ) {
41475        <V as VisitAstPath>::visit_super(visitor, self, __ast_path)
41476    }
41477
41478    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41479        &'ast self,
41480        visitor: &mut V,
41481        __ast_path: &mut AstNodePath<'r>,
41482    ) {
41483        match self {
41484            Super { span } => {
41485                {
41486                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Super(
41487                        self,
41488                        self::fields::SuperField::Span,
41489                    ));
41490                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41491                        span,
41492                        visitor,
41493                        &mut *__ast_path,
41494                    )
41495                };
41496            }
41497        }
41498    }
41499}
41500#[cfg(any(docsrs, feature = "path"))]
41501#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41502impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for SuperProp {
41503    #[doc = "Calls [VisitAstPath`::visit_super_prop`] with `self`."]
41504    fn visit_with_ast_path<'ast: 'r, 'r>(
41505        &'ast self,
41506        visitor: &mut V,
41507        __ast_path: &mut AstNodePath<'r>,
41508    ) {
41509        <V as VisitAstPath>::visit_super_prop(visitor, self, __ast_path)
41510    }
41511
41512    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41513        &'ast self,
41514        visitor: &mut V,
41515        __ast_path: &mut AstNodePath<'r>,
41516    ) {
41517        match self {
41518            SuperProp::Ident { 0: _field_0 } => {
41519                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SuperProp(
41520                    self,
41521                    self::fields::SuperPropField::Ident,
41522                ));
41523                <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
41524                    _field_0,
41525                    visitor,
41526                    &mut *__ast_path,
41527                );
41528            }
41529            SuperProp::Computed { 0: _field_0 } => {
41530                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SuperProp(
41531                    self,
41532                    self::fields::SuperPropField::Computed,
41533                ));
41534                <ComputedPropName as VisitWithAstPath<V>>::visit_with_ast_path(
41535                    _field_0,
41536                    visitor,
41537                    &mut *__ast_path,
41538                );
41539            }
41540        }
41541    }
41542}
41543#[cfg(any(docsrs, feature = "path"))]
41544#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41545impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for SuperPropExpr {
41546    #[doc = "Calls [VisitAstPath`::visit_super_prop_expr`] with `self`."]
41547    fn visit_with_ast_path<'ast: 'r, 'r>(
41548        &'ast self,
41549        visitor: &mut V,
41550        __ast_path: &mut AstNodePath<'r>,
41551    ) {
41552        <V as VisitAstPath>::visit_super_prop_expr(visitor, self, __ast_path)
41553    }
41554
41555    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41556        &'ast self,
41557        visitor: &mut V,
41558        __ast_path: &mut AstNodePath<'r>,
41559    ) {
41560        match self {
41561            SuperPropExpr { span, obj, prop } => {
41562                {
41563                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SuperPropExpr(
41564                        self,
41565                        self::fields::SuperPropExprField::Span,
41566                    ));
41567                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41568                        span,
41569                        visitor,
41570                        &mut *__ast_path,
41571                    )
41572                };
41573                {
41574                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SuperPropExpr(
41575                        self,
41576                        self::fields::SuperPropExprField::Obj,
41577                    ));
41578                    <Super as VisitWithAstPath<V>>::visit_with_ast_path(
41579                        obj,
41580                        visitor,
41581                        &mut *__ast_path,
41582                    )
41583                };
41584                {
41585                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SuperPropExpr(
41586                        self,
41587                        self::fields::SuperPropExprField::Prop,
41588                    ));
41589                    <SuperProp as VisitWithAstPath<V>>::visit_with_ast_path(
41590                        prop,
41591                        visitor,
41592                        &mut *__ast_path,
41593                    )
41594                };
41595            }
41596        }
41597    }
41598}
41599#[cfg(any(docsrs, feature = "path"))]
41600#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41601impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for SwitchCase {
41602    #[doc = "Calls [VisitAstPath`::visit_switch_case`] with `self`."]
41603    fn visit_with_ast_path<'ast: 'r, 'r>(
41604        &'ast self,
41605        visitor: &mut V,
41606        __ast_path: &mut AstNodePath<'r>,
41607    ) {
41608        <V as VisitAstPath>::visit_switch_case(visitor, self, __ast_path)
41609    }
41610
41611    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41612        &'ast self,
41613        visitor: &mut V,
41614        __ast_path: &mut AstNodePath<'r>,
41615    ) {
41616        match self {
41617            SwitchCase { span, test, cons } => {
41618                {
41619                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SwitchCase(
41620                        self,
41621                        self::fields::SwitchCaseField::Span,
41622                    ));
41623                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41624                        span,
41625                        visitor,
41626                        &mut *__ast_path,
41627                    )
41628                };
41629                {
41630                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SwitchCase(
41631                        self,
41632                        self::fields::SwitchCaseField::Test,
41633                    ));
41634                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
41635                        test,
41636                        visitor,
41637                        &mut *__ast_path,
41638                    )
41639                };
41640                {
41641                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SwitchCase(
41642                        self,
41643                        self::fields::SwitchCaseField::Cons(usize::MAX),
41644                    ));
41645                    <Vec<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
41646                        cons,
41647                        visitor,
41648                        &mut *__ast_path,
41649                    )
41650                };
41651            }
41652        }
41653    }
41654}
41655#[cfg(any(docsrs, feature = "path"))]
41656#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41657impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for SwitchStmt {
41658    #[doc = "Calls [VisitAstPath`::visit_switch_stmt`] with `self`."]
41659    fn visit_with_ast_path<'ast: 'r, 'r>(
41660        &'ast self,
41661        visitor: &mut V,
41662        __ast_path: &mut AstNodePath<'r>,
41663    ) {
41664        <V as VisitAstPath>::visit_switch_stmt(visitor, self, __ast_path)
41665    }
41666
41667    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41668        &'ast self,
41669        visitor: &mut V,
41670        __ast_path: &mut AstNodePath<'r>,
41671    ) {
41672        match self {
41673            SwitchStmt {
41674                span,
41675                discriminant,
41676                cases,
41677            } => {
41678                {
41679                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SwitchStmt(
41680                        self,
41681                        self::fields::SwitchStmtField::Span,
41682                    ));
41683                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41684                        span,
41685                        visitor,
41686                        &mut *__ast_path,
41687                    )
41688                };
41689                {
41690                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SwitchStmt(
41691                        self,
41692                        self::fields::SwitchStmtField::Discriminant,
41693                    ));
41694                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
41695                        discriminant,
41696                        visitor,
41697                        &mut *__ast_path,
41698                    )
41699                };
41700                {
41701                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SwitchStmt(
41702                        self,
41703                        self::fields::SwitchStmtField::Cases(usize::MAX),
41704                    ));
41705                    <Vec<SwitchCase> as VisitWithAstPath<V>>::visit_with_ast_path(
41706                        cases,
41707                        visitor,
41708                        &mut *__ast_path,
41709                    )
41710                };
41711            }
41712        }
41713    }
41714}
41715#[cfg(any(docsrs, feature = "path"))]
41716#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41717impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TaggedTpl {
41718    #[doc = "Calls [VisitAstPath`::visit_tagged_tpl`] with `self`."]
41719    fn visit_with_ast_path<'ast: 'r, 'r>(
41720        &'ast self,
41721        visitor: &mut V,
41722        __ast_path: &mut AstNodePath<'r>,
41723    ) {
41724        <V as VisitAstPath>::visit_tagged_tpl(visitor, self, __ast_path)
41725    }
41726
41727    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41728        &'ast self,
41729        visitor: &mut V,
41730        __ast_path: &mut AstNodePath<'r>,
41731    ) {
41732        match self {
41733            TaggedTpl {
41734                span,
41735                ctxt,
41736                tag,
41737                type_params,
41738                tpl,
41739            } => {
41740                {
41741                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TaggedTpl(
41742                        self,
41743                        self::fields::TaggedTplField::Span,
41744                    ));
41745                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41746                        span,
41747                        visitor,
41748                        &mut *__ast_path,
41749                    )
41750                };
41751                {
41752                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TaggedTpl(
41753                        self,
41754                        self::fields::TaggedTplField::Ctxt,
41755                    ));
41756                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
41757                        ctxt,
41758                        visitor,
41759                        &mut *__ast_path,
41760                    )
41761                };
41762                {
41763                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TaggedTpl(
41764                        self,
41765                        self::fields::TaggedTplField::Tag,
41766                    ));
41767                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
41768                        tag,
41769                        visitor,
41770                        &mut *__ast_path,
41771                    )
41772                };
41773                {
41774                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TaggedTpl(
41775                        self,
41776                        self::fields::TaggedTplField::TypeParams,
41777                    ));
41778                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_params , visitor , & mut * __ast_path)
41779                };
41780                {
41781                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TaggedTpl(
41782                        self,
41783                        self::fields::TaggedTplField::Tpl,
41784                    ));
41785                    <Box<Tpl> as VisitWithAstPath<V>>::visit_with_ast_path(
41786                        tpl,
41787                        visitor,
41788                        &mut *__ast_path,
41789                    )
41790                };
41791            }
41792        }
41793    }
41794}
41795#[cfg(any(docsrs, feature = "path"))]
41796#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41797impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ThisExpr {
41798    #[doc = "Calls [VisitAstPath`::visit_this_expr`] with `self`."]
41799    fn visit_with_ast_path<'ast: 'r, 'r>(
41800        &'ast self,
41801        visitor: &mut V,
41802        __ast_path: &mut AstNodePath<'r>,
41803    ) {
41804        <V as VisitAstPath>::visit_this_expr(visitor, self, __ast_path)
41805    }
41806
41807    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41808        &'ast self,
41809        visitor: &mut V,
41810        __ast_path: &mut AstNodePath<'r>,
41811    ) {
41812        match self {
41813            ThisExpr { span } => {
41814                {
41815                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ThisExpr(
41816                        self,
41817                        self::fields::ThisExprField::Span,
41818                    ));
41819                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41820                        span,
41821                        visitor,
41822                        &mut *__ast_path,
41823                    )
41824                };
41825            }
41826        }
41827    }
41828}
41829#[cfg(any(docsrs, feature = "path"))]
41830#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41831impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ThrowStmt {
41832    #[doc = "Calls [VisitAstPath`::visit_throw_stmt`] with `self`."]
41833    fn visit_with_ast_path<'ast: 'r, 'r>(
41834        &'ast self,
41835        visitor: &mut V,
41836        __ast_path: &mut AstNodePath<'r>,
41837    ) {
41838        <V as VisitAstPath>::visit_throw_stmt(visitor, self, __ast_path)
41839    }
41840
41841    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41842        &'ast self,
41843        visitor: &mut V,
41844        __ast_path: &mut AstNodePath<'r>,
41845    ) {
41846        match self {
41847            ThrowStmt { span, arg } => {
41848                {
41849                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ThrowStmt(
41850                        self,
41851                        self::fields::ThrowStmtField::Span,
41852                    ));
41853                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41854                        span,
41855                        visitor,
41856                        &mut *__ast_path,
41857                    )
41858                };
41859                {
41860                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ThrowStmt(
41861                        self,
41862                        self::fields::ThrowStmtField::Arg,
41863                    ));
41864                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
41865                        arg,
41866                        visitor,
41867                        &mut *__ast_path,
41868                    )
41869                };
41870            }
41871        }
41872    }
41873}
41874#[cfg(any(docsrs, feature = "path"))]
41875#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41876impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Tpl {
41877    #[doc = "Calls [VisitAstPath`::visit_tpl`] with `self`."]
41878    fn visit_with_ast_path<'ast: 'r, 'r>(
41879        &'ast self,
41880        visitor: &mut V,
41881        __ast_path: &mut AstNodePath<'r>,
41882    ) {
41883        <V as VisitAstPath>::visit_tpl(visitor, self, __ast_path)
41884    }
41885
41886    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41887        &'ast self,
41888        visitor: &mut V,
41889        __ast_path: &mut AstNodePath<'r>,
41890    ) {
41891        match self {
41892            Tpl {
41893                span,
41894                exprs,
41895                quasis,
41896            } => {
41897                {
41898                    let mut __ast_path = __ast_path
41899                        .with_guard(AstParentNodeRef::Tpl(self, self::fields::TplField::Span));
41900                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41901                        span,
41902                        visitor,
41903                        &mut *__ast_path,
41904                    )
41905                };
41906                {
41907                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Tpl(
41908                        self,
41909                        self::fields::TplField::Exprs(usize::MAX),
41910                    ));
41911                    <Vec<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
41912                        exprs,
41913                        visitor,
41914                        &mut *__ast_path,
41915                    )
41916                };
41917                {
41918                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Tpl(
41919                        self,
41920                        self::fields::TplField::Quasis(usize::MAX),
41921                    ));
41922                    <Vec<TplElement> as VisitWithAstPath<V>>::visit_with_ast_path(
41923                        quasis,
41924                        visitor,
41925                        &mut *__ast_path,
41926                    )
41927                };
41928            }
41929        }
41930    }
41931}
41932#[cfg(any(docsrs, feature = "path"))]
41933#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41934impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TplElement {
41935    #[doc = "Calls [VisitAstPath`::visit_tpl_element`] with `self`."]
41936    fn visit_with_ast_path<'ast: 'r, 'r>(
41937        &'ast self,
41938        visitor: &mut V,
41939        __ast_path: &mut AstNodePath<'r>,
41940    ) {
41941        <V as VisitAstPath>::visit_tpl_element(visitor, self, __ast_path)
41942    }
41943
41944    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41945        &'ast self,
41946        visitor: &mut V,
41947        __ast_path: &mut AstNodePath<'r>,
41948    ) {
41949        match self {
41950            TplElement {
41951                span,
41952                tail,
41953                cooked,
41954                raw,
41955            } => {
41956                {
41957                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TplElement(
41958                        self,
41959                        self::fields::TplElementField::Span,
41960                    ));
41961                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41962                        span,
41963                        visitor,
41964                        &mut *__ast_path,
41965                    )
41966                };
41967                {
41968                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TplElement(
41969                        self,
41970                        self::fields::TplElementField::Cooked,
41971                    ));
41972                    <Option<swc_atoms::Atom> as VisitWithAstPath<V>>::visit_with_ast_path(
41973                        cooked,
41974                        visitor,
41975                        &mut *__ast_path,
41976                    )
41977                };
41978                {
41979                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TplElement(
41980                        self,
41981                        self::fields::TplElementField::Raw,
41982                    ));
41983                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
41984                        raw,
41985                        visitor,
41986                        &mut *__ast_path,
41987                    )
41988                };
41989            }
41990        }
41991    }
41992}
41993#[cfg(any(docsrs, feature = "path"))]
41994#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41995impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TruePlusMinus {
41996    #[doc = "Calls [VisitAstPath`::visit_true_plus_minus`] with `self`."]
41997    fn visit_with_ast_path<'ast: 'r, 'r>(
41998        &'ast self,
41999        visitor: &mut V,
42000        __ast_path: &mut AstNodePath<'r>,
42001    ) {
42002        <V as VisitAstPath>::visit_true_plus_minus(visitor, self, __ast_path)
42003    }
42004
42005    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42006        &'ast self,
42007        visitor: &mut V,
42008        __ast_path: &mut AstNodePath<'r>,
42009    ) {
42010        match self {
42011            TruePlusMinus::True => {}
42012            TruePlusMinus::Plus => {}
42013            TruePlusMinus::Minus => {}
42014        }
42015    }
42016}
42017#[cfg(any(docsrs, feature = "path"))]
42018#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42019impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TryStmt {
42020    #[doc = "Calls [VisitAstPath`::visit_try_stmt`] with `self`."]
42021    fn visit_with_ast_path<'ast: 'r, 'r>(
42022        &'ast self,
42023        visitor: &mut V,
42024        __ast_path: &mut AstNodePath<'r>,
42025    ) {
42026        <V as VisitAstPath>::visit_try_stmt(visitor, self, __ast_path)
42027    }
42028
42029    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42030        &'ast self,
42031        visitor: &mut V,
42032        __ast_path: &mut AstNodePath<'r>,
42033    ) {
42034        match self {
42035            TryStmt {
42036                span,
42037                block,
42038                handler,
42039                finalizer,
42040            } => {
42041                {
42042                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TryStmt(
42043                        self,
42044                        self::fields::TryStmtField::Span,
42045                    ));
42046                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42047                        span,
42048                        visitor,
42049                        &mut *__ast_path,
42050                    )
42051                };
42052                {
42053                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TryStmt(
42054                        self,
42055                        self::fields::TryStmtField::Block,
42056                    ));
42057                    <BlockStmt as VisitWithAstPath<V>>::visit_with_ast_path(
42058                        block,
42059                        visitor,
42060                        &mut *__ast_path,
42061                    )
42062                };
42063                {
42064                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TryStmt(
42065                        self,
42066                        self::fields::TryStmtField::Handler,
42067                    ));
42068                    <Option<CatchClause> as VisitWithAstPath<V>>::visit_with_ast_path(
42069                        handler,
42070                        visitor,
42071                        &mut *__ast_path,
42072                    )
42073                };
42074                {
42075                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TryStmt(
42076                        self,
42077                        self::fields::TryStmtField::Finalizer,
42078                    ));
42079                    <Option<BlockStmt> as VisitWithAstPath<V>>::visit_with_ast_path(
42080                        finalizer,
42081                        visitor,
42082                        &mut *__ast_path,
42083                    )
42084                };
42085            }
42086        }
42087    }
42088}
42089#[cfg(any(docsrs, feature = "path"))]
42090#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42091impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsArrayType {
42092    #[doc = "Calls [VisitAstPath`::visit_ts_array_type`] with `self`."]
42093    fn visit_with_ast_path<'ast: 'r, 'r>(
42094        &'ast self,
42095        visitor: &mut V,
42096        __ast_path: &mut AstNodePath<'r>,
42097    ) {
42098        <V as VisitAstPath>::visit_ts_array_type(visitor, self, __ast_path)
42099    }
42100
42101    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42102        &'ast self,
42103        visitor: &mut V,
42104        __ast_path: &mut AstNodePath<'r>,
42105    ) {
42106        match self {
42107            TsArrayType { span, elem_type } => {
42108                {
42109                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsArrayType(
42110                        self,
42111                        self::fields::TsArrayTypeField::Span,
42112                    ));
42113                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42114                        span,
42115                        visitor,
42116                        &mut *__ast_path,
42117                    )
42118                };
42119                {
42120                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsArrayType(
42121                        self,
42122                        self::fields::TsArrayTypeField::ElemType,
42123                    ));
42124                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
42125                        elem_type,
42126                        visitor,
42127                        &mut *__ast_path,
42128                    )
42129                };
42130            }
42131        }
42132    }
42133}
42134#[cfg(any(docsrs, feature = "path"))]
42135#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42136impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsAsExpr {
42137    #[doc = "Calls [VisitAstPath`::visit_ts_as_expr`] with `self`."]
42138    fn visit_with_ast_path<'ast: 'r, 'r>(
42139        &'ast self,
42140        visitor: &mut V,
42141        __ast_path: &mut AstNodePath<'r>,
42142    ) {
42143        <V as VisitAstPath>::visit_ts_as_expr(visitor, self, __ast_path)
42144    }
42145
42146    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42147        &'ast self,
42148        visitor: &mut V,
42149        __ast_path: &mut AstNodePath<'r>,
42150    ) {
42151        match self {
42152            TsAsExpr {
42153                span,
42154                expr,
42155                type_ann,
42156            } => {
42157                {
42158                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsAsExpr(
42159                        self,
42160                        self::fields::TsAsExprField::Span,
42161                    ));
42162                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42163                        span,
42164                        visitor,
42165                        &mut *__ast_path,
42166                    )
42167                };
42168                {
42169                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsAsExpr(
42170                        self,
42171                        self::fields::TsAsExprField::Expr,
42172                    ));
42173                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
42174                        expr,
42175                        visitor,
42176                        &mut *__ast_path,
42177                    )
42178                };
42179                {
42180                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsAsExpr(
42181                        self,
42182                        self::fields::TsAsExprField::TypeAnn,
42183                    ));
42184                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
42185                        type_ann,
42186                        visitor,
42187                        &mut *__ast_path,
42188                    )
42189                };
42190            }
42191        }
42192    }
42193}
42194#[cfg(any(docsrs, feature = "path"))]
42195#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42196impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsCallSignatureDecl {
42197    #[doc = "Calls [VisitAstPath`::visit_ts_call_signature_decl`] with `self`."]
42198    fn visit_with_ast_path<'ast: 'r, 'r>(
42199        &'ast self,
42200        visitor: &mut V,
42201        __ast_path: &mut AstNodePath<'r>,
42202    ) {
42203        <V as VisitAstPath>::visit_ts_call_signature_decl(visitor, self, __ast_path)
42204    }
42205
42206    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42207        &'ast self,
42208        visitor: &mut V,
42209        __ast_path: &mut AstNodePath<'r>,
42210    ) {
42211        match self {
42212            TsCallSignatureDecl {
42213                span,
42214                params,
42215                type_ann,
42216                type_params,
42217            } => {
42218                {
42219                    let mut __ast_path =
42220                        __ast_path.with_guard(AstParentNodeRef::TsCallSignatureDecl(
42221                            self,
42222                            self::fields::TsCallSignatureDeclField::Span,
42223                        ));
42224                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42225                        span,
42226                        visitor,
42227                        &mut *__ast_path,
42228                    )
42229                };
42230                {
42231                    let mut __ast_path =
42232                        __ast_path.with_guard(AstParentNodeRef::TsCallSignatureDecl(
42233                            self,
42234                            self::fields::TsCallSignatureDeclField::Params(usize::MAX),
42235                        ));
42236                    <Vec<TsFnParam> as VisitWithAstPath<V>>::visit_with_ast_path(
42237                        params,
42238                        visitor,
42239                        &mut *__ast_path,
42240                    )
42241                };
42242                {
42243                    let mut __ast_path =
42244                        __ast_path.with_guard(AstParentNodeRef::TsCallSignatureDecl(
42245                            self,
42246                            self::fields::TsCallSignatureDeclField::TypeAnn,
42247                        ));
42248                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
42249                        type_ann,
42250                        visitor,
42251                        &mut *__ast_path,
42252                    )
42253                };
42254                {
42255                    let mut __ast_path =
42256                        __ast_path.with_guard(AstParentNodeRef::TsCallSignatureDecl(
42257                            self,
42258                            self::fields::TsCallSignatureDeclField::TypeParams,
42259                        ));
42260                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
42261                        type_params,
42262                        visitor,
42263                        &mut *__ast_path,
42264                    )
42265                };
42266            }
42267        }
42268    }
42269}
42270#[cfg(any(docsrs, feature = "path"))]
42271#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42272impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsConditionalType {
42273    #[doc = "Calls [VisitAstPath`::visit_ts_conditional_type`] with `self`."]
42274    fn visit_with_ast_path<'ast: 'r, 'r>(
42275        &'ast self,
42276        visitor: &mut V,
42277        __ast_path: &mut AstNodePath<'r>,
42278    ) {
42279        <V as VisitAstPath>::visit_ts_conditional_type(visitor, self, __ast_path)
42280    }
42281
42282    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42283        &'ast self,
42284        visitor: &mut V,
42285        __ast_path: &mut AstNodePath<'r>,
42286    ) {
42287        match self {
42288            TsConditionalType {
42289                span,
42290                check_type,
42291                extends_type,
42292                true_type,
42293                false_type,
42294            } => {
42295                {
42296                    let mut __ast_path =
42297                        __ast_path.with_guard(AstParentNodeRef::TsConditionalType(
42298                            self,
42299                            self::fields::TsConditionalTypeField::Span,
42300                        ));
42301                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42302                        span,
42303                        visitor,
42304                        &mut *__ast_path,
42305                    )
42306                };
42307                {
42308                    let mut __ast_path =
42309                        __ast_path.with_guard(AstParentNodeRef::TsConditionalType(
42310                            self,
42311                            self::fields::TsConditionalTypeField::CheckType,
42312                        ));
42313                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
42314                        check_type,
42315                        visitor,
42316                        &mut *__ast_path,
42317                    )
42318                };
42319                {
42320                    let mut __ast_path =
42321                        __ast_path.with_guard(AstParentNodeRef::TsConditionalType(
42322                            self,
42323                            self::fields::TsConditionalTypeField::ExtendsType,
42324                        ));
42325                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
42326                        extends_type,
42327                        visitor,
42328                        &mut *__ast_path,
42329                    )
42330                };
42331                {
42332                    let mut __ast_path =
42333                        __ast_path.with_guard(AstParentNodeRef::TsConditionalType(
42334                            self,
42335                            self::fields::TsConditionalTypeField::TrueType,
42336                        ));
42337                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
42338                        true_type,
42339                        visitor,
42340                        &mut *__ast_path,
42341                    )
42342                };
42343                {
42344                    let mut __ast_path =
42345                        __ast_path.with_guard(AstParentNodeRef::TsConditionalType(
42346                            self,
42347                            self::fields::TsConditionalTypeField::FalseType,
42348                        ));
42349                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
42350                        false_type,
42351                        visitor,
42352                        &mut *__ast_path,
42353                    )
42354                };
42355            }
42356        }
42357    }
42358}
42359#[cfg(any(docsrs, feature = "path"))]
42360#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42361impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsConstAssertion {
42362    #[doc = "Calls [VisitAstPath`::visit_ts_const_assertion`] with `self`."]
42363    fn visit_with_ast_path<'ast: 'r, 'r>(
42364        &'ast self,
42365        visitor: &mut V,
42366        __ast_path: &mut AstNodePath<'r>,
42367    ) {
42368        <V as VisitAstPath>::visit_ts_const_assertion(visitor, self, __ast_path)
42369    }
42370
42371    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42372        &'ast self,
42373        visitor: &mut V,
42374        __ast_path: &mut AstNodePath<'r>,
42375    ) {
42376        match self {
42377            TsConstAssertion { span, expr } => {
42378                {
42379                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsConstAssertion(
42380                        self,
42381                        self::fields::TsConstAssertionField::Span,
42382                    ));
42383                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42384                        span,
42385                        visitor,
42386                        &mut *__ast_path,
42387                    )
42388                };
42389                {
42390                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsConstAssertion(
42391                        self,
42392                        self::fields::TsConstAssertionField::Expr,
42393                    ));
42394                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
42395                        expr,
42396                        visitor,
42397                        &mut *__ast_path,
42398                    )
42399                };
42400            }
42401        }
42402    }
42403}
42404#[cfg(any(docsrs, feature = "path"))]
42405#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42406impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsConstructSignatureDecl {
42407    #[doc = "Calls [VisitAstPath`::visit_ts_construct_signature_decl`] with `self`."]
42408    fn visit_with_ast_path<'ast: 'r, 'r>(
42409        &'ast self,
42410        visitor: &mut V,
42411        __ast_path: &mut AstNodePath<'r>,
42412    ) {
42413        <V as VisitAstPath>::visit_ts_construct_signature_decl(visitor, self, __ast_path)
42414    }
42415
42416    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42417        &'ast self,
42418        visitor: &mut V,
42419        __ast_path: &mut AstNodePath<'r>,
42420    ) {
42421        match self {
42422            TsConstructSignatureDecl {
42423                span,
42424                params,
42425                type_ann,
42426                type_params,
42427            } => {
42428                {
42429                    let mut __ast_path =
42430                        __ast_path.with_guard(AstParentNodeRef::TsConstructSignatureDecl(
42431                            self,
42432                            self::fields::TsConstructSignatureDeclField::Span,
42433                        ));
42434                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42435                        span,
42436                        visitor,
42437                        &mut *__ast_path,
42438                    )
42439                };
42440                {
42441                    let mut __ast_path =
42442                        __ast_path.with_guard(AstParentNodeRef::TsConstructSignatureDecl(
42443                            self,
42444                            self::fields::TsConstructSignatureDeclField::Params(usize::MAX),
42445                        ));
42446                    <Vec<TsFnParam> as VisitWithAstPath<V>>::visit_with_ast_path(
42447                        params,
42448                        visitor,
42449                        &mut *__ast_path,
42450                    )
42451                };
42452                {
42453                    let mut __ast_path =
42454                        __ast_path.with_guard(AstParentNodeRef::TsConstructSignatureDecl(
42455                            self,
42456                            self::fields::TsConstructSignatureDeclField::TypeAnn,
42457                        ));
42458                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
42459                        type_ann,
42460                        visitor,
42461                        &mut *__ast_path,
42462                    )
42463                };
42464                {
42465                    let mut __ast_path =
42466                        __ast_path.with_guard(AstParentNodeRef::TsConstructSignatureDecl(
42467                            self,
42468                            self::fields::TsConstructSignatureDeclField::TypeParams,
42469                        ));
42470                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
42471                        type_params,
42472                        visitor,
42473                        &mut *__ast_path,
42474                    )
42475                };
42476            }
42477        }
42478    }
42479}
42480#[cfg(any(docsrs, feature = "path"))]
42481#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42482impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsConstructorType {
42483    #[doc = "Calls [VisitAstPath`::visit_ts_constructor_type`] with `self`."]
42484    fn visit_with_ast_path<'ast: 'r, 'r>(
42485        &'ast self,
42486        visitor: &mut V,
42487        __ast_path: &mut AstNodePath<'r>,
42488    ) {
42489        <V as VisitAstPath>::visit_ts_constructor_type(visitor, self, __ast_path)
42490    }
42491
42492    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42493        &'ast self,
42494        visitor: &mut V,
42495        __ast_path: &mut AstNodePath<'r>,
42496    ) {
42497        match self {
42498            TsConstructorType {
42499                span,
42500                params,
42501                type_params,
42502                type_ann,
42503                is_abstract,
42504            } => {
42505                {
42506                    let mut __ast_path =
42507                        __ast_path.with_guard(AstParentNodeRef::TsConstructorType(
42508                            self,
42509                            self::fields::TsConstructorTypeField::Span,
42510                        ));
42511                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42512                        span,
42513                        visitor,
42514                        &mut *__ast_path,
42515                    )
42516                };
42517                {
42518                    let mut __ast_path =
42519                        __ast_path.with_guard(AstParentNodeRef::TsConstructorType(
42520                            self,
42521                            self::fields::TsConstructorTypeField::Params(usize::MAX),
42522                        ));
42523                    <Vec<TsFnParam> as VisitWithAstPath<V>>::visit_with_ast_path(
42524                        params,
42525                        visitor,
42526                        &mut *__ast_path,
42527                    )
42528                };
42529                {
42530                    let mut __ast_path =
42531                        __ast_path.with_guard(AstParentNodeRef::TsConstructorType(
42532                            self,
42533                            self::fields::TsConstructorTypeField::TypeParams,
42534                        ));
42535                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
42536                        type_params,
42537                        visitor,
42538                        &mut *__ast_path,
42539                    )
42540                };
42541                {
42542                    let mut __ast_path =
42543                        __ast_path.with_guard(AstParentNodeRef::TsConstructorType(
42544                            self,
42545                            self::fields::TsConstructorTypeField::TypeAnn,
42546                        ));
42547                    <Box<TsTypeAnn> as VisitWithAstPath<V>>::visit_with_ast_path(
42548                        type_ann,
42549                        visitor,
42550                        &mut *__ast_path,
42551                    )
42552                };
42553            }
42554        }
42555    }
42556}
42557#[cfg(any(docsrs, feature = "path"))]
42558#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42559impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsEntityName {
42560    #[doc = "Calls [VisitAstPath`::visit_ts_entity_name`] with `self`."]
42561    fn visit_with_ast_path<'ast: 'r, 'r>(
42562        &'ast self,
42563        visitor: &mut V,
42564        __ast_path: &mut AstNodePath<'r>,
42565    ) {
42566        <V as VisitAstPath>::visit_ts_entity_name(visitor, self, __ast_path)
42567    }
42568
42569    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42570        &'ast self,
42571        visitor: &mut V,
42572        __ast_path: &mut AstNodePath<'r>,
42573    ) {
42574        match self {
42575            TsEntityName::TsQualifiedName { 0: _field_0 } => {
42576                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEntityName(
42577                    self,
42578                    self::fields::TsEntityNameField::TsQualifiedName,
42579                ));
42580                <Box<TsQualifiedName> as VisitWithAstPath<V>>::visit_with_ast_path(
42581                    _field_0,
42582                    visitor,
42583                    &mut *__ast_path,
42584                );
42585            }
42586            TsEntityName::Ident { 0: _field_0 } => {
42587                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEntityName(
42588                    self,
42589                    self::fields::TsEntityNameField::Ident,
42590                ));
42591                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
42592                    _field_0,
42593                    visitor,
42594                    &mut *__ast_path,
42595                );
42596            }
42597        }
42598    }
42599}
42600#[cfg(any(docsrs, feature = "path"))]
42601#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42602impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsEnumDecl {
42603    #[doc = "Calls [VisitAstPath`::visit_ts_enum_decl`] with `self`."]
42604    fn visit_with_ast_path<'ast: 'r, 'r>(
42605        &'ast self,
42606        visitor: &mut V,
42607        __ast_path: &mut AstNodePath<'r>,
42608    ) {
42609        <V as VisitAstPath>::visit_ts_enum_decl(visitor, self, __ast_path)
42610    }
42611
42612    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42613        &'ast self,
42614        visitor: &mut V,
42615        __ast_path: &mut AstNodePath<'r>,
42616    ) {
42617        match self {
42618            TsEnumDecl {
42619                span,
42620                declare,
42621                is_const,
42622                id,
42623                members,
42624            } => {
42625                {
42626                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEnumDecl(
42627                        self,
42628                        self::fields::TsEnumDeclField::Span,
42629                    ));
42630                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42631                        span,
42632                        visitor,
42633                        &mut *__ast_path,
42634                    )
42635                };
42636                {
42637                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEnumDecl(
42638                        self,
42639                        self::fields::TsEnumDeclField::Id,
42640                    ));
42641                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
42642                        id,
42643                        visitor,
42644                        &mut *__ast_path,
42645                    )
42646                };
42647                {
42648                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEnumDecl(
42649                        self,
42650                        self::fields::TsEnumDeclField::Members(usize::MAX),
42651                    ));
42652                    <Vec<TsEnumMember> as VisitWithAstPath<V>>::visit_with_ast_path(
42653                        members,
42654                        visitor,
42655                        &mut *__ast_path,
42656                    )
42657                };
42658            }
42659        }
42660    }
42661}
42662#[cfg(any(docsrs, feature = "path"))]
42663#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42664impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsEnumMember {
42665    #[doc = "Calls [VisitAstPath`::visit_ts_enum_member`] with `self`."]
42666    fn visit_with_ast_path<'ast: 'r, 'r>(
42667        &'ast self,
42668        visitor: &mut V,
42669        __ast_path: &mut AstNodePath<'r>,
42670    ) {
42671        <V as VisitAstPath>::visit_ts_enum_member(visitor, self, __ast_path)
42672    }
42673
42674    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42675        &'ast self,
42676        visitor: &mut V,
42677        __ast_path: &mut AstNodePath<'r>,
42678    ) {
42679        match self {
42680            TsEnumMember { span, id, init } => {
42681                {
42682                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEnumMember(
42683                        self,
42684                        self::fields::TsEnumMemberField::Span,
42685                    ));
42686                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42687                        span,
42688                        visitor,
42689                        &mut *__ast_path,
42690                    )
42691                };
42692                {
42693                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEnumMember(
42694                        self,
42695                        self::fields::TsEnumMemberField::Id,
42696                    ));
42697                    <TsEnumMemberId as VisitWithAstPath<V>>::visit_with_ast_path(
42698                        id,
42699                        visitor,
42700                        &mut *__ast_path,
42701                    )
42702                };
42703                {
42704                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEnumMember(
42705                        self,
42706                        self::fields::TsEnumMemberField::Init,
42707                    ));
42708                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
42709                        init,
42710                        visitor,
42711                        &mut *__ast_path,
42712                    )
42713                };
42714            }
42715        }
42716    }
42717}
42718#[cfg(any(docsrs, feature = "path"))]
42719#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42720impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsEnumMemberId {
42721    #[doc = "Calls [VisitAstPath`::visit_ts_enum_member_id`] with `self`."]
42722    fn visit_with_ast_path<'ast: 'r, 'r>(
42723        &'ast self,
42724        visitor: &mut V,
42725        __ast_path: &mut AstNodePath<'r>,
42726    ) {
42727        <V as VisitAstPath>::visit_ts_enum_member_id(visitor, self, __ast_path)
42728    }
42729
42730    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42731        &'ast self,
42732        visitor: &mut V,
42733        __ast_path: &mut AstNodePath<'r>,
42734    ) {
42735        match self {
42736            TsEnumMemberId::Ident { 0: _field_0 } => {
42737                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEnumMemberId(
42738                    self,
42739                    self::fields::TsEnumMemberIdField::Ident,
42740                ));
42741                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
42742                    _field_0,
42743                    visitor,
42744                    &mut *__ast_path,
42745                );
42746            }
42747            TsEnumMemberId::Str { 0: _field_0 } => {
42748                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEnumMemberId(
42749                    self,
42750                    self::fields::TsEnumMemberIdField::Str,
42751                ));
42752                <Str as VisitWithAstPath<V>>::visit_with_ast_path(
42753                    _field_0,
42754                    visitor,
42755                    &mut *__ast_path,
42756                );
42757            }
42758        }
42759    }
42760}
42761#[cfg(any(docsrs, feature = "path"))]
42762#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42763impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsExportAssignment {
42764    #[doc = "Calls [VisitAstPath`::visit_ts_export_assignment`] with `self`."]
42765    fn visit_with_ast_path<'ast: 'r, 'r>(
42766        &'ast self,
42767        visitor: &mut V,
42768        __ast_path: &mut AstNodePath<'r>,
42769    ) {
42770        <V as VisitAstPath>::visit_ts_export_assignment(visitor, self, __ast_path)
42771    }
42772
42773    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42774        &'ast self,
42775        visitor: &mut V,
42776        __ast_path: &mut AstNodePath<'r>,
42777    ) {
42778        match self {
42779            TsExportAssignment { span, expr } => {
42780                {
42781                    let mut __ast_path =
42782                        __ast_path.with_guard(AstParentNodeRef::TsExportAssignment(
42783                            self,
42784                            self::fields::TsExportAssignmentField::Span,
42785                        ));
42786                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42787                        span,
42788                        visitor,
42789                        &mut *__ast_path,
42790                    )
42791                };
42792                {
42793                    let mut __ast_path =
42794                        __ast_path.with_guard(AstParentNodeRef::TsExportAssignment(
42795                            self,
42796                            self::fields::TsExportAssignmentField::Expr,
42797                        ));
42798                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
42799                        expr,
42800                        visitor,
42801                        &mut *__ast_path,
42802                    )
42803                };
42804            }
42805        }
42806    }
42807}
42808#[cfg(any(docsrs, feature = "path"))]
42809#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42810impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsExprWithTypeArgs {
42811    #[doc = "Calls [VisitAstPath`::visit_ts_expr_with_type_args`] with `self`."]
42812    fn visit_with_ast_path<'ast: 'r, 'r>(
42813        &'ast self,
42814        visitor: &mut V,
42815        __ast_path: &mut AstNodePath<'r>,
42816    ) {
42817        <V as VisitAstPath>::visit_ts_expr_with_type_args(visitor, self, __ast_path)
42818    }
42819
42820    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42821        &'ast self,
42822        visitor: &mut V,
42823        __ast_path: &mut AstNodePath<'r>,
42824    ) {
42825        match self {
42826            TsExprWithTypeArgs {
42827                span,
42828                expr,
42829                type_args,
42830            } => {
42831                {
42832                    let mut __ast_path =
42833                        __ast_path.with_guard(AstParentNodeRef::TsExprWithTypeArgs(
42834                            self,
42835                            self::fields::TsExprWithTypeArgsField::Span,
42836                        ));
42837                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42838                        span,
42839                        visitor,
42840                        &mut *__ast_path,
42841                    )
42842                };
42843                {
42844                    let mut __ast_path =
42845                        __ast_path.with_guard(AstParentNodeRef::TsExprWithTypeArgs(
42846                            self,
42847                            self::fields::TsExprWithTypeArgsField::Expr,
42848                        ));
42849                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
42850                        expr,
42851                        visitor,
42852                        &mut *__ast_path,
42853                    )
42854                };
42855                {
42856                    let mut __ast_path =
42857                        __ast_path.with_guard(AstParentNodeRef::TsExprWithTypeArgs(
42858                            self,
42859                            self::fields::TsExprWithTypeArgsField::TypeArgs,
42860                        ));
42861                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_args , visitor , & mut * __ast_path)
42862                };
42863            }
42864        }
42865    }
42866}
42867#[cfg(any(docsrs, feature = "path"))]
42868#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42869impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsExternalModuleRef {
42870    #[doc = "Calls [VisitAstPath`::visit_ts_external_module_ref`] with `self`."]
42871    fn visit_with_ast_path<'ast: 'r, 'r>(
42872        &'ast self,
42873        visitor: &mut V,
42874        __ast_path: &mut AstNodePath<'r>,
42875    ) {
42876        <V as VisitAstPath>::visit_ts_external_module_ref(visitor, self, __ast_path)
42877    }
42878
42879    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42880        &'ast self,
42881        visitor: &mut V,
42882        __ast_path: &mut AstNodePath<'r>,
42883    ) {
42884        match self {
42885            TsExternalModuleRef { span, expr } => {
42886                {
42887                    let mut __ast_path =
42888                        __ast_path.with_guard(AstParentNodeRef::TsExternalModuleRef(
42889                            self,
42890                            self::fields::TsExternalModuleRefField::Span,
42891                        ));
42892                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42893                        span,
42894                        visitor,
42895                        &mut *__ast_path,
42896                    )
42897                };
42898                {
42899                    let mut __ast_path =
42900                        __ast_path.with_guard(AstParentNodeRef::TsExternalModuleRef(
42901                            self,
42902                            self::fields::TsExternalModuleRefField::Expr,
42903                        ));
42904                    <Str as VisitWithAstPath<V>>::visit_with_ast_path(
42905                        expr,
42906                        visitor,
42907                        &mut *__ast_path,
42908                    )
42909                };
42910            }
42911        }
42912    }
42913}
42914#[cfg(any(docsrs, feature = "path"))]
42915#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42916impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsFnOrConstructorType {
42917    #[doc = "Calls [VisitAstPath`::visit_ts_fn_or_constructor_type`] with `self`."]
42918    fn visit_with_ast_path<'ast: 'r, 'r>(
42919        &'ast self,
42920        visitor: &mut V,
42921        __ast_path: &mut AstNodePath<'r>,
42922    ) {
42923        <V as VisitAstPath>::visit_ts_fn_or_constructor_type(visitor, self, __ast_path)
42924    }
42925
42926    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42927        &'ast self,
42928        visitor: &mut V,
42929        __ast_path: &mut AstNodePath<'r>,
42930    ) {
42931        match self {
42932            TsFnOrConstructorType::TsFnType { 0: _field_0 } => {
42933                let mut __ast_path =
42934                    __ast_path.with_guard(AstParentNodeRef::TsFnOrConstructorType(
42935                        self,
42936                        self::fields::TsFnOrConstructorTypeField::TsFnType,
42937                    ));
42938                <TsFnType as VisitWithAstPath<V>>::visit_with_ast_path(
42939                    _field_0,
42940                    visitor,
42941                    &mut *__ast_path,
42942                );
42943            }
42944            TsFnOrConstructorType::TsConstructorType { 0: _field_0 } => {
42945                let mut __ast_path =
42946                    __ast_path.with_guard(AstParentNodeRef::TsFnOrConstructorType(
42947                        self,
42948                        self::fields::TsFnOrConstructorTypeField::TsConstructorType,
42949                    ));
42950                <TsConstructorType as VisitWithAstPath<V>>::visit_with_ast_path(
42951                    _field_0,
42952                    visitor,
42953                    &mut *__ast_path,
42954                );
42955            }
42956        }
42957    }
42958}
42959#[cfg(any(docsrs, feature = "path"))]
42960#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42961impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsFnParam {
42962    #[doc = "Calls [VisitAstPath`::visit_ts_fn_param`] with `self`."]
42963    fn visit_with_ast_path<'ast: 'r, 'r>(
42964        &'ast self,
42965        visitor: &mut V,
42966        __ast_path: &mut AstNodePath<'r>,
42967    ) {
42968        <V as VisitAstPath>::visit_ts_fn_param(visitor, self, __ast_path)
42969    }
42970
42971    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42972        &'ast self,
42973        visitor: &mut V,
42974        __ast_path: &mut AstNodePath<'r>,
42975    ) {
42976        match self {
42977            TsFnParam::Ident { 0: _field_0 } => {
42978                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsFnParam(
42979                    self,
42980                    self::fields::TsFnParamField::Ident,
42981                ));
42982                <BindingIdent as VisitWithAstPath<V>>::visit_with_ast_path(
42983                    _field_0,
42984                    visitor,
42985                    &mut *__ast_path,
42986                );
42987            }
42988            TsFnParam::Array { 0: _field_0 } => {
42989                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsFnParam(
42990                    self,
42991                    self::fields::TsFnParamField::Array,
42992                ));
42993                <ArrayPat as VisitWithAstPath<V>>::visit_with_ast_path(
42994                    _field_0,
42995                    visitor,
42996                    &mut *__ast_path,
42997                );
42998            }
42999            TsFnParam::Rest { 0: _field_0 } => {
43000                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsFnParam(
43001                    self,
43002                    self::fields::TsFnParamField::Rest,
43003                ));
43004                <RestPat as VisitWithAstPath<V>>::visit_with_ast_path(
43005                    _field_0,
43006                    visitor,
43007                    &mut *__ast_path,
43008                );
43009            }
43010            TsFnParam::Object { 0: _field_0 } => {
43011                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsFnParam(
43012                    self,
43013                    self::fields::TsFnParamField::Object,
43014                ));
43015                <ObjectPat as VisitWithAstPath<V>>::visit_with_ast_path(
43016                    _field_0,
43017                    visitor,
43018                    &mut *__ast_path,
43019                );
43020            }
43021        }
43022    }
43023}
43024#[cfg(any(docsrs, feature = "path"))]
43025#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43026impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsFnType {
43027    #[doc = "Calls [VisitAstPath`::visit_ts_fn_type`] with `self`."]
43028    fn visit_with_ast_path<'ast: 'r, 'r>(
43029        &'ast self,
43030        visitor: &mut V,
43031        __ast_path: &mut AstNodePath<'r>,
43032    ) {
43033        <V as VisitAstPath>::visit_ts_fn_type(visitor, self, __ast_path)
43034    }
43035
43036    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43037        &'ast self,
43038        visitor: &mut V,
43039        __ast_path: &mut AstNodePath<'r>,
43040    ) {
43041        match self {
43042            TsFnType {
43043                span,
43044                params,
43045                type_params,
43046                type_ann,
43047            } => {
43048                {
43049                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsFnType(
43050                        self,
43051                        self::fields::TsFnTypeField::Span,
43052                    ));
43053                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43054                        span,
43055                        visitor,
43056                        &mut *__ast_path,
43057                    )
43058                };
43059                {
43060                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsFnType(
43061                        self,
43062                        self::fields::TsFnTypeField::Params(usize::MAX),
43063                    ));
43064                    <Vec<TsFnParam> as VisitWithAstPath<V>>::visit_with_ast_path(
43065                        params,
43066                        visitor,
43067                        &mut *__ast_path,
43068                    )
43069                };
43070                {
43071                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsFnType(
43072                        self,
43073                        self::fields::TsFnTypeField::TypeParams,
43074                    ));
43075                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
43076                        type_params,
43077                        visitor,
43078                        &mut *__ast_path,
43079                    )
43080                };
43081                {
43082                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsFnType(
43083                        self,
43084                        self::fields::TsFnTypeField::TypeAnn,
43085                    ));
43086                    <Box<TsTypeAnn> as VisitWithAstPath<V>>::visit_with_ast_path(
43087                        type_ann,
43088                        visitor,
43089                        &mut *__ast_path,
43090                    )
43091                };
43092            }
43093        }
43094    }
43095}
43096#[cfg(any(docsrs, feature = "path"))]
43097#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43098impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsGetterSignature {
43099    #[doc = "Calls [VisitAstPath`::visit_ts_getter_signature`] with `self`."]
43100    fn visit_with_ast_path<'ast: 'r, 'r>(
43101        &'ast self,
43102        visitor: &mut V,
43103        __ast_path: &mut AstNodePath<'r>,
43104    ) {
43105        <V as VisitAstPath>::visit_ts_getter_signature(visitor, self, __ast_path)
43106    }
43107
43108    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43109        &'ast self,
43110        visitor: &mut V,
43111        __ast_path: &mut AstNodePath<'r>,
43112    ) {
43113        match self {
43114            TsGetterSignature {
43115                span,
43116                key,
43117                computed,
43118                type_ann,
43119            } => {
43120                {
43121                    let mut __ast_path =
43122                        __ast_path.with_guard(AstParentNodeRef::TsGetterSignature(
43123                            self,
43124                            self::fields::TsGetterSignatureField::Span,
43125                        ));
43126                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43127                        span,
43128                        visitor,
43129                        &mut *__ast_path,
43130                    )
43131                };
43132                {
43133                    let mut __ast_path =
43134                        __ast_path.with_guard(AstParentNodeRef::TsGetterSignature(
43135                            self,
43136                            self::fields::TsGetterSignatureField::Key,
43137                        ));
43138                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
43139                        key,
43140                        visitor,
43141                        &mut *__ast_path,
43142                    )
43143                };
43144                {
43145                    let mut __ast_path =
43146                        __ast_path.with_guard(AstParentNodeRef::TsGetterSignature(
43147                            self,
43148                            self::fields::TsGetterSignatureField::TypeAnn,
43149                        ));
43150                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
43151                        type_ann,
43152                        visitor,
43153                        &mut *__ast_path,
43154                    )
43155                };
43156            }
43157        }
43158    }
43159}
43160#[cfg(any(docsrs, feature = "path"))]
43161#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43162impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsImportCallOptions {
43163    #[doc = "Calls [VisitAstPath`::visit_ts_import_call_options`] with `self`."]
43164    fn visit_with_ast_path<'ast: 'r, 'r>(
43165        &'ast self,
43166        visitor: &mut V,
43167        __ast_path: &mut AstNodePath<'r>,
43168    ) {
43169        <V as VisitAstPath>::visit_ts_import_call_options(visitor, self, __ast_path)
43170    }
43171
43172    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43173        &'ast self,
43174        visitor: &mut V,
43175        __ast_path: &mut AstNodePath<'r>,
43176    ) {
43177        match self {
43178            TsImportCallOptions { span, with } => {
43179                {
43180                    let mut __ast_path =
43181                        __ast_path.with_guard(AstParentNodeRef::TsImportCallOptions(
43182                            self,
43183                            self::fields::TsImportCallOptionsField::Span,
43184                        ));
43185                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43186                        span,
43187                        visitor,
43188                        &mut *__ast_path,
43189                    )
43190                };
43191                {
43192                    let mut __ast_path =
43193                        __ast_path.with_guard(AstParentNodeRef::TsImportCallOptions(
43194                            self,
43195                            self::fields::TsImportCallOptionsField::With,
43196                        ));
43197                    <Box<ObjectLit> as VisitWithAstPath<V>>::visit_with_ast_path(
43198                        with,
43199                        visitor,
43200                        &mut *__ast_path,
43201                    )
43202                };
43203            }
43204        }
43205    }
43206}
43207#[cfg(any(docsrs, feature = "path"))]
43208#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43209impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsImportEqualsDecl {
43210    #[doc = "Calls [VisitAstPath`::visit_ts_import_equals_decl`] with `self`."]
43211    fn visit_with_ast_path<'ast: 'r, 'r>(
43212        &'ast self,
43213        visitor: &mut V,
43214        __ast_path: &mut AstNodePath<'r>,
43215    ) {
43216        <V as VisitAstPath>::visit_ts_import_equals_decl(visitor, self, __ast_path)
43217    }
43218
43219    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43220        &'ast self,
43221        visitor: &mut V,
43222        __ast_path: &mut AstNodePath<'r>,
43223    ) {
43224        match self {
43225            TsImportEqualsDecl {
43226                span,
43227                is_export,
43228                is_type_only,
43229                id,
43230                module_ref,
43231            } => {
43232                {
43233                    let mut __ast_path =
43234                        __ast_path.with_guard(AstParentNodeRef::TsImportEqualsDecl(
43235                            self,
43236                            self::fields::TsImportEqualsDeclField::Span,
43237                        ));
43238                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43239                        span,
43240                        visitor,
43241                        &mut *__ast_path,
43242                    )
43243                };
43244                {
43245                    let mut __ast_path =
43246                        __ast_path.with_guard(AstParentNodeRef::TsImportEqualsDecl(
43247                            self,
43248                            self::fields::TsImportEqualsDeclField::Id,
43249                        ));
43250                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
43251                        id,
43252                        visitor,
43253                        &mut *__ast_path,
43254                    )
43255                };
43256                {
43257                    let mut __ast_path =
43258                        __ast_path.with_guard(AstParentNodeRef::TsImportEqualsDecl(
43259                            self,
43260                            self::fields::TsImportEqualsDeclField::ModuleRef,
43261                        ));
43262                    <TsModuleRef as VisitWithAstPath<V>>::visit_with_ast_path(
43263                        module_ref,
43264                        visitor,
43265                        &mut *__ast_path,
43266                    )
43267                };
43268            }
43269        }
43270    }
43271}
43272#[cfg(any(docsrs, feature = "path"))]
43273#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43274impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsImportType {
43275    #[doc = "Calls [VisitAstPath`::visit_ts_import_type`] with `self`."]
43276    fn visit_with_ast_path<'ast: 'r, 'r>(
43277        &'ast self,
43278        visitor: &mut V,
43279        __ast_path: &mut AstNodePath<'r>,
43280    ) {
43281        <V as VisitAstPath>::visit_ts_import_type(visitor, self, __ast_path)
43282    }
43283
43284    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43285        &'ast self,
43286        visitor: &mut V,
43287        __ast_path: &mut AstNodePath<'r>,
43288    ) {
43289        match self {
43290            TsImportType {
43291                span,
43292                arg,
43293                qualifier,
43294                type_args,
43295                attributes,
43296            } => {
43297                {
43298                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsImportType(
43299                        self,
43300                        self::fields::TsImportTypeField::Span,
43301                    ));
43302                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43303                        span,
43304                        visitor,
43305                        &mut *__ast_path,
43306                    )
43307                };
43308                {
43309                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsImportType(
43310                        self,
43311                        self::fields::TsImportTypeField::Arg,
43312                    ));
43313                    <Str as VisitWithAstPath<V>>::visit_with_ast_path(
43314                        arg,
43315                        visitor,
43316                        &mut *__ast_path,
43317                    )
43318                };
43319                {
43320                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsImportType(
43321                        self,
43322                        self::fields::TsImportTypeField::Qualifier,
43323                    ));
43324                    <Option<TsEntityName> as VisitWithAstPath<V>>::visit_with_ast_path(
43325                        qualifier,
43326                        visitor,
43327                        &mut *__ast_path,
43328                    )
43329                };
43330                {
43331                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsImportType(
43332                        self,
43333                        self::fields::TsImportTypeField::TypeArgs,
43334                    ));
43335                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_args , visitor , & mut * __ast_path)
43336                };
43337                {
43338                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsImportType(
43339                        self,
43340                        self::fields::TsImportTypeField::Attributes,
43341                    ));
43342                    <Option<TsImportCallOptions> as VisitWithAstPath<V>>::visit_with_ast_path(
43343                        attributes,
43344                        visitor,
43345                        &mut *__ast_path,
43346                    )
43347                };
43348            }
43349        }
43350    }
43351}
43352#[cfg(any(docsrs, feature = "path"))]
43353#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43354impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsIndexSignature {
43355    #[doc = "Calls [VisitAstPath`::visit_ts_index_signature`] with `self`."]
43356    fn visit_with_ast_path<'ast: 'r, 'r>(
43357        &'ast self,
43358        visitor: &mut V,
43359        __ast_path: &mut AstNodePath<'r>,
43360    ) {
43361        <V as VisitAstPath>::visit_ts_index_signature(visitor, self, __ast_path)
43362    }
43363
43364    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43365        &'ast self,
43366        visitor: &mut V,
43367        __ast_path: &mut AstNodePath<'r>,
43368    ) {
43369        match self {
43370            TsIndexSignature {
43371                params,
43372                type_ann,
43373                readonly,
43374                is_static,
43375                span,
43376            } => {
43377                {
43378                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsIndexSignature(
43379                        self,
43380                        self::fields::TsIndexSignatureField::Params(usize::MAX),
43381                    ));
43382                    <Vec<TsFnParam> as VisitWithAstPath<V>>::visit_with_ast_path(
43383                        params,
43384                        visitor,
43385                        &mut *__ast_path,
43386                    )
43387                };
43388                {
43389                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsIndexSignature(
43390                        self,
43391                        self::fields::TsIndexSignatureField::TypeAnn,
43392                    ));
43393                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
43394                        type_ann,
43395                        visitor,
43396                        &mut *__ast_path,
43397                    )
43398                };
43399                {
43400                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsIndexSignature(
43401                        self,
43402                        self::fields::TsIndexSignatureField::Span,
43403                    ));
43404                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43405                        span,
43406                        visitor,
43407                        &mut *__ast_path,
43408                    )
43409                };
43410            }
43411        }
43412    }
43413}
43414#[cfg(any(docsrs, feature = "path"))]
43415#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43416impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsIndexedAccessType {
43417    #[doc = "Calls [VisitAstPath`::visit_ts_indexed_access_type`] with `self`."]
43418    fn visit_with_ast_path<'ast: 'r, 'r>(
43419        &'ast self,
43420        visitor: &mut V,
43421        __ast_path: &mut AstNodePath<'r>,
43422    ) {
43423        <V as VisitAstPath>::visit_ts_indexed_access_type(visitor, self, __ast_path)
43424    }
43425
43426    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43427        &'ast self,
43428        visitor: &mut V,
43429        __ast_path: &mut AstNodePath<'r>,
43430    ) {
43431        match self {
43432            TsIndexedAccessType {
43433                span,
43434                readonly,
43435                obj_type,
43436                index_type,
43437            } => {
43438                {
43439                    let mut __ast_path =
43440                        __ast_path.with_guard(AstParentNodeRef::TsIndexedAccessType(
43441                            self,
43442                            self::fields::TsIndexedAccessTypeField::Span,
43443                        ));
43444                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43445                        span,
43446                        visitor,
43447                        &mut *__ast_path,
43448                    )
43449                };
43450                {
43451                    let mut __ast_path =
43452                        __ast_path.with_guard(AstParentNodeRef::TsIndexedAccessType(
43453                            self,
43454                            self::fields::TsIndexedAccessTypeField::ObjType,
43455                        ));
43456                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
43457                        obj_type,
43458                        visitor,
43459                        &mut *__ast_path,
43460                    )
43461                };
43462                {
43463                    let mut __ast_path =
43464                        __ast_path.with_guard(AstParentNodeRef::TsIndexedAccessType(
43465                            self,
43466                            self::fields::TsIndexedAccessTypeField::IndexType,
43467                        ));
43468                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
43469                        index_type,
43470                        visitor,
43471                        &mut *__ast_path,
43472                    )
43473                };
43474            }
43475        }
43476    }
43477}
43478#[cfg(any(docsrs, feature = "path"))]
43479#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43480impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsInferType {
43481    #[doc = "Calls [VisitAstPath`::visit_ts_infer_type`] with `self`."]
43482    fn visit_with_ast_path<'ast: 'r, 'r>(
43483        &'ast self,
43484        visitor: &mut V,
43485        __ast_path: &mut AstNodePath<'r>,
43486    ) {
43487        <V as VisitAstPath>::visit_ts_infer_type(visitor, self, __ast_path)
43488    }
43489
43490    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43491        &'ast self,
43492        visitor: &mut V,
43493        __ast_path: &mut AstNodePath<'r>,
43494    ) {
43495        match self {
43496            TsInferType { span, type_param } => {
43497                {
43498                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInferType(
43499                        self,
43500                        self::fields::TsInferTypeField::Span,
43501                    ));
43502                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43503                        span,
43504                        visitor,
43505                        &mut *__ast_path,
43506                    )
43507                };
43508                {
43509                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInferType(
43510                        self,
43511                        self::fields::TsInferTypeField::TypeParam,
43512                    ));
43513                    <TsTypeParam as VisitWithAstPath<V>>::visit_with_ast_path(
43514                        type_param,
43515                        visitor,
43516                        &mut *__ast_path,
43517                    )
43518                };
43519            }
43520        }
43521    }
43522}
43523#[cfg(any(docsrs, feature = "path"))]
43524#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43525impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsInstantiation {
43526    #[doc = "Calls [VisitAstPath`::visit_ts_instantiation`] with `self`."]
43527    fn visit_with_ast_path<'ast: 'r, 'r>(
43528        &'ast self,
43529        visitor: &mut V,
43530        __ast_path: &mut AstNodePath<'r>,
43531    ) {
43532        <V as VisitAstPath>::visit_ts_instantiation(visitor, self, __ast_path)
43533    }
43534
43535    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43536        &'ast self,
43537        visitor: &mut V,
43538        __ast_path: &mut AstNodePath<'r>,
43539    ) {
43540        match self {
43541            TsInstantiation {
43542                span,
43543                expr,
43544                type_args,
43545            } => {
43546                {
43547                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInstantiation(
43548                        self,
43549                        self::fields::TsInstantiationField::Span,
43550                    ));
43551                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43552                        span,
43553                        visitor,
43554                        &mut *__ast_path,
43555                    )
43556                };
43557                {
43558                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInstantiation(
43559                        self,
43560                        self::fields::TsInstantiationField::Expr,
43561                    ));
43562                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
43563                        expr,
43564                        visitor,
43565                        &mut *__ast_path,
43566                    )
43567                };
43568                {
43569                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInstantiation(
43570                        self,
43571                        self::fields::TsInstantiationField::TypeArgs,
43572                    ));
43573                    <Box<TsTypeParamInstantiation> as VisitWithAstPath<V>>::visit_with_ast_path(
43574                        type_args,
43575                        visitor,
43576                        &mut *__ast_path,
43577                    )
43578                };
43579            }
43580        }
43581    }
43582}
43583#[cfg(any(docsrs, feature = "path"))]
43584#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43585impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsInterfaceBody {
43586    #[doc = "Calls [VisitAstPath`::visit_ts_interface_body`] with `self`."]
43587    fn visit_with_ast_path<'ast: 'r, 'r>(
43588        &'ast self,
43589        visitor: &mut V,
43590        __ast_path: &mut AstNodePath<'r>,
43591    ) {
43592        <V as VisitAstPath>::visit_ts_interface_body(visitor, self, __ast_path)
43593    }
43594
43595    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43596        &'ast self,
43597        visitor: &mut V,
43598        __ast_path: &mut AstNodePath<'r>,
43599    ) {
43600        match self {
43601            TsInterfaceBody { span, body } => {
43602                {
43603                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInterfaceBody(
43604                        self,
43605                        self::fields::TsInterfaceBodyField::Span,
43606                    ));
43607                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43608                        span,
43609                        visitor,
43610                        &mut *__ast_path,
43611                    )
43612                };
43613                {
43614                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInterfaceBody(
43615                        self,
43616                        self::fields::TsInterfaceBodyField::Body(usize::MAX),
43617                    ));
43618                    <Vec<TsTypeElement> as VisitWithAstPath<V>>::visit_with_ast_path(
43619                        body,
43620                        visitor,
43621                        &mut *__ast_path,
43622                    )
43623                };
43624            }
43625        }
43626    }
43627}
43628#[cfg(any(docsrs, feature = "path"))]
43629#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43630impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsInterfaceDecl {
43631    #[doc = "Calls [VisitAstPath`::visit_ts_interface_decl`] with `self`."]
43632    fn visit_with_ast_path<'ast: 'r, 'r>(
43633        &'ast self,
43634        visitor: &mut V,
43635        __ast_path: &mut AstNodePath<'r>,
43636    ) {
43637        <V as VisitAstPath>::visit_ts_interface_decl(visitor, self, __ast_path)
43638    }
43639
43640    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43641        &'ast self,
43642        visitor: &mut V,
43643        __ast_path: &mut AstNodePath<'r>,
43644    ) {
43645        match self {
43646            TsInterfaceDecl {
43647                span,
43648                id,
43649                declare,
43650                type_params,
43651                extends,
43652                body,
43653            } => {
43654                {
43655                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInterfaceDecl(
43656                        self,
43657                        self::fields::TsInterfaceDeclField::Span,
43658                    ));
43659                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43660                        span,
43661                        visitor,
43662                        &mut *__ast_path,
43663                    )
43664                };
43665                {
43666                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInterfaceDecl(
43667                        self,
43668                        self::fields::TsInterfaceDeclField::Id,
43669                    ));
43670                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
43671                        id,
43672                        visitor,
43673                        &mut *__ast_path,
43674                    )
43675                };
43676                {
43677                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInterfaceDecl(
43678                        self,
43679                        self::fields::TsInterfaceDeclField::TypeParams,
43680                    ));
43681                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
43682                        type_params,
43683                        visitor,
43684                        &mut *__ast_path,
43685                    )
43686                };
43687                {
43688                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInterfaceDecl(
43689                        self,
43690                        self::fields::TsInterfaceDeclField::Extends(usize::MAX),
43691                    ));
43692                    <Vec<TsExprWithTypeArgs> as VisitWithAstPath<V>>::visit_with_ast_path(
43693                        extends,
43694                        visitor,
43695                        &mut *__ast_path,
43696                    )
43697                };
43698                {
43699                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInterfaceDecl(
43700                        self,
43701                        self::fields::TsInterfaceDeclField::Body,
43702                    ));
43703                    <TsInterfaceBody as VisitWithAstPath<V>>::visit_with_ast_path(
43704                        body,
43705                        visitor,
43706                        &mut *__ast_path,
43707                    )
43708                };
43709            }
43710        }
43711    }
43712}
43713#[cfg(any(docsrs, feature = "path"))]
43714#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43715impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsIntersectionType {
43716    #[doc = "Calls [VisitAstPath`::visit_ts_intersection_type`] with `self`."]
43717    fn visit_with_ast_path<'ast: 'r, 'r>(
43718        &'ast self,
43719        visitor: &mut V,
43720        __ast_path: &mut AstNodePath<'r>,
43721    ) {
43722        <V as VisitAstPath>::visit_ts_intersection_type(visitor, self, __ast_path)
43723    }
43724
43725    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43726        &'ast self,
43727        visitor: &mut V,
43728        __ast_path: &mut AstNodePath<'r>,
43729    ) {
43730        match self {
43731            TsIntersectionType { span, types } => {
43732                {
43733                    let mut __ast_path =
43734                        __ast_path.with_guard(AstParentNodeRef::TsIntersectionType(
43735                            self,
43736                            self::fields::TsIntersectionTypeField::Span,
43737                        ));
43738                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43739                        span,
43740                        visitor,
43741                        &mut *__ast_path,
43742                    )
43743                };
43744                {
43745                    let mut __ast_path =
43746                        __ast_path.with_guard(AstParentNodeRef::TsIntersectionType(
43747                            self,
43748                            self::fields::TsIntersectionTypeField::Types(usize::MAX),
43749                        ));
43750                    <Vec<Box<TsType>> as VisitWithAstPath<V>>::visit_with_ast_path(
43751                        types,
43752                        visitor,
43753                        &mut *__ast_path,
43754                    )
43755                };
43756            }
43757        }
43758    }
43759}
43760#[cfg(any(docsrs, feature = "path"))]
43761#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43762impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsKeywordType {
43763    #[doc = "Calls [VisitAstPath`::visit_ts_keyword_type`] with `self`."]
43764    fn visit_with_ast_path<'ast: 'r, 'r>(
43765        &'ast self,
43766        visitor: &mut V,
43767        __ast_path: &mut AstNodePath<'r>,
43768    ) {
43769        <V as VisitAstPath>::visit_ts_keyword_type(visitor, self, __ast_path)
43770    }
43771
43772    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43773        &'ast self,
43774        visitor: &mut V,
43775        __ast_path: &mut AstNodePath<'r>,
43776    ) {
43777        match self {
43778            TsKeywordType { span, kind } => {
43779                {
43780                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsKeywordType(
43781                        self,
43782                        self::fields::TsKeywordTypeField::Span,
43783                    ));
43784                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43785                        span,
43786                        visitor,
43787                        &mut *__ast_path,
43788                    )
43789                };
43790                {
43791                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsKeywordType(
43792                        self,
43793                        self::fields::TsKeywordTypeField::Kind,
43794                    ));
43795                    <TsKeywordTypeKind as VisitWithAstPath<V>>::visit_with_ast_path(
43796                        kind,
43797                        visitor,
43798                        &mut *__ast_path,
43799                    )
43800                };
43801            }
43802        }
43803    }
43804}
43805#[cfg(any(docsrs, feature = "path"))]
43806#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43807impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsKeywordTypeKind {
43808    #[doc = "Calls [VisitAstPath`::visit_ts_keyword_type_kind`] with `self`."]
43809    fn visit_with_ast_path<'ast: 'r, 'r>(
43810        &'ast self,
43811        visitor: &mut V,
43812        __ast_path: &mut AstNodePath<'r>,
43813    ) {
43814        <V as VisitAstPath>::visit_ts_keyword_type_kind(visitor, self, __ast_path)
43815    }
43816
43817    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43818        &'ast self,
43819        visitor: &mut V,
43820        __ast_path: &mut AstNodePath<'r>,
43821    ) {
43822        match self {
43823            TsKeywordTypeKind::TsAnyKeyword => {}
43824            TsKeywordTypeKind::TsUnknownKeyword => {}
43825            TsKeywordTypeKind::TsNumberKeyword => {}
43826            TsKeywordTypeKind::TsObjectKeyword => {}
43827            TsKeywordTypeKind::TsBooleanKeyword => {}
43828            TsKeywordTypeKind::TsBigIntKeyword => {}
43829            TsKeywordTypeKind::TsStringKeyword => {}
43830            TsKeywordTypeKind::TsSymbolKeyword => {}
43831            TsKeywordTypeKind::TsVoidKeyword => {}
43832            TsKeywordTypeKind::TsUndefinedKeyword => {}
43833            TsKeywordTypeKind::TsNullKeyword => {}
43834            TsKeywordTypeKind::TsNeverKeyword => {}
43835            TsKeywordTypeKind::TsIntrinsicKeyword => {}
43836        }
43837    }
43838}
43839#[cfg(any(docsrs, feature = "path"))]
43840#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43841impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsLit {
43842    #[doc = "Calls [VisitAstPath`::visit_ts_lit`] with `self`."]
43843    fn visit_with_ast_path<'ast: 'r, 'r>(
43844        &'ast self,
43845        visitor: &mut V,
43846        __ast_path: &mut AstNodePath<'r>,
43847    ) {
43848        <V as VisitAstPath>::visit_ts_lit(visitor, self, __ast_path)
43849    }
43850
43851    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43852        &'ast self,
43853        visitor: &mut V,
43854        __ast_path: &mut AstNodePath<'r>,
43855    ) {
43856        match self {
43857            TsLit::Number { 0: _field_0 } => {
43858                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsLit(
43859                    self,
43860                    self::fields::TsLitField::Number,
43861                ));
43862                <Number as VisitWithAstPath<V>>::visit_with_ast_path(
43863                    _field_0,
43864                    visitor,
43865                    &mut *__ast_path,
43866                );
43867            }
43868            TsLit::Str { 0: _field_0 } => {
43869                let mut __ast_path = __ast_path
43870                    .with_guard(AstParentNodeRef::TsLit(self, self::fields::TsLitField::Str));
43871                <Str as VisitWithAstPath<V>>::visit_with_ast_path(
43872                    _field_0,
43873                    visitor,
43874                    &mut *__ast_path,
43875                );
43876            }
43877            TsLit::Bool { 0: _field_0 } => {
43878                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsLit(
43879                    self,
43880                    self::fields::TsLitField::Bool,
43881                ));
43882                <Bool as VisitWithAstPath<V>>::visit_with_ast_path(
43883                    _field_0,
43884                    visitor,
43885                    &mut *__ast_path,
43886                );
43887            }
43888            TsLit::BigInt { 0: _field_0 } => {
43889                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsLit(
43890                    self,
43891                    self::fields::TsLitField::BigInt,
43892                ));
43893                <BigInt as VisitWithAstPath<V>>::visit_with_ast_path(
43894                    _field_0,
43895                    visitor,
43896                    &mut *__ast_path,
43897                );
43898            }
43899            TsLit::Tpl { 0: _field_0 } => {
43900                let mut __ast_path = __ast_path
43901                    .with_guard(AstParentNodeRef::TsLit(self, self::fields::TsLitField::Tpl));
43902                <TsTplLitType as VisitWithAstPath<V>>::visit_with_ast_path(
43903                    _field_0,
43904                    visitor,
43905                    &mut *__ast_path,
43906                );
43907            }
43908        }
43909    }
43910}
43911#[cfg(any(docsrs, feature = "path"))]
43912#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43913impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsLitType {
43914    #[doc = "Calls [VisitAstPath`::visit_ts_lit_type`] with `self`."]
43915    fn visit_with_ast_path<'ast: 'r, 'r>(
43916        &'ast self,
43917        visitor: &mut V,
43918        __ast_path: &mut AstNodePath<'r>,
43919    ) {
43920        <V as VisitAstPath>::visit_ts_lit_type(visitor, self, __ast_path)
43921    }
43922
43923    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43924        &'ast self,
43925        visitor: &mut V,
43926        __ast_path: &mut AstNodePath<'r>,
43927    ) {
43928        match self {
43929            TsLitType { span, lit } => {
43930                {
43931                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsLitType(
43932                        self,
43933                        self::fields::TsLitTypeField::Span,
43934                    ));
43935                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43936                        span,
43937                        visitor,
43938                        &mut *__ast_path,
43939                    )
43940                };
43941                {
43942                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsLitType(
43943                        self,
43944                        self::fields::TsLitTypeField::Lit,
43945                    ));
43946                    <TsLit as VisitWithAstPath<V>>::visit_with_ast_path(
43947                        lit,
43948                        visitor,
43949                        &mut *__ast_path,
43950                    )
43951                };
43952            }
43953        }
43954    }
43955}
43956#[cfg(any(docsrs, feature = "path"))]
43957#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43958impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsMappedType {
43959    #[doc = "Calls [VisitAstPath`::visit_ts_mapped_type`] with `self`."]
43960    fn visit_with_ast_path<'ast: 'r, 'r>(
43961        &'ast self,
43962        visitor: &mut V,
43963        __ast_path: &mut AstNodePath<'r>,
43964    ) {
43965        <V as VisitAstPath>::visit_ts_mapped_type(visitor, self, __ast_path)
43966    }
43967
43968    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43969        &'ast self,
43970        visitor: &mut V,
43971        __ast_path: &mut AstNodePath<'r>,
43972    ) {
43973        match self {
43974            TsMappedType {
43975                span,
43976                readonly,
43977                type_param,
43978                name_type,
43979                optional,
43980                type_ann,
43981            } => {
43982                {
43983                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsMappedType(
43984                        self,
43985                        self::fields::TsMappedTypeField::Span,
43986                    ));
43987                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43988                        span,
43989                        visitor,
43990                        &mut *__ast_path,
43991                    )
43992                };
43993                {
43994                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsMappedType(
43995                        self,
43996                        self::fields::TsMappedTypeField::Readonly,
43997                    ));
43998                    <Option<TruePlusMinus> as VisitWithAstPath<V>>::visit_with_ast_path(
43999                        readonly,
44000                        visitor,
44001                        &mut *__ast_path,
44002                    )
44003                };
44004                {
44005                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsMappedType(
44006                        self,
44007                        self::fields::TsMappedTypeField::TypeParam,
44008                    ));
44009                    <TsTypeParam as VisitWithAstPath<V>>::visit_with_ast_path(
44010                        type_param,
44011                        visitor,
44012                        &mut *__ast_path,
44013                    )
44014                };
44015                {
44016                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsMappedType(
44017                        self,
44018                        self::fields::TsMappedTypeField::NameType,
44019                    ));
44020                    <Option<Box<TsType>> as VisitWithAstPath<V>>::visit_with_ast_path(
44021                        name_type,
44022                        visitor,
44023                        &mut *__ast_path,
44024                    )
44025                };
44026                {
44027                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsMappedType(
44028                        self,
44029                        self::fields::TsMappedTypeField::Optional,
44030                    ));
44031                    <Option<TruePlusMinus> as VisitWithAstPath<V>>::visit_with_ast_path(
44032                        optional,
44033                        visitor,
44034                        &mut *__ast_path,
44035                    )
44036                };
44037                {
44038                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsMappedType(
44039                        self,
44040                        self::fields::TsMappedTypeField::TypeAnn,
44041                    ));
44042                    <Option<Box<TsType>> as VisitWithAstPath<V>>::visit_with_ast_path(
44043                        type_ann,
44044                        visitor,
44045                        &mut *__ast_path,
44046                    )
44047                };
44048            }
44049        }
44050    }
44051}
44052#[cfg(any(docsrs, feature = "path"))]
44053#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44054impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsMethodSignature {
44055    #[doc = "Calls [VisitAstPath`::visit_ts_method_signature`] with `self`."]
44056    fn visit_with_ast_path<'ast: 'r, 'r>(
44057        &'ast self,
44058        visitor: &mut V,
44059        __ast_path: &mut AstNodePath<'r>,
44060    ) {
44061        <V as VisitAstPath>::visit_ts_method_signature(visitor, self, __ast_path)
44062    }
44063
44064    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44065        &'ast self,
44066        visitor: &mut V,
44067        __ast_path: &mut AstNodePath<'r>,
44068    ) {
44069        match self {
44070            TsMethodSignature {
44071                span,
44072                key,
44073                computed,
44074                optional,
44075                params,
44076                type_ann,
44077                type_params,
44078            } => {
44079                {
44080                    let mut __ast_path =
44081                        __ast_path.with_guard(AstParentNodeRef::TsMethodSignature(
44082                            self,
44083                            self::fields::TsMethodSignatureField::Span,
44084                        ));
44085                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44086                        span,
44087                        visitor,
44088                        &mut *__ast_path,
44089                    )
44090                };
44091                {
44092                    let mut __ast_path =
44093                        __ast_path.with_guard(AstParentNodeRef::TsMethodSignature(
44094                            self,
44095                            self::fields::TsMethodSignatureField::Key,
44096                        ));
44097                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
44098                        key,
44099                        visitor,
44100                        &mut *__ast_path,
44101                    )
44102                };
44103                {
44104                    let mut __ast_path =
44105                        __ast_path.with_guard(AstParentNodeRef::TsMethodSignature(
44106                            self,
44107                            self::fields::TsMethodSignatureField::Params(usize::MAX),
44108                        ));
44109                    <Vec<TsFnParam> as VisitWithAstPath<V>>::visit_with_ast_path(
44110                        params,
44111                        visitor,
44112                        &mut *__ast_path,
44113                    )
44114                };
44115                {
44116                    let mut __ast_path =
44117                        __ast_path.with_guard(AstParentNodeRef::TsMethodSignature(
44118                            self,
44119                            self::fields::TsMethodSignatureField::TypeAnn,
44120                        ));
44121                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
44122                        type_ann,
44123                        visitor,
44124                        &mut *__ast_path,
44125                    )
44126                };
44127                {
44128                    let mut __ast_path =
44129                        __ast_path.with_guard(AstParentNodeRef::TsMethodSignature(
44130                            self,
44131                            self::fields::TsMethodSignatureField::TypeParams,
44132                        ));
44133                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
44134                        type_params,
44135                        visitor,
44136                        &mut *__ast_path,
44137                    )
44138                };
44139            }
44140        }
44141    }
44142}
44143#[cfg(any(docsrs, feature = "path"))]
44144#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44145impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsModuleBlock {
44146    #[doc = "Calls [VisitAstPath`::visit_ts_module_block`] with `self`."]
44147    fn visit_with_ast_path<'ast: 'r, 'r>(
44148        &'ast self,
44149        visitor: &mut V,
44150        __ast_path: &mut AstNodePath<'r>,
44151    ) {
44152        <V as VisitAstPath>::visit_ts_module_block(visitor, self, __ast_path)
44153    }
44154
44155    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44156        &'ast self,
44157        visitor: &mut V,
44158        __ast_path: &mut AstNodePath<'r>,
44159    ) {
44160        match self {
44161            TsModuleBlock { span, body } => {
44162                {
44163                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleBlock(
44164                        self,
44165                        self::fields::TsModuleBlockField::Span,
44166                    ));
44167                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44168                        span,
44169                        visitor,
44170                        &mut *__ast_path,
44171                    )
44172                };
44173                {
44174                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleBlock(
44175                        self,
44176                        self::fields::TsModuleBlockField::Body(usize::MAX),
44177                    ));
44178                    <Vec<ModuleItem> as VisitWithAstPath<V>>::visit_with_ast_path(
44179                        body,
44180                        visitor,
44181                        &mut *__ast_path,
44182                    )
44183                };
44184            }
44185        }
44186    }
44187}
44188#[cfg(any(docsrs, feature = "path"))]
44189#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44190impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsModuleDecl {
44191    #[doc = "Calls [VisitAstPath`::visit_ts_module_decl`] with `self`."]
44192    fn visit_with_ast_path<'ast: 'r, 'r>(
44193        &'ast self,
44194        visitor: &mut V,
44195        __ast_path: &mut AstNodePath<'r>,
44196    ) {
44197        <V as VisitAstPath>::visit_ts_module_decl(visitor, self, __ast_path)
44198    }
44199
44200    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44201        &'ast self,
44202        visitor: &mut V,
44203        __ast_path: &mut AstNodePath<'r>,
44204    ) {
44205        match self {
44206            TsModuleDecl {
44207                span,
44208                declare,
44209                global,
44210                namespace,
44211                id,
44212                body,
44213            } => {
44214                {
44215                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleDecl(
44216                        self,
44217                        self::fields::TsModuleDeclField::Span,
44218                    ));
44219                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44220                        span,
44221                        visitor,
44222                        &mut *__ast_path,
44223                    )
44224                };
44225                {
44226                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleDecl(
44227                        self,
44228                        self::fields::TsModuleDeclField::Id,
44229                    ));
44230                    <TsModuleName as VisitWithAstPath<V>>::visit_with_ast_path(
44231                        id,
44232                        visitor,
44233                        &mut *__ast_path,
44234                    )
44235                };
44236                {
44237                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleDecl(
44238                        self,
44239                        self::fields::TsModuleDeclField::Body,
44240                    ));
44241                    <Option<TsNamespaceBody> as VisitWithAstPath<V>>::visit_with_ast_path(
44242                        body,
44243                        visitor,
44244                        &mut *__ast_path,
44245                    )
44246                };
44247            }
44248        }
44249    }
44250}
44251#[cfg(any(docsrs, feature = "path"))]
44252#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44253impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsModuleName {
44254    #[doc = "Calls [VisitAstPath`::visit_ts_module_name`] with `self`."]
44255    fn visit_with_ast_path<'ast: 'r, 'r>(
44256        &'ast self,
44257        visitor: &mut V,
44258        __ast_path: &mut AstNodePath<'r>,
44259    ) {
44260        <V as VisitAstPath>::visit_ts_module_name(visitor, self, __ast_path)
44261    }
44262
44263    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44264        &'ast self,
44265        visitor: &mut V,
44266        __ast_path: &mut AstNodePath<'r>,
44267    ) {
44268        match self {
44269            TsModuleName::Ident { 0: _field_0 } => {
44270                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleName(
44271                    self,
44272                    self::fields::TsModuleNameField::Ident,
44273                ));
44274                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
44275                    _field_0,
44276                    visitor,
44277                    &mut *__ast_path,
44278                );
44279            }
44280            TsModuleName::Str { 0: _field_0 } => {
44281                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleName(
44282                    self,
44283                    self::fields::TsModuleNameField::Str,
44284                ));
44285                <Str as VisitWithAstPath<V>>::visit_with_ast_path(
44286                    _field_0,
44287                    visitor,
44288                    &mut *__ast_path,
44289                );
44290            }
44291        }
44292    }
44293}
44294#[cfg(any(docsrs, feature = "path"))]
44295#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44296impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsModuleRef {
44297    #[doc = "Calls [VisitAstPath`::visit_ts_module_ref`] with `self`."]
44298    fn visit_with_ast_path<'ast: 'r, 'r>(
44299        &'ast self,
44300        visitor: &mut V,
44301        __ast_path: &mut AstNodePath<'r>,
44302    ) {
44303        <V as VisitAstPath>::visit_ts_module_ref(visitor, self, __ast_path)
44304    }
44305
44306    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44307        &'ast self,
44308        visitor: &mut V,
44309        __ast_path: &mut AstNodePath<'r>,
44310    ) {
44311        match self {
44312            TsModuleRef::TsEntityName { 0: _field_0 } => {
44313                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleRef(
44314                    self,
44315                    self::fields::TsModuleRefField::TsEntityName,
44316                ));
44317                <TsEntityName as VisitWithAstPath<V>>::visit_with_ast_path(
44318                    _field_0,
44319                    visitor,
44320                    &mut *__ast_path,
44321                );
44322            }
44323            TsModuleRef::TsExternalModuleRef { 0: _field_0 } => {
44324                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleRef(
44325                    self,
44326                    self::fields::TsModuleRefField::TsExternalModuleRef,
44327                ));
44328                <TsExternalModuleRef as VisitWithAstPath<V>>::visit_with_ast_path(
44329                    _field_0,
44330                    visitor,
44331                    &mut *__ast_path,
44332                );
44333            }
44334        }
44335    }
44336}
44337#[cfg(any(docsrs, feature = "path"))]
44338#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44339impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsNamespaceBody {
44340    #[doc = "Calls [VisitAstPath`::visit_ts_namespace_body`] with `self`."]
44341    fn visit_with_ast_path<'ast: 'r, 'r>(
44342        &'ast self,
44343        visitor: &mut V,
44344        __ast_path: &mut AstNodePath<'r>,
44345    ) {
44346        <V as VisitAstPath>::visit_ts_namespace_body(visitor, self, __ast_path)
44347    }
44348
44349    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44350        &'ast self,
44351        visitor: &mut V,
44352        __ast_path: &mut AstNodePath<'r>,
44353    ) {
44354        match self {
44355            TsNamespaceBody::TsModuleBlock { 0: _field_0 } => {
44356                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsNamespaceBody(
44357                    self,
44358                    self::fields::TsNamespaceBodyField::TsModuleBlock,
44359                ));
44360                <TsModuleBlock as VisitWithAstPath<V>>::visit_with_ast_path(
44361                    _field_0,
44362                    visitor,
44363                    &mut *__ast_path,
44364                );
44365            }
44366            TsNamespaceBody::TsNamespaceDecl { 0: _field_0 } => {
44367                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsNamespaceBody(
44368                    self,
44369                    self::fields::TsNamespaceBodyField::TsNamespaceDecl,
44370                ));
44371                <TsNamespaceDecl as VisitWithAstPath<V>>::visit_with_ast_path(
44372                    _field_0,
44373                    visitor,
44374                    &mut *__ast_path,
44375                );
44376            }
44377        }
44378    }
44379}
44380#[cfg(any(docsrs, feature = "path"))]
44381#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44382impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsNamespaceDecl {
44383    #[doc = "Calls [VisitAstPath`::visit_ts_namespace_decl`] with `self`."]
44384    fn visit_with_ast_path<'ast: 'r, 'r>(
44385        &'ast self,
44386        visitor: &mut V,
44387        __ast_path: &mut AstNodePath<'r>,
44388    ) {
44389        <V as VisitAstPath>::visit_ts_namespace_decl(visitor, self, __ast_path)
44390    }
44391
44392    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44393        &'ast self,
44394        visitor: &mut V,
44395        __ast_path: &mut AstNodePath<'r>,
44396    ) {
44397        match self {
44398            TsNamespaceDecl {
44399                span,
44400                declare,
44401                global,
44402                id,
44403                body,
44404            } => {
44405                {
44406                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsNamespaceDecl(
44407                        self,
44408                        self::fields::TsNamespaceDeclField::Span,
44409                    ));
44410                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44411                        span,
44412                        visitor,
44413                        &mut *__ast_path,
44414                    )
44415                };
44416                {
44417                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsNamespaceDecl(
44418                        self,
44419                        self::fields::TsNamespaceDeclField::Id,
44420                    ));
44421                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
44422                        id,
44423                        visitor,
44424                        &mut *__ast_path,
44425                    )
44426                };
44427                {
44428                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsNamespaceDecl(
44429                        self,
44430                        self::fields::TsNamespaceDeclField::Body,
44431                    ));
44432                    <Box<TsNamespaceBody> as VisitWithAstPath<V>>::visit_with_ast_path(
44433                        body,
44434                        visitor,
44435                        &mut *__ast_path,
44436                    )
44437                };
44438            }
44439        }
44440    }
44441}
44442#[cfg(any(docsrs, feature = "path"))]
44443#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44444impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsNamespaceExportDecl {
44445    #[doc = "Calls [VisitAstPath`::visit_ts_namespace_export_decl`] with `self`."]
44446    fn visit_with_ast_path<'ast: 'r, 'r>(
44447        &'ast self,
44448        visitor: &mut V,
44449        __ast_path: &mut AstNodePath<'r>,
44450    ) {
44451        <V as VisitAstPath>::visit_ts_namespace_export_decl(visitor, self, __ast_path)
44452    }
44453
44454    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44455        &'ast self,
44456        visitor: &mut V,
44457        __ast_path: &mut AstNodePath<'r>,
44458    ) {
44459        match self {
44460            TsNamespaceExportDecl { span, id } => {
44461                {
44462                    let mut __ast_path =
44463                        __ast_path.with_guard(AstParentNodeRef::TsNamespaceExportDecl(
44464                            self,
44465                            self::fields::TsNamespaceExportDeclField::Span,
44466                        ));
44467                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44468                        span,
44469                        visitor,
44470                        &mut *__ast_path,
44471                    )
44472                };
44473                {
44474                    let mut __ast_path =
44475                        __ast_path.with_guard(AstParentNodeRef::TsNamespaceExportDecl(
44476                            self,
44477                            self::fields::TsNamespaceExportDeclField::Id,
44478                        ));
44479                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
44480                        id,
44481                        visitor,
44482                        &mut *__ast_path,
44483                    )
44484                };
44485            }
44486        }
44487    }
44488}
44489#[cfg(any(docsrs, feature = "path"))]
44490#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44491impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsNonNullExpr {
44492    #[doc = "Calls [VisitAstPath`::visit_ts_non_null_expr`] with `self`."]
44493    fn visit_with_ast_path<'ast: 'r, 'r>(
44494        &'ast self,
44495        visitor: &mut V,
44496        __ast_path: &mut AstNodePath<'r>,
44497    ) {
44498        <V as VisitAstPath>::visit_ts_non_null_expr(visitor, self, __ast_path)
44499    }
44500
44501    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44502        &'ast self,
44503        visitor: &mut V,
44504        __ast_path: &mut AstNodePath<'r>,
44505    ) {
44506        match self {
44507            TsNonNullExpr { span, expr } => {
44508                {
44509                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsNonNullExpr(
44510                        self,
44511                        self::fields::TsNonNullExprField::Span,
44512                    ));
44513                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44514                        span,
44515                        visitor,
44516                        &mut *__ast_path,
44517                    )
44518                };
44519                {
44520                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsNonNullExpr(
44521                        self,
44522                        self::fields::TsNonNullExprField::Expr,
44523                    ));
44524                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
44525                        expr,
44526                        visitor,
44527                        &mut *__ast_path,
44528                    )
44529                };
44530            }
44531        }
44532    }
44533}
44534#[cfg(any(docsrs, feature = "path"))]
44535#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44536impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsOptionalType {
44537    #[doc = "Calls [VisitAstPath`::visit_ts_optional_type`] with `self`."]
44538    fn visit_with_ast_path<'ast: 'r, 'r>(
44539        &'ast self,
44540        visitor: &mut V,
44541        __ast_path: &mut AstNodePath<'r>,
44542    ) {
44543        <V as VisitAstPath>::visit_ts_optional_type(visitor, self, __ast_path)
44544    }
44545
44546    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44547        &'ast self,
44548        visitor: &mut V,
44549        __ast_path: &mut AstNodePath<'r>,
44550    ) {
44551        match self {
44552            TsOptionalType { span, type_ann } => {
44553                {
44554                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsOptionalType(
44555                        self,
44556                        self::fields::TsOptionalTypeField::Span,
44557                    ));
44558                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44559                        span,
44560                        visitor,
44561                        &mut *__ast_path,
44562                    )
44563                };
44564                {
44565                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsOptionalType(
44566                        self,
44567                        self::fields::TsOptionalTypeField::TypeAnn,
44568                    ));
44569                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
44570                        type_ann,
44571                        visitor,
44572                        &mut *__ast_path,
44573                    )
44574                };
44575            }
44576        }
44577    }
44578}
44579#[cfg(any(docsrs, feature = "path"))]
44580#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44581impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsParamProp {
44582    #[doc = "Calls [VisitAstPath`::visit_ts_param_prop`] with `self`."]
44583    fn visit_with_ast_path<'ast: 'r, 'r>(
44584        &'ast self,
44585        visitor: &mut V,
44586        __ast_path: &mut AstNodePath<'r>,
44587    ) {
44588        <V as VisitAstPath>::visit_ts_param_prop(visitor, self, __ast_path)
44589    }
44590
44591    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44592        &'ast self,
44593        visitor: &mut V,
44594        __ast_path: &mut AstNodePath<'r>,
44595    ) {
44596        match self {
44597            TsParamProp {
44598                span,
44599                decorators,
44600                accessibility,
44601                is_override,
44602                readonly,
44603                param,
44604            } => {
44605                {
44606                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsParamProp(
44607                        self,
44608                        self::fields::TsParamPropField::Span,
44609                    ));
44610                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44611                        span,
44612                        visitor,
44613                        &mut *__ast_path,
44614                    )
44615                };
44616                {
44617                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsParamProp(
44618                        self,
44619                        self::fields::TsParamPropField::Decorators(usize::MAX),
44620                    ));
44621                    <Vec<Decorator> as VisitWithAstPath<V>>::visit_with_ast_path(
44622                        decorators,
44623                        visitor,
44624                        &mut *__ast_path,
44625                    )
44626                };
44627                {
44628                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsParamProp(
44629                        self,
44630                        self::fields::TsParamPropField::Accessibility,
44631                    ));
44632                    <Option<Accessibility> as VisitWithAstPath<V>>::visit_with_ast_path(
44633                        accessibility,
44634                        visitor,
44635                        &mut *__ast_path,
44636                    )
44637                };
44638                {
44639                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsParamProp(
44640                        self,
44641                        self::fields::TsParamPropField::Param,
44642                    ));
44643                    <TsParamPropParam as VisitWithAstPath<V>>::visit_with_ast_path(
44644                        param,
44645                        visitor,
44646                        &mut *__ast_path,
44647                    )
44648                };
44649            }
44650        }
44651    }
44652}
44653#[cfg(any(docsrs, feature = "path"))]
44654#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44655impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsParamPropParam {
44656    #[doc = "Calls [VisitAstPath`::visit_ts_param_prop_param`] with `self`."]
44657    fn visit_with_ast_path<'ast: 'r, 'r>(
44658        &'ast self,
44659        visitor: &mut V,
44660        __ast_path: &mut AstNodePath<'r>,
44661    ) {
44662        <V as VisitAstPath>::visit_ts_param_prop_param(visitor, self, __ast_path)
44663    }
44664
44665    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44666        &'ast self,
44667        visitor: &mut V,
44668        __ast_path: &mut AstNodePath<'r>,
44669    ) {
44670        match self {
44671            TsParamPropParam::Ident { 0: _field_0 } => {
44672                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsParamPropParam(
44673                    self,
44674                    self::fields::TsParamPropParamField::Ident,
44675                ));
44676                <BindingIdent as VisitWithAstPath<V>>::visit_with_ast_path(
44677                    _field_0,
44678                    visitor,
44679                    &mut *__ast_path,
44680                );
44681            }
44682            TsParamPropParam::Assign { 0: _field_0 } => {
44683                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsParamPropParam(
44684                    self,
44685                    self::fields::TsParamPropParamField::Assign,
44686                ));
44687                <AssignPat as VisitWithAstPath<V>>::visit_with_ast_path(
44688                    _field_0,
44689                    visitor,
44690                    &mut *__ast_path,
44691                );
44692            }
44693        }
44694    }
44695}
44696#[cfg(any(docsrs, feature = "path"))]
44697#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44698impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsParenthesizedType {
44699    #[doc = "Calls [VisitAstPath`::visit_ts_parenthesized_type`] with `self`."]
44700    fn visit_with_ast_path<'ast: 'r, 'r>(
44701        &'ast self,
44702        visitor: &mut V,
44703        __ast_path: &mut AstNodePath<'r>,
44704    ) {
44705        <V as VisitAstPath>::visit_ts_parenthesized_type(visitor, self, __ast_path)
44706    }
44707
44708    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44709        &'ast self,
44710        visitor: &mut V,
44711        __ast_path: &mut AstNodePath<'r>,
44712    ) {
44713        match self {
44714            TsParenthesizedType { span, type_ann } => {
44715                {
44716                    let mut __ast_path =
44717                        __ast_path.with_guard(AstParentNodeRef::TsParenthesizedType(
44718                            self,
44719                            self::fields::TsParenthesizedTypeField::Span,
44720                        ));
44721                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44722                        span,
44723                        visitor,
44724                        &mut *__ast_path,
44725                    )
44726                };
44727                {
44728                    let mut __ast_path =
44729                        __ast_path.with_guard(AstParentNodeRef::TsParenthesizedType(
44730                            self,
44731                            self::fields::TsParenthesizedTypeField::TypeAnn,
44732                        ));
44733                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
44734                        type_ann,
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 TsPropertySignature {
44746    #[doc = "Calls [VisitAstPath`::visit_ts_property_signature`] 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_property_signature(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            TsPropertySignature {
44762                span,
44763                readonly,
44764                key,
44765                computed,
44766                optional,
44767                type_ann,
44768            } => {
44769                {
44770                    let mut __ast_path =
44771                        __ast_path.with_guard(AstParentNodeRef::TsPropertySignature(
44772                            self,
44773                            self::fields::TsPropertySignatureField::Span,
44774                        ));
44775                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44776                        span,
44777                        visitor,
44778                        &mut *__ast_path,
44779                    )
44780                };
44781                {
44782                    let mut __ast_path =
44783                        __ast_path.with_guard(AstParentNodeRef::TsPropertySignature(
44784                            self,
44785                            self::fields::TsPropertySignatureField::Key,
44786                        ));
44787                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
44788                        key,
44789                        visitor,
44790                        &mut *__ast_path,
44791                    )
44792                };
44793                {
44794                    let mut __ast_path =
44795                        __ast_path.with_guard(AstParentNodeRef::TsPropertySignature(
44796                            self,
44797                            self::fields::TsPropertySignatureField::TypeAnn,
44798                        ));
44799                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
44800                        type_ann,
44801                        visitor,
44802                        &mut *__ast_path,
44803                    )
44804                };
44805            }
44806        }
44807    }
44808}
44809#[cfg(any(docsrs, feature = "path"))]
44810#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44811impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsQualifiedName {
44812    #[doc = "Calls [VisitAstPath`::visit_ts_qualified_name`] with `self`."]
44813    fn visit_with_ast_path<'ast: 'r, 'r>(
44814        &'ast self,
44815        visitor: &mut V,
44816        __ast_path: &mut AstNodePath<'r>,
44817    ) {
44818        <V as VisitAstPath>::visit_ts_qualified_name(visitor, self, __ast_path)
44819    }
44820
44821    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44822        &'ast self,
44823        visitor: &mut V,
44824        __ast_path: &mut AstNodePath<'r>,
44825    ) {
44826        match self {
44827            TsQualifiedName { span, left, right } => {
44828                {
44829                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsQualifiedName(
44830                        self,
44831                        self::fields::TsQualifiedNameField::Span,
44832                    ));
44833                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44834                        span,
44835                        visitor,
44836                        &mut *__ast_path,
44837                    )
44838                };
44839                {
44840                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsQualifiedName(
44841                        self,
44842                        self::fields::TsQualifiedNameField::Left,
44843                    ));
44844                    <TsEntityName as VisitWithAstPath<V>>::visit_with_ast_path(
44845                        left,
44846                        visitor,
44847                        &mut *__ast_path,
44848                    )
44849                };
44850                {
44851                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsQualifiedName(
44852                        self,
44853                        self::fields::TsQualifiedNameField::Right,
44854                    ));
44855                    <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
44856                        right,
44857                        visitor,
44858                        &mut *__ast_path,
44859                    )
44860                };
44861            }
44862        }
44863    }
44864}
44865#[cfg(any(docsrs, feature = "path"))]
44866#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44867impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsRestType {
44868    #[doc = "Calls [VisitAstPath`::visit_ts_rest_type`] with `self`."]
44869    fn visit_with_ast_path<'ast: 'r, 'r>(
44870        &'ast self,
44871        visitor: &mut V,
44872        __ast_path: &mut AstNodePath<'r>,
44873    ) {
44874        <V as VisitAstPath>::visit_ts_rest_type(visitor, self, __ast_path)
44875    }
44876
44877    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44878        &'ast self,
44879        visitor: &mut V,
44880        __ast_path: &mut AstNodePath<'r>,
44881    ) {
44882        match self {
44883            TsRestType { span, type_ann } => {
44884                {
44885                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsRestType(
44886                        self,
44887                        self::fields::TsRestTypeField::Span,
44888                    ));
44889                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44890                        span,
44891                        visitor,
44892                        &mut *__ast_path,
44893                    )
44894                };
44895                {
44896                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsRestType(
44897                        self,
44898                        self::fields::TsRestTypeField::TypeAnn,
44899                    ));
44900                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
44901                        type_ann,
44902                        visitor,
44903                        &mut *__ast_path,
44904                    )
44905                };
44906            }
44907        }
44908    }
44909}
44910#[cfg(any(docsrs, feature = "path"))]
44911#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44912impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsSatisfiesExpr {
44913    #[doc = "Calls [VisitAstPath`::visit_ts_satisfies_expr`] with `self`."]
44914    fn visit_with_ast_path<'ast: 'r, 'r>(
44915        &'ast self,
44916        visitor: &mut V,
44917        __ast_path: &mut AstNodePath<'r>,
44918    ) {
44919        <V as VisitAstPath>::visit_ts_satisfies_expr(visitor, self, __ast_path)
44920    }
44921
44922    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44923        &'ast self,
44924        visitor: &mut V,
44925        __ast_path: &mut AstNodePath<'r>,
44926    ) {
44927        match self {
44928            TsSatisfiesExpr {
44929                span,
44930                expr,
44931                type_ann,
44932            } => {
44933                {
44934                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsSatisfiesExpr(
44935                        self,
44936                        self::fields::TsSatisfiesExprField::Span,
44937                    ));
44938                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44939                        span,
44940                        visitor,
44941                        &mut *__ast_path,
44942                    )
44943                };
44944                {
44945                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsSatisfiesExpr(
44946                        self,
44947                        self::fields::TsSatisfiesExprField::Expr,
44948                    ));
44949                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
44950                        expr,
44951                        visitor,
44952                        &mut *__ast_path,
44953                    )
44954                };
44955                {
44956                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsSatisfiesExpr(
44957                        self,
44958                        self::fields::TsSatisfiesExprField::TypeAnn,
44959                    ));
44960                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
44961                        type_ann,
44962                        visitor,
44963                        &mut *__ast_path,
44964                    )
44965                };
44966            }
44967        }
44968    }
44969}
44970#[cfg(any(docsrs, feature = "path"))]
44971#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44972impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsSetterSignature {
44973    #[doc = "Calls [VisitAstPath`::visit_ts_setter_signature`] with `self`."]
44974    fn visit_with_ast_path<'ast: 'r, 'r>(
44975        &'ast self,
44976        visitor: &mut V,
44977        __ast_path: &mut AstNodePath<'r>,
44978    ) {
44979        <V as VisitAstPath>::visit_ts_setter_signature(visitor, self, __ast_path)
44980    }
44981
44982    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44983        &'ast self,
44984        visitor: &mut V,
44985        __ast_path: &mut AstNodePath<'r>,
44986    ) {
44987        match self {
44988            TsSetterSignature {
44989                span,
44990                key,
44991                computed,
44992                param,
44993            } => {
44994                {
44995                    let mut __ast_path =
44996                        __ast_path.with_guard(AstParentNodeRef::TsSetterSignature(
44997                            self,
44998                            self::fields::TsSetterSignatureField::Span,
44999                        ));
45000                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45001                        span,
45002                        visitor,
45003                        &mut *__ast_path,
45004                    )
45005                };
45006                {
45007                    let mut __ast_path =
45008                        __ast_path.with_guard(AstParentNodeRef::TsSetterSignature(
45009                            self,
45010                            self::fields::TsSetterSignatureField::Key,
45011                        ));
45012                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
45013                        key,
45014                        visitor,
45015                        &mut *__ast_path,
45016                    )
45017                };
45018                {
45019                    let mut __ast_path =
45020                        __ast_path.with_guard(AstParentNodeRef::TsSetterSignature(
45021                            self,
45022                            self::fields::TsSetterSignatureField::Param,
45023                        ));
45024                    <TsFnParam as VisitWithAstPath<V>>::visit_with_ast_path(
45025                        param,
45026                        visitor,
45027                        &mut *__ast_path,
45028                    )
45029                };
45030            }
45031        }
45032    }
45033}
45034#[cfg(any(docsrs, feature = "path"))]
45035#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45036impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsThisType {
45037    #[doc = "Calls [VisitAstPath`::visit_ts_this_type`] with `self`."]
45038    fn visit_with_ast_path<'ast: 'r, 'r>(
45039        &'ast self,
45040        visitor: &mut V,
45041        __ast_path: &mut AstNodePath<'r>,
45042    ) {
45043        <V as VisitAstPath>::visit_ts_this_type(visitor, self, __ast_path)
45044    }
45045
45046    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45047        &'ast self,
45048        visitor: &mut V,
45049        __ast_path: &mut AstNodePath<'r>,
45050    ) {
45051        match self {
45052            TsThisType { span } => {
45053                {
45054                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsThisType(
45055                        self,
45056                        self::fields::TsThisTypeField::Span,
45057                    ));
45058                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45059                        span,
45060                        visitor,
45061                        &mut *__ast_path,
45062                    )
45063                };
45064            }
45065        }
45066    }
45067}
45068#[cfg(any(docsrs, feature = "path"))]
45069#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45070impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsThisTypeOrIdent {
45071    #[doc = "Calls [VisitAstPath`::visit_ts_this_type_or_ident`] with `self`."]
45072    fn visit_with_ast_path<'ast: 'r, 'r>(
45073        &'ast self,
45074        visitor: &mut V,
45075        __ast_path: &mut AstNodePath<'r>,
45076    ) {
45077        <V as VisitAstPath>::visit_ts_this_type_or_ident(visitor, self, __ast_path)
45078    }
45079
45080    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45081        &'ast self,
45082        visitor: &mut V,
45083        __ast_path: &mut AstNodePath<'r>,
45084    ) {
45085        match self {
45086            TsThisTypeOrIdent::TsThisType { 0: _field_0 } => {
45087                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsThisTypeOrIdent(
45088                    self,
45089                    self::fields::TsThisTypeOrIdentField::TsThisType,
45090                ));
45091                <TsThisType as VisitWithAstPath<V>>::visit_with_ast_path(
45092                    _field_0,
45093                    visitor,
45094                    &mut *__ast_path,
45095                );
45096            }
45097            TsThisTypeOrIdent::Ident { 0: _field_0 } => {
45098                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsThisTypeOrIdent(
45099                    self,
45100                    self::fields::TsThisTypeOrIdentField::Ident,
45101                ));
45102                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
45103                    _field_0,
45104                    visitor,
45105                    &mut *__ast_path,
45106                );
45107            }
45108        }
45109    }
45110}
45111#[cfg(any(docsrs, feature = "path"))]
45112#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45113impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTplLitType {
45114    #[doc = "Calls [VisitAstPath`::visit_ts_tpl_lit_type`] with `self`."]
45115    fn visit_with_ast_path<'ast: 'r, 'r>(
45116        &'ast self,
45117        visitor: &mut V,
45118        __ast_path: &mut AstNodePath<'r>,
45119    ) {
45120        <V as VisitAstPath>::visit_ts_tpl_lit_type(visitor, self, __ast_path)
45121    }
45122
45123    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45124        &'ast self,
45125        visitor: &mut V,
45126        __ast_path: &mut AstNodePath<'r>,
45127    ) {
45128        match self {
45129            TsTplLitType {
45130                span,
45131                types,
45132                quasis,
45133            } => {
45134                {
45135                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTplLitType(
45136                        self,
45137                        self::fields::TsTplLitTypeField::Span,
45138                    ));
45139                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45140                        span,
45141                        visitor,
45142                        &mut *__ast_path,
45143                    )
45144                };
45145                {
45146                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTplLitType(
45147                        self,
45148                        self::fields::TsTplLitTypeField::Types(usize::MAX),
45149                    ));
45150                    <Vec<Box<TsType>> as VisitWithAstPath<V>>::visit_with_ast_path(
45151                        types,
45152                        visitor,
45153                        &mut *__ast_path,
45154                    )
45155                };
45156                {
45157                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTplLitType(
45158                        self,
45159                        self::fields::TsTplLitTypeField::Quasis(usize::MAX),
45160                    ));
45161                    <Vec<TplElement> as VisitWithAstPath<V>>::visit_with_ast_path(
45162                        quasis,
45163                        visitor,
45164                        &mut *__ast_path,
45165                    )
45166                };
45167            }
45168        }
45169    }
45170}
45171#[cfg(any(docsrs, feature = "path"))]
45172#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45173impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTupleElement {
45174    #[doc = "Calls [VisitAstPath`::visit_ts_tuple_element`] with `self`."]
45175    fn visit_with_ast_path<'ast: 'r, 'r>(
45176        &'ast self,
45177        visitor: &mut V,
45178        __ast_path: &mut AstNodePath<'r>,
45179    ) {
45180        <V as VisitAstPath>::visit_ts_tuple_element(visitor, self, __ast_path)
45181    }
45182
45183    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45184        &'ast self,
45185        visitor: &mut V,
45186        __ast_path: &mut AstNodePath<'r>,
45187    ) {
45188        match self {
45189            TsTupleElement { span, label, ty } => {
45190                {
45191                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTupleElement(
45192                        self,
45193                        self::fields::TsTupleElementField::Span,
45194                    ));
45195                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45196                        span,
45197                        visitor,
45198                        &mut *__ast_path,
45199                    )
45200                };
45201                {
45202                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTupleElement(
45203                        self,
45204                        self::fields::TsTupleElementField::Label,
45205                    ));
45206                    <Option<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
45207                        label,
45208                        visitor,
45209                        &mut *__ast_path,
45210                    )
45211                };
45212                {
45213                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTupleElement(
45214                        self,
45215                        self::fields::TsTupleElementField::Ty,
45216                    ));
45217                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
45218                        ty,
45219                        visitor,
45220                        &mut *__ast_path,
45221                    )
45222                };
45223            }
45224        }
45225    }
45226}
45227#[cfg(any(docsrs, feature = "path"))]
45228#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45229impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTupleType {
45230    #[doc = "Calls [VisitAstPath`::visit_ts_tuple_type`] with `self`."]
45231    fn visit_with_ast_path<'ast: 'r, 'r>(
45232        &'ast self,
45233        visitor: &mut V,
45234        __ast_path: &mut AstNodePath<'r>,
45235    ) {
45236        <V as VisitAstPath>::visit_ts_tuple_type(visitor, self, __ast_path)
45237    }
45238
45239    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45240        &'ast self,
45241        visitor: &mut V,
45242        __ast_path: &mut AstNodePath<'r>,
45243    ) {
45244        match self {
45245            TsTupleType { span, elem_types } => {
45246                {
45247                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTupleType(
45248                        self,
45249                        self::fields::TsTupleTypeField::Span,
45250                    ));
45251                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45252                        span,
45253                        visitor,
45254                        &mut *__ast_path,
45255                    )
45256                };
45257                {
45258                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTupleType(
45259                        self,
45260                        self::fields::TsTupleTypeField::ElemTypes(usize::MAX),
45261                    ));
45262                    <Vec<TsTupleElement> as VisitWithAstPath<V>>::visit_with_ast_path(
45263                        elem_types,
45264                        visitor,
45265                        &mut *__ast_path,
45266                    )
45267                };
45268            }
45269        }
45270    }
45271}
45272#[cfg(any(docsrs, feature = "path"))]
45273#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45274impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsType {
45275    #[doc = "Calls [VisitAstPath`::visit_ts_type`] with `self`."]
45276    fn visit_with_ast_path<'ast: 'r, 'r>(
45277        &'ast self,
45278        visitor: &mut V,
45279        __ast_path: &mut AstNodePath<'r>,
45280    ) {
45281        <V as VisitAstPath>::visit_ts_type(visitor, self, __ast_path)
45282    }
45283
45284    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45285        &'ast self,
45286        visitor: &mut V,
45287        __ast_path: &mut AstNodePath<'r>,
45288    ) {
45289        match self {
45290            TsType::TsKeywordType { 0: _field_0 } => {
45291                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45292                    self,
45293                    self::fields::TsTypeField::TsKeywordType,
45294                ));
45295                <TsKeywordType as VisitWithAstPath<V>>::visit_with_ast_path(
45296                    _field_0,
45297                    visitor,
45298                    &mut *__ast_path,
45299                );
45300            }
45301            TsType::TsThisType { 0: _field_0 } => {
45302                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45303                    self,
45304                    self::fields::TsTypeField::TsThisType,
45305                ));
45306                <TsThisType as VisitWithAstPath<V>>::visit_with_ast_path(
45307                    _field_0,
45308                    visitor,
45309                    &mut *__ast_path,
45310                );
45311            }
45312            TsType::TsFnOrConstructorType { 0: _field_0 } => {
45313                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45314                    self,
45315                    self::fields::TsTypeField::TsFnOrConstructorType,
45316                ));
45317                <TsFnOrConstructorType as VisitWithAstPath<V>>::visit_with_ast_path(
45318                    _field_0,
45319                    visitor,
45320                    &mut *__ast_path,
45321                );
45322            }
45323            TsType::TsTypeRef { 0: _field_0 } => {
45324                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45325                    self,
45326                    self::fields::TsTypeField::TsTypeRef,
45327                ));
45328                <TsTypeRef as VisitWithAstPath<V>>::visit_with_ast_path(
45329                    _field_0,
45330                    visitor,
45331                    &mut *__ast_path,
45332                );
45333            }
45334            TsType::TsTypeQuery { 0: _field_0 } => {
45335                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45336                    self,
45337                    self::fields::TsTypeField::TsTypeQuery,
45338                ));
45339                <TsTypeQuery as VisitWithAstPath<V>>::visit_with_ast_path(
45340                    _field_0,
45341                    visitor,
45342                    &mut *__ast_path,
45343                );
45344            }
45345            TsType::TsTypeLit { 0: _field_0 } => {
45346                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45347                    self,
45348                    self::fields::TsTypeField::TsTypeLit,
45349                ));
45350                <TsTypeLit as VisitWithAstPath<V>>::visit_with_ast_path(
45351                    _field_0,
45352                    visitor,
45353                    &mut *__ast_path,
45354                );
45355            }
45356            TsType::TsArrayType { 0: _field_0 } => {
45357                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45358                    self,
45359                    self::fields::TsTypeField::TsArrayType,
45360                ));
45361                <TsArrayType as VisitWithAstPath<V>>::visit_with_ast_path(
45362                    _field_0,
45363                    visitor,
45364                    &mut *__ast_path,
45365                );
45366            }
45367            TsType::TsTupleType { 0: _field_0 } => {
45368                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45369                    self,
45370                    self::fields::TsTypeField::TsTupleType,
45371                ));
45372                <TsTupleType as VisitWithAstPath<V>>::visit_with_ast_path(
45373                    _field_0,
45374                    visitor,
45375                    &mut *__ast_path,
45376                );
45377            }
45378            TsType::TsOptionalType { 0: _field_0 } => {
45379                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45380                    self,
45381                    self::fields::TsTypeField::TsOptionalType,
45382                ));
45383                <TsOptionalType as VisitWithAstPath<V>>::visit_with_ast_path(
45384                    _field_0,
45385                    visitor,
45386                    &mut *__ast_path,
45387                );
45388            }
45389            TsType::TsRestType { 0: _field_0 } => {
45390                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45391                    self,
45392                    self::fields::TsTypeField::TsRestType,
45393                ));
45394                <TsRestType as VisitWithAstPath<V>>::visit_with_ast_path(
45395                    _field_0,
45396                    visitor,
45397                    &mut *__ast_path,
45398                );
45399            }
45400            TsType::TsUnionOrIntersectionType { 0: _field_0 } => {
45401                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45402                    self,
45403                    self::fields::TsTypeField::TsUnionOrIntersectionType,
45404                ));
45405                <TsUnionOrIntersectionType as VisitWithAstPath<V>>::visit_with_ast_path(
45406                    _field_0,
45407                    visitor,
45408                    &mut *__ast_path,
45409                );
45410            }
45411            TsType::TsConditionalType { 0: _field_0 } => {
45412                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45413                    self,
45414                    self::fields::TsTypeField::TsConditionalType,
45415                ));
45416                <TsConditionalType as VisitWithAstPath<V>>::visit_with_ast_path(
45417                    _field_0,
45418                    visitor,
45419                    &mut *__ast_path,
45420                );
45421            }
45422            TsType::TsInferType { 0: _field_0 } => {
45423                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45424                    self,
45425                    self::fields::TsTypeField::TsInferType,
45426                ));
45427                <TsInferType as VisitWithAstPath<V>>::visit_with_ast_path(
45428                    _field_0,
45429                    visitor,
45430                    &mut *__ast_path,
45431                );
45432            }
45433            TsType::TsParenthesizedType { 0: _field_0 } => {
45434                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45435                    self,
45436                    self::fields::TsTypeField::TsParenthesizedType,
45437                ));
45438                <TsParenthesizedType as VisitWithAstPath<V>>::visit_with_ast_path(
45439                    _field_0,
45440                    visitor,
45441                    &mut *__ast_path,
45442                );
45443            }
45444            TsType::TsTypeOperator { 0: _field_0 } => {
45445                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45446                    self,
45447                    self::fields::TsTypeField::TsTypeOperator,
45448                ));
45449                <TsTypeOperator as VisitWithAstPath<V>>::visit_with_ast_path(
45450                    _field_0,
45451                    visitor,
45452                    &mut *__ast_path,
45453                );
45454            }
45455            TsType::TsIndexedAccessType { 0: _field_0 } => {
45456                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45457                    self,
45458                    self::fields::TsTypeField::TsIndexedAccessType,
45459                ));
45460                <TsIndexedAccessType as VisitWithAstPath<V>>::visit_with_ast_path(
45461                    _field_0,
45462                    visitor,
45463                    &mut *__ast_path,
45464                );
45465            }
45466            TsType::TsMappedType { 0: _field_0 } => {
45467                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45468                    self,
45469                    self::fields::TsTypeField::TsMappedType,
45470                ));
45471                <TsMappedType as VisitWithAstPath<V>>::visit_with_ast_path(
45472                    _field_0,
45473                    visitor,
45474                    &mut *__ast_path,
45475                );
45476            }
45477            TsType::TsLitType { 0: _field_0 } => {
45478                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45479                    self,
45480                    self::fields::TsTypeField::TsLitType,
45481                ));
45482                <TsLitType as VisitWithAstPath<V>>::visit_with_ast_path(
45483                    _field_0,
45484                    visitor,
45485                    &mut *__ast_path,
45486                );
45487            }
45488            TsType::TsTypePredicate { 0: _field_0 } => {
45489                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45490                    self,
45491                    self::fields::TsTypeField::TsTypePredicate,
45492                ));
45493                <TsTypePredicate as VisitWithAstPath<V>>::visit_with_ast_path(
45494                    _field_0,
45495                    visitor,
45496                    &mut *__ast_path,
45497                );
45498            }
45499            TsType::TsImportType { 0: _field_0 } => {
45500                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45501                    self,
45502                    self::fields::TsTypeField::TsImportType,
45503                ));
45504                <TsImportType as VisitWithAstPath<V>>::visit_with_ast_path(
45505                    _field_0,
45506                    visitor,
45507                    &mut *__ast_path,
45508                );
45509            }
45510        }
45511    }
45512}
45513#[cfg(any(docsrs, feature = "path"))]
45514#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45515impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeAliasDecl {
45516    #[doc = "Calls [VisitAstPath`::visit_ts_type_alias_decl`] with `self`."]
45517    fn visit_with_ast_path<'ast: 'r, 'r>(
45518        &'ast self,
45519        visitor: &mut V,
45520        __ast_path: &mut AstNodePath<'r>,
45521    ) {
45522        <V as VisitAstPath>::visit_ts_type_alias_decl(visitor, self, __ast_path)
45523    }
45524
45525    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45526        &'ast self,
45527        visitor: &mut V,
45528        __ast_path: &mut AstNodePath<'r>,
45529    ) {
45530        match self {
45531            TsTypeAliasDecl {
45532                span,
45533                declare,
45534                id,
45535                type_params,
45536                type_ann,
45537            } => {
45538                {
45539                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAliasDecl(
45540                        self,
45541                        self::fields::TsTypeAliasDeclField::Span,
45542                    ));
45543                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45544                        span,
45545                        visitor,
45546                        &mut *__ast_path,
45547                    )
45548                };
45549                {
45550                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAliasDecl(
45551                        self,
45552                        self::fields::TsTypeAliasDeclField::Id,
45553                    ));
45554                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
45555                        id,
45556                        visitor,
45557                        &mut *__ast_path,
45558                    )
45559                };
45560                {
45561                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAliasDecl(
45562                        self,
45563                        self::fields::TsTypeAliasDeclField::TypeParams,
45564                    ));
45565                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
45566                        type_params,
45567                        visitor,
45568                        &mut *__ast_path,
45569                    )
45570                };
45571                {
45572                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAliasDecl(
45573                        self,
45574                        self::fields::TsTypeAliasDeclField::TypeAnn,
45575                    ));
45576                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
45577                        type_ann,
45578                        visitor,
45579                        &mut *__ast_path,
45580                    )
45581                };
45582            }
45583        }
45584    }
45585}
45586#[cfg(any(docsrs, feature = "path"))]
45587#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45588impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeAnn {
45589    #[doc = "Calls [VisitAstPath`::visit_ts_type_ann`] with `self`."]
45590    fn visit_with_ast_path<'ast: 'r, 'r>(
45591        &'ast self,
45592        visitor: &mut V,
45593        __ast_path: &mut AstNodePath<'r>,
45594    ) {
45595        <V as VisitAstPath>::visit_ts_type_ann(visitor, self, __ast_path)
45596    }
45597
45598    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45599        &'ast self,
45600        visitor: &mut V,
45601        __ast_path: &mut AstNodePath<'r>,
45602    ) {
45603        match self {
45604            TsTypeAnn { span, type_ann } => {
45605                {
45606                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAnn(
45607                        self,
45608                        self::fields::TsTypeAnnField::Span,
45609                    ));
45610                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45611                        span,
45612                        visitor,
45613                        &mut *__ast_path,
45614                    )
45615                };
45616                {
45617                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAnn(
45618                        self,
45619                        self::fields::TsTypeAnnField::TypeAnn,
45620                    ));
45621                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
45622                        type_ann,
45623                        visitor,
45624                        &mut *__ast_path,
45625                    )
45626                };
45627            }
45628        }
45629    }
45630}
45631#[cfg(any(docsrs, feature = "path"))]
45632#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45633impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeAssertion {
45634    #[doc = "Calls [VisitAstPath`::visit_ts_type_assertion`] with `self`."]
45635    fn visit_with_ast_path<'ast: 'r, 'r>(
45636        &'ast self,
45637        visitor: &mut V,
45638        __ast_path: &mut AstNodePath<'r>,
45639    ) {
45640        <V as VisitAstPath>::visit_ts_type_assertion(visitor, self, __ast_path)
45641    }
45642
45643    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45644        &'ast self,
45645        visitor: &mut V,
45646        __ast_path: &mut AstNodePath<'r>,
45647    ) {
45648        match self {
45649            TsTypeAssertion {
45650                span,
45651                expr,
45652                type_ann,
45653            } => {
45654                {
45655                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAssertion(
45656                        self,
45657                        self::fields::TsTypeAssertionField::Span,
45658                    ));
45659                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45660                        span,
45661                        visitor,
45662                        &mut *__ast_path,
45663                    )
45664                };
45665                {
45666                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAssertion(
45667                        self,
45668                        self::fields::TsTypeAssertionField::Expr,
45669                    ));
45670                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
45671                        expr,
45672                        visitor,
45673                        &mut *__ast_path,
45674                    )
45675                };
45676                {
45677                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAssertion(
45678                        self,
45679                        self::fields::TsTypeAssertionField::TypeAnn,
45680                    ));
45681                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
45682                        type_ann,
45683                        visitor,
45684                        &mut *__ast_path,
45685                    )
45686                };
45687            }
45688        }
45689    }
45690}
45691#[cfg(any(docsrs, feature = "path"))]
45692#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45693impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeElement {
45694    #[doc = "Calls [VisitAstPath`::visit_ts_type_element`] with `self`."]
45695    fn visit_with_ast_path<'ast: 'r, 'r>(
45696        &'ast self,
45697        visitor: &mut V,
45698        __ast_path: &mut AstNodePath<'r>,
45699    ) {
45700        <V as VisitAstPath>::visit_ts_type_element(visitor, self, __ast_path)
45701    }
45702
45703    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45704        &'ast self,
45705        visitor: &mut V,
45706        __ast_path: &mut AstNodePath<'r>,
45707    ) {
45708        match self {
45709            TsTypeElement::TsCallSignatureDecl { 0: _field_0 } => {
45710                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeElement(
45711                    self,
45712                    self::fields::TsTypeElementField::TsCallSignatureDecl,
45713                ));
45714                <TsCallSignatureDecl as VisitWithAstPath<V>>::visit_with_ast_path(
45715                    _field_0,
45716                    visitor,
45717                    &mut *__ast_path,
45718                );
45719            }
45720            TsTypeElement::TsConstructSignatureDecl { 0: _field_0 } => {
45721                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeElement(
45722                    self,
45723                    self::fields::TsTypeElementField::TsConstructSignatureDecl,
45724                ));
45725                <TsConstructSignatureDecl as VisitWithAstPath<V>>::visit_with_ast_path(
45726                    _field_0,
45727                    visitor,
45728                    &mut *__ast_path,
45729                );
45730            }
45731            TsTypeElement::TsPropertySignature { 0: _field_0 } => {
45732                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeElement(
45733                    self,
45734                    self::fields::TsTypeElementField::TsPropertySignature,
45735                ));
45736                <TsPropertySignature as VisitWithAstPath<V>>::visit_with_ast_path(
45737                    _field_0,
45738                    visitor,
45739                    &mut *__ast_path,
45740                );
45741            }
45742            TsTypeElement::TsGetterSignature { 0: _field_0 } => {
45743                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeElement(
45744                    self,
45745                    self::fields::TsTypeElementField::TsGetterSignature,
45746                ));
45747                <TsGetterSignature as VisitWithAstPath<V>>::visit_with_ast_path(
45748                    _field_0,
45749                    visitor,
45750                    &mut *__ast_path,
45751                );
45752            }
45753            TsTypeElement::TsSetterSignature { 0: _field_0 } => {
45754                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeElement(
45755                    self,
45756                    self::fields::TsTypeElementField::TsSetterSignature,
45757                ));
45758                <TsSetterSignature as VisitWithAstPath<V>>::visit_with_ast_path(
45759                    _field_0,
45760                    visitor,
45761                    &mut *__ast_path,
45762                );
45763            }
45764            TsTypeElement::TsMethodSignature { 0: _field_0 } => {
45765                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeElement(
45766                    self,
45767                    self::fields::TsTypeElementField::TsMethodSignature,
45768                ));
45769                <TsMethodSignature as VisitWithAstPath<V>>::visit_with_ast_path(
45770                    _field_0,
45771                    visitor,
45772                    &mut *__ast_path,
45773                );
45774            }
45775            TsTypeElement::TsIndexSignature { 0: _field_0 } => {
45776                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeElement(
45777                    self,
45778                    self::fields::TsTypeElementField::TsIndexSignature,
45779                ));
45780                <TsIndexSignature as VisitWithAstPath<V>>::visit_with_ast_path(
45781                    _field_0,
45782                    visitor,
45783                    &mut *__ast_path,
45784                );
45785            }
45786        }
45787    }
45788}
45789#[cfg(any(docsrs, feature = "path"))]
45790#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45791impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeLit {
45792    #[doc = "Calls [VisitAstPath`::visit_ts_type_lit`] with `self`."]
45793    fn visit_with_ast_path<'ast: 'r, 'r>(
45794        &'ast self,
45795        visitor: &mut V,
45796        __ast_path: &mut AstNodePath<'r>,
45797    ) {
45798        <V as VisitAstPath>::visit_ts_type_lit(visitor, self, __ast_path)
45799    }
45800
45801    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45802        &'ast self,
45803        visitor: &mut V,
45804        __ast_path: &mut AstNodePath<'r>,
45805    ) {
45806        match self {
45807            TsTypeLit { span, members } => {
45808                {
45809                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeLit(
45810                        self,
45811                        self::fields::TsTypeLitField::Span,
45812                    ));
45813                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45814                        span,
45815                        visitor,
45816                        &mut *__ast_path,
45817                    )
45818                };
45819                {
45820                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeLit(
45821                        self,
45822                        self::fields::TsTypeLitField::Members(usize::MAX),
45823                    ));
45824                    <Vec<TsTypeElement> as VisitWithAstPath<V>>::visit_with_ast_path(
45825                        members,
45826                        visitor,
45827                        &mut *__ast_path,
45828                    )
45829                };
45830            }
45831        }
45832    }
45833}
45834#[cfg(any(docsrs, feature = "path"))]
45835#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45836impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeOperator {
45837    #[doc = "Calls [VisitAstPath`::visit_ts_type_operator`] with `self`."]
45838    fn visit_with_ast_path<'ast: 'r, 'r>(
45839        &'ast self,
45840        visitor: &mut V,
45841        __ast_path: &mut AstNodePath<'r>,
45842    ) {
45843        <V as VisitAstPath>::visit_ts_type_operator(visitor, self, __ast_path)
45844    }
45845
45846    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45847        &'ast self,
45848        visitor: &mut V,
45849        __ast_path: &mut AstNodePath<'r>,
45850    ) {
45851        match self {
45852            TsTypeOperator { span, op, type_ann } => {
45853                {
45854                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeOperator(
45855                        self,
45856                        self::fields::TsTypeOperatorField::Span,
45857                    ));
45858                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45859                        span,
45860                        visitor,
45861                        &mut *__ast_path,
45862                    )
45863                };
45864                {
45865                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeOperator(
45866                        self,
45867                        self::fields::TsTypeOperatorField::Op,
45868                    ));
45869                    <TsTypeOperatorOp as VisitWithAstPath<V>>::visit_with_ast_path(
45870                        op,
45871                        visitor,
45872                        &mut *__ast_path,
45873                    )
45874                };
45875                {
45876                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeOperator(
45877                        self,
45878                        self::fields::TsTypeOperatorField::TypeAnn,
45879                    ));
45880                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
45881                        type_ann,
45882                        visitor,
45883                        &mut *__ast_path,
45884                    )
45885                };
45886            }
45887        }
45888    }
45889}
45890#[cfg(any(docsrs, feature = "path"))]
45891#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45892impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeOperatorOp {
45893    #[doc = "Calls [VisitAstPath`::visit_ts_type_operator_op`] with `self`."]
45894    fn visit_with_ast_path<'ast: 'r, 'r>(
45895        &'ast self,
45896        visitor: &mut V,
45897        __ast_path: &mut AstNodePath<'r>,
45898    ) {
45899        <V as VisitAstPath>::visit_ts_type_operator_op(visitor, self, __ast_path)
45900    }
45901
45902    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45903        &'ast self,
45904        visitor: &mut V,
45905        __ast_path: &mut AstNodePath<'r>,
45906    ) {
45907        match self {
45908            TsTypeOperatorOp::KeyOf => {}
45909            TsTypeOperatorOp::Unique => {}
45910            TsTypeOperatorOp::ReadOnly => {}
45911        }
45912    }
45913}
45914#[cfg(any(docsrs, feature = "path"))]
45915#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45916impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeParam {
45917    #[doc = "Calls [VisitAstPath`::visit_ts_type_param`] with `self`."]
45918    fn visit_with_ast_path<'ast: 'r, 'r>(
45919        &'ast self,
45920        visitor: &mut V,
45921        __ast_path: &mut AstNodePath<'r>,
45922    ) {
45923        <V as VisitAstPath>::visit_ts_type_param(visitor, self, __ast_path)
45924    }
45925
45926    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45927        &'ast self,
45928        visitor: &mut V,
45929        __ast_path: &mut AstNodePath<'r>,
45930    ) {
45931        match self {
45932            TsTypeParam {
45933                span,
45934                name,
45935                is_in,
45936                is_out,
45937                is_const,
45938                constraint,
45939                default,
45940            } => {
45941                {
45942                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeParam(
45943                        self,
45944                        self::fields::TsTypeParamField::Span,
45945                    ));
45946                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45947                        span,
45948                        visitor,
45949                        &mut *__ast_path,
45950                    )
45951                };
45952                {
45953                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeParam(
45954                        self,
45955                        self::fields::TsTypeParamField::Name,
45956                    ));
45957                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
45958                        name,
45959                        visitor,
45960                        &mut *__ast_path,
45961                    )
45962                };
45963                {
45964                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeParam(
45965                        self,
45966                        self::fields::TsTypeParamField::Constraint,
45967                    ));
45968                    <Option<Box<TsType>> as VisitWithAstPath<V>>::visit_with_ast_path(
45969                        constraint,
45970                        visitor,
45971                        &mut *__ast_path,
45972                    )
45973                };
45974                {
45975                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeParam(
45976                        self,
45977                        self::fields::TsTypeParamField::Default,
45978                    ));
45979                    <Option<Box<TsType>> as VisitWithAstPath<V>>::visit_with_ast_path(
45980                        default,
45981                        visitor,
45982                        &mut *__ast_path,
45983                    )
45984                };
45985            }
45986        }
45987    }
45988}
45989#[cfg(any(docsrs, feature = "path"))]
45990#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45991impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeParamDecl {
45992    #[doc = "Calls [VisitAstPath`::visit_ts_type_param_decl`] with `self`."]
45993    fn visit_with_ast_path<'ast: 'r, 'r>(
45994        &'ast self,
45995        visitor: &mut V,
45996        __ast_path: &mut AstNodePath<'r>,
45997    ) {
45998        <V as VisitAstPath>::visit_ts_type_param_decl(visitor, self, __ast_path)
45999    }
46000
46001    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46002        &'ast self,
46003        visitor: &mut V,
46004        __ast_path: &mut AstNodePath<'r>,
46005    ) {
46006        match self {
46007            TsTypeParamDecl { span, params } => {
46008                {
46009                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeParamDecl(
46010                        self,
46011                        self::fields::TsTypeParamDeclField::Span,
46012                    ));
46013                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46014                        span,
46015                        visitor,
46016                        &mut *__ast_path,
46017                    )
46018                };
46019                {
46020                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeParamDecl(
46021                        self,
46022                        self::fields::TsTypeParamDeclField::Params(usize::MAX),
46023                    ));
46024                    <Vec<TsTypeParam> as VisitWithAstPath<V>>::visit_with_ast_path(
46025                        params,
46026                        visitor,
46027                        &mut *__ast_path,
46028                    )
46029                };
46030            }
46031        }
46032    }
46033}
46034#[cfg(any(docsrs, feature = "path"))]
46035#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46036impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeParamInstantiation {
46037    #[doc = "Calls [VisitAstPath`::visit_ts_type_param_instantiation`] with `self`."]
46038    fn visit_with_ast_path<'ast: 'r, 'r>(
46039        &'ast self,
46040        visitor: &mut V,
46041        __ast_path: &mut AstNodePath<'r>,
46042    ) {
46043        <V as VisitAstPath>::visit_ts_type_param_instantiation(visitor, self, __ast_path)
46044    }
46045
46046    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46047        &'ast self,
46048        visitor: &mut V,
46049        __ast_path: &mut AstNodePath<'r>,
46050    ) {
46051        match self {
46052            TsTypeParamInstantiation { span, params } => {
46053                {
46054                    let mut __ast_path =
46055                        __ast_path.with_guard(AstParentNodeRef::TsTypeParamInstantiation(
46056                            self,
46057                            self::fields::TsTypeParamInstantiationField::Span,
46058                        ));
46059                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46060                        span,
46061                        visitor,
46062                        &mut *__ast_path,
46063                    )
46064                };
46065                {
46066                    let mut __ast_path =
46067                        __ast_path.with_guard(AstParentNodeRef::TsTypeParamInstantiation(
46068                            self,
46069                            self::fields::TsTypeParamInstantiationField::Params(usize::MAX),
46070                        ));
46071                    <Vec<Box<TsType>> as VisitWithAstPath<V>>::visit_with_ast_path(
46072                        params,
46073                        visitor,
46074                        &mut *__ast_path,
46075                    )
46076                };
46077            }
46078        }
46079    }
46080}
46081#[cfg(any(docsrs, feature = "path"))]
46082#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46083impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypePredicate {
46084    #[doc = "Calls [VisitAstPath`::visit_ts_type_predicate`] with `self`."]
46085    fn visit_with_ast_path<'ast: 'r, 'r>(
46086        &'ast self,
46087        visitor: &mut V,
46088        __ast_path: &mut AstNodePath<'r>,
46089    ) {
46090        <V as VisitAstPath>::visit_ts_type_predicate(visitor, self, __ast_path)
46091    }
46092
46093    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46094        &'ast self,
46095        visitor: &mut V,
46096        __ast_path: &mut AstNodePath<'r>,
46097    ) {
46098        match self {
46099            TsTypePredicate {
46100                span,
46101                asserts,
46102                param_name,
46103                type_ann,
46104            } => {
46105                {
46106                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypePredicate(
46107                        self,
46108                        self::fields::TsTypePredicateField::Span,
46109                    ));
46110                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46111                        span,
46112                        visitor,
46113                        &mut *__ast_path,
46114                    )
46115                };
46116                {
46117                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypePredicate(
46118                        self,
46119                        self::fields::TsTypePredicateField::ParamName,
46120                    ));
46121                    <TsThisTypeOrIdent as VisitWithAstPath<V>>::visit_with_ast_path(
46122                        param_name,
46123                        visitor,
46124                        &mut *__ast_path,
46125                    )
46126                };
46127                {
46128                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypePredicate(
46129                        self,
46130                        self::fields::TsTypePredicateField::TypeAnn,
46131                    ));
46132                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
46133                        type_ann,
46134                        visitor,
46135                        &mut *__ast_path,
46136                    )
46137                };
46138            }
46139        }
46140    }
46141}
46142#[cfg(any(docsrs, feature = "path"))]
46143#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46144impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeQuery {
46145    #[doc = "Calls [VisitAstPath`::visit_ts_type_query`] with `self`."]
46146    fn visit_with_ast_path<'ast: 'r, 'r>(
46147        &'ast self,
46148        visitor: &mut V,
46149        __ast_path: &mut AstNodePath<'r>,
46150    ) {
46151        <V as VisitAstPath>::visit_ts_type_query(visitor, self, __ast_path)
46152    }
46153
46154    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46155        &'ast self,
46156        visitor: &mut V,
46157        __ast_path: &mut AstNodePath<'r>,
46158    ) {
46159        match self {
46160            TsTypeQuery {
46161                span,
46162                expr_name,
46163                type_args,
46164            } => {
46165                {
46166                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeQuery(
46167                        self,
46168                        self::fields::TsTypeQueryField::Span,
46169                    ));
46170                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46171                        span,
46172                        visitor,
46173                        &mut *__ast_path,
46174                    )
46175                };
46176                {
46177                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeQuery(
46178                        self,
46179                        self::fields::TsTypeQueryField::ExprName,
46180                    ));
46181                    <TsTypeQueryExpr as VisitWithAstPath<V>>::visit_with_ast_path(
46182                        expr_name,
46183                        visitor,
46184                        &mut *__ast_path,
46185                    )
46186                };
46187                {
46188                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeQuery(
46189                        self,
46190                        self::fields::TsTypeQueryField::TypeArgs,
46191                    ));
46192                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_args , visitor , & mut * __ast_path)
46193                };
46194            }
46195        }
46196    }
46197}
46198#[cfg(any(docsrs, feature = "path"))]
46199#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46200impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeQueryExpr {
46201    #[doc = "Calls [VisitAstPath`::visit_ts_type_query_expr`] with `self`."]
46202    fn visit_with_ast_path<'ast: 'r, 'r>(
46203        &'ast self,
46204        visitor: &mut V,
46205        __ast_path: &mut AstNodePath<'r>,
46206    ) {
46207        <V as VisitAstPath>::visit_ts_type_query_expr(visitor, self, __ast_path)
46208    }
46209
46210    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46211        &'ast self,
46212        visitor: &mut V,
46213        __ast_path: &mut AstNodePath<'r>,
46214    ) {
46215        match self {
46216            TsTypeQueryExpr::TsEntityName { 0: _field_0 } => {
46217                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeQueryExpr(
46218                    self,
46219                    self::fields::TsTypeQueryExprField::TsEntityName,
46220                ));
46221                <TsEntityName as VisitWithAstPath<V>>::visit_with_ast_path(
46222                    _field_0,
46223                    visitor,
46224                    &mut *__ast_path,
46225                );
46226            }
46227            TsTypeQueryExpr::Import { 0: _field_0 } => {
46228                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeQueryExpr(
46229                    self,
46230                    self::fields::TsTypeQueryExprField::Import,
46231                ));
46232                <TsImportType as VisitWithAstPath<V>>::visit_with_ast_path(
46233                    _field_0,
46234                    visitor,
46235                    &mut *__ast_path,
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 TsTypeRef {
46244    #[doc = "Calls [VisitAstPath`::visit_ts_type_ref`] 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_ts_type_ref(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            TsTypeRef {
46260                span,
46261                type_name,
46262                type_params,
46263            } => {
46264                {
46265                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeRef(
46266                        self,
46267                        self::fields::TsTypeRefField::Span,
46268                    ));
46269                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46270                        span,
46271                        visitor,
46272                        &mut *__ast_path,
46273                    )
46274                };
46275                {
46276                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeRef(
46277                        self,
46278                        self::fields::TsTypeRefField::TypeName,
46279                    ));
46280                    <TsEntityName as VisitWithAstPath<V>>::visit_with_ast_path(
46281                        type_name,
46282                        visitor,
46283                        &mut *__ast_path,
46284                    )
46285                };
46286                {
46287                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeRef(
46288                        self,
46289                        self::fields::TsTypeRefField::TypeParams,
46290                    ));
46291                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_params , visitor , & mut * __ast_path)
46292                };
46293            }
46294        }
46295    }
46296}
46297#[cfg(any(docsrs, feature = "path"))]
46298#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46299impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsUnionOrIntersectionType {
46300    #[doc = "Calls [VisitAstPath`::visit_ts_union_or_intersection_type`] with `self`."]
46301    fn visit_with_ast_path<'ast: 'r, 'r>(
46302        &'ast self,
46303        visitor: &mut V,
46304        __ast_path: &mut AstNodePath<'r>,
46305    ) {
46306        <V as VisitAstPath>::visit_ts_union_or_intersection_type(visitor, self, __ast_path)
46307    }
46308
46309    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46310        &'ast self,
46311        visitor: &mut V,
46312        __ast_path: &mut AstNodePath<'r>,
46313    ) {
46314        match self {
46315            TsUnionOrIntersectionType::TsUnionType { 0: _field_0 } => {
46316                let mut __ast_path =
46317                    __ast_path.with_guard(AstParentNodeRef::TsUnionOrIntersectionType(
46318                        self,
46319                        self::fields::TsUnionOrIntersectionTypeField::TsUnionType,
46320                    ));
46321                <TsUnionType as VisitWithAstPath<V>>::visit_with_ast_path(
46322                    _field_0,
46323                    visitor,
46324                    &mut *__ast_path,
46325                );
46326            }
46327            TsUnionOrIntersectionType::TsIntersectionType { 0: _field_0 } => {
46328                let mut __ast_path =
46329                    __ast_path.with_guard(AstParentNodeRef::TsUnionOrIntersectionType(
46330                        self,
46331                        self::fields::TsUnionOrIntersectionTypeField::TsIntersectionType,
46332                    ));
46333                <TsIntersectionType as VisitWithAstPath<V>>::visit_with_ast_path(
46334                    _field_0,
46335                    visitor,
46336                    &mut *__ast_path,
46337                );
46338            }
46339        }
46340    }
46341}
46342#[cfg(any(docsrs, feature = "path"))]
46343#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46344impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsUnionType {
46345    #[doc = "Calls [VisitAstPath`::visit_ts_union_type`] with `self`."]
46346    fn visit_with_ast_path<'ast: 'r, 'r>(
46347        &'ast self,
46348        visitor: &mut V,
46349        __ast_path: &mut AstNodePath<'r>,
46350    ) {
46351        <V as VisitAstPath>::visit_ts_union_type(visitor, self, __ast_path)
46352    }
46353
46354    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46355        &'ast self,
46356        visitor: &mut V,
46357        __ast_path: &mut AstNodePath<'r>,
46358    ) {
46359        match self {
46360            TsUnionType { span, types } => {
46361                {
46362                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsUnionType(
46363                        self,
46364                        self::fields::TsUnionTypeField::Span,
46365                    ));
46366                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46367                        span,
46368                        visitor,
46369                        &mut *__ast_path,
46370                    )
46371                };
46372                {
46373                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsUnionType(
46374                        self,
46375                        self::fields::TsUnionTypeField::Types(usize::MAX),
46376                    ));
46377                    <Vec<Box<TsType>> as VisitWithAstPath<V>>::visit_with_ast_path(
46378                        types,
46379                        visitor,
46380                        &mut *__ast_path,
46381                    )
46382                };
46383            }
46384        }
46385    }
46386}
46387#[cfg(any(docsrs, feature = "path"))]
46388#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46389impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for UnaryExpr {
46390    #[doc = "Calls [VisitAstPath`::visit_unary_expr`] with `self`."]
46391    fn visit_with_ast_path<'ast: 'r, 'r>(
46392        &'ast self,
46393        visitor: &mut V,
46394        __ast_path: &mut AstNodePath<'r>,
46395    ) {
46396        <V as VisitAstPath>::visit_unary_expr(visitor, self, __ast_path)
46397    }
46398
46399    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46400        &'ast self,
46401        visitor: &mut V,
46402        __ast_path: &mut AstNodePath<'r>,
46403    ) {
46404        match self {
46405            UnaryExpr { span, op, arg } => {
46406                {
46407                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::UnaryExpr(
46408                        self,
46409                        self::fields::UnaryExprField::Span,
46410                    ));
46411                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46412                        span,
46413                        visitor,
46414                        &mut *__ast_path,
46415                    )
46416                };
46417                {
46418                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::UnaryExpr(
46419                        self,
46420                        self::fields::UnaryExprField::Op,
46421                    ));
46422                    <UnaryOp as VisitWithAstPath<V>>::visit_with_ast_path(
46423                        op,
46424                        visitor,
46425                        &mut *__ast_path,
46426                    )
46427                };
46428                {
46429                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::UnaryExpr(
46430                        self,
46431                        self::fields::UnaryExprField::Arg,
46432                    ));
46433                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
46434                        arg,
46435                        visitor,
46436                        &mut *__ast_path,
46437                    )
46438                };
46439            }
46440        }
46441    }
46442}
46443#[cfg(any(docsrs, feature = "path"))]
46444#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46445impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for UnaryOp {
46446    #[doc = "Calls [VisitAstPath`::visit_unary_op`] with `self`."]
46447    fn visit_with_ast_path<'ast: 'r, 'r>(
46448        &'ast self,
46449        visitor: &mut V,
46450        __ast_path: &mut AstNodePath<'r>,
46451    ) {
46452        <V as VisitAstPath>::visit_unary_op(visitor, self, __ast_path)
46453    }
46454
46455    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46456        &'ast self,
46457        visitor: &mut V,
46458        __ast_path: &mut AstNodePath<'r>,
46459    ) {
46460        match self {
46461            UnaryOp::Minus => {}
46462            UnaryOp::Plus => {}
46463            UnaryOp::Bang => {}
46464            UnaryOp::Tilde => {}
46465            UnaryOp::TypeOf => {}
46466            UnaryOp::Void => {}
46467            UnaryOp::Delete => {}
46468        }
46469    }
46470}
46471#[cfg(any(docsrs, feature = "path"))]
46472#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46473impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for UpdateExpr {
46474    #[doc = "Calls [VisitAstPath`::visit_update_expr`] with `self`."]
46475    fn visit_with_ast_path<'ast: 'r, 'r>(
46476        &'ast self,
46477        visitor: &mut V,
46478        __ast_path: &mut AstNodePath<'r>,
46479    ) {
46480        <V as VisitAstPath>::visit_update_expr(visitor, self, __ast_path)
46481    }
46482
46483    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46484        &'ast self,
46485        visitor: &mut V,
46486        __ast_path: &mut AstNodePath<'r>,
46487    ) {
46488        match self {
46489            UpdateExpr {
46490                span,
46491                op,
46492                prefix,
46493                arg,
46494            } => {
46495                {
46496                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::UpdateExpr(
46497                        self,
46498                        self::fields::UpdateExprField::Span,
46499                    ));
46500                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46501                        span,
46502                        visitor,
46503                        &mut *__ast_path,
46504                    )
46505                };
46506                {
46507                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::UpdateExpr(
46508                        self,
46509                        self::fields::UpdateExprField::Op,
46510                    ));
46511                    <UpdateOp as VisitWithAstPath<V>>::visit_with_ast_path(
46512                        op,
46513                        visitor,
46514                        &mut *__ast_path,
46515                    )
46516                };
46517                {
46518                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::UpdateExpr(
46519                        self,
46520                        self::fields::UpdateExprField::Arg,
46521                    ));
46522                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
46523                        arg,
46524                        visitor,
46525                        &mut *__ast_path,
46526                    )
46527                };
46528            }
46529        }
46530    }
46531}
46532#[cfg(any(docsrs, feature = "path"))]
46533#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46534impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for UpdateOp {
46535    #[doc = "Calls [VisitAstPath`::visit_update_op`] with `self`."]
46536    fn visit_with_ast_path<'ast: 'r, 'r>(
46537        &'ast self,
46538        visitor: &mut V,
46539        __ast_path: &mut AstNodePath<'r>,
46540    ) {
46541        <V as VisitAstPath>::visit_update_op(visitor, self, __ast_path)
46542    }
46543
46544    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46545        &'ast self,
46546        visitor: &mut V,
46547        __ast_path: &mut AstNodePath<'r>,
46548    ) {
46549        match self {
46550            UpdateOp::PlusPlus => {}
46551            UpdateOp::MinusMinus => {}
46552        }
46553    }
46554}
46555#[cfg(any(docsrs, feature = "path"))]
46556#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46557impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for UsingDecl {
46558    #[doc = "Calls [VisitAstPath`::visit_using_decl`] with `self`."]
46559    fn visit_with_ast_path<'ast: 'r, 'r>(
46560        &'ast self,
46561        visitor: &mut V,
46562        __ast_path: &mut AstNodePath<'r>,
46563    ) {
46564        <V as VisitAstPath>::visit_using_decl(visitor, self, __ast_path)
46565    }
46566
46567    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46568        &'ast self,
46569        visitor: &mut V,
46570        __ast_path: &mut AstNodePath<'r>,
46571    ) {
46572        match self {
46573            UsingDecl {
46574                span,
46575                is_await,
46576                decls,
46577            } => {
46578                {
46579                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::UsingDecl(
46580                        self,
46581                        self::fields::UsingDeclField::Span,
46582                    ));
46583                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46584                        span,
46585                        visitor,
46586                        &mut *__ast_path,
46587                    )
46588                };
46589                {
46590                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::UsingDecl(
46591                        self,
46592                        self::fields::UsingDeclField::Decls(usize::MAX),
46593                    ));
46594                    <Vec<VarDeclarator> as VisitWithAstPath<V>>::visit_with_ast_path(
46595                        decls,
46596                        visitor,
46597                        &mut *__ast_path,
46598                    )
46599                };
46600            }
46601        }
46602    }
46603}
46604#[cfg(any(docsrs, feature = "path"))]
46605#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46606impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for VarDecl {
46607    #[doc = "Calls [VisitAstPath`::visit_var_decl`] with `self`."]
46608    fn visit_with_ast_path<'ast: 'r, 'r>(
46609        &'ast self,
46610        visitor: &mut V,
46611        __ast_path: &mut AstNodePath<'r>,
46612    ) {
46613        <V as VisitAstPath>::visit_var_decl(visitor, self, __ast_path)
46614    }
46615
46616    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46617        &'ast self,
46618        visitor: &mut V,
46619        __ast_path: &mut AstNodePath<'r>,
46620    ) {
46621        match self {
46622            VarDecl {
46623                span,
46624                ctxt,
46625                kind,
46626                declare,
46627                decls,
46628            } => {
46629                {
46630                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDecl(
46631                        self,
46632                        self::fields::VarDeclField::Span,
46633                    ));
46634                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46635                        span,
46636                        visitor,
46637                        &mut *__ast_path,
46638                    )
46639                };
46640                {
46641                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDecl(
46642                        self,
46643                        self::fields::VarDeclField::Ctxt,
46644                    ));
46645                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
46646                        ctxt,
46647                        visitor,
46648                        &mut *__ast_path,
46649                    )
46650                };
46651                {
46652                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDecl(
46653                        self,
46654                        self::fields::VarDeclField::Kind,
46655                    ));
46656                    <VarDeclKind as VisitWithAstPath<V>>::visit_with_ast_path(
46657                        kind,
46658                        visitor,
46659                        &mut *__ast_path,
46660                    )
46661                };
46662                {
46663                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDecl(
46664                        self,
46665                        self::fields::VarDeclField::Decls(usize::MAX),
46666                    ));
46667                    <Vec<VarDeclarator> as VisitWithAstPath<V>>::visit_with_ast_path(
46668                        decls,
46669                        visitor,
46670                        &mut *__ast_path,
46671                    )
46672                };
46673            }
46674        }
46675    }
46676}
46677#[cfg(any(docsrs, feature = "path"))]
46678#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46679impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for VarDeclKind {
46680    #[doc = "Calls [VisitAstPath`::visit_var_decl_kind`] with `self`."]
46681    fn visit_with_ast_path<'ast: 'r, 'r>(
46682        &'ast self,
46683        visitor: &mut V,
46684        __ast_path: &mut AstNodePath<'r>,
46685    ) {
46686        <V as VisitAstPath>::visit_var_decl_kind(visitor, self, __ast_path)
46687    }
46688
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        match self {
46695            VarDeclKind::Var => {}
46696            VarDeclKind::Let => {}
46697            VarDeclKind::Const => {}
46698        }
46699    }
46700}
46701#[cfg(any(docsrs, feature = "path"))]
46702#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46703impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for VarDeclOrExpr {
46704    #[doc = "Calls [VisitAstPath`::visit_var_decl_or_expr`] with `self`."]
46705    fn visit_with_ast_path<'ast: 'r, 'r>(
46706        &'ast self,
46707        visitor: &mut V,
46708        __ast_path: &mut AstNodePath<'r>,
46709    ) {
46710        <V as VisitAstPath>::visit_var_decl_or_expr(visitor, self, __ast_path)
46711    }
46712
46713    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46714        &'ast self,
46715        visitor: &mut V,
46716        __ast_path: &mut AstNodePath<'r>,
46717    ) {
46718        match self {
46719            VarDeclOrExpr::VarDecl { 0: _field_0 } => {
46720                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDeclOrExpr(
46721                    self,
46722                    self::fields::VarDeclOrExprField::VarDecl,
46723                ));
46724                <Box<VarDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
46725                    _field_0,
46726                    visitor,
46727                    &mut *__ast_path,
46728                );
46729            }
46730            VarDeclOrExpr::Expr { 0: _field_0 } => {
46731                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDeclOrExpr(
46732                    self,
46733                    self::fields::VarDeclOrExprField::Expr,
46734                ));
46735                <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
46736                    _field_0,
46737                    visitor,
46738                    &mut *__ast_path,
46739                );
46740            }
46741        }
46742    }
46743}
46744#[cfg(any(docsrs, feature = "path"))]
46745#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46746impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for VarDeclarator {
46747    #[doc = "Calls [VisitAstPath`::visit_var_declarator`] with `self`."]
46748    fn visit_with_ast_path<'ast: 'r, 'r>(
46749        &'ast self,
46750        visitor: &mut V,
46751        __ast_path: &mut AstNodePath<'r>,
46752    ) {
46753        <V as VisitAstPath>::visit_var_declarator(visitor, self, __ast_path)
46754    }
46755
46756    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46757        &'ast self,
46758        visitor: &mut V,
46759        __ast_path: &mut AstNodePath<'r>,
46760    ) {
46761        match self {
46762            VarDeclarator {
46763                span,
46764                name,
46765                init,
46766                definite,
46767            } => {
46768                {
46769                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDeclarator(
46770                        self,
46771                        self::fields::VarDeclaratorField::Span,
46772                    ));
46773                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46774                        span,
46775                        visitor,
46776                        &mut *__ast_path,
46777                    )
46778                };
46779                {
46780                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDeclarator(
46781                        self,
46782                        self::fields::VarDeclaratorField::Name,
46783                    ));
46784                    <Pat as VisitWithAstPath<V>>::visit_with_ast_path(
46785                        name,
46786                        visitor,
46787                        &mut *__ast_path,
46788                    )
46789                };
46790                {
46791                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDeclarator(
46792                        self,
46793                        self::fields::VarDeclaratorField::Init,
46794                    ));
46795                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
46796                        init,
46797                        visitor,
46798                        &mut *__ast_path,
46799                    )
46800                };
46801            }
46802        }
46803    }
46804}
46805#[cfg(any(docsrs, feature = "path"))]
46806#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46807impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for WhileStmt {
46808    #[doc = "Calls [VisitAstPath`::visit_while_stmt`] with `self`."]
46809    fn visit_with_ast_path<'ast: 'r, 'r>(
46810        &'ast self,
46811        visitor: &mut V,
46812        __ast_path: &mut AstNodePath<'r>,
46813    ) {
46814        <V as VisitAstPath>::visit_while_stmt(visitor, self, __ast_path)
46815    }
46816
46817    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46818        &'ast self,
46819        visitor: &mut V,
46820        __ast_path: &mut AstNodePath<'r>,
46821    ) {
46822        match self {
46823            WhileStmt { span, test, body } => {
46824                {
46825                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::WhileStmt(
46826                        self,
46827                        self::fields::WhileStmtField::Span,
46828                    ));
46829                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46830                        span,
46831                        visitor,
46832                        &mut *__ast_path,
46833                    )
46834                };
46835                {
46836                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::WhileStmt(
46837                        self,
46838                        self::fields::WhileStmtField::Test,
46839                    ));
46840                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
46841                        test,
46842                        visitor,
46843                        &mut *__ast_path,
46844                    )
46845                };
46846                {
46847                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::WhileStmt(
46848                        self,
46849                        self::fields::WhileStmtField::Body,
46850                    ));
46851                    <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
46852                        body,
46853                        visitor,
46854                        &mut *__ast_path,
46855                    )
46856                };
46857            }
46858        }
46859    }
46860}
46861#[cfg(any(docsrs, feature = "path"))]
46862#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46863impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for WithStmt {
46864    #[doc = "Calls [VisitAstPath`::visit_with_stmt`] with `self`."]
46865    fn visit_with_ast_path<'ast: 'r, 'r>(
46866        &'ast self,
46867        visitor: &mut V,
46868        __ast_path: &mut AstNodePath<'r>,
46869    ) {
46870        <V as VisitAstPath>::visit_with_stmt(visitor, self, __ast_path)
46871    }
46872
46873    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46874        &'ast self,
46875        visitor: &mut V,
46876        __ast_path: &mut AstNodePath<'r>,
46877    ) {
46878        match self {
46879            WithStmt { span, obj, body } => {
46880                {
46881                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::WithStmt(
46882                        self,
46883                        self::fields::WithStmtField::Span,
46884                    ));
46885                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46886                        span,
46887                        visitor,
46888                        &mut *__ast_path,
46889                    )
46890                };
46891                {
46892                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::WithStmt(
46893                        self,
46894                        self::fields::WithStmtField::Obj,
46895                    ));
46896                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
46897                        obj,
46898                        visitor,
46899                        &mut *__ast_path,
46900                    )
46901                };
46902                {
46903                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::WithStmt(
46904                        self,
46905                        self::fields::WithStmtField::Body,
46906                    ));
46907                    <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
46908                        body,
46909                        visitor,
46910                        &mut *__ast_path,
46911                    )
46912                };
46913            }
46914        }
46915    }
46916}
46917#[cfg(any(docsrs, feature = "path"))]
46918#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46919impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for YieldExpr {
46920    #[doc = "Calls [VisitAstPath`::visit_yield_expr`] with `self`."]
46921    fn visit_with_ast_path<'ast: 'r, 'r>(
46922        &'ast self,
46923        visitor: &mut V,
46924        __ast_path: &mut AstNodePath<'r>,
46925    ) {
46926        <V as VisitAstPath>::visit_yield_expr(visitor, self, __ast_path)
46927    }
46928
46929    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46930        &'ast self,
46931        visitor: &mut V,
46932        __ast_path: &mut AstNodePath<'r>,
46933    ) {
46934        match self {
46935            YieldExpr {
46936                span,
46937                arg,
46938                delegate,
46939            } => {
46940                {
46941                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::YieldExpr(
46942                        self,
46943                        self::fields::YieldExprField::Span,
46944                    ));
46945                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46946                        span,
46947                        visitor,
46948                        &mut *__ast_path,
46949                    )
46950                };
46951                {
46952                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::YieldExpr(
46953                        self,
46954                        self::fields::YieldExprField::Arg,
46955                    ));
46956                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
46957                        arg,
46958                        visitor,
46959                        &mut *__ast_path,
46960                    )
46961                };
46962            }
46963        }
46964    }
46965}
46966#[cfg(any(docsrs, feature = "path"))]
46967#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46968impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for swc_atoms::Atom {
46969    #[doc = "Calls [VisitAstPath`::visit_atom`] with `self`. (Extra impl)"]
46970    #[inline]
46971    fn visit_with_ast_path<'ast: 'r, 'r>(
46972        &'ast self,
46973        visitor: &mut V,
46974        __ast_path: &mut AstNodePath<'r>,
46975    ) {
46976        <V as VisitAstPath>::visit_atom(visitor, self, __ast_path)
46977    }
46978
46979    #[inline]
46980    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46981        &'ast self,
46982        visitor: &mut V,
46983        __ast_path: &mut AstNodePath<'r>,
46984    ) {
46985        {}
46986    }
46987}
46988#[cfg(any(docsrs, feature = "path"))]
46989#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46990impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for BigIntValue {
46991    #[doc = "Calls [VisitAstPath`::visit_big_int_value`] with `self`. (Extra impl)"]
46992    #[inline]
46993    fn visit_with_ast_path<'ast: 'r, 'r>(
46994        &'ast self,
46995        visitor: &mut V,
46996        __ast_path: &mut AstNodePath<'r>,
46997    ) {
46998        <V as VisitAstPath>::visit_big_int_value(visitor, self, __ast_path)
46999    }
47000
47001    #[inline]
47002    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47003        &'ast self,
47004        visitor: &mut V,
47005        __ast_path: &mut AstNodePath<'r>,
47006    ) {
47007        {}
47008    }
47009}
47010#[cfg(any(docsrs, feature = "path"))]
47011#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47012impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [ClassMember] {
47013    #[doc = "Calls [VisitAstPath`::visit_class_members`] with `self`. (Extra impl)"]
47014    #[inline]
47015    fn visit_with_ast_path<'ast: 'r, 'r>(
47016        &'ast self,
47017        visitor: &mut V,
47018        __ast_path: &mut AstNodePath<'r>,
47019    ) {
47020        <V as VisitAstPath>::visit_class_members(visitor, self, __ast_path)
47021    }
47022
47023    #[inline]
47024    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47025        &'ast self,
47026        visitor: &mut V,
47027        __ast_path: &mut AstNodePath<'r>,
47028    ) {
47029        self.iter().enumerate().for_each(|(__idx, item)| {
47030            let mut __ast_path = __ast_path.with_index_guard(__idx);
47031            <ClassMember as VisitWithAstPath<V>>::visit_with_ast_path(
47032                item,
47033                visitor,
47034                &mut *__ast_path,
47035            )
47036        })
47037    }
47038}
47039#[cfg(any(docsrs, feature = "path"))]
47040#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47041impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [Decorator] {
47042    #[doc = "Calls [VisitAstPath`::visit_decorators`] with `self`. (Extra impl)"]
47043    #[inline]
47044    fn visit_with_ast_path<'ast: 'r, 'r>(
47045        &'ast self,
47046        visitor: &mut V,
47047        __ast_path: &mut AstNodePath<'r>,
47048    ) {
47049        <V as VisitAstPath>::visit_decorators(visitor, self, __ast_path)
47050    }
47051
47052    #[inline]
47053    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47054        &'ast self,
47055        visitor: &mut V,
47056        __ast_path: &mut AstNodePath<'r>,
47057    ) {
47058        self.iter().enumerate().for_each(|(__idx, item)| {
47059            let mut __ast_path = __ast_path.with_index_guard(__idx);
47060            <Decorator as VisitWithAstPath<V>>::visit_with_ast_path(item, visitor, &mut *__ast_path)
47061        })
47062    }
47063}
47064#[cfg(any(docsrs, feature = "path"))]
47065#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47066impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [ExportSpecifier] {
47067    #[doc = "Calls [VisitAstPath`::visit_export_specifiers`] with `self`. (Extra impl)"]
47068    #[inline]
47069    fn visit_with_ast_path<'ast: 'r, 'r>(
47070        &'ast self,
47071        visitor: &mut V,
47072        __ast_path: &mut AstNodePath<'r>,
47073    ) {
47074        <V as VisitAstPath>::visit_export_specifiers(visitor, self, __ast_path)
47075    }
47076
47077    #[inline]
47078    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47079        &'ast self,
47080        visitor: &mut V,
47081        __ast_path: &mut AstNodePath<'r>,
47082    ) {
47083        self.iter().enumerate().for_each(|(__idx, item)| {
47084            let mut __ast_path = __ast_path.with_index_guard(__idx);
47085            <ExportSpecifier as VisitWithAstPath<V>>::visit_with_ast_path(
47086                item,
47087                visitor,
47088                &mut *__ast_path,
47089            )
47090        })
47091    }
47092}
47093#[cfg(any(docsrs, feature = "path"))]
47094#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47095impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [ExprOrSpread] {
47096    #[doc = "Calls [VisitAstPath`::visit_expr_or_spreads`] with `self`. (Extra impl)"]
47097    #[inline]
47098    fn visit_with_ast_path<'ast: 'r, 'r>(
47099        &'ast self,
47100        visitor: &mut V,
47101        __ast_path: &mut AstNodePath<'r>,
47102    ) {
47103        <V as VisitAstPath>::visit_expr_or_spreads(visitor, self, __ast_path)
47104    }
47105
47106    #[inline]
47107    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47108        &'ast self,
47109        visitor: &mut V,
47110        __ast_path: &mut AstNodePath<'r>,
47111    ) {
47112        self.iter().enumerate().for_each(|(__idx, item)| {
47113            let mut __ast_path = __ast_path.with_index_guard(__idx);
47114            <ExprOrSpread as VisitWithAstPath<V>>::visit_with_ast_path(
47115                item,
47116                visitor,
47117                &mut *__ast_path,
47118            )
47119        })
47120    }
47121}
47122#[cfg(any(docsrs, feature = "path"))]
47123#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47124impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [Box<Expr>] {
47125    #[doc = "Calls [VisitAstPath`::visit_exprs`] with `self`. (Extra impl)"]
47126    #[inline]
47127    fn visit_with_ast_path<'ast: 'r, 'r>(
47128        &'ast self,
47129        visitor: &mut V,
47130        __ast_path: &mut AstNodePath<'r>,
47131    ) {
47132        <V as VisitAstPath>::visit_exprs(visitor, self, __ast_path)
47133    }
47134
47135    #[inline]
47136    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47137        &'ast self,
47138        visitor: &mut V,
47139        __ast_path: &mut AstNodePath<'r>,
47140    ) {
47141        self.iter().enumerate().for_each(|(__idx, item)| {
47142            let mut __ast_path = __ast_path.with_index_guard(__idx);
47143            <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(item, visitor, &mut *__ast_path)
47144        })
47145    }
47146}
47147#[cfg(any(docsrs, feature = "path"))]
47148#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47149impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [ImportSpecifier] {
47150    #[doc = "Calls [VisitAstPath`::visit_import_specifiers`] with `self`. (Extra impl)"]
47151    #[inline]
47152    fn visit_with_ast_path<'ast: 'r, 'r>(
47153        &'ast self,
47154        visitor: &mut V,
47155        __ast_path: &mut AstNodePath<'r>,
47156    ) {
47157        <V as VisitAstPath>::visit_import_specifiers(visitor, self, __ast_path)
47158    }
47159
47160    #[inline]
47161    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47162        &'ast self,
47163        visitor: &mut V,
47164        __ast_path: &mut AstNodePath<'r>,
47165    ) {
47166        self.iter().enumerate().for_each(|(__idx, item)| {
47167            let mut __ast_path = __ast_path.with_index_guard(__idx);
47168            <ImportSpecifier as VisitWithAstPath<V>>::visit_with_ast_path(
47169                item,
47170                visitor,
47171                &mut *__ast_path,
47172            )
47173        })
47174    }
47175}
47176#[cfg(any(docsrs, feature = "path"))]
47177#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47178impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [ImportWithItem] {
47179    #[doc = "Calls [VisitAstPath`::visit_import_with_items`] with `self`. (Extra impl)"]
47180    #[inline]
47181    fn visit_with_ast_path<'ast: 'r, 'r>(
47182        &'ast self,
47183        visitor: &mut V,
47184        __ast_path: &mut AstNodePath<'r>,
47185    ) {
47186        <V as VisitAstPath>::visit_import_with_items(visitor, self, __ast_path)
47187    }
47188
47189    #[inline]
47190    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47191        &'ast self,
47192        visitor: &mut V,
47193        __ast_path: &mut AstNodePath<'r>,
47194    ) {
47195        self.iter().enumerate().for_each(|(__idx, item)| {
47196            let mut __ast_path = __ast_path.with_index_guard(__idx);
47197            <ImportWithItem as VisitWithAstPath<V>>::visit_with_ast_path(
47198                item,
47199                visitor,
47200                &mut *__ast_path,
47201            )
47202        })
47203    }
47204}
47205#[cfg(any(docsrs, feature = "path"))]
47206#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47207impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [JSXAttrOrSpread] {
47208    #[doc = "Calls [VisitAstPath`::visit_jsx_attr_or_spreads`] with `self`. (Extra impl)"]
47209    #[inline]
47210    fn visit_with_ast_path<'ast: 'r, 'r>(
47211        &'ast self,
47212        visitor: &mut V,
47213        __ast_path: &mut AstNodePath<'r>,
47214    ) {
47215        <V as VisitAstPath>::visit_jsx_attr_or_spreads(visitor, self, __ast_path)
47216    }
47217
47218    #[inline]
47219    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47220        &'ast self,
47221        visitor: &mut V,
47222        __ast_path: &mut AstNodePath<'r>,
47223    ) {
47224        self.iter().enumerate().for_each(|(__idx, item)| {
47225            let mut __ast_path = __ast_path.with_index_guard(__idx);
47226            <JSXAttrOrSpread as VisitWithAstPath<V>>::visit_with_ast_path(
47227                item,
47228                visitor,
47229                &mut *__ast_path,
47230            )
47231        })
47232    }
47233}
47234#[cfg(any(docsrs, feature = "path"))]
47235#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47236impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [JSXElementChild] {
47237    #[doc = "Calls [VisitAstPath`::visit_jsx_element_childs`] with `self`. (Extra impl)"]
47238    #[inline]
47239    fn visit_with_ast_path<'ast: 'r, 'r>(
47240        &'ast self,
47241        visitor: &mut V,
47242        __ast_path: &mut AstNodePath<'r>,
47243    ) {
47244        <V as VisitAstPath>::visit_jsx_element_childs(visitor, self, __ast_path)
47245    }
47246
47247    #[inline]
47248    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47249        &'ast self,
47250        visitor: &mut V,
47251        __ast_path: &mut AstNodePath<'r>,
47252    ) {
47253        self.iter().enumerate().for_each(|(__idx, item)| {
47254            let mut __ast_path = __ast_path.with_index_guard(__idx);
47255            <JSXElementChild as VisitWithAstPath<V>>::visit_with_ast_path(
47256                item,
47257                visitor,
47258                &mut *__ast_path,
47259            )
47260        })
47261    }
47262}
47263#[cfg(any(docsrs, feature = "path"))]
47264#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47265impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [ModuleItem] {
47266    #[doc = "Calls [VisitAstPath`::visit_module_items`] with `self`. (Extra impl)"]
47267    #[inline]
47268    fn visit_with_ast_path<'ast: 'r, 'r>(
47269        &'ast self,
47270        visitor: &mut V,
47271        __ast_path: &mut AstNodePath<'r>,
47272    ) {
47273        <V as VisitAstPath>::visit_module_items(visitor, self, __ast_path)
47274    }
47275
47276    #[inline]
47277    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47278        &'ast self,
47279        visitor: &mut V,
47280        __ast_path: &mut AstNodePath<'r>,
47281    ) {
47282        self.iter().enumerate().for_each(|(__idx, item)| {
47283            let mut __ast_path = __ast_path.with_index_guard(__idx);
47284            <ModuleItem as VisitWithAstPath<V>>::visit_with_ast_path(
47285                item,
47286                visitor,
47287                &mut *__ast_path,
47288            )
47289        })
47290    }
47291}
47292#[cfg(any(docsrs, feature = "path"))]
47293#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47294impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [ObjectPatProp] {
47295    #[doc = "Calls [VisitAstPath`::visit_object_pat_props`] with `self`. (Extra impl)"]
47296    #[inline]
47297    fn visit_with_ast_path<'ast: 'r, 'r>(
47298        &'ast self,
47299        visitor: &mut V,
47300        __ast_path: &mut AstNodePath<'r>,
47301    ) {
47302        <V as VisitAstPath>::visit_object_pat_props(visitor, self, __ast_path)
47303    }
47304
47305    #[inline]
47306    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47307        &'ast self,
47308        visitor: &mut V,
47309        __ast_path: &mut AstNodePath<'r>,
47310    ) {
47311        self.iter().enumerate().for_each(|(__idx, item)| {
47312            let mut __ast_path = __ast_path.with_index_guard(__idx);
47313            <ObjectPatProp as VisitWithAstPath<V>>::visit_with_ast_path(
47314                item,
47315                visitor,
47316                &mut *__ast_path,
47317            )
47318        })
47319    }
47320}
47321#[cfg(any(docsrs, feature = "path"))]
47322#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47323impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Accessibility> {
47324    #[doc = "Calls [VisitAstPath`::visit_opt_accessibility`] with `self`. (Extra impl)"]
47325    #[inline]
47326    fn visit_with_ast_path<'ast: 'r, 'r>(
47327        &'ast self,
47328        visitor: &mut V,
47329        __ast_path: &mut AstNodePath<'r>,
47330    ) {
47331        <V as VisitAstPath>::visit_opt_accessibility(visitor, self, __ast_path)
47332    }
47333
47334    #[inline]
47335    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47336        &'ast self,
47337        visitor: &mut V,
47338        __ast_path: &mut AstNodePath<'r>,
47339    ) {
47340        match self {
47341            Some(inner) => <Accessibility as VisitWithAstPath<V>>::visit_with_ast_path(
47342                inner, visitor, __ast_path,
47343            ),
47344            None => {}
47345        }
47346    }
47347}
47348#[cfg(any(docsrs, feature = "path"))]
47349#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47350impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<swc_atoms::Atom> {
47351    #[doc = "Calls [VisitAstPath`::visit_opt_atom`] with `self`. (Extra impl)"]
47352    #[inline]
47353    fn visit_with_ast_path<'ast: 'r, 'r>(
47354        &'ast self,
47355        visitor: &mut V,
47356        __ast_path: &mut AstNodePath<'r>,
47357    ) {
47358        <V as VisitAstPath>::visit_opt_atom(visitor, self, __ast_path)
47359    }
47360
47361    #[inline]
47362    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47363        &'ast self,
47364        visitor: &mut V,
47365        __ast_path: &mut AstNodePath<'r>,
47366    ) {
47367        match self {
47368            Some(inner) => <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
47369                inner, visitor, __ast_path,
47370            ),
47371            None => {}
47372        }
47373    }
47374}
47375#[cfg(any(docsrs, feature = "path"))]
47376#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47377impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<BlockStmt> {
47378    #[doc = "Calls [VisitAstPath`::visit_opt_block_stmt`] with `self`. (Extra impl)"]
47379    #[inline]
47380    fn visit_with_ast_path<'ast: 'r, 'r>(
47381        &'ast self,
47382        visitor: &mut V,
47383        __ast_path: &mut AstNodePath<'r>,
47384    ) {
47385        <V as VisitAstPath>::visit_opt_block_stmt(visitor, self, __ast_path)
47386    }
47387
47388    #[inline]
47389    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47390        &'ast self,
47391        visitor: &mut V,
47392        __ast_path: &mut AstNodePath<'r>,
47393    ) {
47394        match self {
47395            Some(inner) => {
47396                <BlockStmt as VisitWithAstPath<V>>::visit_with_ast_path(inner, visitor, __ast_path)
47397            }
47398            None => {}
47399        }
47400    }
47401}
47402#[cfg(any(docsrs, feature = "path"))]
47403#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47404impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<CatchClause> {
47405    #[doc = "Calls [VisitAstPath`::visit_opt_catch_clause`] with `self`. (Extra impl)"]
47406    #[inline]
47407    fn visit_with_ast_path<'ast: 'r, 'r>(
47408        &'ast self,
47409        visitor: &mut V,
47410        __ast_path: &mut AstNodePath<'r>,
47411    ) {
47412        <V as VisitAstPath>::visit_opt_catch_clause(visitor, self, __ast_path)
47413    }
47414
47415    #[inline]
47416    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47417        &'ast self,
47418        visitor: &mut V,
47419        __ast_path: &mut AstNodePath<'r>,
47420    ) {
47421        match self {
47422            Some(inner) => <CatchClause as VisitWithAstPath<V>>::visit_with_ast_path(
47423                inner, visitor, __ast_path,
47424            ),
47425            None => {}
47426        }
47427    }
47428}
47429#[cfg(any(docsrs, feature = "path"))]
47430#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47431impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Box<Expr>> {
47432    #[doc = "Calls [VisitAstPath`::visit_opt_expr`] with `self`. (Extra impl)"]
47433    #[inline]
47434    fn visit_with_ast_path<'ast: 'r, 'r>(
47435        &'ast self,
47436        visitor: &mut V,
47437        __ast_path: &mut AstNodePath<'r>,
47438    ) {
47439        <V as VisitAstPath>::visit_opt_expr(visitor, self, __ast_path)
47440    }
47441
47442    #[inline]
47443    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47444        &'ast self,
47445        visitor: &mut V,
47446        __ast_path: &mut AstNodePath<'r>,
47447    ) {
47448        match self {
47449            Some(inner) => {
47450                <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(inner, visitor, __ast_path)
47451            }
47452            None => {}
47453        }
47454    }
47455}
47456#[cfg(any(docsrs, feature = "path"))]
47457#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47458impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<ExprOrSpread> {
47459    #[doc = "Calls [VisitAstPath`::visit_opt_expr_or_spread`] with `self`. (Extra impl)"]
47460    #[inline]
47461    fn visit_with_ast_path<'ast: 'r, 'r>(
47462        &'ast self,
47463        visitor: &mut V,
47464        __ast_path: &mut AstNodePath<'r>,
47465    ) {
47466        <V as VisitAstPath>::visit_opt_expr_or_spread(visitor, self, __ast_path)
47467    }
47468
47469    #[inline]
47470    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47471        &'ast self,
47472        visitor: &mut V,
47473        __ast_path: &mut AstNodePath<'r>,
47474    ) {
47475        match self {
47476            Some(inner) => <ExprOrSpread as VisitWithAstPath<V>>::visit_with_ast_path(
47477                inner, visitor, __ast_path,
47478            ),
47479            None => {}
47480        }
47481    }
47482}
47483#[cfg(any(docsrs, feature = "path"))]
47484#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47485impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Vec<ExprOrSpread>> {
47486    #[doc = "Calls [VisitAstPath`::visit_opt_expr_or_spreads`] with `self`. (Extra impl)"]
47487    #[inline]
47488    fn visit_with_ast_path<'ast: 'r, 'r>(
47489        &'ast self,
47490        visitor: &mut V,
47491        __ast_path: &mut AstNodePath<'r>,
47492    ) {
47493        <V as VisitAstPath>::visit_opt_expr_or_spreads(visitor, self, __ast_path)
47494    }
47495
47496    #[inline]
47497    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47498        &'ast self,
47499        visitor: &mut V,
47500        __ast_path: &mut AstNodePath<'r>,
47501    ) {
47502        match self {
47503            Some(inner) => <Vec<ExprOrSpread> as VisitWithAstPath<V>>::visit_with_ast_path(
47504                inner, visitor, __ast_path,
47505            ),
47506            None => {}
47507        }
47508    }
47509}
47510#[cfg(any(docsrs, feature = "path"))]
47511#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47512impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Ident> {
47513    #[doc = "Calls [VisitAstPath`::visit_opt_ident`] with `self`. (Extra impl)"]
47514    #[inline]
47515    fn visit_with_ast_path<'ast: 'r, 'r>(
47516        &'ast self,
47517        visitor: &mut V,
47518        __ast_path: &mut AstNodePath<'r>,
47519    ) {
47520        <V as VisitAstPath>::visit_opt_ident(visitor, self, __ast_path)
47521    }
47522
47523    #[inline]
47524    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47525        &'ast self,
47526        visitor: &mut V,
47527        __ast_path: &mut AstNodePath<'r>,
47528    ) {
47529        match self {
47530            Some(inner) => {
47531                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(inner, visitor, __ast_path)
47532            }
47533            None => {}
47534        }
47535    }
47536}
47537#[cfg(any(docsrs, feature = "path"))]
47538#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47539impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<JSXAttrValue> {
47540    #[doc = "Calls [VisitAstPath`::visit_opt_jsx_attr_value`] with `self`. (Extra impl)"]
47541    #[inline]
47542    fn visit_with_ast_path<'ast: 'r, 'r>(
47543        &'ast self,
47544        visitor: &mut V,
47545        __ast_path: &mut AstNodePath<'r>,
47546    ) {
47547        <V as VisitAstPath>::visit_opt_jsx_attr_value(visitor, self, __ast_path)
47548    }
47549
47550    #[inline]
47551    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47552        &'ast self,
47553        visitor: &mut V,
47554        __ast_path: &mut AstNodePath<'r>,
47555    ) {
47556        match self {
47557            Some(inner) => <JSXAttrValue as VisitWithAstPath<V>>::visit_with_ast_path(
47558                inner, visitor, __ast_path,
47559            ),
47560            None => {}
47561        }
47562    }
47563}
47564#[cfg(any(docsrs, feature = "path"))]
47565#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47566impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<JSXClosingElement> {
47567    #[doc = "Calls [VisitAstPath`::visit_opt_jsx_closing_element`] with `self`. (Extra impl)"]
47568    #[inline]
47569    fn visit_with_ast_path<'ast: 'r, 'r>(
47570        &'ast self,
47571        visitor: &mut V,
47572        __ast_path: &mut AstNodePath<'r>,
47573    ) {
47574        <V as VisitAstPath>::visit_opt_jsx_closing_element(visitor, self, __ast_path)
47575    }
47576
47577    #[inline]
47578    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47579        &'ast self,
47580        visitor: &mut V,
47581        __ast_path: &mut AstNodePath<'r>,
47582    ) {
47583        match self {
47584            Some(inner) => <JSXClosingElement as VisitWithAstPath<V>>::visit_with_ast_path(
47585                inner, visitor, __ast_path,
47586            ),
47587            None => {}
47588        }
47589    }
47590}
47591#[cfg(any(docsrs, feature = "path"))]
47592#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47593impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<ModuleExportName> {
47594    #[doc = "Calls [VisitAstPath`::visit_opt_module_export_name`] with `self`. (Extra impl)"]
47595    #[inline]
47596    fn visit_with_ast_path<'ast: 'r, 'r>(
47597        &'ast self,
47598        visitor: &mut V,
47599        __ast_path: &mut AstNodePath<'r>,
47600    ) {
47601        <V as VisitAstPath>::visit_opt_module_export_name(visitor, self, __ast_path)
47602    }
47603
47604    #[inline]
47605    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47606        &'ast self,
47607        visitor: &mut V,
47608        __ast_path: &mut AstNodePath<'r>,
47609    ) {
47610        match self {
47611            Some(inner) => <ModuleExportName as VisitWithAstPath<V>>::visit_with_ast_path(
47612                inner, visitor, __ast_path,
47613            ),
47614            None => {}
47615        }
47616    }
47617}
47618#[cfg(any(docsrs, feature = "path"))]
47619#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47620impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Box<ObjectLit>> {
47621    #[doc = "Calls [VisitAstPath`::visit_opt_object_lit`] with `self`. (Extra impl)"]
47622    #[inline]
47623    fn visit_with_ast_path<'ast: 'r, 'r>(
47624        &'ast self,
47625        visitor: &mut V,
47626        __ast_path: &mut AstNodePath<'r>,
47627    ) {
47628        <V as VisitAstPath>::visit_opt_object_lit(visitor, self, __ast_path)
47629    }
47630
47631    #[inline]
47632    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47633        &'ast self,
47634        visitor: &mut V,
47635        __ast_path: &mut AstNodePath<'r>,
47636    ) {
47637        match self {
47638            Some(inner) => <Box<ObjectLit> as VisitWithAstPath<V>>::visit_with_ast_path(
47639                inner, visitor, __ast_path,
47640            ),
47641            None => {}
47642        }
47643    }
47644}
47645#[cfg(any(docsrs, feature = "path"))]
47646#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47647impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Pat> {
47648    #[doc = "Calls [VisitAstPath`::visit_opt_pat`] with `self`. (Extra impl)"]
47649    #[inline]
47650    fn visit_with_ast_path<'ast: 'r, 'r>(
47651        &'ast self,
47652        visitor: &mut V,
47653        __ast_path: &mut AstNodePath<'r>,
47654    ) {
47655        <V as VisitAstPath>::visit_opt_pat(visitor, self, __ast_path)
47656    }
47657
47658    #[inline]
47659    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47660        &'ast self,
47661        visitor: &mut V,
47662        __ast_path: &mut AstNodePath<'r>,
47663    ) {
47664        match self {
47665            Some(inner) => {
47666                <Pat as VisitWithAstPath<V>>::visit_with_ast_path(inner, visitor, __ast_path)
47667            }
47668            None => {}
47669        }
47670    }
47671}
47672#[cfg(any(docsrs, feature = "path"))]
47673#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47674impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<swc_common::Span> {
47675    #[doc = "Calls [VisitAstPath`::visit_opt_span`] with `self`. (Extra impl)"]
47676    #[inline]
47677    fn visit_with_ast_path<'ast: 'r, 'r>(
47678        &'ast self,
47679        visitor: &mut V,
47680        __ast_path: &mut AstNodePath<'r>,
47681    ) {
47682        <V as VisitAstPath>::visit_opt_span(visitor, self, __ast_path)
47683    }
47684
47685    #[inline]
47686    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47687        &'ast self,
47688        visitor: &mut V,
47689        __ast_path: &mut AstNodePath<'r>,
47690    ) {
47691        match self {
47692            Some(inner) => <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
47693                inner, visitor, __ast_path,
47694            ),
47695            None => {}
47696        }
47697    }
47698}
47699#[cfg(any(docsrs, feature = "path"))]
47700#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47701impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Box<Stmt>> {
47702    #[doc = "Calls [VisitAstPath`::visit_opt_stmt`] with `self`. (Extra impl)"]
47703    #[inline]
47704    fn visit_with_ast_path<'ast: 'r, 'r>(
47705        &'ast self,
47706        visitor: &mut V,
47707        __ast_path: &mut AstNodePath<'r>,
47708    ) {
47709        <V as VisitAstPath>::visit_opt_stmt(visitor, self, __ast_path)
47710    }
47711
47712    #[inline]
47713    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47714        &'ast self,
47715        visitor: &mut V,
47716        __ast_path: &mut AstNodePath<'r>,
47717    ) {
47718        match self {
47719            Some(inner) => {
47720                <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(inner, visitor, __ast_path)
47721            }
47722            None => {}
47723        }
47724    }
47725}
47726#[cfg(any(docsrs, feature = "path"))]
47727#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47728impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Box<Str>> {
47729    #[doc = "Calls [VisitAstPath`::visit_opt_str`] with `self`. (Extra impl)"]
47730    #[inline]
47731    fn visit_with_ast_path<'ast: 'r, 'r>(
47732        &'ast self,
47733        visitor: &mut V,
47734        __ast_path: &mut AstNodePath<'r>,
47735    ) {
47736        <V as VisitAstPath>::visit_opt_str(visitor, self, __ast_path)
47737    }
47738
47739    #[inline]
47740    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47741        &'ast self,
47742        visitor: &mut V,
47743        __ast_path: &mut AstNodePath<'r>,
47744    ) {
47745        match self {
47746            Some(inner) => {
47747                <Box<Str> as VisitWithAstPath<V>>::visit_with_ast_path(inner, visitor, __ast_path)
47748            }
47749            None => {}
47750        }
47751    }
47752}
47753#[cfg(any(docsrs, feature = "path"))]
47754#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47755impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<TruePlusMinus> {
47756    #[doc = "Calls [VisitAstPath`::visit_opt_true_plus_minus`] with `self`. (Extra impl)"]
47757    #[inline]
47758    fn visit_with_ast_path<'ast: 'r, 'r>(
47759        &'ast self,
47760        visitor: &mut V,
47761        __ast_path: &mut AstNodePath<'r>,
47762    ) {
47763        <V as VisitAstPath>::visit_opt_true_plus_minus(visitor, self, __ast_path)
47764    }
47765
47766    #[inline]
47767    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47768        &'ast self,
47769        visitor: &mut V,
47770        __ast_path: &mut AstNodePath<'r>,
47771    ) {
47772        match self {
47773            Some(inner) => <TruePlusMinus as VisitWithAstPath<V>>::visit_with_ast_path(
47774                inner, visitor, __ast_path,
47775            ),
47776            None => {}
47777        }
47778    }
47779}
47780#[cfg(any(docsrs, feature = "path"))]
47781#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47782impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<TsEntityName> {
47783    #[doc = "Calls [VisitAstPath`::visit_opt_ts_entity_name`] with `self`. (Extra impl)"]
47784    #[inline]
47785    fn visit_with_ast_path<'ast: 'r, 'r>(
47786        &'ast self,
47787        visitor: &mut V,
47788        __ast_path: &mut AstNodePath<'r>,
47789    ) {
47790        <V as VisitAstPath>::visit_opt_ts_entity_name(visitor, self, __ast_path)
47791    }
47792
47793    #[inline]
47794    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47795        &'ast self,
47796        visitor: &mut V,
47797        __ast_path: &mut AstNodePath<'r>,
47798    ) {
47799        match self {
47800            Some(inner) => <TsEntityName as VisitWithAstPath<V>>::visit_with_ast_path(
47801                inner, visitor, __ast_path,
47802            ),
47803            None => {}
47804        }
47805    }
47806}
47807#[cfg(any(docsrs, feature = "path"))]
47808#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47809impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<TsImportCallOptions> {
47810    #[doc = "Calls [VisitAstPath`::visit_opt_ts_import_call_options`] with `self`. (Extra impl)"]
47811    #[inline]
47812    fn visit_with_ast_path<'ast: 'r, 'r>(
47813        &'ast self,
47814        visitor: &mut V,
47815        __ast_path: &mut AstNodePath<'r>,
47816    ) {
47817        <V as VisitAstPath>::visit_opt_ts_import_call_options(visitor, self, __ast_path)
47818    }
47819
47820    #[inline]
47821    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47822        &'ast self,
47823        visitor: &mut V,
47824        __ast_path: &mut AstNodePath<'r>,
47825    ) {
47826        match self {
47827            Some(inner) => <TsImportCallOptions as VisitWithAstPath<V>>::visit_with_ast_path(
47828                inner, visitor, __ast_path,
47829            ),
47830            None => {}
47831        }
47832    }
47833}
47834#[cfg(any(docsrs, feature = "path"))]
47835#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47836impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<TsNamespaceBody> {
47837    #[doc = "Calls [VisitAstPath`::visit_opt_ts_namespace_body`] with `self`. (Extra impl)"]
47838    #[inline]
47839    fn visit_with_ast_path<'ast: 'r, 'r>(
47840        &'ast self,
47841        visitor: &mut V,
47842        __ast_path: &mut AstNodePath<'r>,
47843    ) {
47844        <V as VisitAstPath>::visit_opt_ts_namespace_body(visitor, self, __ast_path)
47845    }
47846
47847    #[inline]
47848    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47849        &'ast self,
47850        visitor: &mut V,
47851        __ast_path: &mut AstNodePath<'r>,
47852    ) {
47853        match self {
47854            Some(inner) => <TsNamespaceBody as VisitWithAstPath<V>>::visit_with_ast_path(
47855                inner, visitor, __ast_path,
47856            ),
47857            None => {}
47858        }
47859    }
47860}
47861#[cfg(any(docsrs, feature = "path"))]
47862#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47863impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Box<TsType>> {
47864    #[doc = "Calls [VisitAstPath`::visit_opt_ts_type`] with `self`. (Extra impl)"]
47865    #[inline]
47866    fn visit_with_ast_path<'ast: 'r, 'r>(
47867        &'ast self,
47868        visitor: &mut V,
47869        __ast_path: &mut AstNodePath<'r>,
47870    ) {
47871        <V as VisitAstPath>::visit_opt_ts_type(visitor, self, __ast_path)
47872    }
47873
47874    #[inline]
47875    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47876        &'ast self,
47877        visitor: &mut V,
47878        __ast_path: &mut AstNodePath<'r>,
47879    ) {
47880        match self {
47881            Some(inner) => <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
47882                inner, visitor, __ast_path,
47883            ),
47884            None => {}
47885        }
47886    }
47887}
47888#[cfg(any(docsrs, feature = "path"))]
47889#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47890impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Box<TsTypeAnn>> {
47891    #[doc = "Calls [VisitAstPath`::visit_opt_ts_type_ann`] with `self`. (Extra impl)"]
47892    #[inline]
47893    fn visit_with_ast_path<'ast: 'r, 'r>(
47894        &'ast self,
47895        visitor: &mut V,
47896        __ast_path: &mut AstNodePath<'r>,
47897    ) {
47898        <V as VisitAstPath>::visit_opt_ts_type_ann(visitor, self, __ast_path)
47899    }
47900
47901    #[inline]
47902    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47903        &'ast self,
47904        visitor: &mut V,
47905        __ast_path: &mut AstNodePath<'r>,
47906    ) {
47907        match self {
47908            Some(inner) => <Box<TsTypeAnn> as VisitWithAstPath<V>>::visit_with_ast_path(
47909                inner, visitor, __ast_path,
47910            ),
47911            None => {}
47912        }
47913    }
47914}
47915#[cfg(any(docsrs, feature = "path"))]
47916#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47917impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Box<TsTypeParamDecl>> {
47918    #[doc = "Calls [VisitAstPath`::visit_opt_ts_type_param_decl`] with `self`. (Extra impl)"]
47919    #[inline]
47920    fn visit_with_ast_path<'ast: 'r, 'r>(
47921        &'ast self,
47922        visitor: &mut V,
47923        __ast_path: &mut AstNodePath<'r>,
47924    ) {
47925        <V as VisitAstPath>::visit_opt_ts_type_param_decl(visitor, self, __ast_path)
47926    }
47927
47928    #[inline]
47929    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47930        &'ast self,
47931        visitor: &mut V,
47932        __ast_path: &mut AstNodePath<'r>,
47933    ) {
47934        match self {
47935            Some(inner) => <Box<TsTypeParamDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
47936                inner, visitor, __ast_path,
47937            ),
47938            None => {}
47939        }
47940    }
47941}
47942#[cfg(any(docsrs, feature = "path"))]
47943#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47944impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Box<TsTypeParamInstantiation>> {
47945    #[doc = "Calls [VisitAstPath`::visit_opt_ts_type_param_instantiation`] with `self`. (Extra \
47946             impl)"]
47947    #[inline]
47948    fn visit_with_ast_path<'ast: 'r, 'r>(
47949        &'ast self,
47950        visitor: &mut V,
47951        __ast_path: &mut AstNodePath<'r>,
47952    ) {
47953        <V as VisitAstPath>::visit_opt_ts_type_param_instantiation(visitor, self, __ast_path)
47954    }
47955
47956    #[inline]
47957    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47958        &'ast self,
47959        visitor: &mut V,
47960        __ast_path: &mut AstNodePath<'r>,
47961    ) {
47962        match self {
47963            Some(inner) => {
47964                <Box<TsTypeParamInstantiation> as VisitWithAstPath<V>>::visit_with_ast_path(
47965                    inner, visitor, __ast_path,
47966                )
47967            }
47968            None => {}
47969        }
47970    }
47971}
47972#[cfg(any(docsrs, feature = "path"))]
47973#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47974impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<VarDeclOrExpr> {
47975    #[doc = "Calls [VisitAstPath`::visit_opt_var_decl_or_expr`] with `self`. (Extra impl)"]
47976    #[inline]
47977    fn visit_with_ast_path<'ast: 'r, 'r>(
47978        &'ast self,
47979        visitor: &mut V,
47980        __ast_path: &mut AstNodePath<'r>,
47981    ) {
47982        <V as VisitAstPath>::visit_opt_var_decl_or_expr(visitor, self, __ast_path)
47983    }
47984
47985    #[inline]
47986    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47987        &'ast self,
47988        visitor: &mut V,
47989        __ast_path: &mut AstNodePath<'r>,
47990    ) {
47991        match self {
47992            Some(inner) => <VarDeclOrExpr as VisitWithAstPath<V>>::visit_with_ast_path(
47993                inner, visitor, __ast_path,
47994            ),
47995            None => {}
47996        }
47997    }
47998}
47999#[cfg(any(docsrs, feature = "path"))]
48000#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48001impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [Option<ExprOrSpread>] {
48002    #[doc = "Calls [VisitAstPath`::visit_opt_vec_expr_or_spreads`] with `self`. (Extra impl)"]
48003    #[inline]
48004    fn visit_with_ast_path<'ast: 'r, 'r>(
48005        &'ast self,
48006        visitor: &mut V,
48007        __ast_path: &mut AstNodePath<'r>,
48008    ) {
48009        <V as VisitAstPath>::visit_opt_vec_expr_or_spreads(visitor, self, __ast_path)
48010    }
48011
48012    #[inline]
48013    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48014        &'ast self,
48015        visitor: &mut V,
48016        __ast_path: &mut AstNodePath<'r>,
48017    ) {
48018        self.iter().enumerate().for_each(|(__idx, item)| {
48019            let mut __ast_path = __ast_path.with_index_guard(__idx);
48020            <Option<ExprOrSpread> as VisitWithAstPath<V>>::visit_with_ast_path(
48021                item,
48022                visitor,
48023                &mut *__ast_path,
48024            )
48025        })
48026    }
48027}
48028#[cfg(any(docsrs, feature = "path"))]
48029#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48030impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [Option<Pat>] {
48031    #[doc = "Calls [VisitAstPath`::visit_opt_vec_pats`] with `self`. (Extra impl)"]
48032    #[inline]
48033    fn visit_with_ast_path<'ast: 'r, 'r>(
48034        &'ast self,
48035        visitor: &mut V,
48036        __ast_path: &mut AstNodePath<'r>,
48037    ) {
48038        <V as VisitAstPath>::visit_opt_vec_pats(visitor, self, __ast_path)
48039    }
48040
48041    #[inline]
48042    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48043        &'ast self,
48044        visitor: &mut V,
48045        __ast_path: &mut AstNodePath<'r>,
48046    ) {
48047        self.iter().enumerate().for_each(|(__idx, item)| {
48048            let mut __ast_path = __ast_path.with_index_guard(__idx);
48049            <Option<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
48050                item,
48051                visitor,
48052                &mut *__ast_path,
48053            )
48054        })
48055    }
48056}
48057#[cfg(any(docsrs, feature = "path"))]
48058#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48059impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [ParamOrTsParamProp] {
48060    #[doc = "Calls [VisitAstPath`::visit_param_or_ts_param_props`] 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_param_or_ts_param_props(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            <ParamOrTsParamProp 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 [Param] {
48089    #[doc = "Calls [VisitAstPath`::visit_params`] 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_params(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            <Param as VisitWithAstPath<V>>::visit_with_ast_path(item, visitor, &mut *__ast_path)
48108        })
48109    }
48110}
48111#[cfg(any(docsrs, feature = "path"))]
48112#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48113impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [Pat] {
48114    #[doc = "Calls [VisitAstPath`::visit_pats`] with `self`. (Extra impl)"]
48115    #[inline]
48116    fn visit_with_ast_path<'ast: 'r, 'r>(
48117        &'ast self,
48118        visitor: &mut V,
48119        __ast_path: &mut AstNodePath<'r>,
48120    ) {
48121        <V as VisitAstPath>::visit_pats(visitor, self, __ast_path)
48122    }
48123
48124    #[inline]
48125    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48126        &'ast self,
48127        visitor: &mut V,
48128        __ast_path: &mut AstNodePath<'r>,
48129    ) {
48130        self.iter().enumerate().for_each(|(__idx, item)| {
48131            let mut __ast_path = __ast_path.with_index_guard(__idx);
48132            <Pat as VisitWithAstPath<V>>::visit_with_ast_path(item, visitor, &mut *__ast_path)
48133        })
48134    }
48135}
48136#[cfg(any(docsrs, feature = "path"))]
48137#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48138impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [PropOrSpread] {
48139    #[doc = "Calls [VisitAstPath`::visit_prop_or_spreads`] with `self`. (Extra impl)"]
48140    #[inline]
48141    fn visit_with_ast_path<'ast: 'r, 'r>(
48142        &'ast self,
48143        visitor: &mut V,
48144        __ast_path: &mut AstNodePath<'r>,
48145    ) {
48146        <V as VisitAstPath>::visit_prop_or_spreads(visitor, self, __ast_path)
48147    }
48148
48149    #[inline]
48150    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48151        &'ast self,
48152        visitor: &mut V,
48153        __ast_path: &mut AstNodePath<'r>,
48154    ) {
48155        self.iter().enumerate().for_each(|(__idx, item)| {
48156            let mut __ast_path = __ast_path.with_index_guard(__idx);
48157            <PropOrSpread as VisitWithAstPath<V>>::visit_with_ast_path(
48158                item,
48159                visitor,
48160                &mut *__ast_path,
48161            )
48162        })
48163    }
48164}
48165#[cfg(any(docsrs, feature = "path"))]
48166#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48167impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for swc_common::Span {
48168    #[doc = "Calls [VisitAstPath`::visit_span`] with `self`. (Extra impl)"]
48169    #[inline]
48170    fn visit_with_ast_path<'ast: 'r, 'r>(
48171        &'ast self,
48172        visitor: &mut V,
48173        __ast_path: &mut AstNodePath<'r>,
48174    ) {
48175        <V as VisitAstPath>::visit_span(visitor, self, __ast_path)
48176    }
48177
48178    #[inline]
48179    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48180        &'ast self,
48181        visitor: &mut V,
48182        __ast_path: &mut AstNodePath<'r>,
48183    ) {
48184        {}
48185    }
48186}
48187#[cfg(any(docsrs, feature = "path"))]
48188#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48189impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [Stmt] {
48190    #[doc = "Calls [VisitAstPath`::visit_stmts`] with `self`. (Extra impl)"]
48191    #[inline]
48192    fn visit_with_ast_path<'ast: 'r, 'r>(
48193        &'ast self,
48194        visitor: &mut V,
48195        __ast_path: &mut AstNodePath<'r>,
48196    ) {
48197        <V as VisitAstPath>::visit_stmts(visitor, self, __ast_path)
48198    }
48199
48200    #[inline]
48201    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48202        &'ast self,
48203        visitor: &mut V,
48204        __ast_path: &mut AstNodePath<'r>,
48205    ) {
48206        self.iter().enumerate().for_each(|(__idx, item)| {
48207            let mut __ast_path = __ast_path.with_index_guard(__idx);
48208            <Stmt as VisitWithAstPath<V>>::visit_with_ast_path(item, visitor, &mut *__ast_path)
48209        })
48210    }
48211}
48212#[cfg(any(docsrs, feature = "path"))]
48213#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48214impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [SwitchCase] {
48215    #[doc = "Calls [VisitAstPath`::visit_switch_cases`] with `self`. (Extra impl)"]
48216    #[inline]
48217    fn visit_with_ast_path<'ast: 'r, 'r>(
48218        &'ast self,
48219        visitor: &mut V,
48220        __ast_path: &mut AstNodePath<'r>,
48221    ) {
48222        <V as VisitAstPath>::visit_switch_cases(visitor, self, __ast_path)
48223    }
48224
48225    #[inline]
48226    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48227        &'ast self,
48228        visitor: &mut V,
48229        __ast_path: &mut AstNodePath<'r>,
48230    ) {
48231        self.iter().enumerate().for_each(|(__idx, item)| {
48232            let mut __ast_path = __ast_path.with_index_guard(__idx);
48233            <SwitchCase as VisitWithAstPath<V>>::visit_with_ast_path(
48234                item,
48235                visitor,
48236                &mut *__ast_path,
48237            )
48238        })
48239    }
48240}
48241#[cfg(any(docsrs, feature = "path"))]
48242#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48243impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for swc_common::SyntaxContext {
48244    #[doc = "Calls [VisitAstPath`::visit_syntax_context`] with `self`. (Extra impl)"]
48245    #[inline]
48246    fn visit_with_ast_path<'ast: 'r, 'r>(
48247        &'ast self,
48248        visitor: &mut V,
48249        __ast_path: &mut AstNodePath<'r>,
48250    ) {
48251        <V as VisitAstPath>::visit_syntax_context(visitor, self, __ast_path)
48252    }
48253
48254    #[inline]
48255    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48256        &'ast self,
48257        visitor: &mut V,
48258        __ast_path: &mut AstNodePath<'r>,
48259    ) {
48260        {}
48261    }
48262}
48263#[cfg(any(docsrs, feature = "path"))]
48264#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48265impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [TplElement] {
48266    #[doc = "Calls [VisitAstPath`::visit_tpl_elements`] with `self`. (Extra impl)"]
48267    #[inline]
48268    fn visit_with_ast_path<'ast: 'r, 'r>(
48269        &'ast self,
48270        visitor: &mut V,
48271        __ast_path: &mut AstNodePath<'r>,
48272    ) {
48273        <V as VisitAstPath>::visit_tpl_elements(visitor, self, __ast_path)
48274    }
48275
48276    #[inline]
48277    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48278        &'ast self,
48279        visitor: &mut V,
48280        __ast_path: &mut AstNodePath<'r>,
48281    ) {
48282        self.iter().enumerate().for_each(|(__idx, item)| {
48283            let mut __ast_path = __ast_path.with_index_guard(__idx);
48284            <TplElement as VisitWithAstPath<V>>::visit_with_ast_path(
48285                item,
48286                visitor,
48287                &mut *__ast_path,
48288            )
48289        })
48290    }
48291}
48292#[cfg(any(docsrs, feature = "path"))]
48293#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48294impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [TsEnumMember] {
48295    #[doc = "Calls [VisitAstPath`::visit_ts_enum_members`] with `self`. (Extra impl)"]
48296    #[inline]
48297    fn visit_with_ast_path<'ast: 'r, 'r>(
48298        &'ast self,
48299        visitor: &mut V,
48300        __ast_path: &mut AstNodePath<'r>,
48301    ) {
48302        <V as VisitAstPath>::visit_ts_enum_members(visitor, self, __ast_path)
48303    }
48304
48305    #[inline]
48306    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48307        &'ast self,
48308        visitor: &mut V,
48309        __ast_path: &mut AstNodePath<'r>,
48310    ) {
48311        self.iter().enumerate().for_each(|(__idx, item)| {
48312            let mut __ast_path = __ast_path.with_index_guard(__idx);
48313            <TsEnumMember as VisitWithAstPath<V>>::visit_with_ast_path(
48314                item,
48315                visitor,
48316                &mut *__ast_path,
48317            )
48318        })
48319    }
48320}
48321#[cfg(any(docsrs, feature = "path"))]
48322#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48323impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [TsExprWithTypeArgs] {
48324    #[doc = "Calls [VisitAstPath`::visit_ts_expr_with_type_argss`] with `self`. (Extra impl)"]
48325    #[inline]
48326    fn visit_with_ast_path<'ast: 'r, 'r>(
48327        &'ast self,
48328        visitor: &mut V,
48329        __ast_path: &mut AstNodePath<'r>,
48330    ) {
48331        <V as VisitAstPath>::visit_ts_expr_with_type_argss(visitor, self, __ast_path)
48332    }
48333
48334    #[inline]
48335    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48336        &'ast self,
48337        visitor: &mut V,
48338        __ast_path: &mut AstNodePath<'r>,
48339    ) {
48340        self.iter().enumerate().for_each(|(__idx, item)| {
48341            let mut __ast_path = __ast_path.with_index_guard(__idx);
48342            <TsExprWithTypeArgs as VisitWithAstPath<V>>::visit_with_ast_path(
48343                item,
48344                visitor,
48345                &mut *__ast_path,
48346            )
48347        })
48348    }
48349}
48350#[cfg(any(docsrs, feature = "path"))]
48351#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48352impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [TsFnParam] {
48353    #[doc = "Calls [VisitAstPath`::visit_ts_fn_params`] with `self`. (Extra impl)"]
48354    #[inline]
48355    fn visit_with_ast_path<'ast: 'r, 'r>(
48356        &'ast self,
48357        visitor: &mut V,
48358        __ast_path: &mut AstNodePath<'r>,
48359    ) {
48360        <V as VisitAstPath>::visit_ts_fn_params(visitor, self, __ast_path)
48361    }
48362
48363    #[inline]
48364    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48365        &'ast self,
48366        visitor: &mut V,
48367        __ast_path: &mut AstNodePath<'r>,
48368    ) {
48369        self.iter().enumerate().for_each(|(__idx, item)| {
48370            let mut __ast_path = __ast_path.with_index_guard(__idx);
48371            <TsFnParam as VisitWithAstPath<V>>::visit_with_ast_path(item, visitor, &mut *__ast_path)
48372        })
48373    }
48374}
48375#[cfg(any(docsrs, feature = "path"))]
48376#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48377impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [TsTupleElement] {
48378    #[doc = "Calls [VisitAstPath`::visit_ts_tuple_elements`] with `self`. (Extra impl)"]
48379    #[inline]
48380    fn visit_with_ast_path<'ast: 'r, 'r>(
48381        &'ast self,
48382        visitor: &mut V,
48383        __ast_path: &mut AstNodePath<'r>,
48384    ) {
48385        <V as VisitAstPath>::visit_ts_tuple_elements(visitor, self, __ast_path)
48386    }
48387
48388    #[inline]
48389    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48390        &'ast self,
48391        visitor: &mut V,
48392        __ast_path: &mut AstNodePath<'r>,
48393    ) {
48394        self.iter().enumerate().for_each(|(__idx, item)| {
48395            let mut __ast_path = __ast_path.with_index_guard(__idx);
48396            <TsTupleElement as VisitWithAstPath<V>>::visit_with_ast_path(
48397                item,
48398                visitor,
48399                &mut *__ast_path,
48400            )
48401        })
48402    }
48403}
48404#[cfg(any(docsrs, feature = "path"))]
48405#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48406impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [TsTypeElement] {
48407    #[doc = "Calls [VisitAstPath`::visit_ts_type_elements`] with `self`. (Extra impl)"]
48408    #[inline]
48409    fn visit_with_ast_path<'ast: 'r, 'r>(
48410        &'ast self,
48411        visitor: &mut V,
48412        __ast_path: &mut AstNodePath<'r>,
48413    ) {
48414        <V as VisitAstPath>::visit_ts_type_elements(visitor, self, __ast_path)
48415    }
48416
48417    #[inline]
48418    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48419        &'ast self,
48420        visitor: &mut V,
48421        __ast_path: &mut AstNodePath<'r>,
48422    ) {
48423        self.iter().enumerate().for_each(|(__idx, item)| {
48424            let mut __ast_path = __ast_path.with_index_guard(__idx);
48425            <TsTypeElement as VisitWithAstPath<V>>::visit_with_ast_path(
48426                item,
48427                visitor,
48428                &mut *__ast_path,
48429            )
48430        })
48431    }
48432}
48433#[cfg(any(docsrs, feature = "path"))]
48434#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48435impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [TsTypeParam] {
48436    #[doc = "Calls [VisitAstPath`::visit_ts_type_params`] with `self`. (Extra impl)"]
48437    #[inline]
48438    fn visit_with_ast_path<'ast: 'r, 'r>(
48439        &'ast self,
48440        visitor: &mut V,
48441        __ast_path: &mut AstNodePath<'r>,
48442    ) {
48443        <V as VisitAstPath>::visit_ts_type_params(visitor, self, __ast_path)
48444    }
48445
48446    #[inline]
48447    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48448        &'ast self,
48449        visitor: &mut V,
48450        __ast_path: &mut AstNodePath<'r>,
48451    ) {
48452        self.iter().enumerate().for_each(|(__idx, item)| {
48453            let mut __ast_path = __ast_path.with_index_guard(__idx);
48454            <TsTypeParam as VisitWithAstPath<V>>::visit_with_ast_path(
48455                item,
48456                visitor,
48457                &mut *__ast_path,
48458            )
48459        })
48460    }
48461}
48462#[cfg(any(docsrs, feature = "path"))]
48463#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48464impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [Box<TsType>] {
48465    #[doc = "Calls [VisitAstPath`::visit_ts_types`] with `self`. (Extra impl)"]
48466    #[inline]
48467    fn visit_with_ast_path<'ast: 'r, 'r>(
48468        &'ast self,
48469        visitor: &mut V,
48470        __ast_path: &mut AstNodePath<'r>,
48471    ) {
48472        <V as VisitAstPath>::visit_ts_types(visitor, self, __ast_path)
48473    }
48474
48475    #[inline]
48476    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48477        &'ast self,
48478        visitor: &mut V,
48479        __ast_path: &mut AstNodePath<'r>,
48480    ) {
48481        self.iter().enumerate().for_each(|(__idx, item)| {
48482            let mut __ast_path = __ast_path.with_index_guard(__idx);
48483            <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
48484                item,
48485                visitor,
48486                &mut *__ast_path,
48487            )
48488        })
48489    }
48490}
48491#[cfg(any(docsrs, feature = "path"))]
48492#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48493impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [VarDeclarator] {
48494    #[doc = "Calls [VisitAstPath`::visit_var_declarators`] with `self`. (Extra impl)"]
48495    #[inline]
48496    fn visit_with_ast_path<'ast: 'r, 'r>(
48497        &'ast self,
48498        visitor: &mut V,
48499        __ast_path: &mut AstNodePath<'r>,
48500    ) {
48501        <V as VisitAstPath>::visit_var_declarators(visitor, self, __ast_path)
48502    }
48503
48504    #[inline]
48505    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48506        &'ast self,
48507        visitor: &mut V,
48508        __ast_path: &mut AstNodePath<'r>,
48509    ) {
48510        self.iter().enumerate().for_each(|(__idx, item)| {
48511            let mut __ast_path = __ast_path.with_index_guard(__idx);
48512            <VarDeclarator as VisitWithAstPath<V>>::visit_with_ast_path(
48513                item,
48514                visitor,
48515                &mut *__ast_path,
48516            )
48517        })
48518    }
48519}
48520#[cfg(any(docsrs, feature = "path"))]
48521#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48522impl<V, T> VisitWithAstPath<V> for std::boxed::Box<T>
48523where
48524    V: ?Sized + VisitAstPath,
48525    T: VisitWithAstPath<V>,
48526{
48527    #[inline]
48528    fn visit_with_ast_path<'ast: 'r, 'r>(
48529        &'ast self,
48530        visitor: &mut V,
48531        __ast_path: &mut AstNodePath<'r>,
48532    ) {
48533        let v = <T as VisitWithAstPath<V>>::visit_with_ast_path(&**self, visitor, __ast_path);
48534        v
48535    }
48536
48537    #[inline]
48538    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48539        &'ast self,
48540        visitor: &mut V,
48541        __ast_path: &mut AstNodePath<'r>,
48542    ) {
48543        let v =
48544            <T as VisitWithAstPath<V>>::visit_children_with_ast_path(&**self, visitor, __ast_path);
48545        v
48546    }
48547}
48548#[cfg(any(docsrs, feature = "path"))]
48549#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48550impl<V, T> VisitWithAstPath<V> for std::vec::Vec<T>
48551where
48552    V: ?Sized + VisitAstPath,
48553    [T]: VisitWithAstPath<V>,
48554{
48555    #[inline]
48556    fn visit_with_ast_path<'ast: 'r, 'r>(
48557        &'ast self,
48558        visitor: &mut V,
48559        __ast_path: &mut AstNodePath<'r>,
48560    ) {
48561        let v = <[T] as VisitWithAstPath<V>>::visit_with_ast_path(self, visitor, __ast_path);
48562        v
48563    }
48564
48565    #[inline]
48566    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48567        &'ast self,
48568        visitor: &mut V,
48569        __ast_path: &mut AstNodePath<'r>,
48570    ) {
48571        let v =
48572            <[T] as VisitWithAstPath<V>>::visit_children_with_ast_path(self, visitor, __ast_path);
48573        v
48574    }
48575}
48576#[doc = r" A visitor trait for traversing the AST."]
48577pub trait VisitMut {
48578    #[doc = "Visit a node of type `Accessibility`.\n\nBy default, this method calls \
48579             [`Accessibility::visit_mut_children_with`]. If you want to recurse, you need to call \
48580             it manually."]
48581    #[inline]
48582    fn visit_mut_accessibility(&mut self, node: &mut Accessibility) {
48583        <Accessibility as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48584    }
48585    #[doc = "Visit a node of type `ArrayLit`.\n\nBy default, this method calls \
48586             [`ArrayLit::visit_mut_children_with`]. If you want to recurse, you need to call it \
48587             manually."]
48588    #[inline]
48589    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit) {
48590        <ArrayLit as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48591    }
48592    #[doc = "Visit a node of type `ArrayPat`.\n\nBy default, this method calls \
48593             [`ArrayPat::visit_mut_children_with`]. If you want to recurse, you need to call it \
48594             manually."]
48595    #[inline]
48596    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat) {
48597        <ArrayPat as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48598    }
48599    #[doc = "Visit a node of type `ArrowExpr`.\n\nBy default, this method calls \
48600             [`ArrowExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48601             manually."]
48602    #[inline]
48603    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr) {
48604        <ArrowExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48605    }
48606    #[doc = "Visit a node of type `AssignExpr`.\n\nBy default, this method calls \
48607             [`AssignExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48608             manually."]
48609    #[inline]
48610    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr) {
48611        <AssignExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48612    }
48613    #[doc = "Visit a node of type `AssignOp`.\n\nBy default, this method calls \
48614             [`AssignOp::visit_mut_children_with`]. If you want to recurse, you need to call it \
48615             manually."]
48616    #[inline]
48617    fn visit_mut_assign_op(&mut self, node: &mut AssignOp) {
48618        <AssignOp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48619    }
48620    #[doc = "Visit a node of type `AssignPat`.\n\nBy default, this method calls \
48621             [`AssignPat::visit_mut_children_with`]. If you want to recurse, you need to call it \
48622             manually."]
48623    #[inline]
48624    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat) {
48625        <AssignPat as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48626    }
48627    #[doc = "Visit a node of type `AssignPatProp`.\n\nBy default, this method calls \
48628             [`AssignPatProp::visit_mut_children_with`]. If you want to recurse, you need to call \
48629             it manually."]
48630    #[inline]
48631    fn visit_mut_assign_pat_prop(&mut self, node: &mut AssignPatProp) {
48632        <AssignPatProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48633    }
48634    #[doc = "Visit a node of type `AssignProp`.\n\nBy default, this method calls \
48635             [`AssignProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
48636             manually."]
48637    #[inline]
48638    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp) {
48639        <AssignProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48640    }
48641    #[doc = "Visit a node of type `AssignTarget`.\n\nBy default, this method calls \
48642             [`AssignTarget::visit_mut_children_with`]. If you want to recurse, you need to call \
48643             it manually."]
48644    #[inline]
48645    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget) {
48646        <AssignTarget as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48647    }
48648    #[doc = "Visit a node of type `AssignTargetPat`.\n\nBy default, this method calls \
48649             [`AssignTargetPat::visit_mut_children_with`]. If you want to recurse, you need to \
48650             call it manually."]
48651    #[inline]
48652    fn visit_mut_assign_target_pat(&mut self, node: &mut AssignTargetPat) {
48653        <AssignTargetPat as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48654    }
48655    #[doc = "Visit a node of type `swc_atoms :: Atom`.\n\nBy default, this method calls \
48656             [`swc_atoms :: Atom::visit_mut_children_with`]. If you want to recurse, you need to \
48657             call it manually."]
48658    #[inline]
48659    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom) {
48660        <swc_atoms::Atom as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48661    }
48662    #[doc = "Visit a node of type `AutoAccessor`.\n\nBy default, this method calls \
48663             [`AutoAccessor::visit_mut_children_with`]. If you want to recurse, you need to call \
48664             it manually."]
48665    #[inline]
48666    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor) {
48667        <AutoAccessor as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48668    }
48669    #[doc = "Visit a node of type `AwaitExpr`.\n\nBy default, this method calls \
48670             [`AwaitExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48671             manually."]
48672    #[inline]
48673    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr) {
48674        <AwaitExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48675    }
48676    #[doc = "Visit a node of type `BigInt`.\n\nBy default, this method calls \
48677             [`BigInt::visit_mut_children_with`]. If you want to recurse, you need to call it \
48678             manually."]
48679    #[inline]
48680    fn visit_mut_big_int(&mut self, node: &mut BigInt) {
48681        <BigInt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48682    }
48683    #[doc = "Visit a node of type `BigIntValue`.\n\nBy default, this method calls \
48684             [`BigIntValue::visit_mut_children_with`]. If you want to recurse, you need to call it \
48685             manually."]
48686    #[inline]
48687    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue) {
48688        <BigIntValue as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48689    }
48690    #[doc = "Visit a node of type `BinExpr`.\n\nBy default, this method calls \
48691             [`BinExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48692             manually."]
48693    #[inline]
48694    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr) {
48695        <BinExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48696    }
48697    #[doc = "Visit a node of type `BinaryOp`.\n\nBy default, this method calls \
48698             [`BinaryOp::visit_mut_children_with`]. If you want to recurse, you need to call it \
48699             manually."]
48700    #[inline]
48701    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp) {
48702        <BinaryOp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48703    }
48704    #[doc = "Visit a node of type `BindingIdent`.\n\nBy default, this method calls \
48705             [`BindingIdent::visit_mut_children_with`]. If you want to recurse, you need to call \
48706             it manually."]
48707    #[inline]
48708    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent) {
48709        <BindingIdent as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48710    }
48711    #[doc = "Visit a node of type `BlockStmt`.\n\nBy default, this method calls \
48712             [`BlockStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
48713             manually."]
48714    #[inline]
48715    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt) {
48716        <BlockStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48717    }
48718    #[doc = "Visit a node of type `BlockStmtOrExpr`.\n\nBy default, this method calls \
48719             [`BlockStmtOrExpr::visit_mut_children_with`]. If you want to recurse, you need to \
48720             call it manually."]
48721    #[inline]
48722    fn visit_mut_block_stmt_or_expr(&mut self, node: &mut BlockStmtOrExpr) {
48723        <BlockStmtOrExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48724    }
48725    #[doc = "Visit a node of type `Bool`.\n\nBy default, this method calls \
48726             [`Bool::visit_mut_children_with`]. If you want to recurse, you need to call it \
48727             manually."]
48728    #[inline]
48729    fn visit_mut_bool(&mut self, node: &mut Bool) {
48730        <Bool as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48731    }
48732    #[doc = "Visit a node of type `BreakStmt`.\n\nBy default, this method calls \
48733             [`BreakStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
48734             manually."]
48735    #[inline]
48736    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt) {
48737        <BreakStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48738    }
48739    #[doc = "Visit a node of type `CallExpr`.\n\nBy default, this method calls \
48740             [`CallExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48741             manually."]
48742    #[inline]
48743    fn visit_mut_call_expr(&mut self, node: &mut CallExpr) {
48744        <CallExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48745    }
48746    #[doc = "Visit a node of type `Callee`.\n\nBy default, this method calls \
48747             [`Callee::visit_mut_children_with`]. If you want to recurse, you need to call it \
48748             manually."]
48749    #[inline]
48750    fn visit_mut_callee(&mut self, node: &mut Callee) {
48751        <Callee as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48752    }
48753    #[doc = "Visit a node of type `CatchClause`.\n\nBy default, this method calls \
48754             [`CatchClause::visit_mut_children_with`]. If you want to recurse, you need to call it \
48755             manually."]
48756    #[inline]
48757    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause) {
48758        <CatchClause as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48759    }
48760    #[doc = "Visit a node of type `Class`.\n\nBy default, this method calls \
48761             [`Class::visit_mut_children_with`]. If you want to recurse, you need to call it \
48762             manually."]
48763    #[inline]
48764    fn visit_mut_class(&mut self, node: &mut Class) {
48765        <Class as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48766    }
48767    #[doc = "Visit a node of type `ClassDecl`.\n\nBy default, this method calls \
48768             [`ClassDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
48769             manually."]
48770    #[inline]
48771    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl) {
48772        <ClassDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48773    }
48774    #[doc = "Visit a node of type `ClassExpr`.\n\nBy default, this method calls \
48775             [`ClassExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48776             manually."]
48777    #[inline]
48778    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr) {
48779        <ClassExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48780    }
48781    #[doc = "Visit a node of type `ClassMember`.\n\nBy default, this method calls \
48782             [`ClassMember::visit_mut_children_with`]. If you want to recurse, you need to call it \
48783             manually."]
48784    #[inline]
48785    fn visit_mut_class_member(&mut self, node: &mut ClassMember) {
48786        <ClassMember as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48787    }
48788    #[doc = "Visit a node of type `Vec < ClassMember >`.\n\nBy default, this method calls [`Vec < \
48789             ClassMember >::visit_mut_children_with`]. If you want to recurse, you need to call it \
48790             manually."]
48791    #[inline]
48792    fn visit_mut_class_members(&mut self, node: &mut Vec<ClassMember>) {
48793        <Vec<ClassMember> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48794    }
48795    #[doc = "Visit a node of type `ClassMethod`.\n\nBy default, this method calls \
48796             [`ClassMethod::visit_mut_children_with`]. If you want to recurse, you need to call it \
48797             manually."]
48798    #[inline]
48799    fn visit_mut_class_method(&mut self, node: &mut ClassMethod) {
48800        <ClassMethod as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48801    }
48802    #[doc = "Visit a node of type `ClassProp`.\n\nBy default, this method calls \
48803             [`ClassProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
48804             manually."]
48805    #[inline]
48806    fn visit_mut_class_prop(&mut self, node: &mut ClassProp) {
48807        <ClassProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48808    }
48809    #[doc = "Visit a node of type `ComputedPropName`.\n\nBy default, this method calls \
48810             [`ComputedPropName::visit_mut_children_with`]. If you want to recurse, you need to \
48811             call it manually."]
48812    #[inline]
48813    fn visit_mut_computed_prop_name(&mut self, node: &mut ComputedPropName) {
48814        <ComputedPropName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48815    }
48816    #[doc = "Visit a node of type `CondExpr`.\n\nBy default, this method calls \
48817             [`CondExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48818             manually."]
48819    #[inline]
48820    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr) {
48821        <CondExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48822    }
48823    #[doc = "Visit a node of type `Constructor`.\n\nBy default, this method calls \
48824             [`Constructor::visit_mut_children_with`]. If you want to recurse, you need to call it \
48825             manually."]
48826    #[inline]
48827    fn visit_mut_constructor(&mut self, node: &mut Constructor) {
48828        <Constructor as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48829    }
48830    #[doc = "Visit a node of type `ContinueStmt`.\n\nBy default, this method calls \
48831             [`ContinueStmt::visit_mut_children_with`]. If you want to recurse, you need to call \
48832             it manually."]
48833    #[inline]
48834    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt) {
48835        <ContinueStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48836    }
48837    #[doc = "Visit a node of type `DebuggerStmt`.\n\nBy default, this method calls \
48838             [`DebuggerStmt::visit_mut_children_with`]. If you want to recurse, you need to call \
48839             it manually."]
48840    #[inline]
48841    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt) {
48842        <DebuggerStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48843    }
48844    #[doc = "Visit a node of type `Decl`.\n\nBy default, this method calls \
48845             [`Decl::visit_mut_children_with`]. If you want to recurse, you need to call it \
48846             manually."]
48847    #[inline]
48848    fn visit_mut_decl(&mut self, node: &mut Decl) {
48849        <Decl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48850    }
48851    #[doc = "Visit a node of type `Decorator`.\n\nBy default, this method calls \
48852             [`Decorator::visit_mut_children_with`]. If you want to recurse, you need to call it \
48853             manually."]
48854    #[inline]
48855    fn visit_mut_decorator(&mut self, node: &mut Decorator) {
48856        <Decorator as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48857    }
48858    #[doc = "Visit a node of type `Vec < Decorator >`.\n\nBy default, this method calls [`Vec < \
48859             Decorator >::visit_mut_children_with`]. If you want to recurse, you need to call it \
48860             manually."]
48861    #[inline]
48862    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>) {
48863        <Vec<Decorator> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48864    }
48865    #[doc = "Visit a node of type `DefaultDecl`.\n\nBy default, this method calls \
48866             [`DefaultDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
48867             manually."]
48868    #[inline]
48869    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl) {
48870        <DefaultDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48871    }
48872    #[doc = "Visit a node of type `DoWhileStmt`.\n\nBy default, this method calls \
48873             [`DoWhileStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
48874             manually."]
48875    #[inline]
48876    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt) {
48877        <DoWhileStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48878    }
48879    #[doc = "Visit a node of type `EmptyStmt`.\n\nBy default, this method calls \
48880             [`EmptyStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
48881             manually."]
48882    #[inline]
48883    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt) {
48884        <EmptyStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48885    }
48886    #[doc = "Visit a node of type `ExportAll`.\n\nBy default, this method calls \
48887             [`ExportAll::visit_mut_children_with`]. If you want to recurse, you need to call it \
48888             manually."]
48889    #[inline]
48890    fn visit_mut_export_all(&mut self, node: &mut ExportAll) {
48891        <ExportAll as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48892    }
48893    #[doc = "Visit a node of type `ExportDecl`.\n\nBy default, this method calls \
48894             [`ExportDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
48895             manually."]
48896    #[inline]
48897    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl) {
48898        <ExportDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48899    }
48900    #[doc = "Visit a node of type `ExportDefaultDecl`.\n\nBy default, this method calls \
48901             [`ExportDefaultDecl::visit_mut_children_with`]. If you want to recurse, you need to \
48902             call it manually."]
48903    #[inline]
48904    fn visit_mut_export_default_decl(&mut self, node: &mut ExportDefaultDecl) {
48905        <ExportDefaultDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48906    }
48907    #[doc = "Visit a node of type `ExportDefaultExpr`.\n\nBy default, this method calls \
48908             [`ExportDefaultExpr::visit_mut_children_with`]. If you want to recurse, you need to \
48909             call it manually."]
48910    #[inline]
48911    fn visit_mut_export_default_expr(&mut self, node: &mut ExportDefaultExpr) {
48912        <ExportDefaultExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48913    }
48914    #[doc = "Visit a node of type `ExportDefaultSpecifier`.\n\nBy default, this method calls \
48915             [`ExportDefaultSpecifier::visit_mut_children_with`]. If you want to recurse, you need \
48916             to call it manually."]
48917    #[inline]
48918    fn visit_mut_export_default_specifier(&mut self, node: &mut ExportDefaultSpecifier) {
48919        <ExportDefaultSpecifier as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48920    }
48921    #[doc = "Visit a node of type `ExportNamedSpecifier`.\n\nBy default, this method calls \
48922             [`ExportNamedSpecifier::visit_mut_children_with`]. If you want to recurse, you need \
48923             to call it manually."]
48924    #[inline]
48925    fn visit_mut_export_named_specifier(&mut self, node: &mut ExportNamedSpecifier) {
48926        <ExportNamedSpecifier as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48927    }
48928    #[doc = "Visit a node of type `ExportNamespaceSpecifier`.\n\nBy default, this method calls \
48929             [`ExportNamespaceSpecifier::visit_mut_children_with`]. If you want to recurse, you \
48930             need to call it manually."]
48931    #[inline]
48932    fn visit_mut_export_namespace_specifier(&mut self, node: &mut ExportNamespaceSpecifier) {
48933        <ExportNamespaceSpecifier as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48934    }
48935    #[doc = "Visit a node of type `ExportSpecifier`.\n\nBy default, this method calls \
48936             [`ExportSpecifier::visit_mut_children_with`]. If you want to recurse, you need to \
48937             call it manually."]
48938    #[inline]
48939    fn visit_mut_export_specifier(&mut self, node: &mut ExportSpecifier) {
48940        <ExportSpecifier as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48941    }
48942    #[doc = "Visit a node of type `Vec < ExportSpecifier >`.\n\nBy default, this method calls \
48943             [`Vec < ExportSpecifier >::visit_mut_children_with`]. If you want to recurse, you \
48944             need to call it manually."]
48945    #[inline]
48946    fn visit_mut_export_specifiers(&mut self, node: &mut Vec<ExportSpecifier>) {
48947        <Vec<ExportSpecifier> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48948    }
48949    #[doc = "Visit a node of type `Expr`.\n\nBy default, this method calls \
48950             [`Expr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48951             manually."]
48952    #[inline]
48953    fn visit_mut_expr(&mut self, node: &mut Expr) {
48954        <Expr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48955    }
48956    #[doc = "Visit a node of type `ExprOrSpread`.\n\nBy default, this method calls \
48957             [`ExprOrSpread::visit_mut_children_with`]. If you want to recurse, you need to call \
48958             it manually."]
48959    #[inline]
48960    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread) {
48961        <ExprOrSpread as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48962    }
48963    #[doc = "Visit a node of type `Vec < ExprOrSpread >`.\n\nBy default, this method calls [`Vec < \
48964             ExprOrSpread >::visit_mut_children_with`]. If you want to recurse, you need to call \
48965             it manually."]
48966    #[inline]
48967    fn visit_mut_expr_or_spreads(&mut self, node: &mut Vec<ExprOrSpread>) {
48968        <Vec<ExprOrSpread> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48969    }
48970    #[doc = "Visit a node of type `ExprStmt`.\n\nBy default, this method calls \
48971             [`ExprStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
48972             manually."]
48973    #[inline]
48974    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt) {
48975        <ExprStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48976    }
48977    #[doc = "Visit a node of type `Vec < Box < Expr > >`.\n\nBy default, this method calls [`Vec < \
48978             Box < Expr > >::visit_mut_children_with`]. If you want to recurse, you need to call \
48979             it manually."]
48980    #[inline]
48981    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>) {
48982        <Vec<Box<Expr>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48983    }
48984    #[doc = "Visit a node of type `FnDecl`.\n\nBy default, this method calls \
48985             [`FnDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
48986             manually."]
48987    #[inline]
48988    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl) {
48989        <FnDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48990    }
48991    #[doc = "Visit a node of type `FnExpr`.\n\nBy default, this method calls \
48992             [`FnExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48993             manually."]
48994    #[inline]
48995    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr) {
48996        <FnExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48997    }
48998    #[doc = "Visit a node of type `ForHead`.\n\nBy default, this method calls \
48999             [`ForHead::visit_mut_children_with`]. If you want to recurse, you need to call it \
49000             manually."]
49001    #[inline]
49002    fn visit_mut_for_head(&mut self, node: &mut ForHead) {
49003        <ForHead as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49004    }
49005    #[doc = "Visit a node of type `ForInStmt`.\n\nBy default, this method calls \
49006             [`ForInStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
49007             manually."]
49008    #[inline]
49009    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt) {
49010        <ForInStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49011    }
49012    #[doc = "Visit a node of type `ForOfStmt`.\n\nBy default, this method calls \
49013             [`ForOfStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
49014             manually."]
49015    #[inline]
49016    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt) {
49017        <ForOfStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49018    }
49019    #[doc = "Visit a node of type `ForStmt`.\n\nBy default, this method calls \
49020             [`ForStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
49021             manually."]
49022    #[inline]
49023    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt) {
49024        <ForStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49025    }
49026    #[doc = "Visit a node of type `Function`.\n\nBy default, this method calls \
49027             [`Function::visit_mut_children_with`]. If you want to recurse, you need to call it \
49028             manually."]
49029    #[inline]
49030    fn visit_mut_function(&mut self, node: &mut Function) {
49031        <Function as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49032    }
49033    #[doc = "Visit a node of type `GetterProp`.\n\nBy default, this method calls \
49034             [`GetterProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
49035             manually."]
49036    #[inline]
49037    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp) {
49038        <GetterProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49039    }
49040    #[doc = "Visit a node of type `Ident`.\n\nBy default, this method calls \
49041             [`Ident::visit_mut_children_with`]. If you want to recurse, you need to call it \
49042             manually."]
49043    #[inline]
49044    fn visit_mut_ident(&mut self, node: &mut Ident) {
49045        <Ident as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49046    }
49047    #[doc = "Visit a node of type `IdentName`.\n\nBy default, this method calls \
49048             [`IdentName::visit_mut_children_with`]. If you want to recurse, you need to call it \
49049             manually."]
49050    #[inline]
49051    fn visit_mut_ident_name(&mut self, node: &mut IdentName) {
49052        <IdentName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49053    }
49054    #[doc = "Visit a node of type `IfStmt`.\n\nBy default, this method calls \
49055             [`IfStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
49056             manually."]
49057    #[inline]
49058    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt) {
49059        <IfStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49060    }
49061    #[doc = "Visit a node of type `Import`.\n\nBy default, this method calls \
49062             [`Import::visit_mut_children_with`]. If you want to recurse, you need to call it \
49063             manually."]
49064    #[inline]
49065    fn visit_mut_import(&mut self, node: &mut Import) {
49066        <Import as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49067    }
49068    #[doc = "Visit a node of type `ImportDecl`.\n\nBy default, this method calls \
49069             [`ImportDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
49070             manually."]
49071    #[inline]
49072    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl) {
49073        <ImportDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49074    }
49075    #[doc = "Visit a node of type `ImportDefaultSpecifier`.\n\nBy default, this method calls \
49076             [`ImportDefaultSpecifier::visit_mut_children_with`]. If you want to recurse, you need \
49077             to call it manually."]
49078    #[inline]
49079    fn visit_mut_import_default_specifier(&mut self, node: &mut ImportDefaultSpecifier) {
49080        <ImportDefaultSpecifier as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49081    }
49082    #[doc = "Visit a node of type `ImportNamedSpecifier`.\n\nBy default, this method calls \
49083             [`ImportNamedSpecifier::visit_mut_children_with`]. If you want to recurse, you need \
49084             to call it manually."]
49085    #[inline]
49086    fn visit_mut_import_named_specifier(&mut self, node: &mut ImportNamedSpecifier) {
49087        <ImportNamedSpecifier as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49088    }
49089    #[doc = "Visit a node of type `ImportPhase`.\n\nBy default, this method calls \
49090             [`ImportPhase::visit_mut_children_with`]. If you want to recurse, you need to call it \
49091             manually."]
49092    #[inline]
49093    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase) {
49094        <ImportPhase as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49095    }
49096    #[doc = "Visit a node of type `ImportSpecifier`.\n\nBy default, this method calls \
49097             [`ImportSpecifier::visit_mut_children_with`]. If you want to recurse, you need to \
49098             call it manually."]
49099    #[inline]
49100    fn visit_mut_import_specifier(&mut self, node: &mut ImportSpecifier) {
49101        <ImportSpecifier as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49102    }
49103    #[doc = "Visit a node of type `Vec < ImportSpecifier >`.\n\nBy default, this method calls \
49104             [`Vec < ImportSpecifier >::visit_mut_children_with`]. If you want to recurse, you \
49105             need to call it manually."]
49106    #[inline]
49107    fn visit_mut_import_specifiers(&mut self, node: &mut Vec<ImportSpecifier>) {
49108        <Vec<ImportSpecifier> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49109    }
49110    #[doc = "Visit a node of type `ImportStarAsSpecifier`.\n\nBy default, this method calls \
49111             [`ImportStarAsSpecifier::visit_mut_children_with`]. If you want to recurse, you need \
49112             to call it manually."]
49113    #[inline]
49114    fn visit_mut_import_star_as_specifier(&mut self, node: &mut ImportStarAsSpecifier) {
49115        <ImportStarAsSpecifier as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49116    }
49117    #[doc = "Visit a node of type `ImportWith`.\n\nBy default, this method calls \
49118             [`ImportWith::visit_mut_children_with`]. If you want to recurse, you need to call it \
49119             manually."]
49120    #[inline]
49121    fn visit_mut_import_with(&mut self, node: &mut ImportWith) {
49122        <ImportWith as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49123    }
49124    #[doc = "Visit a node of type `ImportWithItem`.\n\nBy default, this method calls \
49125             [`ImportWithItem::visit_mut_children_with`]. If you want to recurse, you need to call \
49126             it manually."]
49127    #[inline]
49128    fn visit_mut_import_with_item(&mut self, node: &mut ImportWithItem) {
49129        <ImportWithItem as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49130    }
49131    #[doc = "Visit a node of type `Vec < ImportWithItem >`.\n\nBy default, this method calls [`Vec \
49132             < ImportWithItem >::visit_mut_children_with`]. If you want to recurse, you need to \
49133             call it manually."]
49134    #[inline]
49135    fn visit_mut_import_with_items(&mut self, node: &mut Vec<ImportWithItem>) {
49136        <Vec<ImportWithItem> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49137    }
49138    #[doc = "Visit a node of type `Invalid`.\n\nBy default, this method calls \
49139             [`Invalid::visit_mut_children_with`]. If you want to recurse, you need to call it \
49140             manually."]
49141    #[inline]
49142    fn visit_mut_invalid(&mut self, node: &mut Invalid) {
49143        <Invalid as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49144    }
49145    #[doc = "Visit a node of type `JSXAttr`.\n\nBy default, this method calls \
49146             [`JSXAttr::visit_mut_children_with`]. If you want to recurse, you need to call it \
49147             manually."]
49148    #[inline]
49149    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr) {
49150        <JSXAttr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49151    }
49152    #[doc = "Visit a node of type `JSXAttrName`.\n\nBy default, this method calls \
49153             [`JSXAttrName::visit_mut_children_with`]. If you want to recurse, you need to call it \
49154             manually."]
49155    #[inline]
49156    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName) {
49157        <JSXAttrName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49158    }
49159    #[doc = "Visit a node of type `JSXAttrOrSpread`.\n\nBy default, this method calls \
49160             [`JSXAttrOrSpread::visit_mut_children_with`]. If you want to recurse, you need to \
49161             call it manually."]
49162    #[inline]
49163    fn visit_mut_jsx_attr_or_spread(&mut self, node: &mut JSXAttrOrSpread) {
49164        <JSXAttrOrSpread as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49165    }
49166    #[doc = "Visit a node of type `Vec < JSXAttrOrSpread >`.\n\nBy default, this method calls \
49167             [`Vec < JSXAttrOrSpread >::visit_mut_children_with`]. If you want to recurse, you \
49168             need to call it manually."]
49169    #[inline]
49170    fn visit_mut_jsx_attr_or_spreads(&mut self, node: &mut Vec<JSXAttrOrSpread>) {
49171        <Vec<JSXAttrOrSpread> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49172    }
49173    #[doc = "Visit a node of type `JSXAttrValue`.\n\nBy default, this method calls \
49174             [`JSXAttrValue::visit_mut_children_with`]. If you want to recurse, you need to call \
49175             it manually."]
49176    #[inline]
49177    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue) {
49178        <JSXAttrValue as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49179    }
49180    #[doc = "Visit a node of type `JSXClosingElement`.\n\nBy default, this method calls \
49181             [`JSXClosingElement::visit_mut_children_with`]. If you want to recurse, you need to \
49182             call it manually."]
49183    #[inline]
49184    fn visit_mut_jsx_closing_element(&mut self, node: &mut JSXClosingElement) {
49185        <JSXClosingElement as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49186    }
49187    #[doc = "Visit a node of type `JSXClosingFragment`.\n\nBy default, this method calls \
49188             [`JSXClosingFragment::visit_mut_children_with`]. If you want to recurse, you need to \
49189             call it manually."]
49190    #[inline]
49191    fn visit_mut_jsx_closing_fragment(&mut self, node: &mut JSXClosingFragment) {
49192        <JSXClosingFragment as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49193    }
49194    #[doc = "Visit a node of type `JSXElement`.\n\nBy default, this method calls \
49195             [`JSXElement::visit_mut_children_with`]. If you want to recurse, you need to call it \
49196             manually."]
49197    #[inline]
49198    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement) {
49199        <JSXElement as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49200    }
49201    #[doc = "Visit a node of type `JSXElementChild`.\n\nBy default, this method calls \
49202             [`JSXElementChild::visit_mut_children_with`]. If you want to recurse, you need to \
49203             call it manually."]
49204    #[inline]
49205    fn visit_mut_jsx_element_child(&mut self, node: &mut JSXElementChild) {
49206        <JSXElementChild as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49207    }
49208    #[doc = "Visit a node of type `Vec < JSXElementChild >`.\n\nBy default, this method calls \
49209             [`Vec < JSXElementChild >::visit_mut_children_with`]. If you want to recurse, you \
49210             need to call it manually."]
49211    #[inline]
49212    fn visit_mut_jsx_element_childs(&mut self, node: &mut Vec<JSXElementChild>) {
49213        <Vec<JSXElementChild> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49214    }
49215    #[doc = "Visit a node of type `JSXElementName`.\n\nBy default, this method calls \
49216             [`JSXElementName::visit_mut_children_with`]. If you want to recurse, you need to call \
49217             it manually."]
49218    #[inline]
49219    fn visit_mut_jsx_element_name(&mut self, node: &mut JSXElementName) {
49220        <JSXElementName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49221    }
49222    #[doc = "Visit a node of type `JSXEmptyExpr`.\n\nBy default, this method calls \
49223             [`JSXEmptyExpr::visit_mut_children_with`]. If you want to recurse, you need to call \
49224             it manually."]
49225    #[inline]
49226    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr) {
49227        <JSXEmptyExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49228    }
49229    #[doc = "Visit a node of type `JSXExpr`.\n\nBy default, this method calls \
49230             [`JSXExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
49231             manually."]
49232    #[inline]
49233    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr) {
49234        <JSXExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49235    }
49236    #[doc = "Visit a node of type `JSXExprContainer`.\n\nBy default, this method calls \
49237             [`JSXExprContainer::visit_mut_children_with`]. If you want to recurse, you need to \
49238             call it manually."]
49239    #[inline]
49240    fn visit_mut_jsx_expr_container(&mut self, node: &mut JSXExprContainer) {
49241        <JSXExprContainer as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49242    }
49243    #[doc = "Visit a node of type `JSXFragment`.\n\nBy default, this method calls \
49244             [`JSXFragment::visit_mut_children_with`]. If you want to recurse, you need to call it \
49245             manually."]
49246    #[inline]
49247    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment) {
49248        <JSXFragment as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49249    }
49250    #[doc = "Visit a node of type `JSXMemberExpr`.\n\nBy default, this method calls \
49251             [`JSXMemberExpr::visit_mut_children_with`]. If you want to recurse, you need to call \
49252             it manually."]
49253    #[inline]
49254    fn visit_mut_jsx_member_expr(&mut self, node: &mut JSXMemberExpr) {
49255        <JSXMemberExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49256    }
49257    #[doc = "Visit a node of type `JSXNamespacedName`.\n\nBy default, this method calls \
49258             [`JSXNamespacedName::visit_mut_children_with`]. If you want to recurse, you need to \
49259             call it manually."]
49260    #[inline]
49261    fn visit_mut_jsx_namespaced_name(&mut self, node: &mut JSXNamespacedName) {
49262        <JSXNamespacedName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49263    }
49264    #[doc = "Visit a node of type `JSXObject`.\n\nBy default, this method calls \
49265             [`JSXObject::visit_mut_children_with`]. If you want to recurse, you need to call it \
49266             manually."]
49267    #[inline]
49268    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject) {
49269        <JSXObject as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49270    }
49271    #[doc = "Visit a node of type `JSXOpeningElement`.\n\nBy default, this method calls \
49272             [`JSXOpeningElement::visit_mut_children_with`]. If you want to recurse, you need to \
49273             call it manually."]
49274    #[inline]
49275    fn visit_mut_jsx_opening_element(&mut self, node: &mut JSXOpeningElement) {
49276        <JSXOpeningElement as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49277    }
49278    #[doc = "Visit a node of type `JSXOpeningFragment`.\n\nBy default, this method calls \
49279             [`JSXOpeningFragment::visit_mut_children_with`]. If you want to recurse, you need to \
49280             call it manually."]
49281    #[inline]
49282    fn visit_mut_jsx_opening_fragment(&mut self, node: &mut JSXOpeningFragment) {
49283        <JSXOpeningFragment as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49284    }
49285    #[doc = "Visit a node of type `JSXSpreadChild`.\n\nBy default, this method calls \
49286             [`JSXSpreadChild::visit_mut_children_with`]. If you want to recurse, you need to call \
49287             it manually."]
49288    #[inline]
49289    fn visit_mut_jsx_spread_child(&mut self, node: &mut JSXSpreadChild) {
49290        <JSXSpreadChild as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49291    }
49292    #[doc = "Visit a node of type `JSXText`.\n\nBy default, this method calls \
49293             [`JSXText::visit_mut_children_with`]. If you want to recurse, you need to call it \
49294             manually."]
49295    #[inline]
49296    fn visit_mut_jsx_text(&mut self, node: &mut JSXText) {
49297        <JSXText as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49298    }
49299    #[doc = "Visit a node of type `Key`.\n\nBy default, this method calls \
49300             [`Key::visit_mut_children_with`]. If you want to recurse, you need to call it \
49301             manually."]
49302    #[inline]
49303    fn visit_mut_key(&mut self, node: &mut Key) {
49304        <Key as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49305    }
49306    #[doc = "Visit a node of type `KeyValuePatProp`.\n\nBy default, this method calls \
49307             [`KeyValuePatProp::visit_mut_children_with`]. If you want to recurse, you need to \
49308             call it manually."]
49309    #[inline]
49310    fn visit_mut_key_value_pat_prop(&mut self, node: &mut KeyValuePatProp) {
49311        <KeyValuePatProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49312    }
49313    #[doc = "Visit a node of type `KeyValueProp`.\n\nBy default, this method calls \
49314             [`KeyValueProp::visit_mut_children_with`]. If you want to recurse, you need to call \
49315             it manually."]
49316    #[inline]
49317    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp) {
49318        <KeyValueProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49319    }
49320    #[doc = "Visit a node of type `LabeledStmt`.\n\nBy default, this method calls \
49321             [`LabeledStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
49322             manually."]
49323    #[inline]
49324    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt) {
49325        <LabeledStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49326    }
49327    #[doc = "Visit a node of type `Lit`.\n\nBy default, this method calls \
49328             [`Lit::visit_mut_children_with`]. If you want to recurse, you need to call it \
49329             manually."]
49330    #[inline]
49331    fn visit_mut_lit(&mut self, node: &mut Lit) {
49332        <Lit as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49333    }
49334    #[doc = "Visit a node of type `MemberExpr`.\n\nBy default, this method calls \
49335             [`MemberExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
49336             manually."]
49337    #[inline]
49338    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr) {
49339        <MemberExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49340    }
49341    #[doc = "Visit a node of type `MemberProp`.\n\nBy default, this method calls \
49342             [`MemberProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
49343             manually."]
49344    #[inline]
49345    fn visit_mut_member_prop(&mut self, node: &mut MemberProp) {
49346        <MemberProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49347    }
49348    #[doc = "Visit a node of type `MetaPropExpr`.\n\nBy default, this method calls \
49349             [`MetaPropExpr::visit_mut_children_with`]. If you want to recurse, you need to call \
49350             it manually."]
49351    #[inline]
49352    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr) {
49353        <MetaPropExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49354    }
49355    #[doc = "Visit a node of type `MetaPropKind`.\n\nBy default, this method calls \
49356             [`MetaPropKind::visit_mut_children_with`]. If you want to recurse, you need to call \
49357             it manually."]
49358    #[inline]
49359    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind) {
49360        <MetaPropKind as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49361    }
49362    #[doc = "Visit a node of type `MethodKind`.\n\nBy default, this method calls \
49363             [`MethodKind::visit_mut_children_with`]. If you want to recurse, you need to call it \
49364             manually."]
49365    #[inline]
49366    fn visit_mut_method_kind(&mut self, node: &mut MethodKind) {
49367        <MethodKind as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49368    }
49369    #[doc = "Visit a node of type `MethodProp`.\n\nBy default, this method calls \
49370             [`MethodProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
49371             manually."]
49372    #[inline]
49373    fn visit_mut_method_prop(&mut self, node: &mut MethodProp) {
49374        <MethodProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49375    }
49376    #[doc = "Visit a node of type `Module`.\n\nBy default, this method calls \
49377             [`Module::visit_mut_children_with`]. If you want to recurse, you need to call it \
49378             manually."]
49379    #[inline]
49380    fn visit_mut_module(&mut self, node: &mut Module) {
49381        <Module as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49382    }
49383    #[doc = "Visit a node of type `ModuleDecl`.\n\nBy default, this method calls \
49384             [`ModuleDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
49385             manually."]
49386    #[inline]
49387    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl) {
49388        <ModuleDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49389    }
49390    #[doc = "Visit a node of type `ModuleExportName`.\n\nBy default, this method calls \
49391             [`ModuleExportName::visit_mut_children_with`]. If you want to recurse, you need to \
49392             call it manually."]
49393    #[inline]
49394    fn visit_mut_module_export_name(&mut self, node: &mut ModuleExportName) {
49395        <ModuleExportName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49396    }
49397    #[doc = "Visit a node of type `ModuleItem`.\n\nBy default, this method calls \
49398             [`ModuleItem::visit_mut_children_with`]. If you want to recurse, you need to call it \
49399             manually."]
49400    #[inline]
49401    fn visit_mut_module_item(&mut self, node: &mut ModuleItem) {
49402        <ModuleItem as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49403    }
49404    #[doc = "Visit a node of type `Vec < ModuleItem >`.\n\nBy default, this method calls [`Vec < \
49405             ModuleItem >::visit_mut_children_with`]. If you want to recurse, you need to call it \
49406             manually."]
49407    #[inline]
49408    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>) {
49409        <Vec<ModuleItem> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49410    }
49411    #[doc = "Visit a node of type `NamedExport`.\n\nBy default, this method calls \
49412             [`NamedExport::visit_mut_children_with`]. If you want to recurse, you need to call it \
49413             manually."]
49414    #[inline]
49415    fn visit_mut_named_export(&mut self, node: &mut NamedExport) {
49416        <NamedExport as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49417    }
49418    #[doc = "Visit a node of type `NewExpr`.\n\nBy default, this method calls \
49419             [`NewExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
49420             manually."]
49421    #[inline]
49422    fn visit_mut_new_expr(&mut self, node: &mut NewExpr) {
49423        <NewExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49424    }
49425    #[doc = "Visit a node of type `Null`.\n\nBy default, this method calls \
49426             [`Null::visit_mut_children_with`]. If you want to recurse, you need to call it \
49427             manually."]
49428    #[inline]
49429    fn visit_mut_null(&mut self, node: &mut Null) {
49430        <Null as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49431    }
49432    #[doc = "Visit a node of type `Number`.\n\nBy default, this method calls \
49433             [`Number::visit_mut_children_with`]. If you want to recurse, you need to call it \
49434             manually."]
49435    #[inline]
49436    fn visit_mut_number(&mut self, node: &mut Number) {
49437        <Number as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49438    }
49439    #[doc = "Visit a node of type `ObjectLit`.\n\nBy default, this method calls \
49440             [`ObjectLit::visit_mut_children_with`]. If you want to recurse, you need to call it \
49441             manually."]
49442    #[inline]
49443    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit) {
49444        <ObjectLit as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49445    }
49446    #[doc = "Visit a node of type `ObjectPat`.\n\nBy default, this method calls \
49447             [`ObjectPat::visit_mut_children_with`]. If you want to recurse, you need to call it \
49448             manually."]
49449    #[inline]
49450    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat) {
49451        <ObjectPat as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49452    }
49453    #[doc = "Visit a node of type `ObjectPatProp`.\n\nBy default, this method calls \
49454             [`ObjectPatProp::visit_mut_children_with`]. If you want to recurse, you need to call \
49455             it manually."]
49456    #[inline]
49457    fn visit_mut_object_pat_prop(&mut self, node: &mut ObjectPatProp) {
49458        <ObjectPatProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49459    }
49460    #[doc = "Visit a node of type `Vec < ObjectPatProp >`.\n\nBy default, this method calls [`Vec \
49461             < ObjectPatProp >::visit_mut_children_with`]. If you want to recurse, you need to \
49462             call it manually."]
49463    #[inline]
49464    fn visit_mut_object_pat_props(&mut self, node: &mut Vec<ObjectPatProp>) {
49465        <Vec<ObjectPatProp> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49466    }
49467    #[doc = "Visit a node of type `Option < Accessibility >`.\n\nBy default, this method calls \
49468             [`Option < Accessibility >::visit_mut_children_with`]. If you want to recurse, you \
49469             need to call it manually."]
49470    #[inline]
49471    fn visit_mut_opt_accessibility(&mut self, node: &mut Option<Accessibility>) {
49472        <Option<Accessibility> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49473    }
49474    #[doc = "Visit a node of type `Option < swc_atoms :: Atom >`.\n\nBy default, this method calls \
49475             [`Option < swc_atoms :: Atom >::visit_mut_children_with`]. If you want to recurse, \
49476             you need to call it manually."]
49477    #[inline]
49478    fn visit_mut_opt_atom(&mut self, node: &mut Option<swc_atoms::Atom>) {
49479        <Option<swc_atoms::Atom> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49480    }
49481    #[doc = "Visit a node of type `Option < BlockStmt >`.\n\nBy default, this method calls \
49482             [`Option < BlockStmt >::visit_mut_children_with`]. If you want to recurse, you need \
49483             to call it manually."]
49484    #[inline]
49485    fn visit_mut_opt_block_stmt(&mut self, node: &mut Option<BlockStmt>) {
49486        <Option<BlockStmt> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49487    }
49488    #[doc = "Visit a node of type `OptCall`.\n\nBy default, this method calls \
49489             [`OptCall::visit_mut_children_with`]. If you want to recurse, you need to call it \
49490             manually."]
49491    #[inline]
49492    fn visit_mut_opt_call(&mut self, node: &mut OptCall) {
49493        <OptCall as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49494    }
49495    #[doc = "Visit a node of type `Option < CatchClause >`.\n\nBy default, this method calls \
49496             [`Option < CatchClause >::visit_mut_children_with`]. If you want to recurse, you need \
49497             to call it manually."]
49498    #[inline]
49499    fn visit_mut_opt_catch_clause(&mut self, node: &mut Option<CatchClause>) {
49500        <Option<CatchClause> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49501    }
49502    #[doc = "Visit a node of type `OptChainBase`.\n\nBy default, this method calls \
49503             [`OptChainBase::visit_mut_children_with`]. If you want to recurse, you need to call \
49504             it manually."]
49505    #[inline]
49506    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase) {
49507        <OptChainBase as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49508    }
49509    #[doc = "Visit a node of type `OptChainExpr`.\n\nBy default, this method calls \
49510             [`OptChainExpr::visit_mut_children_with`]. If you want to recurse, you need to call \
49511             it manually."]
49512    #[inline]
49513    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr) {
49514        <OptChainExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49515    }
49516    #[doc = "Visit a node of type `Option < Box < Expr > >`.\n\nBy default, this method calls \
49517             [`Option < Box < Expr > >::visit_mut_children_with`]. If you want to recurse, you \
49518             need to call it manually."]
49519    #[inline]
49520    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>) {
49521        <Option<Box<Expr>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49522    }
49523    #[doc = "Visit a node of type `Option < ExprOrSpread >`.\n\nBy default, this method calls \
49524             [`Option < ExprOrSpread >::visit_mut_children_with`]. If you want to recurse, you \
49525             need to call it manually."]
49526    #[inline]
49527    fn visit_mut_opt_expr_or_spread(&mut self, node: &mut Option<ExprOrSpread>) {
49528        <Option<ExprOrSpread> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49529    }
49530    #[doc = "Visit a node of type `Option < Vec < ExprOrSpread > >`.\n\nBy default, this method \
49531             calls [`Option < Vec < ExprOrSpread > >::visit_mut_children_with`]. If you want to \
49532             recurse, you need to call it manually."]
49533    #[inline]
49534    fn visit_mut_opt_expr_or_spreads(&mut self, node: &mut Option<Vec<ExprOrSpread>>) {
49535        <Option<Vec<ExprOrSpread>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49536    }
49537    #[doc = "Visit a node of type `Option < Ident >`.\n\nBy default, this method calls [`Option < \
49538             Ident >::visit_mut_children_with`]. If you want to recurse, you need to call it \
49539             manually."]
49540    #[inline]
49541    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>) {
49542        <Option<Ident> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49543    }
49544    #[doc = "Visit a node of type `Option < JSXAttrValue >`.\n\nBy default, this method calls \
49545             [`Option < JSXAttrValue >::visit_mut_children_with`]. If you want to recurse, you \
49546             need to call it manually."]
49547    #[inline]
49548    fn visit_mut_opt_jsx_attr_value(&mut self, node: &mut Option<JSXAttrValue>) {
49549        <Option<JSXAttrValue> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49550    }
49551    #[doc = "Visit a node of type `Option < JSXClosingElement >`.\n\nBy default, this method calls \
49552             [`Option < JSXClosingElement >::visit_mut_children_with`]. If you want to recurse, \
49553             you need to call it manually."]
49554    #[inline]
49555    fn visit_mut_opt_jsx_closing_element(&mut self, node: &mut Option<JSXClosingElement>) {
49556        <Option<JSXClosingElement> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49557    }
49558    #[doc = "Visit a node of type `Option < ModuleExportName >`.\n\nBy default, this method calls \
49559             [`Option < ModuleExportName >::visit_mut_children_with`]. If you want to recurse, you \
49560             need to call it manually."]
49561    #[inline]
49562    fn visit_mut_opt_module_export_name(&mut self, node: &mut Option<ModuleExportName>) {
49563        <Option<ModuleExportName> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49564    }
49565    #[doc = "Visit a node of type `Option < Box < ObjectLit > >`.\n\nBy default, this method calls \
49566             [`Option < Box < ObjectLit > >::visit_mut_children_with`]. If you want to recurse, \
49567             you need to call it manually."]
49568    #[inline]
49569    fn visit_mut_opt_object_lit(&mut self, node: &mut Option<Box<ObjectLit>>) {
49570        <Option<Box<ObjectLit>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49571    }
49572    #[doc = "Visit a node of type `Option < Pat >`.\n\nBy default, this method calls [`Option < \
49573             Pat >::visit_mut_children_with`]. If you want to recurse, you need to call it \
49574             manually."]
49575    #[inline]
49576    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>) {
49577        <Option<Pat> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49578    }
49579    #[doc = "Visit a node of type `Option < swc_common :: Span >`.\n\nBy default, this method \
49580             calls [`Option < swc_common :: Span >::visit_mut_children_with`]. If you want to \
49581             recurse, you need to call it manually."]
49582    #[inline]
49583    fn visit_mut_opt_span(&mut self, node: &mut Option<swc_common::Span>) {
49584        <Option<swc_common::Span> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49585    }
49586    #[doc = "Visit a node of type `Option < Box < Stmt > >`.\n\nBy default, this method calls \
49587             [`Option < Box < Stmt > >::visit_mut_children_with`]. If you want to recurse, you \
49588             need to call it manually."]
49589    #[inline]
49590    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>) {
49591        <Option<Box<Stmt>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49592    }
49593    #[doc = "Visit a node of type `Option < Box < Str > >`.\n\nBy default, this method calls \
49594             [`Option < Box < Str > >::visit_mut_children_with`]. If you want to recurse, you need \
49595             to call it manually."]
49596    #[inline]
49597    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>) {
49598        <Option<Box<Str>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49599    }
49600    #[doc = "Visit a node of type `Option < TruePlusMinus >`.\n\nBy default, this method calls \
49601             [`Option < TruePlusMinus >::visit_mut_children_with`]. If you want to recurse, you \
49602             need to call it manually."]
49603    #[inline]
49604    fn visit_mut_opt_true_plus_minus(&mut self, node: &mut Option<TruePlusMinus>) {
49605        <Option<TruePlusMinus> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49606    }
49607    #[doc = "Visit a node of type `Option < TsEntityName >`.\n\nBy default, this method calls \
49608             [`Option < TsEntityName >::visit_mut_children_with`]. If you want to recurse, you \
49609             need to call it manually."]
49610    #[inline]
49611    fn visit_mut_opt_ts_entity_name(&mut self, node: &mut Option<TsEntityName>) {
49612        <Option<TsEntityName> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49613    }
49614    #[doc = "Visit a node of type `Option < TsImportCallOptions >`.\n\nBy default, this method \
49615             calls [`Option < TsImportCallOptions >::visit_mut_children_with`]. If you want to \
49616             recurse, you need to call it manually."]
49617    #[inline]
49618    fn visit_mut_opt_ts_import_call_options(&mut self, node: &mut Option<TsImportCallOptions>) {
49619        <Option<TsImportCallOptions> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49620    }
49621    #[doc = "Visit a node of type `Option < TsNamespaceBody >`.\n\nBy default, this method calls \
49622             [`Option < TsNamespaceBody >::visit_mut_children_with`]. If you want to recurse, you \
49623             need to call it manually."]
49624    #[inline]
49625    fn visit_mut_opt_ts_namespace_body(&mut self, node: &mut Option<TsNamespaceBody>) {
49626        <Option<TsNamespaceBody> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49627    }
49628    #[doc = "Visit a node of type `Option < Box < TsType > >`.\n\nBy default, this method calls \
49629             [`Option < Box < TsType > >::visit_mut_children_with`]. If you want to recurse, you \
49630             need to call it manually."]
49631    #[inline]
49632    fn visit_mut_opt_ts_type(&mut self, node: &mut Option<Box<TsType>>) {
49633        <Option<Box<TsType>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49634    }
49635    #[doc = "Visit a node of type `Option < Box < TsTypeAnn > >`.\n\nBy default, this method calls \
49636             [`Option < Box < TsTypeAnn > >::visit_mut_children_with`]. If you want to recurse, \
49637             you need to call it manually."]
49638    #[inline]
49639    fn visit_mut_opt_ts_type_ann(&mut self, node: &mut Option<Box<TsTypeAnn>>) {
49640        <Option<Box<TsTypeAnn>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49641    }
49642    #[doc = "Visit a node of type `Option < Box < TsTypeParamDecl > >`.\n\nBy default, this method \
49643             calls [`Option < Box < TsTypeParamDecl > >::visit_mut_children_with`]. If you want to \
49644             recurse, you need to call it manually."]
49645    #[inline]
49646    fn visit_mut_opt_ts_type_param_decl(&mut self, node: &mut Option<Box<TsTypeParamDecl>>) {
49647        <Option<Box<TsTypeParamDecl>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49648    }
49649    #[doc = "Visit a node of type `Option < Box < TsTypeParamInstantiation > >`.\n\nBy default, \
49650             this method calls [`Option < Box < TsTypeParamInstantiation > \
49651             >::visit_mut_children_with`]. If you want to recurse, you need to call it manually."]
49652    #[inline]
49653    fn visit_mut_opt_ts_type_param_instantiation(
49654        &mut self,
49655        node: &mut Option<Box<TsTypeParamInstantiation>>,
49656    ) {
49657        <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<Self>>::visit_mut_children_with(
49658            node, self,
49659        )
49660    }
49661    #[doc = "Visit a node of type `Option < VarDeclOrExpr >`.\n\nBy default, this method calls \
49662             [`Option < VarDeclOrExpr >::visit_mut_children_with`]. If you want to recurse, you \
49663             need to call it manually."]
49664    #[inline]
49665    fn visit_mut_opt_var_decl_or_expr(&mut self, node: &mut Option<VarDeclOrExpr>) {
49666        <Option<VarDeclOrExpr> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49667    }
49668    #[doc = "Visit a node of type `Vec < Option < ExprOrSpread > >`.\n\nBy default, this method \
49669             calls [`Vec < Option < ExprOrSpread > >::visit_mut_children_with`]. If you want to \
49670             recurse, you need to call it manually."]
49671    #[inline]
49672    fn visit_mut_opt_vec_expr_or_spreads(&mut self, node: &mut Vec<Option<ExprOrSpread>>) {
49673        <Vec<Option<ExprOrSpread>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49674    }
49675    #[doc = "Visit a node of type `Vec < Option < Pat > >`.\n\nBy default, this method calls [`Vec \
49676             < Option < Pat > >::visit_mut_children_with`]. If you want to recurse, you need to \
49677             call it manually."]
49678    #[inline]
49679    fn visit_mut_opt_vec_pats(&mut self, node: &mut Vec<Option<Pat>>) {
49680        <Vec<Option<Pat>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49681    }
49682    #[doc = "Visit a node of type `Param`.\n\nBy default, this method calls \
49683             [`Param::visit_mut_children_with`]. If you want to recurse, you need to call it \
49684             manually."]
49685    #[inline]
49686    fn visit_mut_param(&mut self, node: &mut Param) {
49687        <Param as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49688    }
49689    #[doc = "Visit a node of type `ParamOrTsParamProp`.\n\nBy default, this method calls \
49690             [`ParamOrTsParamProp::visit_mut_children_with`]. If you want to recurse, you need to \
49691             call it manually."]
49692    #[inline]
49693    fn visit_mut_param_or_ts_param_prop(&mut self, node: &mut ParamOrTsParamProp) {
49694        <ParamOrTsParamProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49695    }
49696    #[doc = "Visit a node of type `Vec < ParamOrTsParamProp >`.\n\nBy default, this method calls \
49697             [`Vec < ParamOrTsParamProp >::visit_mut_children_with`]. If you want to recurse, you \
49698             need to call it manually."]
49699    #[inline]
49700    fn visit_mut_param_or_ts_param_props(&mut self, node: &mut Vec<ParamOrTsParamProp>) {
49701        <Vec<ParamOrTsParamProp> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49702    }
49703    #[doc = "Visit a node of type `Vec < Param >`.\n\nBy default, this method calls [`Vec < Param \
49704             >::visit_mut_children_with`]. If you want to recurse, you need to call it manually."]
49705    #[inline]
49706    fn visit_mut_params(&mut self, node: &mut Vec<Param>) {
49707        <Vec<Param> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49708    }
49709    #[doc = "Visit a node of type `ParenExpr`.\n\nBy default, this method calls \
49710             [`ParenExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
49711             manually."]
49712    #[inline]
49713    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr) {
49714        <ParenExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49715    }
49716    #[doc = "Visit a node of type `Pat`.\n\nBy default, this method calls \
49717             [`Pat::visit_mut_children_with`]. If you want to recurse, you need to call it \
49718             manually."]
49719    #[inline]
49720    fn visit_mut_pat(&mut self, node: &mut Pat) {
49721        <Pat as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49722    }
49723    #[doc = "Visit a node of type `Vec < Pat >`.\n\nBy default, this method calls [`Vec < Pat \
49724             >::visit_mut_children_with`]. If you want to recurse, you need to call it manually."]
49725    #[inline]
49726    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>) {
49727        <Vec<Pat> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49728    }
49729    #[doc = "Visit a node of type `PrivateMethod`.\n\nBy default, this method calls \
49730             [`PrivateMethod::visit_mut_children_with`]. If you want to recurse, you need to call \
49731             it manually."]
49732    #[inline]
49733    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod) {
49734        <PrivateMethod as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49735    }
49736    #[doc = "Visit a node of type `PrivateName`.\n\nBy default, this method calls \
49737             [`PrivateName::visit_mut_children_with`]. If you want to recurse, you need to call it \
49738             manually."]
49739    #[inline]
49740    fn visit_mut_private_name(&mut self, node: &mut PrivateName) {
49741        <PrivateName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49742    }
49743    #[doc = "Visit a node of type `PrivateProp`.\n\nBy default, this method calls \
49744             [`PrivateProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
49745             manually."]
49746    #[inline]
49747    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp) {
49748        <PrivateProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49749    }
49750    #[doc = "Visit a node of type `Program`.\n\nBy default, this method calls \
49751             [`Program::visit_mut_children_with`]. If you want to recurse, you need to call it \
49752             manually."]
49753    #[inline]
49754    fn visit_mut_program(&mut self, node: &mut Program) {
49755        <Program as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49756    }
49757    #[doc = "Visit a node of type `Prop`.\n\nBy default, this method calls \
49758             [`Prop::visit_mut_children_with`]. If you want to recurse, you need to call it \
49759             manually."]
49760    #[inline]
49761    fn visit_mut_prop(&mut self, node: &mut Prop) {
49762        <Prop as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49763    }
49764    #[doc = "Visit a node of type `PropName`.\n\nBy default, this method calls \
49765             [`PropName::visit_mut_children_with`]. If you want to recurse, you need to call it \
49766             manually."]
49767    #[inline]
49768    fn visit_mut_prop_name(&mut self, node: &mut PropName) {
49769        <PropName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49770    }
49771    #[doc = "Visit a node of type `PropOrSpread`.\n\nBy default, this method calls \
49772             [`PropOrSpread::visit_mut_children_with`]. If you want to recurse, you need to call \
49773             it manually."]
49774    #[inline]
49775    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread) {
49776        <PropOrSpread as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49777    }
49778    #[doc = "Visit a node of type `Vec < PropOrSpread >`.\n\nBy default, this method calls [`Vec < \
49779             PropOrSpread >::visit_mut_children_with`]. If you want to recurse, you need to call \
49780             it manually."]
49781    #[inline]
49782    fn visit_mut_prop_or_spreads(&mut self, node: &mut Vec<PropOrSpread>) {
49783        <Vec<PropOrSpread> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49784    }
49785    #[doc = "Visit a node of type `Regex`.\n\nBy default, this method calls \
49786             [`Regex::visit_mut_children_with`]. If you want to recurse, you need to call it \
49787             manually."]
49788    #[inline]
49789    fn visit_mut_regex(&mut self, node: &mut Regex) {
49790        <Regex as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49791    }
49792    #[doc = "Visit a node of type `RestPat`.\n\nBy default, this method calls \
49793             [`RestPat::visit_mut_children_with`]. If you want to recurse, you need to call it \
49794             manually."]
49795    #[inline]
49796    fn visit_mut_rest_pat(&mut self, node: &mut RestPat) {
49797        <RestPat as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49798    }
49799    #[doc = "Visit a node of type `ReturnStmt`.\n\nBy default, this method calls \
49800             [`ReturnStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
49801             manually."]
49802    #[inline]
49803    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt) {
49804        <ReturnStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49805    }
49806    #[doc = "Visit a node of type `Script`.\n\nBy default, this method calls \
49807             [`Script::visit_mut_children_with`]. If you want to recurse, you need to call it \
49808             manually."]
49809    #[inline]
49810    fn visit_mut_script(&mut self, node: &mut Script) {
49811        <Script as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49812    }
49813    #[doc = "Visit a node of type `SeqExpr`.\n\nBy default, this method calls \
49814             [`SeqExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
49815             manually."]
49816    #[inline]
49817    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr) {
49818        <SeqExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49819    }
49820    #[doc = "Visit a node of type `SetterProp`.\n\nBy default, this method calls \
49821             [`SetterProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
49822             manually."]
49823    #[inline]
49824    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp) {
49825        <SetterProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49826    }
49827    #[doc = "Visit a node of type `SimpleAssignTarget`.\n\nBy default, this method calls \
49828             [`SimpleAssignTarget::visit_mut_children_with`]. If you want to recurse, you need to \
49829             call it manually."]
49830    #[inline]
49831    fn visit_mut_simple_assign_target(&mut self, node: &mut SimpleAssignTarget) {
49832        <SimpleAssignTarget as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49833    }
49834    #[doc = "Visit a node of type `swc_common :: Span`.\n\nBy default, this method calls \
49835             [`swc_common :: Span::visit_mut_children_with`]. If you want to recurse, you need to \
49836             call it manually."]
49837    #[inline]
49838    fn visit_mut_span(&mut self, node: &mut swc_common::Span) {
49839        <swc_common::Span as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49840    }
49841    #[doc = "Visit a node of type `SpreadElement`.\n\nBy default, this method calls \
49842             [`SpreadElement::visit_mut_children_with`]. If you want to recurse, you need to call \
49843             it manually."]
49844    #[inline]
49845    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement) {
49846        <SpreadElement as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49847    }
49848    #[doc = "Visit a node of type `StaticBlock`.\n\nBy default, this method calls \
49849             [`StaticBlock::visit_mut_children_with`]. If you want to recurse, you need to call it \
49850             manually."]
49851    #[inline]
49852    fn visit_mut_static_block(&mut self, node: &mut StaticBlock) {
49853        <StaticBlock as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49854    }
49855    #[doc = "Visit a node of type `Stmt`.\n\nBy default, this method calls \
49856             [`Stmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
49857             manually."]
49858    #[inline]
49859    fn visit_mut_stmt(&mut self, node: &mut Stmt) {
49860        <Stmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49861    }
49862    #[doc = "Visit a node of type `Vec < Stmt >`.\n\nBy default, this method calls [`Vec < Stmt \
49863             >::visit_mut_children_with`]. If you want to recurse, you need to call it manually."]
49864    #[inline]
49865    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>) {
49866        <Vec<Stmt> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49867    }
49868    #[doc = "Visit a node of type `Str`.\n\nBy default, this method calls \
49869             [`Str::visit_mut_children_with`]. If you want to recurse, you need to call it \
49870             manually."]
49871    #[inline]
49872    fn visit_mut_str(&mut self, node: &mut Str) {
49873        <Str as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49874    }
49875    #[doc = "Visit a node of type `Super`.\n\nBy default, this method calls \
49876             [`Super::visit_mut_children_with`]. If you want to recurse, you need to call it \
49877             manually."]
49878    #[inline]
49879    fn visit_mut_super(&mut self, node: &mut Super) {
49880        <Super as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49881    }
49882    #[doc = "Visit a node of type `SuperProp`.\n\nBy default, this method calls \
49883             [`SuperProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
49884             manually."]
49885    #[inline]
49886    fn visit_mut_super_prop(&mut self, node: &mut SuperProp) {
49887        <SuperProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49888    }
49889    #[doc = "Visit a node of type `SuperPropExpr`.\n\nBy default, this method calls \
49890             [`SuperPropExpr::visit_mut_children_with`]. If you want to recurse, you need to call \
49891             it manually."]
49892    #[inline]
49893    fn visit_mut_super_prop_expr(&mut self, node: &mut SuperPropExpr) {
49894        <SuperPropExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49895    }
49896    #[doc = "Visit a node of type `SwitchCase`.\n\nBy default, this method calls \
49897             [`SwitchCase::visit_mut_children_with`]. If you want to recurse, you need to call it \
49898             manually."]
49899    #[inline]
49900    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase) {
49901        <SwitchCase as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49902    }
49903    #[doc = "Visit a node of type `Vec < SwitchCase >`.\n\nBy default, this method calls [`Vec < \
49904             SwitchCase >::visit_mut_children_with`]. If you want to recurse, you need to call it \
49905             manually."]
49906    #[inline]
49907    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>) {
49908        <Vec<SwitchCase> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49909    }
49910    #[doc = "Visit a node of type `SwitchStmt`.\n\nBy default, this method calls \
49911             [`SwitchStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
49912             manually."]
49913    #[inline]
49914    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt) {
49915        <SwitchStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49916    }
49917    #[doc = "Visit a node of type `swc_common :: SyntaxContext`.\n\nBy default, this method calls \
49918             [`swc_common :: SyntaxContext::visit_mut_children_with`]. If you want to recurse, you \
49919             need to call it manually."]
49920    #[inline]
49921    fn visit_mut_syntax_context(&mut self, node: &mut swc_common::SyntaxContext) {
49922        <swc_common::SyntaxContext as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49923    }
49924    #[doc = "Visit a node of type `TaggedTpl`.\n\nBy default, this method calls \
49925             [`TaggedTpl::visit_mut_children_with`]. If you want to recurse, you need to call it \
49926             manually."]
49927    #[inline]
49928    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl) {
49929        <TaggedTpl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49930    }
49931    #[doc = "Visit a node of type `ThisExpr`.\n\nBy default, this method calls \
49932             [`ThisExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
49933             manually."]
49934    #[inline]
49935    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr) {
49936        <ThisExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49937    }
49938    #[doc = "Visit a node of type `ThrowStmt`.\n\nBy default, this method calls \
49939             [`ThrowStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
49940             manually."]
49941    #[inline]
49942    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt) {
49943        <ThrowStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49944    }
49945    #[doc = "Visit a node of type `Tpl`.\n\nBy default, this method calls \
49946             [`Tpl::visit_mut_children_with`]. If you want to recurse, you need to call it \
49947             manually."]
49948    #[inline]
49949    fn visit_mut_tpl(&mut self, node: &mut Tpl) {
49950        <Tpl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49951    }
49952    #[doc = "Visit a node of type `TplElement`.\n\nBy default, this method calls \
49953             [`TplElement::visit_mut_children_with`]. If you want to recurse, you need to call it \
49954             manually."]
49955    #[inline]
49956    fn visit_mut_tpl_element(&mut self, node: &mut TplElement) {
49957        <TplElement as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49958    }
49959    #[doc = "Visit a node of type `Vec < TplElement >`.\n\nBy default, this method calls [`Vec < \
49960             TplElement >::visit_mut_children_with`]. If you want to recurse, you need to call it \
49961             manually."]
49962    #[inline]
49963    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>) {
49964        <Vec<TplElement> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49965    }
49966    #[doc = "Visit a node of type `TruePlusMinus`.\n\nBy default, this method calls \
49967             [`TruePlusMinus::visit_mut_children_with`]. If you want to recurse, you need to call \
49968             it manually."]
49969    #[inline]
49970    fn visit_mut_true_plus_minus(&mut self, node: &mut TruePlusMinus) {
49971        <TruePlusMinus as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49972    }
49973    #[doc = "Visit a node of type `TryStmt`.\n\nBy default, this method calls \
49974             [`TryStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
49975             manually."]
49976    #[inline]
49977    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt) {
49978        <TryStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49979    }
49980    #[doc = "Visit a node of type `TsArrayType`.\n\nBy default, this method calls \
49981             [`TsArrayType::visit_mut_children_with`]. If you want to recurse, you need to call it \
49982             manually."]
49983    #[inline]
49984    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType) {
49985        <TsArrayType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49986    }
49987    #[doc = "Visit a node of type `TsAsExpr`.\n\nBy default, this method calls \
49988             [`TsAsExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
49989             manually."]
49990    #[inline]
49991    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr) {
49992        <TsAsExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49993    }
49994    #[doc = "Visit a node of type `TsCallSignatureDecl`.\n\nBy default, this method calls \
49995             [`TsCallSignatureDecl::visit_mut_children_with`]. If you want to recurse, you need to \
49996             call it manually."]
49997    #[inline]
49998    fn visit_mut_ts_call_signature_decl(&mut self, node: &mut TsCallSignatureDecl) {
49999        <TsCallSignatureDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50000    }
50001    #[doc = "Visit a node of type `TsConditionalType`.\n\nBy default, this method calls \
50002             [`TsConditionalType::visit_mut_children_with`]. If you want to recurse, you need to \
50003             call it manually."]
50004    #[inline]
50005    fn visit_mut_ts_conditional_type(&mut self, node: &mut TsConditionalType) {
50006        <TsConditionalType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50007    }
50008    #[doc = "Visit a node of type `TsConstAssertion`.\n\nBy default, this method calls \
50009             [`TsConstAssertion::visit_mut_children_with`]. If you want to recurse, you need to \
50010             call it manually."]
50011    #[inline]
50012    fn visit_mut_ts_const_assertion(&mut self, node: &mut TsConstAssertion) {
50013        <TsConstAssertion as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50014    }
50015    #[doc = "Visit a node of type `TsConstructSignatureDecl`.\n\nBy default, this method calls \
50016             [`TsConstructSignatureDecl::visit_mut_children_with`]. If you want to recurse, you \
50017             need to call it manually."]
50018    #[inline]
50019    fn visit_mut_ts_construct_signature_decl(&mut self, node: &mut TsConstructSignatureDecl) {
50020        <TsConstructSignatureDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50021    }
50022    #[doc = "Visit a node of type `TsConstructorType`.\n\nBy default, this method calls \
50023             [`TsConstructorType::visit_mut_children_with`]. If you want to recurse, you need to \
50024             call it manually."]
50025    #[inline]
50026    fn visit_mut_ts_constructor_type(&mut self, node: &mut TsConstructorType) {
50027        <TsConstructorType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50028    }
50029    #[doc = "Visit a node of type `TsEntityName`.\n\nBy default, this method calls \
50030             [`TsEntityName::visit_mut_children_with`]. If you want to recurse, you need to call \
50031             it manually."]
50032    #[inline]
50033    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName) {
50034        <TsEntityName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50035    }
50036    #[doc = "Visit a node of type `TsEnumDecl`.\n\nBy default, this method calls \
50037             [`TsEnumDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
50038             manually."]
50039    #[inline]
50040    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl) {
50041        <TsEnumDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50042    }
50043    #[doc = "Visit a node of type `TsEnumMember`.\n\nBy default, this method calls \
50044             [`TsEnumMember::visit_mut_children_with`]. If you want to recurse, you need to call \
50045             it manually."]
50046    #[inline]
50047    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember) {
50048        <TsEnumMember as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50049    }
50050    #[doc = "Visit a node of type `TsEnumMemberId`.\n\nBy default, this method calls \
50051             [`TsEnumMemberId::visit_mut_children_with`]. If you want to recurse, you need to call \
50052             it manually."]
50053    #[inline]
50054    fn visit_mut_ts_enum_member_id(&mut self, node: &mut TsEnumMemberId) {
50055        <TsEnumMemberId as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50056    }
50057    #[doc = "Visit a node of type `Vec < TsEnumMember >`.\n\nBy default, this method calls [`Vec < \
50058             TsEnumMember >::visit_mut_children_with`]. If you want to recurse, you need to call \
50059             it manually."]
50060    #[inline]
50061    fn visit_mut_ts_enum_members(&mut self, node: &mut Vec<TsEnumMember>) {
50062        <Vec<TsEnumMember> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50063    }
50064    #[doc = "Visit a node of type `TsExportAssignment`.\n\nBy default, this method calls \
50065             [`TsExportAssignment::visit_mut_children_with`]. If you want to recurse, you need to \
50066             call it manually."]
50067    #[inline]
50068    fn visit_mut_ts_export_assignment(&mut self, node: &mut TsExportAssignment) {
50069        <TsExportAssignment as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50070    }
50071    #[doc = "Visit a node of type `TsExprWithTypeArgs`.\n\nBy default, this method calls \
50072             [`TsExprWithTypeArgs::visit_mut_children_with`]. If you want to recurse, you need to \
50073             call it manually."]
50074    #[inline]
50075    fn visit_mut_ts_expr_with_type_args(&mut self, node: &mut TsExprWithTypeArgs) {
50076        <TsExprWithTypeArgs as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50077    }
50078    #[doc = "Visit a node of type `Vec < TsExprWithTypeArgs >`.\n\nBy default, this method calls \
50079             [`Vec < TsExprWithTypeArgs >::visit_mut_children_with`]. If you want to recurse, you \
50080             need to call it manually."]
50081    #[inline]
50082    fn visit_mut_ts_expr_with_type_argss(&mut self, node: &mut Vec<TsExprWithTypeArgs>) {
50083        <Vec<TsExprWithTypeArgs> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50084    }
50085    #[doc = "Visit a node of type `TsExternalModuleRef`.\n\nBy default, this method calls \
50086             [`TsExternalModuleRef::visit_mut_children_with`]. If you want to recurse, you need to \
50087             call it manually."]
50088    #[inline]
50089    fn visit_mut_ts_external_module_ref(&mut self, node: &mut TsExternalModuleRef) {
50090        <TsExternalModuleRef as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50091    }
50092    #[doc = "Visit a node of type `TsFnOrConstructorType`.\n\nBy default, this method calls \
50093             [`TsFnOrConstructorType::visit_mut_children_with`]. If you want to recurse, you need \
50094             to call it manually."]
50095    #[inline]
50096    fn visit_mut_ts_fn_or_constructor_type(&mut self, node: &mut TsFnOrConstructorType) {
50097        <TsFnOrConstructorType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50098    }
50099    #[doc = "Visit a node of type `TsFnParam`.\n\nBy default, this method calls \
50100             [`TsFnParam::visit_mut_children_with`]. If you want to recurse, you need to call it \
50101             manually."]
50102    #[inline]
50103    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam) {
50104        <TsFnParam as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50105    }
50106    #[doc = "Visit a node of type `Vec < TsFnParam >`.\n\nBy default, this method calls [`Vec < \
50107             TsFnParam >::visit_mut_children_with`]. If you want to recurse, you need to call it \
50108             manually."]
50109    #[inline]
50110    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>) {
50111        <Vec<TsFnParam> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50112    }
50113    #[doc = "Visit a node of type `TsFnType`.\n\nBy default, this method calls \
50114             [`TsFnType::visit_mut_children_with`]. If you want to recurse, you need to call it \
50115             manually."]
50116    #[inline]
50117    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType) {
50118        <TsFnType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50119    }
50120    #[doc = "Visit a node of type `TsGetterSignature`.\n\nBy default, this method calls \
50121             [`TsGetterSignature::visit_mut_children_with`]. If you want to recurse, you need to \
50122             call it manually."]
50123    #[inline]
50124    fn visit_mut_ts_getter_signature(&mut self, node: &mut TsGetterSignature) {
50125        <TsGetterSignature as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50126    }
50127    #[doc = "Visit a node of type `TsImportCallOptions`.\n\nBy default, this method calls \
50128             [`TsImportCallOptions::visit_mut_children_with`]. If you want to recurse, you need to \
50129             call it manually."]
50130    #[inline]
50131    fn visit_mut_ts_import_call_options(&mut self, node: &mut TsImportCallOptions) {
50132        <TsImportCallOptions as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50133    }
50134    #[doc = "Visit a node of type `TsImportEqualsDecl`.\n\nBy default, this method calls \
50135             [`TsImportEqualsDecl::visit_mut_children_with`]. If you want to recurse, you need to \
50136             call it manually."]
50137    #[inline]
50138    fn visit_mut_ts_import_equals_decl(&mut self, node: &mut TsImportEqualsDecl) {
50139        <TsImportEqualsDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50140    }
50141    #[doc = "Visit a node of type `TsImportType`.\n\nBy default, this method calls \
50142             [`TsImportType::visit_mut_children_with`]. If you want to recurse, you need to call \
50143             it manually."]
50144    #[inline]
50145    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType) {
50146        <TsImportType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50147    }
50148    #[doc = "Visit a node of type `TsIndexSignature`.\n\nBy default, this method calls \
50149             [`TsIndexSignature::visit_mut_children_with`]. If you want to recurse, you need to \
50150             call it manually."]
50151    #[inline]
50152    fn visit_mut_ts_index_signature(&mut self, node: &mut TsIndexSignature) {
50153        <TsIndexSignature as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50154    }
50155    #[doc = "Visit a node of type `TsIndexedAccessType`.\n\nBy default, this method calls \
50156             [`TsIndexedAccessType::visit_mut_children_with`]. If you want to recurse, you need to \
50157             call it manually."]
50158    #[inline]
50159    fn visit_mut_ts_indexed_access_type(&mut self, node: &mut TsIndexedAccessType) {
50160        <TsIndexedAccessType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50161    }
50162    #[doc = "Visit a node of type `TsInferType`.\n\nBy default, this method calls \
50163             [`TsInferType::visit_mut_children_with`]. If you want to recurse, you need to call it \
50164             manually."]
50165    #[inline]
50166    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType) {
50167        <TsInferType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50168    }
50169    #[doc = "Visit a node of type `TsInstantiation`.\n\nBy default, this method calls \
50170             [`TsInstantiation::visit_mut_children_with`]. If you want to recurse, you need to \
50171             call it manually."]
50172    #[inline]
50173    fn visit_mut_ts_instantiation(&mut self, node: &mut TsInstantiation) {
50174        <TsInstantiation as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50175    }
50176    #[doc = "Visit a node of type `TsInterfaceBody`.\n\nBy default, this method calls \
50177             [`TsInterfaceBody::visit_mut_children_with`]. If you want to recurse, you need to \
50178             call it manually."]
50179    #[inline]
50180    fn visit_mut_ts_interface_body(&mut self, node: &mut TsInterfaceBody) {
50181        <TsInterfaceBody as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50182    }
50183    #[doc = "Visit a node of type `TsInterfaceDecl`.\n\nBy default, this method calls \
50184             [`TsInterfaceDecl::visit_mut_children_with`]. If you want to recurse, you need to \
50185             call it manually."]
50186    #[inline]
50187    fn visit_mut_ts_interface_decl(&mut self, node: &mut TsInterfaceDecl) {
50188        <TsInterfaceDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50189    }
50190    #[doc = "Visit a node of type `TsIntersectionType`.\n\nBy default, this method calls \
50191             [`TsIntersectionType::visit_mut_children_with`]. If you want to recurse, you need to \
50192             call it manually."]
50193    #[inline]
50194    fn visit_mut_ts_intersection_type(&mut self, node: &mut TsIntersectionType) {
50195        <TsIntersectionType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50196    }
50197    #[doc = "Visit a node of type `TsKeywordType`.\n\nBy default, this method calls \
50198             [`TsKeywordType::visit_mut_children_with`]. If you want to recurse, you need to call \
50199             it manually."]
50200    #[inline]
50201    fn visit_mut_ts_keyword_type(&mut self, node: &mut TsKeywordType) {
50202        <TsKeywordType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50203    }
50204    #[doc = "Visit a node of type `TsKeywordTypeKind`.\n\nBy default, this method calls \
50205             [`TsKeywordTypeKind::visit_mut_children_with`]. If you want to recurse, you need to \
50206             call it manually."]
50207    #[inline]
50208    fn visit_mut_ts_keyword_type_kind(&mut self, node: &mut TsKeywordTypeKind) {
50209        <TsKeywordTypeKind as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50210    }
50211    #[doc = "Visit a node of type `TsLit`.\n\nBy default, this method calls \
50212             [`TsLit::visit_mut_children_with`]. If you want to recurse, you need to call it \
50213             manually."]
50214    #[inline]
50215    fn visit_mut_ts_lit(&mut self, node: &mut TsLit) {
50216        <TsLit as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50217    }
50218    #[doc = "Visit a node of type `TsLitType`.\n\nBy default, this method calls \
50219             [`TsLitType::visit_mut_children_with`]. If you want to recurse, you need to call it \
50220             manually."]
50221    #[inline]
50222    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType) {
50223        <TsLitType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50224    }
50225    #[doc = "Visit a node of type `TsMappedType`.\n\nBy default, this method calls \
50226             [`TsMappedType::visit_mut_children_with`]. If you want to recurse, you need to call \
50227             it manually."]
50228    #[inline]
50229    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType) {
50230        <TsMappedType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50231    }
50232    #[doc = "Visit a node of type `TsMethodSignature`.\n\nBy default, this method calls \
50233             [`TsMethodSignature::visit_mut_children_with`]. If you want to recurse, you need to \
50234             call it manually."]
50235    #[inline]
50236    fn visit_mut_ts_method_signature(&mut self, node: &mut TsMethodSignature) {
50237        <TsMethodSignature as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50238    }
50239    #[doc = "Visit a node of type `TsModuleBlock`.\n\nBy default, this method calls \
50240             [`TsModuleBlock::visit_mut_children_with`]. If you want to recurse, you need to call \
50241             it manually."]
50242    #[inline]
50243    fn visit_mut_ts_module_block(&mut self, node: &mut TsModuleBlock) {
50244        <TsModuleBlock as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50245    }
50246    #[doc = "Visit a node of type `TsModuleDecl`.\n\nBy default, this method calls \
50247             [`TsModuleDecl::visit_mut_children_with`]. If you want to recurse, you need to call \
50248             it manually."]
50249    #[inline]
50250    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl) {
50251        <TsModuleDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50252    }
50253    #[doc = "Visit a node of type `TsModuleName`.\n\nBy default, this method calls \
50254             [`TsModuleName::visit_mut_children_with`]. If you want to recurse, you need to call \
50255             it manually."]
50256    #[inline]
50257    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName) {
50258        <TsModuleName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50259    }
50260    #[doc = "Visit a node of type `TsModuleRef`.\n\nBy default, this method calls \
50261             [`TsModuleRef::visit_mut_children_with`]. If you want to recurse, you need to call it \
50262             manually."]
50263    #[inline]
50264    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef) {
50265        <TsModuleRef as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50266    }
50267    #[doc = "Visit a node of type `TsNamespaceBody`.\n\nBy default, this method calls \
50268             [`TsNamespaceBody::visit_mut_children_with`]. If you want to recurse, you need to \
50269             call it manually."]
50270    #[inline]
50271    fn visit_mut_ts_namespace_body(&mut self, node: &mut TsNamespaceBody) {
50272        <TsNamespaceBody as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50273    }
50274    #[doc = "Visit a node of type `TsNamespaceDecl`.\n\nBy default, this method calls \
50275             [`TsNamespaceDecl::visit_mut_children_with`]. If you want to recurse, you need to \
50276             call it manually."]
50277    #[inline]
50278    fn visit_mut_ts_namespace_decl(&mut self, node: &mut TsNamespaceDecl) {
50279        <TsNamespaceDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50280    }
50281    #[doc = "Visit a node of type `TsNamespaceExportDecl`.\n\nBy default, this method calls \
50282             [`TsNamespaceExportDecl::visit_mut_children_with`]. If you want to recurse, you need \
50283             to call it manually."]
50284    #[inline]
50285    fn visit_mut_ts_namespace_export_decl(&mut self, node: &mut TsNamespaceExportDecl) {
50286        <TsNamespaceExportDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50287    }
50288    #[doc = "Visit a node of type `TsNonNullExpr`.\n\nBy default, this method calls \
50289             [`TsNonNullExpr::visit_mut_children_with`]. If you want to recurse, you need to call \
50290             it manually."]
50291    #[inline]
50292    fn visit_mut_ts_non_null_expr(&mut self, node: &mut TsNonNullExpr) {
50293        <TsNonNullExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50294    }
50295    #[doc = "Visit a node of type `TsOptionalType`.\n\nBy default, this method calls \
50296             [`TsOptionalType::visit_mut_children_with`]. If you want to recurse, you need to call \
50297             it manually."]
50298    #[inline]
50299    fn visit_mut_ts_optional_type(&mut self, node: &mut TsOptionalType) {
50300        <TsOptionalType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50301    }
50302    #[doc = "Visit a node of type `TsParamProp`.\n\nBy default, this method calls \
50303             [`TsParamProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
50304             manually."]
50305    #[inline]
50306    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp) {
50307        <TsParamProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50308    }
50309    #[doc = "Visit a node of type `TsParamPropParam`.\n\nBy default, this method calls \
50310             [`TsParamPropParam::visit_mut_children_with`]. If you want to recurse, you need to \
50311             call it manually."]
50312    #[inline]
50313    fn visit_mut_ts_param_prop_param(&mut self, node: &mut TsParamPropParam) {
50314        <TsParamPropParam as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50315    }
50316    #[doc = "Visit a node of type `TsParenthesizedType`.\n\nBy default, this method calls \
50317             [`TsParenthesizedType::visit_mut_children_with`]. If you want to recurse, you need to \
50318             call it manually."]
50319    #[inline]
50320    fn visit_mut_ts_parenthesized_type(&mut self, node: &mut TsParenthesizedType) {
50321        <TsParenthesizedType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50322    }
50323    #[doc = "Visit a node of type `TsPropertySignature`.\n\nBy default, this method calls \
50324             [`TsPropertySignature::visit_mut_children_with`]. If you want to recurse, you need to \
50325             call it manually."]
50326    #[inline]
50327    fn visit_mut_ts_property_signature(&mut self, node: &mut TsPropertySignature) {
50328        <TsPropertySignature as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50329    }
50330    #[doc = "Visit a node of type `TsQualifiedName`.\n\nBy default, this method calls \
50331             [`TsQualifiedName::visit_mut_children_with`]. If you want to recurse, you need to \
50332             call it manually."]
50333    #[inline]
50334    fn visit_mut_ts_qualified_name(&mut self, node: &mut TsQualifiedName) {
50335        <TsQualifiedName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50336    }
50337    #[doc = "Visit a node of type `TsRestType`.\n\nBy default, this method calls \
50338             [`TsRestType::visit_mut_children_with`]. If you want to recurse, you need to call it \
50339             manually."]
50340    #[inline]
50341    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType) {
50342        <TsRestType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50343    }
50344    #[doc = "Visit a node of type `TsSatisfiesExpr`.\n\nBy default, this method calls \
50345             [`TsSatisfiesExpr::visit_mut_children_with`]. If you want to recurse, you need to \
50346             call it manually."]
50347    #[inline]
50348    fn visit_mut_ts_satisfies_expr(&mut self, node: &mut TsSatisfiesExpr) {
50349        <TsSatisfiesExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50350    }
50351    #[doc = "Visit a node of type `TsSetterSignature`.\n\nBy default, this method calls \
50352             [`TsSetterSignature::visit_mut_children_with`]. If you want to recurse, you need to \
50353             call it manually."]
50354    #[inline]
50355    fn visit_mut_ts_setter_signature(&mut self, node: &mut TsSetterSignature) {
50356        <TsSetterSignature as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50357    }
50358    #[doc = "Visit a node of type `TsThisType`.\n\nBy default, this method calls \
50359             [`TsThisType::visit_mut_children_with`]. If you want to recurse, you need to call it \
50360             manually."]
50361    #[inline]
50362    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType) {
50363        <TsThisType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50364    }
50365    #[doc = "Visit a node of type `TsThisTypeOrIdent`.\n\nBy default, this method calls \
50366             [`TsThisTypeOrIdent::visit_mut_children_with`]. If you want to recurse, you need to \
50367             call it manually."]
50368    #[inline]
50369    fn visit_mut_ts_this_type_or_ident(&mut self, node: &mut TsThisTypeOrIdent) {
50370        <TsThisTypeOrIdent as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50371    }
50372    #[doc = "Visit a node of type `TsTplLitType`.\n\nBy default, this method calls \
50373             [`TsTplLitType::visit_mut_children_with`]. If you want to recurse, you need to call \
50374             it manually."]
50375    #[inline]
50376    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType) {
50377        <TsTplLitType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50378    }
50379    #[doc = "Visit a node of type `TsTupleElement`.\n\nBy default, this method calls \
50380             [`TsTupleElement::visit_mut_children_with`]. If you want to recurse, you need to call \
50381             it manually."]
50382    #[inline]
50383    fn visit_mut_ts_tuple_element(&mut self, node: &mut TsTupleElement) {
50384        <TsTupleElement as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50385    }
50386    #[doc = "Visit a node of type `Vec < TsTupleElement >`.\n\nBy default, this method calls [`Vec \
50387             < TsTupleElement >::visit_mut_children_with`]. If you want to recurse, you need to \
50388             call it manually."]
50389    #[inline]
50390    fn visit_mut_ts_tuple_elements(&mut self, node: &mut Vec<TsTupleElement>) {
50391        <Vec<TsTupleElement> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50392    }
50393    #[doc = "Visit a node of type `TsTupleType`.\n\nBy default, this method calls \
50394             [`TsTupleType::visit_mut_children_with`]. If you want to recurse, you need to call it \
50395             manually."]
50396    #[inline]
50397    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType) {
50398        <TsTupleType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50399    }
50400    #[doc = "Visit a node of type `TsType`.\n\nBy default, this method calls \
50401             [`TsType::visit_mut_children_with`]. If you want to recurse, you need to call it \
50402             manually."]
50403    #[inline]
50404    fn visit_mut_ts_type(&mut self, node: &mut TsType) {
50405        <TsType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50406    }
50407    #[doc = "Visit a node of type `TsTypeAliasDecl`.\n\nBy default, this method calls \
50408             [`TsTypeAliasDecl::visit_mut_children_with`]. If you want to recurse, you need to \
50409             call it manually."]
50410    #[inline]
50411    fn visit_mut_ts_type_alias_decl(&mut self, node: &mut TsTypeAliasDecl) {
50412        <TsTypeAliasDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50413    }
50414    #[doc = "Visit a node of type `TsTypeAnn`.\n\nBy default, this method calls \
50415             [`TsTypeAnn::visit_mut_children_with`]. If you want to recurse, you need to call it \
50416             manually."]
50417    #[inline]
50418    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn) {
50419        <TsTypeAnn as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50420    }
50421    #[doc = "Visit a node of type `TsTypeAssertion`.\n\nBy default, this method calls \
50422             [`TsTypeAssertion::visit_mut_children_with`]. If you want to recurse, you need to \
50423             call it manually."]
50424    #[inline]
50425    fn visit_mut_ts_type_assertion(&mut self, node: &mut TsTypeAssertion) {
50426        <TsTypeAssertion as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50427    }
50428    #[doc = "Visit a node of type `TsTypeElement`.\n\nBy default, this method calls \
50429             [`TsTypeElement::visit_mut_children_with`]. If you want to recurse, you need to call \
50430             it manually."]
50431    #[inline]
50432    fn visit_mut_ts_type_element(&mut self, node: &mut TsTypeElement) {
50433        <TsTypeElement as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50434    }
50435    #[doc = "Visit a node of type `Vec < TsTypeElement >`.\n\nBy default, this method calls [`Vec \
50436             < TsTypeElement >::visit_mut_children_with`]. If you want to recurse, you need to \
50437             call it manually."]
50438    #[inline]
50439    fn visit_mut_ts_type_elements(&mut self, node: &mut Vec<TsTypeElement>) {
50440        <Vec<TsTypeElement> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50441    }
50442    #[doc = "Visit a node of type `TsTypeLit`.\n\nBy default, this method calls \
50443             [`TsTypeLit::visit_mut_children_with`]. If you want to recurse, you need to call it \
50444             manually."]
50445    #[inline]
50446    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit) {
50447        <TsTypeLit as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50448    }
50449    #[doc = "Visit a node of type `TsTypeOperator`.\n\nBy default, this method calls \
50450             [`TsTypeOperator::visit_mut_children_with`]. If you want to recurse, you need to call \
50451             it manually."]
50452    #[inline]
50453    fn visit_mut_ts_type_operator(&mut self, node: &mut TsTypeOperator) {
50454        <TsTypeOperator as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50455    }
50456    #[doc = "Visit a node of type `TsTypeOperatorOp`.\n\nBy default, this method calls \
50457             [`TsTypeOperatorOp::visit_mut_children_with`]. If you want to recurse, you need to \
50458             call it manually."]
50459    #[inline]
50460    fn visit_mut_ts_type_operator_op(&mut self, node: &mut TsTypeOperatorOp) {
50461        <TsTypeOperatorOp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50462    }
50463    #[doc = "Visit a node of type `TsTypeParam`.\n\nBy default, this method calls \
50464             [`TsTypeParam::visit_mut_children_with`]. If you want to recurse, you need to call it \
50465             manually."]
50466    #[inline]
50467    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam) {
50468        <TsTypeParam as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50469    }
50470    #[doc = "Visit a node of type `TsTypeParamDecl`.\n\nBy default, this method calls \
50471             [`TsTypeParamDecl::visit_mut_children_with`]. If you want to recurse, you need to \
50472             call it manually."]
50473    #[inline]
50474    fn visit_mut_ts_type_param_decl(&mut self, node: &mut TsTypeParamDecl) {
50475        <TsTypeParamDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50476    }
50477    #[doc = "Visit a node of type `TsTypeParamInstantiation`.\n\nBy default, this method calls \
50478             [`TsTypeParamInstantiation::visit_mut_children_with`]. If you want to recurse, you \
50479             need to call it manually."]
50480    #[inline]
50481    fn visit_mut_ts_type_param_instantiation(&mut self, node: &mut TsTypeParamInstantiation) {
50482        <TsTypeParamInstantiation as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50483    }
50484    #[doc = "Visit a node of type `Vec < TsTypeParam >`.\n\nBy default, this method calls [`Vec < \
50485             TsTypeParam >::visit_mut_children_with`]. If you want to recurse, you need to call it \
50486             manually."]
50487    #[inline]
50488    fn visit_mut_ts_type_params(&mut self, node: &mut Vec<TsTypeParam>) {
50489        <Vec<TsTypeParam> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50490    }
50491    #[doc = "Visit a node of type `TsTypePredicate`.\n\nBy default, this method calls \
50492             [`TsTypePredicate::visit_mut_children_with`]. If you want to recurse, you need to \
50493             call it manually."]
50494    #[inline]
50495    fn visit_mut_ts_type_predicate(&mut self, node: &mut TsTypePredicate) {
50496        <TsTypePredicate as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50497    }
50498    #[doc = "Visit a node of type `TsTypeQuery`.\n\nBy default, this method calls \
50499             [`TsTypeQuery::visit_mut_children_with`]. If you want to recurse, you need to call it \
50500             manually."]
50501    #[inline]
50502    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery) {
50503        <TsTypeQuery as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50504    }
50505    #[doc = "Visit a node of type `TsTypeQueryExpr`.\n\nBy default, this method calls \
50506             [`TsTypeQueryExpr::visit_mut_children_with`]. If you want to recurse, you need to \
50507             call it manually."]
50508    #[inline]
50509    fn visit_mut_ts_type_query_expr(&mut self, node: &mut TsTypeQueryExpr) {
50510        <TsTypeQueryExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50511    }
50512    #[doc = "Visit a node of type `TsTypeRef`.\n\nBy default, this method calls \
50513             [`TsTypeRef::visit_mut_children_with`]. If you want to recurse, you need to call it \
50514             manually."]
50515    #[inline]
50516    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef) {
50517        <TsTypeRef as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50518    }
50519    #[doc = "Visit a node of type `Vec < Box < TsType > >`.\n\nBy default, this method calls [`Vec \
50520             < Box < TsType > >::visit_mut_children_with`]. If you want to recurse, you need to \
50521             call it manually."]
50522    #[inline]
50523    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>) {
50524        <Vec<Box<TsType>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50525    }
50526    #[doc = "Visit a node of type `TsUnionOrIntersectionType`.\n\nBy default, this method calls \
50527             [`TsUnionOrIntersectionType::visit_mut_children_with`]. If you want to recurse, you \
50528             need to call it manually."]
50529    #[inline]
50530    fn visit_mut_ts_union_or_intersection_type(&mut self, node: &mut TsUnionOrIntersectionType) {
50531        <TsUnionOrIntersectionType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50532    }
50533    #[doc = "Visit a node of type `TsUnionType`.\n\nBy default, this method calls \
50534             [`TsUnionType::visit_mut_children_with`]. If you want to recurse, you need to call it \
50535             manually."]
50536    #[inline]
50537    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType) {
50538        <TsUnionType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50539    }
50540    #[doc = "Visit a node of type `UnaryExpr`.\n\nBy default, this method calls \
50541             [`UnaryExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
50542             manually."]
50543    #[inline]
50544    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr) {
50545        <UnaryExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50546    }
50547    #[doc = "Visit a node of type `UnaryOp`.\n\nBy default, this method calls \
50548             [`UnaryOp::visit_mut_children_with`]. If you want to recurse, you need to call it \
50549             manually."]
50550    #[inline]
50551    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp) {
50552        <UnaryOp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50553    }
50554    #[doc = "Visit a node of type `UpdateExpr`.\n\nBy default, this method calls \
50555             [`UpdateExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
50556             manually."]
50557    #[inline]
50558    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr) {
50559        <UpdateExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50560    }
50561    #[doc = "Visit a node of type `UpdateOp`.\n\nBy default, this method calls \
50562             [`UpdateOp::visit_mut_children_with`]. If you want to recurse, you need to call it \
50563             manually."]
50564    #[inline]
50565    fn visit_mut_update_op(&mut self, node: &mut UpdateOp) {
50566        <UpdateOp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50567    }
50568    #[doc = "Visit a node of type `UsingDecl`.\n\nBy default, this method calls \
50569             [`UsingDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
50570             manually."]
50571    #[inline]
50572    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl) {
50573        <UsingDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50574    }
50575    #[doc = "Visit a node of type `VarDecl`.\n\nBy default, this method calls \
50576             [`VarDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
50577             manually."]
50578    #[inline]
50579    fn visit_mut_var_decl(&mut self, node: &mut VarDecl) {
50580        <VarDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50581    }
50582    #[doc = "Visit a node of type `VarDeclKind`.\n\nBy default, this method calls \
50583             [`VarDeclKind::visit_mut_children_with`]. If you want to recurse, you need to call it \
50584             manually."]
50585    #[inline]
50586    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind) {
50587        <VarDeclKind as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50588    }
50589    #[doc = "Visit a node of type `VarDeclOrExpr`.\n\nBy default, this method calls \
50590             [`VarDeclOrExpr::visit_mut_children_with`]. If you want to recurse, you need to call \
50591             it manually."]
50592    #[inline]
50593    fn visit_mut_var_decl_or_expr(&mut self, node: &mut VarDeclOrExpr) {
50594        <VarDeclOrExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50595    }
50596    #[doc = "Visit a node of type `VarDeclarator`.\n\nBy default, this method calls \
50597             [`VarDeclarator::visit_mut_children_with`]. If you want to recurse, you need to call \
50598             it manually."]
50599    #[inline]
50600    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator) {
50601        <VarDeclarator as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50602    }
50603    #[doc = "Visit a node of type `Vec < VarDeclarator >`.\n\nBy default, this method calls [`Vec \
50604             < VarDeclarator >::visit_mut_children_with`]. If you want to recurse, you need to \
50605             call it manually."]
50606    #[inline]
50607    fn visit_mut_var_declarators(&mut self, node: &mut Vec<VarDeclarator>) {
50608        <Vec<VarDeclarator> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50609    }
50610    #[doc = "Visit a node of type `WhileStmt`.\n\nBy default, this method calls \
50611             [`WhileStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
50612             manually."]
50613    #[inline]
50614    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt) {
50615        <WhileStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50616    }
50617    #[doc = "Visit a node of type `WithStmt`.\n\nBy default, this method calls \
50618             [`WithStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
50619             manually."]
50620    #[inline]
50621    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt) {
50622        <WithStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50623    }
50624    #[doc = "Visit a node of type `YieldExpr`.\n\nBy default, this method calls \
50625             [`YieldExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
50626             manually."]
50627    #[inline]
50628    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr) {
50629        <YieldExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50630    }
50631}
50632impl<V> VisitMut for &mut V
50633where
50634    V: ?Sized + VisitMut,
50635{
50636    #[inline]
50637    fn visit_mut_accessibility(&mut self, node: &mut Accessibility) {
50638        <V as VisitMut>::visit_mut_accessibility(&mut **self, node)
50639    }
50640
50641    #[inline]
50642    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit) {
50643        <V as VisitMut>::visit_mut_array_lit(&mut **self, node)
50644    }
50645
50646    #[inline]
50647    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat) {
50648        <V as VisitMut>::visit_mut_array_pat(&mut **self, node)
50649    }
50650
50651    #[inline]
50652    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr) {
50653        <V as VisitMut>::visit_mut_arrow_expr(&mut **self, node)
50654    }
50655
50656    #[inline]
50657    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr) {
50658        <V as VisitMut>::visit_mut_assign_expr(&mut **self, node)
50659    }
50660
50661    #[inline]
50662    fn visit_mut_assign_op(&mut self, node: &mut AssignOp) {
50663        <V as VisitMut>::visit_mut_assign_op(&mut **self, node)
50664    }
50665
50666    #[inline]
50667    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat) {
50668        <V as VisitMut>::visit_mut_assign_pat(&mut **self, node)
50669    }
50670
50671    #[inline]
50672    fn visit_mut_assign_pat_prop(&mut self, node: &mut AssignPatProp) {
50673        <V as VisitMut>::visit_mut_assign_pat_prop(&mut **self, node)
50674    }
50675
50676    #[inline]
50677    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp) {
50678        <V as VisitMut>::visit_mut_assign_prop(&mut **self, node)
50679    }
50680
50681    #[inline]
50682    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget) {
50683        <V as VisitMut>::visit_mut_assign_target(&mut **self, node)
50684    }
50685
50686    #[inline]
50687    fn visit_mut_assign_target_pat(&mut self, node: &mut AssignTargetPat) {
50688        <V as VisitMut>::visit_mut_assign_target_pat(&mut **self, node)
50689    }
50690
50691    #[inline]
50692    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom) {
50693        <V as VisitMut>::visit_mut_atom(&mut **self, node)
50694    }
50695
50696    #[inline]
50697    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor) {
50698        <V as VisitMut>::visit_mut_auto_accessor(&mut **self, node)
50699    }
50700
50701    #[inline]
50702    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr) {
50703        <V as VisitMut>::visit_mut_await_expr(&mut **self, node)
50704    }
50705
50706    #[inline]
50707    fn visit_mut_big_int(&mut self, node: &mut BigInt) {
50708        <V as VisitMut>::visit_mut_big_int(&mut **self, node)
50709    }
50710
50711    #[inline]
50712    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue) {
50713        <V as VisitMut>::visit_mut_big_int_value(&mut **self, node)
50714    }
50715
50716    #[inline]
50717    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr) {
50718        <V as VisitMut>::visit_mut_bin_expr(&mut **self, node)
50719    }
50720
50721    #[inline]
50722    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp) {
50723        <V as VisitMut>::visit_mut_binary_op(&mut **self, node)
50724    }
50725
50726    #[inline]
50727    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent) {
50728        <V as VisitMut>::visit_mut_binding_ident(&mut **self, node)
50729    }
50730
50731    #[inline]
50732    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt) {
50733        <V as VisitMut>::visit_mut_block_stmt(&mut **self, node)
50734    }
50735
50736    #[inline]
50737    fn visit_mut_block_stmt_or_expr(&mut self, node: &mut BlockStmtOrExpr) {
50738        <V as VisitMut>::visit_mut_block_stmt_or_expr(&mut **self, node)
50739    }
50740
50741    #[inline]
50742    fn visit_mut_bool(&mut self, node: &mut Bool) {
50743        <V as VisitMut>::visit_mut_bool(&mut **self, node)
50744    }
50745
50746    #[inline]
50747    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt) {
50748        <V as VisitMut>::visit_mut_break_stmt(&mut **self, node)
50749    }
50750
50751    #[inline]
50752    fn visit_mut_call_expr(&mut self, node: &mut CallExpr) {
50753        <V as VisitMut>::visit_mut_call_expr(&mut **self, node)
50754    }
50755
50756    #[inline]
50757    fn visit_mut_callee(&mut self, node: &mut Callee) {
50758        <V as VisitMut>::visit_mut_callee(&mut **self, node)
50759    }
50760
50761    #[inline]
50762    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause) {
50763        <V as VisitMut>::visit_mut_catch_clause(&mut **self, node)
50764    }
50765
50766    #[inline]
50767    fn visit_mut_class(&mut self, node: &mut Class) {
50768        <V as VisitMut>::visit_mut_class(&mut **self, node)
50769    }
50770
50771    #[inline]
50772    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl) {
50773        <V as VisitMut>::visit_mut_class_decl(&mut **self, node)
50774    }
50775
50776    #[inline]
50777    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr) {
50778        <V as VisitMut>::visit_mut_class_expr(&mut **self, node)
50779    }
50780
50781    #[inline]
50782    fn visit_mut_class_member(&mut self, node: &mut ClassMember) {
50783        <V as VisitMut>::visit_mut_class_member(&mut **self, node)
50784    }
50785
50786    #[inline]
50787    fn visit_mut_class_members(&mut self, node: &mut Vec<ClassMember>) {
50788        <V as VisitMut>::visit_mut_class_members(&mut **self, node)
50789    }
50790
50791    #[inline]
50792    fn visit_mut_class_method(&mut self, node: &mut ClassMethod) {
50793        <V as VisitMut>::visit_mut_class_method(&mut **self, node)
50794    }
50795
50796    #[inline]
50797    fn visit_mut_class_prop(&mut self, node: &mut ClassProp) {
50798        <V as VisitMut>::visit_mut_class_prop(&mut **self, node)
50799    }
50800
50801    #[inline]
50802    fn visit_mut_computed_prop_name(&mut self, node: &mut ComputedPropName) {
50803        <V as VisitMut>::visit_mut_computed_prop_name(&mut **self, node)
50804    }
50805
50806    #[inline]
50807    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr) {
50808        <V as VisitMut>::visit_mut_cond_expr(&mut **self, node)
50809    }
50810
50811    #[inline]
50812    fn visit_mut_constructor(&mut self, node: &mut Constructor) {
50813        <V as VisitMut>::visit_mut_constructor(&mut **self, node)
50814    }
50815
50816    #[inline]
50817    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt) {
50818        <V as VisitMut>::visit_mut_continue_stmt(&mut **self, node)
50819    }
50820
50821    #[inline]
50822    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt) {
50823        <V as VisitMut>::visit_mut_debugger_stmt(&mut **self, node)
50824    }
50825
50826    #[inline]
50827    fn visit_mut_decl(&mut self, node: &mut Decl) {
50828        <V as VisitMut>::visit_mut_decl(&mut **self, node)
50829    }
50830
50831    #[inline]
50832    fn visit_mut_decorator(&mut self, node: &mut Decorator) {
50833        <V as VisitMut>::visit_mut_decorator(&mut **self, node)
50834    }
50835
50836    #[inline]
50837    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>) {
50838        <V as VisitMut>::visit_mut_decorators(&mut **self, node)
50839    }
50840
50841    #[inline]
50842    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl) {
50843        <V as VisitMut>::visit_mut_default_decl(&mut **self, node)
50844    }
50845
50846    #[inline]
50847    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt) {
50848        <V as VisitMut>::visit_mut_do_while_stmt(&mut **self, node)
50849    }
50850
50851    #[inline]
50852    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt) {
50853        <V as VisitMut>::visit_mut_empty_stmt(&mut **self, node)
50854    }
50855
50856    #[inline]
50857    fn visit_mut_export_all(&mut self, node: &mut ExportAll) {
50858        <V as VisitMut>::visit_mut_export_all(&mut **self, node)
50859    }
50860
50861    #[inline]
50862    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl) {
50863        <V as VisitMut>::visit_mut_export_decl(&mut **self, node)
50864    }
50865
50866    #[inline]
50867    fn visit_mut_export_default_decl(&mut self, node: &mut ExportDefaultDecl) {
50868        <V as VisitMut>::visit_mut_export_default_decl(&mut **self, node)
50869    }
50870
50871    #[inline]
50872    fn visit_mut_export_default_expr(&mut self, node: &mut ExportDefaultExpr) {
50873        <V as VisitMut>::visit_mut_export_default_expr(&mut **self, node)
50874    }
50875
50876    #[inline]
50877    fn visit_mut_export_default_specifier(&mut self, node: &mut ExportDefaultSpecifier) {
50878        <V as VisitMut>::visit_mut_export_default_specifier(&mut **self, node)
50879    }
50880
50881    #[inline]
50882    fn visit_mut_export_named_specifier(&mut self, node: &mut ExportNamedSpecifier) {
50883        <V as VisitMut>::visit_mut_export_named_specifier(&mut **self, node)
50884    }
50885
50886    #[inline]
50887    fn visit_mut_export_namespace_specifier(&mut self, node: &mut ExportNamespaceSpecifier) {
50888        <V as VisitMut>::visit_mut_export_namespace_specifier(&mut **self, node)
50889    }
50890
50891    #[inline]
50892    fn visit_mut_export_specifier(&mut self, node: &mut ExportSpecifier) {
50893        <V as VisitMut>::visit_mut_export_specifier(&mut **self, node)
50894    }
50895
50896    #[inline]
50897    fn visit_mut_export_specifiers(&mut self, node: &mut Vec<ExportSpecifier>) {
50898        <V as VisitMut>::visit_mut_export_specifiers(&mut **self, node)
50899    }
50900
50901    #[inline]
50902    fn visit_mut_expr(&mut self, node: &mut Expr) {
50903        <V as VisitMut>::visit_mut_expr(&mut **self, node)
50904    }
50905
50906    #[inline]
50907    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread) {
50908        <V as VisitMut>::visit_mut_expr_or_spread(&mut **self, node)
50909    }
50910
50911    #[inline]
50912    fn visit_mut_expr_or_spreads(&mut self, node: &mut Vec<ExprOrSpread>) {
50913        <V as VisitMut>::visit_mut_expr_or_spreads(&mut **self, node)
50914    }
50915
50916    #[inline]
50917    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt) {
50918        <V as VisitMut>::visit_mut_expr_stmt(&mut **self, node)
50919    }
50920
50921    #[inline]
50922    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>) {
50923        <V as VisitMut>::visit_mut_exprs(&mut **self, node)
50924    }
50925
50926    #[inline]
50927    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl) {
50928        <V as VisitMut>::visit_mut_fn_decl(&mut **self, node)
50929    }
50930
50931    #[inline]
50932    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr) {
50933        <V as VisitMut>::visit_mut_fn_expr(&mut **self, node)
50934    }
50935
50936    #[inline]
50937    fn visit_mut_for_head(&mut self, node: &mut ForHead) {
50938        <V as VisitMut>::visit_mut_for_head(&mut **self, node)
50939    }
50940
50941    #[inline]
50942    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt) {
50943        <V as VisitMut>::visit_mut_for_in_stmt(&mut **self, node)
50944    }
50945
50946    #[inline]
50947    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt) {
50948        <V as VisitMut>::visit_mut_for_of_stmt(&mut **self, node)
50949    }
50950
50951    #[inline]
50952    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt) {
50953        <V as VisitMut>::visit_mut_for_stmt(&mut **self, node)
50954    }
50955
50956    #[inline]
50957    fn visit_mut_function(&mut self, node: &mut Function) {
50958        <V as VisitMut>::visit_mut_function(&mut **self, node)
50959    }
50960
50961    #[inline]
50962    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp) {
50963        <V as VisitMut>::visit_mut_getter_prop(&mut **self, node)
50964    }
50965
50966    #[inline]
50967    fn visit_mut_ident(&mut self, node: &mut Ident) {
50968        <V as VisitMut>::visit_mut_ident(&mut **self, node)
50969    }
50970
50971    #[inline]
50972    fn visit_mut_ident_name(&mut self, node: &mut IdentName) {
50973        <V as VisitMut>::visit_mut_ident_name(&mut **self, node)
50974    }
50975
50976    #[inline]
50977    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt) {
50978        <V as VisitMut>::visit_mut_if_stmt(&mut **self, node)
50979    }
50980
50981    #[inline]
50982    fn visit_mut_import(&mut self, node: &mut Import) {
50983        <V as VisitMut>::visit_mut_import(&mut **self, node)
50984    }
50985
50986    #[inline]
50987    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl) {
50988        <V as VisitMut>::visit_mut_import_decl(&mut **self, node)
50989    }
50990
50991    #[inline]
50992    fn visit_mut_import_default_specifier(&mut self, node: &mut ImportDefaultSpecifier) {
50993        <V as VisitMut>::visit_mut_import_default_specifier(&mut **self, node)
50994    }
50995
50996    #[inline]
50997    fn visit_mut_import_named_specifier(&mut self, node: &mut ImportNamedSpecifier) {
50998        <V as VisitMut>::visit_mut_import_named_specifier(&mut **self, node)
50999    }
51000
51001    #[inline]
51002    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase) {
51003        <V as VisitMut>::visit_mut_import_phase(&mut **self, node)
51004    }
51005
51006    #[inline]
51007    fn visit_mut_import_specifier(&mut self, node: &mut ImportSpecifier) {
51008        <V as VisitMut>::visit_mut_import_specifier(&mut **self, node)
51009    }
51010
51011    #[inline]
51012    fn visit_mut_import_specifiers(&mut self, node: &mut Vec<ImportSpecifier>) {
51013        <V as VisitMut>::visit_mut_import_specifiers(&mut **self, node)
51014    }
51015
51016    #[inline]
51017    fn visit_mut_import_star_as_specifier(&mut self, node: &mut ImportStarAsSpecifier) {
51018        <V as VisitMut>::visit_mut_import_star_as_specifier(&mut **self, node)
51019    }
51020
51021    #[inline]
51022    fn visit_mut_import_with(&mut self, node: &mut ImportWith) {
51023        <V as VisitMut>::visit_mut_import_with(&mut **self, node)
51024    }
51025
51026    #[inline]
51027    fn visit_mut_import_with_item(&mut self, node: &mut ImportWithItem) {
51028        <V as VisitMut>::visit_mut_import_with_item(&mut **self, node)
51029    }
51030
51031    #[inline]
51032    fn visit_mut_import_with_items(&mut self, node: &mut Vec<ImportWithItem>) {
51033        <V as VisitMut>::visit_mut_import_with_items(&mut **self, node)
51034    }
51035
51036    #[inline]
51037    fn visit_mut_invalid(&mut self, node: &mut Invalid) {
51038        <V as VisitMut>::visit_mut_invalid(&mut **self, node)
51039    }
51040
51041    #[inline]
51042    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr) {
51043        <V as VisitMut>::visit_mut_jsx_attr(&mut **self, node)
51044    }
51045
51046    #[inline]
51047    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName) {
51048        <V as VisitMut>::visit_mut_jsx_attr_name(&mut **self, node)
51049    }
51050
51051    #[inline]
51052    fn visit_mut_jsx_attr_or_spread(&mut self, node: &mut JSXAttrOrSpread) {
51053        <V as VisitMut>::visit_mut_jsx_attr_or_spread(&mut **self, node)
51054    }
51055
51056    #[inline]
51057    fn visit_mut_jsx_attr_or_spreads(&mut self, node: &mut Vec<JSXAttrOrSpread>) {
51058        <V as VisitMut>::visit_mut_jsx_attr_or_spreads(&mut **self, node)
51059    }
51060
51061    #[inline]
51062    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue) {
51063        <V as VisitMut>::visit_mut_jsx_attr_value(&mut **self, node)
51064    }
51065
51066    #[inline]
51067    fn visit_mut_jsx_closing_element(&mut self, node: &mut JSXClosingElement) {
51068        <V as VisitMut>::visit_mut_jsx_closing_element(&mut **self, node)
51069    }
51070
51071    #[inline]
51072    fn visit_mut_jsx_closing_fragment(&mut self, node: &mut JSXClosingFragment) {
51073        <V as VisitMut>::visit_mut_jsx_closing_fragment(&mut **self, node)
51074    }
51075
51076    #[inline]
51077    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement) {
51078        <V as VisitMut>::visit_mut_jsx_element(&mut **self, node)
51079    }
51080
51081    #[inline]
51082    fn visit_mut_jsx_element_child(&mut self, node: &mut JSXElementChild) {
51083        <V as VisitMut>::visit_mut_jsx_element_child(&mut **self, node)
51084    }
51085
51086    #[inline]
51087    fn visit_mut_jsx_element_childs(&mut self, node: &mut Vec<JSXElementChild>) {
51088        <V as VisitMut>::visit_mut_jsx_element_childs(&mut **self, node)
51089    }
51090
51091    #[inline]
51092    fn visit_mut_jsx_element_name(&mut self, node: &mut JSXElementName) {
51093        <V as VisitMut>::visit_mut_jsx_element_name(&mut **self, node)
51094    }
51095
51096    #[inline]
51097    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr) {
51098        <V as VisitMut>::visit_mut_jsx_empty_expr(&mut **self, node)
51099    }
51100
51101    #[inline]
51102    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr) {
51103        <V as VisitMut>::visit_mut_jsx_expr(&mut **self, node)
51104    }
51105
51106    #[inline]
51107    fn visit_mut_jsx_expr_container(&mut self, node: &mut JSXExprContainer) {
51108        <V as VisitMut>::visit_mut_jsx_expr_container(&mut **self, node)
51109    }
51110
51111    #[inline]
51112    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment) {
51113        <V as VisitMut>::visit_mut_jsx_fragment(&mut **self, node)
51114    }
51115
51116    #[inline]
51117    fn visit_mut_jsx_member_expr(&mut self, node: &mut JSXMemberExpr) {
51118        <V as VisitMut>::visit_mut_jsx_member_expr(&mut **self, node)
51119    }
51120
51121    #[inline]
51122    fn visit_mut_jsx_namespaced_name(&mut self, node: &mut JSXNamespacedName) {
51123        <V as VisitMut>::visit_mut_jsx_namespaced_name(&mut **self, node)
51124    }
51125
51126    #[inline]
51127    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject) {
51128        <V as VisitMut>::visit_mut_jsx_object(&mut **self, node)
51129    }
51130
51131    #[inline]
51132    fn visit_mut_jsx_opening_element(&mut self, node: &mut JSXOpeningElement) {
51133        <V as VisitMut>::visit_mut_jsx_opening_element(&mut **self, node)
51134    }
51135
51136    #[inline]
51137    fn visit_mut_jsx_opening_fragment(&mut self, node: &mut JSXOpeningFragment) {
51138        <V as VisitMut>::visit_mut_jsx_opening_fragment(&mut **self, node)
51139    }
51140
51141    #[inline]
51142    fn visit_mut_jsx_spread_child(&mut self, node: &mut JSXSpreadChild) {
51143        <V as VisitMut>::visit_mut_jsx_spread_child(&mut **self, node)
51144    }
51145
51146    #[inline]
51147    fn visit_mut_jsx_text(&mut self, node: &mut JSXText) {
51148        <V as VisitMut>::visit_mut_jsx_text(&mut **self, node)
51149    }
51150
51151    #[inline]
51152    fn visit_mut_key(&mut self, node: &mut Key) {
51153        <V as VisitMut>::visit_mut_key(&mut **self, node)
51154    }
51155
51156    #[inline]
51157    fn visit_mut_key_value_pat_prop(&mut self, node: &mut KeyValuePatProp) {
51158        <V as VisitMut>::visit_mut_key_value_pat_prop(&mut **self, node)
51159    }
51160
51161    #[inline]
51162    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp) {
51163        <V as VisitMut>::visit_mut_key_value_prop(&mut **self, node)
51164    }
51165
51166    #[inline]
51167    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt) {
51168        <V as VisitMut>::visit_mut_labeled_stmt(&mut **self, node)
51169    }
51170
51171    #[inline]
51172    fn visit_mut_lit(&mut self, node: &mut Lit) {
51173        <V as VisitMut>::visit_mut_lit(&mut **self, node)
51174    }
51175
51176    #[inline]
51177    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr) {
51178        <V as VisitMut>::visit_mut_member_expr(&mut **self, node)
51179    }
51180
51181    #[inline]
51182    fn visit_mut_member_prop(&mut self, node: &mut MemberProp) {
51183        <V as VisitMut>::visit_mut_member_prop(&mut **self, node)
51184    }
51185
51186    #[inline]
51187    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr) {
51188        <V as VisitMut>::visit_mut_meta_prop_expr(&mut **self, node)
51189    }
51190
51191    #[inline]
51192    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind) {
51193        <V as VisitMut>::visit_mut_meta_prop_kind(&mut **self, node)
51194    }
51195
51196    #[inline]
51197    fn visit_mut_method_kind(&mut self, node: &mut MethodKind) {
51198        <V as VisitMut>::visit_mut_method_kind(&mut **self, node)
51199    }
51200
51201    #[inline]
51202    fn visit_mut_method_prop(&mut self, node: &mut MethodProp) {
51203        <V as VisitMut>::visit_mut_method_prop(&mut **self, node)
51204    }
51205
51206    #[inline]
51207    fn visit_mut_module(&mut self, node: &mut Module) {
51208        <V as VisitMut>::visit_mut_module(&mut **self, node)
51209    }
51210
51211    #[inline]
51212    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl) {
51213        <V as VisitMut>::visit_mut_module_decl(&mut **self, node)
51214    }
51215
51216    #[inline]
51217    fn visit_mut_module_export_name(&mut self, node: &mut ModuleExportName) {
51218        <V as VisitMut>::visit_mut_module_export_name(&mut **self, node)
51219    }
51220
51221    #[inline]
51222    fn visit_mut_module_item(&mut self, node: &mut ModuleItem) {
51223        <V as VisitMut>::visit_mut_module_item(&mut **self, node)
51224    }
51225
51226    #[inline]
51227    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>) {
51228        <V as VisitMut>::visit_mut_module_items(&mut **self, node)
51229    }
51230
51231    #[inline]
51232    fn visit_mut_named_export(&mut self, node: &mut NamedExport) {
51233        <V as VisitMut>::visit_mut_named_export(&mut **self, node)
51234    }
51235
51236    #[inline]
51237    fn visit_mut_new_expr(&mut self, node: &mut NewExpr) {
51238        <V as VisitMut>::visit_mut_new_expr(&mut **self, node)
51239    }
51240
51241    #[inline]
51242    fn visit_mut_null(&mut self, node: &mut Null) {
51243        <V as VisitMut>::visit_mut_null(&mut **self, node)
51244    }
51245
51246    #[inline]
51247    fn visit_mut_number(&mut self, node: &mut Number) {
51248        <V as VisitMut>::visit_mut_number(&mut **self, node)
51249    }
51250
51251    #[inline]
51252    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit) {
51253        <V as VisitMut>::visit_mut_object_lit(&mut **self, node)
51254    }
51255
51256    #[inline]
51257    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat) {
51258        <V as VisitMut>::visit_mut_object_pat(&mut **self, node)
51259    }
51260
51261    #[inline]
51262    fn visit_mut_object_pat_prop(&mut self, node: &mut ObjectPatProp) {
51263        <V as VisitMut>::visit_mut_object_pat_prop(&mut **self, node)
51264    }
51265
51266    #[inline]
51267    fn visit_mut_object_pat_props(&mut self, node: &mut Vec<ObjectPatProp>) {
51268        <V as VisitMut>::visit_mut_object_pat_props(&mut **self, node)
51269    }
51270
51271    #[inline]
51272    fn visit_mut_opt_accessibility(&mut self, node: &mut Option<Accessibility>) {
51273        <V as VisitMut>::visit_mut_opt_accessibility(&mut **self, node)
51274    }
51275
51276    #[inline]
51277    fn visit_mut_opt_atom(&mut self, node: &mut Option<swc_atoms::Atom>) {
51278        <V as VisitMut>::visit_mut_opt_atom(&mut **self, node)
51279    }
51280
51281    #[inline]
51282    fn visit_mut_opt_block_stmt(&mut self, node: &mut Option<BlockStmt>) {
51283        <V as VisitMut>::visit_mut_opt_block_stmt(&mut **self, node)
51284    }
51285
51286    #[inline]
51287    fn visit_mut_opt_call(&mut self, node: &mut OptCall) {
51288        <V as VisitMut>::visit_mut_opt_call(&mut **self, node)
51289    }
51290
51291    #[inline]
51292    fn visit_mut_opt_catch_clause(&mut self, node: &mut Option<CatchClause>) {
51293        <V as VisitMut>::visit_mut_opt_catch_clause(&mut **self, node)
51294    }
51295
51296    #[inline]
51297    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase) {
51298        <V as VisitMut>::visit_mut_opt_chain_base(&mut **self, node)
51299    }
51300
51301    #[inline]
51302    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr) {
51303        <V as VisitMut>::visit_mut_opt_chain_expr(&mut **self, node)
51304    }
51305
51306    #[inline]
51307    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>) {
51308        <V as VisitMut>::visit_mut_opt_expr(&mut **self, node)
51309    }
51310
51311    #[inline]
51312    fn visit_mut_opt_expr_or_spread(&mut self, node: &mut Option<ExprOrSpread>) {
51313        <V as VisitMut>::visit_mut_opt_expr_or_spread(&mut **self, node)
51314    }
51315
51316    #[inline]
51317    fn visit_mut_opt_expr_or_spreads(&mut self, node: &mut Option<Vec<ExprOrSpread>>) {
51318        <V as VisitMut>::visit_mut_opt_expr_or_spreads(&mut **self, node)
51319    }
51320
51321    #[inline]
51322    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>) {
51323        <V as VisitMut>::visit_mut_opt_ident(&mut **self, node)
51324    }
51325
51326    #[inline]
51327    fn visit_mut_opt_jsx_attr_value(&mut self, node: &mut Option<JSXAttrValue>) {
51328        <V as VisitMut>::visit_mut_opt_jsx_attr_value(&mut **self, node)
51329    }
51330
51331    #[inline]
51332    fn visit_mut_opt_jsx_closing_element(&mut self, node: &mut Option<JSXClosingElement>) {
51333        <V as VisitMut>::visit_mut_opt_jsx_closing_element(&mut **self, node)
51334    }
51335
51336    #[inline]
51337    fn visit_mut_opt_module_export_name(&mut self, node: &mut Option<ModuleExportName>) {
51338        <V as VisitMut>::visit_mut_opt_module_export_name(&mut **self, node)
51339    }
51340
51341    #[inline]
51342    fn visit_mut_opt_object_lit(&mut self, node: &mut Option<Box<ObjectLit>>) {
51343        <V as VisitMut>::visit_mut_opt_object_lit(&mut **self, node)
51344    }
51345
51346    #[inline]
51347    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>) {
51348        <V as VisitMut>::visit_mut_opt_pat(&mut **self, node)
51349    }
51350
51351    #[inline]
51352    fn visit_mut_opt_span(&mut self, node: &mut Option<swc_common::Span>) {
51353        <V as VisitMut>::visit_mut_opt_span(&mut **self, node)
51354    }
51355
51356    #[inline]
51357    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>) {
51358        <V as VisitMut>::visit_mut_opt_stmt(&mut **self, node)
51359    }
51360
51361    #[inline]
51362    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>) {
51363        <V as VisitMut>::visit_mut_opt_str(&mut **self, node)
51364    }
51365
51366    #[inline]
51367    fn visit_mut_opt_true_plus_minus(&mut self, node: &mut Option<TruePlusMinus>) {
51368        <V as VisitMut>::visit_mut_opt_true_plus_minus(&mut **self, node)
51369    }
51370
51371    #[inline]
51372    fn visit_mut_opt_ts_entity_name(&mut self, node: &mut Option<TsEntityName>) {
51373        <V as VisitMut>::visit_mut_opt_ts_entity_name(&mut **self, node)
51374    }
51375
51376    #[inline]
51377    fn visit_mut_opt_ts_import_call_options(&mut self, node: &mut Option<TsImportCallOptions>) {
51378        <V as VisitMut>::visit_mut_opt_ts_import_call_options(&mut **self, node)
51379    }
51380
51381    #[inline]
51382    fn visit_mut_opt_ts_namespace_body(&mut self, node: &mut Option<TsNamespaceBody>) {
51383        <V as VisitMut>::visit_mut_opt_ts_namespace_body(&mut **self, node)
51384    }
51385
51386    #[inline]
51387    fn visit_mut_opt_ts_type(&mut self, node: &mut Option<Box<TsType>>) {
51388        <V as VisitMut>::visit_mut_opt_ts_type(&mut **self, node)
51389    }
51390
51391    #[inline]
51392    fn visit_mut_opt_ts_type_ann(&mut self, node: &mut Option<Box<TsTypeAnn>>) {
51393        <V as VisitMut>::visit_mut_opt_ts_type_ann(&mut **self, node)
51394    }
51395
51396    #[inline]
51397    fn visit_mut_opt_ts_type_param_decl(&mut self, node: &mut Option<Box<TsTypeParamDecl>>) {
51398        <V as VisitMut>::visit_mut_opt_ts_type_param_decl(&mut **self, node)
51399    }
51400
51401    #[inline]
51402    fn visit_mut_opt_ts_type_param_instantiation(
51403        &mut self,
51404        node: &mut Option<Box<TsTypeParamInstantiation>>,
51405    ) {
51406        <V as VisitMut>::visit_mut_opt_ts_type_param_instantiation(&mut **self, node)
51407    }
51408
51409    #[inline]
51410    fn visit_mut_opt_var_decl_or_expr(&mut self, node: &mut Option<VarDeclOrExpr>) {
51411        <V as VisitMut>::visit_mut_opt_var_decl_or_expr(&mut **self, node)
51412    }
51413
51414    #[inline]
51415    fn visit_mut_opt_vec_expr_or_spreads(&mut self, node: &mut Vec<Option<ExprOrSpread>>) {
51416        <V as VisitMut>::visit_mut_opt_vec_expr_or_spreads(&mut **self, node)
51417    }
51418
51419    #[inline]
51420    fn visit_mut_opt_vec_pats(&mut self, node: &mut Vec<Option<Pat>>) {
51421        <V as VisitMut>::visit_mut_opt_vec_pats(&mut **self, node)
51422    }
51423
51424    #[inline]
51425    fn visit_mut_param(&mut self, node: &mut Param) {
51426        <V as VisitMut>::visit_mut_param(&mut **self, node)
51427    }
51428
51429    #[inline]
51430    fn visit_mut_param_or_ts_param_prop(&mut self, node: &mut ParamOrTsParamProp) {
51431        <V as VisitMut>::visit_mut_param_or_ts_param_prop(&mut **self, node)
51432    }
51433
51434    #[inline]
51435    fn visit_mut_param_or_ts_param_props(&mut self, node: &mut Vec<ParamOrTsParamProp>) {
51436        <V as VisitMut>::visit_mut_param_or_ts_param_props(&mut **self, node)
51437    }
51438
51439    #[inline]
51440    fn visit_mut_params(&mut self, node: &mut Vec<Param>) {
51441        <V as VisitMut>::visit_mut_params(&mut **self, node)
51442    }
51443
51444    #[inline]
51445    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr) {
51446        <V as VisitMut>::visit_mut_paren_expr(&mut **self, node)
51447    }
51448
51449    #[inline]
51450    fn visit_mut_pat(&mut self, node: &mut Pat) {
51451        <V as VisitMut>::visit_mut_pat(&mut **self, node)
51452    }
51453
51454    #[inline]
51455    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>) {
51456        <V as VisitMut>::visit_mut_pats(&mut **self, node)
51457    }
51458
51459    #[inline]
51460    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod) {
51461        <V as VisitMut>::visit_mut_private_method(&mut **self, node)
51462    }
51463
51464    #[inline]
51465    fn visit_mut_private_name(&mut self, node: &mut PrivateName) {
51466        <V as VisitMut>::visit_mut_private_name(&mut **self, node)
51467    }
51468
51469    #[inline]
51470    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp) {
51471        <V as VisitMut>::visit_mut_private_prop(&mut **self, node)
51472    }
51473
51474    #[inline]
51475    fn visit_mut_program(&mut self, node: &mut Program) {
51476        <V as VisitMut>::visit_mut_program(&mut **self, node)
51477    }
51478
51479    #[inline]
51480    fn visit_mut_prop(&mut self, node: &mut Prop) {
51481        <V as VisitMut>::visit_mut_prop(&mut **self, node)
51482    }
51483
51484    #[inline]
51485    fn visit_mut_prop_name(&mut self, node: &mut PropName) {
51486        <V as VisitMut>::visit_mut_prop_name(&mut **self, node)
51487    }
51488
51489    #[inline]
51490    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread) {
51491        <V as VisitMut>::visit_mut_prop_or_spread(&mut **self, node)
51492    }
51493
51494    #[inline]
51495    fn visit_mut_prop_or_spreads(&mut self, node: &mut Vec<PropOrSpread>) {
51496        <V as VisitMut>::visit_mut_prop_or_spreads(&mut **self, node)
51497    }
51498
51499    #[inline]
51500    fn visit_mut_regex(&mut self, node: &mut Regex) {
51501        <V as VisitMut>::visit_mut_regex(&mut **self, node)
51502    }
51503
51504    #[inline]
51505    fn visit_mut_rest_pat(&mut self, node: &mut RestPat) {
51506        <V as VisitMut>::visit_mut_rest_pat(&mut **self, node)
51507    }
51508
51509    #[inline]
51510    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt) {
51511        <V as VisitMut>::visit_mut_return_stmt(&mut **self, node)
51512    }
51513
51514    #[inline]
51515    fn visit_mut_script(&mut self, node: &mut Script) {
51516        <V as VisitMut>::visit_mut_script(&mut **self, node)
51517    }
51518
51519    #[inline]
51520    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr) {
51521        <V as VisitMut>::visit_mut_seq_expr(&mut **self, node)
51522    }
51523
51524    #[inline]
51525    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp) {
51526        <V as VisitMut>::visit_mut_setter_prop(&mut **self, node)
51527    }
51528
51529    #[inline]
51530    fn visit_mut_simple_assign_target(&mut self, node: &mut SimpleAssignTarget) {
51531        <V as VisitMut>::visit_mut_simple_assign_target(&mut **self, node)
51532    }
51533
51534    #[inline]
51535    fn visit_mut_span(&mut self, node: &mut swc_common::Span) {
51536        <V as VisitMut>::visit_mut_span(&mut **self, node)
51537    }
51538
51539    #[inline]
51540    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement) {
51541        <V as VisitMut>::visit_mut_spread_element(&mut **self, node)
51542    }
51543
51544    #[inline]
51545    fn visit_mut_static_block(&mut self, node: &mut StaticBlock) {
51546        <V as VisitMut>::visit_mut_static_block(&mut **self, node)
51547    }
51548
51549    #[inline]
51550    fn visit_mut_stmt(&mut self, node: &mut Stmt) {
51551        <V as VisitMut>::visit_mut_stmt(&mut **self, node)
51552    }
51553
51554    #[inline]
51555    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>) {
51556        <V as VisitMut>::visit_mut_stmts(&mut **self, node)
51557    }
51558
51559    #[inline]
51560    fn visit_mut_str(&mut self, node: &mut Str) {
51561        <V as VisitMut>::visit_mut_str(&mut **self, node)
51562    }
51563
51564    #[inline]
51565    fn visit_mut_super(&mut self, node: &mut Super) {
51566        <V as VisitMut>::visit_mut_super(&mut **self, node)
51567    }
51568
51569    #[inline]
51570    fn visit_mut_super_prop(&mut self, node: &mut SuperProp) {
51571        <V as VisitMut>::visit_mut_super_prop(&mut **self, node)
51572    }
51573
51574    #[inline]
51575    fn visit_mut_super_prop_expr(&mut self, node: &mut SuperPropExpr) {
51576        <V as VisitMut>::visit_mut_super_prop_expr(&mut **self, node)
51577    }
51578
51579    #[inline]
51580    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase) {
51581        <V as VisitMut>::visit_mut_switch_case(&mut **self, node)
51582    }
51583
51584    #[inline]
51585    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>) {
51586        <V as VisitMut>::visit_mut_switch_cases(&mut **self, node)
51587    }
51588
51589    #[inline]
51590    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt) {
51591        <V as VisitMut>::visit_mut_switch_stmt(&mut **self, node)
51592    }
51593
51594    #[inline]
51595    fn visit_mut_syntax_context(&mut self, node: &mut swc_common::SyntaxContext) {
51596        <V as VisitMut>::visit_mut_syntax_context(&mut **self, node)
51597    }
51598
51599    #[inline]
51600    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl) {
51601        <V as VisitMut>::visit_mut_tagged_tpl(&mut **self, node)
51602    }
51603
51604    #[inline]
51605    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr) {
51606        <V as VisitMut>::visit_mut_this_expr(&mut **self, node)
51607    }
51608
51609    #[inline]
51610    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt) {
51611        <V as VisitMut>::visit_mut_throw_stmt(&mut **self, node)
51612    }
51613
51614    #[inline]
51615    fn visit_mut_tpl(&mut self, node: &mut Tpl) {
51616        <V as VisitMut>::visit_mut_tpl(&mut **self, node)
51617    }
51618
51619    #[inline]
51620    fn visit_mut_tpl_element(&mut self, node: &mut TplElement) {
51621        <V as VisitMut>::visit_mut_tpl_element(&mut **self, node)
51622    }
51623
51624    #[inline]
51625    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>) {
51626        <V as VisitMut>::visit_mut_tpl_elements(&mut **self, node)
51627    }
51628
51629    #[inline]
51630    fn visit_mut_true_plus_minus(&mut self, node: &mut TruePlusMinus) {
51631        <V as VisitMut>::visit_mut_true_plus_minus(&mut **self, node)
51632    }
51633
51634    #[inline]
51635    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt) {
51636        <V as VisitMut>::visit_mut_try_stmt(&mut **self, node)
51637    }
51638
51639    #[inline]
51640    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType) {
51641        <V as VisitMut>::visit_mut_ts_array_type(&mut **self, node)
51642    }
51643
51644    #[inline]
51645    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr) {
51646        <V as VisitMut>::visit_mut_ts_as_expr(&mut **self, node)
51647    }
51648
51649    #[inline]
51650    fn visit_mut_ts_call_signature_decl(&mut self, node: &mut TsCallSignatureDecl) {
51651        <V as VisitMut>::visit_mut_ts_call_signature_decl(&mut **self, node)
51652    }
51653
51654    #[inline]
51655    fn visit_mut_ts_conditional_type(&mut self, node: &mut TsConditionalType) {
51656        <V as VisitMut>::visit_mut_ts_conditional_type(&mut **self, node)
51657    }
51658
51659    #[inline]
51660    fn visit_mut_ts_const_assertion(&mut self, node: &mut TsConstAssertion) {
51661        <V as VisitMut>::visit_mut_ts_const_assertion(&mut **self, node)
51662    }
51663
51664    #[inline]
51665    fn visit_mut_ts_construct_signature_decl(&mut self, node: &mut TsConstructSignatureDecl) {
51666        <V as VisitMut>::visit_mut_ts_construct_signature_decl(&mut **self, node)
51667    }
51668
51669    #[inline]
51670    fn visit_mut_ts_constructor_type(&mut self, node: &mut TsConstructorType) {
51671        <V as VisitMut>::visit_mut_ts_constructor_type(&mut **self, node)
51672    }
51673
51674    #[inline]
51675    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName) {
51676        <V as VisitMut>::visit_mut_ts_entity_name(&mut **self, node)
51677    }
51678
51679    #[inline]
51680    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl) {
51681        <V as VisitMut>::visit_mut_ts_enum_decl(&mut **self, node)
51682    }
51683
51684    #[inline]
51685    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember) {
51686        <V as VisitMut>::visit_mut_ts_enum_member(&mut **self, node)
51687    }
51688
51689    #[inline]
51690    fn visit_mut_ts_enum_member_id(&mut self, node: &mut TsEnumMemberId) {
51691        <V as VisitMut>::visit_mut_ts_enum_member_id(&mut **self, node)
51692    }
51693
51694    #[inline]
51695    fn visit_mut_ts_enum_members(&mut self, node: &mut Vec<TsEnumMember>) {
51696        <V as VisitMut>::visit_mut_ts_enum_members(&mut **self, node)
51697    }
51698
51699    #[inline]
51700    fn visit_mut_ts_export_assignment(&mut self, node: &mut TsExportAssignment) {
51701        <V as VisitMut>::visit_mut_ts_export_assignment(&mut **self, node)
51702    }
51703
51704    #[inline]
51705    fn visit_mut_ts_expr_with_type_args(&mut self, node: &mut TsExprWithTypeArgs) {
51706        <V as VisitMut>::visit_mut_ts_expr_with_type_args(&mut **self, node)
51707    }
51708
51709    #[inline]
51710    fn visit_mut_ts_expr_with_type_argss(&mut self, node: &mut Vec<TsExprWithTypeArgs>) {
51711        <V as VisitMut>::visit_mut_ts_expr_with_type_argss(&mut **self, node)
51712    }
51713
51714    #[inline]
51715    fn visit_mut_ts_external_module_ref(&mut self, node: &mut TsExternalModuleRef) {
51716        <V as VisitMut>::visit_mut_ts_external_module_ref(&mut **self, node)
51717    }
51718
51719    #[inline]
51720    fn visit_mut_ts_fn_or_constructor_type(&mut self, node: &mut TsFnOrConstructorType) {
51721        <V as VisitMut>::visit_mut_ts_fn_or_constructor_type(&mut **self, node)
51722    }
51723
51724    #[inline]
51725    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam) {
51726        <V as VisitMut>::visit_mut_ts_fn_param(&mut **self, node)
51727    }
51728
51729    #[inline]
51730    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>) {
51731        <V as VisitMut>::visit_mut_ts_fn_params(&mut **self, node)
51732    }
51733
51734    #[inline]
51735    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType) {
51736        <V as VisitMut>::visit_mut_ts_fn_type(&mut **self, node)
51737    }
51738
51739    #[inline]
51740    fn visit_mut_ts_getter_signature(&mut self, node: &mut TsGetterSignature) {
51741        <V as VisitMut>::visit_mut_ts_getter_signature(&mut **self, node)
51742    }
51743
51744    #[inline]
51745    fn visit_mut_ts_import_call_options(&mut self, node: &mut TsImportCallOptions) {
51746        <V as VisitMut>::visit_mut_ts_import_call_options(&mut **self, node)
51747    }
51748
51749    #[inline]
51750    fn visit_mut_ts_import_equals_decl(&mut self, node: &mut TsImportEqualsDecl) {
51751        <V as VisitMut>::visit_mut_ts_import_equals_decl(&mut **self, node)
51752    }
51753
51754    #[inline]
51755    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType) {
51756        <V as VisitMut>::visit_mut_ts_import_type(&mut **self, node)
51757    }
51758
51759    #[inline]
51760    fn visit_mut_ts_index_signature(&mut self, node: &mut TsIndexSignature) {
51761        <V as VisitMut>::visit_mut_ts_index_signature(&mut **self, node)
51762    }
51763
51764    #[inline]
51765    fn visit_mut_ts_indexed_access_type(&mut self, node: &mut TsIndexedAccessType) {
51766        <V as VisitMut>::visit_mut_ts_indexed_access_type(&mut **self, node)
51767    }
51768
51769    #[inline]
51770    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType) {
51771        <V as VisitMut>::visit_mut_ts_infer_type(&mut **self, node)
51772    }
51773
51774    #[inline]
51775    fn visit_mut_ts_instantiation(&mut self, node: &mut TsInstantiation) {
51776        <V as VisitMut>::visit_mut_ts_instantiation(&mut **self, node)
51777    }
51778
51779    #[inline]
51780    fn visit_mut_ts_interface_body(&mut self, node: &mut TsInterfaceBody) {
51781        <V as VisitMut>::visit_mut_ts_interface_body(&mut **self, node)
51782    }
51783
51784    #[inline]
51785    fn visit_mut_ts_interface_decl(&mut self, node: &mut TsInterfaceDecl) {
51786        <V as VisitMut>::visit_mut_ts_interface_decl(&mut **self, node)
51787    }
51788
51789    #[inline]
51790    fn visit_mut_ts_intersection_type(&mut self, node: &mut TsIntersectionType) {
51791        <V as VisitMut>::visit_mut_ts_intersection_type(&mut **self, node)
51792    }
51793
51794    #[inline]
51795    fn visit_mut_ts_keyword_type(&mut self, node: &mut TsKeywordType) {
51796        <V as VisitMut>::visit_mut_ts_keyword_type(&mut **self, node)
51797    }
51798
51799    #[inline]
51800    fn visit_mut_ts_keyword_type_kind(&mut self, node: &mut TsKeywordTypeKind) {
51801        <V as VisitMut>::visit_mut_ts_keyword_type_kind(&mut **self, node)
51802    }
51803
51804    #[inline]
51805    fn visit_mut_ts_lit(&mut self, node: &mut TsLit) {
51806        <V as VisitMut>::visit_mut_ts_lit(&mut **self, node)
51807    }
51808
51809    #[inline]
51810    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType) {
51811        <V as VisitMut>::visit_mut_ts_lit_type(&mut **self, node)
51812    }
51813
51814    #[inline]
51815    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType) {
51816        <V as VisitMut>::visit_mut_ts_mapped_type(&mut **self, node)
51817    }
51818
51819    #[inline]
51820    fn visit_mut_ts_method_signature(&mut self, node: &mut TsMethodSignature) {
51821        <V as VisitMut>::visit_mut_ts_method_signature(&mut **self, node)
51822    }
51823
51824    #[inline]
51825    fn visit_mut_ts_module_block(&mut self, node: &mut TsModuleBlock) {
51826        <V as VisitMut>::visit_mut_ts_module_block(&mut **self, node)
51827    }
51828
51829    #[inline]
51830    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl) {
51831        <V as VisitMut>::visit_mut_ts_module_decl(&mut **self, node)
51832    }
51833
51834    #[inline]
51835    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName) {
51836        <V as VisitMut>::visit_mut_ts_module_name(&mut **self, node)
51837    }
51838
51839    #[inline]
51840    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef) {
51841        <V as VisitMut>::visit_mut_ts_module_ref(&mut **self, node)
51842    }
51843
51844    #[inline]
51845    fn visit_mut_ts_namespace_body(&mut self, node: &mut TsNamespaceBody) {
51846        <V as VisitMut>::visit_mut_ts_namespace_body(&mut **self, node)
51847    }
51848
51849    #[inline]
51850    fn visit_mut_ts_namespace_decl(&mut self, node: &mut TsNamespaceDecl) {
51851        <V as VisitMut>::visit_mut_ts_namespace_decl(&mut **self, node)
51852    }
51853
51854    #[inline]
51855    fn visit_mut_ts_namespace_export_decl(&mut self, node: &mut TsNamespaceExportDecl) {
51856        <V as VisitMut>::visit_mut_ts_namespace_export_decl(&mut **self, node)
51857    }
51858
51859    #[inline]
51860    fn visit_mut_ts_non_null_expr(&mut self, node: &mut TsNonNullExpr) {
51861        <V as VisitMut>::visit_mut_ts_non_null_expr(&mut **self, node)
51862    }
51863
51864    #[inline]
51865    fn visit_mut_ts_optional_type(&mut self, node: &mut TsOptionalType) {
51866        <V as VisitMut>::visit_mut_ts_optional_type(&mut **self, node)
51867    }
51868
51869    #[inline]
51870    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp) {
51871        <V as VisitMut>::visit_mut_ts_param_prop(&mut **self, node)
51872    }
51873
51874    #[inline]
51875    fn visit_mut_ts_param_prop_param(&mut self, node: &mut TsParamPropParam) {
51876        <V as VisitMut>::visit_mut_ts_param_prop_param(&mut **self, node)
51877    }
51878
51879    #[inline]
51880    fn visit_mut_ts_parenthesized_type(&mut self, node: &mut TsParenthesizedType) {
51881        <V as VisitMut>::visit_mut_ts_parenthesized_type(&mut **self, node)
51882    }
51883
51884    #[inline]
51885    fn visit_mut_ts_property_signature(&mut self, node: &mut TsPropertySignature) {
51886        <V as VisitMut>::visit_mut_ts_property_signature(&mut **self, node)
51887    }
51888
51889    #[inline]
51890    fn visit_mut_ts_qualified_name(&mut self, node: &mut TsQualifiedName) {
51891        <V as VisitMut>::visit_mut_ts_qualified_name(&mut **self, node)
51892    }
51893
51894    #[inline]
51895    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType) {
51896        <V as VisitMut>::visit_mut_ts_rest_type(&mut **self, node)
51897    }
51898
51899    #[inline]
51900    fn visit_mut_ts_satisfies_expr(&mut self, node: &mut TsSatisfiesExpr) {
51901        <V as VisitMut>::visit_mut_ts_satisfies_expr(&mut **self, node)
51902    }
51903
51904    #[inline]
51905    fn visit_mut_ts_setter_signature(&mut self, node: &mut TsSetterSignature) {
51906        <V as VisitMut>::visit_mut_ts_setter_signature(&mut **self, node)
51907    }
51908
51909    #[inline]
51910    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType) {
51911        <V as VisitMut>::visit_mut_ts_this_type(&mut **self, node)
51912    }
51913
51914    #[inline]
51915    fn visit_mut_ts_this_type_or_ident(&mut self, node: &mut TsThisTypeOrIdent) {
51916        <V as VisitMut>::visit_mut_ts_this_type_or_ident(&mut **self, node)
51917    }
51918
51919    #[inline]
51920    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType) {
51921        <V as VisitMut>::visit_mut_ts_tpl_lit_type(&mut **self, node)
51922    }
51923
51924    #[inline]
51925    fn visit_mut_ts_tuple_element(&mut self, node: &mut TsTupleElement) {
51926        <V as VisitMut>::visit_mut_ts_tuple_element(&mut **self, node)
51927    }
51928
51929    #[inline]
51930    fn visit_mut_ts_tuple_elements(&mut self, node: &mut Vec<TsTupleElement>) {
51931        <V as VisitMut>::visit_mut_ts_tuple_elements(&mut **self, node)
51932    }
51933
51934    #[inline]
51935    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType) {
51936        <V as VisitMut>::visit_mut_ts_tuple_type(&mut **self, node)
51937    }
51938
51939    #[inline]
51940    fn visit_mut_ts_type(&mut self, node: &mut TsType) {
51941        <V as VisitMut>::visit_mut_ts_type(&mut **self, node)
51942    }
51943
51944    #[inline]
51945    fn visit_mut_ts_type_alias_decl(&mut self, node: &mut TsTypeAliasDecl) {
51946        <V as VisitMut>::visit_mut_ts_type_alias_decl(&mut **self, node)
51947    }
51948
51949    #[inline]
51950    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn) {
51951        <V as VisitMut>::visit_mut_ts_type_ann(&mut **self, node)
51952    }
51953
51954    #[inline]
51955    fn visit_mut_ts_type_assertion(&mut self, node: &mut TsTypeAssertion) {
51956        <V as VisitMut>::visit_mut_ts_type_assertion(&mut **self, node)
51957    }
51958
51959    #[inline]
51960    fn visit_mut_ts_type_element(&mut self, node: &mut TsTypeElement) {
51961        <V as VisitMut>::visit_mut_ts_type_element(&mut **self, node)
51962    }
51963
51964    #[inline]
51965    fn visit_mut_ts_type_elements(&mut self, node: &mut Vec<TsTypeElement>) {
51966        <V as VisitMut>::visit_mut_ts_type_elements(&mut **self, node)
51967    }
51968
51969    #[inline]
51970    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit) {
51971        <V as VisitMut>::visit_mut_ts_type_lit(&mut **self, node)
51972    }
51973
51974    #[inline]
51975    fn visit_mut_ts_type_operator(&mut self, node: &mut TsTypeOperator) {
51976        <V as VisitMut>::visit_mut_ts_type_operator(&mut **self, node)
51977    }
51978
51979    #[inline]
51980    fn visit_mut_ts_type_operator_op(&mut self, node: &mut TsTypeOperatorOp) {
51981        <V as VisitMut>::visit_mut_ts_type_operator_op(&mut **self, node)
51982    }
51983
51984    #[inline]
51985    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam) {
51986        <V as VisitMut>::visit_mut_ts_type_param(&mut **self, node)
51987    }
51988
51989    #[inline]
51990    fn visit_mut_ts_type_param_decl(&mut self, node: &mut TsTypeParamDecl) {
51991        <V as VisitMut>::visit_mut_ts_type_param_decl(&mut **self, node)
51992    }
51993
51994    #[inline]
51995    fn visit_mut_ts_type_param_instantiation(&mut self, node: &mut TsTypeParamInstantiation) {
51996        <V as VisitMut>::visit_mut_ts_type_param_instantiation(&mut **self, node)
51997    }
51998
51999    #[inline]
52000    fn visit_mut_ts_type_params(&mut self, node: &mut Vec<TsTypeParam>) {
52001        <V as VisitMut>::visit_mut_ts_type_params(&mut **self, node)
52002    }
52003
52004    #[inline]
52005    fn visit_mut_ts_type_predicate(&mut self, node: &mut TsTypePredicate) {
52006        <V as VisitMut>::visit_mut_ts_type_predicate(&mut **self, node)
52007    }
52008
52009    #[inline]
52010    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery) {
52011        <V as VisitMut>::visit_mut_ts_type_query(&mut **self, node)
52012    }
52013
52014    #[inline]
52015    fn visit_mut_ts_type_query_expr(&mut self, node: &mut TsTypeQueryExpr) {
52016        <V as VisitMut>::visit_mut_ts_type_query_expr(&mut **self, node)
52017    }
52018
52019    #[inline]
52020    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef) {
52021        <V as VisitMut>::visit_mut_ts_type_ref(&mut **self, node)
52022    }
52023
52024    #[inline]
52025    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>) {
52026        <V as VisitMut>::visit_mut_ts_types(&mut **self, node)
52027    }
52028
52029    #[inline]
52030    fn visit_mut_ts_union_or_intersection_type(&mut self, node: &mut TsUnionOrIntersectionType) {
52031        <V as VisitMut>::visit_mut_ts_union_or_intersection_type(&mut **self, node)
52032    }
52033
52034    #[inline]
52035    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType) {
52036        <V as VisitMut>::visit_mut_ts_union_type(&mut **self, node)
52037    }
52038
52039    #[inline]
52040    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr) {
52041        <V as VisitMut>::visit_mut_unary_expr(&mut **self, node)
52042    }
52043
52044    #[inline]
52045    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp) {
52046        <V as VisitMut>::visit_mut_unary_op(&mut **self, node)
52047    }
52048
52049    #[inline]
52050    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr) {
52051        <V as VisitMut>::visit_mut_update_expr(&mut **self, node)
52052    }
52053
52054    #[inline]
52055    fn visit_mut_update_op(&mut self, node: &mut UpdateOp) {
52056        <V as VisitMut>::visit_mut_update_op(&mut **self, node)
52057    }
52058
52059    #[inline]
52060    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl) {
52061        <V as VisitMut>::visit_mut_using_decl(&mut **self, node)
52062    }
52063
52064    #[inline]
52065    fn visit_mut_var_decl(&mut self, node: &mut VarDecl) {
52066        <V as VisitMut>::visit_mut_var_decl(&mut **self, node)
52067    }
52068
52069    #[inline]
52070    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind) {
52071        <V as VisitMut>::visit_mut_var_decl_kind(&mut **self, node)
52072    }
52073
52074    #[inline]
52075    fn visit_mut_var_decl_or_expr(&mut self, node: &mut VarDeclOrExpr) {
52076        <V as VisitMut>::visit_mut_var_decl_or_expr(&mut **self, node)
52077    }
52078
52079    #[inline]
52080    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator) {
52081        <V as VisitMut>::visit_mut_var_declarator(&mut **self, node)
52082    }
52083
52084    #[inline]
52085    fn visit_mut_var_declarators(&mut self, node: &mut Vec<VarDeclarator>) {
52086        <V as VisitMut>::visit_mut_var_declarators(&mut **self, node)
52087    }
52088
52089    #[inline]
52090    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt) {
52091        <V as VisitMut>::visit_mut_while_stmt(&mut **self, node)
52092    }
52093
52094    #[inline]
52095    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt) {
52096        <V as VisitMut>::visit_mut_with_stmt(&mut **self, node)
52097    }
52098
52099    #[inline]
52100    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr) {
52101        <V as VisitMut>::visit_mut_yield_expr(&mut **self, node)
52102    }
52103}
52104impl<V> VisitMut for Box<V>
52105where
52106    V: ?Sized + VisitMut,
52107{
52108    #[inline]
52109    fn visit_mut_accessibility(&mut self, node: &mut Accessibility) {
52110        <V as VisitMut>::visit_mut_accessibility(&mut **self, node)
52111    }
52112
52113    #[inline]
52114    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit) {
52115        <V as VisitMut>::visit_mut_array_lit(&mut **self, node)
52116    }
52117
52118    #[inline]
52119    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat) {
52120        <V as VisitMut>::visit_mut_array_pat(&mut **self, node)
52121    }
52122
52123    #[inline]
52124    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr) {
52125        <V as VisitMut>::visit_mut_arrow_expr(&mut **self, node)
52126    }
52127
52128    #[inline]
52129    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr) {
52130        <V as VisitMut>::visit_mut_assign_expr(&mut **self, node)
52131    }
52132
52133    #[inline]
52134    fn visit_mut_assign_op(&mut self, node: &mut AssignOp) {
52135        <V as VisitMut>::visit_mut_assign_op(&mut **self, node)
52136    }
52137
52138    #[inline]
52139    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat) {
52140        <V as VisitMut>::visit_mut_assign_pat(&mut **self, node)
52141    }
52142
52143    #[inline]
52144    fn visit_mut_assign_pat_prop(&mut self, node: &mut AssignPatProp) {
52145        <V as VisitMut>::visit_mut_assign_pat_prop(&mut **self, node)
52146    }
52147
52148    #[inline]
52149    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp) {
52150        <V as VisitMut>::visit_mut_assign_prop(&mut **self, node)
52151    }
52152
52153    #[inline]
52154    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget) {
52155        <V as VisitMut>::visit_mut_assign_target(&mut **self, node)
52156    }
52157
52158    #[inline]
52159    fn visit_mut_assign_target_pat(&mut self, node: &mut AssignTargetPat) {
52160        <V as VisitMut>::visit_mut_assign_target_pat(&mut **self, node)
52161    }
52162
52163    #[inline]
52164    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom) {
52165        <V as VisitMut>::visit_mut_atom(&mut **self, node)
52166    }
52167
52168    #[inline]
52169    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor) {
52170        <V as VisitMut>::visit_mut_auto_accessor(&mut **self, node)
52171    }
52172
52173    #[inline]
52174    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr) {
52175        <V as VisitMut>::visit_mut_await_expr(&mut **self, node)
52176    }
52177
52178    #[inline]
52179    fn visit_mut_big_int(&mut self, node: &mut BigInt) {
52180        <V as VisitMut>::visit_mut_big_int(&mut **self, node)
52181    }
52182
52183    #[inline]
52184    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue) {
52185        <V as VisitMut>::visit_mut_big_int_value(&mut **self, node)
52186    }
52187
52188    #[inline]
52189    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr) {
52190        <V as VisitMut>::visit_mut_bin_expr(&mut **self, node)
52191    }
52192
52193    #[inline]
52194    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp) {
52195        <V as VisitMut>::visit_mut_binary_op(&mut **self, node)
52196    }
52197
52198    #[inline]
52199    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent) {
52200        <V as VisitMut>::visit_mut_binding_ident(&mut **self, node)
52201    }
52202
52203    #[inline]
52204    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt) {
52205        <V as VisitMut>::visit_mut_block_stmt(&mut **self, node)
52206    }
52207
52208    #[inline]
52209    fn visit_mut_block_stmt_or_expr(&mut self, node: &mut BlockStmtOrExpr) {
52210        <V as VisitMut>::visit_mut_block_stmt_or_expr(&mut **self, node)
52211    }
52212
52213    #[inline]
52214    fn visit_mut_bool(&mut self, node: &mut Bool) {
52215        <V as VisitMut>::visit_mut_bool(&mut **self, node)
52216    }
52217
52218    #[inline]
52219    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt) {
52220        <V as VisitMut>::visit_mut_break_stmt(&mut **self, node)
52221    }
52222
52223    #[inline]
52224    fn visit_mut_call_expr(&mut self, node: &mut CallExpr) {
52225        <V as VisitMut>::visit_mut_call_expr(&mut **self, node)
52226    }
52227
52228    #[inline]
52229    fn visit_mut_callee(&mut self, node: &mut Callee) {
52230        <V as VisitMut>::visit_mut_callee(&mut **self, node)
52231    }
52232
52233    #[inline]
52234    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause) {
52235        <V as VisitMut>::visit_mut_catch_clause(&mut **self, node)
52236    }
52237
52238    #[inline]
52239    fn visit_mut_class(&mut self, node: &mut Class) {
52240        <V as VisitMut>::visit_mut_class(&mut **self, node)
52241    }
52242
52243    #[inline]
52244    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl) {
52245        <V as VisitMut>::visit_mut_class_decl(&mut **self, node)
52246    }
52247
52248    #[inline]
52249    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr) {
52250        <V as VisitMut>::visit_mut_class_expr(&mut **self, node)
52251    }
52252
52253    #[inline]
52254    fn visit_mut_class_member(&mut self, node: &mut ClassMember) {
52255        <V as VisitMut>::visit_mut_class_member(&mut **self, node)
52256    }
52257
52258    #[inline]
52259    fn visit_mut_class_members(&mut self, node: &mut Vec<ClassMember>) {
52260        <V as VisitMut>::visit_mut_class_members(&mut **self, node)
52261    }
52262
52263    #[inline]
52264    fn visit_mut_class_method(&mut self, node: &mut ClassMethod) {
52265        <V as VisitMut>::visit_mut_class_method(&mut **self, node)
52266    }
52267
52268    #[inline]
52269    fn visit_mut_class_prop(&mut self, node: &mut ClassProp) {
52270        <V as VisitMut>::visit_mut_class_prop(&mut **self, node)
52271    }
52272
52273    #[inline]
52274    fn visit_mut_computed_prop_name(&mut self, node: &mut ComputedPropName) {
52275        <V as VisitMut>::visit_mut_computed_prop_name(&mut **self, node)
52276    }
52277
52278    #[inline]
52279    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr) {
52280        <V as VisitMut>::visit_mut_cond_expr(&mut **self, node)
52281    }
52282
52283    #[inline]
52284    fn visit_mut_constructor(&mut self, node: &mut Constructor) {
52285        <V as VisitMut>::visit_mut_constructor(&mut **self, node)
52286    }
52287
52288    #[inline]
52289    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt) {
52290        <V as VisitMut>::visit_mut_continue_stmt(&mut **self, node)
52291    }
52292
52293    #[inline]
52294    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt) {
52295        <V as VisitMut>::visit_mut_debugger_stmt(&mut **self, node)
52296    }
52297
52298    #[inline]
52299    fn visit_mut_decl(&mut self, node: &mut Decl) {
52300        <V as VisitMut>::visit_mut_decl(&mut **self, node)
52301    }
52302
52303    #[inline]
52304    fn visit_mut_decorator(&mut self, node: &mut Decorator) {
52305        <V as VisitMut>::visit_mut_decorator(&mut **self, node)
52306    }
52307
52308    #[inline]
52309    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>) {
52310        <V as VisitMut>::visit_mut_decorators(&mut **self, node)
52311    }
52312
52313    #[inline]
52314    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl) {
52315        <V as VisitMut>::visit_mut_default_decl(&mut **self, node)
52316    }
52317
52318    #[inline]
52319    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt) {
52320        <V as VisitMut>::visit_mut_do_while_stmt(&mut **self, node)
52321    }
52322
52323    #[inline]
52324    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt) {
52325        <V as VisitMut>::visit_mut_empty_stmt(&mut **self, node)
52326    }
52327
52328    #[inline]
52329    fn visit_mut_export_all(&mut self, node: &mut ExportAll) {
52330        <V as VisitMut>::visit_mut_export_all(&mut **self, node)
52331    }
52332
52333    #[inline]
52334    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl) {
52335        <V as VisitMut>::visit_mut_export_decl(&mut **self, node)
52336    }
52337
52338    #[inline]
52339    fn visit_mut_export_default_decl(&mut self, node: &mut ExportDefaultDecl) {
52340        <V as VisitMut>::visit_mut_export_default_decl(&mut **self, node)
52341    }
52342
52343    #[inline]
52344    fn visit_mut_export_default_expr(&mut self, node: &mut ExportDefaultExpr) {
52345        <V as VisitMut>::visit_mut_export_default_expr(&mut **self, node)
52346    }
52347
52348    #[inline]
52349    fn visit_mut_export_default_specifier(&mut self, node: &mut ExportDefaultSpecifier) {
52350        <V as VisitMut>::visit_mut_export_default_specifier(&mut **self, node)
52351    }
52352
52353    #[inline]
52354    fn visit_mut_export_named_specifier(&mut self, node: &mut ExportNamedSpecifier) {
52355        <V as VisitMut>::visit_mut_export_named_specifier(&mut **self, node)
52356    }
52357
52358    #[inline]
52359    fn visit_mut_export_namespace_specifier(&mut self, node: &mut ExportNamespaceSpecifier) {
52360        <V as VisitMut>::visit_mut_export_namespace_specifier(&mut **self, node)
52361    }
52362
52363    #[inline]
52364    fn visit_mut_export_specifier(&mut self, node: &mut ExportSpecifier) {
52365        <V as VisitMut>::visit_mut_export_specifier(&mut **self, node)
52366    }
52367
52368    #[inline]
52369    fn visit_mut_export_specifiers(&mut self, node: &mut Vec<ExportSpecifier>) {
52370        <V as VisitMut>::visit_mut_export_specifiers(&mut **self, node)
52371    }
52372
52373    #[inline]
52374    fn visit_mut_expr(&mut self, node: &mut Expr) {
52375        <V as VisitMut>::visit_mut_expr(&mut **self, node)
52376    }
52377
52378    #[inline]
52379    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread) {
52380        <V as VisitMut>::visit_mut_expr_or_spread(&mut **self, node)
52381    }
52382
52383    #[inline]
52384    fn visit_mut_expr_or_spreads(&mut self, node: &mut Vec<ExprOrSpread>) {
52385        <V as VisitMut>::visit_mut_expr_or_spreads(&mut **self, node)
52386    }
52387
52388    #[inline]
52389    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt) {
52390        <V as VisitMut>::visit_mut_expr_stmt(&mut **self, node)
52391    }
52392
52393    #[inline]
52394    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>) {
52395        <V as VisitMut>::visit_mut_exprs(&mut **self, node)
52396    }
52397
52398    #[inline]
52399    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl) {
52400        <V as VisitMut>::visit_mut_fn_decl(&mut **self, node)
52401    }
52402
52403    #[inline]
52404    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr) {
52405        <V as VisitMut>::visit_mut_fn_expr(&mut **self, node)
52406    }
52407
52408    #[inline]
52409    fn visit_mut_for_head(&mut self, node: &mut ForHead) {
52410        <V as VisitMut>::visit_mut_for_head(&mut **self, node)
52411    }
52412
52413    #[inline]
52414    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt) {
52415        <V as VisitMut>::visit_mut_for_in_stmt(&mut **self, node)
52416    }
52417
52418    #[inline]
52419    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt) {
52420        <V as VisitMut>::visit_mut_for_of_stmt(&mut **self, node)
52421    }
52422
52423    #[inline]
52424    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt) {
52425        <V as VisitMut>::visit_mut_for_stmt(&mut **self, node)
52426    }
52427
52428    #[inline]
52429    fn visit_mut_function(&mut self, node: &mut Function) {
52430        <V as VisitMut>::visit_mut_function(&mut **self, node)
52431    }
52432
52433    #[inline]
52434    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp) {
52435        <V as VisitMut>::visit_mut_getter_prop(&mut **self, node)
52436    }
52437
52438    #[inline]
52439    fn visit_mut_ident(&mut self, node: &mut Ident) {
52440        <V as VisitMut>::visit_mut_ident(&mut **self, node)
52441    }
52442
52443    #[inline]
52444    fn visit_mut_ident_name(&mut self, node: &mut IdentName) {
52445        <V as VisitMut>::visit_mut_ident_name(&mut **self, node)
52446    }
52447
52448    #[inline]
52449    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt) {
52450        <V as VisitMut>::visit_mut_if_stmt(&mut **self, node)
52451    }
52452
52453    #[inline]
52454    fn visit_mut_import(&mut self, node: &mut Import) {
52455        <V as VisitMut>::visit_mut_import(&mut **self, node)
52456    }
52457
52458    #[inline]
52459    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl) {
52460        <V as VisitMut>::visit_mut_import_decl(&mut **self, node)
52461    }
52462
52463    #[inline]
52464    fn visit_mut_import_default_specifier(&mut self, node: &mut ImportDefaultSpecifier) {
52465        <V as VisitMut>::visit_mut_import_default_specifier(&mut **self, node)
52466    }
52467
52468    #[inline]
52469    fn visit_mut_import_named_specifier(&mut self, node: &mut ImportNamedSpecifier) {
52470        <V as VisitMut>::visit_mut_import_named_specifier(&mut **self, node)
52471    }
52472
52473    #[inline]
52474    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase) {
52475        <V as VisitMut>::visit_mut_import_phase(&mut **self, node)
52476    }
52477
52478    #[inline]
52479    fn visit_mut_import_specifier(&mut self, node: &mut ImportSpecifier) {
52480        <V as VisitMut>::visit_mut_import_specifier(&mut **self, node)
52481    }
52482
52483    #[inline]
52484    fn visit_mut_import_specifiers(&mut self, node: &mut Vec<ImportSpecifier>) {
52485        <V as VisitMut>::visit_mut_import_specifiers(&mut **self, node)
52486    }
52487
52488    #[inline]
52489    fn visit_mut_import_star_as_specifier(&mut self, node: &mut ImportStarAsSpecifier) {
52490        <V as VisitMut>::visit_mut_import_star_as_specifier(&mut **self, node)
52491    }
52492
52493    #[inline]
52494    fn visit_mut_import_with(&mut self, node: &mut ImportWith) {
52495        <V as VisitMut>::visit_mut_import_with(&mut **self, node)
52496    }
52497
52498    #[inline]
52499    fn visit_mut_import_with_item(&mut self, node: &mut ImportWithItem) {
52500        <V as VisitMut>::visit_mut_import_with_item(&mut **self, node)
52501    }
52502
52503    #[inline]
52504    fn visit_mut_import_with_items(&mut self, node: &mut Vec<ImportWithItem>) {
52505        <V as VisitMut>::visit_mut_import_with_items(&mut **self, node)
52506    }
52507
52508    #[inline]
52509    fn visit_mut_invalid(&mut self, node: &mut Invalid) {
52510        <V as VisitMut>::visit_mut_invalid(&mut **self, node)
52511    }
52512
52513    #[inline]
52514    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr) {
52515        <V as VisitMut>::visit_mut_jsx_attr(&mut **self, node)
52516    }
52517
52518    #[inline]
52519    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName) {
52520        <V as VisitMut>::visit_mut_jsx_attr_name(&mut **self, node)
52521    }
52522
52523    #[inline]
52524    fn visit_mut_jsx_attr_or_spread(&mut self, node: &mut JSXAttrOrSpread) {
52525        <V as VisitMut>::visit_mut_jsx_attr_or_spread(&mut **self, node)
52526    }
52527
52528    #[inline]
52529    fn visit_mut_jsx_attr_or_spreads(&mut self, node: &mut Vec<JSXAttrOrSpread>) {
52530        <V as VisitMut>::visit_mut_jsx_attr_or_spreads(&mut **self, node)
52531    }
52532
52533    #[inline]
52534    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue) {
52535        <V as VisitMut>::visit_mut_jsx_attr_value(&mut **self, node)
52536    }
52537
52538    #[inline]
52539    fn visit_mut_jsx_closing_element(&mut self, node: &mut JSXClosingElement) {
52540        <V as VisitMut>::visit_mut_jsx_closing_element(&mut **self, node)
52541    }
52542
52543    #[inline]
52544    fn visit_mut_jsx_closing_fragment(&mut self, node: &mut JSXClosingFragment) {
52545        <V as VisitMut>::visit_mut_jsx_closing_fragment(&mut **self, node)
52546    }
52547
52548    #[inline]
52549    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement) {
52550        <V as VisitMut>::visit_mut_jsx_element(&mut **self, node)
52551    }
52552
52553    #[inline]
52554    fn visit_mut_jsx_element_child(&mut self, node: &mut JSXElementChild) {
52555        <V as VisitMut>::visit_mut_jsx_element_child(&mut **self, node)
52556    }
52557
52558    #[inline]
52559    fn visit_mut_jsx_element_childs(&mut self, node: &mut Vec<JSXElementChild>) {
52560        <V as VisitMut>::visit_mut_jsx_element_childs(&mut **self, node)
52561    }
52562
52563    #[inline]
52564    fn visit_mut_jsx_element_name(&mut self, node: &mut JSXElementName) {
52565        <V as VisitMut>::visit_mut_jsx_element_name(&mut **self, node)
52566    }
52567
52568    #[inline]
52569    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr) {
52570        <V as VisitMut>::visit_mut_jsx_empty_expr(&mut **self, node)
52571    }
52572
52573    #[inline]
52574    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr) {
52575        <V as VisitMut>::visit_mut_jsx_expr(&mut **self, node)
52576    }
52577
52578    #[inline]
52579    fn visit_mut_jsx_expr_container(&mut self, node: &mut JSXExprContainer) {
52580        <V as VisitMut>::visit_mut_jsx_expr_container(&mut **self, node)
52581    }
52582
52583    #[inline]
52584    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment) {
52585        <V as VisitMut>::visit_mut_jsx_fragment(&mut **self, node)
52586    }
52587
52588    #[inline]
52589    fn visit_mut_jsx_member_expr(&mut self, node: &mut JSXMemberExpr) {
52590        <V as VisitMut>::visit_mut_jsx_member_expr(&mut **self, node)
52591    }
52592
52593    #[inline]
52594    fn visit_mut_jsx_namespaced_name(&mut self, node: &mut JSXNamespacedName) {
52595        <V as VisitMut>::visit_mut_jsx_namespaced_name(&mut **self, node)
52596    }
52597
52598    #[inline]
52599    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject) {
52600        <V as VisitMut>::visit_mut_jsx_object(&mut **self, node)
52601    }
52602
52603    #[inline]
52604    fn visit_mut_jsx_opening_element(&mut self, node: &mut JSXOpeningElement) {
52605        <V as VisitMut>::visit_mut_jsx_opening_element(&mut **self, node)
52606    }
52607
52608    #[inline]
52609    fn visit_mut_jsx_opening_fragment(&mut self, node: &mut JSXOpeningFragment) {
52610        <V as VisitMut>::visit_mut_jsx_opening_fragment(&mut **self, node)
52611    }
52612
52613    #[inline]
52614    fn visit_mut_jsx_spread_child(&mut self, node: &mut JSXSpreadChild) {
52615        <V as VisitMut>::visit_mut_jsx_spread_child(&mut **self, node)
52616    }
52617
52618    #[inline]
52619    fn visit_mut_jsx_text(&mut self, node: &mut JSXText) {
52620        <V as VisitMut>::visit_mut_jsx_text(&mut **self, node)
52621    }
52622
52623    #[inline]
52624    fn visit_mut_key(&mut self, node: &mut Key) {
52625        <V as VisitMut>::visit_mut_key(&mut **self, node)
52626    }
52627
52628    #[inline]
52629    fn visit_mut_key_value_pat_prop(&mut self, node: &mut KeyValuePatProp) {
52630        <V as VisitMut>::visit_mut_key_value_pat_prop(&mut **self, node)
52631    }
52632
52633    #[inline]
52634    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp) {
52635        <V as VisitMut>::visit_mut_key_value_prop(&mut **self, node)
52636    }
52637
52638    #[inline]
52639    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt) {
52640        <V as VisitMut>::visit_mut_labeled_stmt(&mut **self, node)
52641    }
52642
52643    #[inline]
52644    fn visit_mut_lit(&mut self, node: &mut Lit) {
52645        <V as VisitMut>::visit_mut_lit(&mut **self, node)
52646    }
52647
52648    #[inline]
52649    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr) {
52650        <V as VisitMut>::visit_mut_member_expr(&mut **self, node)
52651    }
52652
52653    #[inline]
52654    fn visit_mut_member_prop(&mut self, node: &mut MemberProp) {
52655        <V as VisitMut>::visit_mut_member_prop(&mut **self, node)
52656    }
52657
52658    #[inline]
52659    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr) {
52660        <V as VisitMut>::visit_mut_meta_prop_expr(&mut **self, node)
52661    }
52662
52663    #[inline]
52664    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind) {
52665        <V as VisitMut>::visit_mut_meta_prop_kind(&mut **self, node)
52666    }
52667
52668    #[inline]
52669    fn visit_mut_method_kind(&mut self, node: &mut MethodKind) {
52670        <V as VisitMut>::visit_mut_method_kind(&mut **self, node)
52671    }
52672
52673    #[inline]
52674    fn visit_mut_method_prop(&mut self, node: &mut MethodProp) {
52675        <V as VisitMut>::visit_mut_method_prop(&mut **self, node)
52676    }
52677
52678    #[inline]
52679    fn visit_mut_module(&mut self, node: &mut Module) {
52680        <V as VisitMut>::visit_mut_module(&mut **self, node)
52681    }
52682
52683    #[inline]
52684    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl) {
52685        <V as VisitMut>::visit_mut_module_decl(&mut **self, node)
52686    }
52687
52688    #[inline]
52689    fn visit_mut_module_export_name(&mut self, node: &mut ModuleExportName) {
52690        <V as VisitMut>::visit_mut_module_export_name(&mut **self, node)
52691    }
52692
52693    #[inline]
52694    fn visit_mut_module_item(&mut self, node: &mut ModuleItem) {
52695        <V as VisitMut>::visit_mut_module_item(&mut **self, node)
52696    }
52697
52698    #[inline]
52699    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>) {
52700        <V as VisitMut>::visit_mut_module_items(&mut **self, node)
52701    }
52702
52703    #[inline]
52704    fn visit_mut_named_export(&mut self, node: &mut NamedExport) {
52705        <V as VisitMut>::visit_mut_named_export(&mut **self, node)
52706    }
52707
52708    #[inline]
52709    fn visit_mut_new_expr(&mut self, node: &mut NewExpr) {
52710        <V as VisitMut>::visit_mut_new_expr(&mut **self, node)
52711    }
52712
52713    #[inline]
52714    fn visit_mut_null(&mut self, node: &mut Null) {
52715        <V as VisitMut>::visit_mut_null(&mut **self, node)
52716    }
52717
52718    #[inline]
52719    fn visit_mut_number(&mut self, node: &mut Number) {
52720        <V as VisitMut>::visit_mut_number(&mut **self, node)
52721    }
52722
52723    #[inline]
52724    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit) {
52725        <V as VisitMut>::visit_mut_object_lit(&mut **self, node)
52726    }
52727
52728    #[inline]
52729    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat) {
52730        <V as VisitMut>::visit_mut_object_pat(&mut **self, node)
52731    }
52732
52733    #[inline]
52734    fn visit_mut_object_pat_prop(&mut self, node: &mut ObjectPatProp) {
52735        <V as VisitMut>::visit_mut_object_pat_prop(&mut **self, node)
52736    }
52737
52738    #[inline]
52739    fn visit_mut_object_pat_props(&mut self, node: &mut Vec<ObjectPatProp>) {
52740        <V as VisitMut>::visit_mut_object_pat_props(&mut **self, node)
52741    }
52742
52743    #[inline]
52744    fn visit_mut_opt_accessibility(&mut self, node: &mut Option<Accessibility>) {
52745        <V as VisitMut>::visit_mut_opt_accessibility(&mut **self, node)
52746    }
52747
52748    #[inline]
52749    fn visit_mut_opt_atom(&mut self, node: &mut Option<swc_atoms::Atom>) {
52750        <V as VisitMut>::visit_mut_opt_atom(&mut **self, node)
52751    }
52752
52753    #[inline]
52754    fn visit_mut_opt_block_stmt(&mut self, node: &mut Option<BlockStmt>) {
52755        <V as VisitMut>::visit_mut_opt_block_stmt(&mut **self, node)
52756    }
52757
52758    #[inline]
52759    fn visit_mut_opt_call(&mut self, node: &mut OptCall) {
52760        <V as VisitMut>::visit_mut_opt_call(&mut **self, node)
52761    }
52762
52763    #[inline]
52764    fn visit_mut_opt_catch_clause(&mut self, node: &mut Option<CatchClause>) {
52765        <V as VisitMut>::visit_mut_opt_catch_clause(&mut **self, node)
52766    }
52767
52768    #[inline]
52769    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase) {
52770        <V as VisitMut>::visit_mut_opt_chain_base(&mut **self, node)
52771    }
52772
52773    #[inline]
52774    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr) {
52775        <V as VisitMut>::visit_mut_opt_chain_expr(&mut **self, node)
52776    }
52777
52778    #[inline]
52779    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>) {
52780        <V as VisitMut>::visit_mut_opt_expr(&mut **self, node)
52781    }
52782
52783    #[inline]
52784    fn visit_mut_opt_expr_or_spread(&mut self, node: &mut Option<ExprOrSpread>) {
52785        <V as VisitMut>::visit_mut_opt_expr_or_spread(&mut **self, node)
52786    }
52787
52788    #[inline]
52789    fn visit_mut_opt_expr_or_spreads(&mut self, node: &mut Option<Vec<ExprOrSpread>>) {
52790        <V as VisitMut>::visit_mut_opt_expr_or_spreads(&mut **self, node)
52791    }
52792
52793    #[inline]
52794    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>) {
52795        <V as VisitMut>::visit_mut_opt_ident(&mut **self, node)
52796    }
52797
52798    #[inline]
52799    fn visit_mut_opt_jsx_attr_value(&mut self, node: &mut Option<JSXAttrValue>) {
52800        <V as VisitMut>::visit_mut_opt_jsx_attr_value(&mut **self, node)
52801    }
52802
52803    #[inline]
52804    fn visit_mut_opt_jsx_closing_element(&mut self, node: &mut Option<JSXClosingElement>) {
52805        <V as VisitMut>::visit_mut_opt_jsx_closing_element(&mut **self, node)
52806    }
52807
52808    #[inline]
52809    fn visit_mut_opt_module_export_name(&mut self, node: &mut Option<ModuleExportName>) {
52810        <V as VisitMut>::visit_mut_opt_module_export_name(&mut **self, node)
52811    }
52812
52813    #[inline]
52814    fn visit_mut_opt_object_lit(&mut self, node: &mut Option<Box<ObjectLit>>) {
52815        <V as VisitMut>::visit_mut_opt_object_lit(&mut **self, node)
52816    }
52817
52818    #[inline]
52819    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>) {
52820        <V as VisitMut>::visit_mut_opt_pat(&mut **self, node)
52821    }
52822
52823    #[inline]
52824    fn visit_mut_opt_span(&mut self, node: &mut Option<swc_common::Span>) {
52825        <V as VisitMut>::visit_mut_opt_span(&mut **self, node)
52826    }
52827
52828    #[inline]
52829    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>) {
52830        <V as VisitMut>::visit_mut_opt_stmt(&mut **self, node)
52831    }
52832
52833    #[inline]
52834    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>) {
52835        <V as VisitMut>::visit_mut_opt_str(&mut **self, node)
52836    }
52837
52838    #[inline]
52839    fn visit_mut_opt_true_plus_minus(&mut self, node: &mut Option<TruePlusMinus>) {
52840        <V as VisitMut>::visit_mut_opt_true_plus_minus(&mut **self, node)
52841    }
52842
52843    #[inline]
52844    fn visit_mut_opt_ts_entity_name(&mut self, node: &mut Option<TsEntityName>) {
52845        <V as VisitMut>::visit_mut_opt_ts_entity_name(&mut **self, node)
52846    }
52847
52848    #[inline]
52849    fn visit_mut_opt_ts_import_call_options(&mut self, node: &mut Option<TsImportCallOptions>) {
52850        <V as VisitMut>::visit_mut_opt_ts_import_call_options(&mut **self, node)
52851    }
52852
52853    #[inline]
52854    fn visit_mut_opt_ts_namespace_body(&mut self, node: &mut Option<TsNamespaceBody>) {
52855        <V as VisitMut>::visit_mut_opt_ts_namespace_body(&mut **self, node)
52856    }
52857
52858    #[inline]
52859    fn visit_mut_opt_ts_type(&mut self, node: &mut Option<Box<TsType>>) {
52860        <V as VisitMut>::visit_mut_opt_ts_type(&mut **self, node)
52861    }
52862
52863    #[inline]
52864    fn visit_mut_opt_ts_type_ann(&mut self, node: &mut Option<Box<TsTypeAnn>>) {
52865        <V as VisitMut>::visit_mut_opt_ts_type_ann(&mut **self, node)
52866    }
52867
52868    #[inline]
52869    fn visit_mut_opt_ts_type_param_decl(&mut self, node: &mut Option<Box<TsTypeParamDecl>>) {
52870        <V as VisitMut>::visit_mut_opt_ts_type_param_decl(&mut **self, node)
52871    }
52872
52873    #[inline]
52874    fn visit_mut_opt_ts_type_param_instantiation(
52875        &mut self,
52876        node: &mut Option<Box<TsTypeParamInstantiation>>,
52877    ) {
52878        <V as VisitMut>::visit_mut_opt_ts_type_param_instantiation(&mut **self, node)
52879    }
52880
52881    #[inline]
52882    fn visit_mut_opt_var_decl_or_expr(&mut self, node: &mut Option<VarDeclOrExpr>) {
52883        <V as VisitMut>::visit_mut_opt_var_decl_or_expr(&mut **self, node)
52884    }
52885
52886    #[inline]
52887    fn visit_mut_opt_vec_expr_or_spreads(&mut self, node: &mut Vec<Option<ExprOrSpread>>) {
52888        <V as VisitMut>::visit_mut_opt_vec_expr_or_spreads(&mut **self, node)
52889    }
52890
52891    #[inline]
52892    fn visit_mut_opt_vec_pats(&mut self, node: &mut Vec<Option<Pat>>) {
52893        <V as VisitMut>::visit_mut_opt_vec_pats(&mut **self, node)
52894    }
52895
52896    #[inline]
52897    fn visit_mut_param(&mut self, node: &mut Param) {
52898        <V as VisitMut>::visit_mut_param(&mut **self, node)
52899    }
52900
52901    #[inline]
52902    fn visit_mut_param_or_ts_param_prop(&mut self, node: &mut ParamOrTsParamProp) {
52903        <V as VisitMut>::visit_mut_param_or_ts_param_prop(&mut **self, node)
52904    }
52905
52906    #[inline]
52907    fn visit_mut_param_or_ts_param_props(&mut self, node: &mut Vec<ParamOrTsParamProp>) {
52908        <V as VisitMut>::visit_mut_param_or_ts_param_props(&mut **self, node)
52909    }
52910
52911    #[inline]
52912    fn visit_mut_params(&mut self, node: &mut Vec<Param>) {
52913        <V as VisitMut>::visit_mut_params(&mut **self, node)
52914    }
52915
52916    #[inline]
52917    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr) {
52918        <V as VisitMut>::visit_mut_paren_expr(&mut **self, node)
52919    }
52920
52921    #[inline]
52922    fn visit_mut_pat(&mut self, node: &mut Pat) {
52923        <V as VisitMut>::visit_mut_pat(&mut **self, node)
52924    }
52925
52926    #[inline]
52927    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>) {
52928        <V as VisitMut>::visit_mut_pats(&mut **self, node)
52929    }
52930
52931    #[inline]
52932    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod) {
52933        <V as VisitMut>::visit_mut_private_method(&mut **self, node)
52934    }
52935
52936    #[inline]
52937    fn visit_mut_private_name(&mut self, node: &mut PrivateName) {
52938        <V as VisitMut>::visit_mut_private_name(&mut **self, node)
52939    }
52940
52941    #[inline]
52942    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp) {
52943        <V as VisitMut>::visit_mut_private_prop(&mut **self, node)
52944    }
52945
52946    #[inline]
52947    fn visit_mut_program(&mut self, node: &mut Program) {
52948        <V as VisitMut>::visit_mut_program(&mut **self, node)
52949    }
52950
52951    #[inline]
52952    fn visit_mut_prop(&mut self, node: &mut Prop) {
52953        <V as VisitMut>::visit_mut_prop(&mut **self, node)
52954    }
52955
52956    #[inline]
52957    fn visit_mut_prop_name(&mut self, node: &mut PropName) {
52958        <V as VisitMut>::visit_mut_prop_name(&mut **self, node)
52959    }
52960
52961    #[inline]
52962    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread) {
52963        <V as VisitMut>::visit_mut_prop_or_spread(&mut **self, node)
52964    }
52965
52966    #[inline]
52967    fn visit_mut_prop_or_spreads(&mut self, node: &mut Vec<PropOrSpread>) {
52968        <V as VisitMut>::visit_mut_prop_or_spreads(&mut **self, node)
52969    }
52970
52971    #[inline]
52972    fn visit_mut_regex(&mut self, node: &mut Regex) {
52973        <V as VisitMut>::visit_mut_regex(&mut **self, node)
52974    }
52975
52976    #[inline]
52977    fn visit_mut_rest_pat(&mut self, node: &mut RestPat) {
52978        <V as VisitMut>::visit_mut_rest_pat(&mut **self, node)
52979    }
52980
52981    #[inline]
52982    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt) {
52983        <V as VisitMut>::visit_mut_return_stmt(&mut **self, node)
52984    }
52985
52986    #[inline]
52987    fn visit_mut_script(&mut self, node: &mut Script) {
52988        <V as VisitMut>::visit_mut_script(&mut **self, node)
52989    }
52990
52991    #[inline]
52992    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr) {
52993        <V as VisitMut>::visit_mut_seq_expr(&mut **self, node)
52994    }
52995
52996    #[inline]
52997    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp) {
52998        <V as VisitMut>::visit_mut_setter_prop(&mut **self, node)
52999    }
53000
53001    #[inline]
53002    fn visit_mut_simple_assign_target(&mut self, node: &mut SimpleAssignTarget) {
53003        <V as VisitMut>::visit_mut_simple_assign_target(&mut **self, node)
53004    }
53005
53006    #[inline]
53007    fn visit_mut_span(&mut self, node: &mut swc_common::Span) {
53008        <V as VisitMut>::visit_mut_span(&mut **self, node)
53009    }
53010
53011    #[inline]
53012    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement) {
53013        <V as VisitMut>::visit_mut_spread_element(&mut **self, node)
53014    }
53015
53016    #[inline]
53017    fn visit_mut_static_block(&mut self, node: &mut StaticBlock) {
53018        <V as VisitMut>::visit_mut_static_block(&mut **self, node)
53019    }
53020
53021    #[inline]
53022    fn visit_mut_stmt(&mut self, node: &mut Stmt) {
53023        <V as VisitMut>::visit_mut_stmt(&mut **self, node)
53024    }
53025
53026    #[inline]
53027    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>) {
53028        <V as VisitMut>::visit_mut_stmts(&mut **self, node)
53029    }
53030
53031    #[inline]
53032    fn visit_mut_str(&mut self, node: &mut Str) {
53033        <V as VisitMut>::visit_mut_str(&mut **self, node)
53034    }
53035
53036    #[inline]
53037    fn visit_mut_super(&mut self, node: &mut Super) {
53038        <V as VisitMut>::visit_mut_super(&mut **self, node)
53039    }
53040
53041    #[inline]
53042    fn visit_mut_super_prop(&mut self, node: &mut SuperProp) {
53043        <V as VisitMut>::visit_mut_super_prop(&mut **self, node)
53044    }
53045
53046    #[inline]
53047    fn visit_mut_super_prop_expr(&mut self, node: &mut SuperPropExpr) {
53048        <V as VisitMut>::visit_mut_super_prop_expr(&mut **self, node)
53049    }
53050
53051    #[inline]
53052    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase) {
53053        <V as VisitMut>::visit_mut_switch_case(&mut **self, node)
53054    }
53055
53056    #[inline]
53057    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>) {
53058        <V as VisitMut>::visit_mut_switch_cases(&mut **self, node)
53059    }
53060
53061    #[inline]
53062    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt) {
53063        <V as VisitMut>::visit_mut_switch_stmt(&mut **self, node)
53064    }
53065
53066    #[inline]
53067    fn visit_mut_syntax_context(&mut self, node: &mut swc_common::SyntaxContext) {
53068        <V as VisitMut>::visit_mut_syntax_context(&mut **self, node)
53069    }
53070
53071    #[inline]
53072    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl) {
53073        <V as VisitMut>::visit_mut_tagged_tpl(&mut **self, node)
53074    }
53075
53076    #[inline]
53077    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr) {
53078        <V as VisitMut>::visit_mut_this_expr(&mut **self, node)
53079    }
53080
53081    #[inline]
53082    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt) {
53083        <V as VisitMut>::visit_mut_throw_stmt(&mut **self, node)
53084    }
53085
53086    #[inline]
53087    fn visit_mut_tpl(&mut self, node: &mut Tpl) {
53088        <V as VisitMut>::visit_mut_tpl(&mut **self, node)
53089    }
53090
53091    #[inline]
53092    fn visit_mut_tpl_element(&mut self, node: &mut TplElement) {
53093        <V as VisitMut>::visit_mut_tpl_element(&mut **self, node)
53094    }
53095
53096    #[inline]
53097    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>) {
53098        <V as VisitMut>::visit_mut_tpl_elements(&mut **self, node)
53099    }
53100
53101    #[inline]
53102    fn visit_mut_true_plus_minus(&mut self, node: &mut TruePlusMinus) {
53103        <V as VisitMut>::visit_mut_true_plus_minus(&mut **self, node)
53104    }
53105
53106    #[inline]
53107    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt) {
53108        <V as VisitMut>::visit_mut_try_stmt(&mut **self, node)
53109    }
53110
53111    #[inline]
53112    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType) {
53113        <V as VisitMut>::visit_mut_ts_array_type(&mut **self, node)
53114    }
53115
53116    #[inline]
53117    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr) {
53118        <V as VisitMut>::visit_mut_ts_as_expr(&mut **self, node)
53119    }
53120
53121    #[inline]
53122    fn visit_mut_ts_call_signature_decl(&mut self, node: &mut TsCallSignatureDecl) {
53123        <V as VisitMut>::visit_mut_ts_call_signature_decl(&mut **self, node)
53124    }
53125
53126    #[inline]
53127    fn visit_mut_ts_conditional_type(&mut self, node: &mut TsConditionalType) {
53128        <V as VisitMut>::visit_mut_ts_conditional_type(&mut **self, node)
53129    }
53130
53131    #[inline]
53132    fn visit_mut_ts_const_assertion(&mut self, node: &mut TsConstAssertion) {
53133        <V as VisitMut>::visit_mut_ts_const_assertion(&mut **self, node)
53134    }
53135
53136    #[inline]
53137    fn visit_mut_ts_construct_signature_decl(&mut self, node: &mut TsConstructSignatureDecl) {
53138        <V as VisitMut>::visit_mut_ts_construct_signature_decl(&mut **self, node)
53139    }
53140
53141    #[inline]
53142    fn visit_mut_ts_constructor_type(&mut self, node: &mut TsConstructorType) {
53143        <V as VisitMut>::visit_mut_ts_constructor_type(&mut **self, node)
53144    }
53145
53146    #[inline]
53147    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName) {
53148        <V as VisitMut>::visit_mut_ts_entity_name(&mut **self, node)
53149    }
53150
53151    #[inline]
53152    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl) {
53153        <V as VisitMut>::visit_mut_ts_enum_decl(&mut **self, node)
53154    }
53155
53156    #[inline]
53157    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember) {
53158        <V as VisitMut>::visit_mut_ts_enum_member(&mut **self, node)
53159    }
53160
53161    #[inline]
53162    fn visit_mut_ts_enum_member_id(&mut self, node: &mut TsEnumMemberId) {
53163        <V as VisitMut>::visit_mut_ts_enum_member_id(&mut **self, node)
53164    }
53165
53166    #[inline]
53167    fn visit_mut_ts_enum_members(&mut self, node: &mut Vec<TsEnumMember>) {
53168        <V as VisitMut>::visit_mut_ts_enum_members(&mut **self, node)
53169    }
53170
53171    #[inline]
53172    fn visit_mut_ts_export_assignment(&mut self, node: &mut TsExportAssignment) {
53173        <V as VisitMut>::visit_mut_ts_export_assignment(&mut **self, node)
53174    }
53175
53176    #[inline]
53177    fn visit_mut_ts_expr_with_type_args(&mut self, node: &mut TsExprWithTypeArgs) {
53178        <V as VisitMut>::visit_mut_ts_expr_with_type_args(&mut **self, node)
53179    }
53180
53181    #[inline]
53182    fn visit_mut_ts_expr_with_type_argss(&mut self, node: &mut Vec<TsExprWithTypeArgs>) {
53183        <V as VisitMut>::visit_mut_ts_expr_with_type_argss(&mut **self, node)
53184    }
53185
53186    #[inline]
53187    fn visit_mut_ts_external_module_ref(&mut self, node: &mut TsExternalModuleRef) {
53188        <V as VisitMut>::visit_mut_ts_external_module_ref(&mut **self, node)
53189    }
53190
53191    #[inline]
53192    fn visit_mut_ts_fn_or_constructor_type(&mut self, node: &mut TsFnOrConstructorType) {
53193        <V as VisitMut>::visit_mut_ts_fn_or_constructor_type(&mut **self, node)
53194    }
53195
53196    #[inline]
53197    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam) {
53198        <V as VisitMut>::visit_mut_ts_fn_param(&mut **self, node)
53199    }
53200
53201    #[inline]
53202    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>) {
53203        <V as VisitMut>::visit_mut_ts_fn_params(&mut **self, node)
53204    }
53205
53206    #[inline]
53207    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType) {
53208        <V as VisitMut>::visit_mut_ts_fn_type(&mut **self, node)
53209    }
53210
53211    #[inline]
53212    fn visit_mut_ts_getter_signature(&mut self, node: &mut TsGetterSignature) {
53213        <V as VisitMut>::visit_mut_ts_getter_signature(&mut **self, node)
53214    }
53215
53216    #[inline]
53217    fn visit_mut_ts_import_call_options(&mut self, node: &mut TsImportCallOptions) {
53218        <V as VisitMut>::visit_mut_ts_import_call_options(&mut **self, node)
53219    }
53220
53221    #[inline]
53222    fn visit_mut_ts_import_equals_decl(&mut self, node: &mut TsImportEqualsDecl) {
53223        <V as VisitMut>::visit_mut_ts_import_equals_decl(&mut **self, node)
53224    }
53225
53226    #[inline]
53227    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType) {
53228        <V as VisitMut>::visit_mut_ts_import_type(&mut **self, node)
53229    }
53230
53231    #[inline]
53232    fn visit_mut_ts_index_signature(&mut self, node: &mut TsIndexSignature) {
53233        <V as VisitMut>::visit_mut_ts_index_signature(&mut **self, node)
53234    }
53235
53236    #[inline]
53237    fn visit_mut_ts_indexed_access_type(&mut self, node: &mut TsIndexedAccessType) {
53238        <V as VisitMut>::visit_mut_ts_indexed_access_type(&mut **self, node)
53239    }
53240
53241    #[inline]
53242    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType) {
53243        <V as VisitMut>::visit_mut_ts_infer_type(&mut **self, node)
53244    }
53245
53246    #[inline]
53247    fn visit_mut_ts_instantiation(&mut self, node: &mut TsInstantiation) {
53248        <V as VisitMut>::visit_mut_ts_instantiation(&mut **self, node)
53249    }
53250
53251    #[inline]
53252    fn visit_mut_ts_interface_body(&mut self, node: &mut TsInterfaceBody) {
53253        <V as VisitMut>::visit_mut_ts_interface_body(&mut **self, node)
53254    }
53255
53256    #[inline]
53257    fn visit_mut_ts_interface_decl(&mut self, node: &mut TsInterfaceDecl) {
53258        <V as VisitMut>::visit_mut_ts_interface_decl(&mut **self, node)
53259    }
53260
53261    #[inline]
53262    fn visit_mut_ts_intersection_type(&mut self, node: &mut TsIntersectionType) {
53263        <V as VisitMut>::visit_mut_ts_intersection_type(&mut **self, node)
53264    }
53265
53266    #[inline]
53267    fn visit_mut_ts_keyword_type(&mut self, node: &mut TsKeywordType) {
53268        <V as VisitMut>::visit_mut_ts_keyword_type(&mut **self, node)
53269    }
53270
53271    #[inline]
53272    fn visit_mut_ts_keyword_type_kind(&mut self, node: &mut TsKeywordTypeKind) {
53273        <V as VisitMut>::visit_mut_ts_keyword_type_kind(&mut **self, node)
53274    }
53275
53276    #[inline]
53277    fn visit_mut_ts_lit(&mut self, node: &mut TsLit) {
53278        <V as VisitMut>::visit_mut_ts_lit(&mut **self, node)
53279    }
53280
53281    #[inline]
53282    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType) {
53283        <V as VisitMut>::visit_mut_ts_lit_type(&mut **self, node)
53284    }
53285
53286    #[inline]
53287    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType) {
53288        <V as VisitMut>::visit_mut_ts_mapped_type(&mut **self, node)
53289    }
53290
53291    #[inline]
53292    fn visit_mut_ts_method_signature(&mut self, node: &mut TsMethodSignature) {
53293        <V as VisitMut>::visit_mut_ts_method_signature(&mut **self, node)
53294    }
53295
53296    #[inline]
53297    fn visit_mut_ts_module_block(&mut self, node: &mut TsModuleBlock) {
53298        <V as VisitMut>::visit_mut_ts_module_block(&mut **self, node)
53299    }
53300
53301    #[inline]
53302    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl) {
53303        <V as VisitMut>::visit_mut_ts_module_decl(&mut **self, node)
53304    }
53305
53306    #[inline]
53307    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName) {
53308        <V as VisitMut>::visit_mut_ts_module_name(&mut **self, node)
53309    }
53310
53311    #[inline]
53312    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef) {
53313        <V as VisitMut>::visit_mut_ts_module_ref(&mut **self, node)
53314    }
53315
53316    #[inline]
53317    fn visit_mut_ts_namespace_body(&mut self, node: &mut TsNamespaceBody) {
53318        <V as VisitMut>::visit_mut_ts_namespace_body(&mut **self, node)
53319    }
53320
53321    #[inline]
53322    fn visit_mut_ts_namespace_decl(&mut self, node: &mut TsNamespaceDecl) {
53323        <V as VisitMut>::visit_mut_ts_namespace_decl(&mut **self, node)
53324    }
53325
53326    #[inline]
53327    fn visit_mut_ts_namespace_export_decl(&mut self, node: &mut TsNamespaceExportDecl) {
53328        <V as VisitMut>::visit_mut_ts_namespace_export_decl(&mut **self, node)
53329    }
53330
53331    #[inline]
53332    fn visit_mut_ts_non_null_expr(&mut self, node: &mut TsNonNullExpr) {
53333        <V as VisitMut>::visit_mut_ts_non_null_expr(&mut **self, node)
53334    }
53335
53336    #[inline]
53337    fn visit_mut_ts_optional_type(&mut self, node: &mut TsOptionalType) {
53338        <V as VisitMut>::visit_mut_ts_optional_type(&mut **self, node)
53339    }
53340
53341    #[inline]
53342    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp) {
53343        <V as VisitMut>::visit_mut_ts_param_prop(&mut **self, node)
53344    }
53345
53346    #[inline]
53347    fn visit_mut_ts_param_prop_param(&mut self, node: &mut TsParamPropParam) {
53348        <V as VisitMut>::visit_mut_ts_param_prop_param(&mut **self, node)
53349    }
53350
53351    #[inline]
53352    fn visit_mut_ts_parenthesized_type(&mut self, node: &mut TsParenthesizedType) {
53353        <V as VisitMut>::visit_mut_ts_parenthesized_type(&mut **self, node)
53354    }
53355
53356    #[inline]
53357    fn visit_mut_ts_property_signature(&mut self, node: &mut TsPropertySignature) {
53358        <V as VisitMut>::visit_mut_ts_property_signature(&mut **self, node)
53359    }
53360
53361    #[inline]
53362    fn visit_mut_ts_qualified_name(&mut self, node: &mut TsQualifiedName) {
53363        <V as VisitMut>::visit_mut_ts_qualified_name(&mut **self, node)
53364    }
53365
53366    #[inline]
53367    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType) {
53368        <V as VisitMut>::visit_mut_ts_rest_type(&mut **self, node)
53369    }
53370
53371    #[inline]
53372    fn visit_mut_ts_satisfies_expr(&mut self, node: &mut TsSatisfiesExpr) {
53373        <V as VisitMut>::visit_mut_ts_satisfies_expr(&mut **self, node)
53374    }
53375
53376    #[inline]
53377    fn visit_mut_ts_setter_signature(&mut self, node: &mut TsSetterSignature) {
53378        <V as VisitMut>::visit_mut_ts_setter_signature(&mut **self, node)
53379    }
53380
53381    #[inline]
53382    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType) {
53383        <V as VisitMut>::visit_mut_ts_this_type(&mut **self, node)
53384    }
53385
53386    #[inline]
53387    fn visit_mut_ts_this_type_or_ident(&mut self, node: &mut TsThisTypeOrIdent) {
53388        <V as VisitMut>::visit_mut_ts_this_type_or_ident(&mut **self, node)
53389    }
53390
53391    #[inline]
53392    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType) {
53393        <V as VisitMut>::visit_mut_ts_tpl_lit_type(&mut **self, node)
53394    }
53395
53396    #[inline]
53397    fn visit_mut_ts_tuple_element(&mut self, node: &mut TsTupleElement) {
53398        <V as VisitMut>::visit_mut_ts_tuple_element(&mut **self, node)
53399    }
53400
53401    #[inline]
53402    fn visit_mut_ts_tuple_elements(&mut self, node: &mut Vec<TsTupleElement>) {
53403        <V as VisitMut>::visit_mut_ts_tuple_elements(&mut **self, node)
53404    }
53405
53406    #[inline]
53407    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType) {
53408        <V as VisitMut>::visit_mut_ts_tuple_type(&mut **self, node)
53409    }
53410
53411    #[inline]
53412    fn visit_mut_ts_type(&mut self, node: &mut TsType) {
53413        <V as VisitMut>::visit_mut_ts_type(&mut **self, node)
53414    }
53415
53416    #[inline]
53417    fn visit_mut_ts_type_alias_decl(&mut self, node: &mut TsTypeAliasDecl) {
53418        <V as VisitMut>::visit_mut_ts_type_alias_decl(&mut **self, node)
53419    }
53420
53421    #[inline]
53422    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn) {
53423        <V as VisitMut>::visit_mut_ts_type_ann(&mut **self, node)
53424    }
53425
53426    #[inline]
53427    fn visit_mut_ts_type_assertion(&mut self, node: &mut TsTypeAssertion) {
53428        <V as VisitMut>::visit_mut_ts_type_assertion(&mut **self, node)
53429    }
53430
53431    #[inline]
53432    fn visit_mut_ts_type_element(&mut self, node: &mut TsTypeElement) {
53433        <V as VisitMut>::visit_mut_ts_type_element(&mut **self, node)
53434    }
53435
53436    #[inline]
53437    fn visit_mut_ts_type_elements(&mut self, node: &mut Vec<TsTypeElement>) {
53438        <V as VisitMut>::visit_mut_ts_type_elements(&mut **self, node)
53439    }
53440
53441    #[inline]
53442    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit) {
53443        <V as VisitMut>::visit_mut_ts_type_lit(&mut **self, node)
53444    }
53445
53446    #[inline]
53447    fn visit_mut_ts_type_operator(&mut self, node: &mut TsTypeOperator) {
53448        <V as VisitMut>::visit_mut_ts_type_operator(&mut **self, node)
53449    }
53450
53451    #[inline]
53452    fn visit_mut_ts_type_operator_op(&mut self, node: &mut TsTypeOperatorOp) {
53453        <V as VisitMut>::visit_mut_ts_type_operator_op(&mut **self, node)
53454    }
53455
53456    #[inline]
53457    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam) {
53458        <V as VisitMut>::visit_mut_ts_type_param(&mut **self, node)
53459    }
53460
53461    #[inline]
53462    fn visit_mut_ts_type_param_decl(&mut self, node: &mut TsTypeParamDecl) {
53463        <V as VisitMut>::visit_mut_ts_type_param_decl(&mut **self, node)
53464    }
53465
53466    #[inline]
53467    fn visit_mut_ts_type_param_instantiation(&mut self, node: &mut TsTypeParamInstantiation) {
53468        <V as VisitMut>::visit_mut_ts_type_param_instantiation(&mut **self, node)
53469    }
53470
53471    #[inline]
53472    fn visit_mut_ts_type_params(&mut self, node: &mut Vec<TsTypeParam>) {
53473        <V as VisitMut>::visit_mut_ts_type_params(&mut **self, node)
53474    }
53475
53476    #[inline]
53477    fn visit_mut_ts_type_predicate(&mut self, node: &mut TsTypePredicate) {
53478        <V as VisitMut>::visit_mut_ts_type_predicate(&mut **self, node)
53479    }
53480
53481    #[inline]
53482    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery) {
53483        <V as VisitMut>::visit_mut_ts_type_query(&mut **self, node)
53484    }
53485
53486    #[inline]
53487    fn visit_mut_ts_type_query_expr(&mut self, node: &mut TsTypeQueryExpr) {
53488        <V as VisitMut>::visit_mut_ts_type_query_expr(&mut **self, node)
53489    }
53490
53491    #[inline]
53492    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef) {
53493        <V as VisitMut>::visit_mut_ts_type_ref(&mut **self, node)
53494    }
53495
53496    #[inline]
53497    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>) {
53498        <V as VisitMut>::visit_mut_ts_types(&mut **self, node)
53499    }
53500
53501    #[inline]
53502    fn visit_mut_ts_union_or_intersection_type(&mut self, node: &mut TsUnionOrIntersectionType) {
53503        <V as VisitMut>::visit_mut_ts_union_or_intersection_type(&mut **self, node)
53504    }
53505
53506    #[inline]
53507    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType) {
53508        <V as VisitMut>::visit_mut_ts_union_type(&mut **self, node)
53509    }
53510
53511    #[inline]
53512    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr) {
53513        <V as VisitMut>::visit_mut_unary_expr(&mut **self, node)
53514    }
53515
53516    #[inline]
53517    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp) {
53518        <V as VisitMut>::visit_mut_unary_op(&mut **self, node)
53519    }
53520
53521    #[inline]
53522    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr) {
53523        <V as VisitMut>::visit_mut_update_expr(&mut **self, node)
53524    }
53525
53526    #[inline]
53527    fn visit_mut_update_op(&mut self, node: &mut UpdateOp) {
53528        <V as VisitMut>::visit_mut_update_op(&mut **self, node)
53529    }
53530
53531    #[inline]
53532    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl) {
53533        <V as VisitMut>::visit_mut_using_decl(&mut **self, node)
53534    }
53535
53536    #[inline]
53537    fn visit_mut_var_decl(&mut self, node: &mut VarDecl) {
53538        <V as VisitMut>::visit_mut_var_decl(&mut **self, node)
53539    }
53540
53541    #[inline]
53542    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind) {
53543        <V as VisitMut>::visit_mut_var_decl_kind(&mut **self, node)
53544    }
53545
53546    #[inline]
53547    fn visit_mut_var_decl_or_expr(&mut self, node: &mut VarDeclOrExpr) {
53548        <V as VisitMut>::visit_mut_var_decl_or_expr(&mut **self, node)
53549    }
53550
53551    #[inline]
53552    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator) {
53553        <V as VisitMut>::visit_mut_var_declarator(&mut **self, node)
53554    }
53555
53556    #[inline]
53557    fn visit_mut_var_declarators(&mut self, node: &mut Vec<VarDeclarator>) {
53558        <V as VisitMut>::visit_mut_var_declarators(&mut **self, node)
53559    }
53560
53561    #[inline]
53562    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt) {
53563        <V as VisitMut>::visit_mut_while_stmt(&mut **self, node)
53564    }
53565
53566    #[inline]
53567    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt) {
53568        <V as VisitMut>::visit_mut_with_stmt(&mut **self, node)
53569    }
53570
53571    #[inline]
53572    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr) {
53573        <V as VisitMut>::visit_mut_yield_expr(&mut **self, node)
53574    }
53575}
53576impl<A, B> VisitMut for ::swc_visit::Either<A, B>
53577where
53578    A: VisitMut,
53579    B: VisitMut,
53580{
53581    #[inline]
53582    fn visit_mut_accessibility(&mut self, node: &mut Accessibility) {
53583        match self {
53584            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_accessibility(visitor, node),
53585            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_accessibility(visitor, node),
53586        }
53587    }
53588
53589    #[inline]
53590    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit) {
53591        match self {
53592            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_array_lit(visitor, node),
53593            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_array_lit(visitor, node),
53594        }
53595    }
53596
53597    #[inline]
53598    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat) {
53599        match self {
53600            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_array_pat(visitor, node),
53601            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_array_pat(visitor, node),
53602        }
53603    }
53604
53605    #[inline]
53606    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr) {
53607        match self {
53608            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_arrow_expr(visitor, node),
53609            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_arrow_expr(visitor, node),
53610        }
53611    }
53612
53613    #[inline]
53614    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr) {
53615        match self {
53616            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_assign_expr(visitor, node),
53617            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_assign_expr(visitor, node),
53618        }
53619    }
53620
53621    #[inline]
53622    fn visit_mut_assign_op(&mut self, node: &mut AssignOp) {
53623        match self {
53624            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_assign_op(visitor, node),
53625            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_assign_op(visitor, node),
53626        }
53627    }
53628
53629    #[inline]
53630    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat) {
53631        match self {
53632            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_assign_pat(visitor, node),
53633            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_assign_pat(visitor, node),
53634        }
53635    }
53636
53637    #[inline]
53638    fn visit_mut_assign_pat_prop(&mut self, node: &mut AssignPatProp) {
53639        match self {
53640            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_assign_pat_prop(visitor, node),
53641            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_assign_pat_prop(visitor, node),
53642        }
53643    }
53644
53645    #[inline]
53646    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp) {
53647        match self {
53648            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_assign_prop(visitor, node),
53649            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_assign_prop(visitor, node),
53650        }
53651    }
53652
53653    #[inline]
53654    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget) {
53655        match self {
53656            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_assign_target(visitor, node),
53657            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_assign_target(visitor, node),
53658        }
53659    }
53660
53661    #[inline]
53662    fn visit_mut_assign_target_pat(&mut self, node: &mut AssignTargetPat) {
53663        match self {
53664            swc_visit::Either::Left(visitor) => {
53665                VisitMut::visit_mut_assign_target_pat(visitor, node)
53666            }
53667            swc_visit::Either::Right(visitor) => {
53668                VisitMut::visit_mut_assign_target_pat(visitor, node)
53669            }
53670        }
53671    }
53672
53673    #[inline]
53674    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom) {
53675        match self {
53676            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_atom(visitor, node),
53677            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_atom(visitor, node),
53678        }
53679    }
53680
53681    #[inline]
53682    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor) {
53683        match self {
53684            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_auto_accessor(visitor, node),
53685            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_auto_accessor(visitor, node),
53686        }
53687    }
53688
53689    #[inline]
53690    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr) {
53691        match self {
53692            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_await_expr(visitor, node),
53693            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_await_expr(visitor, node),
53694        }
53695    }
53696
53697    #[inline]
53698    fn visit_mut_big_int(&mut self, node: &mut BigInt) {
53699        match self {
53700            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_big_int(visitor, node),
53701            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_big_int(visitor, node),
53702        }
53703    }
53704
53705    #[inline]
53706    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue) {
53707        match self {
53708            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_big_int_value(visitor, node),
53709            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_big_int_value(visitor, node),
53710        }
53711    }
53712
53713    #[inline]
53714    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr) {
53715        match self {
53716            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_bin_expr(visitor, node),
53717            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_bin_expr(visitor, node),
53718        }
53719    }
53720
53721    #[inline]
53722    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp) {
53723        match self {
53724            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_binary_op(visitor, node),
53725            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_binary_op(visitor, node),
53726        }
53727    }
53728
53729    #[inline]
53730    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent) {
53731        match self {
53732            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_binding_ident(visitor, node),
53733            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_binding_ident(visitor, node),
53734        }
53735    }
53736
53737    #[inline]
53738    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt) {
53739        match self {
53740            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_block_stmt(visitor, node),
53741            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_block_stmt(visitor, node),
53742        }
53743    }
53744
53745    #[inline]
53746    fn visit_mut_block_stmt_or_expr(&mut self, node: &mut BlockStmtOrExpr) {
53747        match self {
53748            swc_visit::Either::Left(visitor) => {
53749                VisitMut::visit_mut_block_stmt_or_expr(visitor, node)
53750            }
53751            swc_visit::Either::Right(visitor) => {
53752                VisitMut::visit_mut_block_stmt_or_expr(visitor, node)
53753            }
53754        }
53755    }
53756
53757    #[inline]
53758    fn visit_mut_bool(&mut self, node: &mut Bool) {
53759        match self {
53760            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_bool(visitor, node),
53761            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_bool(visitor, node),
53762        }
53763    }
53764
53765    #[inline]
53766    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt) {
53767        match self {
53768            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_break_stmt(visitor, node),
53769            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_break_stmt(visitor, node),
53770        }
53771    }
53772
53773    #[inline]
53774    fn visit_mut_call_expr(&mut self, node: &mut CallExpr) {
53775        match self {
53776            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_call_expr(visitor, node),
53777            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_call_expr(visitor, node),
53778        }
53779    }
53780
53781    #[inline]
53782    fn visit_mut_callee(&mut self, node: &mut Callee) {
53783        match self {
53784            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_callee(visitor, node),
53785            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_callee(visitor, node),
53786        }
53787    }
53788
53789    #[inline]
53790    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause) {
53791        match self {
53792            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_catch_clause(visitor, node),
53793            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_catch_clause(visitor, node),
53794        }
53795    }
53796
53797    #[inline]
53798    fn visit_mut_class(&mut self, node: &mut Class) {
53799        match self {
53800            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_class(visitor, node),
53801            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_class(visitor, node),
53802        }
53803    }
53804
53805    #[inline]
53806    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl) {
53807        match self {
53808            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_class_decl(visitor, node),
53809            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_class_decl(visitor, node),
53810        }
53811    }
53812
53813    #[inline]
53814    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr) {
53815        match self {
53816            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_class_expr(visitor, node),
53817            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_class_expr(visitor, node),
53818        }
53819    }
53820
53821    #[inline]
53822    fn visit_mut_class_member(&mut self, node: &mut ClassMember) {
53823        match self {
53824            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_class_member(visitor, node),
53825            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_class_member(visitor, node),
53826        }
53827    }
53828
53829    #[inline]
53830    fn visit_mut_class_members(&mut self, node: &mut Vec<ClassMember>) {
53831        match self {
53832            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_class_members(visitor, node),
53833            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_class_members(visitor, node),
53834        }
53835    }
53836
53837    #[inline]
53838    fn visit_mut_class_method(&mut self, node: &mut ClassMethod) {
53839        match self {
53840            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_class_method(visitor, node),
53841            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_class_method(visitor, node),
53842        }
53843    }
53844
53845    #[inline]
53846    fn visit_mut_class_prop(&mut self, node: &mut ClassProp) {
53847        match self {
53848            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_class_prop(visitor, node),
53849            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_class_prop(visitor, node),
53850        }
53851    }
53852
53853    #[inline]
53854    fn visit_mut_computed_prop_name(&mut self, node: &mut ComputedPropName) {
53855        match self {
53856            swc_visit::Either::Left(visitor) => {
53857                VisitMut::visit_mut_computed_prop_name(visitor, node)
53858            }
53859            swc_visit::Either::Right(visitor) => {
53860                VisitMut::visit_mut_computed_prop_name(visitor, node)
53861            }
53862        }
53863    }
53864
53865    #[inline]
53866    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr) {
53867        match self {
53868            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_cond_expr(visitor, node),
53869            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_cond_expr(visitor, node),
53870        }
53871    }
53872
53873    #[inline]
53874    fn visit_mut_constructor(&mut self, node: &mut Constructor) {
53875        match self {
53876            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_constructor(visitor, node),
53877            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_constructor(visitor, node),
53878        }
53879    }
53880
53881    #[inline]
53882    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt) {
53883        match self {
53884            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_continue_stmt(visitor, node),
53885            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_continue_stmt(visitor, node),
53886        }
53887    }
53888
53889    #[inline]
53890    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt) {
53891        match self {
53892            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_debugger_stmt(visitor, node),
53893            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_debugger_stmt(visitor, node),
53894        }
53895    }
53896
53897    #[inline]
53898    fn visit_mut_decl(&mut self, node: &mut Decl) {
53899        match self {
53900            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_decl(visitor, node),
53901            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_decl(visitor, node),
53902        }
53903    }
53904
53905    #[inline]
53906    fn visit_mut_decorator(&mut self, node: &mut Decorator) {
53907        match self {
53908            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_decorator(visitor, node),
53909            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_decorator(visitor, node),
53910        }
53911    }
53912
53913    #[inline]
53914    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>) {
53915        match self {
53916            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_decorators(visitor, node),
53917            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_decorators(visitor, node),
53918        }
53919    }
53920
53921    #[inline]
53922    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl) {
53923        match self {
53924            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_default_decl(visitor, node),
53925            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_default_decl(visitor, node),
53926        }
53927    }
53928
53929    #[inline]
53930    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt) {
53931        match self {
53932            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_do_while_stmt(visitor, node),
53933            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_do_while_stmt(visitor, node),
53934        }
53935    }
53936
53937    #[inline]
53938    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt) {
53939        match self {
53940            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_empty_stmt(visitor, node),
53941            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_empty_stmt(visitor, node),
53942        }
53943    }
53944
53945    #[inline]
53946    fn visit_mut_export_all(&mut self, node: &mut ExportAll) {
53947        match self {
53948            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_export_all(visitor, node),
53949            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_export_all(visitor, node),
53950        }
53951    }
53952
53953    #[inline]
53954    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl) {
53955        match self {
53956            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_export_decl(visitor, node),
53957            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_export_decl(visitor, node),
53958        }
53959    }
53960
53961    #[inline]
53962    fn visit_mut_export_default_decl(&mut self, node: &mut ExportDefaultDecl) {
53963        match self {
53964            swc_visit::Either::Left(visitor) => {
53965                VisitMut::visit_mut_export_default_decl(visitor, node)
53966            }
53967            swc_visit::Either::Right(visitor) => {
53968                VisitMut::visit_mut_export_default_decl(visitor, node)
53969            }
53970        }
53971    }
53972
53973    #[inline]
53974    fn visit_mut_export_default_expr(&mut self, node: &mut ExportDefaultExpr) {
53975        match self {
53976            swc_visit::Either::Left(visitor) => {
53977                VisitMut::visit_mut_export_default_expr(visitor, node)
53978            }
53979            swc_visit::Either::Right(visitor) => {
53980                VisitMut::visit_mut_export_default_expr(visitor, node)
53981            }
53982        }
53983    }
53984
53985    #[inline]
53986    fn visit_mut_export_default_specifier(&mut self, node: &mut ExportDefaultSpecifier) {
53987        match self {
53988            swc_visit::Either::Left(visitor) => {
53989                VisitMut::visit_mut_export_default_specifier(visitor, node)
53990            }
53991            swc_visit::Either::Right(visitor) => {
53992                VisitMut::visit_mut_export_default_specifier(visitor, node)
53993            }
53994        }
53995    }
53996
53997    #[inline]
53998    fn visit_mut_export_named_specifier(&mut self, node: &mut ExportNamedSpecifier) {
53999        match self {
54000            swc_visit::Either::Left(visitor) => {
54001                VisitMut::visit_mut_export_named_specifier(visitor, node)
54002            }
54003            swc_visit::Either::Right(visitor) => {
54004                VisitMut::visit_mut_export_named_specifier(visitor, node)
54005            }
54006        }
54007    }
54008
54009    #[inline]
54010    fn visit_mut_export_namespace_specifier(&mut self, node: &mut ExportNamespaceSpecifier) {
54011        match self {
54012            swc_visit::Either::Left(visitor) => {
54013                VisitMut::visit_mut_export_namespace_specifier(visitor, node)
54014            }
54015            swc_visit::Either::Right(visitor) => {
54016                VisitMut::visit_mut_export_namespace_specifier(visitor, node)
54017            }
54018        }
54019    }
54020
54021    #[inline]
54022    fn visit_mut_export_specifier(&mut self, node: &mut ExportSpecifier) {
54023        match self {
54024            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_export_specifier(visitor, node),
54025            swc_visit::Either::Right(visitor) => {
54026                VisitMut::visit_mut_export_specifier(visitor, node)
54027            }
54028        }
54029    }
54030
54031    #[inline]
54032    fn visit_mut_export_specifiers(&mut self, node: &mut Vec<ExportSpecifier>) {
54033        match self {
54034            swc_visit::Either::Left(visitor) => {
54035                VisitMut::visit_mut_export_specifiers(visitor, node)
54036            }
54037            swc_visit::Either::Right(visitor) => {
54038                VisitMut::visit_mut_export_specifiers(visitor, node)
54039            }
54040        }
54041    }
54042
54043    #[inline]
54044    fn visit_mut_expr(&mut self, node: &mut Expr) {
54045        match self {
54046            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_expr(visitor, node),
54047            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_expr(visitor, node),
54048        }
54049    }
54050
54051    #[inline]
54052    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread) {
54053        match self {
54054            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_expr_or_spread(visitor, node),
54055            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_expr_or_spread(visitor, node),
54056        }
54057    }
54058
54059    #[inline]
54060    fn visit_mut_expr_or_spreads(&mut self, node: &mut Vec<ExprOrSpread>) {
54061        match self {
54062            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_expr_or_spreads(visitor, node),
54063            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_expr_or_spreads(visitor, node),
54064        }
54065    }
54066
54067    #[inline]
54068    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt) {
54069        match self {
54070            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_expr_stmt(visitor, node),
54071            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_expr_stmt(visitor, node),
54072        }
54073    }
54074
54075    #[inline]
54076    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>) {
54077        match self {
54078            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_exprs(visitor, node),
54079            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_exprs(visitor, node),
54080        }
54081    }
54082
54083    #[inline]
54084    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl) {
54085        match self {
54086            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_fn_decl(visitor, node),
54087            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_fn_decl(visitor, node),
54088        }
54089    }
54090
54091    #[inline]
54092    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr) {
54093        match self {
54094            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_fn_expr(visitor, node),
54095            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_fn_expr(visitor, node),
54096        }
54097    }
54098
54099    #[inline]
54100    fn visit_mut_for_head(&mut self, node: &mut ForHead) {
54101        match self {
54102            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_for_head(visitor, node),
54103            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_for_head(visitor, node),
54104        }
54105    }
54106
54107    #[inline]
54108    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt) {
54109        match self {
54110            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_for_in_stmt(visitor, node),
54111            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_for_in_stmt(visitor, node),
54112        }
54113    }
54114
54115    #[inline]
54116    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt) {
54117        match self {
54118            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_for_of_stmt(visitor, node),
54119            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_for_of_stmt(visitor, node),
54120        }
54121    }
54122
54123    #[inline]
54124    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt) {
54125        match self {
54126            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_for_stmt(visitor, node),
54127            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_for_stmt(visitor, node),
54128        }
54129    }
54130
54131    #[inline]
54132    fn visit_mut_function(&mut self, node: &mut Function) {
54133        match self {
54134            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_function(visitor, node),
54135            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_function(visitor, node),
54136        }
54137    }
54138
54139    #[inline]
54140    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp) {
54141        match self {
54142            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_getter_prop(visitor, node),
54143            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_getter_prop(visitor, node),
54144        }
54145    }
54146
54147    #[inline]
54148    fn visit_mut_ident(&mut self, node: &mut Ident) {
54149        match self {
54150            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ident(visitor, node),
54151            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ident(visitor, node),
54152        }
54153    }
54154
54155    #[inline]
54156    fn visit_mut_ident_name(&mut self, node: &mut IdentName) {
54157        match self {
54158            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ident_name(visitor, node),
54159            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ident_name(visitor, node),
54160        }
54161    }
54162
54163    #[inline]
54164    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt) {
54165        match self {
54166            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_if_stmt(visitor, node),
54167            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_if_stmt(visitor, node),
54168        }
54169    }
54170
54171    #[inline]
54172    fn visit_mut_import(&mut self, node: &mut Import) {
54173        match self {
54174            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_import(visitor, node),
54175            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_import(visitor, node),
54176        }
54177    }
54178
54179    #[inline]
54180    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl) {
54181        match self {
54182            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_import_decl(visitor, node),
54183            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_import_decl(visitor, node),
54184        }
54185    }
54186
54187    #[inline]
54188    fn visit_mut_import_default_specifier(&mut self, node: &mut ImportDefaultSpecifier) {
54189        match self {
54190            swc_visit::Either::Left(visitor) => {
54191                VisitMut::visit_mut_import_default_specifier(visitor, node)
54192            }
54193            swc_visit::Either::Right(visitor) => {
54194                VisitMut::visit_mut_import_default_specifier(visitor, node)
54195            }
54196        }
54197    }
54198
54199    #[inline]
54200    fn visit_mut_import_named_specifier(&mut self, node: &mut ImportNamedSpecifier) {
54201        match self {
54202            swc_visit::Either::Left(visitor) => {
54203                VisitMut::visit_mut_import_named_specifier(visitor, node)
54204            }
54205            swc_visit::Either::Right(visitor) => {
54206                VisitMut::visit_mut_import_named_specifier(visitor, node)
54207            }
54208        }
54209    }
54210
54211    #[inline]
54212    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase) {
54213        match self {
54214            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_import_phase(visitor, node),
54215            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_import_phase(visitor, node),
54216        }
54217    }
54218
54219    #[inline]
54220    fn visit_mut_import_specifier(&mut self, node: &mut ImportSpecifier) {
54221        match self {
54222            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_import_specifier(visitor, node),
54223            swc_visit::Either::Right(visitor) => {
54224                VisitMut::visit_mut_import_specifier(visitor, node)
54225            }
54226        }
54227    }
54228
54229    #[inline]
54230    fn visit_mut_import_specifiers(&mut self, node: &mut Vec<ImportSpecifier>) {
54231        match self {
54232            swc_visit::Either::Left(visitor) => {
54233                VisitMut::visit_mut_import_specifiers(visitor, node)
54234            }
54235            swc_visit::Either::Right(visitor) => {
54236                VisitMut::visit_mut_import_specifiers(visitor, node)
54237            }
54238        }
54239    }
54240
54241    #[inline]
54242    fn visit_mut_import_star_as_specifier(&mut self, node: &mut ImportStarAsSpecifier) {
54243        match self {
54244            swc_visit::Either::Left(visitor) => {
54245                VisitMut::visit_mut_import_star_as_specifier(visitor, node)
54246            }
54247            swc_visit::Either::Right(visitor) => {
54248                VisitMut::visit_mut_import_star_as_specifier(visitor, node)
54249            }
54250        }
54251    }
54252
54253    #[inline]
54254    fn visit_mut_import_with(&mut self, node: &mut ImportWith) {
54255        match self {
54256            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_import_with(visitor, node),
54257            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_import_with(visitor, node),
54258        }
54259    }
54260
54261    #[inline]
54262    fn visit_mut_import_with_item(&mut self, node: &mut ImportWithItem) {
54263        match self {
54264            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_import_with_item(visitor, node),
54265            swc_visit::Either::Right(visitor) => {
54266                VisitMut::visit_mut_import_with_item(visitor, node)
54267            }
54268        }
54269    }
54270
54271    #[inline]
54272    fn visit_mut_import_with_items(&mut self, node: &mut Vec<ImportWithItem>) {
54273        match self {
54274            swc_visit::Either::Left(visitor) => {
54275                VisitMut::visit_mut_import_with_items(visitor, node)
54276            }
54277            swc_visit::Either::Right(visitor) => {
54278                VisitMut::visit_mut_import_with_items(visitor, node)
54279            }
54280        }
54281    }
54282
54283    #[inline]
54284    fn visit_mut_invalid(&mut self, node: &mut Invalid) {
54285        match self {
54286            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_invalid(visitor, node),
54287            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_invalid(visitor, node),
54288        }
54289    }
54290
54291    #[inline]
54292    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr) {
54293        match self {
54294            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_attr(visitor, node),
54295            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_attr(visitor, node),
54296        }
54297    }
54298
54299    #[inline]
54300    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName) {
54301        match self {
54302            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_attr_name(visitor, node),
54303            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_attr_name(visitor, node),
54304        }
54305    }
54306
54307    #[inline]
54308    fn visit_mut_jsx_attr_or_spread(&mut self, node: &mut JSXAttrOrSpread) {
54309        match self {
54310            swc_visit::Either::Left(visitor) => {
54311                VisitMut::visit_mut_jsx_attr_or_spread(visitor, node)
54312            }
54313            swc_visit::Either::Right(visitor) => {
54314                VisitMut::visit_mut_jsx_attr_or_spread(visitor, node)
54315            }
54316        }
54317    }
54318
54319    #[inline]
54320    fn visit_mut_jsx_attr_or_spreads(&mut self, node: &mut Vec<JSXAttrOrSpread>) {
54321        match self {
54322            swc_visit::Either::Left(visitor) => {
54323                VisitMut::visit_mut_jsx_attr_or_spreads(visitor, node)
54324            }
54325            swc_visit::Either::Right(visitor) => {
54326                VisitMut::visit_mut_jsx_attr_or_spreads(visitor, node)
54327            }
54328        }
54329    }
54330
54331    #[inline]
54332    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue) {
54333        match self {
54334            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_attr_value(visitor, node),
54335            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_attr_value(visitor, node),
54336        }
54337    }
54338
54339    #[inline]
54340    fn visit_mut_jsx_closing_element(&mut self, node: &mut JSXClosingElement) {
54341        match self {
54342            swc_visit::Either::Left(visitor) => {
54343                VisitMut::visit_mut_jsx_closing_element(visitor, node)
54344            }
54345            swc_visit::Either::Right(visitor) => {
54346                VisitMut::visit_mut_jsx_closing_element(visitor, node)
54347            }
54348        }
54349    }
54350
54351    #[inline]
54352    fn visit_mut_jsx_closing_fragment(&mut self, node: &mut JSXClosingFragment) {
54353        match self {
54354            swc_visit::Either::Left(visitor) => {
54355                VisitMut::visit_mut_jsx_closing_fragment(visitor, node)
54356            }
54357            swc_visit::Either::Right(visitor) => {
54358                VisitMut::visit_mut_jsx_closing_fragment(visitor, node)
54359            }
54360        }
54361    }
54362
54363    #[inline]
54364    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement) {
54365        match self {
54366            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_element(visitor, node),
54367            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_element(visitor, node),
54368        }
54369    }
54370
54371    #[inline]
54372    fn visit_mut_jsx_element_child(&mut self, node: &mut JSXElementChild) {
54373        match self {
54374            swc_visit::Either::Left(visitor) => {
54375                VisitMut::visit_mut_jsx_element_child(visitor, node)
54376            }
54377            swc_visit::Either::Right(visitor) => {
54378                VisitMut::visit_mut_jsx_element_child(visitor, node)
54379            }
54380        }
54381    }
54382
54383    #[inline]
54384    fn visit_mut_jsx_element_childs(&mut self, node: &mut Vec<JSXElementChild>) {
54385        match self {
54386            swc_visit::Either::Left(visitor) => {
54387                VisitMut::visit_mut_jsx_element_childs(visitor, node)
54388            }
54389            swc_visit::Either::Right(visitor) => {
54390                VisitMut::visit_mut_jsx_element_childs(visitor, node)
54391            }
54392        }
54393    }
54394
54395    #[inline]
54396    fn visit_mut_jsx_element_name(&mut self, node: &mut JSXElementName) {
54397        match self {
54398            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_element_name(visitor, node),
54399            swc_visit::Either::Right(visitor) => {
54400                VisitMut::visit_mut_jsx_element_name(visitor, node)
54401            }
54402        }
54403    }
54404
54405    #[inline]
54406    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr) {
54407        match self {
54408            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_empty_expr(visitor, node),
54409            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_empty_expr(visitor, node),
54410        }
54411    }
54412
54413    #[inline]
54414    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr) {
54415        match self {
54416            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_expr(visitor, node),
54417            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_expr(visitor, node),
54418        }
54419    }
54420
54421    #[inline]
54422    fn visit_mut_jsx_expr_container(&mut self, node: &mut JSXExprContainer) {
54423        match self {
54424            swc_visit::Either::Left(visitor) => {
54425                VisitMut::visit_mut_jsx_expr_container(visitor, node)
54426            }
54427            swc_visit::Either::Right(visitor) => {
54428                VisitMut::visit_mut_jsx_expr_container(visitor, node)
54429            }
54430        }
54431    }
54432
54433    #[inline]
54434    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment) {
54435        match self {
54436            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_fragment(visitor, node),
54437            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_fragment(visitor, node),
54438        }
54439    }
54440
54441    #[inline]
54442    fn visit_mut_jsx_member_expr(&mut self, node: &mut JSXMemberExpr) {
54443        match self {
54444            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_member_expr(visitor, node),
54445            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_member_expr(visitor, node),
54446        }
54447    }
54448
54449    #[inline]
54450    fn visit_mut_jsx_namespaced_name(&mut self, node: &mut JSXNamespacedName) {
54451        match self {
54452            swc_visit::Either::Left(visitor) => {
54453                VisitMut::visit_mut_jsx_namespaced_name(visitor, node)
54454            }
54455            swc_visit::Either::Right(visitor) => {
54456                VisitMut::visit_mut_jsx_namespaced_name(visitor, node)
54457            }
54458        }
54459    }
54460
54461    #[inline]
54462    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject) {
54463        match self {
54464            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_object(visitor, node),
54465            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_object(visitor, node),
54466        }
54467    }
54468
54469    #[inline]
54470    fn visit_mut_jsx_opening_element(&mut self, node: &mut JSXOpeningElement) {
54471        match self {
54472            swc_visit::Either::Left(visitor) => {
54473                VisitMut::visit_mut_jsx_opening_element(visitor, node)
54474            }
54475            swc_visit::Either::Right(visitor) => {
54476                VisitMut::visit_mut_jsx_opening_element(visitor, node)
54477            }
54478        }
54479    }
54480
54481    #[inline]
54482    fn visit_mut_jsx_opening_fragment(&mut self, node: &mut JSXOpeningFragment) {
54483        match self {
54484            swc_visit::Either::Left(visitor) => {
54485                VisitMut::visit_mut_jsx_opening_fragment(visitor, node)
54486            }
54487            swc_visit::Either::Right(visitor) => {
54488                VisitMut::visit_mut_jsx_opening_fragment(visitor, node)
54489            }
54490        }
54491    }
54492
54493    #[inline]
54494    fn visit_mut_jsx_spread_child(&mut self, node: &mut JSXSpreadChild) {
54495        match self {
54496            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_spread_child(visitor, node),
54497            swc_visit::Either::Right(visitor) => {
54498                VisitMut::visit_mut_jsx_spread_child(visitor, node)
54499            }
54500        }
54501    }
54502
54503    #[inline]
54504    fn visit_mut_jsx_text(&mut self, node: &mut JSXText) {
54505        match self {
54506            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_text(visitor, node),
54507            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_text(visitor, node),
54508        }
54509    }
54510
54511    #[inline]
54512    fn visit_mut_key(&mut self, node: &mut Key) {
54513        match self {
54514            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_key(visitor, node),
54515            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_key(visitor, node),
54516        }
54517    }
54518
54519    #[inline]
54520    fn visit_mut_key_value_pat_prop(&mut self, node: &mut KeyValuePatProp) {
54521        match self {
54522            swc_visit::Either::Left(visitor) => {
54523                VisitMut::visit_mut_key_value_pat_prop(visitor, node)
54524            }
54525            swc_visit::Either::Right(visitor) => {
54526                VisitMut::visit_mut_key_value_pat_prop(visitor, node)
54527            }
54528        }
54529    }
54530
54531    #[inline]
54532    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp) {
54533        match self {
54534            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_key_value_prop(visitor, node),
54535            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_key_value_prop(visitor, node),
54536        }
54537    }
54538
54539    #[inline]
54540    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt) {
54541        match self {
54542            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_labeled_stmt(visitor, node),
54543            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_labeled_stmt(visitor, node),
54544        }
54545    }
54546
54547    #[inline]
54548    fn visit_mut_lit(&mut self, node: &mut Lit) {
54549        match self {
54550            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_lit(visitor, node),
54551            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_lit(visitor, node),
54552        }
54553    }
54554
54555    #[inline]
54556    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr) {
54557        match self {
54558            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_member_expr(visitor, node),
54559            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_member_expr(visitor, node),
54560        }
54561    }
54562
54563    #[inline]
54564    fn visit_mut_member_prop(&mut self, node: &mut MemberProp) {
54565        match self {
54566            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_member_prop(visitor, node),
54567            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_member_prop(visitor, node),
54568        }
54569    }
54570
54571    #[inline]
54572    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr) {
54573        match self {
54574            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_meta_prop_expr(visitor, node),
54575            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_meta_prop_expr(visitor, node),
54576        }
54577    }
54578
54579    #[inline]
54580    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind) {
54581        match self {
54582            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_meta_prop_kind(visitor, node),
54583            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_meta_prop_kind(visitor, node),
54584        }
54585    }
54586
54587    #[inline]
54588    fn visit_mut_method_kind(&mut self, node: &mut MethodKind) {
54589        match self {
54590            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_method_kind(visitor, node),
54591            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_method_kind(visitor, node),
54592        }
54593    }
54594
54595    #[inline]
54596    fn visit_mut_method_prop(&mut self, node: &mut MethodProp) {
54597        match self {
54598            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_method_prop(visitor, node),
54599            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_method_prop(visitor, node),
54600        }
54601    }
54602
54603    #[inline]
54604    fn visit_mut_module(&mut self, node: &mut Module) {
54605        match self {
54606            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_module(visitor, node),
54607            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_module(visitor, node),
54608        }
54609    }
54610
54611    #[inline]
54612    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl) {
54613        match self {
54614            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_module_decl(visitor, node),
54615            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_module_decl(visitor, node),
54616        }
54617    }
54618
54619    #[inline]
54620    fn visit_mut_module_export_name(&mut self, node: &mut ModuleExportName) {
54621        match self {
54622            swc_visit::Either::Left(visitor) => {
54623                VisitMut::visit_mut_module_export_name(visitor, node)
54624            }
54625            swc_visit::Either::Right(visitor) => {
54626                VisitMut::visit_mut_module_export_name(visitor, node)
54627            }
54628        }
54629    }
54630
54631    #[inline]
54632    fn visit_mut_module_item(&mut self, node: &mut ModuleItem) {
54633        match self {
54634            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_module_item(visitor, node),
54635            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_module_item(visitor, node),
54636        }
54637    }
54638
54639    #[inline]
54640    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>) {
54641        match self {
54642            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_module_items(visitor, node),
54643            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_module_items(visitor, node),
54644        }
54645    }
54646
54647    #[inline]
54648    fn visit_mut_named_export(&mut self, node: &mut NamedExport) {
54649        match self {
54650            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_named_export(visitor, node),
54651            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_named_export(visitor, node),
54652        }
54653    }
54654
54655    #[inline]
54656    fn visit_mut_new_expr(&mut self, node: &mut NewExpr) {
54657        match self {
54658            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_new_expr(visitor, node),
54659            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_new_expr(visitor, node),
54660        }
54661    }
54662
54663    #[inline]
54664    fn visit_mut_null(&mut self, node: &mut Null) {
54665        match self {
54666            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_null(visitor, node),
54667            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_null(visitor, node),
54668        }
54669    }
54670
54671    #[inline]
54672    fn visit_mut_number(&mut self, node: &mut Number) {
54673        match self {
54674            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_number(visitor, node),
54675            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_number(visitor, node),
54676        }
54677    }
54678
54679    #[inline]
54680    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit) {
54681        match self {
54682            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_object_lit(visitor, node),
54683            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_object_lit(visitor, node),
54684        }
54685    }
54686
54687    #[inline]
54688    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat) {
54689        match self {
54690            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_object_pat(visitor, node),
54691            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_object_pat(visitor, node),
54692        }
54693    }
54694
54695    #[inline]
54696    fn visit_mut_object_pat_prop(&mut self, node: &mut ObjectPatProp) {
54697        match self {
54698            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_object_pat_prop(visitor, node),
54699            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_object_pat_prop(visitor, node),
54700        }
54701    }
54702
54703    #[inline]
54704    fn visit_mut_object_pat_props(&mut self, node: &mut Vec<ObjectPatProp>) {
54705        match self {
54706            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_object_pat_props(visitor, node),
54707            swc_visit::Either::Right(visitor) => {
54708                VisitMut::visit_mut_object_pat_props(visitor, node)
54709            }
54710        }
54711    }
54712
54713    #[inline]
54714    fn visit_mut_opt_accessibility(&mut self, node: &mut Option<Accessibility>) {
54715        match self {
54716            swc_visit::Either::Left(visitor) => {
54717                VisitMut::visit_mut_opt_accessibility(visitor, node)
54718            }
54719            swc_visit::Either::Right(visitor) => {
54720                VisitMut::visit_mut_opt_accessibility(visitor, node)
54721            }
54722        }
54723    }
54724
54725    #[inline]
54726    fn visit_mut_opt_atom(&mut self, node: &mut Option<swc_atoms::Atom>) {
54727        match self {
54728            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_atom(visitor, node),
54729            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_atom(visitor, node),
54730        }
54731    }
54732
54733    #[inline]
54734    fn visit_mut_opt_block_stmt(&mut self, node: &mut Option<BlockStmt>) {
54735        match self {
54736            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_block_stmt(visitor, node),
54737            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_block_stmt(visitor, node),
54738        }
54739    }
54740
54741    #[inline]
54742    fn visit_mut_opt_call(&mut self, node: &mut OptCall) {
54743        match self {
54744            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_call(visitor, node),
54745            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_call(visitor, node),
54746        }
54747    }
54748
54749    #[inline]
54750    fn visit_mut_opt_catch_clause(&mut self, node: &mut Option<CatchClause>) {
54751        match self {
54752            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_catch_clause(visitor, node),
54753            swc_visit::Either::Right(visitor) => {
54754                VisitMut::visit_mut_opt_catch_clause(visitor, node)
54755            }
54756        }
54757    }
54758
54759    #[inline]
54760    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase) {
54761        match self {
54762            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_chain_base(visitor, node),
54763            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_chain_base(visitor, node),
54764        }
54765    }
54766
54767    #[inline]
54768    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr) {
54769        match self {
54770            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_chain_expr(visitor, node),
54771            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_chain_expr(visitor, node),
54772        }
54773    }
54774
54775    #[inline]
54776    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>) {
54777        match self {
54778            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_expr(visitor, node),
54779            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_expr(visitor, node),
54780        }
54781    }
54782
54783    #[inline]
54784    fn visit_mut_opt_expr_or_spread(&mut self, node: &mut Option<ExprOrSpread>) {
54785        match self {
54786            swc_visit::Either::Left(visitor) => {
54787                VisitMut::visit_mut_opt_expr_or_spread(visitor, node)
54788            }
54789            swc_visit::Either::Right(visitor) => {
54790                VisitMut::visit_mut_opt_expr_or_spread(visitor, node)
54791            }
54792        }
54793    }
54794
54795    #[inline]
54796    fn visit_mut_opt_expr_or_spreads(&mut self, node: &mut Option<Vec<ExprOrSpread>>) {
54797        match self {
54798            swc_visit::Either::Left(visitor) => {
54799                VisitMut::visit_mut_opt_expr_or_spreads(visitor, node)
54800            }
54801            swc_visit::Either::Right(visitor) => {
54802                VisitMut::visit_mut_opt_expr_or_spreads(visitor, node)
54803            }
54804        }
54805    }
54806
54807    #[inline]
54808    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>) {
54809        match self {
54810            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_ident(visitor, node),
54811            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_ident(visitor, node),
54812        }
54813    }
54814
54815    #[inline]
54816    fn visit_mut_opt_jsx_attr_value(&mut self, node: &mut Option<JSXAttrValue>) {
54817        match self {
54818            swc_visit::Either::Left(visitor) => {
54819                VisitMut::visit_mut_opt_jsx_attr_value(visitor, node)
54820            }
54821            swc_visit::Either::Right(visitor) => {
54822                VisitMut::visit_mut_opt_jsx_attr_value(visitor, node)
54823            }
54824        }
54825    }
54826
54827    #[inline]
54828    fn visit_mut_opt_jsx_closing_element(&mut self, node: &mut Option<JSXClosingElement>) {
54829        match self {
54830            swc_visit::Either::Left(visitor) => {
54831                VisitMut::visit_mut_opt_jsx_closing_element(visitor, node)
54832            }
54833            swc_visit::Either::Right(visitor) => {
54834                VisitMut::visit_mut_opt_jsx_closing_element(visitor, node)
54835            }
54836        }
54837    }
54838
54839    #[inline]
54840    fn visit_mut_opt_module_export_name(&mut self, node: &mut Option<ModuleExportName>) {
54841        match self {
54842            swc_visit::Either::Left(visitor) => {
54843                VisitMut::visit_mut_opt_module_export_name(visitor, node)
54844            }
54845            swc_visit::Either::Right(visitor) => {
54846                VisitMut::visit_mut_opt_module_export_name(visitor, node)
54847            }
54848        }
54849    }
54850
54851    #[inline]
54852    fn visit_mut_opt_object_lit(&mut self, node: &mut Option<Box<ObjectLit>>) {
54853        match self {
54854            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_object_lit(visitor, node),
54855            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_object_lit(visitor, node),
54856        }
54857    }
54858
54859    #[inline]
54860    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>) {
54861        match self {
54862            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_pat(visitor, node),
54863            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_pat(visitor, node),
54864        }
54865    }
54866
54867    #[inline]
54868    fn visit_mut_opt_span(&mut self, node: &mut Option<swc_common::Span>) {
54869        match self {
54870            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_span(visitor, node),
54871            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_span(visitor, node),
54872        }
54873    }
54874
54875    #[inline]
54876    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>) {
54877        match self {
54878            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_stmt(visitor, node),
54879            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_stmt(visitor, node),
54880        }
54881    }
54882
54883    #[inline]
54884    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>) {
54885        match self {
54886            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_str(visitor, node),
54887            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_str(visitor, node),
54888        }
54889    }
54890
54891    #[inline]
54892    fn visit_mut_opt_true_plus_minus(&mut self, node: &mut Option<TruePlusMinus>) {
54893        match self {
54894            swc_visit::Either::Left(visitor) => {
54895                VisitMut::visit_mut_opt_true_plus_minus(visitor, node)
54896            }
54897            swc_visit::Either::Right(visitor) => {
54898                VisitMut::visit_mut_opt_true_plus_minus(visitor, node)
54899            }
54900        }
54901    }
54902
54903    #[inline]
54904    fn visit_mut_opt_ts_entity_name(&mut self, node: &mut Option<TsEntityName>) {
54905        match self {
54906            swc_visit::Either::Left(visitor) => {
54907                VisitMut::visit_mut_opt_ts_entity_name(visitor, node)
54908            }
54909            swc_visit::Either::Right(visitor) => {
54910                VisitMut::visit_mut_opt_ts_entity_name(visitor, node)
54911            }
54912        }
54913    }
54914
54915    #[inline]
54916    fn visit_mut_opt_ts_import_call_options(&mut self, node: &mut Option<TsImportCallOptions>) {
54917        match self {
54918            swc_visit::Either::Left(visitor) => {
54919                VisitMut::visit_mut_opt_ts_import_call_options(visitor, node)
54920            }
54921            swc_visit::Either::Right(visitor) => {
54922                VisitMut::visit_mut_opt_ts_import_call_options(visitor, node)
54923            }
54924        }
54925    }
54926
54927    #[inline]
54928    fn visit_mut_opt_ts_namespace_body(&mut self, node: &mut Option<TsNamespaceBody>) {
54929        match self {
54930            swc_visit::Either::Left(visitor) => {
54931                VisitMut::visit_mut_opt_ts_namespace_body(visitor, node)
54932            }
54933            swc_visit::Either::Right(visitor) => {
54934                VisitMut::visit_mut_opt_ts_namespace_body(visitor, node)
54935            }
54936        }
54937    }
54938
54939    #[inline]
54940    fn visit_mut_opt_ts_type(&mut self, node: &mut Option<Box<TsType>>) {
54941        match self {
54942            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_ts_type(visitor, node),
54943            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_ts_type(visitor, node),
54944        }
54945    }
54946
54947    #[inline]
54948    fn visit_mut_opt_ts_type_ann(&mut self, node: &mut Option<Box<TsTypeAnn>>) {
54949        match self {
54950            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_ts_type_ann(visitor, node),
54951            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_ts_type_ann(visitor, node),
54952        }
54953    }
54954
54955    #[inline]
54956    fn visit_mut_opt_ts_type_param_decl(&mut self, node: &mut Option<Box<TsTypeParamDecl>>) {
54957        match self {
54958            swc_visit::Either::Left(visitor) => {
54959                VisitMut::visit_mut_opt_ts_type_param_decl(visitor, node)
54960            }
54961            swc_visit::Either::Right(visitor) => {
54962                VisitMut::visit_mut_opt_ts_type_param_decl(visitor, node)
54963            }
54964        }
54965    }
54966
54967    #[inline]
54968    fn visit_mut_opt_ts_type_param_instantiation(
54969        &mut self,
54970        node: &mut Option<Box<TsTypeParamInstantiation>>,
54971    ) {
54972        match self {
54973            swc_visit::Either::Left(visitor) => {
54974                VisitMut::visit_mut_opt_ts_type_param_instantiation(visitor, node)
54975            }
54976            swc_visit::Either::Right(visitor) => {
54977                VisitMut::visit_mut_opt_ts_type_param_instantiation(visitor, node)
54978            }
54979        }
54980    }
54981
54982    #[inline]
54983    fn visit_mut_opt_var_decl_or_expr(&mut self, node: &mut Option<VarDeclOrExpr>) {
54984        match self {
54985            swc_visit::Either::Left(visitor) => {
54986                VisitMut::visit_mut_opt_var_decl_or_expr(visitor, node)
54987            }
54988            swc_visit::Either::Right(visitor) => {
54989                VisitMut::visit_mut_opt_var_decl_or_expr(visitor, node)
54990            }
54991        }
54992    }
54993
54994    #[inline]
54995    fn visit_mut_opt_vec_expr_or_spreads(&mut self, node: &mut Vec<Option<ExprOrSpread>>) {
54996        match self {
54997            swc_visit::Either::Left(visitor) => {
54998                VisitMut::visit_mut_opt_vec_expr_or_spreads(visitor, node)
54999            }
55000            swc_visit::Either::Right(visitor) => {
55001                VisitMut::visit_mut_opt_vec_expr_or_spreads(visitor, node)
55002            }
55003        }
55004    }
55005
55006    #[inline]
55007    fn visit_mut_opt_vec_pats(&mut self, node: &mut Vec<Option<Pat>>) {
55008        match self {
55009            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_vec_pats(visitor, node),
55010            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_vec_pats(visitor, node),
55011        }
55012    }
55013
55014    #[inline]
55015    fn visit_mut_param(&mut self, node: &mut Param) {
55016        match self {
55017            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_param(visitor, node),
55018            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_param(visitor, node),
55019        }
55020    }
55021
55022    #[inline]
55023    fn visit_mut_param_or_ts_param_prop(&mut self, node: &mut ParamOrTsParamProp) {
55024        match self {
55025            swc_visit::Either::Left(visitor) => {
55026                VisitMut::visit_mut_param_or_ts_param_prop(visitor, node)
55027            }
55028            swc_visit::Either::Right(visitor) => {
55029                VisitMut::visit_mut_param_or_ts_param_prop(visitor, node)
55030            }
55031        }
55032    }
55033
55034    #[inline]
55035    fn visit_mut_param_or_ts_param_props(&mut self, node: &mut Vec<ParamOrTsParamProp>) {
55036        match self {
55037            swc_visit::Either::Left(visitor) => {
55038                VisitMut::visit_mut_param_or_ts_param_props(visitor, node)
55039            }
55040            swc_visit::Either::Right(visitor) => {
55041                VisitMut::visit_mut_param_or_ts_param_props(visitor, node)
55042            }
55043        }
55044    }
55045
55046    #[inline]
55047    fn visit_mut_params(&mut self, node: &mut Vec<Param>) {
55048        match self {
55049            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_params(visitor, node),
55050            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_params(visitor, node),
55051        }
55052    }
55053
55054    #[inline]
55055    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr) {
55056        match self {
55057            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_paren_expr(visitor, node),
55058            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_paren_expr(visitor, node),
55059        }
55060    }
55061
55062    #[inline]
55063    fn visit_mut_pat(&mut self, node: &mut Pat) {
55064        match self {
55065            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_pat(visitor, node),
55066            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_pat(visitor, node),
55067        }
55068    }
55069
55070    #[inline]
55071    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>) {
55072        match self {
55073            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_pats(visitor, node),
55074            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_pats(visitor, node),
55075        }
55076    }
55077
55078    #[inline]
55079    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod) {
55080        match self {
55081            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_private_method(visitor, node),
55082            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_private_method(visitor, node),
55083        }
55084    }
55085
55086    #[inline]
55087    fn visit_mut_private_name(&mut self, node: &mut PrivateName) {
55088        match self {
55089            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_private_name(visitor, node),
55090            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_private_name(visitor, node),
55091        }
55092    }
55093
55094    #[inline]
55095    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp) {
55096        match self {
55097            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_private_prop(visitor, node),
55098            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_private_prop(visitor, node),
55099        }
55100    }
55101
55102    #[inline]
55103    fn visit_mut_program(&mut self, node: &mut Program) {
55104        match self {
55105            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_program(visitor, node),
55106            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_program(visitor, node),
55107        }
55108    }
55109
55110    #[inline]
55111    fn visit_mut_prop(&mut self, node: &mut Prop) {
55112        match self {
55113            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_prop(visitor, node),
55114            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_prop(visitor, node),
55115        }
55116    }
55117
55118    #[inline]
55119    fn visit_mut_prop_name(&mut self, node: &mut PropName) {
55120        match self {
55121            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_prop_name(visitor, node),
55122            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_prop_name(visitor, node),
55123        }
55124    }
55125
55126    #[inline]
55127    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread) {
55128        match self {
55129            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_prop_or_spread(visitor, node),
55130            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_prop_or_spread(visitor, node),
55131        }
55132    }
55133
55134    #[inline]
55135    fn visit_mut_prop_or_spreads(&mut self, node: &mut Vec<PropOrSpread>) {
55136        match self {
55137            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_prop_or_spreads(visitor, node),
55138            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_prop_or_spreads(visitor, node),
55139        }
55140    }
55141
55142    #[inline]
55143    fn visit_mut_regex(&mut self, node: &mut Regex) {
55144        match self {
55145            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_regex(visitor, node),
55146            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_regex(visitor, node),
55147        }
55148    }
55149
55150    #[inline]
55151    fn visit_mut_rest_pat(&mut self, node: &mut RestPat) {
55152        match self {
55153            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_rest_pat(visitor, node),
55154            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_rest_pat(visitor, node),
55155        }
55156    }
55157
55158    #[inline]
55159    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt) {
55160        match self {
55161            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_return_stmt(visitor, node),
55162            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_return_stmt(visitor, node),
55163        }
55164    }
55165
55166    #[inline]
55167    fn visit_mut_script(&mut self, node: &mut Script) {
55168        match self {
55169            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_script(visitor, node),
55170            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_script(visitor, node),
55171        }
55172    }
55173
55174    #[inline]
55175    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr) {
55176        match self {
55177            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_seq_expr(visitor, node),
55178            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_seq_expr(visitor, node),
55179        }
55180    }
55181
55182    #[inline]
55183    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp) {
55184        match self {
55185            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_setter_prop(visitor, node),
55186            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_setter_prop(visitor, node),
55187        }
55188    }
55189
55190    #[inline]
55191    fn visit_mut_simple_assign_target(&mut self, node: &mut SimpleAssignTarget) {
55192        match self {
55193            swc_visit::Either::Left(visitor) => {
55194                VisitMut::visit_mut_simple_assign_target(visitor, node)
55195            }
55196            swc_visit::Either::Right(visitor) => {
55197                VisitMut::visit_mut_simple_assign_target(visitor, node)
55198            }
55199        }
55200    }
55201
55202    #[inline]
55203    fn visit_mut_span(&mut self, node: &mut swc_common::Span) {
55204        match self {
55205            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_span(visitor, node),
55206            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_span(visitor, node),
55207        }
55208    }
55209
55210    #[inline]
55211    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement) {
55212        match self {
55213            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_spread_element(visitor, node),
55214            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_spread_element(visitor, node),
55215        }
55216    }
55217
55218    #[inline]
55219    fn visit_mut_static_block(&mut self, node: &mut StaticBlock) {
55220        match self {
55221            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_static_block(visitor, node),
55222            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_static_block(visitor, node),
55223        }
55224    }
55225
55226    #[inline]
55227    fn visit_mut_stmt(&mut self, node: &mut Stmt) {
55228        match self {
55229            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_stmt(visitor, node),
55230            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_stmt(visitor, node),
55231        }
55232    }
55233
55234    #[inline]
55235    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>) {
55236        match self {
55237            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_stmts(visitor, node),
55238            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_stmts(visitor, node),
55239        }
55240    }
55241
55242    #[inline]
55243    fn visit_mut_str(&mut self, node: &mut Str) {
55244        match self {
55245            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_str(visitor, node),
55246            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_str(visitor, node),
55247        }
55248    }
55249
55250    #[inline]
55251    fn visit_mut_super(&mut self, node: &mut Super) {
55252        match self {
55253            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_super(visitor, node),
55254            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_super(visitor, node),
55255        }
55256    }
55257
55258    #[inline]
55259    fn visit_mut_super_prop(&mut self, node: &mut SuperProp) {
55260        match self {
55261            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_super_prop(visitor, node),
55262            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_super_prop(visitor, node),
55263        }
55264    }
55265
55266    #[inline]
55267    fn visit_mut_super_prop_expr(&mut self, node: &mut SuperPropExpr) {
55268        match self {
55269            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_super_prop_expr(visitor, node),
55270            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_super_prop_expr(visitor, node),
55271        }
55272    }
55273
55274    #[inline]
55275    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase) {
55276        match self {
55277            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_switch_case(visitor, node),
55278            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_switch_case(visitor, node),
55279        }
55280    }
55281
55282    #[inline]
55283    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>) {
55284        match self {
55285            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_switch_cases(visitor, node),
55286            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_switch_cases(visitor, node),
55287        }
55288    }
55289
55290    #[inline]
55291    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt) {
55292        match self {
55293            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_switch_stmt(visitor, node),
55294            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_switch_stmt(visitor, node),
55295        }
55296    }
55297
55298    #[inline]
55299    fn visit_mut_syntax_context(&mut self, node: &mut swc_common::SyntaxContext) {
55300        match self {
55301            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_syntax_context(visitor, node),
55302            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_syntax_context(visitor, node),
55303        }
55304    }
55305
55306    #[inline]
55307    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl) {
55308        match self {
55309            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_tagged_tpl(visitor, node),
55310            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_tagged_tpl(visitor, node),
55311        }
55312    }
55313
55314    #[inline]
55315    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr) {
55316        match self {
55317            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_this_expr(visitor, node),
55318            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_this_expr(visitor, node),
55319        }
55320    }
55321
55322    #[inline]
55323    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt) {
55324        match self {
55325            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_throw_stmt(visitor, node),
55326            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_throw_stmt(visitor, node),
55327        }
55328    }
55329
55330    #[inline]
55331    fn visit_mut_tpl(&mut self, node: &mut Tpl) {
55332        match self {
55333            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_tpl(visitor, node),
55334            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_tpl(visitor, node),
55335        }
55336    }
55337
55338    #[inline]
55339    fn visit_mut_tpl_element(&mut self, node: &mut TplElement) {
55340        match self {
55341            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_tpl_element(visitor, node),
55342            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_tpl_element(visitor, node),
55343        }
55344    }
55345
55346    #[inline]
55347    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>) {
55348        match self {
55349            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_tpl_elements(visitor, node),
55350            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_tpl_elements(visitor, node),
55351        }
55352    }
55353
55354    #[inline]
55355    fn visit_mut_true_plus_minus(&mut self, node: &mut TruePlusMinus) {
55356        match self {
55357            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_true_plus_minus(visitor, node),
55358            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_true_plus_minus(visitor, node),
55359        }
55360    }
55361
55362    #[inline]
55363    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt) {
55364        match self {
55365            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_try_stmt(visitor, node),
55366            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_try_stmt(visitor, node),
55367        }
55368    }
55369
55370    #[inline]
55371    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType) {
55372        match self {
55373            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_array_type(visitor, node),
55374            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_array_type(visitor, node),
55375        }
55376    }
55377
55378    #[inline]
55379    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr) {
55380        match self {
55381            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_as_expr(visitor, node),
55382            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_as_expr(visitor, node),
55383        }
55384    }
55385
55386    #[inline]
55387    fn visit_mut_ts_call_signature_decl(&mut self, node: &mut TsCallSignatureDecl) {
55388        match self {
55389            swc_visit::Either::Left(visitor) => {
55390                VisitMut::visit_mut_ts_call_signature_decl(visitor, node)
55391            }
55392            swc_visit::Either::Right(visitor) => {
55393                VisitMut::visit_mut_ts_call_signature_decl(visitor, node)
55394            }
55395        }
55396    }
55397
55398    #[inline]
55399    fn visit_mut_ts_conditional_type(&mut self, node: &mut TsConditionalType) {
55400        match self {
55401            swc_visit::Either::Left(visitor) => {
55402                VisitMut::visit_mut_ts_conditional_type(visitor, node)
55403            }
55404            swc_visit::Either::Right(visitor) => {
55405                VisitMut::visit_mut_ts_conditional_type(visitor, node)
55406            }
55407        }
55408    }
55409
55410    #[inline]
55411    fn visit_mut_ts_const_assertion(&mut self, node: &mut TsConstAssertion) {
55412        match self {
55413            swc_visit::Either::Left(visitor) => {
55414                VisitMut::visit_mut_ts_const_assertion(visitor, node)
55415            }
55416            swc_visit::Either::Right(visitor) => {
55417                VisitMut::visit_mut_ts_const_assertion(visitor, node)
55418            }
55419        }
55420    }
55421
55422    #[inline]
55423    fn visit_mut_ts_construct_signature_decl(&mut self, node: &mut TsConstructSignatureDecl) {
55424        match self {
55425            swc_visit::Either::Left(visitor) => {
55426                VisitMut::visit_mut_ts_construct_signature_decl(visitor, node)
55427            }
55428            swc_visit::Either::Right(visitor) => {
55429                VisitMut::visit_mut_ts_construct_signature_decl(visitor, node)
55430            }
55431        }
55432    }
55433
55434    #[inline]
55435    fn visit_mut_ts_constructor_type(&mut self, node: &mut TsConstructorType) {
55436        match self {
55437            swc_visit::Either::Left(visitor) => {
55438                VisitMut::visit_mut_ts_constructor_type(visitor, node)
55439            }
55440            swc_visit::Either::Right(visitor) => {
55441                VisitMut::visit_mut_ts_constructor_type(visitor, node)
55442            }
55443        }
55444    }
55445
55446    #[inline]
55447    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName) {
55448        match self {
55449            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_entity_name(visitor, node),
55450            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_entity_name(visitor, node),
55451        }
55452    }
55453
55454    #[inline]
55455    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl) {
55456        match self {
55457            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_enum_decl(visitor, node),
55458            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_enum_decl(visitor, node),
55459        }
55460    }
55461
55462    #[inline]
55463    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember) {
55464        match self {
55465            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_enum_member(visitor, node),
55466            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_enum_member(visitor, node),
55467        }
55468    }
55469
55470    #[inline]
55471    fn visit_mut_ts_enum_member_id(&mut self, node: &mut TsEnumMemberId) {
55472        match self {
55473            swc_visit::Either::Left(visitor) => {
55474                VisitMut::visit_mut_ts_enum_member_id(visitor, node)
55475            }
55476            swc_visit::Either::Right(visitor) => {
55477                VisitMut::visit_mut_ts_enum_member_id(visitor, node)
55478            }
55479        }
55480    }
55481
55482    #[inline]
55483    fn visit_mut_ts_enum_members(&mut self, node: &mut Vec<TsEnumMember>) {
55484        match self {
55485            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_enum_members(visitor, node),
55486            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_enum_members(visitor, node),
55487        }
55488    }
55489
55490    #[inline]
55491    fn visit_mut_ts_export_assignment(&mut self, node: &mut TsExportAssignment) {
55492        match self {
55493            swc_visit::Either::Left(visitor) => {
55494                VisitMut::visit_mut_ts_export_assignment(visitor, node)
55495            }
55496            swc_visit::Either::Right(visitor) => {
55497                VisitMut::visit_mut_ts_export_assignment(visitor, node)
55498            }
55499        }
55500    }
55501
55502    #[inline]
55503    fn visit_mut_ts_expr_with_type_args(&mut self, node: &mut TsExprWithTypeArgs) {
55504        match self {
55505            swc_visit::Either::Left(visitor) => {
55506                VisitMut::visit_mut_ts_expr_with_type_args(visitor, node)
55507            }
55508            swc_visit::Either::Right(visitor) => {
55509                VisitMut::visit_mut_ts_expr_with_type_args(visitor, node)
55510            }
55511        }
55512    }
55513
55514    #[inline]
55515    fn visit_mut_ts_expr_with_type_argss(&mut self, node: &mut Vec<TsExprWithTypeArgs>) {
55516        match self {
55517            swc_visit::Either::Left(visitor) => {
55518                VisitMut::visit_mut_ts_expr_with_type_argss(visitor, node)
55519            }
55520            swc_visit::Either::Right(visitor) => {
55521                VisitMut::visit_mut_ts_expr_with_type_argss(visitor, node)
55522            }
55523        }
55524    }
55525
55526    #[inline]
55527    fn visit_mut_ts_external_module_ref(&mut self, node: &mut TsExternalModuleRef) {
55528        match self {
55529            swc_visit::Either::Left(visitor) => {
55530                VisitMut::visit_mut_ts_external_module_ref(visitor, node)
55531            }
55532            swc_visit::Either::Right(visitor) => {
55533                VisitMut::visit_mut_ts_external_module_ref(visitor, node)
55534            }
55535        }
55536    }
55537
55538    #[inline]
55539    fn visit_mut_ts_fn_or_constructor_type(&mut self, node: &mut TsFnOrConstructorType) {
55540        match self {
55541            swc_visit::Either::Left(visitor) => {
55542                VisitMut::visit_mut_ts_fn_or_constructor_type(visitor, node)
55543            }
55544            swc_visit::Either::Right(visitor) => {
55545                VisitMut::visit_mut_ts_fn_or_constructor_type(visitor, node)
55546            }
55547        }
55548    }
55549
55550    #[inline]
55551    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam) {
55552        match self {
55553            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_fn_param(visitor, node),
55554            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_fn_param(visitor, node),
55555        }
55556    }
55557
55558    #[inline]
55559    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>) {
55560        match self {
55561            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_fn_params(visitor, node),
55562            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_fn_params(visitor, node),
55563        }
55564    }
55565
55566    #[inline]
55567    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType) {
55568        match self {
55569            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_fn_type(visitor, node),
55570            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_fn_type(visitor, node),
55571        }
55572    }
55573
55574    #[inline]
55575    fn visit_mut_ts_getter_signature(&mut self, node: &mut TsGetterSignature) {
55576        match self {
55577            swc_visit::Either::Left(visitor) => {
55578                VisitMut::visit_mut_ts_getter_signature(visitor, node)
55579            }
55580            swc_visit::Either::Right(visitor) => {
55581                VisitMut::visit_mut_ts_getter_signature(visitor, node)
55582            }
55583        }
55584    }
55585
55586    #[inline]
55587    fn visit_mut_ts_import_call_options(&mut self, node: &mut TsImportCallOptions) {
55588        match self {
55589            swc_visit::Either::Left(visitor) => {
55590                VisitMut::visit_mut_ts_import_call_options(visitor, node)
55591            }
55592            swc_visit::Either::Right(visitor) => {
55593                VisitMut::visit_mut_ts_import_call_options(visitor, node)
55594            }
55595        }
55596    }
55597
55598    #[inline]
55599    fn visit_mut_ts_import_equals_decl(&mut self, node: &mut TsImportEqualsDecl) {
55600        match self {
55601            swc_visit::Either::Left(visitor) => {
55602                VisitMut::visit_mut_ts_import_equals_decl(visitor, node)
55603            }
55604            swc_visit::Either::Right(visitor) => {
55605                VisitMut::visit_mut_ts_import_equals_decl(visitor, node)
55606            }
55607        }
55608    }
55609
55610    #[inline]
55611    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType) {
55612        match self {
55613            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_import_type(visitor, node),
55614            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_import_type(visitor, node),
55615        }
55616    }
55617
55618    #[inline]
55619    fn visit_mut_ts_index_signature(&mut self, node: &mut TsIndexSignature) {
55620        match self {
55621            swc_visit::Either::Left(visitor) => {
55622                VisitMut::visit_mut_ts_index_signature(visitor, node)
55623            }
55624            swc_visit::Either::Right(visitor) => {
55625                VisitMut::visit_mut_ts_index_signature(visitor, node)
55626            }
55627        }
55628    }
55629
55630    #[inline]
55631    fn visit_mut_ts_indexed_access_type(&mut self, node: &mut TsIndexedAccessType) {
55632        match self {
55633            swc_visit::Either::Left(visitor) => {
55634                VisitMut::visit_mut_ts_indexed_access_type(visitor, node)
55635            }
55636            swc_visit::Either::Right(visitor) => {
55637                VisitMut::visit_mut_ts_indexed_access_type(visitor, node)
55638            }
55639        }
55640    }
55641
55642    #[inline]
55643    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType) {
55644        match self {
55645            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_infer_type(visitor, node),
55646            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_infer_type(visitor, node),
55647        }
55648    }
55649
55650    #[inline]
55651    fn visit_mut_ts_instantiation(&mut self, node: &mut TsInstantiation) {
55652        match self {
55653            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_instantiation(visitor, node),
55654            swc_visit::Either::Right(visitor) => {
55655                VisitMut::visit_mut_ts_instantiation(visitor, node)
55656            }
55657        }
55658    }
55659
55660    #[inline]
55661    fn visit_mut_ts_interface_body(&mut self, node: &mut TsInterfaceBody) {
55662        match self {
55663            swc_visit::Either::Left(visitor) => {
55664                VisitMut::visit_mut_ts_interface_body(visitor, node)
55665            }
55666            swc_visit::Either::Right(visitor) => {
55667                VisitMut::visit_mut_ts_interface_body(visitor, node)
55668            }
55669        }
55670    }
55671
55672    #[inline]
55673    fn visit_mut_ts_interface_decl(&mut self, node: &mut TsInterfaceDecl) {
55674        match self {
55675            swc_visit::Either::Left(visitor) => {
55676                VisitMut::visit_mut_ts_interface_decl(visitor, node)
55677            }
55678            swc_visit::Either::Right(visitor) => {
55679                VisitMut::visit_mut_ts_interface_decl(visitor, node)
55680            }
55681        }
55682    }
55683
55684    #[inline]
55685    fn visit_mut_ts_intersection_type(&mut self, node: &mut TsIntersectionType) {
55686        match self {
55687            swc_visit::Either::Left(visitor) => {
55688                VisitMut::visit_mut_ts_intersection_type(visitor, node)
55689            }
55690            swc_visit::Either::Right(visitor) => {
55691                VisitMut::visit_mut_ts_intersection_type(visitor, node)
55692            }
55693        }
55694    }
55695
55696    #[inline]
55697    fn visit_mut_ts_keyword_type(&mut self, node: &mut TsKeywordType) {
55698        match self {
55699            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_keyword_type(visitor, node),
55700            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_keyword_type(visitor, node),
55701        }
55702    }
55703
55704    #[inline]
55705    fn visit_mut_ts_keyword_type_kind(&mut self, node: &mut TsKeywordTypeKind) {
55706        match self {
55707            swc_visit::Either::Left(visitor) => {
55708                VisitMut::visit_mut_ts_keyword_type_kind(visitor, node)
55709            }
55710            swc_visit::Either::Right(visitor) => {
55711                VisitMut::visit_mut_ts_keyword_type_kind(visitor, node)
55712            }
55713        }
55714    }
55715
55716    #[inline]
55717    fn visit_mut_ts_lit(&mut self, node: &mut TsLit) {
55718        match self {
55719            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_lit(visitor, node),
55720            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_lit(visitor, node),
55721        }
55722    }
55723
55724    #[inline]
55725    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType) {
55726        match self {
55727            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_lit_type(visitor, node),
55728            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_lit_type(visitor, node),
55729        }
55730    }
55731
55732    #[inline]
55733    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType) {
55734        match self {
55735            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_mapped_type(visitor, node),
55736            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_mapped_type(visitor, node),
55737        }
55738    }
55739
55740    #[inline]
55741    fn visit_mut_ts_method_signature(&mut self, node: &mut TsMethodSignature) {
55742        match self {
55743            swc_visit::Either::Left(visitor) => {
55744                VisitMut::visit_mut_ts_method_signature(visitor, node)
55745            }
55746            swc_visit::Either::Right(visitor) => {
55747                VisitMut::visit_mut_ts_method_signature(visitor, node)
55748            }
55749        }
55750    }
55751
55752    #[inline]
55753    fn visit_mut_ts_module_block(&mut self, node: &mut TsModuleBlock) {
55754        match self {
55755            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_module_block(visitor, node),
55756            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_module_block(visitor, node),
55757        }
55758    }
55759
55760    #[inline]
55761    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl) {
55762        match self {
55763            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_module_decl(visitor, node),
55764            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_module_decl(visitor, node),
55765        }
55766    }
55767
55768    #[inline]
55769    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName) {
55770        match self {
55771            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_module_name(visitor, node),
55772            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_module_name(visitor, node),
55773        }
55774    }
55775
55776    #[inline]
55777    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef) {
55778        match self {
55779            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_module_ref(visitor, node),
55780            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_module_ref(visitor, node),
55781        }
55782    }
55783
55784    #[inline]
55785    fn visit_mut_ts_namespace_body(&mut self, node: &mut TsNamespaceBody) {
55786        match self {
55787            swc_visit::Either::Left(visitor) => {
55788                VisitMut::visit_mut_ts_namespace_body(visitor, node)
55789            }
55790            swc_visit::Either::Right(visitor) => {
55791                VisitMut::visit_mut_ts_namespace_body(visitor, node)
55792            }
55793        }
55794    }
55795
55796    #[inline]
55797    fn visit_mut_ts_namespace_decl(&mut self, node: &mut TsNamespaceDecl) {
55798        match self {
55799            swc_visit::Either::Left(visitor) => {
55800                VisitMut::visit_mut_ts_namespace_decl(visitor, node)
55801            }
55802            swc_visit::Either::Right(visitor) => {
55803                VisitMut::visit_mut_ts_namespace_decl(visitor, node)
55804            }
55805        }
55806    }
55807
55808    #[inline]
55809    fn visit_mut_ts_namespace_export_decl(&mut self, node: &mut TsNamespaceExportDecl) {
55810        match self {
55811            swc_visit::Either::Left(visitor) => {
55812                VisitMut::visit_mut_ts_namespace_export_decl(visitor, node)
55813            }
55814            swc_visit::Either::Right(visitor) => {
55815                VisitMut::visit_mut_ts_namespace_export_decl(visitor, node)
55816            }
55817        }
55818    }
55819
55820    #[inline]
55821    fn visit_mut_ts_non_null_expr(&mut self, node: &mut TsNonNullExpr) {
55822        match self {
55823            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_non_null_expr(visitor, node),
55824            swc_visit::Either::Right(visitor) => {
55825                VisitMut::visit_mut_ts_non_null_expr(visitor, node)
55826            }
55827        }
55828    }
55829
55830    #[inline]
55831    fn visit_mut_ts_optional_type(&mut self, node: &mut TsOptionalType) {
55832        match self {
55833            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_optional_type(visitor, node),
55834            swc_visit::Either::Right(visitor) => {
55835                VisitMut::visit_mut_ts_optional_type(visitor, node)
55836            }
55837        }
55838    }
55839
55840    #[inline]
55841    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp) {
55842        match self {
55843            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_param_prop(visitor, node),
55844            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_param_prop(visitor, node),
55845        }
55846    }
55847
55848    #[inline]
55849    fn visit_mut_ts_param_prop_param(&mut self, node: &mut TsParamPropParam) {
55850        match self {
55851            swc_visit::Either::Left(visitor) => {
55852                VisitMut::visit_mut_ts_param_prop_param(visitor, node)
55853            }
55854            swc_visit::Either::Right(visitor) => {
55855                VisitMut::visit_mut_ts_param_prop_param(visitor, node)
55856            }
55857        }
55858    }
55859
55860    #[inline]
55861    fn visit_mut_ts_parenthesized_type(&mut self, node: &mut TsParenthesizedType) {
55862        match self {
55863            swc_visit::Either::Left(visitor) => {
55864                VisitMut::visit_mut_ts_parenthesized_type(visitor, node)
55865            }
55866            swc_visit::Either::Right(visitor) => {
55867                VisitMut::visit_mut_ts_parenthesized_type(visitor, node)
55868            }
55869        }
55870    }
55871
55872    #[inline]
55873    fn visit_mut_ts_property_signature(&mut self, node: &mut TsPropertySignature) {
55874        match self {
55875            swc_visit::Either::Left(visitor) => {
55876                VisitMut::visit_mut_ts_property_signature(visitor, node)
55877            }
55878            swc_visit::Either::Right(visitor) => {
55879                VisitMut::visit_mut_ts_property_signature(visitor, node)
55880            }
55881        }
55882    }
55883
55884    #[inline]
55885    fn visit_mut_ts_qualified_name(&mut self, node: &mut TsQualifiedName) {
55886        match self {
55887            swc_visit::Either::Left(visitor) => {
55888                VisitMut::visit_mut_ts_qualified_name(visitor, node)
55889            }
55890            swc_visit::Either::Right(visitor) => {
55891                VisitMut::visit_mut_ts_qualified_name(visitor, node)
55892            }
55893        }
55894    }
55895
55896    #[inline]
55897    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType) {
55898        match self {
55899            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_rest_type(visitor, node),
55900            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_rest_type(visitor, node),
55901        }
55902    }
55903
55904    #[inline]
55905    fn visit_mut_ts_satisfies_expr(&mut self, node: &mut TsSatisfiesExpr) {
55906        match self {
55907            swc_visit::Either::Left(visitor) => {
55908                VisitMut::visit_mut_ts_satisfies_expr(visitor, node)
55909            }
55910            swc_visit::Either::Right(visitor) => {
55911                VisitMut::visit_mut_ts_satisfies_expr(visitor, node)
55912            }
55913        }
55914    }
55915
55916    #[inline]
55917    fn visit_mut_ts_setter_signature(&mut self, node: &mut TsSetterSignature) {
55918        match self {
55919            swc_visit::Either::Left(visitor) => {
55920                VisitMut::visit_mut_ts_setter_signature(visitor, node)
55921            }
55922            swc_visit::Either::Right(visitor) => {
55923                VisitMut::visit_mut_ts_setter_signature(visitor, node)
55924            }
55925        }
55926    }
55927
55928    #[inline]
55929    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType) {
55930        match self {
55931            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_this_type(visitor, node),
55932            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_this_type(visitor, node),
55933        }
55934    }
55935
55936    #[inline]
55937    fn visit_mut_ts_this_type_or_ident(&mut self, node: &mut TsThisTypeOrIdent) {
55938        match self {
55939            swc_visit::Either::Left(visitor) => {
55940                VisitMut::visit_mut_ts_this_type_or_ident(visitor, node)
55941            }
55942            swc_visit::Either::Right(visitor) => {
55943                VisitMut::visit_mut_ts_this_type_or_ident(visitor, node)
55944            }
55945        }
55946    }
55947
55948    #[inline]
55949    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType) {
55950        match self {
55951            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_tpl_lit_type(visitor, node),
55952            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_tpl_lit_type(visitor, node),
55953        }
55954    }
55955
55956    #[inline]
55957    fn visit_mut_ts_tuple_element(&mut self, node: &mut TsTupleElement) {
55958        match self {
55959            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_tuple_element(visitor, node),
55960            swc_visit::Either::Right(visitor) => {
55961                VisitMut::visit_mut_ts_tuple_element(visitor, node)
55962            }
55963        }
55964    }
55965
55966    #[inline]
55967    fn visit_mut_ts_tuple_elements(&mut self, node: &mut Vec<TsTupleElement>) {
55968        match self {
55969            swc_visit::Either::Left(visitor) => {
55970                VisitMut::visit_mut_ts_tuple_elements(visitor, node)
55971            }
55972            swc_visit::Either::Right(visitor) => {
55973                VisitMut::visit_mut_ts_tuple_elements(visitor, node)
55974            }
55975        }
55976    }
55977
55978    #[inline]
55979    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType) {
55980        match self {
55981            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_tuple_type(visitor, node),
55982            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_tuple_type(visitor, node),
55983        }
55984    }
55985
55986    #[inline]
55987    fn visit_mut_ts_type(&mut self, node: &mut TsType) {
55988        match self {
55989            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type(visitor, node),
55990            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_type(visitor, node),
55991        }
55992    }
55993
55994    #[inline]
55995    fn visit_mut_ts_type_alias_decl(&mut self, node: &mut TsTypeAliasDecl) {
55996        match self {
55997            swc_visit::Either::Left(visitor) => {
55998                VisitMut::visit_mut_ts_type_alias_decl(visitor, node)
55999            }
56000            swc_visit::Either::Right(visitor) => {
56001                VisitMut::visit_mut_ts_type_alias_decl(visitor, node)
56002            }
56003        }
56004    }
56005
56006    #[inline]
56007    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn) {
56008        match self {
56009            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_ann(visitor, node),
56010            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_type_ann(visitor, node),
56011        }
56012    }
56013
56014    #[inline]
56015    fn visit_mut_ts_type_assertion(&mut self, node: &mut TsTypeAssertion) {
56016        match self {
56017            swc_visit::Either::Left(visitor) => {
56018                VisitMut::visit_mut_ts_type_assertion(visitor, node)
56019            }
56020            swc_visit::Either::Right(visitor) => {
56021                VisitMut::visit_mut_ts_type_assertion(visitor, node)
56022            }
56023        }
56024    }
56025
56026    #[inline]
56027    fn visit_mut_ts_type_element(&mut self, node: &mut TsTypeElement) {
56028        match self {
56029            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_element(visitor, node),
56030            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_type_element(visitor, node),
56031        }
56032    }
56033
56034    #[inline]
56035    fn visit_mut_ts_type_elements(&mut self, node: &mut Vec<TsTypeElement>) {
56036        match self {
56037            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_elements(visitor, node),
56038            swc_visit::Either::Right(visitor) => {
56039                VisitMut::visit_mut_ts_type_elements(visitor, node)
56040            }
56041        }
56042    }
56043
56044    #[inline]
56045    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit) {
56046        match self {
56047            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_lit(visitor, node),
56048            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_type_lit(visitor, node),
56049        }
56050    }
56051
56052    #[inline]
56053    fn visit_mut_ts_type_operator(&mut self, node: &mut TsTypeOperator) {
56054        match self {
56055            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_operator(visitor, node),
56056            swc_visit::Either::Right(visitor) => {
56057                VisitMut::visit_mut_ts_type_operator(visitor, node)
56058            }
56059        }
56060    }
56061
56062    #[inline]
56063    fn visit_mut_ts_type_operator_op(&mut self, node: &mut TsTypeOperatorOp) {
56064        match self {
56065            swc_visit::Either::Left(visitor) => {
56066                VisitMut::visit_mut_ts_type_operator_op(visitor, node)
56067            }
56068            swc_visit::Either::Right(visitor) => {
56069                VisitMut::visit_mut_ts_type_operator_op(visitor, node)
56070            }
56071        }
56072    }
56073
56074    #[inline]
56075    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam) {
56076        match self {
56077            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_param(visitor, node),
56078            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_type_param(visitor, node),
56079        }
56080    }
56081
56082    #[inline]
56083    fn visit_mut_ts_type_param_decl(&mut self, node: &mut TsTypeParamDecl) {
56084        match self {
56085            swc_visit::Either::Left(visitor) => {
56086                VisitMut::visit_mut_ts_type_param_decl(visitor, node)
56087            }
56088            swc_visit::Either::Right(visitor) => {
56089                VisitMut::visit_mut_ts_type_param_decl(visitor, node)
56090            }
56091        }
56092    }
56093
56094    #[inline]
56095    fn visit_mut_ts_type_param_instantiation(&mut self, node: &mut TsTypeParamInstantiation) {
56096        match self {
56097            swc_visit::Either::Left(visitor) => {
56098                VisitMut::visit_mut_ts_type_param_instantiation(visitor, node)
56099            }
56100            swc_visit::Either::Right(visitor) => {
56101                VisitMut::visit_mut_ts_type_param_instantiation(visitor, node)
56102            }
56103        }
56104    }
56105
56106    #[inline]
56107    fn visit_mut_ts_type_params(&mut self, node: &mut Vec<TsTypeParam>) {
56108        match self {
56109            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_params(visitor, node),
56110            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_type_params(visitor, node),
56111        }
56112    }
56113
56114    #[inline]
56115    fn visit_mut_ts_type_predicate(&mut self, node: &mut TsTypePredicate) {
56116        match self {
56117            swc_visit::Either::Left(visitor) => {
56118                VisitMut::visit_mut_ts_type_predicate(visitor, node)
56119            }
56120            swc_visit::Either::Right(visitor) => {
56121                VisitMut::visit_mut_ts_type_predicate(visitor, node)
56122            }
56123        }
56124    }
56125
56126    #[inline]
56127    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery) {
56128        match self {
56129            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_query(visitor, node),
56130            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_type_query(visitor, node),
56131        }
56132    }
56133
56134    #[inline]
56135    fn visit_mut_ts_type_query_expr(&mut self, node: &mut TsTypeQueryExpr) {
56136        match self {
56137            swc_visit::Either::Left(visitor) => {
56138                VisitMut::visit_mut_ts_type_query_expr(visitor, node)
56139            }
56140            swc_visit::Either::Right(visitor) => {
56141                VisitMut::visit_mut_ts_type_query_expr(visitor, node)
56142            }
56143        }
56144    }
56145
56146    #[inline]
56147    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef) {
56148        match self {
56149            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_ref(visitor, node),
56150            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_type_ref(visitor, node),
56151        }
56152    }
56153
56154    #[inline]
56155    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>) {
56156        match self {
56157            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_types(visitor, node),
56158            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_types(visitor, node),
56159        }
56160    }
56161
56162    #[inline]
56163    fn visit_mut_ts_union_or_intersection_type(&mut self, node: &mut TsUnionOrIntersectionType) {
56164        match self {
56165            swc_visit::Either::Left(visitor) => {
56166                VisitMut::visit_mut_ts_union_or_intersection_type(visitor, node)
56167            }
56168            swc_visit::Either::Right(visitor) => {
56169                VisitMut::visit_mut_ts_union_or_intersection_type(visitor, node)
56170            }
56171        }
56172    }
56173
56174    #[inline]
56175    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType) {
56176        match self {
56177            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_union_type(visitor, node),
56178            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_union_type(visitor, node),
56179        }
56180    }
56181
56182    #[inline]
56183    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr) {
56184        match self {
56185            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_unary_expr(visitor, node),
56186            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_unary_expr(visitor, node),
56187        }
56188    }
56189
56190    #[inline]
56191    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp) {
56192        match self {
56193            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_unary_op(visitor, node),
56194            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_unary_op(visitor, node),
56195        }
56196    }
56197
56198    #[inline]
56199    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr) {
56200        match self {
56201            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_update_expr(visitor, node),
56202            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_update_expr(visitor, node),
56203        }
56204    }
56205
56206    #[inline]
56207    fn visit_mut_update_op(&mut self, node: &mut UpdateOp) {
56208        match self {
56209            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_update_op(visitor, node),
56210            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_update_op(visitor, node),
56211        }
56212    }
56213
56214    #[inline]
56215    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl) {
56216        match self {
56217            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_using_decl(visitor, node),
56218            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_using_decl(visitor, node),
56219        }
56220    }
56221
56222    #[inline]
56223    fn visit_mut_var_decl(&mut self, node: &mut VarDecl) {
56224        match self {
56225            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_var_decl(visitor, node),
56226            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_var_decl(visitor, node),
56227        }
56228    }
56229
56230    #[inline]
56231    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind) {
56232        match self {
56233            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_var_decl_kind(visitor, node),
56234            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_var_decl_kind(visitor, node),
56235        }
56236    }
56237
56238    #[inline]
56239    fn visit_mut_var_decl_or_expr(&mut self, node: &mut VarDeclOrExpr) {
56240        match self {
56241            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_var_decl_or_expr(visitor, node),
56242            swc_visit::Either::Right(visitor) => {
56243                VisitMut::visit_mut_var_decl_or_expr(visitor, node)
56244            }
56245        }
56246    }
56247
56248    #[inline]
56249    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator) {
56250        match self {
56251            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_var_declarator(visitor, node),
56252            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_var_declarator(visitor, node),
56253        }
56254    }
56255
56256    #[inline]
56257    fn visit_mut_var_declarators(&mut self, node: &mut Vec<VarDeclarator>) {
56258        match self {
56259            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_var_declarators(visitor, node),
56260            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_var_declarators(visitor, node),
56261        }
56262    }
56263
56264    #[inline]
56265    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt) {
56266        match self {
56267            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_while_stmt(visitor, node),
56268            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_while_stmt(visitor, node),
56269        }
56270    }
56271
56272    #[inline]
56273    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt) {
56274        match self {
56275            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_with_stmt(visitor, node),
56276            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_with_stmt(visitor, node),
56277        }
56278    }
56279
56280    #[inline]
56281    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr) {
56282        match self {
56283            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_yield_expr(visitor, node),
56284            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_yield_expr(visitor, node),
56285        }
56286    }
56287}
56288impl<V> VisitMut for ::swc_visit::Optional<V>
56289where
56290    V: VisitMut,
56291{
56292    #[inline]
56293    fn visit_mut_accessibility(&mut self, node: &mut Accessibility) {
56294        if self.enabled {
56295            <V as VisitMut>::visit_mut_accessibility(&mut self.visitor, node)
56296        } else {
56297        }
56298    }
56299
56300    #[inline]
56301    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit) {
56302        if self.enabled {
56303            <V as VisitMut>::visit_mut_array_lit(&mut self.visitor, node)
56304        } else {
56305        }
56306    }
56307
56308    #[inline]
56309    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat) {
56310        if self.enabled {
56311            <V as VisitMut>::visit_mut_array_pat(&mut self.visitor, node)
56312        } else {
56313        }
56314    }
56315
56316    #[inline]
56317    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr) {
56318        if self.enabled {
56319            <V as VisitMut>::visit_mut_arrow_expr(&mut self.visitor, node)
56320        } else {
56321        }
56322    }
56323
56324    #[inline]
56325    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr) {
56326        if self.enabled {
56327            <V as VisitMut>::visit_mut_assign_expr(&mut self.visitor, node)
56328        } else {
56329        }
56330    }
56331
56332    #[inline]
56333    fn visit_mut_assign_op(&mut self, node: &mut AssignOp) {
56334        if self.enabled {
56335            <V as VisitMut>::visit_mut_assign_op(&mut self.visitor, node)
56336        } else {
56337        }
56338    }
56339
56340    #[inline]
56341    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat) {
56342        if self.enabled {
56343            <V as VisitMut>::visit_mut_assign_pat(&mut self.visitor, node)
56344        } else {
56345        }
56346    }
56347
56348    #[inline]
56349    fn visit_mut_assign_pat_prop(&mut self, node: &mut AssignPatProp) {
56350        if self.enabled {
56351            <V as VisitMut>::visit_mut_assign_pat_prop(&mut self.visitor, node)
56352        } else {
56353        }
56354    }
56355
56356    #[inline]
56357    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp) {
56358        if self.enabled {
56359            <V as VisitMut>::visit_mut_assign_prop(&mut self.visitor, node)
56360        } else {
56361        }
56362    }
56363
56364    #[inline]
56365    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget) {
56366        if self.enabled {
56367            <V as VisitMut>::visit_mut_assign_target(&mut self.visitor, node)
56368        } else {
56369        }
56370    }
56371
56372    #[inline]
56373    fn visit_mut_assign_target_pat(&mut self, node: &mut AssignTargetPat) {
56374        if self.enabled {
56375            <V as VisitMut>::visit_mut_assign_target_pat(&mut self.visitor, node)
56376        } else {
56377        }
56378    }
56379
56380    #[inline]
56381    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom) {
56382        if self.enabled {
56383            <V as VisitMut>::visit_mut_atom(&mut self.visitor, node)
56384        } else {
56385        }
56386    }
56387
56388    #[inline]
56389    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor) {
56390        if self.enabled {
56391            <V as VisitMut>::visit_mut_auto_accessor(&mut self.visitor, node)
56392        } else {
56393        }
56394    }
56395
56396    #[inline]
56397    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr) {
56398        if self.enabled {
56399            <V as VisitMut>::visit_mut_await_expr(&mut self.visitor, node)
56400        } else {
56401        }
56402    }
56403
56404    #[inline]
56405    fn visit_mut_big_int(&mut self, node: &mut BigInt) {
56406        if self.enabled {
56407            <V as VisitMut>::visit_mut_big_int(&mut self.visitor, node)
56408        } else {
56409        }
56410    }
56411
56412    #[inline]
56413    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue) {
56414        if self.enabled {
56415            <V as VisitMut>::visit_mut_big_int_value(&mut self.visitor, node)
56416        } else {
56417        }
56418    }
56419
56420    #[inline]
56421    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr) {
56422        if self.enabled {
56423            <V as VisitMut>::visit_mut_bin_expr(&mut self.visitor, node)
56424        } else {
56425        }
56426    }
56427
56428    #[inline]
56429    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp) {
56430        if self.enabled {
56431            <V as VisitMut>::visit_mut_binary_op(&mut self.visitor, node)
56432        } else {
56433        }
56434    }
56435
56436    #[inline]
56437    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent) {
56438        if self.enabled {
56439            <V as VisitMut>::visit_mut_binding_ident(&mut self.visitor, node)
56440        } else {
56441        }
56442    }
56443
56444    #[inline]
56445    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt) {
56446        if self.enabled {
56447            <V as VisitMut>::visit_mut_block_stmt(&mut self.visitor, node)
56448        } else {
56449        }
56450    }
56451
56452    #[inline]
56453    fn visit_mut_block_stmt_or_expr(&mut self, node: &mut BlockStmtOrExpr) {
56454        if self.enabled {
56455            <V as VisitMut>::visit_mut_block_stmt_or_expr(&mut self.visitor, node)
56456        } else {
56457        }
56458    }
56459
56460    #[inline]
56461    fn visit_mut_bool(&mut self, node: &mut Bool) {
56462        if self.enabled {
56463            <V as VisitMut>::visit_mut_bool(&mut self.visitor, node)
56464        } else {
56465        }
56466    }
56467
56468    #[inline]
56469    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt) {
56470        if self.enabled {
56471            <V as VisitMut>::visit_mut_break_stmt(&mut self.visitor, node)
56472        } else {
56473        }
56474    }
56475
56476    #[inline]
56477    fn visit_mut_call_expr(&mut self, node: &mut CallExpr) {
56478        if self.enabled {
56479            <V as VisitMut>::visit_mut_call_expr(&mut self.visitor, node)
56480        } else {
56481        }
56482    }
56483
56484    #[inline]
56485    fn visit_mut_callee(&mut self, node: &mut Callee) {
56486        if self.enabled {
56487            <V as VisitMut>::visit_mut_callee(&mut self.visitor, node)
56488        } else {
56489        }
56490    }
56491
56492    #[inline]
56493    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause) {
56494        if self.enabled {
56495            <V as VisitMut>::visit_mut_catch_clause(&mut self.visitor, node)
56496        } else {
56497        }
56498    }
56499
56500    #[inline]
56501    fn visit_mut_class(&mut self, node: &mut Class) {
56502        if self.enabled {
56503            <V as VisitMut>::visit_mut_class(&mut self.visitor, node)
56504        } else {
56505        }
56506    }
56507
56508    #[inline]
56509    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl) {
56510        if self.enabled {
56511            <V as VisitMut>::visit_mut_class_decl(&mut self.visitor, node)
56512        } else {
56513        }
56514    }
56515
56516    #[inline]
56517    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr) {
56518        if self.enabled {
56519            <V as VisitMut>::visit_mut_class_expr(&mut self.visitor, node)
56520        } else {
56521        }
56522    }
56523
56524    #[inline]
56525    fn visit_mut_class_member(&mut self, node: &mut ClassMember) {
56526        if self.enabled {
56527            <V as VisitMut>::visit_mut_class_member(&mut self.visitor, node)
56528        } else {
56529        }
56530    }
56531
56532    #[inline]
56533    fn visit_mut_class_members(&mut self, node: &mut Vec<ClassMember>) {
56534        if self.enabled {
56535            <V as VisitMut>::visit_mut_class_members(&mut self.visitor, node)
56536        } else {
56537        }
56538    }
56539
56540    #[inline]
56541    fn visit_mut_class_method(&mut self, node: &mut ClassMethod) {
56542        if self.enabled {
56543            <V as VisitMut>::visit_mut_class_method(&mut self.visitor, node)
56544        } else {
56545        }
56546    }
56547
56548    #[inline]
56549    fn visit_mut_class_prop(&mut self, node: &mut ClassProp) {
56550        if self.enabled {
56551            <V as VisitMut>::visit_mut_class_prop(&mut self.visitor, node)
56552        } else {
56553        }
56554    }
56555
56556    #[inline]
56557    fn visit_mut_computed_prop_name(&mut self, node: &mut ComputedPropName) {
56558        if self.enabled {
56559            <V as VisitMut>::visit_mut_computed_prop_name(&mut self.visitor, node)
56560        } else {
56561        }
56562    }
56563
56564    #[inline]
56565    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr) {
56566        if self.enabled {
56567            <V as VisitMut>::visit_mut_cond_expr(&mut self.visitor, node)
56568        } else {
56569        }
56570    }
56571
56572    #[inline]
56573    fn visit_mut_constructor(&mut self, node: &mut Constructor) {
56574        if self.enabled {
56575            <V as VisitMut>::visit_mut_constructor(&mut self.visitor, node)
56576        } else {
56577        }
56578    }
56579
56580    #[inline]
56581    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt) {
56582        if self.enabled {
56583            <V as VisitMut>::visit_mut_continue_stmt(&mut self.visitor, node)
56584        } else {
56585        }
56586    }
56587
56588    #[inline]
56589    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt) {
56590        if self.enabled {
56591            <V as VisitMut>::visit_mut_debugger_stmt(&mut self.visitor, node)
56592        } else {
56593        }
56594    }
56595
56596    #[inline]
56597    fn visit_mut_decl(&mut self, node: &mut Decl) {
56598        if self.enabled {
56599            <V as VisitMut>::visit_mut_decl(&mut self.visitor, node)
56600        } else {
56601        }
56602    }
56603
56604    #[inline]
56605    fn visit_mut_decorator(&mut self, node: &mut Decorator) {
56606        if self.enabled {
56607            <V as VisitMut>::visit_mut_decorator(&mut self.visitor, node)
56608        } else {
56609        }
56610    }
56611
56612    #[inline]
56613    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>) {
56614        if self.enabled {
56615            <V as VisitMut>::visit_mut_decorators(&mut self.visitor, node)
56616        } else {
56617        }
56618    }
56619
56620    #[inline]
56621    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl) {
56622        if self.enabled {
56623            <V as VisitMut>::visit_mut_default_decl(&mut self.visitor, node)
56624        } else {
56625        }
56626    }
56627
56628    #[inline]
56629    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt) {
56630        if self.enabled {
56631            <V as VisitMut>::visit_mut_do_while_stmt(&mut self.visitor, node)
56632        } else {
56633        }
56634    }
56635
56636    #[inline]
56637    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt) {
56638        if self.enabled {
56639            <V as VisitMut>::visit_mut_empty_stmt(&mut self.visitor, node)
56640        } else {
56641        }
56642    }
56643
56644    #[inline]
56645    fn visit_mut_export_all(&mut self, node: &mut ExportAll) {
56646        if self.enabled {
56647            <V as VisitMut>::visit_mut_export_all(&mut self.visitor, node)
56648        } else {
56649        }
56650    }
56651
56652    #[inline]
56653    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl) {
56654        if self.enabled {
56655            <V as VisitMut>::visit_mut_export_decl(&mut self.visitor, node)
56656        } else {
56657        }
56658    }
56659
56660    #[inline]
56661    fn visit_mut_export_default_decl(&mut self, node: &mut ExportDefaultDecl) {
56662        if self.enabled {
56663            <V as VisitMut>::visit_mut_export_default_decl(&mut self.visitor, node)
56664        } else {
56665        }
56666    }
56667
56668    #[inline]
56669    fn visit_mut_export_default_expr(&mut self, node: &mut ExportDefaultExpr) {
56670        if self.enabled {
56671            <V as VisitMut>::visit_mut_export_default_expr(&mut self.visitor, node)
56672        } else {
56673        }
56674    }
56675
56676    #[inline]
56677    fn visit_mut_export_default_specifier(&mut self, node: &mut ExportDefaultSpecifier) {
56678        if self.enabled {
56679            <V as VisitMut>::visit_mut_export_default_specifier(&mut self.visitor, node)
56680        } else {
56681        }
56682    }
56683
56684    #[inline]
56685    fn visit_mut_export_named_specifier(&mut self, node: &mut ExportNamedSpecifier) {
56686        if self.enabled {
56687            <V as VisitMut>::visit_mut_export_named_specifier(&mut self.visitor, node)
56688        } else {
56689        }
56690    }
56691
56692    #[inline]
56693    fn visit_mut_export_namespace_specifier(&mut self, node: &mut ExportNamespaceSpecifier) {
56694        if self.enabled {
56695            <V as VisitMut>::visit_mut_export_namespace_specifier(&mut self.visitor, node)
56696        } else {
56697        }
56698    }
56699
56700    #[inline]
56701    fn visit_mut_export_specifier(&mut self, node: &mut ExportSpecifier) {
56702        if self.enabled {
56703            <V as VisitMut>::visit_mut_export_specifier(&mut self.visitor, node)
56704        } else {
56705        }
56706    }
56707
56708    #[inline]
56709    fn visit_mut_export_specifiers(&mut self, node: &mut Vec<ExportSpecifier>) {
56710        if self.enabled {
56711            <V as VisitMut>::visit_mut_export_specifiers(&mut self.visitor, node)
56712        } else {
56713        }
56714    }
56715
56716    #[inline]
56717    fn visit_mut_expr(&mut self, node: &mut Expr) {
56718        if self.enabled {
56719            <V as VisitMut>::visit_mut_expr(&mut self.visitor, node)
56720        } else {
56721        }
56722    }
56723
56724    #[inline]
56725    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread) {
56726        if self.enabled {
56727            <V as VisitMut>::visit_mut_expr_or_spread(&mut self.visitor, node)
56728        } else {
56729        }
56730    }
56731
56732    #[inline]
56733    fn visit_mut_expr_or_spreads(&mut self, node: &mut Vec<ExprOrSpread>) {
56734        if self.enabled {
56735            <V as VisitMut>::visit_mut_expr_or_spreads(&mut self.visitor, node)
56736        } else {
56737        }
56738    }
56739
56740    #[inline]
56741    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt) {
56742        if self.enabled {
56743            <V as VisitMut>::visit_mut_expr_stmt(&mut self.visitor, node)
56744        } else {
56745        }
56746    }
56747
56748    #[inline]
56749    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>) {
56750        if self.enabled {
56751            <V as VisitMut>::visit_mut_exprs(&mut self.visitor, node)
56752        } else {
56753        }
56754    }
56755
56756    #[inline]
56757    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl) {
56758        if self.enabled {
56759            <V as VisitMut>::visit_mut_fn_decl(&mut self.visitor, node)
56760        } else {
56761        }
56762    }
56763
56764    #[inline]
56765    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr) {
56766        if self.enabled {
56767            <V as VisitMut>::visit_mut_fn_expr(&mut self.visitor, node)
56768        } else {
56769        }
56770    }
56771
56772    #[inline]
56773    fn visit_mut_for_head(&mut self, node: &mut ForHead) {
56774        if self.enabled {
56775            <V as VisitMut>::visit_mut_for_head(&mut self.visitor, node)
56776        } else {
56777        }
56778    }
56779
56780    #[inline]
56781    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt) {
56782        if self.enabled {
56783            <V as VisitMut>::visit_mut_for_in_stmt(&mut self.visitor, node)
56784        } else {
56785        }
56786    }
56787
56788    #[inline]
56789    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt) {
56790        if self.enabled {
56791            <V as VisitMut>::visit_mut_for_of_stmt(&mut self.visitor, node)
56792        } else {
56793        }
56794    }
56795
56796    #[inline]
56797    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt) {
56798        if self.enabled {
56799            <V as VisitMut>::visit_mut_for_stmt(&mut self.visitor, node)
56800        } else {
56801        }
56802    }
56803
56804    #[inline]
56805    fn visit_mut_function(&mut self, node: &mut Function) {
56806        if self.enabled {
56807            <V as VisitMut>::visit_mut_function(&mut self.visitor, node)
56808        } else {
56809        }
56810    }
56811
56812    #[inline]
56813    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp) {
56814        if self.enabled {
56815            <V as VisitMut>::visit_mut_getter_prop(&mut self.visitor, node)
56816        } else {
56817        }
56818    }
56819
56820    #[inline]
56821    fn visit_mut_ident(&mut self, node: &mut Ident) {
56822        if self.enabled {
56823            <V as VisitMut>::visit_mut_ident(&mut self.visitor, node)
56824        } else {
56825        }
56826    }
56827
56828    #[inline]
56829    fn visit_mut_ident_name(&mut self, node: &mut IdentName) {
56830        if self.enabled {
56831            <V as VisitMut>::visit_mut_ident_name(&mut self.visitor, node)
56832        } else {
56833        }
56834    }
56835
56836    #[inline]
56837    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt) {
56838        if self.enabled {
56839            <V as VisitMut>::visit_mut_if_stmt(&mut self.visitor, node)
56840        } else {
56841        }
56842    }
56843
56844    #[inline]
56845    fn visit_mut_import(&mut self, node: &mut Import) {
56846        if self.enabled {
56847            <V as VisitMut>::visit_mut_import(&mut self.visitor, node)
56848        } else {
56849        }
56850    }
56851
56852    #[inline]
56853    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl) {
56854        if self.enabled {
56855            <V as VisitMut>::visit_mut_import_decl(&mut self.visitor, node)
56856        } else {
56857        }
56858    }
56859
56860    #[inline]
56861    fn visit_mut_import_default_specifier(&mut self, node: &mut ImportDefaultSpecifier) {
56862        if self.enabled {
56863            <V as VisitMut>::visit_mut_import_default_specifier(&mut self.visitor, node)
56864        } else {
56865        }
56866    }
56867
56868    #[inline]
56869    fn visit_mut_import_named_specifier(&mut self, node: &mut ImportNamedSpecifier) {
56870        if self.enabled {
56871            <V as VisitMut>::visit_mut_import_named_specifier(&mut self.visitor, node)
56872        } else {
56873        }
56874    }
56875
56876    #[inline]
56877    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase) {
56878        if self.enabled {
56879            <V as VisitMut>::visit_mut_import_phase(&mut self.visitor, node)
56880        } else {
56881        }
56882    }
56883
56884    #[inline]
56885    fn visit_mut_import_specifier(&mut self, node: &mut ImportSpecifier) {
56886        if self.enabled {
56887            <V as VisitMut>::visit_mut_import_specifier(&mut self.visitor, node)
56888        } else {
56889        }
56890    }
56891
56892    #[inline]
56893    fn visit_mut_import_specifiers(&mut self, node: &mut Vec<ImportSpecifier>) {
56894        if self.enabled {
56895            <V as VisitMut>::visit_mut_import_specifiers(&mut self.visitor, node)
56896        } else {
56897        }
56898    }
56899
56900    #[inline]
56901    fn visit_mut_import_star_as_specifier(&mut self, node: &mut ImportStarAsSpecifier) {
56902        if self.enabled {
56903            <V as VisitMut>::visit_mut_import_star_as_specifier(&mut self.visitor, node)
56904        } else {
56905        }
56906    }
56907
56908    #[inline]
56909    fn visit_mut_import_with(&mut self, node: &mut ImportWith) {
56910        if self.enabled {
56911            <V as VisitMut>::visit_mut_import_with(&mut self.visitor, node)
56912        } else {
56913        }
56914    }
56915
56916    #[inline]
56917    fn visit_mut_import_with_item(&mut self, node: &mut ImportWithItem) {
56918        if self.enabled {
56919            <V as VisitMut>::visit_mut_import_with_item(&mut self.visitor, node)
56920        } else {
56921        }
56922    }
56923
56924    #[inline]
56925    fn visit_mut_import_with_items(&mut self, node: &mut Vec<ImportWithItem>) {
56926        if self.enabled {
56927            <V as VisitMut>::visit_mut_import_with_items(&mut self.visitor, node)
56928        } else {
56929        }
56930    }
56931
56932    #[inline]
56933    fn visit_mut_invalid(&mut self, node: &mut Invalid) {
56934        if self.enabled {
56935            <V as VisitMut>::visit_mut_invalid(&mut self.visitor, node)
56936        } else {
56937        }
56938    }
56939
56940    #[inline]
56941    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr) {
56942        if self.enabled {
56943            <V as VisitMut>::visit_mut_jsx_attr(&mut self.visitor, node)
56944        } else {
56945        }
56946    }
56947
56948    #[inline]
56949    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName) {
56950        if self.enabled {
56951            <V as VisitMut>::visit_mut_jsx_attr_name(&mut self.visitor, node)
56952        } else {
56953        }
56954    }
56955
56956    #[inline]
56957    fn visit_mut_jsx_attr_or_spread(&mut self, node: &mut JSXAttrOrSpread) {
56958        if self.enabled {
56959            <V as VisitMut>::visit_mut_jsx_attr_or_spread(&mut self.visitor, node)
56960        } else {
56961        }
56962    }
56963
56964    #[inline]
56965    fn visit_mut_jsx_attr_or_spreads(&mut self, node: &mut Vec<JSXAttrOrSpread>) {
56966        if self.enabled {
56967            <V as VisitMut>::visit_mut_jsx_attr_or_spreads(&mut self.visitor, node)
56968        } else {
56969        }
56970    }
56971
56972    #[inline]
56973    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue) {
56974        if self.enabled {
56975            <V as VisitMut>::visit_mut_jsx_attr_value(&mut self.visitor, node)
56976        } else {
56977        }
56978    }
56979
56980    #[inline]
56981    fn visit_mut_jsx_closing_element(&mut self, node: &mut JSXClosingElement) {
56982        if self.enabled {
56983            <V as VisitMut>::visit_mut_jsx_closing_element(&mut self.visitor, node)
56984        } else {
56985        }
56986    }
56987
56988    #[inline]
56989    fn visit_mut_jsx_closing_fragment(&mut self, node: &mut JSXClosingFragment) {
56990        if self.enabled {
56991            <V as VisitMut>::visit_mut_jsx_closing_fragment(&mut self.visitor, node)
56992        } else {
56993        }
56994    }
56995
56996    #[inline]
56997    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement) {
56998        if self.enabled {
56999            <V as VisitMut>::visit_mut_jsx_element(&mut self.visitor, node)
57000        } else {
57001        }
57002    }
57003
57004    #[inline]
57005    fn visit_mut_jsx_element_child(&mut self, node: &mut JSXElementChild) {
57006        if self.enabled {
57007            <V as VisitMut>::visit_mut_jsx_element_child(&mut self.visitor, node)
57008        } else {
57009        }
57010    }
57011
57012    #[inline]
57013    fn visit_mut_jsx_element_childs(&mut self, node: &mut Vec<JSXElementChild>) {
57014        if self.enabled {
57015            <V as VisitMut>::visit_mut_jsx_element_childs(&mut self.visitor, node)
57016        } else {
57017        }
57018    }
57019
57020    #[inline]
57021    fn visit_mut_jsx_element_name(&mut self, node: &mut JSXElementName) {
57022        if self.enabled {
57023            <V as VisitMut>::visit_mut_jsx_element_name(&mut self.visitor, node)
57024        } else {
57025        }
57026    }
57027
57028    #[inline]
57029    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr) {
57030        if self.enabled {
57031            <V as VisitMut>::visit_mut_jsx_empty_expr(&mut self.visitor, node)
57032        } else {
57033        }
57034    }
57035
57036    #[inline]
57037    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr) {
57038        if self.enabled {
57039            <V as VisitMut>::visit_mut_jsx_expr(&mut self.visitor, node)
57040        } else {
57041        }
57042    }
57043
57044    #[inline]
57045    fn visit_mut_jsx_expr_container(&mut self, node: &mut JSXExprContainer) {
57046        if self.enabled {
57047            <V as VisitMut>::visit_mut_jsx_expr_container(&mut self.visitor, node)
57048        } else {
57049        }
57050    }
57051
57052    #[inline]
57053    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment) {
57054        if self.enabled {
57055            <V as VisitMut>::visit_mut_jsx_fragment(&mut self.visitor, node)
57056        } else {
57057        }
57058    }
57059
57060    #[inline]
57061    fn visit_mut_jsx_member_expr(&mut self, node: &mut JSXMemberExpr) {
57062        if self.enabled {
57063            <V as VisitMut>::visit_mut_jsx_member_expr(&mut self.visitor, node)
57064        } else {
57065        }
57066    }
57067
57068    #[inline]
57069    fn visit_mut_jsx_namespaced_name(&mut self, node: &mut JSXNamespacedName) {
57070        if self.enabled {
57071            <V as VisitMut>::visit_mut_jsx_namespaced_name(&mut self.visitor, node)
57072        } else {
57073        }
57074    }
57075
57076    #[inline]
57077    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject) {
57078        if self.enabled {
57079            <V as VisitMut>::visit_mut_jsx_object(&mut self.visitor, node)
57080        } else {
57081        }
57082    }
57083
57084    #[inline]
57085    fn visit_mut_jsx_opening_element(&mut self, node: &mut JSXOpeningElement) {
57086        if self.enabled {
57087            <V as VisitMut>::visit_mut_jsx_opening_element(&mut self.visitor, node)
57088        } else {
57089        }
57090    }
57091
57092    #[inline]
57093    fn visit_mut_jsx_opening_fragment(&mut self, node: &mut JSXOpeningFragment) {
57094        if self.enabled {
57095            <V as VisitMut>::visit_mut_jsx_opening_fragment(&mut self.visitor, node)
57096        } else {
57097        }
57098    }
57099
57100    #[inline]
57101    fn visit_mut_jsx_spread_child(&mut self, node: &mut JSXSpreadChild) {
57102        if self.enabled {
57103            <V as VisitMut>::visit_mut_jsx_spread_child(&mut self.visitor, node)
57104        } else {
57105        }
57106    }
57107
57108    #[inline]
57109    fn visit_mut_jsx_text(&mut self, node: &mut JSXText) {
57110        if self.enabled {
57111            <V as VisitMut>::visit_mut_jsx_text(&mut self.visitor, node)
57112        } else {
57113        }
57114    }
57115
57116    #[inline]
57117    fn visit_mut_key(&mut self, node: &mut Key) {
57118        if self.enabled {
57119            <V as VisitMut>::visit_mut_key(&mut self.visitor, node)
57120        } else {
57121        }
57122    }
57123
57124    #[inline]
57125    fn visit_mut_key_value_pat_prop(&mut self, node: &mut KeyValuePatProp) {
57126        if self.enabled {
57127            <V as VisitMut>::visit_mut_key_value_pat_prop(&mut self.visitor, node)
57128        } else {
57129        }
57130    }
57131
57132    #[inline]
57133    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp) {
57134        if self.enabled {
57135            <V as VisitMut>::visit_mut_key_value_prop(&mut self.visitor, node)
57136        } else {
57137        }
57138    }
57139
57140    #[inline]
57141    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt) {
57142        if self.enabled {
57143            <V as VisitMut>::visit_mut_labeled_stmt(&mut self.visitor, node)
57144        } else {
57145        }
57146    }
57147
57148    #[inline]
57149    fn visit_mut_lit(&mut self, node: &mut Lit) {
57150        if self.enabled {
57151            <V as VisitMut>::visit_mut_lit(&mut self.visitor, node)
57152        } else {
57153        }
57154    }
57155
57156    #[inline]
57157    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr) {
57158        if self.enabled {
57159            <V as VisitMut>::visit_mut_member_expr(&mut self.visitor, node)
57160        } else {
57161        }
57162    }
57163
57164    #[inline]
57165    fn visit_mut_member_prop(&mut self, node: &mut MemberProp) {
57166        if self.enabled {
57167            <V as VisitMut>::visit_mut_member_prop(&mut self.visitor, node)
57168        } else {
57169        }
57170    }
57171
57172    #[inline]
57173    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr) {
57174        if self.enabled {
57175            <V as VisitMut>::visit_mut_meta_prop_expr(&mut self.visitor, node)
57176        } else {
57177        }
57178    }
57179
57180    #[inline]
57181    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind) {
57182        if self.enabled {
57183            <V as VisitMut>::visit_mut_meta_prop_kind(&mut self.visitor, node)
57184        } else {
57185        }
57186    }
57187
57188    #[inline]
57189    fn visit_mut_method_kind(&mut self, node: &mut MethodKind) {
57190        if self.enabled {
57191            <V as VisitMut>::visit_mut_method_kind(&mut self.visitor, node)
57192        } else {
57193        }
57194    }
57195
57196    #[inline]
57197    fn visit_mut_method_prop(&mut self, node: &mut MethodProp) {
57198        if self.enabled {
57199            <V as VisitMut>::visit_mut_method_prop(&mut self.visitor, node)
57200        } else {
57201        }
57202    }
57203
57204    #[inline]
57205    fn visit_mut_module(&mut self, node: &mut Module) {
57206        if self.enabled {
57207            <V as VisitMut>::visit_mut_module(&mut self.visitor, node)
57208        } else {
57209        }
57210    }
57211
57212    #[inline]
57213    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl) {
57214        if self.enabled {
57215            <V as VisitMut>::visit_mut_module_decl(&mut self.visitor, node)
57216        } else {
57217        }
57218    }
57219
57220    #[inline]
57221    fn visit_mut_module_export_name(&mut self, node: &mut ModuleExportName) {
57222        if self.enabled {
57223            <V as VisitMut>::visit_mut_module_export_name(&mut self.visitor, node)
57224        } else {
57225        }
57226    }
57227
57228    #[inline]
57229    fn visit_mut_module_item(&mut self, node: &mut ModuleItem) {
57230        if self.enabled {
57231            <V as VisitMut>::visit_mut_module_item(&mut self.visitor, node)
57232        } else {
57233        }
57234    }
57235
57236    #[inline]
57237    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>) {
57238        if self.enabled {
57239            <V as VisitMut>::visit_mut_module_items(&mut self.visitor, node)
57240        } else {
57241        }
57242    }
57243
57244    #[inline]
57245    fn visit_mut_named_export(&mut self, node: &mut NamedExport) {
57246        if self.enabled {
57247            <V as VisitMut>::visit_mut_named_export(&mut self.visitor, node)
57248        } else {
57249        }
57250    }
57251
57252    #[inline]
57253    fn visit_mut_new_expr(&mut self, node: &mut NewExpr) {
57254        if self.enabled {
57255            <V as VisitMut>::visit_mut_new_expr(&mut self.visitor, node)
57256        } else {
57257        }
57258    }
57259
57260    #[inline]
57261    fn visit_mut_null(&mut self, node: &mut Null) {
57262        if self.enabled {
57263            <V as VisitMut>::visit_mut_null(&mut self.visitor, node)
57264        } else {
57265        }
57266    }
57267
57268    #[inline]
57269    fn visit_mut_number(&mut self, node: &mut Number) {
57270        if self.enabled {
57271            <V as VisitMut>::visit_mut_number(&mut self.visitor, node)
57272        } else {
57273        }
57274    }
57275
57276    #[inline]
57277    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit) {
57278        if self.enabled {
57279            <V as VisitMut>::visit_mut_object_lit(&mut self.visitor, node)
57280        } else {
57281        }
57282    }
57283
57284    #[inline]
57285    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat) {
57286        if self.enabled {
57287            <V as VisitMut>::visit_mut_object_pat(&mut self.visitor, node)
57288        } else {
57289        }
57290    }
57291
57292    #[inline]
57293    fn visit_mut_object_pat_prop(&mut self, node: &mut ObjectPatProp) {
57294        if self.enabled {
57295            <V as VisitMut>::visit_mut_object_pat_prop(&mut self.visitor, node)
57296        } else {
57297        }
57298    }
57299
57300    #[inline]
57301    fn visit_mut_object_pat_props(&mut self, node: &mut Vec<ObjectPatProp>) {
57302        if self.enabled {
57303            <V as VisitMut>::visit_mut_object_pat_props(&mut self.visitor, node)
57304        } else {
57305        }
57306    }
57307
57308    #[inline]
57309    fn visit_mut_opt_accessibility(&mut self, node: &mut Option<Accessibility>) {
57310        if self.enabled {
57311            <V as VisitMut>::visit_mut_opt_accessibility(&mut self.visitor, node)
57312        } else {
57313        }
57314    }
57315
57316    #[inline]
57317    fn visit_mut_opt_atom(&mut self, node: &mut Option<swc_atoms::Atom>) {
57318        if self.enabled {
57319            <V as VisitMut>::visit_mut_opt_atom(&mut self.visitor, node)
57320        } else {
57321        }
57322    }
57323
57324    #[inline]
57325    fn visit_mut_opt_block_stmt(&mut self, node: &mut Option<BlockStmt>) {
57326        if self.enabled {
57327            <V as VisitMut>::visit_mut_opt_block_stmt(&mut self.visitor, node)
57328        } else {
57329        }
57330    }
57331
57332    #[inline]
57333    fn visit_mut_opt_call(&mut self, node: &mut OptCall) {
57334        if self.enabled {
57335            <V as VisitMut>::visit_mut_opt_call(&mut self.visitor, node)
57336        } else {
57337        }
57338    }
57339
57340    #[inline]
57341    fn visit_mut_opt_catch_clause(&mut self, node: &mut Option<CatchClause>) {
57342        if self.enabled {
57343            <V as VisitMut>::visit_mut_opt_catch_clause(&mut self.visitor, node)
57344        } else {
57345        }
57346    }
57347
57348    #[inline]
57349    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase) {
57350        if self.enabled {
57351            <V as VisitMut>::visit_mut_opt_chain_base(&mut self.visitor, node)
57352        } else {
57353        }
57354    }
57355
57356    #[inline]
57357    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr) {
57358        if self.enabled {
57359            <V as VisitMut>::visit_mut_opt_chain_expr(&mut self.visitor, node)
57360        } else {
57361        }
57362    }
57363
57364    #[inline]
57365    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>) {
57366        if self.enabled {
57367            <V as VisitMut>::visit_mut_opt_expr(&mut self.visitor, node)
57368        } else {
57369        }
57370    }
57371
57372    #[inline]
57373    fn visit_mut_opt_expr_or_spread(&mut self, node: &mut Option<ExprOrSpread>) {
57374        if self.enabled {
57375            <V as VisitMut>::visit_mut_opt_expr_or_spread(&mut self.visitor, node)
57376        } else {
57377        }
57378    }
57379
57380    #[inline]
57381    fn visit_mut_opt_expr_or_spreads(&mut self, node: &mut Option<Vec<ExprOrSpread>>) {
57382        if self.enabled {
57383            <V as VisitMut>::visit_mut_opt_expr_or_spreads(&mut self.visitor, node)
57384        } else {
57385        }
57386    }
57387
57388    #[inline]
57389    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>) {
57390        if self.enabled {
57391            <V as VisitMut>::visit_mut_opt_ident(&mut self.visitor, node)
57392        } else {
57393        }
57394    }
57395
57396    #[inline]
57397    fn visit_mut_opt_jsx_attr_value(&mut self, node: &mut Option<JSXAttrValue>) {
57398        if self.enabled {
57399            <V as VisitMut>::visit_mut_opt_jsx_attr_value(&mut self.visitor, node)
57400        } else {
57401        }
57402    }
57403
57404    #[inline]
57405    fn visit_mut_opt_jsx_closing_element(&mut self, node: &mut Option<JSXClosingElement>) {
57406        if self.enabled {
57407            <V as VisitMut>::visit_mut_opt_jsx_closing_element(&mut self.visitor, node)
57408        } else {
57409        }
57410    }
57411
57412    #[inline]
57413    fn visit_mut_opt_module_export_name(&mut self, node: &mut Option<ModuleExportName>) {
57414        if self.enabled {
57415            <V as VisitMut>::visit_mut_opt_module_export_name(&mut self.visitor, node)
57416        } else {
57417        }
57418    }
57419
57420    #[inline]
57421    fn visit_mut_opt_object_lit(&mut self, node: &mut Option<Box<ObjectLit>>) {
57422        if self.enabled {
57423            <V as VisitMut>::visit_mut_opt_object_lit(&mut self.visitor, node)
57424        } else {
57425        }
57426    }
57427
57428    #[inline]
57429    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>) {
57430        if self.enabled {
57431            <V as VisitMut>::visit_mut_opt_pat(&mut self.visitor, node)
57432        } else {
57433        }
57434    }
57435
57436    #[inline]
57437    fn visit_mut_opt_span(&mut self, node: &mut Option<swc_common::Span>) {
57438        if self.enabled {
57439            <V as VisitMut>::visit_mut_opt_span(&mut self.visitor, node)
57440        } else {
57441        }
57442    }
57443
57444    #[inline]
57445    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>) {
57446        if self.enabled {
57447            <V as VisitMut>::visit_mut_opt_stmt(&mut self.visitor, node)
57448        } else {
57449        }
57450    }
57451
57452    #[inline]
57453    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>) {
57454        if self.enabled {
57455            <V as VisitMut>::visit_mut_opt_str(&mut self.visitor, node)
57456        } else {
57457        }
57458    }
57459
57460    #[inline]
57461    fn visit_mut_opt_true_plus_minus(&mut self, node: &mut Option<TruePlusMinus>) {
57462        if self.enabled {
57463            <V as VisitMut>::visit_mut_opt_true_plus_minus(&mut self.visitor, node)
57464        } else {
57465        }
57466    }
57467
57468    #[inline]
57469    fn visit_mut_opt_ts_entity_name(&mut self, node: &mut Option<TsEntityName>) {
57470        if self.enabled {
57471            <V as VisitMut>::visit_mut_opt_ts_entity_name(&mut self.visitor, node)
57472        } else {
57473        }
57474    }
57475
57476    #[inline]
57477    fn visit_mut_opt_ts_import_call_options(&mut self, node: &mut Option<TsImportCallOptions>) {
57478        if self.enabled {
57479            <V as VisitMut>::visit_mut_opt_ts_import_call_options(&mut self.visitor, node)
57480        } else {
57481        }
57482    }
57483
57484    #[inline]
57485    fn visit_mut_opt_ts_namespace_body(&mut self, node: &mut Option<TsNamespaceBody>) {
57486        if self.enabled {
57487            <V as VisitMut>::visit_mut_opt_ts_namespace_body(&mut self.visitor, node)
57488        } else {
57489        }
57490    }
57491
57492    #[inline]
57493    fn visit_mut_opt_ts_type(&mut self, node: &mut Option<Box<TsType>>) {
57494        if self.enabled {
57495            <V as VisitMut>::visit_mut_opt_ts_type(&mut self.visitor, node)
57496        } else {
57497        }
57498    }
57499
57500    #[inline]
57501    fn visit_mut_opt_ts_type_ann(&mut self, node: &mut Option<Box<TsTypeAnn>>) {
57502        if self.enabled {
57503            <V as VisitMut>::visit_mut_opt_ts_type_ann(&mut self.visitor, node)
57504        } else {
57505        }
57506    }
57507
57508    #[inline]
57509    fn visit_mut_opt_ts_type_param_decl(&mut self, node: &mut Option<Box<TsTypeParamDecl>>) {
57510        if self.enabled {
57511            <V as VisitMut>::visit_mut_opt_ts_type_param_decl(&mut self.visitor, node)
57512        } else {
57513        }
57514    }
57515
57516    #[inline]
57517    fn visit_mut_opt_ts_type_param_instantiation(
57518        &mut self,
57519        node: &mut Option<Box<TsTypeParamInstantiation>>,
57520    ) {
57521        if self.enabled {
57522            <V as VisitMut>::visit_mut_opt_ts_type_param_instantiation(&mut self.visitor, node)
57523        } else {
57524        }
57525    }
57526
57527    #[inline]
57528    fn visit_mut_opt_var_decl_or_expr(&mut self, node: &mut Option<VarDeclOrExpr>) {
57529        if self.enabled {
57530            <V as VisitMut>::visit_mut_opt_var_decl_or_expr(&mut self.visitor, node)
57531        } else {
57532        }
57533    }
57534
57535    #[inline]
57536    fn visit_mut_opt_vec_expr_or_spreads(&mut self, node: &mut Vec<Option<ExprOrSpread>>) {
57537        if self.enabled {
57538            <V as VisitMut>::visit_mut_opt_vec_expr_or_spreads(&mut self.visitor, node)
57539        } else {
57540        }
57541    }
57542
57543    #[inline]
57544    fn visit_mut_opt_vec_pats(&mut self, node: &mut Vec<Option<Pat>>) {
57545        if self.enabled {
57546            <V as VisitMut>::visit_mut_opt_vec_pats(&mut self.visitor, node)
57547        } else {
57548        }
57549    }
57550
57551    #[inline]
57552    fn visit_mut_param(&mut self, node: &mut Param) {
57553        if self.enabled {
57554            <V as VisitMut>::visit_mut_param(&mut self.visitor, node)
57555        } else {
57556        }
57557    }
57558
57559    #[inline]
57560    fn visit_mut_param_or_ts_param_prop(&mut self, node: &mut ParamOrTsParamProp) {
57561        if self.enabled {
57562            <V as VisitMut>::visit_mut_param_or_ts_param_prop(&mut self.visitor, node)
57563        } else {
57564        }
57565    }
57566
57567    #[inline]
57568    fn visit_mut_param_or_ts_param_props(&mut self, node: &mut Vec<ParamOrTsParamProp>) {
57569        if self.enabled {
57570            <V as VisitMut>::visit_mut_param_or_ts_param_props(&mut self.visitor, node)
57571        } else {
57572        }
57573    }
57574
57575    #[inline]
57576    fn visit_mut_params(&mut self, node: &mut Vec<Param>) {
57577        if self.enabled {
57578            <V as VisitMut>::visit_mut_params(&mut self.visitor, node)
57579        } else {
57580        }
57581    }
57582
57583    #[inline]
57584    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr) {
57585        if self.enabled {
57586            <V as VisitMut>::visit_mut_paren_expr(&mut self.visitor, node)
57587        } else {
57588        }
57589    }
57590
57591    #[inline]
57592    fn visit_mut_pat(&mut self, node: &mut Pat) {
57593        if self.enabled {
57594            <V as VisitMut>::visit_mut_pat(&mut self.visitor, node)
57595        } else {
57596        }
57597    }
57598
57599    #[inline]
57600    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>) {
57601        if self.enabled {
57602            <V as VisitMut>::visit_mut_pats(&mut self.visitor, node)
57603        } else {
57604        }
57605    }
57606
57607    #[inline]
57608    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod) {
57609        if self.enabled {
57610            <V as VisitMut>::visit_mut_private_method(&mut self.visitor, node)
57611        } else {
57612        }
57613    }
57614
57615    #[inline]
57616    fn visit_mut_private_name(&mut self, node: &mut PrivateName) {
57617        if self.enabled {
57618            <V as VisitMut>::visit_mut_private_name(&mut self.visitor, node)
57619        } else {
57620        }
57621    }
57622
57623    #[inline]
57624    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp) {
57625        if self.enabled {
57626            <V as VisitMut>::visit_mut_private_prop(&mut self.visitor, node)
57627        } else {
57628        }
57629    }
57630
57631    #[inline]
57632    fn visit_mut_program(&mut self, node: &mut Program) {
57633        if self.enabled {
57634            <V as VisitMut>::visit_mut_program(&mut self.visitor, node)
57635        } else {
57636        }
57637    }
57638
57639    #[inline]
57640    fn visit_mut_prop(&mut self, node: &mut Prop) {
57641        if self.enabled {
57642            <V as VisitMut>::visit_mut_prop(&mut self.visitor, node)
57643        } else {
57644        }
57645    }
57646
57647    #[inline]
57648    fn visit_mut_prop_name(&mut self, node: &mut PropName) {
57649        if self.enabled {
57650            <V as VisitMut>::visit_mut_prop_name(&mut self.visitor, node)
57651        } else {
57652        }
57653    }
57654
57655    #[inline]
57656    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread) {
57657        if self.enabled {
57658            <V as VisitMut>::visit_mut_prop_or_spread(&mut self.visitor, node)
57659        } else {
57660        }
57661    }
57662
57663    #[inline]
57664    fn visit_mut_prop_or_spreads(&mut self, node: &mut Vec<PropOrSpread>) {
57665        if self.enabled {
57666            <V as VisitMut>::visit_mut_prop_or_spreads(&mut self.visitor, node)
57667        } else {
57668        }
57669    }
57670
57671    #[inline]
57672    fn visit_mut_regex(&mut self, node: &mut Regex) {
57673        if self.enabled {
57674            <V as VisitMut>::visit_mut_regex(&mut self.visitor, node)
57675        } else {
57676        }
57677    }
57678
57679    #[inline]
57680    fn visit_mut_rest_pat(&mut self, node: &mut RestPat) {
57681        if self.enabled {
57682            <V as VisitMut>::visit_mut_rest_pat(&mut self.visitor, node)
57683        } else {
57684        }
57685    }
57686
57687    #[inline]
57688    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt) {
57689        if self.enabled {
57690            <V as VisitMut>::visit_mut_return_stmt(&mut self.visitor, node)
57691        } else {
57692        }
57693    }
57694
57695    #[inline]
57696    fn visit_mut_script(&mut self, node: &mut Script) {
57697        if self.enabled {
57698            <V as VisitMut>::visit_mut_script(&mut self.visitor, node)
57699        } else {
57700        }
57701    }
57702
57703    #[inline]
57704    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr) {
57705        if self.enabled {
57706            <V as VisitMut>::visit_mut_seq_expr(&mut self.visitor, node)
57707        } else {
57708        }
57709    }
57710
57711    #[inline]
57712    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp) {
57713        if self.enabled {
57714            <V as VisitMut>::visit_mut_setter_prop(&mut self.visitor, node)
57715        } else {
57716        }
57717    }
57718
57719    #[inline]
57720    fn visit_mut_simple_assign_target(&mut self, node: &mut SimpleAssignTarget) {
57721        if self.enabled {
57722            <V as VisitMut>::visit_mut_simple_assign_target(&mut self.visitor, node)
57723        } else {
57724        }
57725    }
57726
57727    #[inline]
57728    fn visit_mut_span(&mut self, node: &mut swc_common::Span) {
57729        if self.enabled {
57730            <V as VisitMut>::visit_mut_span(&mut self.visitor, node)
57731        } else {
57732        }
57733    }
57734
57735    #[inline]
57736    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement) {
57737        if self.enabled {
57738            <V as VisitMut>::visit_mut_spread_element(&mut self.visitor, node)
57739        } else {
57740        }
57741    }
57742
57743    #[inline]
57744    fn visit_mut_static_block(&mut self, node: &mut StaticBlock) {
57745        if self.enabled {
57746            <V as VisitMut>::visit_mut_static_block(&mut self.visitor, node)
57747        } else {
57748        }
57749    }
57750
57751    #[inline]
57752    fn visit_mut_stmt(&mut self, node: &mut Stmt) {
57753        if self.enabled {
57754            <V as VisitMut>::visit_mut_stmt(&mut self.visitor, node)
57755        } else {
57756        }
57757    }
57758
57759    #[inline]
57760    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>) {
57761        if self.enabled {
57762            <V as VisitMut>::visit_mut_stmts(&mut self.visitor, node)
57763        } else {
57764        }
57765    }
57766
57767    #[inline]
57768    fn visit_mut_str(&mut self, node: &mut Str) {
57769        if self.enabled {
57770            <V as VisitMut>::visit_mut_str(&mut self.visitor, node)
57771        } else {
57772        }
57773    }
57774
57775    #[inline]
57776    fn visit_mut_super(&mut self, node: &mut Super) {
57777        if self.enabled {
57778            <V as VisitMut>::visit_mut_super(&mut self.visitor, node)
57779        } else {
57780        }
57781    }
57782
57783    #[inline]
57784    fn visit_mut_super_prop(&mut self, node: &mut SuperProp) {
57785        if self.enabled {
57786            <V as VisitMut>::visit_mut_super_prop(&mut self.visitor, node)
57787        } else {
57788        }
57789    }
57790
57791    #[inline]
57792    fn visit_mut_super_prop_expr(&mut self, node: &mut SuperPropExpr) {
57793        if self.enabled {
57794            <V as VisitMut>::visit_mut_super_prop_expr(&mut self.visitor, node)
57795        } else {
57796        }
57797    }
57798
57799    #[inline]
57800    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase) {
57801        if self.enabled {
57802            <V as VisitMut>::visit_mut_switch_case(&mut self.visitor, node)
57803        } else {
57804        }
57805    }
57806
57807    #[inline]
57808    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>) {
57809        if self.enabled {
57810            <V as VisitMut>::visit_mut_switch_cases(&mut self.visitor, node)
57811        } else {
57812        }
57813    }
57814
57815    #[inline]
57816    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt) {
57817        if self.enabled {
57818            <V as VisitMut>::visit_mut_switch_stmt(&mut self.visitor, node)
57819        } else {
57820        }
57821    }
57822
57823    #[inline]
57824    fn visit_mut_syntax_context(&mut self, node: &mut swc_common::SyntaxContext) {
57825        if self.enabled {
57826            <V as VisitMut>::visit_mut_syntax_context(&mut self.visitor, node)
57827        } else {
57828        }
57829    }
57830
57831    #[inline]
57832    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl) {
57833        if self.enabled {
57834            <V as VisitMut>::visit_mut_tagged_tpl(&mut self.visitor, node)
57835        } else {
57836        }
57837    }
57838
57839    #[inline]
57840    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr) {
57841        if self.enabled {
57842            <V as VisitMut>::visit_mut_this_expr(&mut self.visitor, node)
57843        } else {
57844        }
57845    }
57846
57847    #[inline]
57848    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt) {
57849        if self.enabled {
57850            <V as VisitMut>::visit_mut_throw_stmt(&mut self.visitor, node)
57851        } else {
57852        }
57853    }
57854
57855    #[inline]
57856    fn visit_mut_tpl(&mut self, node: &mut Tpl) {
57857        if self.enabled {
57858            <V as VisitMut>::visit_mut_tpl(&mut self.visitor, node)
57859        } else {
57860        }
57861    }
57862
57863    #[inline]
57864    fn visit_mut_tpl_element(&mut self, node: &mut TplElement) {
57865        if self.enabled {
57866            <V as VisitMut>::visit_mut_tpl_element(&mut self.visitor, node)
57867        } else {
57868        }
57869    }
57870
57871    #[inline]
57872    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>) {
57873        if self.enabled {
57874            <V as VisitMut>::visit_mut_tpl_elements(&mut self.visitor, node)
57875        } else {
57876        }
57877    }
57878
57879    #[inline]
57880    fn visit_mut_true_plus_minus(&mut self, node: &mut TruePlusMinus) {
57881        if self.enabled {
57882            <V as VisitMut>::visit_mut_true_plus_minus(&mut self.visitor, node)
57883        } else {
57884        }
57885    }
57886
57887    #[inline]
57888    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt) {
57889        if self.enabled {
57890            <V as VisitMut>::visit_mut_try_stmt(&mut self.visitor, node)
57891        } else {
57892        }
57893    }
57894
57895    #[inline]
57896    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType) {
57897        if self.enabled {
57898            <V as VisitMut>::visit_mut_ts_array_type(&mut self.visitor, node)
57899        } else {
57900        }
57901    }
57902
57903    #[inline]
57904    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr) {
57905        if self.enabled {
57906            <V as VisitMut>::visit_mut_ts_as_expr(&mut self.visitor, node)
57907        } else {
57908        }
57909    }
57910
57911    #[inline]
57912    fn visit_mut_ts_call_signature_decl(&mut self, node: &mut TsCallSignatureDecl) {
57913        if self.enabled {
57914            <V as VisitMut>::visit_mut_ts_call_signature_decl(&mut self.visitor, node)
57915        } else {
57916        }
57917    }
57918
57919    #[inline]
57920    fn visit_mut_ts_conditional_type(&mut self, node: &mut TsConditionalType) {
57921        if self.enabled {
57922            <V as VisitMut>::visit_mut_ts_conditional_type(&mut self.visitor, node)
57923        } else {
57924        }
57925    }
57926
57927    #[inline]
57928    fn visit_mut_ts_const_assertion(&mut self, node: &mut TsConstAssertion) {
57929        if self.enabled {
57930            <V as VisitMut>::visit_mut_ts_const_assertion(&mut self.visitor, node)
57931        } else {
57932        }
57933    }
57934
57935    #[inline]
57936    fn visit_mut_ts_construct_signature_decl(&mut self, node: &mut TsConstructSignatureDecl) {
57937        if self.enabled {
57938            <V as VisitMut>::visit_mut_ts_construct_signature_decl(&mut self.visitor, node)
57939        } else {
57940        }
57941    }
57942
57943    #[inline]
57944    fn visit_mut_ts_constructor_type(&mut self, node: &mut TsConstructorType) {
57945        if self.enabled {
57946            <V as VisitMut>::visit_mut_ts_constructor_type(&mut self.visitor, node)
57947        } else {
57948        }
57949    }
57950
57951    #[inline]
57952    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName) {
57953        if self.enabled {
57954            <V as VisitMut>::visit_mut_ts_entity_name(&mut self.visitor, node)
57955        } else {
57956        }
57957    }
57958
57959    #[inline]
57960    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl) {
57961        if self.enabled {
57962            <V as VisitMut>::visit_mut_ts_enum_decl(&mut self.visitor, node)
57963        } else {
57964        }
57965    }
57966
57967    #[inline]
57968    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember) {
57969        if self.enabled {
57970            <V as VisitMut>::visit_mut_ts_enum_member(&mut self.visitor, node)
57971        } else {
57972        }
57973    }
57974
57975    #[inline]
57976    fn visit_mut_ts_enum_member_id(&mut self, node: &mut TsEnumMemberId) {
57977        if self.enabled {
57978            <V as VisitMut>::visit_mut_ts_enum_member_id(&mut self.visitor, node)
57979        } else {
57980        }
57981    }
57982
57983    #[inline]
57984    fn visit_mut_ts_enum_members(&mut self, node: &mut Vec<TsEnumMember>) {
57985        if self.enabled {
57986            <V as VisitMut>::visit_mut_ts_enum_members(&mut self.visitor, node)
57987        } else {
57988        }
57989    }
57990
57991    #[inline]
57992    fn visit_mut_ts_export_assignment(&mut self, node: &mut TsExportAssignment) {
57993        if self.enabled {
57994            <V as VisitMut>::visit_mut_ts_export_assignment(&mut self.visitor, node)
57995        } else {
57996        }
57997    }
57998
57999    #[inline]
58000    fn visit_mut_ts_expr_with_type_args(&mut self, node: &mut TsExprWithTypeArgs) {
58001        if self.enabled {
58002            <V as VisitMut>::visit_mut_ts_expr_with_type_args(&mut self.visitor, node)
58003        } else {
58004        }
58005    }
58006
58007    #[inline]
58008    fn visit_mut_ts_expr_with_type_argss(&mut self, node: &mut Vec<TsExprWithTypeArgs>) {
58009        if self.enabled {
58010            <V as VisitMut>::visit_mut_ts_expr_with_type_argss(&mut self.visitor, node)
58011        } else {
58012        }
58013    }
58014
58015    #[inline]
58016    fn visit_mut_ts_external_module_ref(&mut self, node: &mut TsExternalModuleRef) {
58017        if self.enabled {
58018            <V as VisitMut>::visit_mut_ts_external_module_ref(&mut self.visitor, node)
58019        } else {
58020        }
58021    }
58022
58023    #[inline]
58024    fn visit_mut_ts_fn_or_constructor_type(&mut self, node: &mut TsFnOrConstructorType) {
58025        if self.enabled {
58026            <V as VisitMut>::visit_mut_ts_fn_or_constructor_type(&mut self.visitor, node)
58027        } else {
58028        }
58029    }
58030
58031    #[inline]
58032    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam) {
58033        if self.enabled {
58034            <V as VisitMut>::visit_mut_ts_fn_param(&mut self.visitor, node)
58035        } else {
58036        }
58037    }
58038
58039    #[inline]
58040    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>) {
58041        if self.enabled {
58042            <V as VisitMut>::visit_mut_ts_fn_params(&mut self.visitor, node)
58043        } else {
58044        }
58045    }
58046
58047    #[inline]
58048    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType) {
58049        if self.enabled {
58050            <V as VisitMut>::visit_mut_ts_fn_type(&mut self.visitor, node)
58051        } else {
58052        }
58053    }
58054
58055    #[inline]
58056    fn visit_mut_ts_getter_signature(&mut self, node: &mut TsGetterSignature) {
58057        if self.enabled {
58058            <V as VisitMut>::visit_mut_ts_getter_signature(&mut self.visitor, node)
58059        } else {
58060        }
58061    }
58062
58063    #[inline]
58064    fn visit_mut_ts_import_call_options(&mut self, node: &mut TsImportCallOptions) {
58065        if self.enabled {
58066            <V as VisitMut>::visit_mut_ts_import_call_options(&mut self.visitor, node)
58067        } else {
58068        }
58069    }
58070
58071    #[inline]
58072    fn visit_mut_ts_import_equals_decl(&mut self, node: &mut TsImportEqualsDecl) {
58073        if self.enabled {
58074            <V as VisitMut>::visit_mut_ts_import_equals_decl(&mut self.visitor, node)
58075        } else {
58076        }
58077    }
58078
58079    #[inline]
58080    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType) {
58081        if self.enabled {
58082            <V as VisitMut>::visit_mut_ts_import_type(&mut self.visitor, node)
58083        } else {
58084        }
58085    }
58086
58087    #[inline]
58088    fn visit_mut_ts_index_signature(&mut self, node: &mut TsIndexSignature) {
58089        if self.enabled {
58090            <V as VisitMut>::visit_mut_ts_index_signature(&mut self.visitor, node)
58091        } else {
58092        }
58093    }
58094
58095    #[inline]
58096    fn visit_mut_ts_indexed_access_type(&mut self, node: &mut TsIndexedAccessType) {
58097        if self.enabled {
58098            <V as VisitMut>::visit_mut_ts_indexed_access_type(&mut self.visitor, node)
58099        } else {
58100        }
58101    }
58102
58103    #[inline]
58104    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType) {
58105        if self.enabled {
58106            <V as VisitMut>::visit_mut_ts_infer_type(&mut self.visitor, node)
58107        } else {
58108        }
58109    }
58110
58111    #[inline]
58112    fn visit_mut_ts_instantiation(&mut self, node: &mut TsInstantiation) {
58113        if self.enabled {
58114            <V as VisitMut>::visit_mut_ts_instantiation(&mut self.visitor, node)
58115        } else {
58116        }
58117    }
58118
58119    #[inline]
58120    fn visit_mut_ts_interface_body(&mut self, node: &mut TsInterfaceBody) {
58121        if self.enabled {
58122            <V as VisitMut>::visit_mut_ts_interface_body(&mut self.visitor, node)
58123        } else {
58124        }
58125    }
58126
58127    #[inline]
58128    fn visit_mut_ts_interface_decl(&mut self, node: &mut TsInterfaceDecl) {
58129        if self.enabled {
58130            <V as VisitMut>::visit_mut_ts_interface_decl(&mut self.visitor, node)
58131        } else {
58132        }
58133    }
58134
58135    #[inline]
58136    fn visit_mut_ts_intersection_type(&mut self, node: &mut TsIntersectionType) {
58137        if self.enabled {
58138            <V as VisitMut>::visit_mut_ts_intersection_type(&mut self.visitor, node)
58139        } else {
58140        }
58141    }
58142
58143    #[inline]
58144    fn visit_mut_ts_keyword_type(&mut self, node: &mut TsKeywordType) {
58145        if self.enabled {
58146            <V as VisitMut>::visit_mut_ts_keyword_type(&mut self.visitor, node)
58147        } else {
58148        }
58149    }
58150
58151    #[inline]
58152    fn visit_mut_ts_keyword_type_kind(&mut self, node: &mut TsKeywordTypeKind) {
58153        if self.enabled {
58154            <V as VisitMut>::visit_mut_ts_keyword_type_kind(&mut self.visitor, node)
58155        } else {
58156        }
58157    }
58158
58159    #[inline]
58160    fn visit_mut_ts_lit(&mut self, node: &mut TsLit) {
58161        if self.enabled {
58162            <V as VisitMut>::visit_mut_ts_lit(&mut self.visitor, node)
58163        } else {
58164        }
58165    }
58166
58167    #[inline]
58168    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType) {
58169        if self.enabled {
58170            <V as VisitMut>::visit_mut_ts_lit_type(&mut self.visitor, node)
58171        } else {
58172        }
58173    }
58174
58175    #[inline]
58176    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType) {
58177        if self.enabled {
58178            <V as VisitMut>::visit_mut_ts_mapped_type(&mut self.visitor, node)
58179        } else {
58180        }
58181    }
58182
58183    #[inline]
58184    fn visit_mut_ts_method_signature(&mut self, node: &mut TsMethodSignature) {
58185        if self.enabled {
58186            <V as VisitMut>::visit_mut_ts_method_signature(&mut self.visitor, node)
58187        } else {
58188        }
58189    }
58190
58191    #[inline]
58192    fn visit_mut_ts_module_block(&mut self, node: &mut TsModuleBlock) {
58193        if self.enabled {
58194            <V as VisitMut>::visit_mut_ts_module_block(&mut self.visitor, node)
58195        } else {
58196        }
58197    }
58198
58199    #[inline]
58200    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl) {
58201        if self.enabled {
58202            <V as VisitMut>::visit_mut_ts_module_decl(&mut self.visitor, node)
58203        } else {
58204        }
58205    }
58206
58207    #[inline]
58208    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName) {
58209        if self.enabled {
58210            <V as VisitMut>::visit_mut_ts_module_name(&mut self.visitor, node)
58211        } else {
58212        }
58213    }
58214
58215    #[inline]
58216    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef) {
58217        if self.enabled {
58218            <V as VisitMut>::visit_mut_ts_module_ref(&mut self.visitor, node)
58219        } else {
58220        }
58221    }
58222
58223    #[inline]
58224    fn visit_mut_ts_namespace_body(&mut self, node: &mut TsNamespaceBody) {
58225        if self.enabled {
58226            <V as VisitMut>::visit_mut_ts_namespace_body(&mut self.visitor, node)
58227        } else {
58228        }
58229    }
58230
58231    #[inline]
58232    fn visit_mut_ts_namespace_decl(&mut self, node: &mut TsNamespaceDecl) {
58233        if self.enabled {
58234            <V as VisitMut>::visit_mut_ts_namespace_decl(&mut self.visitor, node)
58235        } else {
58236        }
58237    }
58238
58239    #[inline]
58240    fn visit_mut_ts_namespace_export_decl(&mut self, node: &mut TsNamespaceExportDecl) {
58241        if self.enabled {
58242            <V as VisitMut>::visit_mut_ts_namespace_export_decl(&mut self.visitor, node)
58243        } else {
58244        }
58245    }
58246
58247    #[inline]
58248    fn visit_mut_ts_non_null_expr(&mut self, node: &mut TsNonNullExpr) {
58249        if self.enabled {
58250            <V as VisitMut>::visit_mut_ts_non_null_expr(&mut self.visitor, node)
58251        } else {
58252        }
58253    }
58254
58255    #[inline]
58256    fn visit_mut_ts_optional_type(&mut self, node: &mut TsOptionalType) {
58257        if self.enabled {
58258            <V as VisitMut>::visit_mut_ts_optional_type(&mut self.visitor, node)
58259        } else {
58260        }
58261    }
58262
58263    #[inline]
58264    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp) {
58265        if self.enabled {
58266            <V as VisitMut>::visit_mut_ts_param_prop(&mut self.visitor, node)
58267        } else {
58268        }
58269    }
58270
58271    #[inline]
58272    fn visit_mut_ts_param_prop_param(&mut self, node: &mut TsParamPropParam) {
58273        if self.enabled {
58274            <V as VisitMut>::visit_mut_ts_param_prop_param(&mut self.visitor, node)
58275        } else {
58276        }
58277    }
58278
58279    #[inline]
58280    fn visit_mut_ts_parenthesized_type(&mut self, node: &mut TsParenthesizedType) {
58281        if self.enabled {
58282            <V as VisitMut>::visit_mut_ts_parenthesized_type(&mut self.visitor, node)
58283        } else {
58284        }
58285    }
58286
58287    #[inline]
58288    fn visit_mut_ts_property_signature(&mut self, node: &mut TsPropertySignature) {
58289        if self.enabled {
58290            <V as VisitMut>::visit_mut_ts_property_signature(&mut self.visitor, node)
58291        } else {
58292        }
58293    }
58294
58295    #[inline]
58296    fn visit_mut_ts_qualified_name(&mut self, node: &mut TsQualifiedName) {
58297        if self.enabled {
58298            <V as VisitMut>::visit_mut_ts_qualified_name(&mut self.visitor, node)
58299        } else {
58300        }
58301    }
58302
58303    #[inline]
58304    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType) {
58305        if self.enabled {
58306            <V as VisitMut>::visit_mut_ts_rest_type(&mut self.visitor, node)
58307        } else {
58308        }
58309    }
58310
58311    #[inline]
58312    fn visit_mut_ts_satisfies_expr(&mut self, node: &mut TsSatisfiesExpr) {
58313        if self.enabled {
58314            <V as VisitMut>::visit_mut_ts_satisfies_expr(&mut self.visitor, node)
58315        } else {
58316        }
58317    }
58318
58319    #[inline]
58320    fn visit_mut_ts_setter_signature(&mut self, node: &mut TsSetterSignature) {
58321        if self.enabled {
58322            <V as VisitMut>::visit_mut_ts_setter_signature(&mut self.visitor, node)
58323        } else {
58324        }
58325    }
58326
58327    #[inline]
58328    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType) {
58329        if self.enabled {
58330            <V as VisitMut>::visit_mut_ts_this_type(&mut self.visitor, node)
58331        } else {
58332        }
58333    }
58334
58335    #[inline]
58336    fn visit_mut_ts_this_type_or_ident(&mut self, node: &mut TsThisTypeOrIdent) {
58337        if self.enabled {
58338            <V as VisitMut>::visit_mut_ts_this_type_or_ident(&mut self.visitor, node)
58339        } else {
58340        }
58341    }
58342
58343    #[inline]
58344    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType) {
58345        if self.enabled {
58346            <V as VisitMut>::visit_mut_ts_tpl_lit_type(&mut self.visitor, node)
58347        } else {
58348        }
58349    }
58350
58351    #[inline]
58352    fn visit_mut_ts_tuple_element(&mut self, node: &mut TsTupleElement) {
58353        if self.enabled {
58354            <V as VisitMut>::visit_mut_ts_tuple_element(&mut self.visitor, node)
58355        } else {
58356        }
58357    }
58358
58359    #[inline]
58360    fn visit_mut_ts_tuple_elements(&mut self, node: &mut Vec<TsTupleElement>) {
58361        if self.enabled {
58362            <V as VisitMut>::visit_mut_ts_tuple_elements(&mut self.visitor, node)
58363        } else {
58364        }
58365    }
58366
58367    #[inline]
58368    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType) {
58369        if self.enabled {
58370            <V as VisitMut>::visit_mut_ts_tuple_type(&mut self.visitor, node)
58371        } else {
58372        }
58373    }
58374
58375    #[inline]
58376    fn visit_mut_ts_type(&mut self, node: &mut TsType) {
58377        if self.enabled {
58378            <V as VisitMut>::visit_mut_ts_type(&mut self.visitor, node)
58379        } else {
58380        }
58381    }
58382
58383    #[inline]
58384    fn visit_mut_ts_type_alias_decl(&mut self, node: &mut TsTypeAliasDecl) {
58385        if self.enabled {
58386            <V as VisitMut>::visit_mut_ts_type_alias_decl(&mut self.visitor, node)
58387        } else {
58388        }
58389    }
58390
58391    #[inline]
58392    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn) {
58393        if self.enabled {
58394            <V as VisitMut>::visit_mut_ts_type_ann(&mut self.visitor, node)
58395        } else {
58396        }
58397    }
58398
58399    #[inline]
58400    fn visit_mut_ts_type_assertion(&mut self, node: &mut TsTypeAssertion) {
58401        if self.enabled {
58402            <V as VisitMut>::visit_mut_ts_type_assertion(&mut self.visitor, node)
58403        } else {
58404        }
58405    }
58406
58407    #[inline]
58408    fn visit_mut_ts_type_element(&mut self, node: &mut TsTypeElement) {
58409        if self.enabled {
58410            <V as VisitMut>::visit_mut_ts_type_element(&mut self.visitor, node)
58411        } else {
58412        }
58413    }
58414
58415    #[inline]
58416    fn visit_mut_ts_type_elements(&mut self, node: &mut Vec<TsTypeElement>) {
58417        if self.enabled {
58418            <V as VisitMut>::visit_mut_ts_type_elements(&mut self.visitor, node)
58419        } else {
58420        }
58421    }
58422
58423    #[inline]
58424    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit) {
58425        if self.enabled {
58426            <V as VisitMut>::visit_mut_ts_type_lit(&mut self.visitor, node)
58427        } else {
58428        }
58429    }
58430
58431    #[inline]
58432    fn visit_mut_ts_type_operator(&mut self, node: &mut TsTypeOperator) {
58433        if self.enabled {
58434            <V as VisitMut>::visit_mut_ts_type_operator(&mut self.visitor, node)
58435        } else {
58436        }
58437    }
58438
58439    #[inline]
58440    fn visit_mut_ts_type_operator_op(&mut self, node: &mut TsTypeOperatorOp) {
58441        if self.enabled {
58442            <V as VisitMut>::visit_mut_ts_type_operator_op(&mut self.visitor, node)
58443        } else {
58444        }
58445    }
58446
58447    #[inline]
58448    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam) {
58449        if self.enabled {
58450            <V as VisitMut>::visit_mut_ts_type_param(&mut self.visitor, node)
58451        } else {
58452        }
58453    }
58454
58455    #[inline]
58456    fn visit_mut_ts_type_param_decl(&mut self, node: &mut TsTypeParamDecl) {
58457        if self.enabled {
58458            <V as VisitMut>::visit_mut_ts_type_param_decl(&mut self.visitor, node)
58459        } else {
58460        }
58461    }
58462
58463    #[inline]
58464    fn visit_mut_ts_type_param_instantiation(&mut self, node: &mut TsTypeParamInstantiation) {
58465        if self.enabled {
58466            <V as VisitMut>::visit_mut_ts_type_param_instantiation(&mut self.visitor, node)
58467        } else {
58468        }
58469    }
58470
58471    #[inline]
58472    fn visit_mut_ts_type_params(&mut self, node: &mut Vec<TsTypeParam>) {
58473        if self.enabled {
58474            <V as VisitMut>::visit_mut_ts_type_params(&mut self.visitor, node)
58475        } else {
58476        }
58477    }
58478
58479    #[inline]
58480    fn visit_mut_ts_type_predicate(&mut self, node: &mut TsTypePredicate) {
58481        if self.enabled {
58482            <V as VisitMut>::visit_mut_ts_type_predicate(&mut self.visitor, node)
58483        } else {
58484        }
58485    }
58486
58487    #[inline]
58488    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery) {
58489        if self.enabled {
58490            <V as VisitMut>::visit_mut_ts_type_query(&mut self.visitor, node)
58491        } else {
58492        }
58493    }
58494
58495    #[inline]
58496    fn visit_mut_ts_type_query_expr(&mut self, node: &mut TsTypeQueryExpr) {
58497        if self.enabled {
58498            <V as VisitMut>::visit_mut_ts_type_query_expr(&mut self.visitor, node)
58499        } else {
58500        }
58501    }
58502
58503    #[inline]
58504    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef) {
58505        if self.enabled {
58506            <V as VisitMut>::visit_mut_ts_type_ref(&mut self.visitor, node)
58507        } else {
58508        }
58509    }
58510
58511    #[inline]
58512    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>) {
58513        if self.enabled {
58514            <V as VisitMut>::visit_mut_ts_types(&mut self.visitor, node)
58515        } else {
58516        }
58517    }
58518
58519    #[inline]
58520    fn visit_mut_ts_union_or_intersection_type(&mut self, node: &mut TsUnionOrIntersectionType) {
58521        if self.enabled {
58522            <V as VisitMut>::visit_mut_ts_union_or_intersection_type(&mut self.visitor, node)
58523        } else {
58524        }
58525    }
58526
58527    #[inline]
58528    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType) {
58529        if self.enabled {
58530            <V as VisitMut>::visit_mut_ts_union_type(&mut self.visitor, node)
58531        } else {
58532        }
58533    }
58534
58535    #[inline]
58536    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr) {
58537        if self.enabled {
58538            <V as VisitMut>::visit_mut_unary_expr(&mut self.visitor, node)
58539        } else {
58540        }
58541    }
58542
58543    #[inline]
58544    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp) {
58545        if self.enabled {
58546            <V as VisitMut>::visit_mut_unary_op(&mut self.visitor, node)
58547        } else {
58548        }
58549    }
58550
58551    #[inline]
58552    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr) {
58553        if self.enabled {
58554            <V as VisitMut>::visit_mut_update_expr(&mut self.visitor, node)
58555        } else {
58556        }
58557    }
58558
58559    #[inline]
58560    fn visit_mut_update_op(&mut self, node: &mut UpdateOp) {
58561        if self.enabled {
58562            <V as VisitMut>::visit_mut_update_op(&mut self.visitor, node)
58563        } else {
58564        }
58565    }
58566
58567    #[inline]
58568    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl) {
58569        if self.enabled {
58570            <V as VisitMut>::visit_mut_using_decl(&mut self.visitor, node)
58571        } else {
58572        }
58573    }
58574
58575    #[inline]
58576    fn visit_mut_var_decl(&mut self, node: &mut VarDecl) {
58577        if self.enabled {
58578            <V as VisitMut>::visit_mut_var_decl(&mut self.visitor, node)
58579        } else {
58580        }
58581    }
58582
58583    #[inline]
58584    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind) {
58585        if self.enabled {
58586            <V as VisitMut>::visit_mut_var_decl_kind(&mut self.visitor, node)
58587        } else {
58588        }
58589    }
58590
58591    #[inline]
58592    fn visit_mut_var_decl_or_expr(&mut self, node: &mut VarDeclOrExpr) {
58593        if self.enabled {
58594            <V as VisitMut>::visit_mut_var_decl_or_expr(&mut self.visitor, node)
58595        } else {
58596        }
58597    }
58598
58599    #[inline]
58600    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator) {
58601        if self.enabled {
58602            <V as VisitMut>::visit_mut_var_declarator(&mut self.visitor, node)
58603        } else {
58604        }
58605    }
58606
58607    #[inline]
58608    fn visit_mut_var_declarators(&mut self, node: &mut Vec<VarDeclarator>) {
58609        if self.enabled {
58610            <V as VisitMut>::visit_mut_var_declarators(&mut self.visitor, node)
58611        } else {
58612        }
58613    }
58614
58615    #[inline]
58616    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt) {
58617        if self.enabled {
58618            <V as VisitMut>::visit_mut_while_stmt(&mut self.visitor, node)
58619        } else {
58620        }
58621    }
58622
58623    #[inline]
58624    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt) {
58625        if self.enabled {
58626            <V as VisitMut>::visit_mut_with_stmt(&mut self.visitor, node)
58627        } else {
58628        }
58629    }
58630
58631    #[inline]
58632    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr) {
58633        if self.enabled {
58634            <V as VisitMut>::visit_mut_yield_expr(&mut self.visitor, node)
58635        } else {
58636        }
58637    }
58638}
58639#[doc = r" A trait implemented for types that can be visited using a visitor."]
58640pub trait VisitMutWith<V: ?Sized + VisitMut> {
58641    #[doc = r" Calls a visitor method (visitor.fold_xxx) with self."]
58642    fn visit_mut_with(&mut self, visitor: &mut V);
58643    #[doc = r" Visit children nodes of `self`` with `visitor`."]
58644    fn visit_mut_children_with(&mut self, visitor: &mut V);
58645}
58646impl<V: ?Sized + VisitMut> VisitMutWith<V> for Accessibility {
58647    #[doc = "Calls [VisitMut`::visit_mut_accessibility`] with `self`."]
58648    fn visit_mut_with(&mut self, visitor: &mut V) {
58649        <V as VisitMut>::visit_mut_accessibility(visitor, self)
58650    }
58651
58652    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58653        match self {
58654            Accessibility::Public => {}
58655            Accessibility::Protected => {}
58656            Accessibility::Private => {}
58657        }
58658    }
58659}
58660impl<V: ?Sized + VisitMut> VisitMutWith<V> for ArrayLit {
58661    #[doc = "Calls [VisitMut`::visit_mut_array_lit`] with `self`."]
58662    fn visit_mut_with(&mut self, visitor: &mut V) {
58663        <V as VisitMut>::visit_mut_array_lit(visitor, self)
58664    }
58665
58666    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58667        match self {
58668            ArrayLit { span, elems } => {
58669                {
58670                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58671                };
58672                {
58673                    <Vec<Option<ExprOrSpread>> as VisitMutWith<V>>::visit_mut_with(elems, visitor)
58674                };
58675            }
58676        }
58677    }
58678}
58679impl<V: ?Sized + VisitMut> VisitMutWith<V> for ArrayPat {
58680    #[doc = "Calls [VisitMut`::visit_mut_array_pat`] with `self`."]
58681    fn visit_mut_with(&mut self, visitor: &mut V) {
58682        <V as VisitMut>::visit_mut_array_pat(visitor, self)
58683    }
58684
58685    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58686        match self {
58687            ArrayPat {
58688                span,
58689                elems,
58690                optional,
58691                type_ann,
58692            } => {
58693                {
58694                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58695                };
58696                {
58697                    <Vec<Option<Pat>> as VisitMutWith<V>>::visit_mut_with(elems, visitor)
58698                };
58699                {
58700                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
58701                };
58702            }
58703        }
58704    }
58705}
58706impl<V: ?Sized + VisitMut> VisitMutWith<V> for ArrowExpr {
58707    #[doc = "Calls [VisitMut`::visit_mut_arrow_expr`] with `self`."]
58708    fn visit_mut_with(&mut self, visitor: &mut V) {
58709        <V as VisitMut>::visit_mut_arrow_expr(visitor, self)
58710    }
58711
58712    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58713        match self {
58714            ArrowExpr {
58715                span,
58716                ctxt,
58717                params,
58718                body,
58719                is_async,
58720                is_generator,
58721                type_params,
58722                return_type,
58723            } => {
58724                {
58725                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58726                };
58727                {
58728                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
58729                };
58730                {
58731                    <Vec<Pat> as VisitMutWith<V>>::visit_mut_with(params, visitor)
58732                };
58733                {
58734                    <Box<BlockStmtOrExpr> as VisitMutWith<V>>::visit_mut_with(body, visitor)
58735                };
58736                {
58737                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
58738                        type_params,
58739                        visitor,
58740                    )
58741                };
58742                {
58743                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(
58744                        return_type,
58745                        visitor,
58746                    )
58747                };
58748            }
58749        }
58750    }
58751}
58752impl<V: ?Sized + VisitMut> VisitMutWith<V> for AssignExpr {
58753    #[doc = "Calls [VisitMut`::visit_mut_assign_expr`] with `self`."]
58754    fn visit_mut_with(&mut self, visitor: &mut V) {
58755        <V as VisitMut>::visit_mut_assign_expr(visitor, self)
58756    }
58757
58758    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58759        match self {
58760            AssignExpr {
58761                span,
58762                op,
58763                left,
58764                right,
58765            } => {
58766                {
58767                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58768                };
58769                {
58770                    <AssignOp as VisitMutWith<V>>::visit_mut_with(op, visitor)
58771                };
58772                {
58773                    <AssignTarget as VisitMutWith<V>>::visit_mut_with(left, visitor)
58774                };
58775                {
58776                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(right, visitor)
58777                };
58778            }
58779        }
58780    }
58781}
58782impl<V: ?Sized + VisitMut> VisitMutWith<V> for AssignOp {
58783    #[doc = "Calls [VisitMut`::visit_mut_assign_op`] with `self`."]
58784    fn visit_mut_with(&mut self, visitor: &mut V) {
58785        <V as VisitMut>::visit_mut_assign_op(visitor, self)
58786    }
58787
58788    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58789        match self {
58790            AssignOp::Assign => {}
58791            AssignOp::AddAssign => {}
58792            AssignOp::SubAssign => {}
58793            AssignOp::MulAssign => {}
58794            AssignOp::DivAssign => {}
58795            AssignOp::ModAssign => {}
58796            AssignOp::LShiftAssign => {}
58797            AssignOp::RShiftAssign => {}
58798            AssignOp::ZeroFillRShiftAssign => {}
58799            AssignOp::BitOrAssign => {}
58800            AssignOp::BitXorAssign => {}
58801            AssignOp::BitAndAssign => {}
58802            AssignOp::ExpAssign => {}
58803            AssignOp::AndAssign => {}
58804            AssignOp::OrAssign => {}
58805            AssignOp::NullishAssign => {}
58806        }
58807    }
58808}
58809impl<V: ?Sized + VisitMut> VisitMutWith<V> for AssignPat {
58810    #[doc = "Calls [VisitMut`::visit_mut_assign_pat`] with `self`."]
58811    fn visit_mut_with(&mut self, visitor: &mut V) {
58812        <V as VisitMut>::visit_mut_assign_pat(visitor, self)
58813    }
58814
58815    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58816        match self {
58817            AssignPat { span, left, right } => {
58818                {
58819                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58820                };
58821                {
58822                    <Box<Pat> as VisitMutWith<V>>::visit_mut_with(left, visitor)
58823                };
58824                {
58825                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(right, visitor)
58826                };
58827            }
58828        }
58829    }
58830}
58831impl<V: ?Sized + VisitMut> VisitMutWith<V> for AssignPatProp {
58832    #[doc = "Calls [VisitMut`::visit_mut_assign_pat_prop`] with `self`."]
58833    fn visit_mut_with(&mut self, visitor: &mut V) {
58834        <V as VisitMut>::visit_mut_assign_pat_prop(visitor, self)
58835    }
58836
58837    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58838        match self {
58839            AssignPatProp { span, key, value } => {
58840                {
58841                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58842                };
58843                {
58844                    <BindingIdent as VisitMutWith<V>>::visit_mut_with(key, visitor)
58845                };
58846                {
58847                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(value, visitor)
58848                };
58849            }
58850        }
58851    }
58852}
58853impl<V: ?Sized + VisitMut> VisitMutWith<V> for AssignProp {
58854    #[doc = "Calls [VisitMut`::visit_mut_assign_prop`] with `self`."]
58855    fn visit_mut_with(&mut self, visitor: &mut V) {
58856        <V as VisitMut>::visit_mut_assign_prop(visitor, self)
58857    }
58858
58859    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58860        match self {
58861            AssignProp { span, key, value } => {
58862                {
58863                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58864                };
58865                {
58866                    <Ident as VisitMutWith<V>>::visit_mut_with(key, visitor)
58867                };
58868                {
58869                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(value, visitor)
58870                };
58871            }
58872        }
58873    }
58874}
58875impl<V: ?Sized + VisitMut> VisitMutWith<V> for AssignTarget {
58876    #[doc = "Calls [VisitMut`::visit_mut_assign_target`] with `self`."]
58877    fn visit_mut_with(&mut self, visitor: &mut V) {
58878        <V as VisitMut>::visit_mut_assign_target(visitor, self)
58879    }
58880
58881    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58882        match self {
58883            AssignTarget::Simple { 0: _field_0 } => {
58884                <SimpleAssignTarget as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58885            }
58886            AssignTarget::Pat { 0: _field_0 } => {
58887                <AssignTargetPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58888            }
58889        }
58890    }
58891}
58892impl<V: ?Sized + VisitMut> VisitMutWith<V> for AssignTargetPat {
58893    #[doc = "Calls [VisitMut`::visit_mut_assign_target_pat`] with `self`."]
58894    fn visit_mut_with(&mut self, visitor: &mut V) {
58895        <V as VisitMut>::visit_mut_assign_target_pat(visitor, self)
58896    }
58897
58898    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58899        match self {
58900            AssignTargetPat::Array { 0: _field_0 } => {
58901                <ArrayPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58902            }
58903            AssignTargetPat::Object { 0: _field_0 } => {
58904                <ObjectPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58905            }
58906            AssignTargetPat::Invalid { 0: _field_0 } => {
58907                <Invalid as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58908            }
58909        }
58910    }
58911}
58912impl<V: ?Sized + VisitMut> VisitMutWith<V> for AutoAccessor {
58913    #[doc = "Calls [VisitMut`::visit_mut_auto_accessor`] with `self`."]
58914    fn visit_mut_with(&mut self, visitor: &mut V) {
58915        <V as VisitMut>::visit_mut_auto_accessor(visitor, self)
58916    }
58917
58918    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58919        match self {
58920            AutoAccessor {
58921                span,
58922                key,
58923                value,
58924                type_ann,
58925                is_static,
58926                decorators,
58927                accessibility,
58928                is_abstract,
58929                is_override,
58930                definite,
58931            } => {
58932                {
58933                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58934                };
58935                {
58936                    <Key as VisitMutWith<V>>::visit_mut_with(key, visitor)
58937                };
58938                {
58939                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(value, visitor)
58940                };
58941                {
58942                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
58943                };
58944                {
58945                    <Vec<Decorator> as VisitMutWith<V>>::visit_mut_with(decorators, visitor)
58946                };
58947                {
58948                    <Option<Accessibility> as VisitMutWith<V>>::visit_mut_with(
58949                        accessibility,
58950                        visitor,
58951                    )
58952                };
58953            }
58954        }
58955    }
58956}
58957impl<V: ?Sized + VisitMut> VisitMutWith<V> for AwaitExpr {
58958    #[doc = "Calls [VisitMut`::visit_mut_await_expr`] with `self`."]
58959    fn visit_mut_with(&mut self, visitor: &mut V) {
58960        <V as VisitMut>::visit_mut_await_expr(visitor, self)
58961    }
58962
58963    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58964        match self {
58965            AwaitExpr { span, arg } => {
58966                {
58967                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58968                };
58969                {
58970                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(arg, visitor)
58971                };
58972            }
58973        }
58974    }
58975}
58976impl<V: ?Sized + VisitMut> VisitMutWith<V> for BigInt {
58977    #[doc = "Calls [VisitMut`::visit_mut_big_int`] with `self`."]
58978    fn visit_mut_with(&mut self, visitor: &mut V) {
58979        <V as VisitMut>::visit_mut_big_int(visitor, self)
58980    }
58981
58982    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58983        match self {
58984            BigInt { span, value, raw } => {
58985                {
58986                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58987                };
58988                {
58989                    <Box<BigIntValue> as VisitMutWith<V>>::visit_mut_with(value, visitor)
58990                };
58991                {
58992                    <Option<swc_atoms::Atom> as VisitMutWith<V>>::visit_mut_with(raw, visitor)
58993                };
58994            }
58995        }
58996    }
58997}
58998impl<V: ?Sized + VisitMut> VisitMutWith<V> for BinExpr {
58999    #[doc = "Calls [VisitMut`::visit_mut_bin_expr`] with `self`."]
59000    fn visit_mut_with(&mut self, visitor: &mut V) {
59001        <V as VisitMut>::visit_mut_bin_expr(visitor, self)
59002    }
59003
59004    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59005        match self {
59006            BinExpr {
59007                span,
59008                op,
59009                left,
59010                right,
59011            } => {
59012                {
59013                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59014                };
59015                {
59016                    <BinaryOp as VisitMutWith<V>>::visit_mut_with(op, visitor)
59017                };
59018                {
59019                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(left, visitor)
59020                };
59021                {
59022                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(right, visitor)
59023                };
59024            }
59025        }
59026    }
59027}
59028impl<V: ?Sized + VisitMut> VisitMutWith<V> for BinaryOp {
59029    #[doc = "Calls [VisitMut`::visit_mut_binary_op`] with `self`."]
59030    fn visit_mut_with(&mut self, visitor: &mut V) {
59031        <V as VisitMut>::visit_mut_binary_op(visitor, self)
59032    }
59033
59034    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59035        match self {
59036            BinaryOp::EqEq => {}
59037            BinaryOp::NotEq => {}
59038            BinaryOp::EqEqEq => {}
59039            BinaryOp::NotEqEq => {}
59040            BinaryOp::Lt => {}
59041            BinaryOp::LtEq => {}
59042            BinaryOp::Gt => {}
59043            BinaryOp::GtEq => {}
59044            BinaryOp::LShift => {}
59045            BinaryOp::RShift => {}
59046            BinaryOp::ZeroFillRShift => {}
59047            BinaryOp::Add => {}
59048            BinaryOp::Sub => {}
59049            BinaryOp::Mul => {}
59050            BinaryOp::Div => {}
59051            BinaryOp::Mod => {}
59052            BinaryOp::BitOr => {}
59053            BinaryOp::BitXor => {}
59054            BinaryOp::BitAnd => {}
59055            BinaryOp::LogicalOr => {}
59056            BinaryOp::LogicalAnd => {}
59057            BinaryOp::In => {}
59058            BinaryOp::InstanceOf => {}
59059            BinaryOp::Exp => {}
59060            BinaryOp::NullishCoalescing => {}
59061        }
59062    }
59063}
59064impl<V: ?Sized + VisitMut> VisitMutWith<V> for BindingIdent {
59065    #[doc = "Calls [VisitMut`::visit_mut_binding_ident`] with `self`."]
59066    fn visit_mut_with(&mut self, visitor: &mut V) {
59067        <V as VisitMut>::visit_mut_binding_ident(visitor, self)
59068    }
59069
59070    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59071        match self {
59072            BindingIdent { id, type_ann } => {
59073                {
59074                    <Ident as VisitMutWith<V>>::visit_mut_with(id, visitor)
59075                };
59076                {
59077                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
59078                };
59079            }
59080        }
59081    }
59082}
59083impl<V: ?Sized + VisitMut> VisitMutWith<V> for BlockStmt {
59084    #[doc = "Calls [VisitMut`::visit_mut_block_stmt`] with `self`."]
59085    fn visit_mut_with(&mut self, visitor: &mut V) {
59086        <V as VisitMut>::visit_mut_block_stmt(visitor, self)
59087    }
59088
59089    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59090        match self {
59091            BlockStmt { span, ctxt, stmts } => {
59092                {
59093                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59094                };
59095                {
59096                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
59097                };
59098                {
59099                    <Vec<Stmt> as VisitMutWith<V>>::visit_mut_with(stmts, visitor)
59100                };
59101            }
59102        }
59103    }
59104}
59105impl<V: ?Sized + VisitMut> VisitMutWith<V> for BlockStmtOrExpr {
59106    #[doc = "Calls [VisitMut`::visit_mut_block_stmt_or_expr`] with `self`."]
59107    fn visit_mut_with(&mut self, visitor: &mut V) {
59108        <V as VisitMut>::visit_mut_block_stmt_or_expr(visitor, self)
59109    }
59110
59111    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59112        match self {
59113            BlockStmtOrExpr::BlockStmt { 0: _field_0 } => {
59114                <BlockStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59115            }
59116            BlockStmtOrExpr::Expr { 0: _field_0 } => {
59117                <Box<Expr> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59118            }
59119        }
59120    }
59121}
59122impl<V: ?Sized + VisitMut> VisitMutWith<V> for Bool {
59123    #[doc = "Calls [VisitMut`::visit_mut_bool`] with `self`."]
59124    fn visit_mut_with(&mut self, visitor: &mut V) {
59125        <V as VisitMut>::visit_mut_bool(visitor, self)
59126    }
59127
59128    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59129        match self {
59130            Bool { span, value } => {
59131                {
59132                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59133                };
59134            }
59135        }
59136    }
59137}
59138impl<V: ?Sized + VisitMut> VisitMutWith<V> for BreakStmt {
59139    #[doc = "Calls [VisitMut`::visit_mut_break_stmt`] with `self`."]
59140    fn visit_mut_with(&mut self, visitor: &mut V) {
59141        <V as VisitMut>::visit_mut_break_stmt(visitor, self)
59142    }
59143
59144    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59145        match self {
59146            BreakStmt { span, label } => {
59147                {
59148                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59149                };
59150                {
59151                    <Option<Ident> as VisitMutWith<V>>::visit_mut_with(label, visitor)
59152                };
59153            }
59154        }
59155    }
59156}
59157impl<V: ?Sized + VisitMut> VisitMutWith<V> for CallExpr {
59158    #[doc = "Calls [VisitMut`::visit_mut_call_expr`] with `self`."]
59159    fn visit_mut_with(&mut self, visitor: &mut V) {
59160        <V as VisitMut>::visit_mut_call_expr(visitor, self)
59161    }
59162
59163    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59164        match self {
59165            CallExpr {
59166                span,
59167                ctxt,
59168                callee,
59169                args,
59170                type_args,
59171            } => {
59172                {
59173                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59174                };
59175                {
59176                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
59177                };
59178                {
59179                    <Callee as VisitMutWith<V>>::visit_mut_with(callee, visitor)
59180                };
59181                {
59182                    <Vec<ExprOrSpread> as VisitMutWith<V>>::visit_mut_with(args, visitor)
59183                };
59184                {
59185                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
59186                        type_args, visitor,
59187                    )
59188                };
59189            }
59190        }
59191    }
59192}
59193impl<V: ?Sized + VisitMut> VisitMutWith<V> for Callee {
59194    #[doc = "Calls [VisitMut`::visit_mut_callee`] with `self`."]
59195    fn visit_mut_with(&mut self, visitor: &mut V) {
59196        <V as VisitMut>::visit_mut_callee(visitor, self)
59197    }
59198
59199    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59200        match self {
59201            Callee::Super { 0: _field_0 } => {
59202                <Super as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59203            }
59204            Callee::Import { 0: _field_0 } => {
59205                <Import as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59206            }
59207            Callee::Expr { 0: _field_0 } => {
59208                <Box<Expr> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59209            }
59210        }
59211    }
59212}
59213impl<V: ?Sized + VisitMut> VisitMutWith<V> for CatchClause {
59214    #[doc = "Calls [VisitMut`::visit_mut_catch_clause`] with `self`."]
59215    fn visit_mut_with(&mut self, visitor: &mut V) {
59216        <V as VisitMut>::visit_mut_catch_clause(visitor, self)
59217    }
59218
59219    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59220        match self {
59221            CatchClause { span, param, body } => {
59222                {
59223                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59224                };
59225                {
59226                    <Option<Pat> as VisitMutWith<V>>::visit_mut_with(param, visitor)
59227                };
59228                {
59229                    <BlockStmt as VisitMutWith<V>>::visit_mut_with(body, visitor)
59230                };
59231            }
59232        }
59233    }
59234}
59235impl<V: ?Sized + VisitMut> VisitMutWith<V> for Class {
59236    #[doc = "Calls [VisitMut`::visit_mut_class`] with `self`."]
59237    fn visit_mut_with(&mut self, visitor: &mut V) {
59238        <V as VisitMut>::visit_mut_class(visitor, self)
59239    }
59240
59241    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59242        match self {
59243            Class {
59244                span,
59245                ctxt,
59246                decorators,
59247                body,
59248                super_class,
59249                is_abstract,
59250                type_params,
59251                super_type_params,
59252                implements,
59253            } => {
59254                {
59255                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59256                };
59257                {
59258                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
59259                };
59260                {
59261                    <Vec<Decorator> as VisitMutWith<V>>::visit_mut_with(decorators, visitor)
59262                };
59263                {
59264                    <Vec<ClassMember> as VisitMutWith<V>>::visit_mut_with(body, visitor)
59265                };
59266                {
59267                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(super_class, visitor)
59268                };
59269                {
59270                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
59271                        type_params,
59272                        visitor,
59273                    )
59274                };
59275                {
59276                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
59277                        super_type_params,
59278                        visitor,
59279                    )
59280                };
59281                {
59282                    <Vec<TsExprWithTypeArgs> as VisitMutWith<V>>::visit_mut_with(
59283                        implements, visitor,
59284                    )
59285                };
59286            }
59287        }
59288    }
59289}
59290impl<V: ?Sized + VisitMut> VisitMutWith<V> for ClassDecl {
59291    #[doc = "Calls [VisitMut`::visit_mut_class_decl`] with `self`."]
59292    fn visit_mut_with(&mut self, visitor: &mut V) {
59293        <V as VisitMut>::visit_mut_class_decl(visitor, self)
59294    }
59295
59296    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59297        match self {
59298            ClassDecl {
59299                ident,
59300                declare,
59301                class,
59302            } => {
59303                {
59304                    <Ident as VisitMutWith<V>>::visit_mut_with(ident, visitor)
59305                };
59306                {
59307                    <Box<Class> as VisitMutWith<V>>::visit_mut_with(class, visitor)
59308                };
59309            }
59310        }
59311    }
59312}
59313impl<V: ?Sized + VisitMut> VisitMutWith<V> for ClassExpr {
59314    #[doc = "Calls [VisitMut`::visit_mut_class_expr`] with `self`."]
59315    fn visit_mut_with(&mut self, visitor: &mut V) {
59316        <V as VisitMut>::visit_mut_class_expr(visitor, self)
59317    }
59318
59319    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59320        match self {
59321            ClassExpr { ident, class } => {
59322                {
59323                    <Option<Ident> as VisitMutWith<V>>::visit_mut_with(ident, visitor)
59324                };
59325                {
59326                    <Box<Class> as VisitMutWith<V>>::visit_mut_with(class, visitor)
59327                };
59328            }
59329        }
59330    }
59331}
59332impl<V: ?Sized + VisitMut> VisitMutWith<V> for ClassMember {
59333    #[doc = "Calls [VisitMut`::visit_mut_class_member`] with `self`."]
59334    fn visit_mut_with(&mut self, visitor: &mut V) {
59335        <V as VisitMut>::visit_mut_class_member(visitor, self)
59336    }
59337
59338    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59339        match self {
59340            ClassMember::Constructor { 0: _field_0 } => {
59341                <Constructor as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59342            }
59343            ClassMember::Method { 0: _field_0 } => {
59344                <ClassMethod as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59345            }
59346            ClassMember::PrivateMethod { 0: _field_0 } => {
59347                <PrivateMethod as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59348            }
59349            ClassMember::ClassProp { 0: _field_0 } => {
59350                <ClassProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59351            }
59352            ClassMember::PrivateProp { 0: _field_0 } => {
59353                <PrivateProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59354            }
59355            ClassMember::TsIndexSignature { 0: _field_0 } => {
59356                <TsIndexSignature as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59357            }
59358            ClassMember::Empty { 0: _field_0 } => {
59359                <EmptyStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59360            }
59361            ClassMember::StaticBlock { 0: _field_0 } => {
59362                <StaticBlock as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59363            }
59364            ClassMember::AutoAccessor { 0: _field_0 } => {
59365                <AutoAccessor as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59366            }
59367        }
59368    }
59369}
59370impl<V: ?Sized + VisitMut> VisitMutWith<V> for ClassMethod {
59371    #[doc = "Calls [VisitMut`::visit_mut_class_method`] with `self`."]
59372    fn visit_mut_with(&mut self, visitor: &mut V) {
59373        <V as VisitMut>::visit_mut_class_method(visitor, self)
59374    }
59375
59376    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59377        match self {
59378            ClassMethod {
59379                span,
59380                key,
59381                function,
59382                kind,
59383                is_static,
59384                accessibility,
59385                is_abstract,
59386                is_optional,
59387                is_override,
59388            } => {
59389                {
59390                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59391                };
59392                {
59393                    <PropName as VisitMutWith<V>>::visit_mut_with(key, visitor)
59394                };
59395                {
59396                    <Box<Function> as VisitMutWith<V>>::visit_mut_with(function, visitor)
59397                };
59398                {
59399                    <MethodKind as VisitMutWith<V>>::visit_mut_with(kind, visitor)
59400                };
59401                {
59402                    <Option<Accessibility> as VisitMutWith<V>>::visit_mut_with(
59403                        accessibility,
59404                        visitor,
59405                    )
59406                };
59407            }
59408        }
59409    }
59410}
59411impl<V: ?Sized + VisitMut> VisitMutWith<V> for ClassProp {
59412    #[doc = "Calls [VisitMut`::visit_mut_class_prop`] with `self`."]
59413    fn visit_mut_with(&mut self, visitor: &mut V) {
59414        <V as VisitMut>::visit_mut_class_prop(visitor, self)
59415    }
59416
59417    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59418        match self {
59419            ClassProp {
59420                span,
59421                key,
59422                value,
59423                type_ann,
59424                is_static,
59425                decorators,
59426                accessibility,
59427                is_abstract,
59428                is_optional,
59429                is_override,
59430                readonly,
59431                declare,
59432                definite,
59433            } => {
59434                {
59435                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59436                };
59437                {
59438                    <PropName as VisitMutWith<V>>::visit_mut_with(key, visitor)
59439                };
59440                {
59441                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(value, visitor)
59442                };
59443                {
59444                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
59445                };
59446                {
59447                    <Vec<Decorator> as VisitMutWith<V>>::visit_mut_with(decorators, visitor)
59448                };
59449                {
59450                    <Option<Accessibility> as VisitMutWith<V>>::visit_mut_with(
59451                        accessibility,
59452                        visitor,
59453                    )
59454                };
59455            }
59456        }
59457    }
59458}
59459impl<V: ?Sized + VisitMut> VisitMutWith<V> for ComputedPropName {
59460    #[doc = "Calls [VisitMut`::visit_mut_computed_prop_name`] with `self`."]
59461    fn visit_mut_with(&mut self, visitor: &mut V) {
59462        <V as VisitMut>::visit_mut_computed_prop_name(visitor, self)
59463    }
59464
59465    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59466        match self {
59467            ComputedPropName { span, expr } => {
59468                {
59469                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59470                };
59471                {
59472                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
59473                };
59474            }
59475        }
59476    }
59477}
59478impl<V: ?Sized + VisitMut> VisitMutWith<V> for CondExpr {
59479    #[doc = "Calls [VisitMut`::visit_mut_cond_expr`] with `self`."]
59480    fn visit_mut_with(&mut self, visitor: &mut V) {
59481        <V as VisitMut>::visit_mut_cond_expr(visitor, self)
59482    }
59483
59484    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59485        match self {
59486            CondExpr {
59487                span,
59488                test,
59489                cons,
59490                alt,
59491            } => {
59492                {
59493                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59494                };
59495                {
59496                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(test, visitor)
59497                };
59498                {
59499                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(cons, visitor)
59500                };
59501                {
59502                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(alt, visitor)
59503                };
59504            }
59505        }
59506    }
59507}
59508impl<V: ?Sized + VisitMut> VisitMutWith<V> for Constructor {
59509    #[doc = "Calls [VisitMut`::visit_mut_constructor`] with `self`."]
59510    fn visit_mut_with(&mut self, visitor: &mut V) {
59511        <V as VisitMut>::visit_mut_constructor(visitor, self)
59512    }
59513
59514    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59515        match self {
59516            Constructor {
59517                span,
59518                ctxt,
59519                key,
59520                params,
59521                body,
59522                accessibility,
59523                is_optional,
59524            } => {
59525                {
59526                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59527                };
59528                {
59529                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
59530                };
59531                {
59532                    <PropName as VisitMutWith<V>>::visit_mut_with(key, visitor)
59533                };
59534                {
59535                    <Vec<ParamOrTsParamProp> as VisitMutWith<V>>::visit_mut_with(params, visitor)
59536                };
59537                {
59538                    <Option<BlockStmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
59539                };
59540                {
59541                    <Option<Accessibility> as VisitMutWith<V>>::visit_mut_with(
59542                        accessibility,
59543                        visitor,
59544                    )
59545                };
59546            }
59547        }
59548    }
59549}
59550impl<V: ?Sized + VisitMut> VisitMutWith<V> for ContinueStmt {
59551    #[doc = "Calls [VisitMut`::visit_mut_continue_stmt`] with `self`."]
59552    fn visit_mut_with(&mut self, visitor: &mut V) {
59553        <V as VisitMut>::visit_mut_continue_stmt(visitor, self)
59554    }
59555
59556    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59557        match self {
59558            ContinueStmt { span, label } => {
59559                {
59560                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59561                };
59562                {
59563                    <Option<Ident> as VisitMutWith<V>>::visit_mut_with(label, visitor)
59564                };
59565            }
59566        }
59567    }
59568}
59569impl<V: ?Sized + VisitMut> VisitMutWith<V> for DebuggerStmt {
59570    #[doc = "Calls [VisitMut`::visit_mut_debugger_stmt`] with `self`."]
59571    fn visit_mut_with(&mut self, visitor: &mut V) {
59572        <V as VisitMut>::visit_mut_debugger_stmt(visitor, self)
59573    }
59574
59575    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59576        match self {
59577            DebuggerStmt { span } => {
59578                {
59579                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59580                };
59581            }
59582        }
59583    }
59584}
59585impl<V: ?Sized + VisitMut> VisitMutWith<V> for Decl {
59586    #[doc = "Calls [VisitMut`::visit_mut_decl`] with `self`."]
59587    fn visit_mut_with(&mut self, visitor: &mut V) {
59588        <V as VisitMut>::visit_mut_decl(visitor, self)
59589    }
59590
59591    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59592        match self {
59593            Decl::Class { 0: _field_0 } => {
59594                <ClassDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59595            }
59596            Decl::Fn { 0: _field_0 } => {
59597                <FnDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59598            }
59599            Decl::Var { 0: _field_0 } => {
59600                <Box<VarDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59601            }
59602            Decl::Using { 0: _field_0 } => {
59603                <Box<UsingDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59604            }
59605            Decl::TsInterface { 0: _field_0 } => {
59606                <Box<TsInterfaceDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59607            }
59608            Decl::TsTypeAlias { 0: _field_0 } => {
59609                <Box<TsTypeAliasDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59610            }
59611            Decl::TsEnum { 0: _field_0 } => {
59612                <Box<TsEnumDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59613            }
59614            Decl::TsModule { 0: _field_0 } => {
59615                <Box<TsModuleDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59616            }
59617        }
59618    }
59619}
59620impl<V: ?Sized + VisitMut> VisitMutWith<V> for Decorator {
59621    #[doc = "Calls [VisitMut`::visit_mut_decorator`] with `self`."]
59622    fn visit_mut_with(&mut self, visitor: &mut V) {
59623        <V as VisitMut>::visit_mut_decorator(visitor, self)
59624    }
59625
59626    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59627        match self {
59628            Decorator { span, expr } => {
59629                {
59630                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59631                };
59632                {
59633                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
59634                };
59635            }
59636        }
59637    }
59638}
59639impl<V: ?Sized + VisitMut> VisitMutWith<V> for DefaultDecl {
59640    #[doc = "Calls [VisitMut`::visit_mut_default_decl`] with `self`."]
59641    fn visit_mut_with(&mut self, visitor: &mut V) {
59642        <V as VisitMut>::visit_mut_default_decl(visitor, self)
59643    }
59644
59645    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59646        match self {
59647            DefaultDecl::Class { 0: _field_0 } => {
59648                <ClassExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59649            }
59650            DefaultDecl::Fn { 0: _field_0 } => {
59651                <FnExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59652            }
59653            DefaultDecl::TsInterfaceDecl { 0: _field_0 } => {
59654                <Box<TsInterfaceDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59655            }
59656        }
59657    }
59658}
59659impl<V: ?Sized + VisitMut> VisitMutWith<V> for DoWhileStmt {
59660    #[doc = "Calls [VisitMut`::visit_mut_do_while_stmt`] with `self`."]
59661    fn visit_mut_with(&mut self, visitor: &mut V) {
59662        <V as VisitMut>::visit_mut_do_while_stmt(visitor, self)
59663    }
59664
59665    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59666        match self {
59667            DoWhileStmt { span, test, body } => {
59668                {
59669                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59670                };
59671                {
59672                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(test, visitor)
59673                };
59674                {
59675                    <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
59676                };
59677            }
59678        }
59679    }
59680}
59681impl<V: ?Sized + VisitMut> VisitMutWith<V> for EmptyStmt {
59682    #[doc = "Calls [VisitMut`::visit_mut_empty_stmt`] with `self`."]
59683    fn visit_mut_with(&mut self, visitor: &mut V) {
59684        <V as VisitMut>::visit_mut_empty_stmt(visitor, self)
59685    }
59686
59687    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59688        match self {
59689            EmptyStmt { span } => {
59690                {
59691                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59692                };
59693            }
59694        }
59695    }
59696}
59697impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExportAll {
59698    #[doc = "Calls [VisitMut`::visit_mut_export_all`] with `self`."]
59699    fn visit_mut_with(&mut self, visitor: &mut V) {
59700        <V as VisitMut>::visit_mut_export_all(visitor, self)
59701    }
59702
59703    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59704        match self {
59705            ExportAll {
59706                span,
59707                src,
59708                type_only,
59709                with,
59710            } => {
59711                {
59712                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59713                };
59714                {
59715                    <Box<Str> as VisitMutWith<V>>::visit_mut_with(src, visitor)
59716                };
59717                {
59718                    <Option<Box<ObjectLit>> as VisitMutWith<V>>::visit_mut_with(with, visitor)
59719                };
59720            }
59721        }
59722    }
59723}
59724impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExportDecl {
59725    #[doc = "Calls [VisitMut`::visit_mut_export_decl`] with `self`."]
59726    fn visit_mut_with(&mut self, visitor: &mut V) {
59727        <V as VisitMut>::visit_mut_export_decl(visitor, self)
59728    }
59729
59730    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59731        match self {
59732            ExportDecl { span, decl } => {
59733                {
59734                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59735                };
59736                {
59737                    <Decl as VisitMutWith<V>>::visit_mut_with(decl, visitor)
59738                };
59739            }
59740        }
59741    }
59742}
59743impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExportDefaultDecl {
59744    #[doc = "Calls [VisitMut`::visit_mut_export_default_decl`] with `self`."]
59745    fn visit_mut_with(&mut self, visitor: &mut V) {
59746        <V as VisitMut>::visit_mut_export_default_decl(visitor, self)
59747    }
59748
59749    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59750        match self {
59751            ExportDefaultDecl { span, decl } => {
59752                {
59753                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59754                };
59755                {
59756                    <DefaultDecl as VisitMutWith<V>>::visit_mut_with(decl, visitor)
59757                };
59758            }
59759        }
59760    }
59761}
59762impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExportDefaultExpr {
59763    #[doc = "Calls [VisitMut`::visit_mut_export_default_expr`] with `self`."]
59764    fn visit_mut_with(&mut self, visitor: &mut V) {
59765        <V as VisitMut>::visit_mut_export_default_expr(visitor, self)
59766    }
59767
59768    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59769        match self {
59770            ExportDefaultExpr { span, expr } => {
59771                {
59772                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59773                };
59774                {
59775                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
59776                };
59777            }
59778        }
59779    }
59780}
59781impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExportDefaultSpecifier {
59782    #[doc = "Calls [VisitMut`::visit_mut_export_default_specifier`] with `self`."]
59783    fn visit_mut_with(&mut self, visitor: &mut V) {
59784        <V as VisitMut>::visit_mut_export_default_specifier(visitor, self)
59785    }
59786
59787    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59788        match self {
59789            ExportDefaultSpecifier { exported } => {
59790                {
59791                    <Ident as VisitMutWith<V>>::visit_mut_with(exported, visitor)
59792                };
59793            }
59794        }
59795    }
59796}
59797impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExportNamedSpecifier {
59798    #[doc = "Calls [VisitMut`::visit_mut_export_named_specifier`] with `self`."]
59799    fn visit_mut_with(&mut self, visitor: &mut V) {
59800        <V as VisitMut>::visit_mut_export_named_specifier(visitor, self)
59801    }
59802
59803    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59804        match self {
59805            ExportNamedSpecifier {
59806                span,
59807                orig,
59808                exported,
59809                is_type_only,
59810            } => {
59811                {
59812                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59813                };
59814                {
59815                    <ModuleExportName as VisitMutWith<V>>::visit_mut_with(orig, visitor)
59816                };
59817                {
59818                    <Option<ModuleExportName> as VisitMutWith<V>>::visit_mut_with(exported, visitor)
59819                };
59820            }
59821        }
59822    }
59823}
59824impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExportNamespaceSpecifier {
59825    #[doc = "Calls [VisitMut`::visit_mut_export_namespace_specifier`] with `self`."]
59826    fn visit_mut_with(&mut self, visitor: &mut V) {
59827        <V as VisitMut>::visit_mut_export_namespace_specifier(visitor, self)
59828    }
59829
59830    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59831        match self {
59832            ExportNamespaceSpecifier { span, name } => {
59833                {
59834                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59835                };
59836                {
59837                    <ModuleExportName as VisitMutWith<V>>::visit_mut_with(name, visitor)
59838                };
59839            }
59840        }
59841    }
59842}
59843impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExportSpecifier {
59844    #[doc = "Calls [VisitMut`::visit_mut_export_specifier`] with `self`."]
59845    fn visit_mut_with(&mut self, visitor: &mut V) {
59846        <V as VisitMut>::visit_mut_export_specifier(visitor, self)
59847    }
59848
59849    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59850        match self {
59851            ExportSpecifier::Namespace { 0: _field_0 } => {
59852                <ExportNamespaceSpecifier as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59853            }
59854            ExportSpecifier::Default { 0: _field_0 } => {
59855                <ExportDefaultSpecifier as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59856            }
59857            ExportSpecifier::Named { 0: _field_0 } => {
59858                <ExportNamedSpecifier as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59859            }
59860        }
59861    }
59862}
59863impl<V: ?Sized + VisitMut> VisitMutWith<V> for Expr {
59864    #[doc = "Calls [VisitMut`::visit_mut_expr`] with `self`."]
59865    fn visit_mut_with(&mut self, visitor: &mut V) {
59866        <V as VisitMut>::visit_mut_expr(visitor, self)
59867    }
59868
59869    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59870        match self {
59871            Expr::This { 0: _field_0 } => {
59872                <ThisExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59873            }
59874            Expr::Array { 0: _field_0 } => {
59875                <ArrayLit as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59876            }
59877            Expr::Object { 0: _field_0 } => {
59878                <ObjectLit as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59879            }
59880            Expr::Fn { 0: _field_0 } => {
59881                <FnExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59882            }
59883            Expr::Unary { 0: _field_0 } => {
59884                <UnaryExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59885            }
59886            Expr::Update { 0: _field_0 } => {
59887                <UpdateExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59888            }
59889            Expr::Bin { 0: _field_0 } => {
59890                <BinExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59891            }
59892            Expr::Assign { 0: _field_0 } => {
59893                <AssignExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59894            }
59895            Expr::Member { 0: _field_0 } => {
59896                <MemberExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59897            }
59898            Expr::SuperProp { 0: _field_0 } => {
59899                <SuperPropExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59900            }
59901            Expr::Cond { 0: _field_0 } => {
59902                <CondExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59903            }
59904            Expr::Call { 0: _field_0 } => {
59905                <CallExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59906            }
59907            Expr::New { 0: _field_0 } => {
59908                <NewExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59909            }
59910            Expr::Seq { 0: _field_0 } => {
59911                <SeqExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59912            }
59913            Expr::Ident { 0: _field_0 } => {
59914                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59915            }
59916            Expr::Lit { 0: _field_0 } => {
59917                <Lit as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59918            }
59919            Expr::Tpl { 0: _field_0 } => {
59920                <Tpl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59921            }
59922            Expr::TaggedTpl { 0: _field_0 } => {
59923                <TaggedTpl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59924            }
59925            Expr::Arrow { 0: _field_0 } => {
59926                <ArrowExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59927            }
59928            Expr::Class { 0: _field_0 } => {
59929                <ClassExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59930            }
59931            Expr::Yield { 0: _field_0 } => {
59932                <YieldExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59933            }
59934            Expr::MetaProp { 0: _field_0 } => {
59935                <MetaPropExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59936            }
59937            Expr::Await { 0: _field_0 } => {
59938                <AwaitExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59939            }
59940            Expr::Paren { 0: _field_0 } => {
59941                <ParenExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59942            }
59943            Expr::JSXMember { 0: _field_0 } => {
59944                <JSXMemberExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59945            }
59946            Expr::JSXNamespacedName { 0: _field_0 } => {
59947                <JSXNamespacedName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59948            }
59949            Expr::JSXEmpty { 0: _field_0 } => {
59950                <JSXEmptyExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59951            }
59952            Expr::JSXElement { 0: _field_0 } => {
59953                <Box<JSXElement> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59954            }
59955            Expr::JSXFragment { 0: _field_0 } => {
59956                <JSXFragment as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59957            }
59958            Expr::TsTypeAssertion { 0: _field_0 } => {
59959                <TsTypeAssertion as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59960            }
59961            Expr::TsConstAssertion { 0: _field_0 } => {
59962                <TsConstAssertion as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59963            }
59964            Expr::TsNonNull { 0: _field_0 } => {
59965                <TsNonNullExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59966            }
59967            Expr::TsAs { 0: _field_0 } => {
59968                <TsAsExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59969            }
59970            Expr::TsInstantiation { 0: _field_0 } => {
59971                <TsInstantiation as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59972            }
59973            Expr::TsSatisfies { 0: _field_0 } => {
59974                <TsSatisfiesExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59975            }
59976            Expr::PrivateName { 0: _field_0 } => {
59977                <PrivateName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59978            }
59979            Expr::OptChain { 0: _field_0 } => {
59980                <OptChainExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59981            }
59982            Expr::Invalid { 0: _field_0 } => {
59983                <Invalid as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59984            }
59985        }
59986    }
59987}
59988impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExprOrSpread {
59989    #[doc = "Calls [VisitMut`::visit_mut_expr_or_spread`] with `self`."]
59990    fn visit_mut_with(&mut self, visitor: &mut V) {
59991        <V as VisitMut>::visit_mut_expr_or_spread(visitor, self)
59992    }
59993
59994    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59995        match self {
59996            ExprOrSpread { spread, expr } => {
59997                {
59998                    <Option<swc_common::Span> as VisitMutWith<V>>::visit_mut_with(spread, visitor)
59999                };
60000                {
60001                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
60002                };
60003            }
60004        }
60005    }
60006}
60007impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExprStmt {
60008    #[doc = "Calls [VisitMut`::visit_mut_expr_stmt`] with `self`."]
60009    fn visit_mut_with(&mut self, visitor: &mut V) {
60010        <V as VisitMut>::visit_mut_expr_stmt(visitor, self)
60011    }
60012
60013    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60014        match self {
60015            ExprStmt { span, expr } => {
60016                {
60017                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60018                };
60019                {
60020                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
60021                };
60022            }
60023        }
60024    }
60025}
60026impl<V: ?Sized + VisitMut> VisitMutWith<V> for FnDecl {
60027    #[doc = "Calls [VisitMut`::visit_mut_fn_decl`] with `self`."]
60028    fn visit_mut_with(&mut self, visitor: &mut V) {
60029        <V as VisitMut>::visit_mut_fn_decl(visitor, self)
60030    }
60031
60032    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60033        match self {
60034            FnDecl {
60035                ident,
60036                declare,
60037                function,
60038            } => {
60039                {
60040                    <Ident as VisitMutWith<V>>::visit_mut_with(ident, visitor)
60041                };
60042                {
60043                    <Box<Function> as VisitMutWith<V>>::visit_mut_with(function, visitor)
60044                };
60045            }
60046        }
60047    }
60048}
60049impl<V: ?Sized + VisitMut> VisitMutWith<V> for FnExpr {
60050    #[doc = "Calls [VisitMut`::visit_mut_fn_expr`] with `self`."]
60051    fn visit_mut_with(&mut self, visitor: &mut V) {
60052        <V as VisitMut>::visit_mut_fn_expr(visitor, self)
60053    }
60054
60055    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60056        match self {
60057            FnExpr { ident, function } => {
60058                {
60059                    <Option<Ident> as VisitMutWith<V>>::visit_mut_with(ident, visitor)
60060                };
60061                {
60062                    <Box<Function> as VisitMutWith<V>>::visit_mut_with(function, visitor)
60063                };
60064            }
60065        }
60066    }
60067}
60068impl<V: ?Sized + VisitMut> VisitMutWith<V> for ForHead {
60069    #[doc = "Calls [VisitMut`::visit_mut_for_head`] with `self`."]
60070    fn visit_mut_with(&mut self, visitor: &mut V) {
60071        <V as VisitMut>::visit_mut_for_head(visitor, self)
60072    }
60073
60074    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60075        match self {
60076            ForHead::VarDecl { 0: _field_0 } => {
60077                <Box<VarDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60078            }
60079            ForHead::UsingDecl { 0: _field_0 } => {
60080                <Box<UsingDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60081            }
60082            ForHead::Pat { 0: _field_0 } => {
60083                <Box<Pat> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60084            }
60085        }
60086    }
60087}
60088impl<V: ?Sized + VisitMut> VisitMutWith<V> for ForInStmt {
60089    #[doc = "Calls [VisitMut`::visit_mut_for_in_stmt`] with `self`."]
60090    fn visit_mut_with(&mut self, visitor: &mut V) {
60091        <V as VisitMut>::visit_mut_for_in_stmt(visitor, self)
60092    }
60093
60094    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60095        match self {
60096            ForInStmt {
60097                span,
60098                left,
60099                right,
60100                body,
60101            } => {
60102                {
60103                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60104                };
60105                {
60106                    <ForHead as VisitMutWith<V>>::visit_mut_with(left, visitor)
60107                };
60108                {
60109                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(right, visitor)
60110                };
60111                {
60112                    <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
60113                };
60114            }
60115        }
60116    }
60117}
60118impl<V: ?Sized + VisitMut> VisitMutWith<V> for ForOfStmt {
60119    #[doc = "Calls [VisitMut`::visit_mut_for_of_stmt`] with `self`."]
60120    fn visit_mut_with(&mut self, visitor: &mut V) {
60121        <V as VisitMut>::visit_mut_for_of_stmt(visitor, self)
60122    }
60123
60124    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60125        match self {
60126            ForOfStmt {
60127                span,
60128                is_await,
60129                left,
60130                right,
60131                body,
60132            } => {
60133                {
60134                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60135                };
60136                {
60137                    <ForHead as VisitMutWith<V>>::visit_mut_with(left, visitor)
60138                };
60139                {
60140                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(right, visitor)
60141                };
60142                {
60143                    <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
60144                };
60145            }
60146        }
60147    }
60148}
60149impl<V: ?Sized + VisitMut> VisitMutWith<V> for ForStmt {
60150    #[doc = "Calls [VisitMut`::visit_mut_for_stmt`] with `self`."]
60151    fn visit_mut_with(&mut self, visitor: &mut V) {
60152        <V as VisitMut>::visit_mut_for_stmt(visitor, self)
60153    }
60154
60155    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60156        match self {
60157            ForStmt {
60158                span,
60159                init,
60160                test,
60161                update,
60162                body,
60163            } => {
60164                {
60165                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60166                };
60167                {
60168                    <Option<VarDeclOrExpr> as VisitMutWith<V>>::visit_mut_with(init, visitor)
60169                };
60170                {
60171                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(test, visitor)
60172                };
60173                {
60174                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(update, visitor)
60175                };
60176                {
60177                    <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
60178                };
60179            }
60180        }
60181    }
60182}
60183impl<V: ?Sized + VisitMut> VisitMutWith<V> for Function {
60184    #[doc = "Calls [VisitMut`::visit_mut_function`] with `self`."]
60185    fn visit_mut_with(&mut self, visitor: &mut V) {
60186        <V as VisitMut>::visit_mut_function(visitor, self)
60187    }
60188
60189    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60190        match self {
60191            Function {
60192                params,
60193                decorators,
60194                span,
60195                ctxt,
60196                body,
60197                is_generator,
60198                is_async,
60199                type_params,
60200                return_type,
60201            } => {
60202                {
60203                    <Vec<Param> as VisitMutWith<V>>::visit_mut_with(params, visitor)
60204                };
60205                {
60206                    <Vec<Decorator> as VisitMutWith<V>>::visit_mut_with(decorators, visitor)
60207                };
60208                {
60209                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60210                };
60211                {
60212                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
60213                };
60214                {
60215                    <Option<BlockStmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
60216                };
60217                {
60218                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
60219                        type_params,
60220                        visitor,
60221                    )
60222                };
60223                {
60224                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(
60225                        return_type,
60226                        visitor,
60227                    )
60228                };
60229            }
60230        }
60231    }
60232}
60233impl<V: ?Sized + VisitMut> VisitMutWith<V> for GetterProp {
60234    #[doc = "Calls [VisitMut`::visit_mut_getter_prop`] with `self`."]
60235    fn visit_mut_with(&mut self, visitor: &mut V) {
60236        <V as VisitMut>::visit_mut_getter_prop(visitor, self)
60237    }
60238
60239    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60240        match self {
60241            GetterProp {
60242                span,
60243                key,
60244                type_ann,
60245                body,
60246            } => {
60247                {
60248                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60249                };
60250                {
60251                    <PropName as VisitMutWith<V>>::visit_mut_with(key, visitor)
60252                };
60253                {
60254                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
60255                };
60256                {
60257                    <Option<BlockStmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
60258                };
60259            }
60260        }
60261    }
60262}
60263impl<V: ?Sized + VisitMut> VisitMutWith<V> for Ident {
60264    #[doc = "Calls [VisitMut`::visit_mut_ident`] with `self`."]
60265    fn visit_mut_with(&mut self, visitor: &mut V) {
60266        <V as VisitMut>::visit_mut_ident(visitor, self)
60267    }
60268
60269    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60270        match self {
60271            Ident {
60272                span,
60273                ctxt,
60274                sym,
60275                optional,
60276            } => {
60277                {
60278                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60279                };
60280                {
60281                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
60282                };
60283                {
60284                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(sym, visitor)
60285                };
60286            }
60287        }
60288    }
60289}
60290impl<V: ?Sized + VisitMut> VisitMutWith<V> for IdentName {
60291    #[doc = "Calls [VisitMut`::visit_mut_ident_name`] with `self`."]
60292    fn visit_mut_with(&mut self, visitor: &mut V) {
60293        <V as VisitMut>::visit_mut_ident_name(visitor, self)
60294    }
60295
60296    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60297        match self {
60298            IdentName { span, sym } => {
60299                {
60300                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60301                };
60302                {
60303                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(sym, visitor)
60304                };
60305            }
60306        }
60307    }
60308}
60309impl<V: ?Sized + VisitMut> VisitMutWith<V> for IfStmt {
60310    #[doc = "Calls [VisitMut`::visit_mut_if_stmt`] with `self`."]
60311    fn visit_mut_with(&mut self, visitor: &mut V) {
60312        <V as VisitMut>::visit_mut_if_stmt(visitor, self)
60313    }
60314
60315    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60316        match self {
60317            IfStmt {
60318                span,
60319                test,
60320                cons,
60321                alt,
60322            } => {
60323                {
60324                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60325                };
60326                {
60327                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(test, visitor)
60328                };
60329                {
60330                    <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(cons, visitor)
60331                };
60332                {
60333                    <Option<Box<Stmt>> as VisitMutWith<V>>::visit_mut_with(alt, visitor)
60334                };
60335            }
60336        }
60337    }
60338}
60339impl<V: ?Sized + VisitMut> VisitMutWith<V> for Import {
60340    #[doc = "Calls [VisitMut`::visit_mut_import`] with `self`."]
60341    fn visit_mut_with(&mut self, visitor: &mut V) {
60342        <V as VisitMut>::visit_mut_import(visitor, self)
60343    }
60344
60345    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60346        match self {
60347            Import { span, phase } => {
60348                {
60349                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60350                };
60351                {
60352                    <ImportPhase as VisitMutWith<V>>::visit_mut_with(phase, visitor)
60353                };
60354            }
60355        }
60356    }
60357}
60358impl<V: ?Sized + VisitMut> VisitMutWith<V> for ImportDecl {
60359    #[doc = "Calls [VisitMut`::visit_mut_import_decl`] with `self`."]
60360    fn visit_mut_with(&mut self, visitor: &mut V) {
60361        <V as VisitMut>::visit_mut_import_decl(visitor, self)
60362    }
60363
60364    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60365        match self {
60366            ImportDecl {
60367                span,
60368                specifiers,
60369                src,
60370                type_only,
60371                with,
60372                phase,
60373            } => {
60374                {
60375                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60376                };
60377                {
60378                    <Vec<ImportSpecifier> as VisitMutWith<V>>::visit_mut_with(specifiers, visitor)
60379                };
60380                {
60381                    <Box<Str> as VisitMutWith<V>>::visit_mut_with(src, visitor)
60382                };
60383                {
60384                    <Option<Box<ObjectLit>> as VisitMutWith<V>>::visit_mut_with(with, visitor)
60385                };
60386                {
60387                    <ImportPhase as VisitMutWith<V>>::visit_mut_with(phase, visitor)
60388                };
60389            }
60390        }
60391    }
60392}
60393impl<V: ?Sized + VisitMut> VisitMutWith<V> for ImportDefaultSpecifier {
60394    #[doc = "Calls [VisitMut`::visit_mut_import_default_specifier`] with `self`."]
60395    fn visit_mut_with(&mut self, visitor: &mut V) {
60396        <V as VisitMut>::visit_mut_import_default_specifier(visitor, self)
60397    }
60398
60399    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60400        match self {
60401            ImportDefaultSpecifier { span, local } => {
60402                {
60403                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60404                };
60405                {
60406                    <Ident as VisitMutWith<V>>::visit_mut_with(local, visitor)
60407                };
60408            }
60409        }
60410    }
60411}
60412impl<V: ?Sized + VisitMut> VisitMutWith<V> for ImportNamedSpecifier {
60413    #[doc = "Calls [VisitMut`::visit_mut_import_named_specifier`] with `self`."]
60414    fn visit_mut_with(&mut self, visitor: &mut V) {
60415        <V as VisitMut>::visit_mut_import_named_specifier(visitor, self)
60416    }
60417
60418    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60419        match self {
60420            ImportNamedSpecifier {
60421                span,
60422                local,
60423                imported,
60424                is_type_only,
60425            } => {
60426                {
60427                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60428                };
60429                {
60430                    <Ident as VisitMutWith<V>>::visit_mut_with(local, visitor)
60431                };
60432                {
60433                    <Option<ModuleExportName> as VisitMutWith<V>>::visit_mut_with(imported, visitor)
60434                };
60435            }
60436        }
60437    }
60438}
60439impl<V: ?Sized + VisitMut> VisitMutWith<V> for ImportPhase {
60440    #[doc = "Calls [VisitMut`::visit_mut_import_phase`] with `self`."]
60441    fn visit_mut_with(&mut self, visitor: &mut V) {
60442        <V as VisitMut>::visit_mut_import_phase(visitor, self)
60443    }
60444
60445    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60446        match self {
60447            ImportPhase::Evaluation => {}
60448            ImportPhase::Source => {}
60449            ImportPhase::Defer => {}
60450        }
60451    }
60452}
60453impl<V: ?Sized + VisitMut> VisitMutWith<V> for ImportSpecifier {
60454    #[doc = "Calls [VisitMut`::visit_mut_import_specifier`] with `self`."]
60455    fn visit_mut_with(&mut self, visitor: &mut V) {
60456        <V as VisitMut>::visit_mut_import_specifier(visitor, self)
60457    }
60458
60459    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60460        match self {
60461            ImportSpecifier::Named { 0: _field_0 } => {
60462                <ImportNamedSpecifier as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60463            }
60464            ImportSpecifier::Default { 0: _field_0 } => {
60465                <ImportDefaultSpecifier as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60466            }
60467            ImportSpecifier::Namespace { 0: _field_0 } => {
60468                <ImportStarAsSpecifier as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60469            }
60470        }
60471    }
60472}
60473impl<V: ?Sized + VisitMut> VisitMutWith<V> for ImportStarAsSpecifier {
60474    #[doc = "Calls [VisitMut`::visit_mut_import_star_as_specifier`] with `self`."]
60475    fn visit_mut_with(&mut self, visitor: &mut V) {
60476        <V as VisitMut>::visit_mut_import_star_as_specifier(visitor, self)
60477    }
60478
60479    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60480        match self {
60481            ImportStarAsSpecifier { span, local } => {
60482                {
60483                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60484                };
60485                {
60486                    <Ident as VisitMutWith<V>>::visit_mut_with(local, visitor)
60487                };
60488            }
60489        }
60490    }
60491}
60492impl<V: ?Sized + VisitMut> VisitMutWith<V> for ImportWith {
60493    #[doc = "Calls [VisitMut`::visit_mut_import_with`] with `self`."]
60494    fn visit_mut_with(&mut self, visitor: &mut V) {
60495        <V as VisitMut>::visit_mut_import_with(visitor, self)
60496    }
60497
60498    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60499        match self {
60500            ImportWith { span, values } => {
60501                {
60502                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60503                };
60504                {
60505                    <Vec<ImportWithItem> as VisitMutWith<V>>::visit_mut_with(values, visitor)
60506                };
60507            }
60508        }
60509    }
60510}
60511impl<V: ?Sized + VisitMut> VisitMutWith<V> for ImportWithItem {
60512    #[doc = "Calls [VisitMut`::visit_mut_import_with_item`] with `self`."]
60513    fn visit_mut_with(&mut self, visitor: &mut V) {
60514        <V as VisitMut>::visit_mut_import_with_item(visitor, self)
60515    }
60516
60517    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60518        match self {
60519            ImportWithItem { key, value } => {
60520                {
60521                    <IdentName as VisitMutWith<V>>::visit_mut_with(key, visitor)
60522                };
60523                {
60524                    <Str as VisitMutWith<V>>::visit_mut_with(value, visitor)
60525                };
60526            }
60527        }
60528    }
60529}
60530impl<V: ?Sized + VisitMut> VisitMutWith<V> for Invalid {
60531    #[doc = "Calls [VisitMut`::visit_mut_invalid`] with `self`."]
60532    fn visit_mut_with(&mut self, visitor: &mut V) {
60533        <V as VisitMut>::visit_mut_invalid(visitor, self)
60534    }
60535
60536    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60537        match self {
60538            Invalid { span } => {
60539                {
60540                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60541                };
60542            }
60543        }
60544    }
60545}
60546impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXAttr {
60547    #[doc = "Calls [VisitMut`::visit_mut_jsx_attr`] with `self`."]
60548    fn visit_mut_with(&mut self, visitor: &mut V) {
60549        <V as VisitMut>::visit_mut_jsx_attr(visitor, self)
60550    }
60551
60552    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60553        match self {
60554            JSXAttr { span, name, value } => {
60555                {
60556                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60557                };
60558                {
60559                    <JSXAttrName as VisitMutWith<V>>::visit_mut_with(name, visitor)
60560                };
60561                {
60562                    <Option<JSXAttrValue> as VisitMutWith<V>>::visit_mut_with(value, visitor)
60563                };
60564            }
60565        }
60566    }
60567}
60568impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXAttrName {
60569    #[doc = "Calls [VisitMut`::visit_mut_jsx_attr_name`] with `self`."]
60570    fn visit_mut_with(&mut self, visitor: &mut V) {
60571        <V as VisitMut>::visit_mut_jsx_attr_name(visitor, self)
60572    }
60573
60574    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60575        match self {
60576            JSXAttrName::Ident { 0: _field_0 } => {
60577                <IdentName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60578            }
60579            JSXAttrName::JSXNamespacedName { 0: _field_0 } => {
60580                <JSXNamespacedName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60581            }
60582        }
60583    }
60584}
60585impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXAttrOrSpread {
60586    #[doc = "Calls [VisitMut`::visit_mut_jsx_attr_or_spread`] with `self`."]
60587    fn visit_mut_with(&mut self, visitor: &mut V) {
60588        <V as VisitMut>::visit_mut_jsx_attr_or_spread(visitor, self)
60589    }
60590
60591    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60592        match self {
60593            JSXAttrOrSpread::JSXAttr { 0: _field_0 } => {
60594                <JSXAttr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60595            }
60596            JSXAttrOrSpread::SpreadElement { 0: _field_0 } => {
60597                <SpreadElement as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60598            }
60599        }
60600    }
60601}
60602impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXAttrValue {
60603    #[doc = "Calls [VisitMut`::visit_mut_jsx_attr_value`] with `self`."]
60604    fn visit_mut_with(&mut self, visitor: &mut V) {
60605        <V as VisitMut>::visit_mut_jsx_attr_value(visitor, self)
60606    }
60607
60608    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60609        match self {
60610            JSXAttrValue::Lit { 0: _field_0 } => {
60611                <Lit as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60612            }
60613            JSXAttrValue::JSXExprContainer { 0: _field_0 } => {
60614                <JSXExprContainer as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60615            }
60616            JSXAttrValue::JSXElement { 0: _field_0 } => {
60617                <Box<JSXElement> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60618            }
60619            JSXAttrValue::JSXFragment { 0: _field_0 } => {
60620                <JSXFragment as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60621            }
60622        }
60623    }
60624}
60625impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXClosingElement {
60626    #[doc = "Calls [VisitMut`::visit_mut_jsx_closing_element`] with `self`."]
60627    fn visit_mut_with(&mut self, visitor: &mut V) {
60628        <V as VisitMut>::visit_mut_jsx_closing_element(visitor, self)
60629    }
60630
60631    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60632        match self {
60633            JSXClosingElement { span, name } => {
60634                {
60635                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60636                };
60637                {
60638                    <JSXElementName as VisitMutWith<V>>::visit_mut_with(name, visitor)
60639                };
60640            }
60641        }
60642    }
60643}
60644impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXClosingFragment {
60645    #[doc = "Calls [VisitMut`::visit_mut_jsx_closing_fragment`] with `self`."]
60646    fn visit_mut_with(&mut self, visitor: &mut V) {
60647        <V as VisitMut>::visit_mut_jsx_closing_fragment(visitor, self)
60648    }
60649
60650    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60651        match self {
60652            JSXClosingFragment { span } => {
60653                {
60654                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60655                };
60656            }
60657        }
60658    }
60659}
60660impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXElement {
60661    #[doc = "Calls [VisitMut`::visit_mut_jsx_element`] with `self`."]
60662    fn visit_mut_with(&mut self, visitor: &mut V) {
60663        <V as VisitMut>::visit_mut_jsx_element(visitor, self)
60664    }
60665
60666    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60667        match self {
60668            JSXElement {
60669                span,
60670                opening,
60671                children,
60672                closing,
60673            } => {
60674                {
60675                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60676                };
60677                {
60678                    <JSXOpeningElement as VisitMutWith<V>>::visit_mut_with(opening, visitor)
60679                };
60680                {
60681                    <Vec<JSXElementChild> as VisitMutWith<V>>::visit_mut_with(children, visitor)
60682                };
60683                {
60684                    <Option<JSXClosingElement> as VisitMutWith<V>>::visit_mut_with(closing, visitor)
60685                };
60686            }
60687        }
60688    }
60689}
60690impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXElementChild {
60691    #[doc = "Calls [VisitMut`::visit_mut_jsx_element_child`] with `self`."]
60692    fn visit_mut_with(&mut self, visitor: &mut V) {
60693        <V as VisitMut>::visit_mut_jsx_element_child(visitor, self)
60694    }
60695
60696    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60697        match self {
60698            JSXElementChild::JSXText { 0: _field_0 } => {
60699                <JSXText as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60700            }
60701            JSXElementChild::JSXExprContainer { 0: _field_0 } => {
60702                <JSXExprContainer as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60703            }
60704            JSXElementChild::JSXSpreadChild { 0: _field_0 } => {
60705                <JSXSpreadChild as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60706            }
60707            JSXElementChild::JSXElement { 0: _field_0 } => {
60708                <Box<JSXElement> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60709            }
60710            JSXElementChild::JSXFragment { 0: _field_0 } => {
60711                <JSXFragment as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60712            }
60713        }
60714    }
60715}
60716impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXElementName {
60717    #[doc = "Calls [VisitMut`::visit_mut_jsx_element_name`] with `self`."]
60718    fn visit_mut_with(&mut self, visitor: &mut V) {
60719        <V as VisitMut>::visit_mut_jsx_element_name(visitor, self)
60720    }
60721
60722    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60723        match self {
60724            JSXElementName::Ident { 0: _field_0 } => {
60725                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60726            }
60727            JSXElementName::JSXMemberExpr { 0: _field_0 } => {
60728                <JSXMemberExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60729            }
60730            JSXElementName::JSXNamespacedName { 0: _field_0 } => {
60731                <JSXNamespacedName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60732            }
60733        }
60734    }
60735}
60736impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXEmptyExpr {
60737    #[doc = "Calls [VisitMut`::visit_mut_jsx_empty_expr`] with `self`."]
60738    fn visit_mut_with(&mut self, visitor: &mut V) {
60739        <V as VisitMut>::visit_mut_jsx_empty_expr(visitor, self)
60740    }
60741
60742    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60743        match self {
60744            JSXEmptyExpr { span } => {
60745                {
60746                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60747                };
60748            }
60749        }
60750    }
60751}
60752impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXExpr {
60753    #[doc = "Calls [VisitMut`::visit_mut_jsx_expr`] with `self`."]
60754    fn visit_mut_with(&mut self, visitor: &mut V) {
60755        <V as VisitMut>::visit_mut_jsx_expr(visitor, self)
60756    }
60757
60758    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60759        match self {
60760            JSXExpr::JSXEmptyExpr { 0: _field_0 } => {
60761                <JSXEmptyExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60762            }
60763            JSXExpr::Expr { 0: _field_0 } => {
60764                <Box<Expr> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60765            }
60766        }
60767    }
60768}
60769impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXExprContainer {
60770    #[doc = "Calls [VisitMut`::visit_mut_jsx_expr_container`] with `self`."]
60771    fn visit_mut_with(&mut self, visitor: &mut V) {
60772        <V as VisitMut>::visit_mut_jsx_expr_container(visitor, self)
60773    }
60774
60775    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60776        match self {
60777            JSXExprContainer { span, expr } => {
60778                {
60779                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60780                };
60781                {
60782                    <JSXExpr as VisitMutWith<V>>::visit_mut_with(expr, visitor)
60783                };
60784            }
60785        }
60786    }
60787}
60788impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXFragment {
60789    #[doc = "Calls [VisitMut`::visit_mut_jsx_fragment`] with `self`."]
60790    fn visit_mut_with(&mut self, visitor: &mut V) {
60791        <V as VisitMut>::visit_mut_jsx_fragment(visitor, self)
60792    }
60793
60794    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60795        match self {
60796            JSXFragment {
60797                span,
60798                opening,
60799                children,
60800                closing,
60801            } => {
60802                {
60803                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60804                };
60805                {
60806                    <JSXOpeningFragment as VisitMutWith<V>>::visit_mut_with(opening, visitor)
60807                };
60808                {
60809                    <Vec<JSXElementChild> as VisitMutWith<V>>::visit_mut_with(children, visitor)
60810                };
60811                {
60812                    <JSXClosingFragment as VisitMutWith<V>>::visit_mut_with(closing, visitor)
60813                };
60814            }
60815        }
60816    }
60817}
60818impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXMemberExpr {
60819    #[doc = "Calls [VisitMut`::visit_mut_jsx_member_expr`] with `self`."]
60820    fn visit_mut_with(&mut self, visitor: &mut V) {
60821        <V as VisitMut>::visit_mut_jsx_member_expr(visitor, self)
60822    }
60823
60824    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60825        match self {
60826            JSXMemberExpr { span, obj, prop } => {
60827                {
60828                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60829                };
60830                {
60831                    <JSXObject as VisitMutWith<V>>::visit_mut_with(obj, visitor)
60832                };
60833                {
60834                    <IdentName as VisitMutWith<V>>::visit_mut_with(prop, visitor)
60835                };
60836            }
60837        }
60838    }
60839}
60840impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXNamespacedName {
60841    #[doc = "Calls [VisitMut`::visit_mut_jsx_namespaced_name`] with `self`."]
60842    fn visit_mut_with(&mut self, visitor: &mut V) {
60843        <V as VisitMut>::visit_mut_jsx_namespaced_name(visitor, self)
60844    }
60845
60846    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60847        match self {
60848            JSXNamespacedName { span, ns, name } => {
60849                {
60850                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60851                };
60852                {
60853                    <IdentName as VisitMutWith<V>>::visit_mut_with(ns, visitor)
60854                };
60855                {
60856                    <IdentName as VisitMutWith<V>>::visit_mut_with(name, visitor)
60857                };
60858            }
60859        }
60860    }
60861}
60862impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXObject {
60863    #[doc = "Calls [VisitMut`::visit_mut_jsx_object`] with `self`."]
60864    fn visit_mut_with(&mut self, visitor: &mut V) {
60865        <V as VisitMut>::visit_mut_jsx_object(visitor, self)
60866    }
60867
60868    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60869        match self {
60870            JSXObject::JSXMemberExpr { 0: _field_0 } => {
60871                <Box<JSXMemberExpr> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60872            }
60873            JSXObject::Ident { 0: _field_0 } => {
60874                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60875            }
60876        }
60877    }
60878}
60879impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXOpeningElement {
60880    #[doc = "Calls [VisitMut`::visit_mut_jsx_opening_element`] with `self`."]
60881    fn visit_mut_with(&mut self, visitor: &mut V) {
60882        <V as VisitMut>::visit_mut_jsx_opening_element(visitor, self)
60883    }
60884
60885    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60886        match self {
60887            JSXOpeningElement {
60888                name,
60889                span,
60890                attrs,
60891                self_closing,
60892                type_args,
60893            } => {
60894                {
60895                    <JSXElementName as VisitMutWith<V>>::visit_mut_with(name, visitor)
60896                };
60897                {
60898                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60899                };
60900                {
60901                    <Vec<JSXAttrOrSpread> as VisitMutWith<V>>::visit_mut_with(attrs, visitor)
60902                };
60903                {
60904                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
60905                        type_args, visitor,
60906                    )
60907                };
60908            }
60909        }
60910    }
60911}
60912impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXOpeningFragment {
60913    #[doc = "Calls [VisitMut`::visit_mut_jsx_opening_fragment`] with `self`."]
60914    fn visit_mut_with(&mut self, visitor: &mut V) {
60915        <V as VisitMut>::visit_mut_jsx_opening_fragment(visitor, self)
60916    }
60917
60918    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60919        match self {
60920            JSXOpeningFragment { span } => {
60921                {
60922                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60923                };
60924            }
60925        }
60926    }
60927}
60928impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXSpreadChild {
60929    #[doc = "Calls [VisitMut`::visit_mut_jsx_spread_child`] with `self`."]
60930    fn visit_mut_with(&mut self, visitor: &mut V) {
60931        <V as VisitMut>::visit_mut_jsx_spread_child(visitor, self)
60932    }
60933
60934    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60935        match self {
60936            JSXSpreadChild { span, expr } => {
60937                {
60938                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60939                };
60940                {
60941                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
60942                };
60943            }
60944        }
60945    }
60946}
60947impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXText {
60948    #[doc = "Calls [VisitMut`::visit_mut_jsx_text`] with `self`."]
60949    fn visit_mut_with(&mut self, visitor: &mut V) {
60950        <V as VisitMut>::visit_mut_jsx_text(visitor, self)
60951    }
60952
60953    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60954        match self {
60955            JSXText { span, value, raw } => {
60956                {
60957                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60958                };
60959                {
60960                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(value, visitor)
60961                };
60962                {
60963                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(raw, visitor)
60964                };
60965            }
60966        }
60967    }
60968}
60969impl<V: ?Sized + VisitMut> VisitMutWith<V> for Key {
60970    #[doc = "Calls [VisitMut`::visit_mut_key`] with `self`."]
60971    fn visit_mut_with(&mut self, visitor: &mut V) {
60972        <V as VisitMut>::visit_mut_key(visitor, self)
60973    }
60974
60975    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60976        match self {
60977            Key::Private { 0: _field_0 } => {
60978                <PrivateName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60979            }
60980            Key::Public { 0: _field_0 } => {
60981                <PropName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60982            }
60983        }
60984    }
60985}
60986impl<V: ?Sized + VisitMut> VisitMutWith<V> for KeyValuePatProp {
60987    #[doc = "Calls [VisitMut`::visit_mut_key_value_pat_prop`] with `self`."]
60988    fn visit_mut_with(&mut self, visitor: &mut V) {
60989        <V as VisitMut>::visit_mut_key_value_pat_prop(visitor, self)
60990    }
60991
60992    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60993        match self {
60994            KeyValuePatProp { key, value } => {
60995                {
60996                    <PropName as VisitMutWith<V>>::visit_mut_with(key, visitor)
60997                };
60998                {
60999                    <Box<Pat> as VisitMutWith<V>>::visit_mut_with(value, visitor)
61000                };
61001            }
61002        }
61003    }
61004}
61005impl<V: ?Sized + VisitMut> VisitMutWith<V> for KeyValueProp {
61006    #[doc = "Calls [VisitMut`::visit_mut_key_value_prop`] with `self`."]
61007    fn visit_mut_with(&mut self, visitor: &mut V) {
61008        <V as VisitMut>::visit_mut_key_value_prop(visitor, self)
61009    }
61010
61011    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61012        match self {
61013            KeyValueProp { key, value } => {
61014                {
61015                    <PropName as VisitMutWith<V>>::visit_mut_with(key, visitor)
61016                };
61017                {
61018                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(value, visitor)
61019                };
61020            }
61021        }
61022    }
61023}
61024impl<V: ?Sized + VisitMut> VisitMutWith<V> for LabeledStmt {
61025    #[doc = "Calls [VisitMut`::visit_mut_labeled_stmt`] with `self`."]
61026    fn visit_mut_with(&mut self, visitor: &mut V) {
61027        <V as VisitMut>::visit_mut_labeled_stmt(visitor, self)
61028    }
61029
61030    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61031        match self {
61032            LabeledStmt { span, label, body } => {
61033                {
61034                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61035                };
61036                {
61037                    <Ident as VisitMutWith<V>>::visit_mut_with(label, visitor)
61038                };
61039                {
61040                    <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
61041                };
61042            }
61043        }
61044    }
61045}
61046impl<V: ?Sized + VisitMut> VisitMutWith<V> for Lit {
61047    #[doc = "Calls [VisitMut`::visit_mut_lit`] with `self`."]
61048    fn visit_mut_with(&mut self, visitor: &mut V) {
61049        <V as VisitMut>::visit_mut_lit(visitor, self)
61050    }
61051
61052    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61053        match self {
61054            Lit::Str { 0: _field_0 } => {
61055                <Str as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61056            }
61057            Lit::Bool { 0: _field_0 } => {
61058                <Bool as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61059            }
61060            Lit::Null { 0: _field_0 } => {
61061                <Null as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61062            }
61063            Lit::Num { 0: _field_0 } => {
61064                <Number as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61065            }
61066            Lit::BigInt { 0: _field_0 } => {
61067                <BigInt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61068            }
61069            Lit::Regex { 0: _field_0 } => {
61070                <Regex as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61071            }
61072            Lit::JSXText { 0: _field_0 } => {
61073                <JSXText as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61074            }
61075        }
61076    }
61077}
61078impl<V: ?Sized + VisitMut> VisitMutWith<V> for MemberExpr {
61079    #[doc = "Calls [VisitMut`::visit_mut_member_expr`] with `self`."]
61080    fn visit_mut_with(&mut self, visitor: &mut V) {
61081        <V as VisitMut>::visit_mut_member_expr(visitor, self)
61082    }
61083
61084    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61085        match self {
61086            MemberExpr { span, obj, prop } => {
61087                {
61088                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61089                };
61090                {
61091                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(obj, visitor)
61092                };
61093                {
61094                    <MemberProp as VisitMutWith<V>>::visit_mut_with(prop, visitor)
61095                };
61096            }
61097        }
61098    }
61099}
61100impl<V: ?Sized + VisitMut> VisitMutWith<V> for MemberProp {
61101    #[doc = "Calls [VisitMut`::visit_mut_member_prop`] with `self`."]
61102    fn visit_mut_with(&mut self, visitor: &mut V) {
61103        <V as VisitMut>::visit_mut_member_prop(visitor, self)
61104    }
61105
61106    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61107        match self {
61108            MemberProp::Ident { 0: _field_0 } => {
61109                <IdentName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61110            }
61111            MemberProp::PrivateName { 0: _field_0 } => {
61112                <PrivateName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61113            }
61114            MemberProp::Computed { 0: _field_0 } => {
61115                <ComputedPropName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61116            }
61117        }
61118    }
61119}
61120impl<V: ?Sized + VisitMut> VisitMutWith<V> for MetaPropExpr {
61121    #[doc = "Calls [VisitMut`::visit_mut_meta_prop_expr`] with `self`."]
61122    fn visit_mut_with(&mut self, visitor: &mut V) {
61123        <V as VisitMut>::visit_mut_meta_prop_expr(visitor, self)
61124    }
61125
61126    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61127        match self {
61128            MetaPropExpr { span, kind } => {
61129                {
61130                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61131                };
61132                {
61133                    <MetaPropKind as VisitMutWith<V>>::visit_mut_with(kind, visitor)
61134                };
61135            }
61136        }
61137    }
61138}
61139impl<V: ?Sized + VisitMut> VisitMutWith<V> for MetaPropKind {
61140    #[doc = "Calls [VisitMut`::visit_mut_meta_prop_kind`] with `self`."]
61141    fn visit_mut_with(&mut self, visitor: &mut V) {
61142        <V as VisitMut>::visit_mut_meta_prop_kind(visitor, self)
61143    }
61144
61145    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61146        match self {
61147            MetaPropKind::NewTarget => {}
61148            MetaPropKind::ImportMeta => {}
61149        }
61150    }
61151}
61152impl<V: ?Sized + VisitMut> VisitMutWith<V> for MethodKind {
61153    #[doc = "Calls [VisitMut`::visit_mut_method_kind`] with `self`."]
61154    fn visit_mut_with(&mut self, visitor: &mut V) {
61155        <V as VisitMut>::visit_mut_method_kind(visitor, self)
61156    }
61157
61158    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61159        match self {
61160            MethodKind::Method => {}
61161            MethodKind::Getter => {}
61162            MethodKind::Setter => {}
61163        }
61164    }
61165}
61166impl<V: ?Sized + VisitMut> VisitMutWith<V> for MethodProp {
61167    #[doc = "Calls [VisitMut`::visit_mut_method_prop`] with `self`."]
61168    fn visit_mut_with(&mut self, visitor: &mut V) {
61169        <V as VisitMut>::visit_mut_method_prop(visitor, self)
61170    }
61171
61172    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61173        match self {
61174            MethodProp { key, function } => {
61175                {
61176                    <PropName as VisitMutWith<V>>::visit_mut_with(key, visitor)
61177                };
61178                {
61179                    <Box<Function> as VisitMutWith<V>>::visit_mut_with(function, visitor)
61180                };
61181            }
61182        }
61183    }
61184}
61185impl<V: ?Sized + VisitMut> VisitMutWith<V> for Module {
61186    #[doc = "Calls [VisitMut`::visit_mut_module`] with `self`."]
61187    fn visit_mut_with(&mut self, visitor: &mut V) {
61188        <V as VisitMut>::visit_mut_module(visitor, self)
61189    }
61190
61191    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61192        match self {
61193            Module {
61194                span,
61195                body,
61196                shebang,
61197            } => {
61198                {
61199                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61200                };
61201                {
61202                    <Vec<ModuleItem> as VisitMutWith<V>>::visit_mut_with(body, visitor)
61203                };
61204                {
61205                    <Option<swc_atoms::Atom> as VisitMutWith<V>>::visit_mut_with(shebang, visitor)
61206                };
61207            }
61208        }
61209    }
61210}
61211impl<V: ?Sized + VisitMut> VisitMutWith<V> for ModuleDecl {
61212    #[doc = "Calls [VisitMut`::visit_mut_module_decl`] with `self`."]
61213    fn visit_mut_with(&mut self, visitor: &mut V) {
61214        <V as VisitMut>::visit_mut_module_decl(visitor, self)
61215    }
61216
61217    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61218        match self {
61219            ModuleDecl::Import { 0: _field_0 } => {
61220                <ImportDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61221            }
61222            ModuleDecl::ExportDecl { 0: _field_0 } => {
61223                <ExportDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61224            }
61225            ModuleDecl::ExportNamed { 0: _field_0 } => {
61226                <NamedExport as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61227            }
61228            ModuleDecl::ExportDefaultDecl { 0: _field_0 } => {
61229                <ExportDefaultDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61230            }
61231            ModuleDecl::ExportDefaultExpr { 0: _field_0 } => {
61232                <ExportDefaultExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61233            }
61234            ModuleDecl::ExportAll { 0: _field_0 } => {
61235                <ExportAll as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61236            }
61237            ModuleDecl::TsImportEquals { 0: _field_0 } => {
61238                <Box<TsImportEqualsDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61239            }
61240            ModuleDecl::TsExportAssignment { 0: _field_0 } => {
61241                <TsExportAssignment as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61242            }
61243            ModuleDecl::TsNamespaceExport { 0: _field_0 } => {
61244                <TsNamespaceExportDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61245            }
61246        }
61247    }
61248}
61249impl<V: ?Sized + VisitMut> VisitMutWith<V> for ModuleExportName {
61250    #[doc = "Calls [VisitMut`::visit_mut_module_export_name`] with `self`."]
61251    fn visit_mut_with(&mut self, visitor: &mut V) {
61252        <V as VisitMut>::visit_mut_module_export_name(visitor, self)
61253    }
61254
61255    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61256        match self {
61257            ModuleExportName::Ident { 0: _field_0 } => {
61258                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61259            }
61260            ModuleExportName::Str { 0: _field_0 } => {
61261                <Str as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61262            }
61263        }
61264    }
61265}
61266impl<V: ?Sized + VisitMut> VisitMutWith<V> for ModuleItem {
61267    #[doc = "Calls [VisitMut`::visit_mut_module_item`] with `self`."]
61268    fn visit_mut_with(&mut self, visitor: &mut V) {
61269        <V as VisitMut>::visit_mut_module_item(visitor, self)
61270    }
61271
61272    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61273        match self {
61274            ModuleItem::ModuleDecl { 0: _field_0 } => {
61275                <ModuleDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61276            }
61277            ModuleItem::Stmt { 0: _field_0 } => {
61278                <Stmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61279            }
61280        }
61281    }
61282}
61283impl<V: ?Sized + VisitMut> VisitMutWith<V> for NamedExport {
61284    #[doc = "Calls [VisitMut`::visit_mut_named_export`] with `self`."]
61285    fn visit_mut_with(&mut self, visitor: &mut V) {
61286        <V as VisitMut>::visit_mut_named_export(visitor, self)
61287    }
61288
61289    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61290        match self {
61291            NamedExport {
61292                span,
61293                specifiers,
61294                src,
61295                type_only,
61296                with,
61297            } => {
61298                {
61299                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61300                };
61301                {
61302                    <Vec<ExportSpecifier> as VisitMutWith<V>>::visit_mut_with(specifiers, visitor)
61303                };
61304                {
61305                    <Option<Box<Str>> as VisitMutWith<V>>::visit_mut_with(src, visitor)
61306                };
61307                {
61308                    <Option<Box<ObjectLit>> as VisitMutWith<V>>::visit_mut_with(with, visitor)
61309                };
61310            }
61311        }
61312    }
61313}
61314impl<V: ?Sized + VisitMut> VisitMutWith<V> for NewExpr {
61315    #[doc = "Calls [VisitMut`::visit_mut_new_expr`] with `self`."]
61316    fn visit_mut_with(&mut self, visitor: &mut V) {
61317        <V as VisitMut>::visit_mut_new_expr(visitor, self)
61318    }
61319
61320    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61321        match self {
61322            NewExpr {
61323                span,
61324                ctxt,
61325                callee,
61326                args,
61327                type_args,
61328            } => {
61329                {
61330                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61331                };
61332                {
61333                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
61334                };
61335                {
61336                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(callee, visitor)
61337                };
61338                {
61339                    <Option<Vec<ExprOrSpread>> as VisitMutWith<V>>::visit_mut_with(args, visitor)
61340                };
61341                {
61342                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
61343                        type_args, visitor,
61344                    )
61345                };
61346            }
61347        }
61348    }
61349}
61350impl<V: ?Sized + VisitMut> VisitMutWith<V> for Null {
61351    #[doc = "Calls [VisitMut`::visit_mut_null`] with `self`."]
61352    fn visit_mut_with(&mut self, visitor: &mut V) {
61353        <V as VisitMut>::visit_mut_null(visitor, self)
61354    }
61355
61356    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61357        match self {
61358            Null { span } => {
61359                {
61360                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61361                };
61362            }
61363        }
61364    }
61365}
61366impl<V: ?Sized + VisitMut> VisitMutWith<V> for Number {
61367    #[doc = "Calls [VisitMut`::visit_mut_number`] with `self`."]
61368    fn visit_mut_with(&mut self, visitor: &mut V) {
61369        <V as VisitMut>::visit_mut_number(visitor, self)
61370    }
61371
61372    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61373        match self {
61374            Number { span, value, raw } => {
61375                {
61376                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61377                };
61378                {
61379                    <Option<swc_atoms::Atom> as VisitMutWith<V>>::visit_mut_with(raw, visitor)
61380                };
61381            }
61382        }
61383    }
61384}
61385impl<V: ?Sized + VisitMut> VisitMutWith<V> for ObjectLit {
61386    #[doc = "Calls [VisitMut`::visit_mut_object_lit`] with `self`."]
61387    fn visit_mut_with(&mut self, visitor: &mut V) {
61388        <V as VisitMut>::visit_mut_object_lit(visitor, self)
61389    }
61390
61391    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61392        match self {
61393            ObjectLit { span, props } => {
61394                {
61395                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61396                };
61397                {
61398                    <Vec<PropOrSpread> as VisitMutWith<V>>::visit_mut_with(props, visitor)
61399                };
61400            }
61401        }
61402    }
61403}
61404impl<V: ?Sized + VisitMut> VisitMutWith<V> for ObjectPat {
61405    #[doc = "Calls [VisitMut`::visit_mut_object_pat`] with `self`."]
61406    fn visit_mut_with(&mut self, visitor: &mut V) {
61407        <V as VisitMut>::visit_mut_object_pat(visitor, self)
61408    }
61409
61410    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61411        match self {
61412            ObjectPat {
61413                span,
61414                props,
61415                optional,
61416                type_ann,
61417            } => {
61418                {
61419                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61420                };
61421                {
61422                    <Vec<ObjectPatProp> as VisitMutWith<V>>::visit_mut_with(props, visitor)
61423                };
61424                {
61425                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
61426                };
61427            }
61428        }
61429    }
61430}
61431impl<V: ?Sized + VisitMut> VisitMutWith<V> for ObjectPatProp {
61432    #[doc = "Calls [VisitMut`::visit_mut_object_pat_prop`] with `self`."]
61433    fn visit_mut_with(&mut self, visitor: &mut V) {
61434        <V as VisitMut>::visit_mut_object_pat_prop(visitor, self)
61435    }
61436
61437    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61438        match self {
61439            ObjectPatProp::KeyValue { 0: _field_0 } => {
61440                <KeyValuePatProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61441            }
61442            ObjectPatProp::Assign { 0: _field_0 } => {
61443                <AssignPatProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61444            }
61445            ObjectPatProp::Rest { 0: _field_0 } => {
61446                <RestPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61447            }
61448        }
61449    }
61450}
61451impl<V: ?Sized + VisitMut> VisitMutWith<V> for OptCall {
61452    #[doc = "Calls [VisitMut`::visit_mut_opt_call`] with `self`."]
61453    fn visit_mut_with(&mut self, visitor: &mut V) {
61454        <V as VisitMut>::visit_mut_opt_call(visitor, self)
61455    }
61456
61457    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61458        match self {
61459            OptCall {
61460                span,
61461                ctxt,
61462                callee,
61463                args,
61464                type_args,
61465            } => {
61466                {
61467                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61468                };
61469                {
61470                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
61471                };
61472                {
61473                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(callee, visitor)
61474                };
61475                {
61476                    <Vec<ExprOrSpread> as VisitMutWith<V>>::visit_mut_with(args, visitor)
61477                };
61478                {
61479                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
61480                        type_args, visitor,
61481                    )
61482                };
61483            }
61484        }
61485    }
61486}
61487impl<V: ?Sized + VisitMut> VisitMutWith<V> for OptChainBase {
61488    #[doc = "Calls [VisitMut`::visit_mut_opt_chain_base`] with `self`."]
61489    fn visit_mut_with(&mut self, visitor: &mut V) {
61490        <V as VisitMut>::visit_mut_opt_chain_base(visitor, self)
61491    }
61492
61493    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61494        match self {
61495            OptChainBase::Member { 0: _field_0 } => {
61496                <MemberExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61497            }
61498            OptChainBase::Call { 0: _field_0 } => {
61499                <OptCall as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61500            }
61501        }
61502    }
61503}
61504impl<V: ?Sized + VisitMut> VisitMutWith<V> for OptChainExpr {
61505    #[doc = "Calls [VisitMut`::visit_mut_opt_chain_expr`] with `self`."]
61506    fn visit_mut_with(&mut self, visitor: &mut V) {
61507        <V as VisitMut>::visit_mut_opt_chain_expr(visitor, self)
61508    }
61509
61510    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61511        match self {
61512            OptChainExpr {
61513                span,
61514                optional,
61515                base,
61516            } => {
61517                {
61518                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61519                };
61520                {
61521                    <Box<OptChainBase> as VisitMutWith<V>>::visit_mut_with(base, visitor)
61522                };
61523            }
61524        }
61525    }
61526}
61527impl<V: ?Sized + VisitMut> VisitMutWith<V> for Param {
61528    #[doc = "Calls [VisitMut`::visit_mut_param`] with `self`."]
61529    fn visit_mut_with(&mut self, visitor: &mut V) {
61530        <V as VisitMut>::visit_mut_param(visitor, self)
61531    }
61532
61533    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61534        match self {
61535            Param {
61536                span,
61537                decorators,
61538                pat,
61539            } => {
61540                {
61541                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61542                };
61543                {
61544                    <Vec<Decorator> as VisitMutWith<V>>::visit_mut_with(decorators, visitor)
61545                };
61546                {
61547                    <Pat as VisitMutWith<V>>::visit_mut_with(pat, visitor)
61548                };
61549            }
61550        }
61551    }
61552}
61553impl<V: ?Sized + VisitMut> VisitMutWith<V> for ParamOrTsParamProp {
61554    #[doc = "Calls [VisitMut`::visit_mut_param_or_ts_param_prop`] with `self`."]
61555    fn visit_mut_with(&mut self, visitor: &mut V) {
61556        <V as VisitMut>::visit_mut_param_or_ts_param_prop(visitor, self)
61557    }
61558
61559    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61560        match self {
61561            ParamOrTsParamProp::TsParamProp { 0: _field_0 } => {
61562                <TsParamProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61563            }
61564            ParamOrTsParamProp::Param { 0: _field_0 } => {
61565                <Param as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61566            }
61567        }
61568    }
61569}
61570impl<V: ?Sized + VisitMut> VisitMutWith<V> for ParenExpr {
61571    #[doc = "Calls [VisitMut`::visit_mut_paren_expr`] with `self`."]
61572    fn visit_mut_with(&mut self, visitor: &mut V) {
61573        <V as VisitMut>::visit_mut_paren_expr(visitor, self)
61574    }
61575
61576    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61577        match self {
61578            ParenExpr { span, expr } => {
61579                {
61580                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61581                };
61582                {
61583                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
61584                };
61585            }
61586        }
61587    }
61588}
61589impl<V: ?Sized + VisitMut> VisitMutWith<V> for Pat {
61590    #[doc = "Calls [VisitMut`::visit_mut_pat`] with `self`."]
61591    fn visit_mut_with(&mut self, visitor: &mut V) {
61592        <V as VisitMut>::visit_mut_pat(visitor, self)
61593    }
61594
61595    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61596        match self {
61597            Pat::Ident { 0: _field_0 } => {
61598                <BindingIdent as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61599            }
61600            Pat::Array { 0: _field_0 } => {
61601                <ArrayPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61602            }
61603            Pat::Rest { 0: _field_0 } => {
61604                <RestPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61605            }
61606            Pat::Object { 0: _field_0 } => {
61607                <ObjectPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61608            }
61609            Pat::Assign { 0: _field_0 } => {
61610                <AssignPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61611            }
61612            Pat::Invalid { 0: _field_0 } => {
61613                <Invalid as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61614            }
61615            Pat::Expr { 0: _field_0 } => {
61616                <Box<Expr> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61617            }
61618        }
61619    }
61620}
61621impl<V: ?Sized + VisitMut> VisitMutWith<V> for PrivateMethod {
61622    #[doc = "Calls [VisitMut`::visit_mut_private_method`] with `self`."]
61623    fn visit_mut_with(&mut self, visitor: &mut V) {
61624        <V as VisitMut>::visit_mut_private_method(visitor, self)
61625    }
61626
61627    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61628        match self {
61629            PrivateMethod {
61630                span,
61631                key,
61632                function,
61633                kind,
61634                is_static,
61635                accessibility,
61636                is_abstract,
61637                is_optional,
61638                is_override,
61639            } => {
61640                {
61641                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61642                };
61643                {
61644                    <PrivateName as VisitMutWith<V>>::visit_mut_with(key, visitor)
61645                };
61646                {
61647                    <Box<Function> as VisitMutWith<V>>::visit_mut_with(function, visitor)
61648                };
61649                {
61650                    <MethodKind as VisitMutWith<V>>::visit_mut_with(kind, visitor)
61651                };
61652                {
61653                    <Option<Accessibility> as VisitMutWith<V>>::visit_mut_with(
61654                        accessibility,
61655                        visitor,
61656                    )
61657                };
61658            }
61659        }
61660    }
61661}
61662impl<V: ?Sized + VisitMut> VisitMutWith<V> for PrivateName {
61663    #[doc = "Calls [VisitMut`::visit_mut_private_name`] with `self`."]
61664    fn visit_mut_with(&mut self, visitor: &mut V) {
61665        <V as VisitMut>::visit_mut_private_name(visitor, self)
61666    }
61667
61668    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61669        match self {
61670            PrivateName { span, name } => {
61671                {
61672                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61673                };
61674                {
61675                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(name, visitor)
61676                };
61677            }
61678        }
61679    }
61680}
61681impl<V: ?Sized + VisitMut> VisitMutWith<V> for PrivateProp {
61682    #[doc = "Calls [VisitMut`::visit_mut_private_prop`] with `self`."]
61683    fn visit_mut_with(&mut self, visitor: &mut V) {
61684        <V as VisitMut>::visit_mut_private_prop(visitor, self)
61685    }
61686
61687    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61688        match self {
61689            PrivateProp {
61690                span,
61691                ctxt,
61692                key,
61693                value,
61694                type_ann,
61695                is_static,
61696                decorators,
61697                accessibility,
61698                is_optional,
61699                is_override,
61700                readonly,
61701                definite,
61702            } => {
61703                {
61704                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61705                };
61706                {
61707                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
61708                };
61709                {
61710                    <PrivateName as VisitMutWith<V>>::visit_mut_with(key, visitor)
61711                };
61712                {
61713                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(value, visitor)
61714                };
61715                {
61716                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
61717                };
61718                {
61719                    <Vec<Decorator> as VisitMutWith<V>>::visit_mut_with(decorators, visitor)
61720                };
61721                {
61722                    <Option<Accessibility> as VisitMutWith<V>>::visit_mut_with(
61723                        accessibility,
61724                        visitor,
61725                    )
61726                };
61727            }
61728        }
61729    }
61730}
61731impl<V: ?Sized + VisitMut> VisitMutWith<V> for Program {
61732    #[doc = "Calls [VisitMut`::visit_mut_program`] with `self`."]
61733    fn visit_mut_with(&mut self, visitor: &mut V) {
61734        <V as VisitMut>::visit_mut_program(visitor, self)
61735    }
61736
61737    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61738        match self {
61739            Program::Module { 0: _field_0 } => {
61740                <Module as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61741            }
61742            Program::Script { 0: _field_0 } => {
61743                <Script as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61744            }
61745        }
61746    }
61747}
61748impl<V: ?Sized + VisitMut> VisitMutWith<V> for Prop {
61749    #[doc = "Calls [VisitMut`::visit_mut_prop`] with `self`."]
61750    fn visit_mut_with(&mut self, visitor: &mut V) {
61751        <V as VisitMut>::visit_mut_prop(visitor, self)
61752    }
61753
61754    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61755        match self {
61756            Prop::Shorthand { 0: _field_0 } => {
61757                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61758            }
61759            Prop::KeyValue { 0: _field_0 } => {
61760                <KeyValueProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61761            }
61762            Prop::Assign { 0: _field_0 } => {
61763                <AssignProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61764            }
61765            Prop::Getter { 0: _field_0 } => {
61766                <GetterProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61767            }
61768            Prop::Setter { 0: _field_0 } => {
61769                <SetterProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61770            }
61771            Prop::Method { 0: _field_0 } => {
61772                <MethodProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61773            }
61774        }
61775    }
61776}
61777impl<V: ?Sized + VisitMut> VisitMutWith<V> for PropName {
61778    #[doc = "Calls [VisitMut`::visit_mut_prop_name`] with `self`."]
61779    fn visit_mut_with(&mut self, visitor: &mut V) {
61780        <V as VisitMut>::visit_mut_prop_name(visitor, self)
61781    }
61782
61783    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61784        match self {
61785            PropName::Ident { 0: _field_0 } => {
61786                <IdentName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61787            }
61788            PropName::Str { 0: _field_0 } => {
61789                <Str as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61790            }
61791            PropName::Num { 0: _field_0 } => {
61792                <Number as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61793            }
61794            PropName::Computed { 0: _field_0 } => {
61795                <ComputedPropName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61796            }
61797            PropName::BigInt { 0: _field_0 } => {
61798                <BigInt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61799            }
61800        }
61801    }
61802}
61803impl<V: ?Sized + VisitMut> VisitMutWith<V> for PropOrSpread {
61804    #[doc = "Calls [VisitMut`::visit_mut_prop_or_spread`] with `self`."]
61805    fn visit_mut_with(&mut self, visitor: &mut V) {
61806        <V as VisitMut>::visit_mut_prop_or_spread(visitor, self)
61807    }
61808
61809    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61810        match self {
61811            PropOrSpread::Spread { 0: _field_0 } => {
61812                <SpreadElement as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61813            }
61814            PropOrSpread::Prop { 0: _field_0 } => {
61815                <Box<Prop> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61816            }
61817        }
61818    }
61819}
61820impl<V: ?Sized + VisitMut> VisitMutWith<V> for Regex {
61821    #[doc = "Calls [VisitMut`::visit_mut_regex`] with `self`."]
61822    fn visit_mut_with(&mut self, visitor: &mut V) {
61823        <V as VisitMut>::visit_mut_regex(visitor, self)
61824    }
61825
61826    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61827        match self {
61828            Regex { span, exp, flags } => {
61829                {
61830                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61831                };
61832                {
61833                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(exp, visitor)
61834                };
61835                {
61836                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(flags, visitor)
61837                };
61838            }
61839        }
61840    }
61841}
61842impl<V: ?Sized + VisitMut> VisitMutWith<V> for RestPat {
61843    #[doc = "Calls [VisitMut`::visit_mut_rest_pat`] with `self`."]
61844    fn visit_mut_with(&mut self, visitor: &mut V) {
61845        <V as VisitMut>::visit_mut_rest_pat(visitor, self)
61846    }
61847
61848    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61849        match self {
61850            RestPat {
61851                span,
61852                dot3_token,
61853                arg,
61854                type_ann,
61855            } => {
61856                {
61857                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61858                };
61859                {
61860                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(dot3_token, visitor)
61861                };
61862                {
61863                    <Box<Pat> as VisitMutWith<V>>::visit_mut_with(arg, visitor)
61864                };
61865                {
61866                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
61867                };
61868            }
61869        }
61870    }
61871}
61872impl<V: ?Sized + VisitMut> VisitMutWith<V> for ReturnStmt {
61873    #[doc = "Calls [VisitMut`::visit_mut_return_stmt`] with `self`."]
61874    fn visit_mut_with(&mut self, visitor: &mut V) {
61875        <V as VisitMut>::visit_mut_return_stmt(visitor, self)
61876    }
61877
61878    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61879        match self {
61880            ReturnStmt { span, arg } => {
61881                {
61882                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61883                };
61884                {
61885                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(arg, visitor)
61886                };
61887            }
61888        }
61889    }
61890}
61891impl<V: ?Sized + VisitMut> VisitMutWith<V> for Script {
61892    #[doc = "Calls [VisitMut`::visit_mut_script`] with `self`."]
61893    fn visit_mut_with(&mut self, visitor: &mut V) {
61894        <V as VisitMut>::visit_mut_script(visitor, self)
61895    }
61896
61897    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61898        match self {
61899            Script {
61900                span,
61901                body,
61902                shebang,
61903            } => {
61904                {
61905                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61906                };
61907                {
61908                    <Vec<Stmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
61909                };
61910                {
61911                    <Option<swc_atoms::Atom> as VisitMutWith<V>>::visit_mut_with(shebang, visitor)
61912                };
61913            }
61914        }
61915    }
61916}
61917impl<V: ?Sized + VisitMut> VisitMutWith<V> for SeqExpr {
61918    #[doc = "Calls [VisitMut`::visit_mut_seq_expr`] with `self`."]
61919    fn visit_mut_with(&mut self, visitor: &mut V) {
61920        <V as VisitMut>::visit_mut_seq_expr(visitor, self)
61921    }
61922
61923    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61924        match self {
61925            SeqExpr { span, exprs } => {
61926                {
61927                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61928                };
61929                {
61930                    <Vec<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(exprs, visitor)
61931                };
61932            }
61933        }
61934    }
61935}
61936impl<V: ?Sized + VisitMut> VisitMutWith<V> for SetterProp {
61937    #[doc = "Calls [VisitMut`::visit_mut_setter_prop`] with `self`."]
61938    fn visit_mut_with(&mut self, visitor: &mut V) {
61939        <V as VisitMut>::visit_mut_setter_prop(visitor, self)
61940    }
61941
61942    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61943        match self {
61944            SetterProp {
61945                span,
61946                key,
61947                this_param,
61948                param,
61949                body,
61950            } => {
61951                {
61952                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61953                };
61954                {
61955                    <PropName as VisitMutWith<V>>::visit_mut_with(key, visitor)
61956                };
61957                {
61958                    <Option<Pat> as VisitMutWith<V>>::visit_mut_with(this_param, visitor)
61959                };
61960                {
61961                    <Box<Pat> as VisitMutWith<V>>::visit_mut_with(param, visitor)
61962                };
61963                {
61964                    <Option<BlockStmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
61965                };
61966            }
61967        }
61968    }
61969}
61970impl<V: ?Sized + VisitMut> VisitMutWith<V> for SimpleAssignTarget {
61971    #[doc = "Calls [VisitMut`::visit_mut_simple_assign_target`] with `self`."]
61972    fn visit_mut_with(&mut self, visitor: &mut V) {
61973        <V as VisitMut>::visit_mut_simple_assign_target(visitor, self)
61974    }
61975
61976    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61977        match self {
61978            SimpleAssignTarget::Ident { 0: _field_0 } => {
61979                <BindingIdent as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61980            }
61981            SimpleAssignTarget::Member { 0: _field_0 } => {
61982                <MemberExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61983            }
61984            SimpleAssignTarget::SuperProp { 0: _field_0 } => {
61985                <SuperPropExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61986            }
61987            SimpleAssignTarget::Paren { 0: _field_0 } => {
61988                <ParenExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61989            }
61990            SimpleAssignTarget::OptChain { 0: _field_0 } => {
61991                <OptChainExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61992            }
61993            SimpleAssignTarget::TsAs { 0: _field_0 } => {
61994                <TsAsExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61995            }
61996            SimpleAssignTarget::TsSatisfies { 0: _field_0 } => {
61997                <TsSatisfiesExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61998            }
61999            SimpleAssignTarget::TsNonNull { 0: _field_0 } => {
62000                <TsNonNullExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62001            }
62002            SimpleAssignTarget::TsTypeAssertion { 0: _field_0 } => {
62003                <TsTypeAssertion as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62004            }
62005            SimpleAssignTarget::TsInstantiation { 0: _field_0 } => {
62006                <TsInstantiation as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62007            }
62008            SimpleAssignTarget::Invalid { 0: _field_0 } => {
62009                <Invalid as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62010            }
62011        }
62012    }
62013}
62014impl<V: ?Sized + VisitMut> VisitMutWith<V> for SpreadElement {
62015    #[doc = "Calls [VisitMut`::visit_mut_spread_element`] with `self`."]
62016    fn visit_mut_with(&mut self, visitor: &mut V) {
62017        <V as VisitMut>::visit_mut_spread_element(visitor, self)
62018    }
62019
62020    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62021        match self {
62022            SpreadElement { dot3_token, expr } => {
62023                {
62024                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(dot3_token, visitor)
62025                };
62026                {
62027                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
62028                };
62029            }
62030        }
62031    }
62032}
62033impl<V: ?Sized + VisitMut> VisitMutWith<V> for StaticBlock {
62034    #[doc = "Calls [VisitMut`::visit_mut_static_block`] with `self`."]
62035    fn visit_mut_with(&mut self, visitor: &mut V) {
62036        <V as VisitMut>::visit_mut_static_block(visitor, self)
62037    }
62038
62039    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62040        match self {
62041            StaticBlock { span, body } => {
62042                {
62043                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62044                };
62045                {
62046                    <BlockStmt as VisitMutWith<V>>::visit_mut_with(body, visitor)
62047                };
62048            }
62049        }
62050    }
62051}
62052impl<V: ?Sized + VisitMut> VisitMutWith<V> for Stmt {
62053    #[doc = "Calls [VisitMut`::visit_mut_stmt`] with `self`."]
62054    fn visit_mut_with(&mut self, visitor: &mut V) {
62055        <V as VisitMut>::visit_mut_stmt(visitor, self)
62056    }
62057
62058    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62059        match self {
62060            Stmt::Block { 0: _field_0 } => {
62061                <BlockStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62062            }
62063            Stmt::Empty { 0: _field_0 } => {
62064                <EmptyStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62065            }
62066            Stmt::Debugger { 0: _field_0 } => {
62067                <DebuggerStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62068            }
62069            Stmt::With { 0: _field_0 } => {
62070                <WithStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62071            }
62072            Stmt::Return { 0: _field_0 } => {
62073                <ReturnStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62074            }
62075            Stmt::Labeled { 0: _field_0 } => {
62076                <LabeledStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62077            }
62078            Stmt::Break { 0: _field_0 } => {
62079                <BreakStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62080            }
62081            Stmt::Continue { 0: _field_0 } => {
62082                <ContinueStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62083            }
62084            Stmt::If { 0: _field_0 } => {
62085                <IfStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62086            }
62087            Stmt::Switch { 0: _field_0 } => {
62088                <SwitchStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62089            }
62090            Stmt::Throw { 0: _field_0 } => {
62091                <ThrowStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62092            }
62093            Stmt::Try { 0: _field_0 } => {
62094                <Box<TryStmt> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62095            }
62096            Stmt::While { 0: _field_0 } => {
62097                <WhileStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62098            }
62099            Stmt::DoWhile { 0: _field_0 } => {
62100                <DoWhileStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62101            }
62102            Stmt::For { 0: _field_0 } => {
62103                <ForStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62104            }
62105            Stmt::ForIn { 0: _field_0 } => {
62106                <ForInStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62107            }
62108            Stmt::ForOf { 0: _field_0 } => {
62109                <ForOfStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62110            }
62111            Stmt::Decl { 0: _field_0 } => {
62112                <Decl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62113            }
62114            Stmt::Expr { 0: _field_0 } => {
62115                <ExprStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62116            }
62117        }
62118    }
62119}
62120impl<V: ?Sized + VisitMut> VisitMutWith<V> for Str {
62121    #[doc = "Calls [VisitMut`::visit_mut_str`] with `self`."]
62122    fn visit_mut_with(&mut self, visitor: &mut V) {
62123        <V as VisitMut>::visit_mut_str(visitor, self)
62124    }
62125
62126    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62127        match self {
62128            Str { span, value, raw } => {
62129                {
62130                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62131                };
62132                {
62133                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(value, visitor)
62134                };
62135                {
62136                    <Option<swc_atoms::Atom> as VisitMutWith<V>>::visit_mut_with(raw, visitor)
62137                };
62138            }
62139        }
62140    }
62141}
62142impl<V: ?Sized + VisitMut> VisitMutWith<V> for Super {
62143    #[doc = "Calls [VisitMut`::visit_mut_super`] with `self`."]
62144    fn visit_mut_with(&mut self, visitor: &mut V) {
62145        <V as VisitMut>::visit_mut_super(visitor, self)
62146    }
62147
62148    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62149        match self {
62150            Super { span } => {
62151                {
62152                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62153                };
62154            }
62155        }
62156    }
62157}
62158impl<V: ?Sized + VisitMut> VisitMutWith<V> for SuperProp {
62159    #[doc = "Calls [VisitMut`::visit_mut_super_prop`] with `self`."]
62160    fn visit_mut_with(&mut self, visitor: &mut V) {
62161        <V as VisitMut>::visit_mut_super_prop(visitor, self)
62162    }
62163
62164    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62165        match self {
62166            SuperProp::Ident { 0: _field_0 } => {
62167                <IdentName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62168            }
62169            SuperProp::Computed { 0: _field_0 } => {
62170                <ComputedPropName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62171            }
62172        }
62173    }
62174}
62175impl<V: ?Sized + VisitMut> VisitMutWith<V> for SuperPropExpr {
62176    #[doc = "Calls [VisitMut`::visit_mut_super_prop_expr`] with `self`."]
62177    fn visit_mut_with(&mut self, visitor: &mut V) {
62178        <V as VisitMut>::visit_mut_super_prop_expr(visitor, self)
62179    }
62180
62181    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62182        match self {
62183            SuperPropExpr { span, obj, prop } => {
62184                {
62185                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62186                };
62187                {
62188                    <Super as VisitMutWith<V>>::visit_mut_with(obj, visitor)
62189                };
62190                {
62191                    <SuperProp as VisitMutWith<V>>::visit_mut_with(prop, visitor)
62192                };
62193            }
62194        }
62195    }
62196}
62197impl<V: ?Sized + VisitMut> VisitMutWith<V> for SwitchCase {
62198    #[doc = "Calls [VisitMut`::visit_mut_switch_case`] with `self`."]
62199    fn visit_mut_with(&mut self, visitor: &mut V) {
62200        <V as VisitMut>::visit_mut_switch_case(visitor, self)
62201    }
62202
62203    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62204        match self {
62205            SwitchCase { span, test, cons } => {
62206                {
62207                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62208                };
62209                {
62210                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(test, visitor)
62211                };
62212                {
62213                    <Vec<Stmt> as VisitMutWith<V>>::visit_mut_with(cons, visitor)
62214                };
62215            }
62216        }
62217    }
62218}
62219impl<V: ?Sized + VisitMut> VisitMutWith<V> for SwitchStmt {
62220    #[doc = "Calls [VisitMut`::visit_mut_switch_stmt`] with `self`."]
62221    fn visit_mut_with(&mut self, visitor: &mut V) {
62222        <V as VisitMut>::visit_mut_switch_stmt(visitor, self)
62223    }
62224
62225    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62226        match self {
62227            SwitchStmt {
62228                span,
62229                discriminant,
62230                cases,
62231            } => {
62232                {
62233                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62234                };
62235                {
62236                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(discriminant, visitor)
62237                };
62238                {
62239                    <Vec<SwitchCase> as VisitMutWith<V>>::visit_mut_with(cases, visitor)
62240                };
62241            }
62242        }
62243    }
62244}
62245impl<V: ?Sized + VisitMut> VisitMutWith<V> for TaggedTpl {
62246    #[doc = "Calls [VisitMut`::visit_mut_tagged_tpl`] with `self`."]
62247    fn visit_mut_with(&mut self, visitor: &mut V) {
62248        <V as VisitMut>::visit_mut_tagged_tpl(visitor, self)
62249    }
62250
62251    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62252        match self {
62253            TaggedTpl {
62254                span,
62255                ctxt,
62256                tag,
62257                type_params,
62258                tpl,
62259            } => {
62260                {
62261                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62262                };
62263                {
62264                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
62265                };
62266                {
62267                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(tag, visitor)
62268                };
62269                {
62270                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
62271                        type_params,
62272                        visitor,
62273                    )
62274                };
62275                {
62276                    <Box<Tpl> as VisitMutWith<V>>::visit_mut_with(tpl, visitor)
62277                };
62278            }
62279        }
62280    }
62281}
62282impl<V: ?Sized + VisitMut> VisitMutWith<V> for ThisExpr {
62283    #[doc = "Calls [VisitMut`::visit_mut_this_expr`] with `self`."]
62284    fn visit_mut_with(&mut self, visitor: &mut V) {
62285        <V as VisitMut>::visit_mut_this_expr(visitor, self)
62286    }
62287
62288    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62289        match self {
62290            ThisExpr { span } => {
62291                {
62292                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62293                };
62294            }
62295        }
62296    }
62297}
62298impl<V: ?Sized + VisitMut> VisitMutWith<V> for ThrowStmt {
62299    #[doc = "Calls [VisitMut`::visit_mut_throw_stmt`] with `self`."]
62300    fn visit_mut_with(&mut self, visitor: &mut V) {
62301        <V as VisitMut>::visit_mut_throw_stmt(visitor, self)
62302    }
62303
62304    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62305        match self {
62306            ThrowStmt { span, arg } => {
62307                {
62308                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62309                };
62310                {
62311                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(arg, visitor)
62312                };
62313            }
62314        }
62315    }
62316}
62317impl<V: ?Sized + VisitMut> VisitMutWith<V> for Tpl {
62318    #[doc = "Calls [VisitMut`::visit_mut_tpl`] with `self`."]
62319    fn visit_mut_with(&mut self, visitor: &mut V) {
62320        <V as VisitMut>::visit_mut_tpl(visitor, self)
62321    }
62322
62323    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62324        match self {
62325            Tpl {
62326                span,
62327                exprs,
62328                quasis,
62329            } => {
62330                {
62331                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62332                };
62333                {
62334                    <Vec<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(exprs, visitor)
62335                };
62336                {
62337                    <Vec<TplElement> as VisitMutWith<V>>::visit_mut_with(quasis, visitor)
62338                };
62339            }
62340        }
62341    }
62342}
62343impl<V: ?Sized + VisitMut> VisitMutWith<V> for TplElement {
62344    #[doc = "Calls [VisitMut`::visit_mut_tpl_element`] with `self`."]
62345    fn visit_mut_with(&mut self, visitor: &mut V) {
62346        <V as VisitMut>::visit_mut_tpl_element(visitor, self)
62347    }
62348
62349    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62350        match self {
62351            TplElement {
62352                span,
62353                tail,
62354                cooked,
62355                raw,
62356            } => {
62357                {
62358                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62359                };
62360                {
62361                    <Option<swc_atoms::Atom> as VisitMutWith<V>>::visit_mut_with(cooked, visitor)
62362                };
62363                {
62364                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(raw, visitor)
62365                };
62366            }
62367        }
62368    }
62369}
62370impl<V: ?Sized + VisitMut> VisitMutWith<V> for TruePlusMinus {
62371    #[doc = "Calls [VisitMut`::visit_mut_true_plus_minus`] with `self`."]
62372    fn visit_mut_with(&mut self, visitor: &mut V) {
62373        <V as VisitMut>::visit_mut_true_plus_minus(visitor, self)
62374    }
62375
62376    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62377        match self {
62378            TruePlusMinus::True => {}
62379            TruePlusMinus::Plus => {}
62380            TruePlusMinus::Minus => {}
62381        }
62382    }
62383}
62384impl<V: ?Sized + VisitMut> VisitMutWith<V> for TryStmt {
62385    #[doc = "Calls [VisitMut`::visit_mut_try_stmt`] with `self`."]
62386    fn visit_mut_with(&mut self, visitor: &mut V) {
62387        <V as VisitMut>::visit_mut_try_stmt(visitor, self)
62388    }
62389
62390    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62391        match self {
62392            TryStmt {
62393                span,
62394                block,
62395                handler,
62396                finalizer,
62397            } => {
62398                {
62399                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62400                };
62401                {
62402                    <BlockStmt as VisitMutWith<V>>::visit_mut_with(block, visitor)
62403                };
62404                {
62405                    <Option<CatchClause> as VisitMutWith<V>>::visit_mut_with(handler, visitor)
62406                };
62407                {
62408                    <Option<BlockStmt> as VisitMutWith<V>>::visit_mut_with(finalizer, visitor)
62409                };
62410            }
62411        }
62412    }
62413}
62414impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsArrayType {
62415    #[doc = "Calls [VisitMut`::visit_mut_ts_array_type`] with `self`."]
62416    fn visit_mut_with(&mut self, visitor: &mut V) {
62417        <V as VisitMut>::visit_mut_ts_array_type(visitor, self)
62418    }
62419
62420    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62421        match self {
62422            TsArrayType { span, elem_type } => {
62423                {
62424                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62425                };
62426                {
62427                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(elem_type, visitor)
62428                };
62429            }
62430        }
62431    }
62432}
62433impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsAsExpr {
62434    #[doc = "Calls [VisitMut`::visit_mut_ts_as_expr`] with `self`."]
62435    fn visit_mut_with(&mut self, visitor: &mut V) {
62436        <V as VisitMut>::visit_mut_ts_as_expr(visitor, self)
62437    }
62438
62439    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62440        match self {
62441            TsAsExpr {
62442                span,
62443                expr,
62444                type_ann,
62445            } => {
62446                {
62447                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62448                };
62449                {
62450                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
62451                };
62452                {
62453                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
62454                };
62455            }
62456        }
62457    }
62458}
62459impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsCallSignatureDecl {
62460    #[doc = "Calls [VisitMut`::visit_mut_ts_call_signature_decl`] with `self`."]
62461    fn visit_mut_with(&mut self, visitor: &mut V) {
62462        <V as VisitMut>::visit_mut_ts_call_signature_decl(visitor, self)
62463    }
62464
62465    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62466        match self {
62467            TsCallSignatureDecl {
62468                span,
62469                params,
62470                type_ann,
62471                type_params,
62472            } => {
62473                {
62474                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62475                };
62476                {
62477                    <Vec<TsFnParam> as VisitMutWith<V>>::visit_mut_with(params, visitor)
62478                };
62479                {
62480                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
62481                };
62482                {
62483                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
62484                        type_params,
62485                        visitor,
62486                    )
62487                };
62488            }
62489        }
62490    }
62491}
62492impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsConditionalType {
62493    #[doc = "Calls [VisitMut`::visit_mut_ts_conditional_type`] with `self`."]
62494    fn visit_mut_with(&mut self, visitor: &mut V) {
62495        <V as VisitMut>::visit_mut_ts_conditional_type(visitor, self)
62496    }
62497
62498    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62499        match self {
62500            TsConditionalType {
62501                span,
62502                check_type,
62503                extends_type,
62504                true_type,
62505                false_type,
62506            } => {
62507                {
62508                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62509                };
62510                {
62511                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(check_type, visitor)
62512                };
62513                {
62514                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(extends_type, visitor)
62515                };
62516                {
62517                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(true_type, visitor)
62518                };
62519                {
62520                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(false_type, visitor)
62521                };
62522            }
62523        }
62524    }
62525}
62526impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsConstAssertion {
62527    #[doc = "Calls [VisitMut`::visit_mut_ts_const_assertion`] with `self`."]
62528    fn visit_mut_with(&mut self, visitor: &mut V) {
62529        <V as VisitMut>::visit_mut_ts_const_assertion(visitor, self)
62530    }
62531
62532    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62533        match self {
62534            TsConstAssertion { span, expr } => {
62535                {
62536                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62537                };
62538                {
62539                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
62540                };
62541            }
62542        }
62543    }
62544}
62545impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsConstructSignatureDecl {
62546    #[doc = "Calls [VisitMut`::visit_mut_ts_construct_signature_decl`] with `self`."]
62547    fn visit_mut_with(&mut self, visitor: &mut V) {
62548        <V as VisitMut>::visit_mut_ts_construct_signature_decl(visitor, self)
62549    }
62550
62551    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62552        match self {
62553            TsConstructSignatureDecl {
62554                span,
62555                params,
62556                type_ann,
62557                type_params,
62558            } => {
62559                {
62560                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62561                };
62562                {
62563                    <Vec<TsFnParam> as VisitMutWith<V>>::visit_mut_with(params, visitor)
62564                };
62565                {
62566                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
62567                };
62568                {
62569                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
62570                        type_params,
62571                        visitor,
62572                    )
62573                };
62574            }
62575        }
62576    }
62577}
62578impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsConstructorType {
62579    #[doc = "Calls [VisitMut`::visit_mut_ts_constructor_type`] with `self`."]
62580    fn visit_mut_with(&mut self, visitor: &mut V) {
62581        <V as VisitMut>::visit_mut_ts_constructor_type(visitor, self)
62582    }
62583
62584    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62585        match self {
62586            TsConstructorType {
62587                span,
62588                params,
62589                type_params,
62590                type_ann,
62591                is_abstract,
62592            } => {
62593                {
62594                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62595                };
62596                {
62597                    <Vec<TsFnParam> as VisitMutWith<V>>::visit_mut_with(params, visitor)
62598                };
62599                {
62600                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
62601                        type_params,
62602                        visitor,
62603                    )
62604                };
62605                {
62606                    <Box<TsTypeAnn> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
62607                };
62608            }
62609        }
62610    }
62611}
62612impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsEntityName {
62613    #[doc = "Calls [VisitMut`::visit_mut_ts_entity_name`] with `self`."]
62614    fn visit_mut_with(&mut self, visitor: &mut V) {
62615        <V as VisitMut>::visit_mut_ts_entity_name(visitor, self)
62616    }
62617
62618    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62619        match self {
62620            TsEntityName::TsQualifiedName { 0: _field_0 } => {
62621                <Box<TsQualifiedName> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62622            }
62623            TsEntityName::Ident { 0: _field_0 } => {
62624                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62625            }
62626        }
62627    }
62628}
62629impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsEnumDecl {
62630    #[doc = "Calls [VisitMut`::visit_mut_ts_enum_decl`] with `self`."]
62631    fn visit_mut_with(&mut self, visitor: &mut V) {
62632        <V as VisitMut>::visit_mut_ts_enum_decl(visitor, self)
62633    }
62634
62635    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62636        match self {
62637            TsEnumDecl {
62638                span,
62639                declare,
62640                is_const,
62641                id,
62642                members,
62643            } => {
62644                {
62645                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62646                };
62647                {
62648                    <Ident as VisitMutWith<V>>::visit_mut_with(id, visitor)
62649                };
62650                {
62651                    <Vec<TsEnumMember> as VisitMutWith<V>>::visit_mut_with(members, visitor)
62652                };
62653            }
62654        }
62655    }
62656}
62657impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsEnumMember {
62658    #[doc = "Calls [VisitMut`::visit_mut_ts_enum_member`] with `self`."]
62659    fn visit_mut_with(&mut self, visitor: &mut V) {
62660        <V as VisitMut>::visit_mut_ts_enum_member(visitor, self)
62661    }
62662
62663    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62664        match self {
62665            TsEnumMember { span, id, init } => {
62666                {
62667                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62668                };
62669                {
62670                    <TsEnumMemberId as VisitMutWith<V>>::visit_mut_with(id, visitor)
62671                };
62672                {
62673                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(init, visitor)
62674                };
62675            }
62676        }
62677    }
62678}
62679impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsEnumMemberId {
62680    #[doc = "Calls [VisitMut`::visit_mut_ts_enum_member_id`] with `self`."]
62681    fn visit_mut_with(&mut self, visitor: &mut V) {
62682        <V as VisitMut>::visit_mut_ts_enum_member_id(visitor, self)
62683    }
62684
62685    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62686        match self {
62687            TsEnumMemberId::Ident { 0: _field_0 } => {
62688                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62689            }
62690            TsEnumMemberId::Str { 0: _field_0 } => {
62691                <Str as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62692            }
62693        }
62694    }
62695}
62696impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsExportAssignment {
62697    #[doc = "Calls [VisitMut`::visit_mut_ts_export_assignment`] with `self`."]
62698    fn visit_mut_with(&mut self, visitor: &mut V) {
62699        <V as VisitMut>::visit_mut_ts_export_assignment(visitor, self)
62700    }
62701
62702    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62703        match self {
62704            TsExportAssignment { span, expr } => {
62705                {
62706                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62707                };
62708                {
62709                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
62710                };
62711            }
62712        }
62713    }
62714}
62715impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsExprWithTypeArgs {
62716    #[doc = "Calls [VisitMut`::visit_mut_ts_expr_with_type_args`] with `self`."]
62717    fn visit_mut_with(&mut self, visitor: &mut V) {
62718        <V as VisitMut>::visit_mut_ts_expr_with_type_args(visitor, self)
62719    }
62720
62721    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62722        match self {
62723            TsExprWithTypeArgs {
62724                span,
62725                expr,
62726                type_args,
62727            } => {
62728                {
62729                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62730                };
62731                {
62732                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
62733                };
62734                {
62735                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
62736                        type_args, visitor,
62737                    )
62738                };
62739            }
62740        }
62741    }
62742}
62743impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsExternalModuleRef {
62744    #[doc = "Calls [VisitMut`::visit_mut_ts_external_module_ref`] with `self`."]
62745    fn visit_mut_with(&mut self, visitor: &mut V) {
62746        <V as VisitMut>::visit_mut_ts_external_module_ref(visitor, self)
62747    }
62748
62749    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62750        match self {
62751            TsExternalModuleRef { span, expr } => {
62752                {
62753                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62754                };
62755                {
62756                    <Str as VisitMutWith<V>>::visit_mut_with(expr, visitor)
62757                };
62758            }
62759        }
62760    }
62761}
62762impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsFnOrConstructorType {
62763    #[doc = "Calls [VisitMut`::visit_mut_ts_fn_or_constructor_type`] with `self`."]
62764    fn visit_mut_with(&mut self, visitor: &mut V) {
62765        <V as VisitMut>::visit_mut_ts_fn_or_constructor_type(visitor, self)
62766    }
62767
62768    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62769        match self {
62770            TsFnOrConstructorType::TsFnType { 0: _field_0 } => {
62771                <TsFnType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62772            }
62773            TsFnOrConstructorType::TsConstructorType { 0: _field_0 } => {
62774                <TsConstructorType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62775            }
62776        }
62777    }
62778}
62779impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsFnParam {
62780    #[doc = "Calls [VisitMut`::visit_mut_ts_fn_param`] with `self`."]
62781    fn visit_mut_with(&mut self, visitor: &mut V) {
62782        <V as VisitMut>::visit_mut_ts_fn_param(visitor, self)
62783    }
62784
62785    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62786        match self {
62787            TsFnParam::Ident { 0: _field_0 } => {
62788                <BindingIdent as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62789            }
62790            TsFnParam::Array { 0: _field_0 } => {
62791                <ArrayPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62792            }
62793            TsFnParam::Rest { 0: _field_0 } => {
62794                <RestPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62795            }
62796            TsFnParam::Object { 0: _field_0 } => {
62797                <ObjectPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62798            }
62799        }
62800    }
62801}
62802impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsFnType {
62803    #[doc = "Calls [VisitMut`::visit_mut_ts_fn_type`] with `self`."]
62804    fn visit_mut_with(&mut self, visitor: &mut V) {
62805        <V as VisitMut>::visit_mut_ts_fn_type(visitor, self)
62806    }
62807
62808    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62809        match self {
62810            TsFnType {
62811                span,
62812                params,
62813                type_params,
62814                type_ann,
62815            } => {
62816                {
62817                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62818                };
62819                {
62820                    <Vec<TsFnParam> as VisitMutWith<V>>::visit_mut_with(params, visitor)
62821                };
62822                {
62823                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
62824                        type_params,
62825                        visitor,
62826                    )
62827                };
62828                {
62829                    <Box<TsTypeAnn> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
62830                };
62831            }
62832        }
62833    }
62834}
62835impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsGetterSignature {
62836    #[doc = "Calls [VisitMut`::visit_mut_ts_getter_signature`] with `self`."]
62837    fn visit_mut_with(&mut self, visitor: &mut V) {
62838        <V as VisitMut>::visit_mut_ts_getter_signature(visitor, self)
62839    }
62840
62841    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62842        match self {
62843            TsGetterSignature {
62844                span,
62845                key,
62846                computed,
62847                type_ann,
62848            } => {
62849                {
62850                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62851                };
62852                {
62853                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(key, visitor)
62854                };
62855                {
62856                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
62857                };
62858            }
62859        }
62860    }
62861}
62862impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsImportCallOptions {
62863    #[doc = "Calls [VisitMut`::visit_mut_ts_import_call_options`] with `self`."]
62864    fn visit_mut_with(&mut self, visitor: &mut V) {
62865        <V as VisitMut>::visit_mut_ts_import_call_options(visitor, self)
62866    }
62867
62868    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62869        match self {
62870            TsImportCallOptions { span, with } => {
62871                {
62872                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62873                };
62874                {
62875                    <Box<ObjectLit> as VisitMutWith<V>>::visit_mut_with(with, visitor)
62876                };
62877            }
62878        }
62879    }
62880}
62881impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsImportEqualsDecl {
62882    #[doc = "Calls [VisitMut`::visit_mut_ts_import_equals_decl`] with `self`."]
62883    fn visit_mut_with(&mut self, visitor: &mut V) {
62884        <V as VisitMut>::visit_mut_ts_import_equals_decl(visitor, self)
62885    }
62886
62887    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62888        match self {
62889            TsImportEqualsDecl {
62890                span,
62891                is_export,
62892                is_type_only,
62893                id,
62894                module_ref,
62895            } => {
62896                {
62897                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62898                };
62899                {
62900                    <Ident as VisitMutWith<V>>::visit_mut_with(id, visitor)
62901                };
62902                {
62903                    <TsModuleRef as VisitMutWith<V>>::visit_mut_with(module_ref, visitor)
62904                };
62905            }
62906        }
62907    }
62908}
62909impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsImportType {
62910    #[doc = "Calls [VisitMut`::visit_mut_ts_import_type`] with `self`."]
62911    fn visit_mut_with(&mut self, visitor: &mut V) {
62912        <V as VisitMut>::visit_mut_ts_import_type(visitor, self)
62913    }
62914
62915    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62916        match self {
62917            TsImportType {
62918                span,
62919                arg,
62920                qualifier,
62921                type_args,
62922                attributes,
62923            } => {
62924                {
62925                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62926                };
62927                {
62928                    <Str as VisitMutWith<V>>::visit_mut_with(arg, visitor)
62929                };
62930                {
62931                    <Option<TsEntityName> as VisitMutWith<V>>::visit_mut_with(qualifier, visitor)
62932                };
62933                {
62934                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
62935                        type_args, visitor,
62936                    )
62937                };
62938                {
62939                    <Option<TsImportCallOptions> as VisitMutWith<V>>::visit_mut_with(
62940                        attributes, visitor,
62941                    )
62942                };
62943            }
62944        }
62945    }
62946}
62947impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsIndexSignature {
62948    #[doc = "Calls [VisitMut`::visit_mut_ts_index_signature`] with `self`."]
62949    fn visit_mut_with(&mut self, visitor: &mut V) {
62950        <V as VisitMut>::visit_mut_ts_index_signature(visitor, self)
62951    }
62952
62953    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62954        match self {
62955            TsIndexSignature {
62956                params,
62957                type_ann,
62958                readonly,
62959                is_static,
62960                span,
62961            } => {
62962                {
62963                    <Vec<TsFnParam> as VisitMutWith<V>>::visit_mut_with(params, visitor)
62964                };
62965                {
62966                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
62967                };
62968                {
62969                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62970                };
62971            }
62972        }
62973    }
62974}
62975impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsIndexedAccessType {
62976    #[doc = "Calls [VisitMut`::visit_mut_ts_indexed_access_type`] with `self`."]
62977    fn visit_mut_with(&mut self, visitor: &mut V) {
62978        <V as VisitMut>::visit_mut_ts_indexed_access_type(visitor, self)
62979    }
62980
62981    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62982        match self {
62983            TsIndexedAccessType {
62984                span,
62985                readonly,
62986                obj_type,
62987                index_type,
62988            } => {
62989                {
62990                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62991                };
62992                {
62993                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(obj_type, visitor)
62994                };
62995                {
62996                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(index_type, visitor)
62997                };
62998            }
62999        }
63000    }
63001}
63002impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsInferType {
63003    #[doc = "Calls [VisitMut`::visit_mut_ts_infer_type`] with `self`."]
63004    fn visit_mut_with(&mut self, visitor: &mut V) {
63005        <V as VisitMut>::visit_mut_ts_infer_type(visitor, self)
63006    }
63007
63008    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63009        match self {
63010            TsInferType { span, type_param } => {
63011                {
63012                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63013                };
63014                {
63015                    <TsTypeParam as VisitMutWith<V>>::visit_mut_with(type_param, visitor)
63016                };
63017            }
63018        }
63019    }
63020}
63021impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsInstantiation {
63022    #[doc = "Calls [VisitMut`::visit_mut_ts_instantiation`] with `self`."]
63023    fn visit_mut_with(&mut self, visitor: &mut V) {
63024        <V as VisitMut>::visit_mut_ts_instantiation(visitor, self)
63025    }
63026
63027    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63028        match self {
63029            TsInstantiation {
63030                span,
63031                expr,
63032                type_args,
63033            } => {
63034                {
63035                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63036                };
63037                {
63038                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
63039                };
63040                {
63041                    <Box<TsTypeParamInstantiation> as VisitMutWith<V>>::visit_mut_with(
63042                        type_args, visitor,
63043                    )
63044                };
63045            }
63046        }
63047    }
63048}
63049impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsInterfaceBody {
63050    #[doc = "Calls [VisitMut`::visit_mut_ts_interface_body`] with `self`."]
63051    fn visit_mut_with(&mut self, visitor: &mut V) {
63052        <V as VisitMut>::visit_mut_ts_interface_body(visitor, self)
63053    }
63054
63055    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63056        match self {
63057            TsInterfaceBody { span, body } => {
63058                {
63059                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63060                };
63061                {
63062                    <Vec<TsTypeElement> as VisitMutWith<V>>::visit_mut_with(body, visitor)
63063                };
63064            }
63065        }
63066    }
63067}
63068impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsInterfaceDecl {
63069    #[doc = "Calls [VisitMut`::visit_mut_ts_interface_decl`] with `self`."]
63070    fn visit_mut_with(&mut self, visitor: &mut V) {
63071        <V as VisitMut>::visit_mut_ts_interface_decl(visitor, self)
63072    }
63073
63074    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63075        match self {
63076            TsInterfaceDecl {
63077                span,
63078                id,
63079                declare,
63080                type_params,
63081                extends,
63082                body,
63083            } => {
63084                {
63085                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63086                };
63087                {
63088                    <Ident as VisitMutWith<V>>::visit_mut_with(id, visitor)
63089                };
63090                {
63091                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
63092                        type_params,
63093                        visitor,
63094                    )
63095                };
63096                {
63097                    <Vec<TsExprWithTypeArgs> as VisitMutWith<V>>::visit_mut_with(extends, visitor)
63098                };
63099                {
63100                    <TsInterfaceBody as VisitMutWith<V>>::visit_mut_with(body, visitor)
63101                };
63102            }
63103        }
63104    }
63105}
63106impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsIntersectionType {
63107    #[doc = "Calls [VisitMut`::visit_mut_ts_intersection_type`] with `self`."]
63108    fn visit_mut_with(&mut self, visitor: &mut V) {
63109        <V as VisitMut>::visit_mut_ts_intersection_type(visitor, self)
63110    }
63111
63112    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63113        match self {
63114            TsIntersectionType { span, types } => {
63115                {
63116                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63117                };
63118                {
63119                    <Vec<Box<TsType>> as VisitMutWith<V>>::visit_mut_with(types, visitor)
63120                };
63121            }
63122        }
63123    }
63124}
63125impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsKeywordType {
63126    #[doc = "Calls [VisitMut`::visit_mut_ts_keyword_type`] with `self`."]
63127    fn visit_mut_with(&mut self, visitor: &mut V) {
63128        <V as VisitMut>::visit_mut_ts_keyword_type(visitor, self)
63129    }
63130
63131    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63132        match self {
63133            TsKeywordType { span, kind } => {
63134                {
63135                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63136                };
63137                {
63138                    <TsKeywordTypeKind as VisitMutWith<V>>::visit_mut_with(kind, visitor)
63139                };
63140            }
63141        }
63142    }
63143}
63144impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsKeywordTypeKind {
63145    #[doc = "Calls [VisitMut`::visit_mut_ts_keyword_type_kind`] with `self`."]
63146    fn visit_mut_with(&mut self, visitor: &mut V) {
63147        <V as VisitMut>::visit_mut_ts_keyword_type_kind(visitor, self)
63148    }
63149
63150    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63151        match self {
63152            TsKeywordTypeKind::TsAnyKeyword => {}
63153            TsKeywordTypeKind::TsUnknownKeyword => {}
63154            TsKeywordTypeKind::TsNumberKeyword => {}
63155            TsKeywordTypeKind::TsObjectKeyword => {}
63156            TsKeywordTypeKind::TsBooleanKeyword => {}
63157            TsKeywordTypeKind::TsBigIntKeyword => {}
63158            TsKeywordTypeKind::TsStringKeyword => {}
63159            TsKeywordTypeKind::TsSymbolKeyword => {}
63160            TsKeywordTypeKind::TsVoidKeyword => {}
63161            TsKeywordTypeKind::TsUndefinedKeyword => {}
63162            TsKeywordTypeKind::TsNullKeyword => {}
63163            TsKeywordTypeKind::TsNeverKeyword => {}
63164            TsKeywordTypeKind::TsIntrinsicKeyword => {}
63165        }
63166    }
63167}
63168impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsLit {
63169    #[doc = "Calls [VisitMut`::visit_mut_ts_lit`] with `self`."]
63170    fn visit_mut_with(&mut self, visitor: &mut V) {
63171        <V as VisitMut>::visit_mut_ts_lit(visitor, self)
63172    }
63173
63174    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63175        match self {
63176            TsLit::Number { 0: _field_0 } => {
63177                <Number as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63178            }
63179            TsLit::Str { 0: _field_0 } => {
63180                <Str as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63181            }
63182            TsLit::Bool { 0: _field_0 } => {
63183                <Bool as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63184            }
63185            TsLit::BigInt { 0: _field_0 } => {
63186                <BigInt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63187            }
63188            TsLit::Tpl { 0: _field_0 } => {
63189                <TsTplLitType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63190            }
63191        }
63192    }
63193}
63194impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsLitType {
63195    #[doc = "Calls [VisitMut`::visit_mut_ts_lit_type`] with `self`."]
63196    fn visit_mut_with(&mut self, visitor: &mut V) {
63197        <V as VisitMut>::visit_mut_ts_lit_type(visitor, self)
63198    }
63199
63200    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63201        match self {
63202            TsLitType { span, lit } => {
63203                {
63204                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63205                };
63206                {
63207                    <TsLit as VisitMutWith<V>>::visit_mut_with(lit, visitor)
63208                };
63209            }
63210        }
63211    }
63212}
63213impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsMappedType {
63214    #[doc = "Calls [VisitMut`::visit_mut_ts_mapped_type`] with `self`."]
63215    fn visit_mut_with(&mut self, visitor: &mut V) {
63216        <V as VisitMut>::visit_mut_ts_mapped_type(visitor, self)
63217    }
63218
63219    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63220        match self {
63221            TsMappedType {
63222                span,
63223                readonly,
63224                type_param,
63225                name_type,
63226                optional,
63227                type_ann,
63228            } => {
63229                {
63230                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63231                };
63232                {
63233                    <Option<TruePlusMinus> as VisitMutWith<V>>::visit_mut_with(readonly, visitor)
63234                };
63235                {
63236                    <TsTypeParam as VisitMutWith<V>>::visit_mut_with(type_param, visitor)
63237                };
63238                {
63239                    <Option<Box<TsType>> as VisitMutWith<V>>::visit_mut_with(name_type, visitor)
63240                };
63241                {
63242                    <Option<TruePlusMinus> as VisitMutWith<V>>::visit_mut_with(optional, visitor)
63243                };
63244                {
63245                    <Option<Box<TsType>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63246                };
63247            }
63248        }
63249    }
63250}
63251impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsMethodSignature {
63252    #[doc = "Calls [VisitMut`::visit_mut_ts_method_signature`] with `self`."]
63253    fn visit_mut_with(&mut self, visitor: &mut V) {
63254        <V as VisitMut>::visit_mut_ts_method_signature(visitor, self)
63255    }
63256
63257    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63258        match self {
63259            TsMethodSignature {
63260                span,
63261                key,
63262                computed,
63263                optional,
63264                params,
63265                type_ann,
63266                type_params,
63267            } => {
63268                {
63269                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63270                };
63271                {
63272                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(key, visitor)
63273                };
63274                {
63275                    <Vec<TsFnParam> as VisitMutWith<V>>::visit_mut_with(params, visitor)
63276                };
63277                {
63278                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63279                };
63280                {
63281                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
63282                        type_params,
63283                        visitor,
63284                    )
63285                };
63286            }
63287        }
63288    }
63289}
63290impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsModuleBlock {
63291    #[doc = "Calls [VisitMut`::visit_mut_ts_module_block`] with `self`."]
63292    fn visit_mut_with(&mut self, visitor: &mut V) {
63293        <V as VisitMut>::visit_mut_ts_module_block(visitor, self)
63294    }
63295
63296    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63297        match self {
63298            TsModuleBlock { span, body } => {
63299                {
63300                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63301                };
63302                {
63303                    <Vec<ModuleItem> as VisitMutWith<V>>::visit_mut_with(body, visitor)
63304                };
63305            }
63306        }
63307    }
63308}
63309impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsModuleDecl {
63310    #[doc = "Calls [VisitMut`::visit_mut_ts_module_decl`] with `self`."]
63311    fn visit_mut_with(&mut self, visitor: &mut V) {
63312        <V as VisitMut>::visit_mut_ts_module_decl(visitor, self)
63313    }
63314
63315    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63316        match self {
63317            TsModuleDecl {
63318                span,
63319                declare,
63320                global,
63321                namespace,
63322                id,
63323                body,
63324            } => {
63325                {
63326                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63327                };
63328                {
63329                    <TsModuleName as VisitMutWith<V>>::visit_mut_with(id, visitor)
63330                };
63331                {
63332                    <Option<TsNamespaceBody> as VisitMutWith<V>>::visit_mut_with(body, visitor)
63333                };
63334            }
63335        }
63336    }
63337}
63338impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsModuleName {
63339    #[doc = "Calls [VisitMut`::visit_mut_ts_module_name`] with `self`."]
63340    fn visit_mut_with(&mut self, visitor: &mut V) {
63341        <V as VisitMut>::visit_mut_ts_module_name(visitor, self)
63342    }
63343
63344    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63345        match self {
63346            TsModuleName::Ident { 0: _field_0 } => {
63347                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63348            }
63349            TsModuleName::Str { 0: _field_0 } => {
63350                <Str as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63351            }
63352        }
63353    }
63354}
63355impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsModuleRef {
63356    #[doc = "Calls [VisitMut`::visit_mut_ts_module_ref`] with `self`."]
63357    fn visit_mut_with(&mut self, visitor: &mut V) {
63358        <V as VisitMut>::visit_mut_ts_module_ref(visitor, self)
63359    }
63360
63361    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63362        match self {
63363            TsModuleRef::TsEntityName { 0: _field_0 } => {
63364                <TsEntityName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63365            }
63366            TsModuleRef::TsExternalModuleRef { 0: _field_0 } => {
63367                <TsExternalModuleRef as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63368            }
63369        }
63370    }
63371}
63372impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsNamespaceBody {
63373    #[doc = "Calls [VisitMut`::visit_mut_ts_namespace_body`] with `self`."]
63374    fn visit_mut_with(&mut self, visitor: &mut V) {
63375        <V as VisitMut>::visit_mut_ts_namespace_body(visitor, self)
63376    }
63377
63378    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63379        match self {
63380            TsNamespaceBody::TsModuleBlock { 0: _field_0 } => {
63381                <TsModuleBlock as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63382            }
63383            TsNamespaceBody::TsNamespaceDecl { 0: _field_0 } => {
63384                <TsNamespaceDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63385            }
63386        }
63387    }
63388}
63389impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsNamespaceDecl {
63390    #[doc = "Calls [VisitMut`::visit_mut_ts_namespace_decl`] with `self`."]
63391    fn visit_mut_with(&mut self, visitor: &mut V) {
63392        <V as VisitMut>::visit_mut_ts_namespace_decl(visitor, self)
63393    }
63394
63395    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63396        match self {
63397            TsNamespaceDecl {
63398                span,
63399                declare,
63400                global,
63401                id,
63402                body,
63403            } => {
63404                {
63405                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63406                };
63407                {
63408                    <Ident as VisitMutWith<V>>::visit_mut_with(id, visitor)
63409                };
63410                {
63411                    <Box<TsNamespaceBody> as VisitMutWith<V>>::visit_mut_with(body, visitor)
63412                };
63413            }
63414        }
63415    }
63416}
63417impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsNamespaceExportDecl {
63418    #[doc = "Calls [VisitMut`::visit_mut_ts_namespace_export_decl`] with `self`."]
63419    fn visit_mut_with(&mut self, visitor: &mut V) {
63420        <V as VisitMut>::visit_mut_ts_namespace_export_decl(visitor, self)
63421    }
63422
63423    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63424        match self {
63425            TsNamespaceExportDecl { span, id } => {
63426                {
63427                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63428                };
63429                {
63430                    <Ident as VisitMutWith<V>>::visit_mut_with(id, visitor)
63431                };
63432            }
63433        }
63434    }
63435}
63436impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsNonNullExpr {
63437    #[doc = "Calls [VisitMut`::visit_mut_ts_non_null_expr`] with `self`."]
63438    fn visit_mut_with(&mut self, visitor: &mut V) {
63439        <V as VisitMut>::visit_mut_ts_non_null_expr(visitor, self)
63440    }
63441
63442    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63443        match self {
63444            TsNonNullExpr { span, expr } => {
63445                {
63446                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63447                };
63448                {
63449                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
63450                };
63451            }
63452        }
63453    }
63454}
63455impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsOptionalType {
63456    #[doc = "Calls [VisitMut`::visit_mut_ts_optional_type`] with `self`."]
63457    fn visit_mut_with(&mut self, visitor: &mut V) {
63458        <V as VisitMut>::visit_mut_ts_optional_type(visitor, self)
63459    }
63460
63461    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63462        match self {
63463            TsOptionalType { 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 TsParamProp {
63475    #[doc = "Calls [VisitMut`::visit_mut_ts_param_prop`] with `self`."]
63476    fn visit_mut_with(&mut self, visitor: &mut V) {
63477        <V as VisitMut>::visit_mut_ts_param_prop(visitor, self)
63478    }
63479
63480    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63481        match self {
63482            TsParamProp {
63483                span,
63484                decorators,
63485                accessibility,
63486                is_override,
63487                readonly,
63488                param,
63489            } => {
63490                {
63491                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63492                };
63493                {
63494                    <Vec<Decorator> as VisitMutWith<V>>::visit_mut_with(decorators, visitor)
63495                };
63496                {
63497                    <Option<Accessibility> as VisitMutWith<V>>::visit_mut_with(
63498                        accessibility,
63499                        visitor,
63500                    )
63501                };
63502                {
63503                    <TsParamPropParam as VisitMutWith<V>>::visit_mut_with(param, visitor)
63504                };
63505            }
63506        }
63507    }
63508}
63509impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsParamPropParam {
63510    #[doc = "Calls [VisitMut`::visit_mut_ts_param_prop_param`] with `self`."]
63511    fn visit_mut_with(&mut self, visitor: &mut V) {
63512        <V as VisitMut>::visit_mut_ts_param_prop_param(visitor, self)
63513    }
63514
63515    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63516        match self {
63517            TsParamPropParam::Ident { 0: _field_0 } => {
63518                <BindingIdent as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63519            }
63520            TsParamPropParam::Assign { 0: _field_0 } => {
63521                <AssignPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63522            }
63523        }
63524    }
63525}
63526impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsParenthesizedType {
63527    #[doc = "Calls [VisitMut`::visit_mut_ts_parenthesized_type`] with `self`."]
63528    fn visit_mut_with(&mut self, visitor: &mut V) {
63529        <V as VisitMut>::visit_mut_ts_parenthesized_type(visitor, self)
63530    }
63531
63532    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63533        match self {
63534            TsParenthesizedType { span, type_ann } => {
63535                {
63536                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63537                };
63538                {
63539                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63540                };
63541            }
63542        }
63543    }
63544}
63545impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsPropertySignature {
63546    #[doc = "Calls [VisitMut`::visit_mut_ts_property_signature`] with `self`."]
63547    fn visit_mut_with(&mut self, visitor: &mut V) {
63548        <V as VisitMut>::visit_mut_ts_property_signature(visitor, self)
63549    }
63550
63551    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63552        match self {
63553            TsPropertySignature {
63554                span,
63555                readonly,
63556                key,
63557                computed,
63558                optional,
63559                type_ann,
63560            } => {
63561                {
63562                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63563                };
63564                {
63565                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(key, visitor)
63566                };
63567                {
63568                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63569                };
63570            }
63571        }
63572    }
63573}
63574impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsQualifiedName {
63575    #[doc = "Calls [VisitMut`::visit_mut_ts_qualified_name`] with `self`."]
63576    fn visit_mut_with(&mut self, visitor: &mut V) {
63577        <V as VisitMut>::visit_mut_ts_qualified_name(visitor, self)
63578    }
63579
63580    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63581        match self {
63582            TsQualifiedName { span, left, right } => {
63583                {
63584                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63585                };
63586                {
63587                    <TsEntityName as VisitMutWith<V>>::visit_mut_with(left, visitor)
63588                };
63589                {
63590                    <IdentName as VisitMutWith<V>>::visit_mut_with(right, visitor)
63591                };
63592            }
63593        }
63594    }
63595}
63596impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsRestType {
63597    #[doc = "Calls [VisitMut`::visit_mut_ts_rest_type`] with `self`."]
63598    fn visit_mut_with(&mut self, visitor: &mut V) {
63599        <V as VisitMut>::visit_mut_ts_rest_type(visitor, self)
63600    }
63601
63602    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63603        match self {
63604            TsRestType { span, type_ann } => {
63605                {
63606                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63607                };
63608                {
63609                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63610                };
63611            }
63612        }
63613    }
63614}
63615impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsSatisfiesExpr {
63616    #[doc = "Calls [VisitMut`::visit_mut_ts_satisfies_expr`] with `self`."]
63617    fn visit_mut_with(&mut self, visitor: &mut V) {
63618        <V as VisitMut>::visit_mut_ts_satisfies_expr(visitor, self)
63619    }
63620
63621    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63622        match self {
63623            TsSatisfiesExpr {
63624                span,
63625                expr,
63626                type_ann,
63627            } => {
63628                {
63629                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63630                };
63631                {
63632                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
63633                };
63634                {
63635                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63636                };
63637            }
63638        }
63639    }
63640}
63641impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsSetterSignature {
63642    #[doc = "Calls [VisitMut`::visit_mut_ts_setter_signature`] with `self`."]
63643    fn visit_mut_with(&mut self, visitor: &mut V) {
63644        <V as VisitMut>::visit_mut_ts_setter_signature(visitor, self)
63645    }
63646
63647    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63648        match self {
63649            TsSetterSignature {
63650                span,
63651                key,
63652                computed,
63653                param,
63654            } => {
63655                {
63656                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63657                };
63658                {
63659                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(key, visitor)
63660                };
63661                {
63662                    <TsFnParam as VisitMutWith<V>>::visit_mut_with(param, visitor)
63663                };
63664            }
63665        }
63666    }
63667}
63668impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsThisType {
63669    #[doc = "Calls [VisitMut`::visit_mut_ts_this_type`] with `self`."]
63670    fn visit_mut_with(&mut self, visitor: &mut V) {
63671        <V as VisitMut>::visit_mut_ts_this_type(visitor, self)
63672    }
63673
63674    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63675        match self {
63676            TsThisType { span } => {
63677                {
63678                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63679                };
63680            }
63681        }
63682    }
63683}
63684impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsThisTypeOrIdent {
63685    #[doc = "Calls [VisitMut`::visit_mut_ts_this_type_or_ident`] with `self`."]
63686    fn visit_mut_with(&mut self, visitor: &mut V) {
63687        <V as VisitMut>::visit_mut_ts_this_type_or_ident(visitor, self)
63688    }
63689
63690    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63691        match self {
63692            TsThisTypeOrIdent::TsThisType { 0: _field_0 } => {
63693                <TsThisType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63694            }
63695            TsThisTypeOrIdent::Ident { 0: _field_0 } => {
63696                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63697            }
63698        }
63699    }
63700}
63701impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTplLitType {
63702    #[doc = "Calls [VisitMut`::visit_mut_ts_tpl_lit_type`] with `self`."]
63703    fn visit_mut_with(&mut self, visitor: &mut V) {
63704        <V as VisitMut>::visit_mut_ts_tpl_lit_type(visitor, self)
63705    }
63706
63707    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63708        match self {
63709            TsTplLitType {
63710                span,
63711                types,
63712                quasis,
63713            } => {
63714                {
63715                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63716                };
63717                {
63718                    <Vec<Box<TsType>> as VisitMutWith<V>>::visit_mut_with(types, visitor)
63719                };
63720                {
63721                    <Vec<TplElement> as VisitMutWith<V>>::visit_mut_with(quasis, visitor)
63722                };
63723            }
63724        }
63725    }
63726}
63727impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTupleElement {
63728    #[doc = "Calls [VisitMut`::visit_mut_ts_tuple_element`] with `self`."]
63729    fn visit_mut_with(&mut self, visitor: &mut V) {
63730        <V as VisitMut>::visit_mut_ts_tuple_element(visitor, self)
63731    }
63732
63733    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63734        match self {
63735            TsTupleElement { span, label, ty } => {
63736                {
63737                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63738                };
63739                {
63740                    <Option<Pat> as VisitMutWith<V>>::visit_mut_with(label, visitor)
63741                };
63742                {
63743                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(ty, visitor)
63744                };
63745            }
63746        }
63747    }
63748}
63749impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTupleType {
63750    #[doc = "Calls [VisitMut`::visit_mut_ts_tuple_type`] with `self`."]
63751    fn visit_mut_with(&mut self, visitor: &mut V) {
63752        <V as VisitMut>::visit_mut_ts_tuple_type(visitor, self)
63753    }
63754
63755    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63756        match self {
63757            TsTupleType { span, elem_types } => {
63758                {
63759                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63760                };
63761                {
63762                    <Vec<TsTupleElement> as VisitMutWith<V>>::visit_mut_with(elem_types, visitor)
63763                };
63764            }
63765        }
63766    }
63767}
63768impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsType {
63769    #[doc = "Calls [VisitMut`::visit_mut_ts_type`] with `self`."]
63770    fn visit_mut_with(&mut self, visitor: &mut V) {
63771        <V as VisitMut>::visit_mut_ts_type(visitor, self)
63772    }
63773
63774    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63775        match self {
63776            TsType::TsKeywordType { 0: _field_0 } => {
63777                <TsKeywordType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63778            }
63779            TsType::TsThisType { 0: _field_0 } => {
63780                <TsThisType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63781            }
63782            TsType::TsFnOrConstructorType { 0: _field_0 } => {
63783                <TsFnOrConstructorType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63784            }
63785            TsType::TsTypeRef { 0: _field_0 } => {
63786                <TsTypeRef as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63787            }
63788            TsType::TsTypeQuery { 0: _field_0 } => {
63789                <TsTypeQuery as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63790            }
63791            TsType::TsTypeLit { 0: _field_0 } => {
63792                <TsTypeLit as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63793            }
63794            TsType::TsArrayType { 0: _field_0 } => {
63795                <TsArrayType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63796            }
63797            TsType::TsTupleType { 0: _field_0 } => {
63798                <TsTupleType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63799            }
63800            TsType::TsOptionalType { 0: _field_0 } => {
63801                <TsOptionalType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63802            }
63803            TsType::TsRestType { 0: _field_0 } => {
63804                <TsRestType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63805            }
63806            TsType::TsUnionOrIntersectionType { 0: _field_0 } => {
63807                <TsUnionOrIntersectionType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63808            }
63809            TsType::TsConditionalType { 0: _field_0 } => {
63810                <TsConditionalType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63811            }
63812            TsType::TsInferType { 0: _field_0 } => {
63813                <TsInferType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63814            }
63815            TsType::TsParenthesizedType { 0: _field_0 } => {
63816                <TsParenthesizedType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63817            }
63818            TsType::TsTypeOperator { 0: _field_0 } => {
63819                <TsTypeOperator as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63820            }
63821            TsType::TsIndexedAccessType { 0: _field_0 } => {
63822                <TsIndexedAccessType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63823            }
63824            TsType::TsMappedType { 0: _field_0 } => {
63825                <TsMappedType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63826            }
63827            TsType::TsLitType { 0: _field_0 } => {
63828                <TsLitType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63829            }
63830            TsType::TsTypePredicate { 0: _field_0 } => {
63831                <TsTypePredicate as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63832            }
63833            TsType::TsImportType { 0: _field_0 } => {
63834                <TsImportType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63835            }
63836        }
63837    }
63838}
63839impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeAliasDecl {
63840    #[doc = "Calls [VisitMut`::visit_mut_ts_type_alias_decl`] with `self`."]
63841    fn visit_mut_with(&mut self, visitor: &mut V) {
63842        <V as VisitMut>::visit_mut_ts_type_alias_decl(visitor, self)
63843    }
63844
63845    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63846        match self {
63847            TsTypeAliasDecl {
63848                span,
63849                declare,
63850                id,
63851                type_params,
63852                type_ann,
63853            } => {
63854                {
63855                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63856                };
63857                {
63858                    <Ident as VisitMutWith<V>>::visit_mut_with(id, visitor)
63859                };
63860                {
63861                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
63862                        type_params,
63863                        visitor,
63864                    )
63865                };
63866                {
63867                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63868                };
63869            }
63870        }
63871    }
63872}
63873impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeAnn {
63874    #[doc = "Calls [VisitMut`::visit_mut_ts_type_ann`] with `self`."]
63875    fn visit_mut_with(&mut self, visitor: &mut V) {
63876        <V as VisitMut>::visit_mut_ts_type_ann(visitor, self)
63877    }
63878
63879    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63880        match self {
63881            TsTypeAnn { span, type_ann } => {
63882                {
63883                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63884                };
63885                {
63886                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63887                };
63888            }
63889        }
63890    }
63891}
63892impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeAssertion {
63893    #[doc = "Calls [VisitMut`::visit_mut_ts_type_assertion`] with `self`."]
63894    fn visit_mut_with(&mut self, visitor: &mut V) {
63895        <V as VisitMut>::visit_mut_ts_type_assertion(visitor, self)
63896    }
63897
63898    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63899        match self {
63900            TsTypeAssertion {
63901                span,
63902                expr,
63903                type_ann,
63904            } => {
63905                {
63906                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63907                };
63908                {
63909                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
63910                };
63911                {
63912                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63913                };
63914            }
63915        }
63916    }
63917}
63918impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeElement {
63919    #[doc = "Calls [VisitMut`::visit_mut_ts_type_element`] with `self`."]
63920    fn visit_mut_with(&mut self, visitor: &mut V) {
63921        <V as VisitMut>::visit_mut_ts_type_element(visitor, self)
63922    }
63923
63924    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63925        match self {
63926            TsTypeElement::TsCallSignatureDecl { 0: _field_0 } => {
63927                <TsCallSignatureDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63928            }
63929            TsTypeElement::TsConstructSignatureDecl { 0: _field_0 } => {
63930                <TsConstructSignatureDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63931            }
63932            TsTypeElement::TsPropertySignature { 0: _field_0 } => {
63933                <TsPropertySignature as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63934            }
63935            TsTypeElement::TsGetterSignature { 0: _field_0 } => {
63936                <TsGetterSignature as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63937            }
63938            TsTypeElement::TsSetterSignature { 0: _field_0 } => {
63939                <TsSetterSignature as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63940            }
63941            TsTypeElement::TsMethodSignature { 0: _field_0 } => {
63942                <TsMethodSignature as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63943            }
63944            TsTypeElement::TsIndexSignature { 0: _field_0 } => {
63945                <TsIndexSignature as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63946            }
63947        }
63948    }
63949}
63950impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeLit {
63951    #[doc = "Calls [VisitMut`::visit_mut_ts_type_lit`] with `self`."]
63952    fn visit_mut_with(&mut self, visitor: &mut V) {
63953        <V as VisitMut>::visit_mut_ts_type_lit(visitor, self)
63954    }
63955
63956    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63957        match self {
63958            TsTypeLit { span, members } => {
63959                {
63960                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63961                };
63962                {
63963                    <Vec<TsTypeElement> as VisitMutWith<V>>::visit_mut_with(members, visitor)
63964                };
63965            }
63966        }
63967    }
63968}
63969impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeOperator {
63970    #[doc = "Calls [VisitMut`::visit_mut_ts_type_operator`] with `self`."]
63971    fn visit_mut_with(&mut self, visitor: &mut V) {
63972        <V as VisitMut>::visit_mut_ts_type_operator(visitor, self)
63973    }
63974
63975    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63976        match self {
63977            TsTypeOperator { span, op, type_ann } => {
63978                {
63979                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63980                };
63981                {
63982                    <TsTypeOperatorOp as VisitMutWith<V>>::visit_mut_with(op, visitor)
63983                };
63984                {
63985                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63986                };
63987            }
63988        }
63989    }
63990}
63991impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeOperatorOp {
63992    #[doc = "Calls [VisitMut`::visit_mut_ts_type_operator_op`] with `self`."]
63993    fn visit_mut_with(&mut self, visitor: &mut V) {
63994        <V as VisitMut>::visit_mut_ts_type_operator_op(visitor, self)
63995    }
63996
63997    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63998        match self {
63999            TsTypeOperatorOp::KeyOf => {}
64000            TsTypeOperatorOp::Unique => {}
64001            TsTypeOperatorOp::ReadOnly => {}
64002        }
64003    }
64004}
64005impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeParam {
64006    #[doc = "Calls [VisitMut`::visit_mut_ts_type_param`] with `self`."]
64007    fn visit_mut_with(&mut self, visitor: &mut V) {
64008        <V as VisitMut>::visit_mut_ts_type_param(visitor, self)
64009    }
64010
64011    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64012        match self {
64013            TsTypeParam {
64014                span,
64015                name,
64016                is_in,
64017                is_out,
64018                is_const,
64019                constraint,
64020                default,
64021            } => {
64022                {
64023                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
64024                };
64025                {
64026                    <Ident as VisitMutWith<V>>::visit_mut_with(name, visitor)
64027                };
64028                {
64029                    <Option<Box<TsType>> as VisitMutWith<V>>::visit_mut_with(constraint, visitor)
64030                };
64031                {
64032                    <Option<Box<TsType>> as VisitMutWith<V>>::visit_mut_with(default, visitor)
64033                };
64034            }
64035        }
64036    }
64037}
64038impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeParamDecl {
64039    #[doc = "Calls [VisitMut`::visit_mut_ts_type_param_decl`] with `self`."]
64040    fn visit_mut_with(&mut self, visitor: &mut V) {
64041        <V as VisitMut>::visit_mut_ts_type_param_decl(visitor, self)
64042    }
64043
64044    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64045        match self {
64046            TsTypeParamDecl { span, params } => {
64047                {
64048                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
64049                };
64050                {
64051                    <Vec<TsTypeParam> as VisitMutWith<V>>::visit_mut_with(params, visitor)
64052                };
64053            }
64054        }
64055    }
64056}
64057impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeParamInstantiation {
64058    #[doc = "Calls [VisitMut`::visit_mut_ts_type_param_instantiation`] with `self`."]
64059    fn visit_mut_with(&mut self, visitor: &mut V) {
64060        <V as VisitMut>::visit_mut_ts_type_param_instantiation(visitor, self)
64061    }
64062
64063    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64064        match self {
64065            TsTypeParamInstantiation { span, params } => {
64066                {
64067                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
64068                };
64069                {
64070                    <Vec<Box<TsType>> as VisitMutWith<V>>::visit_mut_with(params, visitor)
64071                };
64072            }
64073        }
64074    }
64075}
64076impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypePredicate {
64077    #[doc = "Calls [VisitMut`::visit_mut_ts_type_predicate`] with `self`."]
64078    fn visit_mut_with(&mut self, visitor: &mut V) {
64079        <V as VisitMut>::visit_mut_ts_type_predicate(visitor, self)
64080    }
64081
64082    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64083        match self {
64084            TsTypePredicate {
64085                span,
64086                asserts,
64087                param_name,
64088                type_ann,
64089            } => {
64090                {
64091                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
64092                };
64093                {
64094                    <TsThisTypeOrIdent as VisitMutWith<V>>::visit_mut_with(param_name, visitor)
64095                };
64096                {
64097                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
64098                };
64099            }
64100        }
64101    }
64102}
64103impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeQuery {
64104    #[doc = "Calls [VisitMut`::visit_mut_ts_type_query`] with `self`."]
64105    fn visit_mut_with(&mut self, visitor: &mut V) {
64106        <V as VisitMut>::visit_mut_ts_type_query(visitor, self)
64107    }
64108
64109    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64110        match self {
64111            TsTypeQuery {
64112                span,
64113                expr_name,
64114                type_args,
64115            } => {
64116                {
64117                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
64118                };
64119                {
64120                    <TsTypeQueryExpr as VisitMutWith<V>>::visit_mut_with(expr_name, visitor)
64121                };
64122                {
64123                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
64124                        type_args, visitor,
64125                    )
64126                };
64127            }
64128        }
64129    }
64130}
64131impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeQueryExpr {
64132    #[doc = "Calls [VisitMut`::visit_mut_ts_type_query_expr`] with `self`."]
64133    fn visit_mut_with(&mut self, visitor: &mut V) {
64134        <V as VisitMut>::visit_mut_ts_type_query_expr(visitor, self)
64135    }
64136
64137    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64138        match self {
64139            TsTypeQueryExpr::TsEntityName { 0: _field_0 } => {
64140                <TsEntityName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
64141            }
64142            TsTypeQueryExpr::Import { 0: _field_0 } => {
64143                <TsImportType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
64144            }
64145        }
64146    }
64147}
64148impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeRef {
64149    #[doc = "Calls [VisitMut`::visit_mut_ts_type_ref`] with `self`."]
64150    fn visit_mut_with(&mut self, visitor: &mut V) {
64151        <V as VisitMut>::visit_mut_ts_type_ref(visitor, self)
64152    }
64153
64154    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64155        match self {
64156            TsTypeRef {
64157                span,
64158                type_name,
64159                type_params,
64160            } => {
64161                {
64162                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
64163                };
64164                {
64165                    <TsEntityName as VisitMutWith<V>>::visit_mut_with(type_name, visitor)
64166                };
64167                {
64168                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
64169                        type_params,
64170                        visitor,
64171                    )
64172                };
64173            }
64174        }
64175    }
64176}
64177impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsUnionOrIntersectionType {
64178    #[doc = "Calls [VisitMut`::visit_mut_ts_union_or_intersection_type`] with `self`."]
64179    fn visit_mut_with(&mut self, visitor: &mut V) {
64180        <V as VisitMut>::visit_mut_ts_union_or_intersection_type(visitor, self)
64181    }
64182
64183    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64184        match self {
64185            TsUnionOrIntersectionType::TsUnionType { 0: _field_0 } => {
64186                <TsUnionType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
64187            }
64188            TsUnionOrIntersectionType::TsIntersectionType { 0: _field_0 } => {
64189                <TsIntersectionType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
64190            }
64191        }
64192    }
64193}
64194impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsUnionType {
64195    #[doc = "Calls [VisitMut`::visit_mut_ts_union_type`] with `self`."]
64196    fn visit_mut_with(&mut self, visitor: &mut V) {
64197        <V as VisitMut>::visit_mut_ts_union_type(visitor, self)
64198    }
64199
64200    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64201        match self {
64202            TsUnionType { span, types } => {
64203                {
64204                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
64205                };
64206                {
64207                    <Vec<Box<TsType>> as VisitMutWith<V>>::visit_mut_with(types, visitor)
64208                };
64209            }
64210        }
64211    }
64212}
64213impl<V: ?Sized + VisitMut> VisitMutWith<V> for UnaryExpr {
64214    #[doc = "Calls [VisitMut`::visit_mut_unary_expr`] with `self`."]
64215    fn visit_mut_with(&mut self, visitor: &mut V) {
64216        <V as VisitMut>::visit_mut_unary_expr(visitor, self)
64217    }
64218
64219    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64220        match self {
64221            UnaryExpr { span, op, arg } => {
64222                {
64223                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
64224                };
64225                {
64226                    <UnaryOp as VisitMutWith<V>>::visit_mut_with(op, visitor)
64227                };
64228                {
64229                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(arg, visitor)
64230                };
64231            }
64232        }
64233    }
64234}
64235impl<V: ?Sized + VisitMut> VisitMutWith<V> for UnaryOp {
64236    #[doc = "Calls [VisitMut`::visit_mut_unary_op`] with `self`."]
64237    fn visit_mut_with(&mut self, visitor: &mut V) {
64238        <V as VisitMut>::visit_mut_unary_op(visitor, self)
64239    }
64240
64241    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64242        match self {
64243            UnaryOp::Minus => {}
64244            UnaryOp::Plus => {}
64245            UnaryOp::Bang => {}
64246            UnaryOp::Tilde => {}
64247            UnaryOp::TypeOf => {}
64248            UnaryOp::Void => {}
64249            UnaryOp::Delete => {}
64250        }
64251    }
64252}
64253impl<V: ?Sized + VisitMut> VisitMutWith<V> for UpdateExpr {
64254    #[doc = "Calls [VisitMut`::visit_mut_update_expr`] with `self`."]
64255    fn visit_mut_with(&mut self, visitor: &mut V) {
64256        <V as VisitMut>::visit_mut_update_expr(visitor, self)
64257    }
64258
64259    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64260        match self {
64261            UpdateExpr {
64262                span,
64263                op,
64264                prefix,
64265                arg,
64266            } => {
64267                {
64268                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
64269                };
64270                {
64271                    <UpdateOp as VisitMutWith<V>>::visit_mut_with(op, visitor)
64272                };
64273                {
64274                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(arg, visitor)
64275                };
64276            }
64277        }
64278    }
64279}
64280impl<V: ?Sized + VisitMut> VisitMutWith<V> for UpdateOp {
64281    #[doc = "Calls [VisitMut`::visit_mut_update_op`] with `self`."]
64282    fn visit_mut_with(&mut self, visitor: &mut V) {
64283        <V as VisitMut>::visit_mut_update_op(visitor, self)
64284    }
64285
64286    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64287        match self {
64288            UpdateOp::PlusPlus => {}
64289            UpdateOp::MinusMinus => {}
64290        }
64291    }
64292}
64293impl<V: ?Sized + VisitMut> VisitMutWith<V> for UsingDecl {
64294    #[doc = "Calls [VisitMut`::visit_mut_using_decl`] with `self`."]
64295    fn visit_mut_with(&mut self, visitor: &mut V) {
64296        <V as VisitMut>::visit_mut_using_decl(visitor, self)
64297    }
64298
64299    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64300        match self {
64301            UsingDecl {
64302                span,
64303                is_await,
64304                decls,
64305            } => {
64306                {
64307                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
64308                };
64309                {
64310                    <Vec<VarDeclarator> as VisitMutWith<V>>::visit_mut_with(decls, visitor)
64311                };
64312            }
64313        }
64314    }
64315}
64316impl<V: ?Sized + VisitMut> VisitMutWith<V> for VarDecl {
64317    #[doc = "Calls [VisitMut`::visit_mut_var_decl`] with `self`."]
64318    fn visit_mut_with(&mut self, visitor: &mut V) {
64319        <V as VisitMut>::visit_mut_var_decl(visitor, self)
64320    }
64321
64322    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64323        match self {
64324            VarDecl {
64325                span,
64326                ctxt,
64327                kind,
64328                declare,
64329                decls,
64330            } => {
64331                {
64332                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
64333                };
64334                {
64335                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
64336                };
64337                {
64338                    <VarDeclKind as VisitMutWith<V>>::visit_mut_with(kind, visitor)
64339                };
64340                {
64341                    <Vec<VarDeclarator> as VisitMutWith<V>>::visit_mut_with(decls, visitor)
64342                };
64343            }
64344        }
64345    }
64346}
64347impl<V: ?Sized + VisitMut> VisitMutWith<V> for VarDeclKind {
64348    #[doc = "Calls [VisitMut`::visit_mut_var_decl_kind`] with `self`."]
64349    fn visit_mut_with(&mut self, visitor: &mut V) {
64350        <V as VisitMut>::visit_mut_var_decl_kind(visitor, self)
64351    }
64352
64353    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64354        match self {
64355            VarDeclKind::Var => {}
64356            VarDeclKind::Let => {}
64357            VarDeclKind::Const => {}
64358        }
64359    }
64360}
64361impl<V: ?Sized + VisitMut> VisitMutWith<V> for VarDeclOrExpr {
64362    #[doc = "Calls [VisitMut`::visit_mut_var_decl_or_expr`] with `self`."]
64363    fn visit_mut_with(&mut self, visitor: &mut V) {
64364        <V as VisitMut>::visit_mut_var_decl_or_expr(visitor, self)
64365    }
64366
64367    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64368        match self {
64369            VarDeclOrExpr::VarDecl { 0: _field_0 } => {
64370                <Box<VarDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
64371            }
64372            VarDeclOrExpr::Expr { 0: _field_0 } => {
64373                <Box<Expr> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
64374            }
64375        }
64376    }
64377}
64378impl<V: ?Sized + VisitMut> VisitMutWith<V> for VarDeclarator {
64379    #[doc = "Calls [VisitMut`::visit_mut_var_declarator`] with `self`."]
64380    fn visit_mut_with(&mut self, visitor: &mut V) {
64381        <V as VisitMut>::visit_mut_var_declarator(visitor, self)
64382    }
64383
64384    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64385        match self {
64386            VarDeclarator {
64387                span,
64388                name,
64389                init,
64390                definite,
64391            } => {
64392                {
64393                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
64394                };
64395                {
64396                    <Pat as VisitMutWith<V>>::visit_mut_with(name, visitor)
64397                };
64398                {
64399                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(init, visitor)
64400                };
64401            }
64402        }
64403    }
64404}
64405impl<V: ?Sized + VisitMut> VisitMutWith<V> for WhileStmt {
64406    #[doc = "Calls [VisitMut`::visit_mut_while_stmt`] with `self`."]
64407    fn visit_mut_with(&mut self, visitor: &mut V) {
64408        <V as VisitMut>::visit_mut_while_stmt(visitor, self)
64409    }
64410
64411    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64412        match self {
64413            WhileStmt { span, test, body } => {
64414                {
64415                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
64416                };
64417                {
64418                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(test, visitor)
64419                };
64420                {
64421                    <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
64422                };
64423            }
64424        }
64425    }
64426}
64427impl<V: ?Sized + VisitMut> VisitMutWith<V> for WithStmt {
64428    #[doc = "Calls [VisitMut`::visit_mut_with_stmt`] with `self`."]
64429    fn visit_mut_with(&mut self, visitor: &mut V) {
64430        <V as VisitMut>::visit_mut_with_stmt(visitor, self)
64431    }
64432
64433    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64434        match self {
64435            WithStmt { span, obj, body } => {
64436                {
64437                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
64438                };
64439                {
64440                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(obj, visitor)
64441                };
64442                {
64443                    <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
64444                };
64445            }
64446        }
64447    }
64448}
64449impl<V: ?Sized + VisitMut> VisitMutWith<V> for YieldExpr {
64450    #[doc = "Calls [VisitMut`::visit_mut_yield_expr`] with `self`."]
64451    fn visit_mut_with(&mut self, visitor: &mut V) {
64452        <V as VisitMut>::visit_mut_yield_expr(visitor, self)
64453    }
64454
64455    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64456        match self {
64457            YieldExpr {
64458                span,
64459                arg,
64460                delegate,
64461            } => {
64462                {
64463                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
64464                };
64465                {
64466                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(arg, visitor)
64467                };
64468            }
64469        }
64470    }
64471}
64472impl<V: ?Sized + VisitMut> VisitMutWith<V> for swc_atoms::Atom {
64473    #[doc = "Calls [VisitMut`::visit_mut_atom`] with `self`. (Extra impl)"]
64474    #[inline]
64475    fn visit_mut_with(&mut self, visitor: &mut V) {
64476        <V as VisitMut>::visit_mut_atom(visitor, self)
64477    }
64478
64479    #[inline]
64480    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64481        {}
64482    }
64483}
64484impl<V: ?Sized + VisitMut> VisitMutWith<V> for BigIntValue {
64485    #[doc = "Calls [VisitMut`::visit_mut_big_int_value`] with `self`. (Extra impl)"]
64486    #[inline]
64487    fn visit_mut_with(&mut self, visitor: &mut V) {
64488        <V as VisitMut>::visit_mut_big_int_value(visitor, self)
64489    }
64490
64491    #[inline]
64492    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64493        {}
64494    }
64495}
64496impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<ClassMember> {
64497    #[doc = "Calls [VisitMut`::visit_mut_class_members`] with `self`. (Extra impl)"]
64498    #[inline]
64499    fn visit_mut_with(&mut self, visitor: &mut V) {
64500        <V as VisitMut>::visit_mut_class_members(visitor, self)
64501    }
64502
64503    #[inline]
64504    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64505        self.iter_mut()
64506            .for_each(|item| <ClassMember as VisitMutWith<V>>::visit_mut_with(item, visitor))
64507    }
64508}
64509impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<Decorator> {
64510    #[doc = "Calls [VisitMut`::visit_mut_decorators`] with `self`. (Extra impl)"]
64511    #[inline]
64512    fn visit_mut_with(&mut self, visitor: &mut V) {
64513        <V as VisitMut>::visit_mut_decorators(visitor, self)
64514    }
64515
64516    #[inline]
64517    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64518        self.iter_mut()
64519            .for_each(|item| <Decorator as VisitMutWith<V>>::visit_mut_with(item, visitor))
64520    }
64521}
64522impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<ExportSpecifier> {
64523    #[doc = "Calls [VisitMut`::visit_mut_export_specifiers`] with `self`. (Extra impl)"]
64524    #[inline]
64525    fn visit_mut_with(&mut self, visitor: &mut V) {
64526        <V as VisitMut>::visit_mut_export_specifiers(visitor, self)
64527    }
64528
64529    #[inline]
64530    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64531        self.iter_mut()
64532            .for_each(|item| <ExportSpecifier as VisitMutWith<V>>::visit_mut_with(item, visitor))
64533    }
64534}
64535impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<ExprOrSpread> {
64536    #[doc = "Calls [VisitMut`::visit_mut_expr_or_spreads`] with `self`. (Extra impl)"]
64537    #[inline]
64538    fn visit_mut_with(&mut self, visitor: &mut V) {
64539        <V as VisitMut>::visit_mut_expr_or_spreads(visitor, self)
64540    }
64541
64542    #[inline]
64543    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64544        self.iter_mut()
64545            .for_each(|item| <ExprOrSpread as VisitMutWith<V>>::visit_mut_with(item, visitor))
64546    }
64547}
64548impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<Box<Expr>> {
64549    #[doc = "Calls [VisitMut`::visit_mut_exprs`] with `self`. (Extra impl)"]
64550    #[inline]
64551    fn visit_mut_with(&mut self, visitor: &mut V) {
64552        <V as VisitMut>::visit_mut_exprs(visitor, self)
64553    }
64554
64555    #[inline]
64556    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64557        self.iter_mut()
64558            .for_each(|item| <Box<Expr> as VisitMutWith<V>>::visit_mut_with(item, visitor))
64559    }
64560}
64561impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<ImportSpecifier> {
64562    #[doc = "Calls [VisitMut`::visit_mut_import_specifiers`] with `self`. (Extra impl)"]
64563    #[inline]
64564    fn visit_mut_with(&mut self, visitor: &mut V) {
64565        <V as VisitMut>::visit_mut_import_specifiers(visitor, self)
64566    }
64567
64568    #[inline]
64569    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64570        self.iter_mut()
64571            .for_each(|item| <ImportSpecifier as VisitMutWith<V>>::visit_mut_with(item, visitor))
64572    }
64573}
64574impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<ImportWithItem> {
64575    #[doc = "Calls [VisitMut`::visit_mut_import_with_items`] with `self`. (Extra impl)"]
64576    #[inline]
64577    fn visit_mut_with(&mut self, visitor: &mut V) {
64578        <V as VisitMut>::visit_mut_import_with_items(visitor, self)
64579    }
64580
64581    #[inline]
64582    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64583        self.iter_mut()
64584            .for_each(|item| <ImportWithItem as VisitMutWith<V>>::visit_mut_with(item, visitor))
64585    }
64586}
64587impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<JSXAttrOrSpread> {
64588    #[doc = "Calls [VisitMut`::visit_mut_jsx_attr_or_spreads`] with `self`. (Extra impl)"]
64589    #[inline]
64590    fn visit_mut_with(&mut self, visitor: &mut V) {
64591        <V as VisitMut>::visit_mut_jsx_attr_or_spreads(visitor, self)
64592    }
64593
64594    #[inline]
64595    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64596        self.iter_mut()
64597            .for_each(|item| <JSXAttrOrSpread as VisitMutWith<V>>::visit_mut_with(item, visitor))
64598    }
64599}
64600impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<JSXElementChild> {
64601    #[doc = "Calls [VisitMut`::visit_mut_jsx_element_childs`] with `self`. (Extra impl)"]
64602    #[inline]
64603    fn visit_mut_with(&mut self, visitor: &mut V) {
64604        <V as VisitMut>::visit_mut_jsx_element_childs(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| <JSXElementChild as VisitMutWith<V>>::visit_mut_with(item, visitor))
64611    }
64612}
64613impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<ModuleItem> {
64614    #[doc = "Calls [VisitMut`::visit_mut_module_items`] with `self`. (Extra impl)"]
64615    #[inline]
64616    fn visit_mut_with(&mut self, visitor: &mut V) {
64617        <V as VisitMut>::visit_mut_module_items(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| <ModuleItem as VisitMutWith<V>>::visit_mut_with(item, visitor))
64624    }
64625}
64626impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<ObjectPatProp> {
64627    #[doc = "Calls [VisitMut`::visit_mut_object_pat_props`] with `self`. (Extra impl)"]
64628    #[inline]
64629    fn visit_mut_with(&mut self, visitor: &mut V) {
64630        <V as VisitMut>::visit_mut_object_pat_props(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| <ObjectPatProp as VisitMutWith<V>>::visit_mut_with(item, visitor))
64637    }
64638}
64639impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Accessibility> {
64640    #[doc = "Calls [VisitMut`::visit_mut_opt_accessibility`] with `self`. (Extra impl)"]
64641    #[inline]
64642    fn visit_mut_with(&mut self, visitor: &mut V) {
64643        <V as VisitMut>::visit_mut_opt_accessibility(visitor, self)
64644    }
64645
64646    #[inline]
64647    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64648        match self {
64649            Some(inner) => <Accessibility as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64650            None => {}
64651        }
64652    }
64653}
64654impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<swc_atoms::Atom> {
64655    #[doc = "Calls [VisitMut`::visit_mut_opt_atom`] with `self`. (Extra impl)"]
64656    #[inline]
64657    fn visit_mut_with(&mut self, visitor: &mut V) {
64658        <V as VisitMut>::visit_mut_opt_atom(visitor, self)
64659    }
64660
64661    #[inline]
64662    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64663        match self {
64664            Some(inner) => <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64665            None => {}
64666        }
64667    }
64668}
64669impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<BlockStmt> {
64670    #[doc = "Calls [VisitMut`::visit_mut_opt_block_stmt`] with `self`. (Extra impl)"]
64671    #[inline]
64672    fn visit_mut_with(&mut self, visitor: &mut V) {
64673        <V as VisitMut>::visit_mut_opt_block_stmt(visitor, self)
64674    }
64675
64676    #[inline]
64677    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64678        match self {
64679            Some(inner) => <BlockStmt as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64680            None => {}
64681        }
64682    }
64683}
64684impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<CatchClause> {
64685    #[doc = "Calls [VisitMut`::visit_mut_opt_catch_clause`] with `self`. (Extra impl)"]
64686    #[inline]
64687    fn visit_mut_with(&mut self, visitor: &mut V) {
64688        <V as VisitMut>::visit_mut_opt_catch_clause(visitor, self)
64689    }
64690
64691    #[inline]
64692    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64693        match self {
64694            Some(inner) => <CatchClause as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64695            None => {}
64696        }
64697    }
64698}
64699impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Box<Expr>> {
64700    #[doc = "Calls [VisitMut`::visit_mut_opt_expr`] with `self`. (Extra impl)"]
64701    #[inline]
64702    fn visit_mut_with(&mut self, visitor: &mut V) {
64703        <V as VisitMut>::visit_mut_opt_expr(visitor, self)
64704    }
64705
64706    #[inline]
64707    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64708        match self {
64709            Some(inner) => <Box<Expr> as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64710            None => {}
64711        }
64712    }
64713}
64714impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<ExprOrSpread> {
64715    #[doc = "Calls [VisitMut`::visit_mut_opt_expr_or_spread`] with `self`. (Extra impl)"]
64716    #[inline]
64717    fn visit_mut_with(&mut self, visitor: &mut V) {
64718        <V as VisitMut>::visit_mut_opt_expr_or_spread(visitor, self)
64719    }
64720
64721    #[inline]
64722    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64723        match self {
64724            Some(inner) => <ExprOrSpread as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64725            None => {}
64726        }
64727    }
64728}
64729impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Vec<ExprOrSpread>> {
64730    #[doc = "Calls [VisitMut`::visit_mut_opt_expr_or_spreads`] with `self`. (Extra impl)"]
64731    #[inline]
64732    fn visit_mut_with(&mut self, visitor: &mut V) {
64733        <V as VisitMut>::visit_mut_opt_expr_or_spreads(visitor, self)
64734    }
64735
64736    #[inline]
64737    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64738        match self {
64739            Some(inner) => <Vec<ExprOrSpread> as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64740            None => {}
64741        }
64742    }
64743}
64744impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Ident> {
64745    #[doc = "Calls [VisitMut`::visit_mut_opt_ident`] with `self`. (Extra impl)"]
64746    #[inline]
64747    fn visit_mut_with(&mut self, visitor: &mut V) {
64748        <V as VisitMut>::visit_mut_opt_ident(visitor, self)
64749    }
64750
64751    #[inline]
64752    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64753        match self {
64754            Some(inner) => <Ident as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64755            None => {}
64756        }
64757    }
64758}
64759impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<JSXAttrValue> {
64760    #[doc = "Calls [VisitMut`::visit_mut_opt_jsx_attr_value`] with `self`. (Extra impl)"]
64761    #[inline]
64762    fn visit_mut_with(&mut self, visitor: &mut V) {
64763        <V as VisitMut>::visit_mut_opt_jsx_attr_value(visitor, self)
64764    }
64765
64766    #[inline]
64767    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64768        match self {
64769            Some(inner) => <JSXAttrValue as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64770            None => {}
64771        }
64772    }
64773}
64774impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<JSXClosingElement> {
64775    #[doc = "Calls [VisitMut`::visit_mut_opt_jsx_closing_element`] with `self`. (Extra impl)"]
64776    #[inline]
64777    fn visit_mut_with(&mut self, visitor: &mut V) {
64778        <V as VisitMut>::visit_mut_opt_jsx_closing_element(visitor, self)
64779    }
64780
64781    #[inline]
64782    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64783        match self {
64784            Some(inner) => <JSXClosingElement as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64785            None => {}
64786        }
64787    }
64788}
64789impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<ModuleExportName> {
64790    #[doc = "Calls [VisitMut`::visit_mut_opt_module_export_name`] with `self`. (Extra impl)"]
64791    #[inline]
64792    fn visit_mut_with(&mut self, visitor: &mut V) {
64793        <V as VisitMut>::visit_mut_opt_module_export_name(visitor, self)
64794    }
64795
64796    #[inline]
64797    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64798        match self {
64799            Some(inner) => <ModuleExportName as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64800            None => {}
64801        }
64802    }
64803}
64804impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Box<ObjectLit>> {
64805    #[doc = "Calls [VisitMut`::visit_mut_opt_object_lit`] with `self`. (Extra impl)"]
64806    #[inline]
64807    fn visit_mut_with(&mut self, visitor: &mut V) {
64808        <V as VisitMut>::visit_mut_opt_object_lit(visitor, self)
64809    }
64810
64811    #[inline]
64812    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64813        match self {
64814            Some(inner) => <Box<ObjectLit> as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64815            None => {}
64816        }
64817    }
64818}
64819impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Pat> {
64820    #[doc = "Calls [VisitMut`::visit_mut_opt_pat`] with `self`. (Extra impl)"]
64821    #[inline]
64822    fn visit_mut_with(&mut self, visitor: &mut V) {
64823        <V as VisitMut>::visit_mut_opt_pat(visitor, self)
64824    }
64825
64826    #[inline]
64827    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64828        match self {
64829            Some(inner) => <Pat as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64830            None => {}
64831        }
64832    }
64833}
64834impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<swc_common::Span> {
64835    #[doc = "Calls [VisitMut`::visit_mut_opt_span`] with `self`. (Extra impl)"]
64836    #[inline]
64837    fn visit_mut_with(&mut self, visitor: &mut V) {
64838        <V as VisitMut>::visit_mut_opt_span(visitor, self)
64839    }
64840
64841    #[inline]
64842    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64843        match self {
64844            Some(inner) => <swc_common::Span as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64845            None => {}
64846        }
64847    }
64848}
64849impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Box<Stmt>> {
64850    #[doc = "Calls [VisitMut`::visit_mut_opt_stmt`] with `self`. (Extra impl)"]
64851    #[inline]
64852    fn visit_mut_with(&mut self, visitor: &mut V) {
64853        <V as VisitMut>::visit_mut_opt_stmt(visitor, self)
64854    }
64855
64856    #[inline]
64857    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64858        match self {
64859            Some(inner) => <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64860            None => {}
64861        }
64862    }
64863}
64864impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Box<Str>> {
64865    #[doc = "Calls [VisitMut`::visit_mut_opt_str`] with `self`. (Extra impl)"]
64866    #[inline]
64867    fn visit_mut_with(&mut self, visitor: &mut V) {
64868        <V as VisitMut>::visit_mut_opt_str(visitor, self)
64869    }
64870
64871    #[inline]
64872    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64873        match self {
64874            Some(inner) => <Box<Str> as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64875            None => {}
64876        }
64877    }
64878}
64879impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<TruePlusMinus> {
64880    #[doc = "Calls [VisitMut`::visit_mut_opt_true_plus_minus`] with `self`. (Extra impl)"]
64881    #[inline]
64882    fn visit_mut_with(&mut self, visitor: &mut V) {
64883        <V as VisitMut>::visit_mut_opt_true_plus_minus(visitor, self)
64884    }
64885
64886    #[inline]
64887    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64888        match self {
64889            Some(inner) => <TruePlusMinus as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64890            None => {}
64891        }
64892    }
64893}
64894impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<TsEntityName> {
64895    #[doc = "Calls [VisitMut`::visit_mut_opt_ts_entity_name`] with `self`. (Extra impl)"]
64896    #[inline]
64897    fn visit_mut_with(&mut self, visitor: &mut V) {
64898        <V as VisitMut>::visit_mut_opt_ts_entity_name(visitor, self)
64899    }
64900
64901    #[inline]
64902    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64903        match self {
64904            Some(inner) => <TsEntityName as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64905            None => {}
64906        }
64907    }
64908}
64909impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<TsImportCallOptions> {
64910    #[doc = "Calls [VisitMut`::visit_mut_opt_ts_import_call_options`] with `self`. (Extra impl)"]
64911    #[inline]
64912    fn visit_mut_with(&mut self, visitor: &mut V) {
64913        <V as VisitMut>::visit_mut_opt_ts_import_call_options(visitor, self)
64914    }
64915
64916    #[inline]
64917    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64918        match self {
64919            Some(inner) => <TsImportCallOptions as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64920            None => {}
64921        }
64922    }
64923}
64924impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<TsNamespaceBody> {
64925    #[doc = "Calls [VisitMut`::visit_mut_opt_ts_namespace_body`] with `self`. (Extra impl)"]
64926    #[inline]
64927    fn visit_mut_with(&mut self, visitor: &mut V) {
64928        <V as VisitMut>::visit_mut_opt_ts_namespace_body(visitor, self)
64929    }
64930
64931    #[inline]
64932    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64933        match self {
64934            Some(inner) => <TsNamespaceBody as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64935            None => {}
64936        }
64937    }
64938}
64939impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Box<TsType>> {
64940    #[doc = "Calls [VisitMut`::visit_mut_opt_ts_type`] with `self`. (Extra impl)"]
64941    #[inline]
64942    fn visit_mut_with(&mut self, visitor: &mut V) {
64943        <V as VisitMut>::visit_mut_opt_ts_type(visitor, self)
64944    }
64945
64946    #[inline]
64947    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64948        match self {
64949            Some(inner) => <Box<TsType> as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64950            None => {}
64951        }
64952    }
64953}
64954impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Box<TsTypeAnn>> {
64955    #[doc = "Calls [VisitMut`::visit_mut_opt_ts_type_ann`] with `self`. (Extra impl)"]
64956    #[inline]
64957    fn visit_mut_with(&mut self, visitor: &mut V) {
64958        <V as VisitMut>::visit_mut_opt_ts_type_ann(visitor, self)
64959    }
64960
64961    #[inline]
64962    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64963        match self {
64964            Some(inner) => <Box<TsTypeAnn> as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64965            None => {}
64966        }
64967    }
64968}
64969impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Box<TsTypeParamDecl>> {
64970    #[doc = "Calls [VisitMut`::visit_mut_opt_ts_type_param_decl`] with `self`. (Extra impl)"]
64971    #[inline]
64972    fn visit_mut_with(&mut self, visitor: &mut V) {
64973        <V as VisitMut>::visit_mut_opt_ts_type_param_decl(visitor, self)
64974    }
64975
64976    #[inline]
64977    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64978        match self {
64979            Some(inner) => {
64980                <Box<TsTypeParamDecl> as VisitMutWith<V>>::visit_mut_with(inner, visitor)
64981            }
64982            None => {}
64983        }
64984    }
64985}
64986impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Box<TsTypeParamInstantiation>> {
64987    #[doc = "Calls [VisitMut`::visit_mut_opt_ts_type_param_instantiation`] with `self`. (Extra \
64988             impl)"]
64989    #[inline]
64990    fn visit_mut_with(&mut self, visitor: &mut V) {
64991        <V as VisitMut>::visit_mut_opt_ts_type_param_instantiation(visitor, self)
64992    }
64993
64994    #[inline]
64995    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64996        match self {
64997            Some(inner) => {
64998                <Box<TsTypeParamInstantiation> as VisitMutWith<V>>::visit_mut_with(inner, visitor)
64999            }
65000            None => {}
65001        }
65002    }
65003}
65004impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<VarDeclOrExpr> {
65005    #[doc = "Calls [VisitMut`::visit_mut_opt_var_decl_or_expr`] with `self`. (Extra impl)"]
65006    #[inline]
65007    fn visit_mut_with(&mut self, visitor: &mut V) {
65008        <V as VisitMut>::visit_mut_opt_var_decl_or_expr(visitor, self)
65009    }
65010
65011    #[inline]
65012    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65013        match self {
65014            Some(inner) => <VarDeclOrExpr as VisitMutWith<V>>::visit_mut_with(inner, visitor),
65015            None => {}
65016        }
65017    }
65018}
65019impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<Option<ExprOrSpread>> {
65020    #[doc = "Calls [VisitMut`::visit_mut_opt_vec_expr_or_spreads`] with `self`. (Extra impl)"]
65021    #[inline]
65022    fn visit_mut_with(&mut self, visitor: &mut V) {
65023        <V as VisitMut>::visit_mut_opt_vec_expr_or_spreads(visitor, self)
65024    }
65025
65026    #[inline]
65027    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65028        self.iter_mut().for_each(|item| {
65029            <Option<ExprOrSpread> as VisitMutWith<V>>::visit_mut_with(item, visitor)
65030        })
65031    }
65032}
65033impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<Option<Pat>> {
65034    #[doc = "Calls [VisitMut`::visit_mut_opt_vec_pats`] with `self`. (Extra impl)"]
65035    #[inline]
65036    fn visit_mut_with(&mut self, visitor: &mut V) {
65037        <V as VisitMut>::visit_mut_opt_vec_pats(visitor, self)
65038    }
65039
65040    #[inline]
65041    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65042        self.iter_mut()
65043            .for_each(|item| <Option<Pat> as VisitMutWith<V>>::visit_mut_with(item, visitor))
65044    }
65045}
65046impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<ParamOrTsParamProp> {
65047    #[doc = "Calls [VisitMut`::visit_mut_param_or_ts_param_props`] with `self`. (Extra impl)"]
65048    #[inline]
65049    fn visit_mut_with(&mut self, visitor: &mut V) {
65050        <V as VisitMut>::visit_mut_param_or_ts_param_props(visitor, self)
65051    }
65052
65053    #[inline]
65054    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65055        self.iter_mut()
65056            .for_each(|item| <ParamOrTsParamProp as VisitMutWith<V>>::visit_mut_with(item, visitor))
65057    }
65058}
65059impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<Param> {
65060    #[doc = "Calls [VisitMut`::visit_mut_params`] with `self`. (Extra impl)"]
65061    #[inline]
65062    fn visit_mut_with(&mut self, visitor: &mut V) {
65063        <V as VisitMut>::visit_mut_params(visitor, self)
65064    }
65065
65066    #[inline]
65067    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65068        self.iter_mut()
65069            .for_each(|item| <Param as VisitMutWith<V>>::visit_mut_with(item, visitor))
65070    }
65071}
65072impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<Pat> {
65073    #[doc = "Calls [VisitMut`::visit_mut_pats`] with `self`. (Extra impl)"]
65074    #[inline]
65075    fn visit_mut_with(&mut self, visitor: &mut V) {
65076        <V as VisitMut>::visit_mut_pats(visitor, self)
65077    }
65078
65079    #[inline]
65080    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65081        self.iter_mut()
65082            .for_each(|item| <Pat as VisitMutWith<V>>::visit_mut_with(item, visitor))
65083    }
65084}
65085impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<PropOrSpread> {
65086    #[doc = "Calls [VisitMut`::visit_mut_prop_or_spreads`] with `self`. (Extra impl)"]
65087    #[inline]
65088    fn visit_mut_with(&mut self, visitor: &mut V) {
65089        <V as VisitMut>::visit_mut_prop_or_spreads(visitor, self)
65090    }
65091
65092    #[inline]
65093    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65094        self.iter_mut()
65095            .for_each(|item| <PropOrSpread as VisitMutWith<V>>::visit_mut_with(item, visitor))
65096    }
65097}
65098impl<V: ?Sized + VisitMut> VisitMutWith<V> for swc_common::Span {
65099    #[doc = "Calls [VisitMut`::visit_mut_span`] with `self`. (Extra impl)"]
65100    #[inline]
65101    fn visit_mut_with(&mut self, visitor: &mut V) {
65102        <V as VisitMut>::visit_mut_span(visitor, self)
65103    }
65104
65105    #[inline]
65106    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65107        {}
65108    }
65109}
65110impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<Stmt> {
65111    #[doc = "Calls [VisitMut`::visit_mut_stmts`] with `self`. (Extra impl)"]
65112    #[inline]
65113    fn visit_mut_with(&mut self, visitor: &mut V) {
65114        <V as VisitMut>::visit_mut_stmts(visitor, self)
65115    }
65116
65117    #[inline]
65118    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65119        self.iter_mut()
65120            .for_each(|item| <Stmt as VisitMutWith<V>>::visit_mut_with(item, visitor))
65121    }
65122}
65123impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<SwitchCase> {
65124    #[doc = "Calls [VisitMut`::visit_mut_switch_cases`] with `self`. (Extra impl)"]
65125    #[inline]
65126    fn visit_mut_with(&mut self, visitor: &mut V) {
65127        <V as VisitMut>::visit_mut_switch_cases(visitor, self)
65128    }
65129
65130    #[inline]
65131    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65132        self.iter_mut()
65133            .for_each(|item| <SwitchCase as VisitMutWith<V>>::visit_mut_with(item, visitor))
65134    }
65135}
65136impl<V: ?Sized + VisitMut> VisitMutWith<V> for swc_common::SyntaxContext {
65137    #[doc = "Calls [VisitMut`::visit_mut_syntax_context`] with `self`. (Extra impl)"]
65138    #[inline]
65139    fn visit_mut_with(&mut self, visitor: &mut V) {
65140        <V as VisitMut>::visit_mut_syntax_context(visitor, self)
65141    }
65142
65143    #[inline]
65144    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65145        {}
65146    }
65147}
65148impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<TplElement> {
65149    #[doc = "Calls [VisitMut`::visit_mut_tpl_elements`] with `self`. (Extra impl)"]
65150    #[inline]
65151    fn visit_mut_with(&mut self, visitor: &mut V) {
65152        <V as VisitMut>::visit_mut_tpl_elements(visitor, self)
65153    }
65154
65155    #[inline]
65156    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65157        self.iter_mut()
65158            .for_each(|item| <TplElement as VisitMutWith<V>>::visit_mut_with(item, visitor))
65159    }
65160}
65161impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<TsEnumMember> {
65162    #[doc = "Calls [VisitMut`::visit_mut_ts_enum_members`] with `self`. (Extra impl)"]
65163    #[inline]
65164    fn visit_mut_with(&mut self, visitor: &mut V) {
65165        <V as VisitMut>::visit_mut_ts_enum_members(visitor, self)
65166    }
65167
65168    #[inline]
65169    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65170        self.iter_mut()
65171            .for_each(|item| <TsEnumMember as VisitMutWith<V>>::visit_mut_with(item, visitor))
65172    }
65173}
65174impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<TsExprWithTypeArgs> {
65175    #[doc = "Calls [VisitMut`::visit_mut_ts_expr_with_type_argss`] with `self`. (Extra impl)"]
65176    #[inline]
65177    fn visit_mut_with(&mut self, visitor: &mut V) {
65178        <V as VisitMut>::visit_mut_ts_expr_with_type_argss(visitor, self)
65179    }
65180
65181    #[inline]
65182    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65183        self.iter_mut()
65184            .for_each(|item| <TsExprWithTypeArgs as VisitMutWith<V>>::visit_mut_with(item, visitor))
65185    }
65186}
65187impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<TsFnParam> {
65188    #[doc = "Calls [VisitMut`::visit_mut_ts_fn_params`] with `self`. (Extra impl)"]
65189    #[inline]
65190    fn visit_mut_with(&mut self, visitor: &mut V) {
65191        <V as VisitMut>::visit_mut_ts_fn_params(visitor, self)
65192    }
65193
65194    #[inline]
65195    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65196        self.iter_mut()
65197            .for_each(|item| <TsFnParam as VisitMutWith<V>>::visit_mut_with(item, visitor))
65198    }
65199}
65200impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<TsTupleElement> {
65201    #[doc = "Calls [VisitMut`::visit_mut_ts_tuple_elements`] with `self`. (Extra impl)"]
65202    #[inline]
65203    fn visit_mut_with(&mut self, visitor: &mut V) {
65204        <V as VisitMut>::visit_mut_ts_tuple_elements(visitor, self)
65205    }
65206
65207    #[inline]
65208    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65209        self.iter_mut()
65210            .for_each(|item| <TsTupleElement as VisitMutWith<V>>::visit_mut_with(item, visitor))
65211    }
65212}
65213impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<TsTypeElement> {
65214    #[doc = "Calls [VisitMut`::visit_mut_ts_type_elements`] with `self`. (Extra impl)"]
65215    #[inline]
65216    fn visit_mut_with(&mut self, visitor: &mut V) {
65217        <V as VisitMut>::visit_mut_ts_type_elements(visitor, self)
65218    }
65219
65220    #[inline]
65221    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65222        self.iter_mut()
65223            .for_each(|item| <TsTypeElement as VisitMutWith<V>>::visit_mut_with(item, visitor))
65224    }
65225}
65226impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<TsTypeParam> {
65227    #[doc = "Calls [VisitMut`::visit_mut_ts_type_params`] with `self`. (Extra impl)"]
65228    #[inline]
65229    fn visit_mut_with(&mut self, visitor: &mut V) {
65230        <V as VisitMut>::visit_mut_ts_type_params(visitor, self)
65231    }
65232
65233    #[inline]
65234    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65235        self.iter_mut()
65236            .for_each(|item| <TsTypeParam as VisitMutWith<V>>::visit_mut_with(item, visitor))
65237    }
65238}
65239impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<Box<TsType>> {
65240    #[doc = "Calls [VisitMut`::visit_mut_ts_types`] with `self`. (Extra impl)"]
65241    #[inline]
65242    fn visit_mut_with(&mut self, visitor: &mut V) {
65243        <V as VisitMut>::visit_mut_ts_types(visitor, self)
65244    }
65245
65246    #[inline]
65247    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65248        self.iter_mut()
65249            .for_each(|item| <Box<TsType> as VisitMutWith<V>>::visit_mut_with(item, visitor))
65250    }
65251}
65252impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<VarDeclarator> {
65253    #[doc = "Calls [VisitMut`::visit_mut_var_declarators`] with `self`. (Extra impl)"]
65254    #[inline]
65255    fn visit_mut_with(&mut self, visitor: &mut V) {
65256        <V as VisitMut>::visit_mut_var_declarators(visitor, self)
65257    }
65258
65259    #[inline]
65260    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65261        self.iter_mut()
65262            .for_each(|item| <VarDeclarator as VisitMutWith<V>>::visit_mut_with(item, visitor))
65263    }
65264}
65265impl<V, T> VisitMutWith<V> for std::boxed::Box<T>
65266where
65267    V: ?Sized + VisitMut,
65268    T: VisitMutWith<V>,
65269{
65270    #[inline]
65271    fn visit_mut_with(&mut self, visitor: &mut V) {
65272        let v = <T as VisitMutWith<V>>::visit_mut_with(&mut **self, visitor);
65273        v
65274    }
65275
65276    #[inline]
65277    fn visit_mut_children_with(&mut self, visitor: &mut V) {
65278        let v = <T as VisitMutWith<V>>::visit_mut_children_with(&mut **self, visitor);
65279        v
65280    }
65281}
65282#[doc = r" A visitor trait for traversing the AST."]
65283#[cfg(any(docsrs, feature = "path"))]
65284#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
65285pub trait VisitMutAstPath {
65286    #[doc = "Visit a node of type `Accessibility`.\n\nBy default, this method calls \
65287             [`Accessibility::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65288             to call it manually."]
65289    #[inline]
65290    fn visit_mut_accessibility(&mut self, node: &mut Accessibility, __ast_path: &mut AstKindPath) {
65291        <Accessibility as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65292            node, self, __ast_path,
65293        )
65294    }
65295    #[doc = "Visit a node of type `ArrayLit`.\n\nBy default, this method calls \
65296             [`ArrayLit::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65297             call it manually."]
65298    #[inline]
65299    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit, __ast_path: &mut AstKindPath) {
65300        <ArrayLit as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65301            node, self, __ast_path,
65302        )
65303    }
65304    #[doc = "Visit a node of type `ArrayPat`.\n\nBy default, this method calls \
65305             [`ArrayPat::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65306             call it manually."]
65307    #[inline]
65308    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat, __ast_path: &mut AstKindPath) {
65309        <ArrayPat as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65310            node, self, __ast_path,
65311        )
65312    }
65313    #[doc = "Visit a node of type `ArrowExpr`.\n\nBy default, this method calls \
65314             [`ArrowExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65315             call it manually."]
65316    #[inline]
65317    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr, __ast_path: &mut AstKindPath) {
65318        <ArrowExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65319            node, self, __ast_path,
65320        )
65321    }
65322    #[doc = "Visit a node of type `AssignExpr`.\n\nBy default, this method calls \
65323             [`AssignExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65324             call it manually."]
65325    #[inline]
65326    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr, __ast_path: &mut AstKindPath) {
65327        <AssignExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65328            node, self, __ast_path,
65329        )
65330    }
65331    #[doc = "Visit a node of type `AssignOp`.\n\nBy default, this method calls \
65332             [`AssignOp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65333             call it manually."]
65334    #[inline]
65335    fn visit_mut_assign_op(&mut self, node: &mut AssignOp, __ast_path: &mut AstKindPath) {
65336        <AssignOp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65337            node, self, __ast_path,
65338        )
65339    }
65340    #[doc = "Visit a node of type `AssignPat`.\n\nBy default, this method calls \
65341             [`AssignPat::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65342             call it manually."]
65343    #[inline]
65344    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat, __ast_path: &mut AstKindPath) {
65345        <AssignPat as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65346            node, self, __ast_path,
65347        )
65348    }
65349    #[doc = "Visit a node of type `AssignPatProp`.\n\nBy default, this method calls \
65350             [`AssignPatProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65351             to call it manually."]
65352    #[inline]
65353    fn visit_mut_assign_pat_prop(
65354        &mut self,
65355        node: &mut AssignPatProp,
65356        __ast_path: &mut AstKindPath,
65357    ) {
65358        <AssignPatProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65359            node, self, __ast_path,
65360        )
65361    }
65362    #[doc = "Visit a node of type `AssignProp`.\n\nBy default, this method calls \
65363             [`AssignProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65364             call it manually."]
65365    #[inline]
65366    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp, __ast_path: &mut AstKindPath) {
65367        <AssignProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65368            node, self, __ast_path,
65369        )
65370    }
65371    #[doc = "Visit a node of type `AssignTarget`.\n\nBy default, this method calls \
65372             [`AssignTarget::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65373             to call it manually."]
65374    #[inline]
65375    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget, __ast_path: &mut AstKindPath) {
65376        <AssignTarget as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65377            node, self, __ast_path,
65378        )
65379    }
65380    #[doc = "Visit a node of type `AssignTargetPat`.\n\nBy default, this method calls \
65381             [`AssignTargetPat::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65382             need to call it manually."]
65383    #[inline]
65384    fn visit_mut_assign_target_pat(
65385        &mut self,
65386        node: &mut AssignTargetPat,
65387        __ast_path: &mut AstKindPath,
65388    ) {
65389        <AssignTargetPat as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65390            node, self, __ast_path,
65391        )
65392    }
65393    #[doc = "Visit a node of type `swc_atoms :: Atom`.\n\nBy default, this method calls \
65394             [`swc_atoms :: Atom::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65395             need to call it manually."]
65396    #[inline]
65397    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom, __ast_path: &mut AstKindPath) {
65398        <swc_atoms::Atom as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65399            node, self, __ast_path,
65400        )
65401    }
65402    #[doc = "Visit a node of type `AutoAccessor`.\n\nBy default, this method calls \
65403             [`AutoAccessor::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65404             to call it manually."]
65405    #[inline]
65406    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor, __ast_path: &mut AstKindPath) {
65407        <AutoAccessor as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65408            node, self, __ast_path,
65409        )
65410    }
65411    #[doc = "Visit a node of type `AwaitExpr`.\n\nBy default, this method calls \
65412             [`AwaitExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65413             call it manually."]
65414    #[inline]
65415    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr, __ast_path: &mut AstKindPath) {
65416        <AwaitExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65417            node, self, __ast_path,
65418        )
65419    }
65420    #[doc = "Visit a node of type `BigInt`.\n\nBy default, this method calls \
65421             [`BigInt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65422             call it manually."]
65423    #[inline]
65424    fn visit_mut_big_int(&mut self, node: &mut BigInt, __ast_path: &mut AstKindPath) {
65425        <BigInt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65426            node, self, __ast_path,
65427        )
65428    }
65429    #[doc = "Visit a node of type `BigIntValue`.\n\nBy default, this method calls \
65430             [`BigIntValue::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65431             to call it manually."]
65432    #[inline]
65433    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue, __ast_path: &mut AstKindPath) {
65434        <BigIntValue as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65435            node, self, __ast_path,
65436        )
65437    }
65438    #[doc = "Visit a node of type `BinExpr`.\n\nBy default, this method calls \
65439             [`BinExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65440             call it manually."]
65441    #[inline]
65442    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr, __ast_path: &mut AstKindPath) {
65443        <BinExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65444            node, self, __ast_path,
65445        )
65446    }
65447    #[doc = "Visit a node of type `BinaryOp`.\n\nBy default, this method calls \
65448             [`BinaryOp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65449             call it manually."]
65450    #[inline]
65451    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp, __ast_path: &mut AstKindPath) {
65452        <BinaryOp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65453            node, self, __ast_path,
65454        )
65455    }
65456    #[doc = "Visit a node of type `BindingIdent`.\n\nBy default, this method calls \
65457             [`BindingIdent::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65458             to call it manually."]
65459    #[inline]
65460    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent, __ast_path: &mut AstKindPath) {
65461        <BindingIdent as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65462            node, self, __ast_path,
65463        )
65464    }
65465    #[doc = "Visit a node of type `BlockStmt`.\n\nBy default, this method calls \
65466             [`BlockStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65467             call it manually."]
65468    #[inline]
65469    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt, __ast_path: &mut AstKindPath) {
65470        <BlockStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65471            node, self, __ast_path,
65472        )
65473    }
65474    #[doc = "Visit a node of type `BlockStmtOrExpr`.\n\nBy default, this method calls \
65475             [`BlockStmtOrExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65476             need to call it manually."]
65477    #[inline]
65478    fn visit_mut_block_stmt_or_expr(
65479        &mut self,
65480        node: &mut BlockStmtOrExpr,
65481        __ast_path: &mut AstKindPath,
65482    ) {
65483        <BlockStmtOrExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65484            node, self, __ast_path,
65485        )
65486    }
65487    #[doc = "Visit a node of type `Bool`.\n\nBy default, this method calls \
65488             [`Bool::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
65489             it manually."]
65490    #[inline]
65491    fn visit_mut_bool(&mut self, node: &mut Bool, __ast_path: &mut AstKindPath) {
65492        <Bool as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65493            node, self, __ast_path,
65494        )
65495    }
65496    #[doc = "Visit a node of type `BreakStmt`.\n\nBy default, this method calls \
65497             [`BreakStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65498             call it manually."]
65499    #[inline]
65500    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt, __ast_path: &mut AstKindPath) {
65501        <BreakStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65502            node, self, __ast_path,
65503        )
65504    }
65505    #[doc = "Visit a node of type `CallExpr`.\n\nBy default, this method calls \
65506             [`CallExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65507             call it manually."]
65508    #[inline]
65509    fn visit_mut_call_expr(&mut self, node: &mut CallExpr, __ast_path: &mut AstKindPath) {
65510        <CallExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65511            node, self, __ast_path,
65512        )
65513    }
65514    #[doc = "Visit a node of type `Callee`.\n\nBy default, this method calls \
65515             [`Callee::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65516             call it manually."]
65517    #[inline]
65518    fn visit_mut_callee(&mut self, node: &mut Callee, __ast_path: &mut AstKindPath) {
65519        <Callee as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65520            node, self, __ast_path,
65521        )
65522    }
65523    #[doc = "Visit a node of type `CatchClause`.\n\nBy default, this method calls \
65524             [`CatchClause::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65525             to call it manually."]
65526    #[inline]
65527    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause, __ast_path: &mut AstKindPath) {
65528        <CatchClause as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65529            node, self, __ast_path,
65530        )
65531    }
65532    #[doc = "Visit a node of type `Class`.\n\nBy default, this method calls \
65533             [`Class::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
65534             it manually."]
65535    #[inline]
65536    fn visit_mut_class(&mut self, node: &mut Class, __ast_path: &mut AstKindPath) {
65537        <Class as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65538            node, self, __ast_path,
65539        )
65540    }
65541    #[doc = "Visit a node of type `ClassDecl`.\n\nBy default, this method calls \
65542             [`ClassDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65543             call it manually."]
65544    #[inline]
65545    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl, __ast_path: &mut AstKindPath) {
65546        <ClassDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65547            node, self, __ast_path,
65548        )
65549    }
65550    #[doc = "Visit a node of type `ClassExpr`.\n\nBy default, this method calls \
65551             [`ClassExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65552             call it manually."]
65553    #[inline]
65554    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr, __ast_path: &mut AstKindPath) {
65555        <ClassExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65556            node, self, __ast_path,
65557        )
65558    }
65559    #[doc = "Visit a node of type `ClassMember`.\n\nBy default, this method calls \
65560             [`ClassMember::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65561             to call it manually."]
65562    #[inline]
65563    fn visit_mut_class_member(&mut self, node: &mut ClassMember, __ast_path: &mut AstKindPath) {
65564        <ClassMember as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65565            node, self, __ast_path,
65566        )
65567    }
65568    #[doc = "Visit a node of type `Vec < ClassMember >`.\n\nBy default, this method calls [`Vec < \
65569             ClassMember >::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65570             to call it manually."]
65571    #[inline]
65572    fn visit_mut_class_members(
65573        &mut self,
65574        node: &mut Vec<ClassMember>,
65575        __ast_path: &mut AstKindPath,
65576    ) {
65577        <Vec<ClassMember> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65578            node, self, __ast_path,
65579        )
65580    }
65581    #[doc = "Visit a node of type `ClassMethod`.\n\nBy default, this method calls \
65582             [`ClassMethod::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65583             to call it manually."]
65584    #[inline]
65585    fn visit_mut_class_method(&mut self, node: &mut ClassMethod, __ast_path: &mut AstKindPath) {
65586        <ClassMethod as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65587            node, self, __ast_path,
65588        )
65589    }
65590    #[doc = "Visit a node of type `ClassProp`.\n\nBy default, this method calls \
65591             [`ClassProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65592             call it manually."]
65593    #[inline]
65594    fn visit_mut_class_prop(&mut self, node: &mut ClassProp, __ast_path: &mut AstKindPath) {
65595        <ClassProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65596            node, self, __ast_path,
65597        )
65598    }
65599    #[doc = "Visit a node of type `ComputedPropName`.\n\nBy default, this method calls \
65600             [`ComputedPropName::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65601             need to call it manually."]
65602    #[inline]
65603    fn visit_mut_computed_prop_name(
65604        &mut self,
65605        node: &mut ComputedPropName,
65606        __ast_path: &mut AstKindPath,
65607    ) {
65608        <ComputedPropName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65609            node, self, __ast_path,
65610        )
65611    }
65612    #[doc = "Visit a node of type `CondExpr`.\n\nBy default, this method calls \
65613             [`CondExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65614             call it manually."]
65615    #[inline]
65616    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr, __ast_path: &mut AstKindPath) {
65617        <CondExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65618            node, self, __ast_path,
65619        )
65620    }
65621    #[doc = "Visit a node of type `Constructor`.\n\nBy default, this method calls \
65622             [`Constructor::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65623             to call it manually."]
65624    #[inline]
65625    fn visit_mut_constructor(&mut self, node: &mut Constructor, __ast_path: &mut AstKindPath) {
65626        <Constructor as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65627            node, self, __ast_path,
65628        )
65629    }
65630    #[doc = "Visit a node of type `ContinueStmt`.\n\nBy default, this method calls \
65631             [`ContinueStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65632             to call it manually."]
65633    #[inline]
65634    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt, __ast_path: &mut AstKindPath) {
65635        <ContinueStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65636            node, self, __ast_path,
65637        )
65638    }
65639    #[doc = "Visit a node of type `DebuggerStmt`.\n\nBy default, this method calls \
65640             [`DebuggerStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65641             to call it manually."]
65642    #[inline]
65643    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt, __ast_path: &mut AstKindPath) {
65644        <DebuggerStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65645            node, self, __ast_path,
65646        )
65647    }
65648    #[doc = "Visit a node of type `Decl`.\n\nBy default, this method calls \
65649             [`Decl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
65650             it manually."]
65651    #[inline]
65652    fn visit_mut_decl(&mut self, node: &mut Decl, __ast_path: &mut AstKindPath) {
65653        <Decl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65654            node, self, __ast_path,
65655        )
65656    }
65657    #[doc = "Visit a node of type `Decorator`.\n\nBy default, this method calls \
65658             [`Decorator::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65659             call it manually."]
65660    #[inline]
65661    fn visit_mut_decorator(&mut self, node: &mut Decorator, __ast_path: &mut AstKindPath) {
65662        <Decorator as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65663            node, self, __ast_path,
65664        )
65665    }
65666    #[doc = "Visit a node of type `Vec < Decorator >`.\n\nBy default, this method calls [`Vec < \
65667             Decorator >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65668             call it manually."]
65669    #[inline]
65670    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>, __ast_path: &mut AstKindPath) {
65671        <Vec<Decorator> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65672            node, self, __ast_path,
65673        )
65674    }
65675    #[doc = "Visit a node of type `DefaultDecl`.\n\nBy default, this method calls \
65676             [`DefaultDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65677             to call it manually."]
65678    #[inline]
65679    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl, __ast_path: &mut AstKindPath) {
65680        <DefaultDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65681            node, self, __ast_path,
65682        )
65683    }
65684    #[doc = "Visit a node of type `DoWhileStmt`.\n\nBy default, this method calls \
65685             [`DoWhileStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65686             to call it manually."]
65687    #[inline]
65688    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt, __ast_path: &mut AstKindPath) {
65689        <DoWhileStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65690            node, self, __ast_path,
65691        )
65692    }
65693    #[doc = "Visit a node of type `EmptyStmt`.\n\nBy default, this method calls \
65694             [`EmptyStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65695             call it manually."]
65696    #[inline]
65697    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt, __ast_path: &mut AstKindPath) {
65698        <EmptyStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65699            node, self, __ast_path,
65700        )
65701    }
65702    #[doc = "Visit a node of type `ExportAll`.\n\nBy default, this method calls \
65703             [`ExportAll::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65704             call it manually."]
65705    #[inline]
65706    fn visit_mut_export_all(&mut self, node: &mut ExportAll, __ast_path: &mut AstKindPath) {
65707        <ExportAll as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65708            node, self, __ast_path,
65709        )
65710    }
65711    #[doc = "Visit a node of type `ExportDecl`.\n\nBy default, this method calls \
65712             [`ExportDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65713             call it manually."]
65714    #[inline]
65715    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl, __ast_path: &mut AstKindPath) {
65716        <ExportDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65717            node, self, __ast_path,
65718        )
65719    }
65720    #[doc = "Visit a node of type `ExportDefaultDecl`.\n\nBy default, this method calls \
65721             [`ExportDefaultDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65722             need to call it manually."]
65723    #[inline]
65724    fn visit_mut_export_default_decl(
65725        &mut self,
65726        node: &mut ExportDefaultDecl,
65727        __ast_path: &mut AstKindPath,
65728    ) {
65729        <ExportDefaultDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65730            node, self, __ast_path,
65731        )
65732    }
65733    #[doc = "Visit a node of type `ExportDefaultExpr`.\n\nBy default, this method calls \
65734             [`ExportDefaultExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65735             need to call it manually."]
65736    #[inline]
65737    fn visit_mut_export_default_expr(
65738        &mut self,
65739        node: &mut ExportDefaultExpr,
65740        __ast_path: &mut AstKindPath,
65741    ) {
65742        <ExportDefaultExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65743            node, self, __ast_path,
65744        )
65745    }
65746    #[doc = "Visit a node of type `ExportDefaultSpecifier`.\n\nBy default, this method calls \
65747             [`ExportDefaultSpecifier::visit_mut_children_with_ast_path`]. If you want to recurse, \
65748             you need to call it manually."]
65749    #[inline]
65750    fn visit_mut_export_default_specifier(
65751        &mut self,
65752        node: &mut ExportDefaultSpecifier,
65753        __ast_path: &mut AstKindPath,
65754    ) {
65755        <ExportDefaultSpecifier as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65756            node, self, __ast_path,
65757        )
65758    }
65759    #[doc = "Visit a node of type `ExportNamedSpecifier`.\n\nBy default, this method calls \
65760             [`ExportNamedSpecifier::visit_mut_children_with_ast_path`]. If you want to recurse, \
65761             you need to call it manually."]
65762    #[inline]
65763    fn visit_mut_export_named_specifier(
65764        &mut self,
65765        node: &mut ExportNamedSpecifier,
65766        __ast_path: &mut AstKindPath,
65767    ) {
65768        <ExportNamedSpecifier as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65769            node, self, __ast_path,
65770        )
65771    }
65772    #[doc = "Visit a node of type `ExportNamespaceSpecifier`.\n\nBy default, this method calls \
65773             [`ExportNamespaceSpecifier::visit_mut_children_with_ast_path`]. If you want to \
65774             recurse, you need to call it manually."]
65775    #[inline]
65776    fn visit_mut_export_namespace_specifier(
65777        &mut self,
65778        node: &mut ExportNamespaceSpecifier,
65779        __ast_path: &mut AstKindPath,
65780    ) {
65781        <ExportNamespaceSpecifier as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65782            node, self, __ast_path,
65783        )
65784    }
65785    #[doc = "Visit a node of type `ExportSpecifier`.\n\nBy default, this method calls \
65786             [`ExportSpecifier::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65787             need to call it manually."]
65788    #[inline]
65789    fn visit_mut_export_specifier(
65790        &mut self,
65791        node: &mut ExportSpecifier,
65792        __ast_path: &mut AstKindPath,
65793    ) {
65794        <ExportSpecifier as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65795            node, self, __ast_path,
65796        )
65797    }
65798    #[doc = "Visit a node of type `Vec < ExportSpecifier >`.\n\nBy default, this method calls \
65799             [`Vec < ExportSpecifier >::visit_mut_children_with_ast_path`]. If you want to \
65800             recurse, you need to call it manually."]
65801    #[inline]
65802    fn visit_mut_export_specifiers(
65803        &mut self,
65804        node: &mut Vec<ExportSpecifier>,
65805        __ast_path: &mut AstKindPath,
65806    ) {
65807        <Vec<ExportSpecifier> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65808            node, self, __ast_path,
65809        )
65810    }
65811    #[doc = "Visit a node of type `Expr`.\n\nBy default, this method calls \
65812             [`Expr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
65813             it manually."]
65814    #[inline]
65815    fn visit_mut_expr(&mut self, node: &mut Expr, __ast_path: &mut AstKindPath) {
65816        <Expr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65817            node, self, __ast_path,
65818        )
65819    }
65820    #[doc = "Visit a node of type `ExprOrSpread`.\n\nBy default, this method calls \
65821             [`ExprOrSpread::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65822             to call it manually."]
65823    #[inline]
65824    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread, __ast_path: &mut AstKindPath) {
65825        <ExprOrSpread as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65826            node, self, __ast_path,
65827        )
65828    }
65829    #[doc = "Visit a node of type `Vec < ExprOrSpread >`.\n\nBy default, this method calls [`Vec < \
65830             ExprOrSpread >::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65831             to call it manually."]
65832    #[inline]
65833    fn visit_mut_expr_or_spreads(
65834        &mut self,
65835        node: &mut Vec<ExprOrSpread>,
65836        __ast_path: &mut AstKindPath,
65837    ) {
65838        <Vec<ExprOrSpread> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65839            node, self, __ast_path,
65840        )
65841    }
65842    #[doc = "Visit a node of type `ExprStmt`.\n\nBy default, this method calls \
65843             [`ExprStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65844             call it manually."]
65845    #[inline]
65846    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt, __ast_path: &mut AstKindPath) {
65847        <ExprStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65848            node, self, __ast_path,
65849        )
65850    }
65851    #[doc = "Visit a node of type `Vec < Box < Expr > >`.\n\nBy default, this method calls [`Vec < \
65852             Box < Expr > >::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65853             to call it manually."]
65854    #[inline]
65855    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>, __ast_path: &mut AstKindPath) {
65856        <Vec<Box<Expr>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65857            node, self, __ast_path,
65858        )
65859    }
65860    #[doc = "Visit a node of type `FnDecl`.\n\nBy default, this method calls \
65861             [`FnDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65862             call it manually."]
65863    #[inline]
65864    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl, __ast_path: &mut AstKindPath) {
65865        <FnDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65866            node, self, __ast_path,
65867        )
65868    }
65869    #[doc = "Visit a node of type `FnExpr`.\n\nBy default, this method calls \
65870             [`FnExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65871             call it manually."]
65872    #[inline]
65873    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr, __ast_path: &mut AstKindPath) {
65874        <FnExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65875            node, self, __ast_path,
65876        )
65877    }
65878    #[doc = "Visit a node of type `ForHead`.\n\nBy default, this method calls \
65879             [`ForHead::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65880             call it manually."]
65881    #[inline]
65882    fn visit_mut_for_head(&mut self, node: &mut ForHead, __ast_path: &mut AstKindPath) {
65883        <ForHead as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65884            node, self, __ast_path,
65885        )
65886    }
65887    #[doc = "Visit a node of type `ForInStmt`.\n\nBy default, this method calls \
65888             [`ForInStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65889             call it manually."]
65890    #[inline]
65891    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt, __ast_path: &mut AstKindPath) {
65892        <ForInStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65893            node, self, __ast_path,
65894        )
65895    }
65896    #[doc = "Visit a node of type `ForOfStmt`.\n\nBy default, this method calls \
65897             [`ForOfStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65898             call it manually."]
65899    #[inline]
65900    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt, __ast_path: &mut AstKindPath) {
65901        <ForOfStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65902            node, self, __ast_path,
65903        )
65904    }
65905    #[doc = "Visit a node of type `ForStmt`.\n\nBy default, this method calls \
65906             [`ForStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65907             call it manually."]
65908    #[inline]
65909    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt, __ast_path: &mut AstKindPath) {
65910        <ForStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65911            node, self, __ast_path,
65912        )
65913    }
65914    #[doc = "Visit a node of type `Function`.\n\nBy default, this method calls \
65915             [`Function::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65916             call it manually."]
65917    #[inline]
65918    fn visit_mut_function(&mut self, node: &mut Function, __ast_path: &mut AstKindPath) {
65919        <Function as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65920            node, self, __ast_path,
65921        )
65922    }
65923    #[doc = "Visit a node of type `GetterProp`.\n\nBy default, this method calls \
65924             [`GetterProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65925             call it manually."]
65926    #[inline]
65927    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp, __ast_path: &mut AstKindPath) {
65928        <GetterProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65929            node, self, __ast_path,
65930        )
65931    }
65932    #[doc = "Visit a node of type `Ident`.\n\nBy default, this method calls \
65933             [`Ident::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
65934             it manually."]
65935    #[inline]
65936    fn visit_mut_ident(&mut self, node: &mut Ident, __ast_path: &mut AstKindPath) {
65937        <Ident as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65938            node, self, __ast_path,
65939        )
65940    }
65941    #[doc = "Visit a node of type `IdentName`.\n\nBy default, this method calls \
65942             [`IdentName::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65943             call it manually."]
65944    #[inline]
65945    fn visit_mut_ident_name(&mut self, node: &mut IdentName, __ast_path: &mut AstKindPath) {
65946        <IdentName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65947            node, self, __ast_path,
65948        )
65949    }
65950    #[doc = "Visit a node of type `IfStmt`.\n\nBy default, this method calls \
65951             [`IfStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65952             call it manually."]
65953    #[inline]
65954    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt, __ast_path: &mut AstKindPath) {
65955        <IfStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65956            node, self, __ast_path,
65957        )
65958    }
65959    #[doc = "Visit a node of type `Import`.\n\nBy default, this method calls \
65960             [`Import::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65961             call it manually."]
65962    #[inline]
65963    fn visit_mut_import(&mut self, node: &mut Import, __ast_path: &mut AstKindPath) {
65964        <Import as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65965            node, self, __ast_path,
65966        )
65967    }
65968    #[doc = "Visit a node of type `ImportDecl`.\n\nBy default, this method calls \
65969             [`ImportDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65970             call it manually."]
65971    #[inline]
65972    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl, __ast_path: &mut AstKindPath) {
65973        <ImportDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65974            node, self, __ast_path,
65975        )
65976    }
65977    #[doc = "Visit a node of type `ImportDefaultSpecifier`.\n\nBy default, this method calls \
65978             [`ImportDefaultSpecifier::visit_mut_children_with_ast_path`]. If you want to recurse, \
65979             you need to call it manually."]
65980    #[inline]
65981    fn visit_mut_import_default_specifier(
65982        &mut self,
65983        node: &mut ImportDefaultSpecifier,
65984        __ast_path: &mut AstKindPath,
65985    ) {
65986        <ImportDefaultSpecifier as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65987            node, self, __ast_path,
65988        )
65989    }
65990    #[doc = "Visit a node of type `ImportNamedSpecifier`.\n\nBy default, this method calls \
65991             [`ImportNamedSpecifier::visit_mut_children_with_ast_path`]. If you want to recurse, \
65992             you need to call it manually."]
65993    #[inline]
65994    fn visit_mut_import_named_specifier(
65995        &mut self,
65996        node: &mut ImportNamedSpecifier,
65997        __ast_path: &mut AstKindPath,
65998    ) {
65999        <ImportNamedSpecifier as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66000            node, self, __ast_path,
66001        )
66002    }
66003    #[doc = "Visit a node of type `ImportPhase`.\n\nBy default, this method calls \
66004             [`ImportPhase::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66005             to call it manually."]
66006    #[inline]
66007    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase, __ast_path: &mut AstKindPath) {
66008        <ImportPhase as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66009            node, self, __ast_path,
66010        )
66011    }
66012    #[doc = "Visit a node of type `ImportSpecifier`.\n\nBy default, this method calls \
66013             [`ImportSpecifier::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66014             need to call it manually."]
66015    #[inline]
66016    fn visit_mut_import_specifier(
66017        &mut self,
66018        node: &mut ImportSpecifier,
66019        __ast_path: &mut AstKindPath,
66020    ) {
66021        <ImportSpecifier as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66022            node, self, __ast_path,
66023        )
66024    }
66025    #[doc = "Visit a node of type `Vec < ImportSpecifier >`.\n\nBy default, this method calls \
66026             [`Vec < ImportSpecifier >::visit_mut_children_with_ast_path`]. If you want to \
66027             recurse, you need to call it manually."]
66028    #[inline]
66029    fn visit_mut_import_specifiers(
66030        &mut self,
66031        node: &mut Vec<ImportSpecifier>,
66032        __ast_path: &mut AstKindPath,
66033    ) {
66034        <Vec<ImportSpecifier> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66035            node, self, __ast_path,
66036        )
66037    }
66038    #[doc = "Visit a node of type `ImportStarAsSpecifier`.\n\nBy default, this method calls \
66039             [`ImportStarAsSpecifier::visit_mut_children_with_ast_path`]. If you want to recurse, \
66040             you need to call it manually."]
66041    #[inline]
66042    fn visit_mut_import_star_as_specifier(
66043        &mut self,
66044        node: &mut ImportStarAsSpecifier,
66045        __ast_path: &mut AstKindPath,
66046    ) {
66047        <ImportStarAsSpecifier as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66048            node, self, __ast_path,
66049        )
66050    }
66051    #[doc = "Visit a node of type `ImportWith`.\n\nBy default, this method calls \
66052             [`ImportWith::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66053             call it manually."]
66054    #[inline]
66055    fn visit_mut_import_with(&mut self, node: &mut ImportWith, __ast_path: &mut AstKindPath) {
66056        <ImportWith as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66057            node, self, __ast_path,
66058        )
66059    }
66060    #[doc = "Visit a node of type `ImportWithItem`.\n\nBy default, this method calls \
66061             [`ImportWithItem::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66062             need to call it manually."]
66063    #[inline]
66064    fn visit_mut_import_with_item(
66065        &mut self,
66066        node: &mut ImportWithItem,
66067        __ast_path: &mut AstKindPath,
66068    ) {
66069        <ImportWithItem as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66070            node, self, __ast_path,
66071        )
66072    }
66073    #[doc = "Visit a node of type `Vec < ImportWithItem >`.\n\nBy default, this method calls [`Vec \
66074             < ImportWithItem >::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66075             need to call it manually."]
66076    #[inline]
66077    fn visit_mut_import_with_items(
66078        &mut self,
66079        node: &mut Vec<ImportWithItem>,
66080        __ast_path: &mut AstKindPath,
66081    ) {
66082        <Vec<ImportWithItem> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66083            node, self, __ast_path,
66084        )
66085    }
66086    #[doc = "Visit a node of type `Invalid`.\n\nBy default, this method calls \
66087             [`Invalid::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66088             call it manually."]
66089    #[inline]
66090    fn visit_mut_invalid(&mut self, node: &mut Invalid, __ast_path: &mut AstKindPath) {
66091        <Invalid as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66092            node, self, __ast_path,
66093        )
66094    }
66095    #[doc = "Visit a node of type `JSXAttr`.\n\nBy default, this method calls \
66096             [`JSXAttr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66097             call it manually."]
66098    #[inline]
66099    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr, __ast_path: &mut AstKindPath) {
66100        <JSXAttr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66101            node, self, __ast_path,
66102        )
66103    }
66104    #[doc = "Visit a node of type `JSXAttrName`.\n\nBy default, this method calls \
66105             [`JSXAttrName::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66106             to call it manually."]
66107    #[inline]
66108    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName, __ast_path: &mut AstKindPath) {
66109        <JSXAttrName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66110            node, self, __ast_path,
66111        )
66112    }
66113    #[doc = "Visit a node of type `JSXAttrOrSpread`.\n\nBy default, this method calls \
66114             [`JSXAttrOrSpread::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66115             need to call it manually."]
66116    #[inline]
66117    fn visit_mut_jsx_attr_or_spread(
66118        &mut self,
66119        node: &mut JSXAttrOrSpread,
66120        __ast_path: &mut AstKindPath,
66121    ) {
66122        <JSXAttrOrSpread as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66123            node, self, __ast_path,
66124        )
66125    }
66126    #[doc = "Visit a node of type `Vec < JSXAttrOrSpread >`.\n\nBy default, this method calls \
66127             [`Vec < JSXAttrOrSpread >::visit_mut_children_with_ast_path`]. If you want to \
66128             recurse, you need to call it manually."]
66129    #[inline]
66130    fn visit_mut_jsx_attr_or_spreads(
66131        &mut self,
66132        node: &mut Vec<JSXAttrOrSpread>,
66133        __ast_path: &mut AstKindPath,
66134    ) {
66135        <Vec<JSXAttrOrSpread> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66136            node, self, __ast_path,
66137        )
66138    }
66139    #[doc = "Visit a node of type `JSXAttrValue`.\n\nBy default, this method calls \
66140             [`JSXAttrValue::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66141             to call it manually."]
66142    #[inline]
66143    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue, __ast_path: &mut AstKindPath) {
66144        <JSXAttrValue as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66145            node, self, __ast_path,
66146        )
66147    }
66148    #[doc = "Visit a node of type `JSXClosingElement`.\n\nBy default, this method calls \
66149             [`JSXClosingElement::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66150             need to call it manually."]
66151    #[inline]
66152    fn visit_mut_jsx_closing_element(
66153        &mut self,
66154        node: &mut JSXClosingElement,
66155        __ast_path: &mut AstKindPath,
66156    ) {
66157        <JSXClosingElement as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66158            node, self, __ast_path,
66159        )
66160    }
66161    #[doc = "Visit a node of type `JSXClosingFragment`.\n\nBy default, this method calls \
66162             [`JSXClosingFragment::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66163             need to call it manually."]
66164    #[inline]
66165    fn visit_mut_jsx_closing_fragment(
66166        &mut self,
66167        node: &mut JSXClosingFragment,
66168        __ast_path: &mut AstKindPath,
66169    ) {
66170        <JSXClosingFragment as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66171            node, self, __ast_path,
66172        )
66173    }
66174    #[doc = "Visit a node of type `JSXElement`.\n\nBy default, this method calls \
66175             [`JSXElement::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66176             call it manually."]
66177    #[inline]
66178    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement, __ast_path: &mut AstKindPath) {
66179        <JSXElement as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66180            node, self, __ast_path,
66181        )
66182    }
66183    #[doc = "Visit a node of type `JSXElementChild`.\n\nBy default, this method calls \
66184             [`JSXElementChild::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66185             need to call it manually."]
66186    #[inline]
66187    fn visit_mut_jsx_element_child(
66188        &mut self,
66189        node: &mut JSXElementChild,
66190        __ast_path: &mut AstKindPath,
66191    ) {
66192        <JSXElementChild as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66193            node, self, __ast_path,
66194        )
66195    }
66196    #[doc = "Visit a node of type `Vec < JSXElementChild >`.\n\nBy default, this method calls \
66197             [`Vec < JSXElementChild >::visit_mut_children_with_ast_path`]. If you want to \
66198             recurse, you need to call it manually."]
66199    #[inline]
66200    fn visit_mut_jsx_element_childs(
66201        &mut self,
66202        node: &mut Vec<JSXElementChild>,
66203        __ast_path: &mut AstKindPath,
66204    ) {
66205        <Vec<JSXElementChild> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66206            node, self, __ast_path,
66207        )
66208    }
66209    #[doc = "Visit a node of type `JSXElementName`.\n\nBy default, this method calls \
66210             [`JSXElementName::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66211             need to call it manually."]
66212    #[inline]
66213    fn visit_mut_jsx_element_name(
66214        &mut self,
66215        node: &mut JSXElementName,
66216        __ast_path: &mut AstKindPath,
66217    ) {
66218        <JSXElementName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66219            node, self, __ast_path,
66220        )
66221    }
66222    #[doc = "Visit a node of type `JSXEmptyExpr`.\n\nBy default, this method calls \
66223             [`JSXEmptyExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66224             to call it manually."]
66225    #[inline]
66226    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr, __ast_path: &mut AstKindPath) {
66227        <JSXEmptyExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66228            node, self, __ast_path,
66229        )
66230    }
66231    #[doc = "Visit a node of type `JSXExpr`.\n\nBy default, this method calls \
66232             [`JSXExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66233             call it manually."]
66234    #[inline]
66235    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr, __ast_path: &mut AstKindPath) {
66236        <JSXExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66237            node, self, __ast_path,
66238        )
66239    }
66240    #[doc = "Visit a node of type `JSXExprContainer`.\n\nBy default, this method calls \
66241             [`JSXExprContainer::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66242             need to call it manually."]
66243    #[inline]
66244    fn visit_mut_jsx_expr_container(
66245        &mut self,
66246        node: &mut JSXExprContainer,
66247        __ast_path: &mut AstKindPath,
66248    ) {
66249        <JSXExprContainer as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66250            node, self, __ast_path,
66251        )
66252    }
66253    #[doc = "Visit a node of type `JSXFragment`.\n\nBy default, this method calls \
66254             [`JSXFragment::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66255             to call it manually."]
66256    #[inline]
66257    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment, __ast_path: &mut AstKindPath) {
66258        <JSXFragment as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66259            node, self, __ast_path,
66260        )
66261    }
66262    #[doc = "Visit a node of type `JSXMemberExpr`.\n\nBy default, this method calls \
66263             [`JSXMemberExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66264             to call it manually."]
66265    #[inline]
66266    fn visit_mut_jsx_member_expr(
66267        &mut self,
66268        node: &mut JSXMemberExpr,
66269        __ast_path: &mut AstKindPath,
66270    ) {
66271        <JSXMemberExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66272            node, self, __ast_path,
66273        )
66274    }
66275    #[doc = "Visit a node of type `JSXNamespacedName`.\n\nBy default, this method calls \
66276             [`JSXNamespacedName::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66277             need to call it manually."]
66278    #[inline]
66279    fn visit_mut_jsx_namespaced_name(
66280        &mut self,
66281        node: &mut JSXNamespacedName,
66282        __ast_path: &mut AstKindPath,
66283    ) {
66284        <JSXNamespacedName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66285            node, self, __ast_path,
66286        )
66287    }
66288    #[doc = "Visit a node of type `JSXObject`.\n\nBy default, this method calls \
66289             [`JSXObject::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66290             call it manually."]
66291    #[inline]
66292    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject, __ast_path: &mut AstKindPath) {
66293        <JSXObject as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66294            node, self, __ast_path,
66295        )
66296    }
66297    #[doc = "Visit a node of type `JSXOpeningElement`.\n\nBy default, this method calls \
66298             [`JSXOpeningElement::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66299             need to call it manually."]
66300    #[inline]
66301    fn visit_mut_jsx_opening_element(
66302        &mut self,
66303        node: &mut JSXOpeningElement,
66304        __ast_path: &mut AstKindPath,
66305    ) {
66306        <JSXOpeningElement as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66307            node, self, __ast_path,
66308        )
66309    }
66310    #[doc = "Visit a node of type `JSXOpeningFragment`.\n\nBy default, this method calls \
66311             [`JSXOpeningFragment::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66312             need to call it manually."]
66313    #[inline]
66314    fn visit_mut_jsx_opening_fragment(
66315        &mut self,
66316        node: &mut JSXOpeningFragment,
66317        __ast_path: &mut AstKindPath,
66318    ) {
66319        <JSXOpeningFragment as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66320            node, self, __ast_path,
66321        )
66322    }
66323    #[doc = "Visit a node of type `JSXSpreadChild`.\n\nBy default, this method calls \
66324             [`JSXSpreadChild::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66325             need to call it manually."]
66326    #[inline]
66327    fn visit_mut_jsx_spread_child(
66328        &mut self,
66329        node: &mut JSXSpreadChild,
66330        __ast_path: &mut AstKindPath,
66331    ) {
66332        <JSXSpreadChild as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66333            node, self, __ast_path,
66334        )
66335    }
66336    #[doc = "Visit a node of type `JSXText`.\n\nBy default, this method calls \
66337             [`JSXText::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66338             call it manually."]
66339    #[inline]
66340    fn visit_mut_jsx_text(&mut self, node: &mut JSXText, __ast_path: &mut AstKindPath) {
66341        <JSXText as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66342            node, self, __ast_path,
66343        )
66344    }
66345    #[doc = "Visit a node of type `Key`.\n\nBy default, this method calls \
66346             [`Key::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66347             it manually."]
66348    #[inline]
66349    fn visit_mut_key(&mut self, node: &mut Key, __ast_path: &mut AstKindPath) {
66350        <Key as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(node, self, __ast_path)
66351    }
66352    #[doc = "Visit a node of type `KeyValuePatProp`.\n\nBy default, this method calls \
66353             [`KeyValuePatProp::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66354             need to call it manually."]
66355    #[inline]
66356    fn visit_mut_key_value_pat_prop(
66357        &mut self,
66358        node: &mut KeyValuePatProp,
66359        __ast_path: &mut AstKindPath,
66360    ) {
66361        <KeyValuePatProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66362            node, self, __ast_path,
66363        )
66364    }
66365    #[doc = "Visit a node of type `KeyValueProp`.\n\nBy default, this method calls \
66366             [`KeyValueProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66367             to call it manually."]
66368    #[inline]
66369    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp, __ast_path: &mut AstKindPath) {
66370        <KeyValueProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66371            node, self, __ast_path,
66372        )
66373    }
66374    #[doc = "Visit a node of type `LabeledStmt`.\n\nBy default, this method calls \
66375             [`LabeledStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66376             to call it manually."]
66377    #[inline]
66378    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt, __ast_path: &mut AstKindPath) {
66379        <LabeledStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66380            node, self, __ast_path,
66381        )
66382    }
66383    #[doc = "Visit a node of type `Lit`.\n\nBy default, this method calls \
66384             [`Lit::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66385             it manually."]
66386    #[inline]
66387    fn visit_mut_lit(&mut self, node: &mut Lit, __ast_path: &mut AstKindPath) {
66388        <Lit as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(node, self, __ast_path)
66389    }
66390    #[doc = "Visit a node of type `MemberExpr`.\n\nBy default, this method calls \
66391             [`MemberExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66392             call it manually."]
66393    #[inline]
66394    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr, __ast_path: &mut AstKindPath) {
66395        <MemberExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66396            node, self, __ast_path,
66397        )
66398    }
66399    #[doc = "Visit a node of type `MemberProp`.\n\nBy default, this method calls \
66400             [`MemberProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66401             call it manually."]
66402    #[inline]
66403    fn visit_mut_member_prop(&mut self, node: &mut MemberProp, __ast_path: &mut AstKindPath) {
66404        <MemberProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66405            node, self, __ast_path,
66406        )
66407    }
66408    #[doc = "Visit a node of type `MetaPropExpr`.\n\nBy default, this method calls \
66409             [`MetaPropExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66410             to call it manually."]
66411    #[inline]
66412    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr, __ast_path: &mut AstKindPath) {
66413        <MetaPropExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66414            node, self, __ast_path,
66415        )
66416    }
66417    #[doc = "Visit a node of type `MetaPropKind`.\n\nBy default, this method calls \
66418             [`MetaPropKind::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66419             to call it manually."]
66420    #[inline]
66421    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind, __ast_path: &mut AstKindPath) {
66422        <MetaPropKind as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66423            node, self, __ast_path,
66424        )
66425    }
66426    #[doc = "Visit a node of type `MethodKind`.\n\nBy default, this method calls \
66427             [`MethodKind::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66428             call it manually."]
66429    #[inline]
66430    fn visit_mut_method_kind(&mut self, node: &mut MethodKind, __ast_path: &mut AstKindPath) {
66431        <MethodKind as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66432            node, self, __ast_path,
66433        )
66434    }
66435    #[doc = "Visit a node of type `MethodProp`.\n\nBy default, this method calls \
66436             [`MethodProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66437             call it manually."]
66438    #[inline]
66439    fn visit_mut_method_prop(&mut self, node: &mut MethodProp, __ast_path: &mut AstKindPath) {
66440        <MethodProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66441            node, self, __ast_path,
66442        )
66443    }
66444    #[doc = "Visit a node of type `Module`.\n\nBy default, this method calls \
66445             [`Module::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66446             call it manually."]
66447    #[inline]
66448    fn visit_mut_module(&mut self, node: &mut Module, __ast_path: &mut AstKindPath) {
66449        <Module as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66450            node, self, __ast_path,
66451        )
66452    }
66453    #[doc = "Visit a node of type `ModuleDecl`.\n\nBy default, this method calls \
66454             [`ModuleDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66455             call it manually."]
66456    #[inline]
66457    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl, __ast_path: &mut AstKindPath) {
66458        <ModuleDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66459            node, self, __ast_path,
66460        )
66461    }
66462    #[doc = "Visit a node of type `ModuleExportName`.\n\nBy default, this method calls \
66463             [`ModuleExportName::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66464             need to call it manually."]
66465    #[inline]
66466    fn visit_mut_module_export_name(
66467        &mut self,
66468        node: &mut ModuleExportName,
66469        __ast_path: &mut AstKindPath,
66470    ) {
66471        <ModuleExportName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66472            node, self, __ast_path,
66473        )
66474    }
66475    #[doc = "Visit a node of type `ModuleItem`.\n\nBy default, this method calls \
66476             [`ModuleItem::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66477             call it manually."]
66478    #[inline]
66479    fn visit_mut_module_item(&mut self, node: &mut ModuleItem, __ast_path: &mut AstKindPath) {
66480        <ModuleItem as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66481            node, self, __ast_path,
66482        )
66483    }
66484    #[doc = "Visit a node of type `Vec < ModuleItem >`.\n\nBy default, this method calls [`Vec < \
66485             ModuleItem >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66486             call it manually."]
66487    #[inline]
66488    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>, __ast_path: &mut AstKindPath) {
66489        <Vec<ModuleItem> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66490            node, self, __ast_path,
66491        )
66492    }
66493    #[doc = "Visit a node of type `NamedExport`.\n\nBy default, this method calls \
66494             [`NamedExport::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66495             to call it manually."]
66496    #[inline]
66497    fn visit_mut_named_export(&mut self, node: &mut NamedExport, __ast_path: &mut AstKindPath) {
66498        <NamedExport as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66499            node, self, __ast_path,
66500        )
66501    }
66502    #[doc = "Visit a node of type `NewExpr`.\n\nBy default, this method calls \
66503             [`NewExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66504             call it manually."]
66505    #[inline]
66506    fn visit_mut_new_expr(&mut self, node: &mut NewExpr, __ast_path: &mut AstKindPath) {
66507        <NewExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66508            node, self, __ast_path,
66509        )
66510    }
66511    #[doc = "Visit a node of type `Null`.\n\nBy default, this method calls \
66512             [`Null::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66513             it manually."]
66514    #[inline]
66515    fn visit_mut_null(&mut self, node: &mut Null, __ast_path: &mut AstKindPath) {
66516        <Null as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66517            node, self, __ast_path,
66518        )
66519    }
66520    #[doc = "Visit a node of type `Number`.\n\nBy default, this method calls \
66521             [`Number::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66522             call it manually."]
66523    #[inline]
66524    fn visit_mut_number(&mut self, node: &mut Number, __ast_path: &mut AstKindPath) {
66525        <Number as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66526            node, self, __ast_path,
66527        )
66528    }
66529    #[doc = "Visit a node of type `ObjectLit`.\n\nBy default, this method calls \
66530             [`ObjectLit::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66531             call it manually."]
66532    #[inline]
66533    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit, __ast_path: &mut AstKindPath) {
66534        <ObjectLit as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66535            node, self, __ast_path,
66536        )
66537    }
66538    #[doc = "Visit a node of type `ObjectPat`.\n\nBy default, this method calls \
66539             [`ObjectPat::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66540             call it manually."]
66541    #[inline]
66542    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat, __ast_path: &mut AstKindPath) {
66543        <ObjectPat as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66544            node, self, __ast_path,
66545        )
66546    }
66547    #[doc = "Visit a node of type `ObjectPatProp`.\n\nBy default, this method calls \
66548             [`ObjectPatProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66549             to call it manually."]
66550    #[inline]
66551    fn visit_mut_object_pat_prop(
66552        &mut self,
66553        node: &mut ObjectPatProp,
66554        __ast_path: &mut AstKindPath,
66555    ) {
66556        <ObjectPatProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66557            node, self, __ast_path,
66558        )
66559    }
66560    #[doc = "Visit a node of type `Vec < ObjectPatProp >`.\n\nBy default, this method calls [`Vec \
66561             < ObjectPatProp >::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66562             need to call it manually."]
66563    #[inline]
66564    fn visit_mut_object_pat_props(
66565        &mut self,
66566        node: &mut Vec<ObjectPatProp>,
66567        __ast_path: &mut AstKindPath,
66568    ) {
66569        <Vec<ObjectPatProp> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66570            node, self, __ast_path,
66571        )
66572    }
66573    #[doc = "Visit a node of type `Option < Accessibility >`.\n\nBy default, this method calls \
66574             [`Option < Accessibility >::visit_mut_children_with_ast_path`]. If you want to \
66575             recurse, you need to call it manually."]
66576    #[inline]
66577    fn visit_mut_opt_accessibility(
66578        &mut self,
66579        node: &mut Option<Accessibility>,
66580        __ast_path: &mut AstKindPath,
66581    ) {
66582        <Option<Accessibility> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66583            node, self, __ast_path,
66584        )
66585    }
66586    #[doc = "Visit a node of type `Option < swc_atoms :: Atom >`.\n\nBy default, this method calls \
66587             [`Option < swc_atoms :: Atom >::visit_mut_children_with_ast_path`]. If you want to \
66588             recurse, you need to call it manually."]
66589    #[inline]
66590    fn visit_mut_opt_atom(
66591        &mut self,
66592        node: &mut Option<swc_atoms::Atom>,
66593        __ast_path: &mut AstKindPath,
66594    ) {
66595        <Option<swc_atoms::Atom> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66596            node, self, __ast_path,
66597        )
66598    }
66599    #[doc = "Visit a node of type `Option < BlockStmt >`.\n\nBy default, this method calls \
66600             [`Option < BlockStmt >::visit_mut_children_with_ast_path`]. If you want to recurse, \
66601             you need to call it manually."]
66602    #[inline]
66603    fn visit_mut_opt_block_stmt(
66604        &mut self,
66605        node: &mut Option<BlockStmt>,
66606        __ast_path: &mut AstKindPath,
66607    ) {
66608        <Option<BlockStmt> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66609            node, self, __ast_path,
66610        )
66611    }
66612    #[doc = "Visit a node of type `OptCall`.\n\nBy default, this method calls \
66613             [`OptCall::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66614             call it manually."]
66615    #[inline]
66616    fn visit_mut_opt_call(&mut self, node: &mut OptCall, __ast_path: &mut AstKindPath) {
66617        <OptCall as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66618            node, self, __ast_path,
66619        )
66620    }
66621    #[doc = "Visit a node of type `Option < CatchClause >`.\n\nBy default, this method calls \
66622             [`Option < CatchClause >::visit_mut_children_with_ast_path`]. If you want to recurse, \
66623             you need to call it manually."]
66624    #[inline]
66625    fn visit_mut_opt_catch_clause(
66626        &mut self,
66627        node: &mut Option<CatchClause>,
66628        __ast_path: &mut AstKindPath,
66629    ) {
66630        <Option<CatchClause> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66631            node, self, __ast_path,
66632        )
66633    }
66634    #[doc = "Visit a node of type `OptChainBase`.\n\nBy default, this method calls \
66635             [`OptChainBase::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66636             to call it manually."]
66637    #[inline]
66638    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase, __ast_path: &mut AstKindPath) {
66639        <OptChainBase as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66640            node, self, __ast_path,
66641        )
66642    }
66643    #[doc = "Visit a node of type `OptChainExpr`.\n\nBy default, this method calls \
66644             [`OptChainExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66645             to call it manually."]
66646    #[inline]
66647    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr, __ast_path: &mut AstKindPath) {
66648        <OptChainExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66649            node, self, __ast_path,
66650        )
66651    }
66652    #[doc = "Visit a node of type `Option < Box < Expr > >`.\n\nBy default, this method calls \
66653             [`Option < Box < Expr > >::visit_mut_children_with_ast_path`]. If you want to \
66654             recurse, you need to call it manually."]
66655    #[inline]
66656    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>, __ast_path: &mut AstKindPath) {
66657        <Option<Box<Expr>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66658            node, self, __ast_path,
66659        )
66660    }
66661    #[doc = "Visit a node of type `Option < ExprOrSpread >`.\n\nBy default, this method calls \
66662             [`Option < ExprOrSpread >::visit_mut_children_with_ast_path`]. If you want to \
66663             recurse, you need to call it manually."]
66664    #[inline]
66665    fn visit_mut_opt_expr_or_spread(
66666        &mut self,
66667        node: &mut Option<ExprOrSpread>,
66668        __ast_path: &mut AstKindPath,
66669    ) {
66670        <Option<ExprOrSpread> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66671            node, self, __ast_path,
66672        )
66673    }
66674    #[doc = "Visit a node of type `Option < Vec < ExprOrSpread > >`.\n\nBy default, this method \
66675             calls [`Option < Vec < ExprOrSpread > >::visit_mut_children_with_ast_path`]. If you \
66676             want to recurse, you need to call it manually."]
66677    #[inline]
66678    fn visit_mut_opt_expr_or_spreads(
66679        &mut self,
66680        node: &mut Option<Vec<ExprOrSpread>>,
66681        __ast_path: &mut AstKindPath,
66682    ) {
66683        <Option<Vec<ExprOrSpread>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66684            node, self, __ast_path,
66685        )
66686    }
66687    #[doc = "Visit a node of type `Option < Ident >`.\n\nBy default, this method calls [`Option < \
66688             Ident >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66689             it manually."]
66690    #[inline]
66691    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>, __ast_path: &mut AstKindPath) {
66692        <Option<Ident> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66693            node, self, __ast_path,
66694        )
66695    }
66696    #[doc = "Visit a node of type `Option < JSXAttrValue >`.\n\nBy default, this method calls \
66697             [`Option < JSXAttrValue >::visit_mut_children_with_ast_path`]. If you want to \
66698             recurse, you need to call it manually."]
66699    #[inline]
66700    fn visit_mut_opt_jsx_attr_value(
66701        &mut self,
66702        node: &mut Option<JSXAttrValue>,
66703        __ast_path: &mut AstKindPath,
66704    ) {
66705        <Option<JSXAttrValue> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66706            node, self, __ast_path,
66707        )
66708    }
66709    #[doc = "Visit a node of type `Option < JSXClosingElement >`.\n\nBy default, this method calls \
66710             [`Option < JSXClosingElement >::visit_mut_children_with_ast_path`]. If you want to \
66711             recurse, you need to call it manually."]
66712    #[inline]
66713    fn visit_mut_opt_jsx_closing_element(
66714        &mut self,
66715        node: &mut Option<JSXClosingElement>,
66716        __ast_path: &mut AstKindPath,
66717    ) {
66718        <Option<JSXClosingElement> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66719            node, self, __ast_path,
66720        )
66721    }
66722    #[doc = "Visit a node of type `Option < ModuleExportName >`.\n\nBy default, this method calls \
66723             [`Option < ModuleExportName >::visit_mut_children_with_ast_path`]. If you want to \
66724             recurse, you need to call it manually."]
66725    #[inline]
66726    fn visit_mut_opt_module_export_name(
66727        &mut self,
66728        node: &mut Option<ModuleExportName>,
66729        __ast_path: &mut AstKindPath,
66730    ) {
66731        <Option<ModuleExportName> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66732            node, self, __ast_path,
66733        )
66734    }
66735    #[doc = "Visit a node of type `Option < Box < ObjectLit > >`.\n\nBy default, this method calls \
66736             [`Option < Box < ObjectLit > >::visit_mut_children_with_ast_path`]. If you want to \
66737             recurse, you need to call it manually."]
66738    #[inline]
66739    fn visit_mut_opt_object_lit(
66740        &mut self,
66741        node: &mut Option<Box<ObjectLit>>,
66742        __ast_path: &mut AstKindPath,
66743    ) {
66744        <Option<Box<ObjectLit>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66745            node, self, __ast_path,
66746        )
66747    }
66748    #[doc = "Visit a node of type `Option < Pat >`.\n\nBy default, this method calls [`Option < \
66749             Pat >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66750             it manually."]
66751    #[inline]
66752    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>, __ast_path: &mut AstKindPath) {
66753        <Option<Pat> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66754            node, self, __ast_path,
66755        )
66756    }
66757    #[doc = "Visit a node of type `Option < swc_common :: Span >`.\n\nBy default, this method \
66758             calls [`Option < swc_common :: Span >::visit_mut_children_with_ast_path`]. If you \
66759             want to recurse, you need to call it manually."]
66760    #[inline]
66761    fn visit_mut_opt_span(
66762        &mut self,
66763        node: &mut Option<swc_common::Span>,
66764        __ast_path: &mut AstKindPath,
66765    ) {
66766        <Option<swc_common::Span> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66767            node, self, __ast_path,
66768        )
66769    }
66770    #[doc = "Visit a node of type `Option < Box < Stmt > >`.\n\nBy default, this method calls \
66771             [`Option < Box < Stmt > >::visit_mut_children_with_ast_path`]. If you want to \
66772             recurse, you need to call it manually."]
66773    #[inline]
66774    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>, __ast_path: &mut AstKindPath) {
66775        <Option<Box<Stmt>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66776            node, self, __ast_path,
66777        )
66778    }
66779    #[doc = "Visit a node of type `Option < Box < Str > >`.\n\nBy default, this method calls \
66780             [`Option < Box < Str > >::visit_mut_children_with_ast_path`]. If you want to recurse, \
66781             you need to call it manually."]
66782    #[inline]
66783    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>, __ast_path: &mut AstKindPath) {
66784        <Option<Box<Str>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66785            node, self, __ast_path,
66786        )
66787    }
66788    #[doc = "Visit a node of type `Option < TruePlusMinus >`.\n\nBy default, this method calls \
66789             [`Option < TruePlusMinus >::visit_mut_children_with_ast_path`]. If you want to \
66790             recurse, you need to call it manually."]
66791    #[inline]
66792    fn visit_mut_opt_true_plus_minus(
66793        &mut self,
66794        node: &mut Option<TruePlusMinus>,
66795        __ast_path: &mut AstKindPath,
66796    ) {
66797        <Option<TruePlusMinus> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66798            node, self, __ast_path,
66799        )
66800    }
66801    #[doc = "Visit a node of type `Option < TsEntityName >`.\n\nBy default, this method calls \
66802             [`Option < TsEntityName >::visit_mut_children_with_ast_path`]. If you want to \
66803             recurse, you need to call it manually."]
66804    #[inline]
66805    fn visit_mut_opt_ts_entity_name(
66806        &mut self,
66807        node: &mut Option<TsEntityName>,
66808        __ast_path: &mut AstKindPath,
66809    ) {
66810        <Option<TsEntityName> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66811            node, self, __ast_path,
66812        )
66813    }
66814    #[doc = "Visit a node of type `Option < TsImportCallOptions >`.\n\nBy default, this method \
66815             calls [`Option < TsImportCallOptions >::visit_mut_children_with_ast_path`]. If you \
66816             want to recurse, you need to call it manually."]
66817    #[inline]
66818    fn visit_mut_opt_ts_import_call_options(
66819        &mut self,
66820        node: &mut Option<TsImportCallOptions>,
66821        __ast_path: &mut AstKindPath,
66822    ) {
66823        <Option<TsImportCallOptions> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66824            node, self, __ast_path,
66825        )
66826    }
66827    #[doc = "Visit a node of type `Option < TsNamespaceBody >`.\n\nBy default, this method calls \
66828             [`Option < TsNamespaceBody >::visit_mut_children_with_ast_path`]. If you want to \
66829             recurse, you need to call it manually."]
66830    #[inline]
66831    fn visit_mut_opt_ts_namespace_body(
66832        &mut self,
66833        node: &mut Option<TsNamespaceBody>,
66834        __ast_path: &mut AstKindPath,
66835    ) {
66836        <Option<TsNamespaceBody> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66837            node, self, __ast_path,
66838        )
66839    }
66840    #[doc = "Visit a node of type `Option < Box < TsType > >`.\n\nBy default, this method calls \
66841             [`Option < Box < TsType > >::visit_mut_children_with_ast_path`]. If you want to \
66842             recurse, you need to call it manually."]
66843    #[inline]
66844    fn visit_mut_opt_ts_type(
66845        &mut self,
66846        node: &mut Option<Box<TsType>>,
66847        __ast_path: &mut AstKindPath,
66848    ) {
66849        <Option<Box<TsType>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66850            node, self, __ast_path,
66851        )
66852    }
66853    #[doc = "Visit a node of type `Option < Box < TsTypeAnn > >`.\n\nBy default, this method calls \
66854             [`Option < Box < TsTypeAnn > >::visit_mut_children_with_ast_path`]. If you want to \
66855             recurse, you need to call it manually."]
66856    #[inline]
66857    fn visit_mut_opt_ts_type_ann(
66858        &mut self,
66859        node: &mut Option<Box<TsTypeAnn>>,
66860        __ast_path: &mut AstKindPath,
66861    ) {
66862        <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66863            node, self, __ast_path,
66864        )
66865    }
66866    #[doc = "Visit a node of type `Option < Box < TsTypeParamDecl > >`.\n\nBy default, this method \
66867             calls [`Option < Box < TsTypeParamDecl > >::visit_mut_children_with_ast_path`]. If \
66868             you want to recurse, you need to call it manually."]
66869    #[inline]
66870    fn visit_mut_opt_ts_type_param_decl(
66871        &mut self,
66872        node: &mut Option<Box<TsTypeParamDecl>>,
66873        __ast_path: &mut AstKindPath,
66874    ) {
66875        < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < Self > > :: visit_mut_children_with_ast_path (node , self , __ast_path)
66876    }
66877    #[doc = "Visit a node of type `Option < Box < TsTypeParamInstantiation > >`.\n\nBy default, \
66878             this method calls [`Option < Box < TsTypeParamInstantiation > \
66879             >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call it \
66880             manually."]
66881    #[inline]
66882    fn visit_mut_opt_ts_type_param_instantiation(
66883        &mut self,
66884        node: &mut Option<Box<TsTypeParamInstantiation>>,
66885        __ast_path: &mut AstKindPath,
66886    ) {
66887        < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < Self > > :: visit_mut_children_with_ast_path (node , self , __ast_path)
66888    }
66889    #[doc = "Visit a node of type `Option < VarDeclOrExpr >`.\n\nBy default, this method calls \
66890             [`Option < VarDeclOrExpr >::visit_mut_children_with_ast_path`]. If you want to \
66891             recurse, you need to call it manually."]
66892    #[inline]
66893    fn visit_mut_opt_var_decl_or_expr(
66894        &mut self,
66895        node: &mut Option<VarDeclOrExpr>,
66896        __ast_path: &mut AstKindPath,
66897    ) {
66898        <Option<VarDeclOrExpr> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66899            node, self, __ast_path,
66900        )
66901    }
66902    #[doc = "Visit a node of type `Vec < Option < ExprOrSpread > >`.\n\nBy default, this method \
66903             calls [`Vec < Option < ExprOrSpread > >::visit_mut_children_with_ast_path`]. If you \
66904             want to recurse, you need to call it manually."]
66905    #[inline]
66906    fn visit_mut_opt_vec_expr_or_spreads(
66907        &mut self,
66908        node: &mut Vec<Option<ExprOrSpread>>,
66909        __ast_path: &mut AstKindPath,
66910    ) {
66911        <Vec<Option<ExprOrSpread>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66912            node, self, __ast_path,
66913        )
66914    }
66915    #[doc = "Visit a node of type `Vec < Option < Pat > >`.\n\nBy default, this method calls [`Vec \
66916             < Option < Pat > >::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66917             need to call it manually."]
66918    #[inline]
66919    fn visit_mut_opt_vec_pats(
66920        &mut self,
66921        node: &mut Vec<Option<Pat>>,
66922        __ast_path: &mut AstKindPath,
66923    ) {
66924        <Vec<Option<Pat>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66925            node, self, __ast_path,
66926        )
66927    }
66928    #[doc = "Visit a node of type `Param`.\n\nBy default, this method calls \
66929             [`Param::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66930             it manually."]
66931    #[inline]
66932    fn visit_mut_param(&mut self, node: &mut Param, __ast_path: &mut AstKindPath) {
66933        <Param as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66934            node, self, __ast_path,
66935        )
66936    }
66937    #[doc = "Visit a node of type `ParamOrTsParamProp`.\n\nBy default, this method calls \
66938             [`ParamOrTsParamProp::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66939             need to call it manually."]
66940    #[inline]
66941    fn visit_mut_param_or_ts_param_prop(
66942        &mut self,
66943        node: &mut ParamOrTsParamProp,
66944        __ast_path: &mut AstKindPath,
66945    ) {
66946        <ParamOrTsParamProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66947            node, self, __ast_path,
66948        )
66949    }
66950    #[doc = "Visit a node of type `Vec < ParamOrTsParamProp >`.\n\nBy default, this method calls \
66951             [`Vec < ParamOrTsParamProp >::visit_mut_children_with_ast_path`]. If you want to \
66952             recurse, you need to call it manually."]
66953    #[inline]
66954    fn visit_mut_param_or_ts_param_props(
66955        &mut self,
66956        node: &mut Vec<ParamOrTsParamProp>,
66957        __ast_path: &mut AstKindPath,
66958    ) {
66959        <Vec<ParamOrTsParamProp> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66960            node, self, __ast_path,
66961        )
66962    }
66963    #[doc = "Visit a node of type `Vec < Param >`.\n\nBy default, this method calls [`Vec < Param \
66964             >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call it \
66965             manually."]
66966    #[inline]
66967    fn visit_mut_params(&mut self, node: &mut Vec<Param>, __ast_path: &mut AstKindPath) {
66968        <Vec<Param> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66969            node, self, __ast_path,
66970        )
66971    }
66972    #[doc = "Visit a node of type `ParenExpr`.\n\nBy default, this method calls \
66973             [`ParenExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66974             call it manually."]
66975    #[inline]
66976    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr, __ast_path: &mut AstKindPath) {
66977        <ParenExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66978            node, self, __ast_path,
66979        )
66980    }
66981    #[doc = "Visit a node of type `Pat`.\n\nBy default, this method calls \
66982             [`Pat::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66983             it manually."]
66984    #[inline]
66985    fn visit_mut_pat(&mut self, node: &mut Pat, __ast_path: &mut AstKindPath) {
66986        <Pat as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(node, self, __ast_path)
66987    }
66988    #[doc = "Visit a node of type `Vec < Pat >`.\n\nBy default, this method calls [`Vec < Pat \
66989             >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call it \
66990             manually."]
66991    #[inline]
66992    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>, __ast_path: &mut AstKindPath) {
66993        <Vec<Pat> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66994            node, self, __ast_path,
66995        )
66996    }
66997    #[doc = "Visit a node of type `PrivateMethod`.\n\nBy default, this method calls \
66998             [`PrivateMethod::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66999             to call it manually."]
67000    #[inline]
67001    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod, __ast_path: &mut AstKindPath) {
67002        <PrivateMethod as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67003            node, self, __ast_path,
67004        )
67005    }
67006    #[doc = "Visit a node of type `PrivateName`.\n\nBy default, this method calls \
67007             [`PrivateName::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67008             to call it manually."]
67009    #[inline]
67010    fn visit_mut_private_name(&mut self, node: &mut PrivateName, __ast_path: &mut AstKindPath) {
67011        <PrivateName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67012            node, self, __ast_path,
67013        )
67014    }
67015    #[doc = "Visit a node of type `PrivateProp`.\n\nBy default, this method calls \
67016             [`PrivateProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67017             to call it manually."]
67018    #[inline]
67019    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp, __ast_path: &mut AstKindPath) {
67020        <PrivateProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67021            node, self, __ast_path,
67022        )
67023    }
67024    #[doc = "Visit a node of type `Program`.\n\nBy default, this method calls \
67025             [`Program::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67026             call it manually."]
67027    #[inline]
67028    fn visit_mut_program(&mut self, node: &mut Program, __ast_path: &mut AstKindPath) {
67029        <Program as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67030            node, self, __ast_path,
67031        )
67032    }
67033    #[doc = "Visit a node of type `Prop`.\n\nBy default, this method calls \
67034             [`Prop::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
67035             it manually."]
67036    #[inline]
67037    fn visit_mut_prop(&mut self, node: &mut Prop, __ast_path: &mut AstKindPath) {
67038        <Prop as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67039            node, self, __ast_path,
67040        )
67041    }
67042    #[doc = "Visit a node of type `PropName`.\n\nBy default, this method calls \
67043             [`PropName::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67044             call it manually."]
67045    #[inline]
67046    fn visit_mut_prop_name(&mut self, node: &mut PropName, __ast_path: &mut AstKindPath) {
67047        <PropName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67048            node, self, __ast_path,
67049        )
67050    }
67051    #[doc = "Visit a node of type `PropOrSpread`.\n\nBy default, this method calls \
67052             [`PropOrSpread::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67053             to call it manually."]
67054    #[inline]
67055    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread, __ast_path: &mut AstKindPath) {
67056        <PropOrSpread as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67057            node, self, __ast_path,
67058        )
67059    }
67060    #[doc = "Visit a node of type `Vec < PropOrSpread >`.\n\nBy default, this method calls [`Vec < \
67061             PropOrSpread >::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67062             to call it manually."]
67063    #[inline]
67064    fn visit_mut_prop_or_spreads(
67065        &mut self,
67066        node: &mut Vec<PropOrSpread>,
67067        __ast_path: &mut AstKindPath,
67068    ) {
67069        <Vec<PropOrSpread> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67070            node, self, __ast_path,
67071        )
67072    }
67073    #[doc = "Visit a node of type `Regex`.\n\nBy default, this method calls \
67074             [`Regex::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
67075             it manually."]
67076    #[inline]
67077    fn visit_mut_regex(&mut self, node: &mut Regex, __ast_path: &mut AstKindPath) {
67078        <Regex as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67079            node, self, __ast_path,
67080        )
67081    }
67082    #[doc = "Visit a node of type `RestPat`.\n\nBy default, this method calls \
67083             [`RestPat::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67084             call it manually."]
67085    #[inline]
67086    fn visit_mut_rest_pat(&mut self, node: &mut RestPat, __ast_path: &mut AstKindPath) {
67087        <RestPat as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67088            node, self, __ast_path,
67089        )
67090    }
67091    #[doc = "Visit a node of type `ReturnStmt`.\n\nBy default, this method calls \
67092             [`ReturnStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67093             call it manually."]
67094    #[inline]
67095    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt, __ast_path: &mut AstKindPath) {
67096        <ReturnStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67097            node, self, __ast_path,
67098        )
67099    }
67100    #[doc = "Visit a node of type `Script`.\n\nBy default, this method calls \
67101             [`Script::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67102             call it manually."]
67103    #[inline]
67104    fn visit_mut_script(&mut self, node: &mut Script, __ast_path: &mut AstKindPath) {
67105        <Script as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67106            node, self, __ast_path,
67107        )
67108    }
67109    #[doc = "Visit a node of type `SeqExpr`.\n\nBy default, this method calls \
67110             [`SeqExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67111             call it manually."]
67112    #[inline]
67113    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr, __ast_path: &mut AstKindPath) {
67114        <SeqExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67115            node, self, __ast_path,
67116        )
67117    }
67118    #[doc = "Visit a node of type `SetterProp`.\n\nBy default, this method calls \
67119             [`SetterProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67120             call it manually."]
67121    #[inline]
67122    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp, __ast_path: &mut AstKindPath) {
67123        <SetterProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67124            node, self, __ast_path,
67125        )
67126    }
67127    #[doc = "Visit a node of type `SimpleAssignTarget`.\n\nBy default, this method calls \
67128             [`SimpleAssignTarget::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67129             need to call it manually."]
67130    #[inline]
67131    fn visit_mut_simple_assign_target(
67132        &mut self,
67133        node: &mut SimpleAssignTarget,
67134        __ast_path: &mut AstKindPath,
67135    ) {
67136        <SimpleAssignTarget as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67137            node, self, __ast_path,
67138        )
67139    }
67140    #[doc = "Visit a node of type `swc_common :: Span`.\n\nBy default, this method calls \
67141             [`swc_common :: Span::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67142             need to call it manually."]
67143    #[inline]
67144    fn visit_mut_span(&mut self, node: &mut swc_common::Span, __ast_path: &mut AstKindPath) {
67145        <swc_common::Span as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67146            node, self, __ast_path,
67147        )
67148    }
67149    #[doc = "Visit a node of type `SpreadElement`.\n\nBy default, this method calls \
67150             [`SpreadElement::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67151             to call it manually."]
67152    #[inline]
67153    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement, __ast_path: &mut AstKindPath) {
67154        <SpreadElement as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67155            node, self, __ast_path,
67156        )
67157    }
67158    #[doc = "Visit a node of type `StaticBlock`.\n\nBy default, this method calls \
67159             [`StaticBlock::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67160             to call it manually."]
67161    #[inline]
67162    fn visit_mut_static_block(&mut self, node: &mut StaticBlock, __ast_path: &mut AstKindPath) {
67163        <StaticBlock as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67164            node, self, __ast_path,
67165        )
67166    }
67167    #[doc = "Visit a node of type `Stmt`.\n\nBy default, this method calls \
67168             [`Stmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
67169             it manually."]
67170    #[inline]
67171    fn visit_mut_stmt(&mut self, node: &mut Stmt, __ast_path: &mut AstKindPath) {
67172        <Stmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67173            node, self, __ast_path,
67174        )
67175    }
67176    #[doc = "Visit a node of type `Vec < Stmt >`.\n\nBy default, this method calls [`Vec < Stmt \
67177             >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call it \
67178             manually."]
67179    #[inline]
67180    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>, __ast_path: &mut AstKindPath) {
67181        <Vec<Stmt> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67182            node, self, __ast_path,
67183        )
67184    }
67185    #[doc = "Visit a node of type `Str`.\n\nBy default, this method calls \
67186             [`Str::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
67187             it manually."]
67188    #[inline]
67189    fn visit_mut_str(&mut self, node: &mut Str, __ast_path: &mut AstKindPath) {
67190        <Str as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(node, self, __ast_path)
67191    }
67192    #[doc = "Visit a node of type `Super`.\n\nBy default, this method calls \
67193             [`Super::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
67194             it manually."]
67195    #[inline]
67196    fn visit_mut_super(&mut self, node: &mut Super, __ast_path: &mut AstKindPath) {
67197        <Super as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67198            node, self, __ast_path,
67199        )
67200    }
67201    #[doc = "Visit a node of type `SuperProp`.\n\nBy default, this method calls \
67202             [`SuperProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67203             call it manually."]
67204    #[inline]
67205    fn visit_mut_super_prop(&mut self, node: &mut SuperProp, __ast_path: &mut AstKindPath) {
67206        <SuperProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67207            node, self, __ast_path,
67208        )
67209    }
67210    #[doc = "Visit a node of type `SuperPropExpr`.\n\nBy default, this method calls \
67211             [`SuperPropExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67212             to call it manually."]
67213    #[inline]
67214    fn visit_mut_super_prop_expr(
67215        &mut self,
67216        node: &mut SuperPropExpr,
67217        __ast_path: &mut AstKindPath,
67218    ) {
67219        <SuperPropExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67220            node, self, __ast_path,
67221        )
67222    }
67223    #[doc = "Visit a node of type `SwitchCase`.\n\nBy default, this method calls \
67224             [`SwitchCase::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67225             call it manually."]
67226    #[inline]
67227    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase, __ast_path: &mut AstKindPath) {
67228        <SwitchCase as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67229            node, self, __ast_path,
67230        )
67231    }
67232    #[doc = "Visit a node of type `Vec < SwitchCase >`.\n\nBy default, this method calls [`Vec < \
67233             SwitchCase >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67234             call it manually."]
67235    #[inline]
67236    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>, __ast_path: &mut AstKindPath) {
67237        <Vec<SwitchCase> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67238            node, self, __ast_path,
67239        )
67240    }
67241    #[doc = "Visit a node of type `SwitchStmt`.\n\nBy default, this method calls \
67242             [`SwitchStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67243             call it manually."]
67244    #[inline]
67245    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt, __ast_path: &mut AstKindPath) {
67246        <SwitchStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67247            node, self, __ast_path,
67248        )
67249    }
67250    #[doc = "Visit a node of type `swc_common :: SyntaxContext`.\n\nBy default, this method calls \
67251             [`swc_common :: SyntaxContext::visit_mut_children_with_ast_path`]. If you want to \
67252             recurse, you need to call it manually."]
67253    #[inline]
67254    fn visit_mut_syntax_context(
67255        &mut self,
67256        node: &mut swc_common::SyntaxContext,
67257        __ast_path: &mut AstKindPath,
67258    ) {
67259        <swc_common::SyntaxContext as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67260            node, self, __ast_path,
67261        )
67262    }
67263    #[doc = "Visit a node of type `TaggedTpl`.\n\nBy default, this method calls \
67264             [`TaggedTpl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67265             call it manually."]
67266    #[inline]
67267    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl, __ast_path: &mut AstKindPath) {
67268        <TaggedTpl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67269            node, self, __ast_path,
67270        )
67271    }
67272    #[doc = "Visit a node of type `ThisExpr`.\n\nBy default, this method calls \
67273             [`ThisExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67274             call it manually."]
67275    #[inline]
67276    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr, __ast_path: &mut AstKindPath) {
67277        <ThisExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67278            node, self, __ast_path,
67279        )
67280    }
67281    #[doc = "Visit a node of type `ThrowStmt`.\n\nBy default, this method calls \
67282             [`ThrowStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67283             call it manually."]
67284    #[inline]
67285    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt, __ast_path: &mut AstKindPath) {
67286        <ThrowStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67287            node, self, __ast_path,
67288        )
67289    }
67290    #[doc = "Visit a node of type `Tpl`.\n\nBy default, this method calls \
67291             [`Tpl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
67292             it manually."]
67293    #[inline]
67294    fn visit_mut_tpl(&mut self, node: &mut Tpl, __ast_path: &mut AstKindPath) {
67295        <Tpl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(node, self, __ast_path)
67296    }
67297    #[doc = "Visit a node of type `TplElement`.\n\nBy default, this method calls \
67298             [`TplElement::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67299             call it manually."]
67300    #[inline]
67301    fn visit_mut_tpl_element(&mut self, node: &mut TplElement, __ast_path: &mut AstKindPath) {
67302        <TplElement as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67303            node, self, __ast_path,
67304        )
67305    }
67306    #[doc = "Visit a node of type `Vec < TplElement >`.\n\nBy default, this method calls [`Vec < \
67307             TplElement >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67308             call it manually."]
67309    #[inline]
67310    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>, __ast_path: &mut AstKindPath) {
67311        <Vec<TplElement> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67312            node, self, __ast_path,
67313        )
67314    }
67315    #[doc = "Visit a node of type `TruePlusMinus`.\n\nBy default, this method calls \
67316             [`TruePlusMinus::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67317             to call it manually."]
67318    #[inline]
67319    fn visit_mut_true_plus_minus(
67320        &mut self,
67321        node: &mut TruePlusMinus,
67322        __ast_path: &mut AstKindPath,
67323    ) {
67324        <TruePlusMinus as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67325            node, self, __ast_path,
67326        )
67327    }
67328    #[doc = "Visit a node of type `TryStmt`.\n\nBy default, this method calls \
67329             [`TryStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67330             call it manually."]
67331    #[inline]
67332    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt, __ast_path: &mut AstKindPath) {
67333        <TryStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67334            node, self, __ast_path,
67335        )
67336    }
67337    #[doc = "Visit a node of type `TsArrayType`.\n\nBy default, this method calls \
67338             [`TsArrayType::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67339             to call it manually."]
67340    #[inline]
67341    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType, __ast_path: &mut AstKindPath) {
67342        <TsArrayType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67343            node, self, __ast_path,
67344        )
67345    }
67346    #[doc = "Visit a node of type `TsAsExpr`.\n\nBy default, this method calls \
67347             [`TsAsExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67348             call it manually."]
67349    #[inline]
67350    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr, __ast_path: &mut AstKindPath) {
67351        <TsAsExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67352            node, self, __ast_path,
67353        )
67354    }
67355    #[doc = "Visit a node of type `TsCallSignatureDecl`.\n\nBy default, this method calls \
67356             [`TsCallSignatureDecl::visit_mut_children_with_ast_path`]. If you want to recurse, \
67357             you need to call it manually."]
67358    #[inline]
67359    fn visit_mut_ts_call_signature_decl(
67360        &mut self,
67361        node: &mut TsCallSignatureDecl,
67362        __ast_path: &mut AstKindPath,
67363    ) {
67364        <TsCallSignatureDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67365            node, self, __ast_path,
67366        )
67367    }
67368    #[doc = "Visit a node of type `TsConditionalType`.\n\nBy default, this method calls \
67369             [`TsConditionalType::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67370             need to call it manually."]
67371    #[inline]
67372    fn visit_mut_ts_conditional_type(
67373        &mut self,
67374        node: &mut TsConditionalType,
67375        __ast_path: &mut AstKindPath,
67376    ) {
67377        <TsConditionalType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67378            node, self, __ast_path,
67379        )
67380    }
67381    #[doc = "Visit a node of type `TsConstAssertion`.\n\nBy default, this method calls \
67382             [`TsConstAssertion::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67383             need to call it manually."]
67384    #[inline]
67385    fn visit_mut_ts_const_assertion(
67386        &mut self,
67387        node: &mut TsConstAssertion,
67388        __ast_path: &mut AstKindPath,
67389    ) {
67390        <TsConstAssertion as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67391            node, self, __ast_path,
67392        )
67393    }
67394    #[doc = "Visit a node of type `TsConstructSignatureDecl`.\n\nBy default, this method calls \
67395             [`TsConstructSignatureDecl::visit_mut_children_with_ast_path`]. If you want to \
67396             recurse, you need to call it manually."]
67397    #[inline]
67398    fn visit_mut_ts_construct_signature_decl(
67399        &mut self,
67400        node: &mut TsConstructSignatureDecl,
67401        __ast_path: &mut AstKindPath,
67402    ) {
67403        <TsConstructSignatureDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67404            node, self, __ast_path,
67405        )
67406    }
67407    #[doc = "Visit a node of type `TsConstructorType`.\n\nBy default, this method calls \
67408             [`TsConstructorType::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67409             need to call it manually."]
67410    #[inline]
67411    fn visit_mut_ts_constructor_type(
67412        &mut self,
67413        node: &mut TsConstructorType,
67414        __ast_path: &mut AstKindPath,
67415    ) {
67416        <TsConstructorType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67417            node, self, __ast_path,
67418        )
67419    }
67420    #[doc = "Visit a node of type `TsEntityName`.\n\nBy default, this method calls \
67421             [`TsEntityName::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67422             to call it manually."]
67423    #[inline]
67424    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName, __ast_path: &mut AstKindPath) {
67425        <TsEntityName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67426            node, self, __ast_path,
67427        )
67428    }
67429    #[doc = "Visit a node of type `TsEnumDecl`.\n\nBy default, this method calls \
67430             [`TsEnumDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67431             call it manually."]
67432    #[inline]
67433    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl, __ast_path: &mut AstKindPath) {
67434        <TsEnumDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67435            node, self, __ast_path,
67436        )
67437    }
67438    #[doc = "Visit a node of type `TsEnumMember`.\n\nBy default, this method calls \
67439             [`TsEnumMember::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67440             to call it manually."]
67441    #[inline]
67442    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember, __ast_path: &mut AstKindPath) {
67443        <TsEnumMember as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67444            node, self, __ast_path,
67445        )
67446    }
67447    #[doc = "Visit a node of type `TsEnumMemberId`.\n\nBy default, this method calls \
67448             [`TsEnumMemberId::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67449             need to call it manually."]
67450    #[inline]
67451    fn visit_mut_ts_enum_member_id(
67452        &mut self,
67453        node: &mut TsEnumMemberId,
67454        __ast_path: &mut AstKindPath,
67455    ) {
67456        <TsEnumMemberId as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67457            node, self, __ast_path,
67458        )
67459    }
67460    #[doc = "Visit a node of type `Vec < TsEnumMember >`.\n\nBy default, this method calls [`Vec < \
67461             TsEnumMember >::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67462             to call it manually."]
67463    #[inline]
67464    fn visit_mut_ts_enum_members(
67465        &mut self,
67466        node: &mut Vec<TsEnumMember>,
67467        __ast_path: &mut AstKindPath,
67468    ) {
67469        <Vec<TsEnumMember> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67470            node, self, __ast_path,
67471        )
67472    }
67473    #[doc = "Visit a node of type `TsExportAssignment`.\n\nBy default, this method calls \
67474             [`TsExportAssignment::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67475             need to call it manually."]
67476    #[inline]
67477    fn visit_mut_ts_export_assignment(
67478        &mut self,
67479        node: &mut TsExportAssignment,
67480        __ast_path: &mut AstKindPath,
67481    ) {
67482        <TsExportAssignment as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67483            node, self, __ast_path,
67484        )
67485    }
67486    #[doc = "Visit a node of type `TsExprWithTypeArgs`.\n\nBy default, this method calls \
67487             [`TsExprWithTypeArgs::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67488             need to call it manually."]
67489    #[inline]
67490    fn visit_mut_ts_expr_with_type_args(
67491        &mut self,
67492        node: &mut TsExprWithTypeArgs,
67493        __ast_path: &mut AstKindPath,
67494    ) {
67495        <TsExprWithTypeArgs as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67496            node, self, __ast_path,
67497        )
67498    }
67499    #[doc = "Visit a node of type `Vec < TsExprWithTypeArgs >`.\n\nBy default, this method calls \
67500             [`Vec < TsExprWithTypeArgs >::visit_mut_children_with_ast_path`]. If you want to \
67501             recurse, you need to call it manually."]
67502    #[inline]
67503    fn visit_mut_ts_expr_with_type_argss(
67504        &mut self,
67505        node: &mut Vec<TsExprWithTypeArgs>,
67506        __ast_path: &mut AstKindPath,
67507    ) {
67508        <Vec<TsExprWithTypeArgs> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67509            node, self, __ast_path,
67510        )
67511    }
67512    #[doc = "Visit a node of type `TsExternalModuleRef`.\n\nBy default, this method calls \
67513             [`TsExternalModuleRef::visit_mut_children_with_ast_path`]. If you want to recurse, \
67514             you need to call it manually."]
67515    #[inline]
67516    fn visit_mut_ts_external_module_ref(
67517        &mut self,
67518        node: &mut TsExternalModuleRef,
67519        __ast_path: &mut AstKindPath,
67520    ) {
67521        <TsExternalModuleRef as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67522            node, self, __ast_path,
67523        )
67524    }
67525    #[doc = "Visit a node of type `TsFnOrConstructorType`.\n\nBy default, this method calls \
67526             [`TsFnOrConstructorType::visit_mut_children_with_ast_path`]. If you want to recurse, \
67527             you need to call it manually."]
67528    #[inline]
67529    fn visit_mut_ts_fn_or_constructor_type(
67530        &mut self,
67531        node: &mut TsFnOrConstructorType,
67532        __ast_path: &mut AstKindPath,
67533    ) {
67534        <TsFnOrConstructorType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67535            node, self, __ast_path,
67536        )
67537    }
67538    #[doc = "Visit a node of type `TsFnParam`.\n\nBy default, this method calls \
67539             [`TsFnParam::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67540             call it manually."]
67541    #[inline]
67542    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam, __ast_path: &mut AstKindPath) {
67543        <TsFnParam as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67544            node, self, __ast_path,
67545        )
67546    }
67547    #[doc = "Visit a node of type `Vec < TsFnParam >`.\n\nBy default, this method calls [`Vec < \
67548             TsFnParam >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67549             call it manually."]
67550    #[inline]
67551    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>, __ast_path: &mut AstKindPath) {
67552        <Vec<TsFnParam> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67553            node, self, __ast_path,
67554        )
67555    }
67556    #[doc = "Visit a node of type `TsFnType`.\n\nBy default, this method calls \
67557             [`TsFnType::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67558             call it manually."]
67559    #[inline]
67560    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType, __ast_path: &mut AstKindPath) {
67561        <TsFnType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67562            node, self, __ast_path,
67563        )
67564    }
67565    #[doc = "Visit a node of type `TsGetterSignature`.\n\nBy default, this method calls \
67566             [`TsGetterSignature::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67567             need to call it manually."]
67568    #[inline]
67569    fn visit_mut_ts_getter_signature(
67570        &mut self,
67571        node: &mut TsGetterSignature,
67572        __ast_path: &mut AstKindPath,
67573    ) {
67574        <TsGetterSignature as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67575            node, self, __ast_path,
67576        )
67577    }
67578    #[doc = "Visit a node of type `TsImportCallOptions`.\n\nBy default, this method calls \
67579             [`TsImportCallOptions::visit_mut_children_with_ast_path`]. If you want to recurse, \
67580             you need to call it manually."]
67581    #[inline]
67582    fn visit_mut_ts_import_call_options(
67583        &mut self,
67584        node: &mut TsImportCallOptions,
67585        __ast_path: &mut AstKindPath,
67586    ) {
67587        <TsImportCallOptions as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67588            node, self, __ast_path,
67589        )
67590    }
67591    #[doc = "Visit a node of type `TsImportEqualsDecl`.\n\nBy default, this method calls \
67592             [`TsImportEqualsDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67593             need to call it manually."]
67594    #[inline]
67595    fn visit_mut_ts_import_equals_decl(
67596        &mut self,
67597        node: &mut TsImportEqualsDecl,
67598        __ast_path: &mut AstKindPath,
67599    ) {
67600        <TsImportEqualsDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67601            node, self, __ast_path,
67602        )
67603    }
67604    #[doc = "Visit a node of type `TsImportType`.\n\nBy default, this method calls \
67605             [`TsImportType::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67606             to call it manually."]
67607    #[inline]
67608    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType, __ast_path: &mut AstKindPath) {
67609        <TsImportType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67610            node, self, __ast_path,
67611        )
67612    }
67613    #[doc = "Visit a node of type `TsIndexSignature`.\n\nBy default, this method calls \
67614             [`TsIndexSignature::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67615             need to call it manually."]
67616    #[inline]
67617    fn visit_mut_ts_index_signature(
67618        &mut self,
67619        node: &mut TsIndexSignature,
67620        __ast_path: &mut AstKindPath,
67621    ) {
67622        <TsIndexSignature as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67623            node, self, __ast_path,
67624        )
67625    }
67626    #[doc = "Visit a node of type `TsIndexedAccessType`.\n\nBy default, this method calls \
67627             [`TsIndexedAccessType::visit_mut_children_with_ast_path`]. If you want to recurse, \
67628             you need to call it manually."]
67629    #[inline]
67630    fn visit_mut_ts_indexed_access_type(
67631        &mut self,
67632        node: &mut TsIndexedAccessType,
67633        __ast_path: &mut AstKindPath,
67634    ) {
67635        <TsIndexedAccessType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67636            node, self, __ast_path,
67637        )
67638    }
67639    #[doc = "Visit a node of type `TsInferType`.\n\nBy default, this method calls \
67640             [`TsInferType::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67641             to call it manually."]
67642    #[inline]
67643    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType, __ast_path: &mut AstKindPath) {
67644        <TsInferType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67645            node, self, __ast_path,
67646        )
67647    }
67648    #[doc = "Visit a node of type `TsInstantiation`.\n\nBy default, this method calls \
67649             [`TsInstantiation::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67650             need to call it manually."]
67651    #[inline]
67652    fn visit_mut_ts_instantiation(
67653        &mut self,
67654        node: &mut TsInstantiation,
67655        __ast_path: &mut AstKindPath,
67656    ) {
67657        <TsInstantiation as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67658            node, self, __ast_path,
67659        )
67660    }
67661    #[doc = "Visit a node of type `TsInterfaceBody`.\n\nBy default, this method calls \
67662             [`TsInterfaceBody::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67663             need to call it manually."]
67664    #[inline]
67665    fn visit_mut_ts_interface_body(
67666        &mut self,
67667        node: &mut TsInterfaceBody,
67668        __ast_path: &mut AstKindPath,
67669    ) {
67670        <TsInterfaceBody as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67671            node, self, __ast_path,
67672        )
67673    }
67674    #[doc = "Visit a node of type `TsInterfaceDecl`.\n\nBy default, this method calls \
67675             [`TsInterfaceDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67676             need to call it manually."]
67677    #[inline]
67678    fn visit_mut_ts_interface_decl(
67679        &mut self,
67680        node: &mut TsInterfaceDecl,
67681        __ast_path: &mut AstKindPath,
67682    ) {
67683        <TsInterfaceDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67684            node, self, __ast_path,
67685        )
67686    }
67687    #[doc = "Visit a node of type `TsIntersectionType`.\n\nBy default, this method calls \
67688             [`TsIntersectionType::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67689             need to call it manually."]
67690    #[inline]
67691    fn visit_mut_ts_intersection_type(
67692        &mut self,
67693        node: &mut TsIntersectionType,
67694        __ast_path: &mut AstKindPath,
67695    ) {
67696        <TsIntersectionType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67697            node, self, __ast_path,
67698        )
67699    }
67700    #[doc = "Visit a node of type `TsKeywordType`.\n\nBy default, this method calls \
67701             [`TsKeywordType::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67702             to call it manually."]
67703    #[inline]
67704    fn visit_mut_ts_keyword_type(
67705        &mut self,
67706        node: &mut TsKeywordType,
67707        __ast_path: &mut AstKindPath,
67708    ) {
67709        <TsKeywordType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67710            node, self, __ast_path,
67711        )
67712    }
67713    #[doc = "Visit a node of type `TsKeywordTypeKind`.\n\nBy default, this method calls \
67714             [`TsKeywordTypeKind::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67715             need to call it manually."]
67716    #[inline]
67717    fn visit_mut_ts_keyword_type_kind(
67718        &mut self,
67719        node: &mut TsKeywordTypeKind,
67720        __ast_path: &mut AstKindPath,
67721    ) {
67722        <TsKeywordTypeKind as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67723            node, self, __ast_path,
67724        )
67725    }
67726    #[doc = "Visit a node of type `TsLit`.\n\nBy default, this method calls \
67727             [`TsLit::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
67728             it manually."]
67729    #[inline]
67730    fn visit_mut_ts_lit(&mut self, node: &mut TsLit, __ast_path: &mut AstKindPath) {
67731        <TsLit as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67732            node, self, __ast_path,
67733        )
67734    }
67735    #[doc = "Visit a node of type `TsLitType`.\n\nBy default, this method calls \
67736             [`TsLitType::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67737             call it manually."]
67738    #[inline]
67739    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType, __ast_path: &mut AstKindPath) {
67740        <TsLitType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67741            node, self, __ast_path,
67742        )
67743    }
67744    #[doc = "Visit a node of type `TsMappedType`.\n\nBy default, this method calls \
67745             [`TsMappedType::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67746             to call it manually."]
67747    #[inline]
67748    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType, __ast_path: &mut AstKindPath) {
67749        <TsMappedType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67750            node, self, __ast_path,
67751        )
67752    }
67753    #[doc = "Visit a node of type `TsMethodSignature`.\n\nBy default, this method calls \
67754             [`TsMethodSignature::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67755             need to call it manually."]
67756    #[inline]
67757    fn visit_mut_ts_method_signature(
67758        &mut self,
67759        node: &mut TsMethodSignature,
67760        __ast_path: &mut AstKindPath,
67761    ) {
67762        <TsMethodSignature as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67763            node, self, __ast_path,
67764        )
67765    }
67766    #[doc = "Visit a node of type `TsModuleBlock`.\n\nBy default, this method calls \
67767             [`TsModuleBlock::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67768             to call it manually."]
67769    #[inline]
67770    fn visit_mut_ts_module_block(
67771        &mut self,
67772        node: &mut TsModuleBlock,
67773        __ast_path: &mut AstKindPath,
67774    ) {
67775        <TsModuleBlock as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67776            node, self, __ast_path,
67777        )
67778    }
67779    #[doc = "Visit a node of type `TsModuleDecl`.\n\nBy default, this method calls \
67780             [`TsModuleDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67781             to call it manually."]
67782    #[inline]
67783    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl, __ast_path: &mut AstKindPath) {
67784        <TsModuleDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67785            node, self, __ast_path,
67786        )
67787    }
67788    #[doc = "Visit a node of type `TsModuleName`.\n\nBy default, this method calls \
67789             [`TsModuleName::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67790             to call it manually."]
67791    #[inline]
67792    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName, __ast_path: &mut AstKindPath) {
67793        <TsModuleName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67794            node, self, __ast_path,
67795        )
67796    }
67797    #[doc = "Visit a node of type `TsModuleRef`.\n\nBy default, this method calls \
67798             [`TsModuleRef::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67799             to call it manually."]
67800    #[inline]
67801    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef, __ast_path: &mut AstKindPath) {
67802        <TsModuleRef as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67803            node, self, __ast_path,
67804        )
67805    }
67806    #[doc = "Visit a node of type `TsNamespaceBody`.\n\nBy default, this method calls \
67807             [`TsNamespaceBody::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67808             need to call it manually."]
67809    #[inline]
67810    fn visit_mut_ts_namespace_body(
67811        &mut self,
67812        node: &mut TsNamespaceBody,
67813        __ast_path: &mut AstKindPath,
67814    ) {
67815        <TsNamespaceBody as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67816            node, self, __ast_path,
67817        )
67818    }
67819    #[doc = "Visit a node of type `TsNamespaceDecl`.\n\nBy default, this method calls \
67820             [`TsNamespaceDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67821             need to call it manually."]
67822    #[inline]
67823    fn visit_mut_ts_namespace_decl(
67824        &mut self,
67825        node: &mut TsNamespaceDecl,
67826        __ast_path: &mut AstKindPath,
67827    ) {
67828        <TsNamespaceDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67829            node, self, __ast_path,
67830        )
67831    }
67832    #[doc = "Visit a node of type `TsNamespaceExportDecl`.\n\nBy default, this method calls \
67833             [`TsNamespaceExportDecl::visit_mut_children_with_ast_path`]. If you want to recurse, \
67834             you need to call it manually."]
67835    #[inline]
67836    fn visit_mut_ts_namespace_export_decl(
67837        &mut self,
67838        node: &mut TsNamespaceExportDecl,
67839        __ast_path: &mut AstKindPath,
67840    ) {
67841        <TsNamespaceExportDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67842            node, self, __ast_path,
67843        )
67844    }
67845    #[doc = "Visit a node of type `TsNonNullExpr`.\n\nBy default, this method calls \
67846             [`TsNonNullExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67847             to call it manually."]
67848    #[inline]
67849    fn visit_mut_ts_non_null_expr(
67850        &mut self,
67851        node: &mut TsNonNullExpr,
67852        __ast_path: &mut AstKindPath,
67853    ) {
67854        <TsNonNullExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67855            node, self, __ast_path,
67856        )
67857    }
67858    #[doc = "Visit a node of type `TsOptionalType`.\n\nBy default, this method calls \
67859             [`TsOptionalType::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67860             need to call it manually."]
67861    #[inline]
67862    fn visit_mut_ts_optional_type(
67863        &mut self,
67864        node: &mut TsOptionalType,
67865        __ast_path: &mut AstKindPath,
67866    ) {
67867        <TsOptionalType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67868            node, self, __ast_path,
67869        )
67870    }
67871    #[doc = "Visit a node of type `TsParamProp`.\n\nBy default, this method calls \
67872             [`TsParamProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67873             to call it manually."]
67874    #[inline]
67875    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp, __ast_path: &mut AstKindPath) {
67876        <TsParamProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67877            node, self, __ast_path,
67878        )
67879    }
67880    #[doc = "Visit a node of type `TsParamPropParam`.\n\nBy default, this method calls \
67881             [`TsParamPropParam::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67882             need to call it manually."]
67883    #[inline]
67884    fn visit_mut_ts_param_prop_param(
67885        &mut self,
67886        node: &mut TsParamPropParam,
67887        __ast_path: &mut AstKindPath,
67888    ) {
67889        <TsParamPropParam as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67890            node, self, __ast_path,
67891        )
67892    }
67893    #[doc = "Visit a node of type `TsParenthesizedType`.\n\nBy default, this method calls \
67894             [`TsParenthesizedType::visit_mut_children_with_ast_path`]. If you want to recurse, \
67895             you need to call it manually."]
67896    #[inline]
67897    fn visit_mut_ts_parenthesized_type(
67898        &mut self,
67899        node: &mut TsParenthesizedType,
67900        __ast_path: &mut AstKindPath,
67901    ) {
67902        <TsParenthesizedType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67903            node, self, __ast_path,
67904        )
67905    }
67906    #[doc = "Visit a node of type `TsPropertySignature`.\n\nBy default, this method calls \
67907             [`TsPropertySignature::visit_mut_children_with_ast_path`]. If you want to recurse, \
67908             you need to call it manually."]
67909    #[inline]
67910    fn visit_mut_ts_property_signature(
67911        &mut self,
67912        node: &mut TsPropertySignature,
67913        __ast_path: &mut AstKindPath,
67914    ) {
67915        <TsPropertySignature as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67916            node, self, __ast_path,
67917        )
67918    }
67919    #[doc = "Visit a node of type `TsQualifiedName`.\n\nBy default, this method calls \
67920             [`TsQualifiedName::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67921             need to call it manually."]
67922    #[inline]
67923    fn visit_mut_ts_qualified_name(
67924        &mut self,
67925        node: &mut TsQualifiedName,
67926        __ast_path: &mut AstKindPath,
67927    ) {
67928        <TsQualifiedName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67929            node, self, __ast_path,
67930        )
67931    }
67932    #[doc = "Visit a node of type `TsRestType`.\n\nBy default, this method calls \
67933             [`TsRestType::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67934             call it manually."]
67935    #[inline]
67936    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType, __ast_path: &mut AstKindPath) {
67937        <TsRestType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67938            node, self, __ast_path,
67939        )
67940    }
67941    #[doc = "Visit a node of type `TsSatisfiesExpr`.\n\nBy default, this method calls \
67942             [`TsSatisfiesExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67943             need to call it manually."]
67944    #[inline]
67945    fn visit_mut_ts_satisfies_expr(
67946        &mut self,
67947        node: &mut TsSatisfiesExpr,
67948        __ast_path: &mut AstKindPath,
67949    ) {
67950        <TsSatisfiesExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67951            node, self, __ast_path,
67952        )
67953    }
67954    #[doc = "Visit a node of type `TsSetterSignature`.\n\nBy default, this method calls \
67955             [`TsSetterSignature::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67956             need to call it manually."]
67957    #[inline]
67958    fn visit_mut_ts_setter_signature(
67959        &mut self,
67960        node: &mut TsSetterSignature,
67961        __ast_path: &mut AstKindPath,
67962    ) {
67963        <TsSetterSignature as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67964            node, self, __ast_path,
67965        )
67966    }
67967    #[doc = "Visit a node of type `TsThisType`.\n\nBy default, this method calls \
67968             [`TsThisType::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67969             call it manually."]
67970    #[inline]
67971    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType, __ast_path: &mut AstKindPath) {
67972        <TsThisType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67973            node, self, __ast_path,
67974        )
67975    }
67976    #[doc = "Visit a node of type `TsThisTypeOrIdent`.\n\nBy default, this method calls \
67977             [`TsThisTypeOrIdent::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67978             need to call it manually."]
67979    #[inline]
67980    fn visit_mut_ts_this_type_or_ident(
67981        &mut self,
67982        node: &mut TsThisTypeOrIdent,
67983        __ast_path: &mut AstKindPath,
67984    ) {
67985        <TsThisTypeOrIdent as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67986            node, self, __ast_path,
67987        )
67988    }
67989    #[doc = "Visit a node of type `TsTplLitType`.\n\nBy default, this method calls \
67990             [`TsTplLitType::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67991             to call it manually."]
67992    #[inline]
67993    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType, __ast_path: &mut AstKindPath) {
67994        <TsTplLitType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67995            node, self, __ast_path,
67996        )
67997    }
67998    #[doc = "Visit a node of type `TsTupleElement`.\n\nBy default, this method calls \
67999             [`TsTupleElement::visit_mut_children_with_ast_path`]. If you want to recurse, you \
68000             need to call it manually."]
68001    #[inline]
68002    fn visit_mut_ts_tuple_element(
68003        &mut self,
68004        node: &mut TsTupleElement,
68005        __ast_path: &mut AstKindPath,
68006    ) {
68007        <TsTupleElement as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68008            node, self, __ast_path,
68009        )
68010    }
68011    #[doc = "Visit a node of type `Vec < TsTupleElement >`.\n\nBy default, this method calls [`Vec \
68012             < TsTupleElement >::visit_mut_children_with_ast_path`]. If you want to recurse, you \
68013             need to call it manually."]
68014    #[inline]
68015    fn visit_mut_ts_tuple_elements(
68016        &mut self,
68017        node: &mut Vec<TsTupleElement>,
68018        __ast_path: &mut AstKindPath,
68019    ) {
68020        <Vec<TsTupleElement> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68021            node, self, __ast_path,
68022        )
68023    }
68024    #[doc = "Visit a node of type `TsTupleType`.\n\nBy default, this method calls \
68025             [`TsTupleType::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
68026             to call it manually."]
68027    #[inline]
68028    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType, __ast_path: &mut AstKindPath) {
68029        <TsTupleType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68030            node, self, __ast_path,
68031        )
68032    }
68033    #[doc = "Visit a node of type `TsType`.\n\nBy default, this method calls \
68034             [`TsType::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
68035             call it manually."]
68036    #[inline]
68037    fn visit_mut_ts_type(&mut self, node: &mut TsType, __ast_path: &mut AstKindPath) {
68038        <TsType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68039            node, self, __ast_path,
68040        )
68041    }
68042    #[doc = "Visit a node of type `TsTypeAliasDecl`.\n\nBy default, this method calls \
68043             [`TsTypeAliasDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you \
68044             need to call it manually."]
68045    #[inline]
68046    fn visit_mut_ts_type_alias_decl(
68047        &mut self,
68048        node: &mut TsTypeAliasDecl,
68049        __ast_path: &mut AstKindPath,
68050    ) {
68051        <TsTypeAliasDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68052            node, self, __ast_path,
68053        )
68054    }
68055    #[doc = "Visit a node of type `TsTypeAnn`.\n\nBy default, this method calls \
68056             [`TsTypeAnn::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
68057             call it manually."]
68058    #[inline]
68059    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn, __ast_path: &mut AstKindPath) {
68060        <TsTypeAnn as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68061            node, self, __ast_path,
68062        )
68063    }
68064    #[doc = "Visit a node of type `TsTypeAssertion`.\n\nBy default, this method calls \
68065             [`TsTypeAssertion::visit_mut_children_with_ast_path`]. If you want to recurse, you \
68066             need to call it manually."]
68067    #[inline]
68068    fn visit_mut_ts_type_assertion(
68069        &mut self,
68070        node: &mut TsTypeAssertion,
68071        __ast_path: &mut AstKindPath,
68072    ) {
68073        <TsTypeAssertion as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68074            node, self, __ast_path,
68075        )
68076    }
68077    #[doc = "Visit a node of type `TsTypeElement`.\n\nBy default, this method calls \
68078             [`TsTypeElement::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
68079             to call it manually."]
68080    #[inline]
68081    fn visit_mut_ts_type_element(
68082        &mut self,
68083        node: &mut TsTypeElement,
68084        __ast_path: &mut AstKindPath,
68085    ) {
68086        <TsTypeElement as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68087            node, self, __ast_path,
68088        )
68089    }
68090    #[doc = "Visit a node of type `Vec < TsTypeElement >`.\n\nBy default, this method calls [`Vec \
68091             < TsTypeElement >::visit_mut_children_with_ast_path`]. If you want to recurse, you \
68092             need to call it manually."]
68093    #[inline]
68094    fn visit_mut_ts_type_elements(
68095        &mut self,
68096        node: &mut Vec<TsTypeElement>,
68097        __ast_path: &mut AstKindPath,
68098    ) {
68099        <Vec<TsTypeElement> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68100            node, self, __ast_path,
68101        )
68102    }
68103    #[doc = "Visit a node of type `TsTypeLit`.\n\nBy default, this method calls \
68104             [`TsTypeLit::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
68105             call it manually."]
68106    #[inline]
68107    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit, __ast_path: &mut AstKindPath) {
68108        <TsTypeLit as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68109            node, self, __ast_path,
68110        )
68111    }
68112    #[doc = "Visit a node of type `TsTypeOperator`.\n\nBy default, this method calls \
68113             [`TsTypeOperator::visit_mut_children_with_ast_path`]. If you want to recurse, you \
68114             need to call it manually."]
68115    #[inline]
68116    fn visit_mut_ts_type_operator(
68117        &mut self,
68118        node: &mut TsTypeOperator,
68119        __ast_path: &mut AstKindPath,
68120    ) {
68121        <TsTypeOperator as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68122            node, self, __ast_path,
68123        )
68124    }
68125    #[doc = "Visit a node of type `TsTypeOperatorOp`.\n\nBy default, this method calls \
68126             [`TsTypeOperatorOp::visit_mut_children_with_ast_path`]. If you want to recurse, you \
68127             need to call it manually."]
68128    #[inline]
68129    fn visit_mut_ts_type_operator_op(
68130        &mut self,
68131        node: &mut TsTypeOperatorOp,
68132        __ast_path: &mut AstKindPath,
68133    ) {
68134        <TsTypeOperatorOp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68135            node, self, __ast_path,
68136        )
68137    }
68138    #[doc = "Visit a node of type `TsTypeParam`.\n\nBy default, this method calls \
68139             [`TsTypeParam::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
68140             to call it manually."]
68141    #[inline]
68142    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam, __ast_path: &mut AstKindPath) {
68143        <TsTypeParam as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68144            node, self, __ast_path,
68145        )
68146    }
68147    #[doc = "Visit a node of type `TsTypeParamDecl`.\n\nBy default, this method calls \
68148             [`TsTypeParamDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you \
68149             need to call it manually."]
68150    #[inline]
68151    fn visit_mut_ts_type_param_decl(
68152        &mut self,
68153        node: &mut TsTypeParamDecl,
68154        __ast_path: &mut AstKindPath,
68155    ) {
68156        <TsTypeParamDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68157            node, self, __ast_path,
68158        )
68159    }
68160    #[doc = "Visit a node of type `TsTypeParamInstantiation`.\n\nBy default, this method calls \
68161             [`TsTypeParamInstantiation::visit_mut_children_with_ast_path`]. If you want to \
68162             recurse, you need to call it manually."]
68163    #[inline]
68164    fn visit_mut_ts_type_param_instantiation(
68165        &mut self,
68166        node: &mut TsTypeParamInstantiation,
68167        __ast_path: &mut AstKindPath,
68168    ) {
68169        <TsTypeParamInstantiation as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68170            node, self, __ast_path,
68171        )
68172    }
68173    #[doc = "Visit a node of type `Vec < TsTypeParam >`.\n\nBy default, this method calls [`Vec < \
68174             TsTypeParam >::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
68175             to call it manually."]
68176    #[inline]
68177    fn visit_mut_ts_type_params(
68178        &mut self,
68179        node: &mut Vec<TsTypeParam>,
68180        __ast_path: &mut AstKindPath,
68181    ) {
68182        <Vec<TsTypeParam> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68183            node, self, __ast_path,
68184        )
68185    }
68186    #[doc = "Visit a node of type `TsTypePredicate`.\n\nBy default, this method calls \
68187             [`TsTypePredicate::visit_mut_children_with_ast_path`]. If you want to recurse, you \
68188             need to call it manually."]
68189    #[inline]
68190    fn visit_mut_ts_type_predicate(
68191        &mut self,
68192        node: &mut TsTypePredicate,
68193        __ast_path: &mut AstKindPath,
68194    ) {
68195        <TsTypePredicate as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68196            node, self, __ast_path,
68197        )
68198    }
68199    #[doc = "Visit a node of type `TsTypeQuery`.\n\nBy default, this method calls \
68200             [`TsTypeQuery::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
68201             to call it manually."]
68202    #[inline]
68203    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery, __ast_path: &mut AstKindPath) {
68204        <TsTypeQuery as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68205            node, self, __ast_path,
68206        )
68207    }
68208    #[doc = "Visit a node of type `TsTypeQueryExpr`.\n\nBy default, this method calls \
68209             [`TsTypeQueryExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you \
68210             need to call it manually."]
68211    #[inline]
68212    fn visit_mut_ts_type_query_expr(
68213        &mut self,
68214        node: &mut TsTypeQueryExpr,
68215        __ast_path: &mut AstKindPath,
68216    ) {
68217        <TsTypeQueryExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68218            node, self, __ast_path,
68219        )
68220    }
68221    #[doc = "Visit a node of type `TsTypeRef`.\n\nBy default, this method calls \
68222             [`TsTypeRef::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
68223             call it manually."]
68224    #[inline]
68225    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef, __ast_path: &mut AstKindPath) {
68226        <TsTypeRef as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68227            node, self, __ast_path,
68228        )
68229    }
68230    #[doc = "Visit a node of type `Vec < Box < TsType > >`.\n\nBy default, this method calls [`Vec \
68231             < Box < TsType > >::visit_mut_children_with_ast_path`]. If you want to recurse, you \
68232             need to call it manually."]
68233    #[inline]
68234    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>, __ast_path: &mut AstKindPath) {
68235        <Vec<Box<TsType>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68236            node, self, __ast_path,
68237        )
68238    }
68239    #[doc = "Visit a node of type `TsUnionOrIntersectionType`.\n\nBy default, this method calls \
68240             [`TsUnionOrIntersectionType::visit_mut_children_with_ast_path`]. If you want to \
68241             recurse, you need to call it manually."]
68242    #[inline]
68243    fn visit_mut_ts_union_or_intersection_type(
68244        &mut self,
68245        node: &mut TsUnionOrIntersectionType,
68246        __ast_path: &mut AstKindPath,
68247    ) {
68248        <TsUnionOrIntersectionType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68249            node, self, __ast_path,
68250        )
68251    }
68252    #[doc = "Visit a node of type `TsUnionType`.\n\nBy default, this method calls \
68253             [`TsUnionType::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
68254             to call it manually."]
68255    #[inline]
68256    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType, __ast_path: &mut AstKindPath) {
68257        <TsUnionType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68258            node, self, __ast_path,
68259        )
68260    }
68261    #[doc = "Visit a node of type `UnaryExpr`.\n\nBy default, this method calls \
68262             [`UnaryExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
68263             call it manually."]
68264    #[inline]
68265    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr, __ast_path: &mut AstKindPath) {
68266        <UnaryExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68267            node, self, __ast_path,
68268        )
68269    }
68270    #[doc = "Visit a node of type `UnaryOp`.\n\nBy default, this method calls \
68271             [`UnaryOp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
68272             call it manually."]
68273    #[inline]
68274    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp, __ast_path: &mut AstKindPath) {
68275        <UnaryOp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68276            node, self, __ast_path,
68277        )
68278    }
68279    #[doc = "Visit a node of type `UpdateExpr`.\n\nBy default, this method calls \
68280             [`UpdateExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
68281             call it manually."]
68282    #[inline]
68283    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr, __ast_path: &mut AstKindPath) {
68284        <UpdateExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68285            node, self, __ast_path,
68286        )
68287    }
68288    #[doc = "Visit a node of type `UpdateOp`.\n\nBy default, this method calls \
68289             [`UpdateOp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
68290             call it manually."]
68291    #[inline]
68292    fn visit_mut_update_op(&mut self, node: &mut UpdateOp, __ast_path: &mut AstKindPath) {
68293        <UpdateOp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68294            node, self, __ast_path,
68295        )
68296    }
68297    #[doc = "Visit a node of type `UsingDecl`.\n\nBy default, this method calls \
68298             [`UsingDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
68299             call it manually."]
68300    #[inline]
68301    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl, __ast_path: &mut AstKindPath) {
68302        <UsingDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68303            node, self, __ast_path,
68304        )
68305    }
68306    #[doc = "Visit a node of type `VarDecl`.\n\nBy default, this method calls \
68307             [`VarDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
68308             call it manually."]
68309    #[inline]
68310    fn visit_mut_var_decl(&mut self, node: &mut VarDecl, __ast_path: &mut AstKindPath) {
68311        <VarDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68312            node, self, __ast_path,
68313        )
68314    }
68315    #[doc = "Visit a node of type `VarDeclKind`.\n\nBy default, this method calls \
68316             [`VarDeclKind::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
68317             to call it manually."]
68318    #[inline]
68319    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind, __ast_path: &mut AstKindPath) {
68320        <VarDeclKind as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68321            node, self, __ast_path,
68322        )
68323    }
68324    #[doc = "Visit a node of type `VarDeclOrExpr`.\n\nBy default, this method calls \
68325             [`VarDeclOrExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
68326             to call it manually."]
68327    #[inline]
68328    fn visit_mut_var_decl_or_expr(
68329        &mut self,
68330        node: &mut VarDeclOrExpr,
68331        __ast_path: &mut AstKindPath,
68332    ) {
68333        <VarDeclOrExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68334            node, self, __ast_path,
68335        )
68336    }
68337    #[doc = "Visit a node of type `VarDeclarator`.\n\nBy default, this method calls \
68338             [`VarDeclarator::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
68339             to call it manually."]
68340    #[inline]
68341    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator, __ast_path: &mut AstKindPath) {
68342        <VarDeclarator as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68343            node, self, __ast_path,
68344        )
68345    }
68346    #[doc = "Visit a node of type `Vec < VarDeclarator >`.\n\nBy default, this method calls [`Vec \
68347             < VarDeclarator >::visit_mut_children_with_ast_path`]. If you want to recurse, you \
68348             need to call it manually."]
68349    #[inline]
68350    fn visit_mut_var_declarators(
68351        &mut self,
68352        node: &mut Vec<VarDeclarator>,
68353        __ast_path: &mut AstKindPath,
68354    ) {
68355        <Vec<VarDeclarator> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68356            node, self, __ast_path,
68357        )
68358    }
68359    #[doc = "Visit a node of type `WhileStmt`.\n\nBy default, this method calls \
68360             [`WhileStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
68361             call it manually."]
68362    #[inline]
68363    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt, __ast_path: &mut AstKindPath) {
68364        <WhileStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68365            node, self, __ast_path,
68366        )
68367    }
68368    #[doc = "Visit a node of type `WithStmt`.\n\nBy default, this method calls \
68369             [`WithStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
68370             call it manually."]
68371    #[inline]
68372    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt, __ast_path: &mut AstKindPath) {
68373        <WithStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68374            node, self, __ast_path,
68375        )
68376    }
68377    #[doc = "Visit a node of type `YieldExpr`.\n\nBy default, this method calls \
68378             [`YieldExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
68379             call it manually."]
68380    #[inline]
68381    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr, __ast_path: &mut AstKindPath) {
68382        <YieldExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
68383            node, self, __ast_path,
68384        )
68385    }
68386}
68387#[cfg(any(docsrs, feature = "path"))]
68388#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
68389impl<V> VisitMutAstPath for &mut V
68390where
68391    V: ?Sized + VisitMutAstPath,
68392{
68393    #[inline]
68394    fn visit_mut_accessibility(&mut self, node: &mut Accessibility, __ast_path: &mut AstKindPath) {
68395        <V as VisitMutAstPath>::visit_mut_accessibility(&mut **self, node, __ast_path)
68396    }
68397
68398    #[inline]
68399    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit, __ast_path: &mut AstKindPath) {
68400        <V as VisitMutAstPath>::visit_mut_array_lit(&mut **self, node, __ast_path)
68401    }
68402
68403    #[inline]
68404    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat, __ast_path: &mut AstKindPath) {
68405        <V as VisitMutAstPath>::visit_mut_array_pat(&mut **self, node, __ast_path)
68406    }
68407
68408    #[inline]
68409    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr, __ast_path: &mut AstKindPath) {
68410        <V as VisitMutAstPath>::visit_mut_arrow_expr(&mut **self, node, __ast_path)
68411    }
68412
68413    #[inline]
68414    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr, __ast_path: &mut AstKindPath) {
68415        <V as VisitMutAstPath>::visit_mut_assign_expr(&mut **self, node, __ast_path)
68416    }
68417
68418    #[inline]
68419    fn visit_mut_assign_op(&mut self, node: &mut AssignOp, __ast_path: &mut AstKindPath) {
68420        <V as VisitMutAstPath>::visit_mut_assign_op(&mut **self, node, __ast_path)
68421    }
68422
68423    #[inline]
68424    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat, __ast_path: &mut AstKindPath) {
68425        <V as VisitMutAstPath>::visit_mut_assign_pat(&mut **self, node, __ast_path)
68426    }
68427
68428    #[inline]
68429    fn visit_mut_assign_pat_prop(
68430        &mut self,
68431        node: &mut AssignPatProp,
68432        __ast_path: &mut AstKindPath,
68433    ) {
68434        <V as VisitMutAstPath>::visit_mut_assign_pat_prop(&mut **self, node, __ast_path)
68435    }
68436
68437    #[inline]
68438    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp, __ast_path: &mut AstKindPath) {
68439        <V as VisitMutAstPath>::visit_mut_assign_prop(&mut **self, node, __ast_path)
68440    }
68441
68442    #[inline]
68443    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget, __ast_path: &mut AstKindPath) {
68444        <V as VisitMutAstPath>::visit_mut_assign_target(&mut **self, node, __ast_path)
68445    }
68446
68447    #[inline]
68448    fn visit_mut_assign_target_pat(
68449        &mut self,
68450        node: &mut AssignTargetPat,
68451        __ast_path: &mut AstKindPath,
68452    ) {
68453        <V as VisitMutAstPath>::visit_mut_assign_target_pat(&mut **self, node, __ast_path)
68454    }
68455
68456    #[inline]
68457    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom, __ast_path: &mut AstKindPath) {
68458        <V as VisitMutAstPath>::visit_mut_atom(&mut **self, node, __ast_path)
68459    }
68460
68461    #[inline]
68462    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor, __ast_path: &mut AstKindPath) {
68463        <V as VisitMutAstPath>::visit_mut_auto_accessor(&mut **self, node, __ast_path)
68464    }
68465
68466    #[inline]
68467    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr, __ast_path: &mut AstKindPath) {
68468        <V as VisitMutAstPath>::visit_mut_await_expr(&mut **self, node, __ast_path)
68469    }
68470
68471    #[inline]
68472    fn visit_mut_big_int(&mut self, node: &mut BigInt, __ast_path: &mut AstKindPath) {
68473        <V as VisitMutAstPath>::visit_mut_big_int(&mut **self, node, __ast_path)
68474    }
68475
68476    #[inline]
68477    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue, __ast_path: &mut AstKindPath) {
68478        <V as VisitMutAstPath>::visit_mut_big_int_value(&mut **self, node, __ast_path)
68479    }
68480
68481    #[inline]
68482    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr, __ast_path: &mut AstKindPath) {
68483        <V as VisitMutAstPath>::visit_mut_bin_expr(&mut **self, node, __ast_path)
68484    }
68485
68486    #[inline]
68487    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp, __ast_path: &mut AstKindPath) {
68488        <V as VisitMutAstPath>::visit_mut_binary_op(&mut **self, node, __ast_path)
68489    }
68490
68491    #[inline]
68492    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent, __ast_path: &mut AstKindPath) {
68493        <V as VisitMutAstPath>::visit_mut_binding_ident(&mut **self, node, __ast_path)
68494    }
68495
68496    #[inline]
68497    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt, __ast_path: &mut AstKindPath) {
68498        <V as VisitMutAstPath>::visit_mut_block_stmt(&mut **self, node, __ast_path)
68499    }
68500
68501    #[inline]
68502    fn visit_mut_block_stmt_or_expr(
68503        &mut self,
68504        node: &mut BlockStmtOrExpr,
68505        __ast_path: &mut AstKindPath,
68506    ) {
68507        <V as VisitMutAstPath>::visit_mut_block_stmt_or_expr(&mut **self, node, __ast_path)
68508    }
68509
68510    #[inline]
68511    fn visit_mut_bool(&mut self, node: &mut Bool, __ast_path: &mut AstKindPath) {
68512        <V as VisitMutAstPath>::visit_mut_bool(&mut **self, node, __ast_path)
68513    }
68514
68515    #[inline]
68516    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt, __ast_path: &mut AstKindPath) {
68517        <V as VisitMutAstPath>::visit_mut_break_stmt(&mut **self, node, __ast_path)
68518    }
68519
68520    #[inline]
68521    fn visit_mut_call_expr(&mut self, node: &mut CallExpr, __ast_path: &mut AstKindPath) {
68522        <V as VisitMutAstPath>::visit_mut_call_expr(&mut **self, node, __ast_path)
68523    }
68524
68525    #[inline]
68526    fn visit_mut_callee(&mut self, node: &mut Callee, __ast_path: &mut AstKindPath) {
68527        <V as VisitMutAstPath>::visit_mut_callee(&mut **self, node, __ast_path)
68528    }
68529
68530    #[inline]
68531    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause, __ast_path: &mut AstKindPath) {
68532        <V as VisitMutAstPath>::visit_mut_catch_clause(&mut **self, node, __ast_path)
68533    }
68534
68535    #[inline]
68536    fn visit_mut_class(&mut self, node: &mut Class, __ast_path: &mut AstKindPath) {
68537        <V as VisitMutAstPath>::visit_mut_class(&mut **self, node, __ast_path)
68538    }
68539
68540    #[inline]
68541    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl, __ast_path: &mut AstKindPath) {
68542        <V as VisitMutAstPath>::visit_mut_class_decl(&mut **self, node, __ast_path)
68543    }
68544
68545    #[inline]
68546    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr, __ast_path: &mut AstKindPath) {
68547        <V as VisitMutAstPath>::visit_mut_class_expr(&mut **self, node, __ast_path)
68548    }
68549
68550    #[inline]
68551    fn visit_mut_class_member(&mut self, node: &mut ClassMember, __ast_path: &mut AstKindPath) {
68552        <V as VisitMutAstPath>::visit_mut_class_member(&mut **self, node, __ast_path)
68553    }
68554
68555    #[inline]
68556    fn visit_mut_class_members(
68557        &mut self,
68558        node: &mut Vec<ClassMember>,
68559        __ast_path: &mut AstKindPath,
68560    ) {
68561        <V as VisitMutAstPath>::visit_mut_class_members(&mut **self, node, __ast_path)
68562    }
68563
68564    #[inline]
68565    fn visit_mut_class_method(&mut self, node: &mut ClassMethod, __ast_path: &mut AstKindPath) {
68566        <V as VisitMutAstPath>::visit_mut_class_method(&mut **self, node, __ast_path)
68567    }
68568
68569    #[inline]
68570    fn visit_mut_class_prop(&mut self, node: &mut ClassProp, __ast_path: &mut AstKindPath) {
68571        <V as VisitMutAstPath>::visit_mut_class_prop(&mut **self, node, __ast_path)
68572    }
68573
68574    #[inline]
68575    fn visit_mut_computed_prop_name(
68576        &mut self,
68577        node: &mut ComputedPropName,
68578        __ast_path: &mut AstKindPath,
68579    ) {
68580        <V as VisitMutAstPath>::visit_mut_computed_prop_name(&mut **self, node, __ast_path)
68581    }
68582
68583    #[inline]
68584    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr, __ast_path: &mut AstKindPath) {
68585        <V as VisitMutAstPath>::visit_mut_cond_expr(&mut **self, node, __ast_path)
68586    }
68587
68588    #[inline]
68589    fn visit_mut_constructor(&mut self, node: &mut Constructor, __ast_path: &mut AstKindPath) {
68590        <V as VisitMutAstPath>::visit_mut_constructor(&mut **self, node, __ast_path)
68591    }
68592
68593    #[inline]
68594    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt, __ast_path: &mut AstKindPath) {
68595        <V as VisitMutAstPath>::visit_mut_continue_stmt(&mut **self, node, __ast_path)
68596    }
68597
68598    #[inline]
68599    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt, __ast_path: &mut AstKindPath) {
68600        <V as VisitMutAstPath>::visit_mut_debugger_stmt(&mut **self, node, __ast_path)
68601    }
68602
68603    #[inline]
68604    fn visit_mut_decl(&mut self, node: &mut Decl, __ast_path: &mut AstKindPath) {
68605        <V as VisitMutAstPath>::visit_mut_decl(&mut **self, node, __ast_path)
68606    }
68607
68608    #[inline]
68609    fn visit_mut_decorator(&mut self, node: &mut Decorator, __ast_path: &mut AstKindPath) {
68610        <V as VisitMutAstPath>::visit_mut_decorator(&mut **self, node, __ast_path)
68611    }
68612
68613    #[inline]
68614    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>, __ast_path: &mut AstKindPath) {
68615        <V as VisitMutAstPath>::visit_mut_decorators(&mut **self, node, __ast_path)
68616    }
68617
68618    #[inline]
68619    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl, __ast_path: &mut AstKindPath) {
68620        <V as VisitMutAstPath>::visit_mut_default_decl(&mut **self, node, __ast_path)
68621    }
68622
68623    #[inline]
68624    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt, __ast_path: &mut AstKindPath) {
68625        <V as VisitMutAstPath>::visit_mut_do_while_stmt(&mut **self, node, __ast_path)
68626    }
68627
68628    #[inline]
68629    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt, __ast_path: &mut AstKindPath) {
68630        <V as VisitMutAstPath>::visit_mut_empty_stmt(&mut **self, node, __ast_path)
68631    }
68632
68633    #[inline]
68634    fn visit_mut_export_all(&mut self, node: &mut ExportAll, __ast_path: &mut AstKindPath) {
68635        <V as VisitMutAstPath>::visit_mut_export_all(&mut **self, node, __ast_path)
68636    }
68637
68638    #[inline]
68639    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl, __ast_path: &mut AstKindPath) {
68640        <V as VisitMutAstPath>::visit_mut_export_decl(&mut **self, node, __ast_path)
68641    }
68642
68643    #[inline]
68644    fn visit_mut_export_default_decl(
68645        &mut self,
68646        node: &mut ExportDefaultDecl,
68647        __ast_path: &mut AstKindPath,
68648    ) {
68649        <V as VisitMutAstPath>::visit_mut_export_default_decl(&mut **self, node, __ast_path)
68650    }
68651
68652    #[inline]
68653    fn visit_mut_export_default_expr(
68654        &mut self,
68655        node: &mut ExportDefaultExpr,
68656        __ast_path: &mut AstKindPath,
68657    ) {
68658        <V as VisitMutAstPath>::visit_mut_export_default_expr(&mut **self, node, __ast_path)
68659    }
68660
68661    #[inline]
68662    fn visit_mut_export_default_specifier(
68663        &mut self,
68664        node: &mut ExportDefaultSpecifier,
68665        __ast_path: &mut AstKindPath,
68666    ) {
68667        <V as VisitMutAstPath>::visit_mut_export_default_specifier(&mut **self, node, __ast_path)
68668    }
68669
68670    #[inline]
68671    fn visit_mut_export_named_specifier(
68672        &mut self,
68673        node: &mut ExportNamedSpecifier,
68674        __ast_path: &mut AstKindPath,
68675    ) {
68676        <V as VisitMutAstPath>::visit_mut_export_named_specifier(&mut **self, node, __ast_path)
68677    }
68678
68679    #[inline]
68680    fn visit_mut_export_namespace_specifier(
68681        &mut self,
68682        node: &mut ExportNamespaceSpecifier,
68683        __ast_path: &mut AstKindPath,
68684    ) {
68685        <V as VisitMutAstPath>::visit_mut_export_namespace_specifier(&mut **self, node, __ast_path)
68686    }
68687
68688    #[inline]
68689    fn visit_mut_export_specifier(
68690        &mut self,
68691        node: &mut ExportSpecifier,
68692        __ast_path: &mut AstKindPath,
68693    ) {
68694        <V as VisitMutAstPath>::visit_mut_export_specifier(&mut **self, node, __ast_path)
68695    }
68696
68697    #[inline]
68698    fn visit_mut_export_specifiers(
68699        &mut self,
68700        node: &mut Vec<ExportSpecifier>,
68701        __ast_path: &mut AstKindPath,
68702    ) {
68703        <V as VisitMutAstPath>::visit_mut_export_specifiers(&mut **self, node, __ast_path)
68704    }
68705
68706    #[inline]
68707    fn visit_mut_expr(&mut self, node: &mut Expr, __ast_path: &mut AstKindPath) {
68708        <V as VisitMutAstPath>::visit_mut_expr(&mut **self, node, __ast_path)
68709    }
68710
68711    #[inline]
68712    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread, __ast_path: &mut AstKindPath) {
68713        <V as VisitMutAstPath>::visit_mut_expr_or_spread(&mut **self, node, __ast_path)
68714    }
68715
68716    #[inline]
68717    fn visit_mut_expr_or_spreads(
68718        &mut self,
68719        node: &mut Vec<ExprOrSpread>,
68720        __ast_path: &mut AstKindPath,
68721    ) {
68722        <V as VisitMutAstPath>::visit_mut_expr_or_spreads(&mut **self, node, __ast_path)
68723    }
68724
68725    #[inline]
68726    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt, __ast_path: &mut AstKindPath) {
68727        <V as VisitMutAstPath>::visit_mut_expr_stmt(&mut **self, node, __ast_path)
68728    }
68729
68730    #[inline]
68731    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>, __ast_path: &mut AstKindPath) {
68732        <V as VisitMutAstPath>::visit_mut_exprs(&mut **self, node, __ast_path)
68733    }
68734
68735    #[inline]
68736    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl, __ast_path: &mut AstKindPath) {
68737        <V as VisitMutAstPath>::visit_mut_fn_decl(&mut **self, node, __ast_path)
68738    }
68739
68740    #[inline]
68741    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr, __ast_path: &mut AstKindPath) {
68742        <V as VisitMutAstPath>::visit_mut_fn_expr(&mut **self, node, __ast_path)
68743    }
68744
68745    #[inline]
68746    fn visit_mut_for_head(&mut self, node: &mut ForHead, __ast_path: &mut AstKindPath) {
68747        <V as VisitMutAstPath>::visit_mut_for_head(&mut **self, node, __ast_path)
68748    }
68749
68750    #[inline]
68751    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt, __ast_path: &mut AstKindPath) {
68752        <V as VisitMutAstPath>::visit_mut_for_in_stmt(&mut **self, node, __ast_path)
68753    }
68754
68755    #[inline]
68756    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt, __ast_path: &mut AstKindPath) {
68757        <V as VisitMutAstPath>::visit_mut_for_of_stmt(&mut **self, node, __ast_path)
68758    }
68759
68760    #[inline]
68761    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt, __ast_path: &mut AstKindPath) {
68762        <V as VisitMutAstPath>::visit_mut_for_stmt(&mut **self, node, __ast_path)
68763    }
68764
68765    #[inline]
68766    fn visit_mut_function(&mut self, node: &mut Function, __ast_path: &mut AstKindPath) {
68767        <V as VisitMutAstPath>::visit_mut_function(&mut **self, node, __ast_path)
68768    }
68769
68770    #[inline]
68771    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp, __ast_path: &mut AstKindPath) {
68772        <V as VisitMutAstPath>::visit_mut_getter_prop(&mut **self, node, __ast_path)
68773    }
68774
68775    #[inline]
68776    fn visit_mut_ident(&mut self, node: &mut Ident, __ast_path: &mut AstKindPath) {
68777        <V as VisitMutAstPath>::visit_mut_ident(&mut **self, node, __ast_path)
68778    }
68779
68780    #[inline]
68781    fn visit_mut_ident_name(&mut self, node: &mut IdentName, __ast_path: &mut AstKindPath) {
68782        <V as VisitMutAstPath>::visit_mut_ident_name(&mut **self, node, __ast_path)
68783    }
68784
68785    #[inline]
68786    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt, __ast_path: &mut AstKindPath) {
68787        <V as VisitMutAstPath>::visit_mut_if_stmt(&mut **self, node, __ast_path)
68788    }
68789
68790    #[inline]
68791    fn visit_mut_import(&mut self, node: &mut Import, __ast_path: &mut AstKindPath) {
68792        <V as VisitMutAstPath>::visit_mut_import(&mut **self, node, __ast_path)
68793    }
68794
68795    #[inline]
68796    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl, __ast_path: &mut AstKindPath) {
68797        <V as VisitMutAstPath>::visit_mut_import_decl(&mut **self, node, __ast_path)
68798    }
68799
68800    #[inline]
68801    fn visit_mut_import_default_specifier(
68802        &mut self,
68803        node: &mut ImportDefaultSpecifier,
68804        __ast_path: &mut AstKindPath,
68805    ) {
68806        <V as VisitMutAstPath>::visit_mut_import_default_specifier(&mut **self, node, __ast_path)
68807    }
68808
68809    #[inline]
68810    fn visit_mut_import_named_specifier(
68811        &mut self,
68812        node: &mut ImportNamedSpecifier,
68813        __ast_path: &mut AstKindPath,
68814    ) {
68815        <V as VisitMutAstPath>::visit_mut_import_named_specifier(&mut **self, node, __ast_path)
68816    }
68817
68818    #[inline]
68819    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase, __ast_path: &mut AstKindPath) {
68820        <V as VisitMutAstPath>::visit_mut_import_phase(&mut **self, node, __ast_path)
68821    }
68822
68823    #[inline]
68824    fn visit_mut_import_specifier(
68825        &mut self,
68826        node: &mut ImportSpecifier,
68827        __ast_path: &mut AstKindPath,
68828    ) {
68829        <V as VisitMutAstPath>::visit_mut_import_specifier(&mut **self, node, __ast_path)
68830    }
68831
68832    #[inline]
68833    fn visit_mut_import_specifiers(
68834        &mut self,
68835        node: &mut Vec<ImportSpecifier>,
68836        __ast_path: &mut AstKindPath,
68837    ) {
68838        <V as VisitMutAstPath>::visit_mut_import_specifiers(&mut **self, node, __ast_path)
68839    }
68840
68841    #[inline]
68842    fn visit_mut_import_star_as_specifier(
68843        &mut self,
68844        node: &mut ImportStarAsSpecifier,
68845        __ast_path: &mut AstKindPath,
68846    ) {
68847        <V as VisitMutAstPath>::visit_mut_import_star_as_specifier(&mut **self, node, __ast_path)
68848    }
68849
68850    #[inline]
68851    fn visit_mut_import_with(&mut self, node: &mut ImportWith, __ast_path: &mut AstKindPath) {
68852        <V as VisitMutAstPath>::visit_mut_import_with(&mut **self, node, __ast_path)
68853    }
68854
68855    #[inline]
68856    fn visit_mut_import_with_item(
68857        &mut self,
68858        node: &mut ImportWithItem,
68859        __ast_path: &mut AstKindPath,
68860    ) {
68861        <V as VisitMutAstPath>::visit_mut_import_with_item(&mut **self, node, __ast_path)
68862    }
68863
68864    #[inline]
68865    fn visit_mut_import_with_items(
68866        &mut self,
68867        node: &mut Vec<ImportWithItem>,
68868        __ast_path: &mut AstKindPath,
68869    ) {
68870        <V as VisitMutAstPath>::visit_mut_import_with_items(&mut **self, node, __ast_path)
68871    }
68872
68873    #[inline]
68874    fn visit_mut_invalid(&mut self, node: &mut Invalid, __ast_path: &mut AstKindPath) {
68875        <V as VisitMutAstPath>::visit_mut_invalid(&mut **self, node, __ast_path)
68876    }
68877
68878    #[inline]
68879    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr, __ast_path: &mut AstKindPath) {
68880        <V as VisitMutAstPath>::visit_mut_jsx_attr(&mut **self, node, __ast_path)
68881    }
68882
68883    #[inline]
68884    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName, __ast_path: &mut AstKindPath) {
68885        <V as VisitMutAstPath>::visit_mut_jsx_attr_name(&mut **self, node, __ast_path)
68886    }
68887
68888    #[inline]
68889    fn visit_mut_jsx_attr_or_spread(
68890        &mut self,
68891        node: &mut JSXAttrOrSpread,
68892        __ast_path: &mut AstKindPath,
68893    ) {
68894        <V as VisitMutAstPath>::visit_mut_jsx_attr_or_spread(&mut **self, node, __ast_path)
68895    }
68896
68897    #[inline]
68898    fn visit_mut_jsx_attr_or_spreads(
68899        &mut self,
68900        node: &mut Vec<JSXAttrOrSpread>,
68901        __ast_path: &mut AstKindPath,
68902    ) {
68903        <V as VisitMutAstPath>::visit_mut_jsx_attr_or_spreads(&mut **self, node, __ast_path)
68904    }
68905
68906    #[inline]
68907    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue, __ast_path: &mut AstKindPath) {
68908        <V as VisitMutAstPath>::visit_mut_jsx_attr_value(&mut **self, node, __ast_path)
68909    }
68910
68911    #[inline]
68912    fn visit_mut_jsx_closing_element(
68913        &mut self,
68914        node: &mut JSXClosingElement,
68915        __ast_path: &mut AstKindPath,
68916    ) {
68917        <V as VisitMutAstPath>::visit_mut_jsx_closing_element(&mut **self, node, __ast_path)
68918    }
68919
68920    #[inline]
68921    fn visit_mut_jsx_closing_fragment(
68922        &mut self,
68923        node: &mut JSXClosingFragment,
68924        __ast_path: &mut AstKindPath,
68925    ) {
68926        <V as VisitMutAstPath>::visit_mut_jsx_closing_fragment(&mut **self, node, __ast_path)
68927    }
68928
68929    #[inline]
68930    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement, __ast_path: &mut AstKindPath) {
68931        <V as VisitMutAstPath>::visit_mut_jsx_element(&mut **self, node, __ast_path)
68932    }
68933
68934    #[inline]
68935    fn visit_mut_jsx_element_child(
68936        &mut self,
68937        node: &mut JSXElementChild,
68938        __ast_path: &mut AstKindPath,
68939    ) {
68940        <V as VisitMutAstPath>::visit_mut_jsx_element_child(&mut **self, node, __ast_path)
68941    }
68942
68943    #[inline]
68944    fn visit_mut_jsx_element_childs(
68945        &mut self,
68946        node: &mut Vec<JSXElementChild>,
68947        __ast_path: &mut AstKindPath,
68948    ) {
68949        <V as VisitMutAstPath>::visit_mut_jsx_element_childs(&mut **self, node, __ast_path)
68950    }
68951
68952    #[inline]
68953    fn visit_mut_jsx_element_name(
68954        &mut self,
68955        node: &mut JSXElementName,
68956        __ast_path: &mut AstKindPath,
68957    ) {
68958        <V as VisitMutAstPath>::visit_mut_jsx_element_name(&mut **self, node, __ast_path)
68959    }
68960
68961    #[inline]
68962    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr, __ast_path: &mut AstKindPath) {
68963        <V as VisitMutAstPath>::visit_mut_jsx_empty_expr(&mut **self, node, __ast_path)
68964    }
68965
68966    #[inline]
68967    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr, __ast_path: &mut AstKindPath) {
68968        <V as VisitMutAstPath>::visit_mut_jsx_expr(&mut **self, node, __ast_path)
68969    }
68970
68971    #[inline]
68972    fn visit_mut_jsx_expr_container(
68973        &mut self,
68974        node: &mut JSXExprContainer,
68975        __ast_path: &mut AstKindPath,
68976    ) {
68977        <V as VisitMutAstPath>::visit_mut_jsx_expr_container(&mut **self, node, __ast_path)
68978    }
68979
68980    #[inline]
68981    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment, __ast_path: &mut AstKindPath) {
68982        <V as VisitMutAstPath>::visit_mut_jsx_fragment(&mut **self, node, __ast_path)
68983    }
68984
68985    #[inline]
68986    fn visit_mut_jsx_member_expr(
68987        &mut self,
68988        node: &mut JSXMemberExpr,
68989        __ast_path: &mut AstKindPath,
68990    ) {
68991        <V as VisitMutAstPath>::visit_mut_jsx_member_expr(&mut **self, node, __ast_path)
68992    }
68993
68994    #[inline]
68995    fn visit_mut_jsx_namespaced_name(
68996        &mut self,
68997        node: &mut JSXNamespacedName,
68998        __ast_path: &mut AstKindPath,
68999    ) {
69000        <V as VisitMutAstPath>::visit_mut_jsx_namespaced_name(&mut **self, node, __ast_path)
69001    }
69002
69003    #[inline]
69004    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject, __ast_path: &mut AstKindPath) {
69005        <V as VisitMutAstPath>::visit_mut_jsx_object(&mut **self, node, __ast_path)
69006    }
69007
69008    #[inline]
69009    fn visit_mut_jsx_opening_element(
69010        &mut self,
69011        node: &mut JSXOpeningElement,
69012        __ast_path: &mut AstKindPath,
69013    ) {
69014        <V as VisitMutAstPath>::visit_mut_jsx_opening_element(&mut **self, node, __ast_path)
69015    }
69016
69017    #[inline]
69018    fn visit_mut_jsx_opening_fragment(
69019        &mut self,
69020        node: &mut JSXOpeningFragment,
69021        __ast_path: &mut AstKindPath,
69022    ) {
69023        <V as VisitMutAstPath>::visit_mut_jsx_opening_fragment(&mut **self, node, __ast_path)
69024    }
69025
69026    #[inline]
69027    fn visit_mut_jsx_spread_child(
69028        &mut self,
69029        node: &mut JSXSpreadChild,
69030        __ast_path: &mut AstKindPath,
69031    ) {
69032        <V as VisitMutAstPath>::visit_mut_jsx_spread_child(&mut **self, node, __ast_path)
69033    }
69034
69035    #[inline]
69036    fn visit_mut_jsx_text(&mut self, node: &mut JSXText, __ast_path: &mut AstKindPath) {
69037        <V as VisitMutAstPath>::visit_mut_jsx_text(&mut **self, node, __ast_path)
69038    }
69039
69040    #[inline]
69041    fn visit_mut_key(&mut self, node: &mut Key, __ast_path: &mut AstKindPath) {
69042        <V as VisitMutAstPath>::visit_mut_key(&mut **self, node, __ast_path)
69043    }
69044
69045    #[inline]
69046    fn visit_mut_key_value_pat_prop(
69047        &mut self,
69048        node: &mut KeyValuePatProp,
69049        __ast_path: &mut AstKindPath,
69050    ) {
69051        <V as VisitMutAstPath>::visit_mut_key_value_pat_prop(&mut **self, node, __ast_path)
69052    }
69053
69054    #[inline]
69055    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp, __ast_path: &mut AstKindPath) {
69056        <V as VisitMutAstPath>::visit_mut_key_value_prop(&mut **self, node, __ast_path)
69057    }
69058
69059    #[inline]
69060    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt, __ast_path: &mut AstKindPath) {
69061        <V as VisitMutAstPath>::visit_mut_labeled_stmt(&mut **self, node, __ast_path)
69062    }
69063
69064    #[inline]
69065    fn visit_mut_lit(&mut self, node: &mut Lit, __ast_path: &mut AstKindPath) {
69066        <V as VisitMutAstPath>::visit_mut_lit(&mut **self, node, __ast_path)
69067    }
69068
69069    #[inline]
69070    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr, __ast_path: &mut AstKindPath) {
69071        <V as VisitMutAstPath>::visit_mut_member_expr(&mut **self, node, __ast_path)
69072    }
69073
69074    #[inline]
69075    fn visit_mut_member_prop(&mut self, node: &mut MemberProp, __ast_path: &mut AstKindPath) {
69076        <V as VisitMutAstPath>::visit_mut_member_prop(&mut **self, node, __ast_path)
69077    }
69078
69079    #[inline]
69080    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr, __ast_path: &mut AstKindPath) {
69081        <V as VisitMutAstPath>::visit_mut_meta_prop_expr(&mut **self, node, __ast_path)
69082    }
69083
69084    #[inline]
69085    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind, __ast_path: &mut AstKindPath) {
69086        <V as VisitMutAstPath>::visit_mut_meta_prop_kind(&mut **self, node, __ast_path)
69087    }
69088
69089    #[inline]
69090    fn visit_mut_method_kind(&mut self, node: &mut MethodKind, __ast_path: &mut AstKindPath) {
69091        <V as VisitMutAstPath>::visit_mut_method_kind(&mut **self, node, __ast_path)
69092    }
69093
69094    #[inline]
69095    fn visit_mut_method_prop(&mut self, node: &mut MethodProp, __ast_path: &mut AstKindPath) {
69096        <V as VisitMutAstPath>::visit_mut_method_prop(&mut **self, node, __ast_path)
69097    }
69098
69099    #[inline]
69100    fn visit_mut_module(&mut self, node: &mut Module, __ast_path: &mut AstKindPath) {
69101        <V as VisitMutAstPath>::visit_mut_module(&mut **self, node, __ast_path)
69102    }
69103
69104    #[inline]
69105    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl, __ast_path: &mut AstKindPath) {
69106        <V as VisitMutAstPath>::visit_mut_module_decl(&mut **self, node, __ast_path)
69107    }
69108
69109    #[inline]
69110    fn visit_mut_module_export_name(
69111        &mut self,
69112        node: &mut ModuleExportName,
69113        __ast_path: &mut AstKindPath,
69114    ) {
69115        <V as VisitMutAstPath>::visit_mut_module_export_name(&mut **self, node, __ast_path)
69116    }
69117
69118    #[inline]
69119    fn visit_mut_module_item(&mut self, node: &mut ModuleItem, __ast_path: &mut AstKindPath) {
69120        <V as VisitMutAstPath>::visit_mut_module_item(&mut **self, node, __ast_path)
69121    }
69122
69123    #[inline]
69124    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>, __ast_path: &mut AstKindPath) {
69125        <V as VisitMutAstPath>::visit_mut_module_items(&mut **self, node, __ast_path)
69126    }
69127
69128    #[inline]
69129    fn visit_mut_named_export(&mut self, node: &mut NamedExport, __ast_path: &mut AstKindPath) {
69130        <V as VisitMutAstPath>::visit_mut_named_export(&mut **self, node, __ast_path)
69131    }
69132
69133    #[inline]
69134    fn visit_mut_new_expr(&mut self, node: &mut NewExpr, __ast_path: &mut AstKindPath) {
69135        <V as VisitMutAstPath>::visit_mut_new_expr(&mut **self, node, __ast_path)
69136    }
69137
69138    #[inline]
69139    fn visit_mut_null(&mut self, node: &mut Null, __ast_path: &mut AstKindPath) {
69140        <V as VisitMutAstPath>::visit_mut_null(&mut **self, node, __ast_path)
69141    }
69142
69143    #[inline]
69144    fn visit_mut_number(&mut self, node: &mut Number, __ast_path: &mut AstKindPath) {
69145        <V as VisitMutAstPath>::visit_mut_number(&mut **self, node, __ast_path)
69146    }
69147
69148    #[inline]
69149    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit, __ast_path: &mut AstKindPath) {
69150        <V as VisitMutAstPath>::visit_mut_object_lit(&mut **self, node, __ast_path)
69151    }
69152
69153    #[inline]
69154    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat, __ast_path: &mut AstKindPath) {
69155        <V as VisitMutAstPath>::visit_mut_object_pat(&mut **self, node, __ast_path)
69156    }
69157
69158    #[inline]
69159    fn visit_mut_object_pat_prop(
69160        &mut self,
69161        node: &mut ObjectPatProp,
69162        __ast_path: &mut AstKindPath,
69163    ) {
69164        <V as VisitMutAstPath>::visit_mut_object_pat_prop(&mut **self, node, __ast_path)
69165    }
69166
69167    #[inline]
69168    fn visit_mut_object_pat_props(
69169        &mut self,
69170        node: &mut Vec<ObjectPatProp>,
69171        __ast_path: &mut AstKindPath,
69172    ) {
69173        <V as VisitMutAstPath>::visit_mut_object_pat_props(&mut **self, node, __ast_path)
69174    }
69175
69176    #[inline]
69177    fn visit_mut_opt_accessibility(
69178        &mut self,
69179        node: &mut Option<Accessibility>,
69180        __ast_path: &mut AstKindPath,
69181    ) {
69182        <V as VisitMutAstPath>::visit_mut_opt_accessibility(&mut **self, node, __ast_path)
69183    }
69184
69185    #[inline]
69186    fn visit_mut_opt_atom(
69187        &mut self,
69188        node: &mut Option<swc_atoms::Atom>,
69189        __ast_path: &mut AstKindPath,
69190    ) {
69191        <V as VisitMutAstPath>::visit_mut_opt_atom(&mut **self, node, __ast_path)
69192    }
69193
69194    #[inline]
69195    fn visit_mut_opt_block_stmt(
69196        &mut self,
69197        node: &mut Option<BlockStmt>,
69198        __ast_path: &mut AstKindPath,
69199    ) {
69200        <V as VisitMutAstPath>::visit_mut_opt_block_stmt(&mut **self, node, __ast_path)
69201    }
69202
69203    #[inline]
69204    fn visit_mut_opt_call(&mut self, node: &mut OptCall, __ast_path: &mut AstKindPath) {
69205        <V as VisitMutAstPath>::visit_mut_opt_call(&mut **self, node, __ast_path)
69206    }
69207
69208    #[inline]
69209    fn visit_mut_opt_catch_clause(
69210        &mut self,
69211        node: &mut Option<CatchClause>,
69212        __ast_path: &mut AstKindPath,
69213    ) {
69214        <V as VisitMutAstPath>::visit_mut_opt_catch_clause(&mut **self, node, __ast_path)
69215    }
69216
69217    #[inline]
69218    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase, __ast_path: &mut AstKindPath) {
69219        <V as VisitMutAstPath>::visit_mut_opt_chain_base(&mut **self, node, __ast_path)
69220    }
69221
69222    #[inline]
69223    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr, __ast_path: &mut AstKindPath) {
69224        <V as VisitMutAstPath>::visit_mut_opt_chain_expr(&mut **self, node, __ast_path)
69225    }
69226
69227    #[inline]
69228    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>, __ast_path: &mut AstKindPath) {
69229        <V as VisitMutAstPath>::visit_mut_opt_expr(&mut **self, node, __ast_path)
69230    }
69231
69232    #[inline]
69233    fn visit_mut_opt_expr_or_spread(
69234        &mut self,
69235        node: &mut Option<ExprOrSpread>,
69236        __ast_path: &mut AstKindPath,
69237    ) {
69238        <V as VisitMutAstPath>::visit_mut_opt_expr_or_spread(&mut **self, node, __ast_path)
69239    }
69240
69241    #[inline]
69242    fn visit_mut_opt_expr_or_spreads(
69243        &mut self,
69244        node: &mut Option<Vec<ExprOrSpread>>,
69245        __ast_path: &mut AstKindPath,
69246    ) {
69247        <V as VisitMutAstPath>::visit_mut_opt_expr_or_spreads(&mut **self, node, __ast_path)
69248    }
69249
69250    #[inline]
69251    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>, __ast_path: &mut AstKindPath) {
69252        <V as VisitMutAstPath>::visit_mut_opt_ident(&mut **self, node, __ast_path)
69253    }
69254
69255    #[inline]
69256    fn visit_mut_opt_jsx_attr_value(
69257        &mut self,
69258        node: &mut Option<JSXAttrValue>,
69259        __ast_path: &mut AstKindPath,
69260    ) {
69261        <V as VisitMutAstPath>::visit_mut_opt_jsx_attr_value(&mut **self, node, __ast_path)
69262    }
69263
69264    #[inline]
69265    fn visit_mut_opt_jsx_closing_element(
69266        &mut self,
69267        node: &mut Option<JSXClosingElement>,
69268        __ast_path: &mut AstKindPath,
69269    ) {
69270        <V as VisitMutAstPath>::visit_mut_opt_jsx_closing_element(&mut **self, node, __ast_path)
69271    }
69272
69273    #[inline]
69274    fn visit_mut_opt_module_export_name(
69275        &mut self,
69276        node: &mut Option<ModuleExportName>,
69277        __ast_path: &mut AstKindPath,
69278    ) {
69279        <V as VisitMutAstPath>::visit_mut_opt_module_export_name(&mut **self, node, __ast_path)
69280    }
69281
69282    #[inline]
69283    fn visit_mut_opt_object_lit(
69284        &mut self,
69285        node: &mut Option<Box<ObjectLit>>,
69286        __ast_path: &mut AstKindPath,
69287    ) {
69288        <V as VisitMutAstPath>::visit_mut_opt_object_lit(&mut **self, node, __ast_path)
69289    }
69290
69291    #[inline]
69292    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>, __ast_path: &mut AstKindPath) {
69293        <V as VisitMutAstPath>::visit_mut_opt_pat(&mut **self, node, __ast_path)
69294    }
69295
69296    #[inline]
69297    fn visit_mut_opt_span(
69298        &mut self,
69299        node: &mut Option<swc_common::Span>,
69300        __ast_path: &mut AstKindPath,
69301    ) {
69302        <V as VisitMutAstPath>::visit_mut_opt_span(&mut **self, node, __ast_path)
69303    }
69304
69305    #[inline]
69306    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>, __ast_path: &mut AstKindPath) {
69307        <V as VisitMutAstPath>::visit_mut_opt_stmt(&mut **self, node, __ast_path)
69308    }
69309
69310    #[inline]
69311    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>, __ast_path: &mut AstKindPath) {
69312        <V as VisitMutAstPath>::visit_mut_opt_str(&mut **self, node, __ast_path)
69313    }
69314
69315    #[inline]
69316    fn visit_mut_opt_true_plus_minus(
69317        &mut self,
69318        node: &mut Option<TruePlusMinus>,
69319        __ast_path: &mut AstKindPath,
69320    ) {
69321        <V as VisitMutAstPath>::visit_mut_opt_true_plus_minus(&mut **self, node, __ast_path)
69322    }
69323
69324    #[inline]
69325    fn visit_mut_opt_ts_entity_name(
69326        &mut self,
69327        node: &mut Option<TsEntityName>,
69328        __ast_path: &mut AstKindPath,
69329    ) {
69330        <V as VisitMutAstPath>::visit_mut_opt_ts_entity_name(&mut **self, node, __ast_path)
69331    }
69332
69333    #[inline]
69334    fn visit_mut_opt_ts_import_call_options(
69335        &mut self,
69336        node: &mut Option<TsImportCallOptions>,
69337        __ast_path: &mut AstKindPath,
69338    ) {
69339        <V as VisitMutAstPath>::visit_mut_opt_ts_import_call_options(&mut **self, node, __ast_path)
69340    }
69341
69342    #[inline]
69343    fn visit_mut_opt_ts_namespace_body(
69344        &mut self,
69345        node: &mut Option<TsNamespaceBody>,
69346        __ast_path: &mut AstKindPath,
69347    ) {
69348        <V as VisitMutAstPath>::visit_mut_opt_ts_namespace_body(&mut **self, node, __ast_path)
69349    }
69350
69351    #[inline]
69352    fn visit_mut_opt_ts_type(
69353        &mut self,
69354        node: &mut Option<Box<TsType>>,
69355        __ast_path: &mut AstKindPath,
69356    ) {
69357        <V as VisitMutAstPath>::visit_mut_opt_ts_type(&mut **self, node, __ast_path)
69358    }
69359
69360    #[inline]
69361    fn visit_mut_opt_ts_type_ann(
69362        &mut self,
69363        node: &mut Option<Box<TsTypeAnn>>,
69364        __ast_path: &mut AstKindPath,
69365    ) {
69366        <V as VisitMutAstPath>::visit_mut_opt_ts_type_ann(&mut **self, node, __ast_path)
69367    }
69368
69369    #[inline]
69370    fn visit_mut_opt_ts_type_param_decl(
69371        &mut self,
69372        node: &mut Option<Box<TsTypeParamDecl>>,
69373        __ast_path: &mut AstKindPath,
69374    ) {
69375        <V as VisitMutAstPath>::visit_mut_opt_ts_type_param_decl(&mut **self, node, __ast_path)
69376    }
69377
69378    #[inline]
69379    fn visit_mut_opt_ts_type_param_instantiation(
69380        &mut self,
69381        node: &mut Option<Box<TsTypeParamInstantiation>>,
69382        __ast_path: &mut AstKindPath,
69383    ) {
69384        <V as VisitMutAstPath>::visit_mut_opt_ts_type_param_instantiation(
69385            &mut **self,
69386            node,
69387            __ast_path,
69388        )
69389    }
69390
69391    #[inline]
69392    fn visit_mut_opt_var_decl_or_expr(
69393        &mut self,
69394        node: &mut Option<VarDeclOrExpr>,
69395        __ast_path: &mut AstKindPath,
69396    ) {
69397        <V as VisitMutAstPath>::visit_mut_opt_var_decl_or_expr(&mut **self, node, __ast_path)
69398    }
69399
69400    #[inline]
69401    fn visit_mut_opt_vec_expr_or_spreads(
69402        &mut self,
69403        node: &mut Vec<Option<ExprOrSpread>>,
69404        __ast_path: &mut AstKindPath,
69405    ) {
69406        <V as VisitMutAstPath>::visit_mut_opt_vec_expr_or_spreads(&mut **self, node, __ast_path)
69407    }
69408
69409    #[inline]
69410    fn visit_mut_opt_vec_pats(
69411        &mut self,
69412        node: &mut Vec<Option<Pat>>,
69413        __ast_path: &mut AstKindPath,
69414    ) {
69415        <V as VisitMutAstPath>::visit_mut_opt_vec_pats(&mut **self, node, __ast_path)
69416    }
69417
69418    #[inline]
69419    fn visit_mut_param(&mut self, node: &mut Param, __ast_path: &mut AstKindPath) {
69420        <V as VisitMutAstPath>::visit_mut_param(&mut **self, node, __ast_path)
69421    }
69422
69423    #[inline]
69424    fn visit_mut_param_or_ts_param_prop(
69425        &mut self,
69426        node: &mut ParamOrTsParamProp,
69427        __ast_path: &mut AstKindPath,
69428    ) {
69429        <V as VisitMutAstPath>::visit_mut_param_or_ts_param_prop(&mut **self, node, __ast_path)
69430    }
69431
69432    #[inline]
69433    fn visit_mut_param_or_ts_param_props(
69434        &mut self,
69435        node: &mut Vec<ParamOrTsParamProp>,
69436        __ast_path: &mut AstKindPath,
69437    ) {
69438        <V as VisitMutAstPath>::visit_mut_param_or_ts_param_props(&mut **self, node, __ast_path)
69439    }
69440
69441    #[inline]
69442    fn visit_mut_params(&mut self, node: &mut Vec<Param>, __ast_path: &mut AstKindPath) {
69443        <V as VisitMutAstPath>::visit_mut_params(&mut **self, node, __ast_path)
69444    }
69445
69446    #[inline]
69447    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr, __ast_path: &mut AstKindPath) {
69448        <V as VisitMutAstPath>::visit_mut_paren_expr(&mut **self, node, __ast_path)
69449    }
69450
69451    #[inline]
69452    fn visit_mut_pat(&mut self, node: &mut Pat, __ast_path: &mut AstKindPath) {
69453        <V as VisitMutAstPath>::visit_mut_pat(&mut **self, node, __ast_path)
69454    }
69455
69456    #[inline]
69457    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>, __ast_path: &mut AstKindPath) {
69458        <V as VisitMutAstPath>::visit_mut_pats(&mut **self, node, __ast_path)
69459    }
69460
69461    #[inline]
69462    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod, __ast_path: &mut AstKindPath) {
69463        <V as VisitMutAstPath>::visit_mut_private_method(&mut **self, node, __ast_path)
69464    }
69465
69466    #[inline]
69467    fn visit_mut_private_name(&mut self, node: &mut PrivateName, __ast_path: &mut AstKindPath) {
69468        <V as VisitMutAstPath>::visit_mut_private_name(&mut **self, node, __ast_path)
69469    }
69470
69471    #[inline]
69472    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp, __ast_path: &mut AstKindPath) {
69473        <V as VisitMutAstPath>::visit_mut_private_prop(&mut **self, node, __ast_path)
69474    }
69475
69476    #[inline]
69477    fn visit_mut_program(&mut self, node: &mut Program, __ast_path: &mut AstKindPath) {
69478        <V as VisitMutAstPath>::visit_mut_program(&mut **self, node, __ast_path)
69479    }
69480
69481    #[inline]
69482    fn visit_mut_prop(&mut self, node: &mut Prop, __ast_path: &mut AstKindPath) {
69483        <V as VisitMutAstPath>::visit_mut_prop(&mut **self, node, __ast_path)
69484    }
69485
69486    #[inline]
69487    fn visit_mut_prop_name(&mut self, node: &mut PropName, __ast_path: &mut AstKindPath) {
69488        <V as VisitMutAstPath>::visit_mut_prop_name(&mut **self, node, __ast_path)
69489    }
69490
69491    #[inline]
69492    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread, __ast_path: &mut AstKindPath) {
69493        <V as VisitMutAstPath>::visit_mut_prop_or_spread(&mut **self, node, __ast_path)
69494    }
69495
69496    #[inline]
69497    fn visit_mut_prop_or_spreads(
69498        &mut self,
69499        node: &mut Vec<PropOrSpread>,
69500        __ast_path: &mut AstKindPath,
69501    ) {
69502        <V as VisitMutAstPath>::visit_mut_prop_or_spreads(&mut **self, node, __ast_path)
69503    }
69504
69505    #[inline]
69506    fn visit_mut_regex(&mut self, node: &mut Regex, __ast_path: &mut AstKindPath) {
69507        <V as VisitMutAstPath>::visit_mut_regex(&mut **self, node, __ast_path)
69508    }
69509
69510    #[inline]
69511    fn visit_mut_rest_pat(&mut self, node: &mut RestPat, __ast_path: &mut AstKindPath) {
69512        <V as VisitMutAstPath>::visit_mut_rest_pat(&mut **self, node, __ast_path)
69513    }
69514
69515    #[inline]
69516    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt, __ast_path: &mut AstKindPath) {
69517        <V as VisitMutAstPath>::visit_mut_return_stmt(&mut **self, node, __ast_path)
69518    }
69519
69520    #[inline]
69521    fn visit_mut_script(&mut self, node: &mut Script, __ast_path: &mut AstKindPath) {
69522        <V as VisitMutAstPath>::visit_mut_script(&mut **self, node, __ast_path)
69523    }
69524
69525    #[inline]
69526    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr, __ast_path: &mut AstKindPath) {
69527        <V as VisitMutAstPath>::visit_mut_seq_expr(&mut **self, node, __ast_path)
69528    }
69529
69530    #[inline]
69531    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp, __ast_path: &mut AstKindPath) {
69532        <V as VisitMutAstPath>::visit_mut_setter_prop(&mut **self, node, __ast_path)
69533    }
69534
69535    #[inline]
69536    fn visit_mut_simple_assign_target(
69537        &mut self,
69538        node: &mut SimpleAssignTarget,
69539        __ast_path: &mut AstKindPath,
69540    ) {
69541        <V as VisitMutAstPath>::visit_mut_simple_assign_target(&mut **self, node, __ast_path)
69542    }
69543
69544    #[inline]
69545    fn visit_mut_span(&mut self, node: &mut swc_common::Span, __ast_path: &mut AstKindPath) {
69546        <V as VisitMutAstPath>::visit_mut_span(&mut **self, node, __ast_path)
69547    }
69548
69549    #[inline]
69550    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement, __ast_path: &mut AstKindPath) {
69551        <V as VisitMutAstPath>::visit_mut_spread_element(&mut **self, node, __ast_path)
69552    }
69553
69554    #[inline]
69555    fn visit_mut_static_block(&mut self, node: &mut StaticBlock, __ast_path: &mut AstKindPath) {
69556        <V as VisitMutAstPath>::visit_mut_static_block(&mut **self, node, __ast_path)
69557    }
69558
69559    #[inline]
69560    fn visit_mut_stmt(&mut self, node: &mut Stmt, __ast_path: &mut AstKindPath) {
69561        <V as VisitMutAstPath>::visit_mut_stmt(&mut **self, node, __ast_path)
69562    }
69563
69564    #[inline]
69565    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>, __ast_path: &mut AstKindPath) {
69566        <V as VisitMutAstPath>::visit_mut_stmts(&mut **self, node, __ast_path)
69567    }
69568
69569    #[inline]
69570    fn visit_mut_str(&mut self, node: &mut Str, __ast_path: &mut AstKindPath) {
69571        <V as VisitMutAstPath>::visit_mut_str(&mut **self, node, __ast_path)
69572    }
69573
69574    #[inline]
69575    fn visit_mut_super(&mut self, node: &mut Super, __ast_path: &mut AstKindPath) {
69576        <V as VisitMutAstPath>::visit_mut_super(&mut **self, node, __ast_path)
69577    }
69578
69579    #[inline]
69580    fn visit_mut_super_prop(&mut self, node: &mut SuperProp, __ast_path: &mut AstKindPath) {
69581        <V as VisitMutAstPath>::visit_mut_super_prop(&mut **self, node, __ast_path)
69582    }
69583
69584    #[inline]
69585    fn visit_mut_super_prop_expr(
69586        &mut self,
69587        node: &mut SuperPropExpr,
69588        __ast_path: &mut AstKindPath,
69589    ) {
69590        <V as VisitMutAstPath>::visit_mut_super_prop_expr(&mut **self, node, __ast_path)
69591    }
69592
69593    #[inline]
69594    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase, __ast_path: &mut AstKindPath) {
69595        <V as VisitMutAstPath>::visit_mut_switch_case(&mut **self, node, __ast_path)
69596    }
69597
69598    #[inline]
69599    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>, __ast_path: &mut AstKindPath) {
69600        <V as VisitMutAstPath>::visit_mut_switch_cases(&mut **self, node, __ast_path)
69601    }
69602
69603    #[inline]
69604    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt, __ast_path: &mut AstKindPath) {
69605        <V as VisitMutAstPath>::visit_mut_switch_stmt(&mut **self, node, __ast_path)
69606    }
69607
69608    #[inline]
69609    fn visit_mut_syntax_context(
69610        &mut self,
69611        node: &mut swc_common::SyntaxContext,
69612        __ast_path: &mut AstKindPath,
69613    ) {
69614        <V as VisitMutAstPath>::visit_mut_syntax_context(&mut **self, node, __ast_path)
69615    }
69616
69617    #[inline]
69618    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl, __ast_path: &mut AstKindPath) {
69619        <V as VisitMutAstPath>::visit_mut_tagged_tpl(&mut **self, node, __ast_path)
69620    }
69621
69622    #[inline]
69623    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr, __ast_path: &mut AstKindPath) {
69624        <V as VisitMutAstPath>::visit_mut_this_expr(&mut **self, node, __ast_path)
69625    }
69626
69627    #[inline]
69628    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt, __ast_path: &mut AstKindPath) {
69629        <V as VisitMutAstPath>::visit_mut_throw_stmt(&mut **self, node, __ast_path)
69630    }
69631
69632    #[inline]
69633    fn visit_mut_tpl(&mut self, node: &mut Tpl, __ast_path: &mut AstKindPath) {
69634        <V as VisitMutAstPath>::visit_mut_tpl(&mut **self, node, __ast_path)
69635    }
69636
69637    #[inline]
69638    fn visit_mut_tpl_element(&mut self, node: &mut TplElement, __ast_path: &mut AstKindPath) {
69639        <V as VisitMutAstPath>::visit_mut_tpl_element(&mut **self, node, __ast_path)
69640    }
69641
69642    #[inline]
69643    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>, __ast_path: &mut AstKindPath) {
69644        <V as VisitMutAstPath>::visit_mut_tpl_elements(&mut **self, node, __ast_path)
69645    }
69646
69647    #[inline]
69648    fn visit_mut_true_plus_minus(
69649        &mut self,
69650        node: &mut TruePlusMinus,
69651        __ast_path: &mut AstKindPath,
69652    ) {
69653        <V as VisitMutAstPath>::visit_mut_true_plus_minus(&mut **self, node, __ast_path)
69654    }
69655
69656    #[inline]
69657    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt, __ast_path: &mut AstKindPath) {
69658        <V as VisitMutAstPath>::visit_mut_try_stmt(&mut **self, node, __ast_path)
69659    }
69660
69661    #[inline]
69662    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType, __ast_path: &mut AstKindPath) {
69663        <V as VisitMutAstPath>::visit_mut_ts_array_type(&mut **self, node, __ast_path)
69664    }
69665
69666    #[inline]
69667    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr, __ast_path: &mut AstKindPath) {
69668        <V as VisitMutAstPath>::visit_mut_ts_as_expr(&mut **self, node, __ast_path)
69669    }
69670
69671    #[inline]
69672    fn visit_mut_ts_call_signature_decl(
69673        &mut self,
69674        node: &mut TsCallSignatureDecl,
69675        __ast_path: &mut AstKindPath,
69676    ) {
69677        <V as VisitMutAstPath>::visit_mut_ts_call_signature_decl(&mut **self, node, __ast_path)
69678    }
69679
69680    #[inline]
69681    fn visit_mut_ts_conditional_type(
69682        &mut self,
69683        node: &mut TsConditionalType,
69684        __ast_path: &mut AstKindPath,
69685    ) {
69686        <V as VisitMutAstPath>::visit_mut_ts_conditional_type(&mut **self, node, __ast_path)
69687    }
69688
69689    #[inline]
69690    fn visit_mut_ts_const_assertion(
69691        &mut self,
69692        node: &mut TsConstAssertion,
69693        __ast_path: &mut AstKindPath,
69694    ) {
69695        <V as VisitMutAstPath>::visit_mut_ts_const_assertion(&mut **self, node, __ast_path)
69696    }
69697
69698    #[inline]
69699    fn visit_mut_ts_construct_signature_decl(
69700        &mut self,
69701        node: &mut TsConstructSignatureDecl,
69702        __ast_path: &mut AstKindPath,
69703    ) {
69704        <V as VisitMutAstPath>::visit_mut_ts_construct_signature_decl(&mut **self, node, __ast_path)
69705    }
69706
69707    #[inline]
69708    fn visit_mut_ts_constructor_type(
69709        &mut self,
69710        node: &mut TsConstructorType,
69711        __ast_path: &mut AstKindPath,
69712    ) {
69713        <V as VisitMutAstPath>::visit_mut_ts_constructor_type(&mut **self, node, __ast_path)
69714    }
69715
69716    #[inline]
69717    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName, __ast_path: &mut AstKindPath) {
69718        <V as VisitMutAstPath>::visit_mut_ts_entity_name(&mut **self, node, __ast_path)
69719    }
69720
69721    #[inline]
69722    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl, __ast_path: &mut AstKindPath) {
69723        <V as VisitMutAstPath>::visit_mut_ts_enum_decl(&mut **self, node, __ast_path)
69724    }
69725
69726    #[inline]
69727    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember, __ast_path: &mut AstKindPath) {
69728        <V as VisitMutAstPath>::visit_mut_ts_enum_member(&mut **self, node, __ast_path)
69729    }
69730
69731    #[inline]
69732    fn visit_mut_ts_enum_member_id(
69733        &mut self,
69734        node: &mut TsEnumMemberId,
69735        __ast_path: &mut AstKindPath,
69736    ) {
69737        <V as VisitMutAstPath>::visit_mut_ts_enum_member_id(&mut **self, node, __ast_path)
69738    }
69739
69740    #[inline]
69741    fn visit_mut_ts_enum_members(
69742        &mut self,
69743        node: &mut Vec<TsEnumMember>,
69744        __ast_path: &mut AstKindPath,
69745    ) {
69746        <V as VisitMutAstPath>::visit_mut_ts_enum_members(&mut **self, node, __ast_path)
69747    }
69748
69749    #[inline]
69750    fn visit_mut_ts_export_assignment(
69751        &mut self,
69752        node: &mut TsExportAssignment,
69753        __ast_path: &mut AstKindPath,
69754    ) {
69755        <V as VisitMutAstPath>::visit_mut_ts_export_assignment(&mut **self, node, __ast_path)
69756    }
69757
69758    #[inline]
69759    fn visit_mut_ts_expr_with_type_args(
69760        &mut self,
69761        node: &mut TsExprWithTypeArgs,
69762        __ast_path: &mut AstKindPath,
69763    ) {
69764        <V as VisitMutAstPath>::visit_mut_ts_expr_with_type_args(&mut **self, node, __ast_path)
69765    }
69766
69767    #[inline]
69768    fn visit_mut_ts_expr_with_type_argss(
69769        &mut self,
69770        node: &mut Vec<TsExprWithTypeArgs>,
69771        __ast_path: &mut AstKindPath,
69772    ) {
69773        <V as VisitMutAstPath>::visit_mut_ts_expr_with_type_argss(&mut **self, node, __ast_path)
69774    }
69775
69776    #[inline]
69777    fn visit_mut_ts_external_module_ref(
69778        &mut self,
69779        node: &mut TsExternalModuleRef,
69780        __ast_path: &mut AstKindPath,
69781    ) {
69782        <V as VisitMutAstPath>::visit_mut_ts_external_module_ref(&mut **self, node, __ast_path)
69783    }
69784
69785    #[inline]
69786    fn visit_mut_ts_fn_or_constructor_type(
69787        &mut self,
69788        node: &mut TsFnOrConstructorType,
69789        __ast_path: &mut AstKindPath,
69790    ) {
69791        <V as VisitMutAstPath>::visit_mut_ts_fn_or_constructor_type(&mut **self, node, __ast_path)
69792    }
69793
69794    #[inline]
69795    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam, __ast_path: &mut AstKindPath) {
69796        <V as VisitMutAstPath>::visit_mut_ts_fn_param(&mut **self, node, __ast_path)
69797    }
69798
69799    #[inline]
69800    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>, __ast_path: &mut AstKindPath) {
69801        <V as VisitMutAstPath>::visit_mut_ts_fn_params(&mut **self, node, __ast_path)
69802    }
69803
69804    #[inline]
69805    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType, __ast_path: &mut AstKindPath) {
69806        <V as VisitMutAstPath>::visit_mut_ts_fn_type(&mut **self, node, __ast_path)
69807    }
69808
69809    #[inline]
69810    fn visit_mut_ts_getter_signature(
69811        &mut self,
69812        node: &mut TsGetterSignature,
69813        __ast_path: &mut AstKindPath,
69814    ) {
69815        <V as VisitMutAstPath>::visit_mut_ts_getter_signature(&mut **self, node, __ast_path)
69816    }
69817
69818    #[inline]
69819    fn visit_mut_ts_import_call_options(
69820        &mut self,
69821        node: &mut TsImportCallOptions,
69822        __ast_path: &mut AstKindPath,
69823    ) {
69824        <V as VisitMutAstPath>::visit_mut_ts_import_call_options(&mut **self, node, __ast_path)
69825    }
69826
69827    #[inline]
69828    fn visit_mut_ts_import_equals_decl(
69829        &mut self,
69830        node: &mut TsImportEqualsDecl,
69831        __ast_path: &mut AstKindPath,
69832    ) {
69833        <V as VisitMutAstPath>::visit_mut_ts_import_equals_decl(&mut **self, node, __ast_path)
69834    }
69835
69836    #[inline]
69837    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType, __ast_path: &mut AstKindPath) {
69838        <V as VisitMutAstPath>::visit_mut_ts_import_type(&mut **self, node, __ast_path)
69839    }
69840
69841    #[inline]
69842    fn visit_mut_ts_index_signature(
69843        &mut self,
69844        node: &mut TsIndexSignature,
69845        __ast_path: &mut AstKindPath,
69846    ) {
69847        <V as VisitMutAstPath>::visit_mut_ts_index_signature(&mut **self, node, __ast_path)
69848    }
69849
69850    #[inline]
69851    fn visit_mut_ts_indexed_access_type(
69852        &mut self,
69853        node: &mut TsIndexedAccessType,
69854        __ast_path: &mut AstKindPath,
69855    ) {
69856        <V as VisitMutAstPath>::visit_mut_ts_indexed_access_type(&mut **self, node, __ast_path)
69857    }
69858
69859    #[inline]
69860    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType, __ast_path: &mut AstKindPath) {
69861        <V as VisitMutAstPath>::visit_mut_ts_infer_type(&mut **self, node, __ast_path)
69862    }
69863
69864    #[inline]
69865    fn visit_mut_ts_instantiation(
69866        &mut self,
69867        node: &mut TsInstantiation,
69868        __ast_path: &mut AstKindPath,
69869    ) {
69870        <V as VisitMutAstPath>::visit_mut_ts_instantiation(&mut **self, node, __ast_path)
69871    }
69872
69873    #[inline]
69874    fn visit_mut_ts_interface_body(
69875        &mut self,
69876        node: &mut TsInterfaceBody,
69877        __ast_path: &mut AstKindPath,
69878    ) {
69879        <V as VisitMutAstPath>::visit_mut_ts_interface_body(&mut **self, node, __ast_path)
69880    }
69881
69882    #[inline]
69883    fn visit_mut_ts_interface_decl(
69884        &mut self,
69885        node: &mut TsInterfaceDecl,
69886        __ast_path: &mut AstKindPath,
69887    ) {
69888        <V as VisitMutAstPath>::visit_mut_ts_interface_decl(&mut **self, node, __ast_path)
69889    }
69890
69891    #[inline]
69892    fn visit_mut_ts_intersection_type(
69893        &mut self,
69894        node: &mut TsIntersectionType,
69895        __ast_path: &mut AstKindPath,
69896    ) {
69897        <V as VisitMutAstPath>::visit_mut_ts_intersection_type(&mut **self, node, __ast_path)
69898    }
69899
69900    #[inline]
69901    fn visit_mut_ts_keyword_type(
69902        &mut self,
69903        node: &mut TsKeywordType,
69904        __ast_path: &mut AstKindPath,
69905    ) {
69906        <V as VisitMutAstPath>::visit_mut_ts_keyword_type(&mut **self, node, __ast_path)
69907    }
69908
69909    #[inline]
69910    fn visit_mut_ts_keyword_type_kind(
69911        &mut self,
69912        node: &mut TsKeywordTypeKind,
69913        __ast_path: &mut AstKindPath,
69914    ) {
69915        <V as VisitMutAstPath>::visit_mut_ts_keyword_type_kind(&mut **self, node, __ast_path)
69916    }
69917
69918    #[inline]
69919    fn visit_mut_ts_lit(&mut self, node: &mut TsLit, __ast_path: &mut AstKindPath) {
69920        <V as VisitMutAstPath>::visit_mut_ts_lit(&mut **self, node, __ast_path)
69921    }
69922
69923    #[inline]
69924    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType, __ast_path: &mut AstKindPath) {
69925        <V as VisitMutAstPath>::visit_mut_ts_lit_type(&mut **self, node, __ast_path)
69926    }
69927
69928    #[inline]
69929    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType, __ast_path: &mut AstKindPath) {
69930        <V as VisitMutAstPath>::visit_mut_ts_mapped_type(&mut **self, node, __ast_path)
69931    }
69932
69933    #[inline]
69934    fn visit_mut_ts_method_signature(
69935        &mut self,
69936        node: &mut TsMethodSignature,
69937        __ast_path: &mut AstKindPath,
69938    ) {
69939        <V as VisitMutAstPath>::visit_mut_ts_method_signature(&mut **self, node, __ast_path)
69940    }
69941
69942    #[inline]
69943    fn visit_mut_ts_module_block(
69944        &mut self,
69945        node: &mut TsModuleBlock,
69946        __ast_path: &mut AstKindPath,
69947    ) {
69948        <V as VisitMutAstPath>::visit_mut_ts_module_block(&mut **self, node, __ast_path)
69949    }
69950
69951    #[inline]
69952    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl, __ast_path: &mut AstKindPath) {
69953        <V as VisitMutAstPath>::visit_mut_ts_module_decl(&mut **self, node, __ast_path)
69954    }
69955
69956    #[inline]
69957    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName, __ast_path: &mut AstKindPath) {
69958        <V as VisitMutAstPath>::visit_mut_ts_module_name(&mut **self, node, __ast_path)
69959    }
69960
69961    #[inline]
69962    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef, __ast_path: &mut AstKindPath) {
69963        <V as VisitMutAstPath>::visit_mut_ts_module_ref(&mut **self, node, __ast_path)
69964    }
69965
69966    #[inline]
69967    fn visit_mut_ts_namespace_body(
69968        &mut self,
69969        node: &mut TsNamespaceBody,
69970        __ast_path: &mut AstKindPath,
69971    ) {
69972        <V as VisitMutAstPath>::visit_mut_ts_namespace_body(&mut **self, node, __ast_path)
69973    }
69974
69975    #[inline]
69976    fn visit_mut_ts_namespace_decl(
69977        &mut self,
69978        node: &mut TsNamespaceDecl,
69979        __ast_path: &mut AstKindPath,
69980    ) {
69981        <V as VisitMutAstPath>::visit_mut_ts_namespace_decl(&mut **self, node, __ast_path)
69982    }
69983
69984    #[inline]
69985    fn visit_mut_ts_namespace_export_decl(
69986        &mut self,
69987        node: &mut TsNamespaceExportDecl,
69988        __ast_path: &mut AstKindPath,
69989    ) {
69990        <V as VisitMutAstPath>::visit_mut_ts_namespace_export_decl(&mut **self, node, __ast_path)
69991    }
69992
69993    #[inline]
69994    fn visit_mut_ts_non_null_expr(
69995        &mut self,
69996        node: &mut TsNonNullExpr,
69997        __ast_path: &mut AstKindPath,
69998    ) {
69999        <V as VisitMutAstPath>::visit_mut_ts_non_null_expr(&mut **self, node, __ast_path)
70000    }
70001
70002    #[inline]
70003    fn visit_mut_ts_optional_type(
70004        &mut self,
70005        node: &mut TsOptionalType,
70006        __ast_path: &mut AstKindPath,
70007    ) {
70008        <V as VisitMutAstPath>::visit_mut_ts_optional_type(&mut **self, node, __ast_path)
70009    }
70010
70011    #[inline]
70012    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp, __ast_path: &mut AstKindPath) {
70013        <V as VisitMutAstPath>::visit_mut_ts_param_prop(&mut **self, node, __ast_path)
70014    }
70015
70016    #[inline]
70017    fn visit_mut_ts_param_prop_param(
70018        &mut self,
70019        node: &mut TsParamPropParam,
70020        __ast_path: &mut AstKindPath,
70021    ) {
70022        <V as VisitMutAstPath>::visit_mut_ts_param_prop_param(&mut **self, node, __ast_path)
70023    }
70024
70025    #[inline]
70026    fn visit_mut_ts_parenthesized_type(
70027        &mut self,
70028        node: &mut TsParenthesizedType,
70029        __ast_path: &mut AstKindPath,
70030    ) {
70031        <V as VisitMutAstPath>::visit_mut_ts_parenthesized_type(&mut **self, node, __ast_path)
70032    }
70033
70034    #[inline]
70035    fn visit_mut_ts_property_signature(
70036        &mut self,
70037        node: &mut TsPropertySignature,
70038        __ast_path: &mut AstKindPath,
70039    ) {
70040        <V as VisitMutAstPath>::visit_mut_ts_property_signature(&mut **self, node, __ast_path)
70041    }
70042
70043    #[inline]
70044    fn visit_mut_ts_qualified_name(
70045        &mut self,
70046        node: &mut TsQualifiedName,
70047        __ast_path: &mut AstKindPath,
70048    ) {
70049        <V as VisitMutAstPath>::visit_mut_ts_qualified_name(&mut **self, node, __ast_path)
70050    }
70051
70052    #[inline]
70053    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType, __ast_path: &mut AstKindPath) {
70054        <V as VisitMutAstPath>::visit_mut_ts_rest_type(&mut **self, node, __ast_path)
70055    }
70056
70057    #[inline]
70058    fn visit_mut_ts_satisfies_expr(
70059        &mut self,
70060        node: &mut TsSatisfiesExpr,
70061        __ast_path: &mut AstKindPath,
70062    ) {
70063        <V as VisitMutAstPath>::visit_mut_ts_satisfies_expr(&mut **self, node, __ast_path)
70064    }
70065
70066    #[inline]
70067    fn visit_mut_ts_setter_signature(
70068        &mut self,
70069        node: &mut TsSetterSignature,
70070        __ast_path: &mut AstKindPath,
70071    ) {
70072        <V as VisitMutAstPath>::visit_mut_ts_setter_signature(&mut **self, node, __ast_path)
70073    }
70074
70075    #[inline]
70076    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType, __ast_path: &mut AstKindPath) {
70077        <V as VisitMutAstPath>::visit_mut_ts_this_type(&mut **self, node, __ast_path)
70078    }
70079
70080    #[inline]
70081    fn visit_mut_ts_this_type_or_ident(
70082        &mut self,
70083        node: &mut TsThisTypeOrIdent,
70084        __ast_path: &mut AstKindPath,
70085    ) {
70086        <V as VisitMutAstPath>::visit_mut_ts_this_type_or_ident(&mut **self, node, __ast_path)
70087    }
70088
70089    #[inline]
70090    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType, __ast_path: &mut AstKindPath) {
70091        <V as VisitMutAstPath>::visit_mut_ts_tpl_lit_type(&mut **self, node, __ast_path)
70092    }
70093
70094    #[inline]
70095    fn visit_mut_ts_tuple_element(
70096        &mut self,
70097        node: &mut TsTupleElement,
70098        __ast_path: &mut AstKindPath,
70099    ) {
70100        <V as VisitMutAstPath>::visit_mut_ts_tuple_element(&mut **self, node, __ast_path)
70101    }
70102
70103    #[inline]
70104    fn visit_mut_ts_tuple_elements(
70105        &mut self,
70106        node: &mut Vec<TsTupleElement>,
70107        __ast_path: &mut AstKindPath,
70108    ) {
70109        <V as VisitMutAstPath>::visit_mut_ts_tuple_elements(&mut **self, node, __ast_path)
70110    }
70111
70112    #[inline]
70113    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType, __ast_path: &mut AstKindPath) {
70114        <V as VisitMutAstPath>::visit_mut_ts_tuple_type(&mut **self, node, __ast_path)
70115    }
70116
70117    #[inline]
70118    fn visit_mut_ts_type(&mut self, node: &mut TsType, __ast_path: &mut AstKindPath) {
70119        <V as VisitMutAstPath>::visit_mut_ts_type(&mut **self, node, __ast_path)
70120    }
70121
70122    #[inline]
70123    fn visit_mut_ts_type_alias_decl(
70124        &mut self,
70125        node: &mut TsTypeAliasDecl,
70126        __ast_path: &mut AstKindPath,
70127    ) {
70128        <V as VisitMutAstPath>::visit_mut_ts_type_alias_decl(&mut **self, node, __ast_path)
70129    }
70130
70131    #[inline]
70132    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn, __ast_path: &mut AstKindPath) {
70133        <V as VisitMutAstPath>::visit_mut_ts_type_ann(&mut **self, node, __ast_path)
70134    }
70135
70136    #[inline]
70137    fn visit_mut_ts_type_assertion(
70138        &mut self,
70139        node: &mut TsTypeAssertion,
70140        __ast_path: &mut AstKindPath,
70141    ) {
70142        <V as VisitMutAstPath>::visit_mut_ts_type_assertion(&mut **self, node, __ast_path)
70143    }
70144
70145    #[inline]
70146    fn visit_mut_ts_type_element(
70147        &mut self,
70148        node: &mut TsTypeElement,
70149        __ast_path: &mut AstKindPath,
70150    ) {
70151        <V as VisitMutAstPath>::visit_mut_ts_type_element(&mut **self, node, __ast_path)
70152    }
70153
70154    #[inline]
70155    fn visit_mut_ts_type_elements(
70156        &mut self,
70157        node: &mut Vec<TsTypeElement>,
70158        __ast_path: &mut AstKindPath,
70159    ) {
70160        <V as VisitMutAstPath>::visit_mut_ts_type_elements(&mut **self, node, __ast_path)
70161    }
70162
70163    #[inline]
70164    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit, __ast_path: &mut AstKindPath) {
70165        <V as VisitMutAstPath>::visit_mut_ts_type_lit(&mut **self, node, __ast_path)
70166    }
70167
70168    #[inline]
70169    fn visit_mut_ts_type_operator(
70170        &mut self,
70171        node: &mut TsTypeOperator,
70172        __ast_path: &mut AstKindPath,
70173    ) {
70174        <V as VisitMutAstPath>::visit_mut_ts_type_operator(&mut **self, node, __ast_path)
70175    }
70176
70177    #[inline]
70178    fn visit_mut_ts_type_operator_op(
70179        &mut self,
70180        node: &mut TsTypeOperatorOp,
70181        __ast_path: &mut AstKindPath,
70182    ) {
70183        <V as VisitMutAstPath>::visit_mut_ts_type_operator_op(&mut **self, node, __ast_path)
70184    }
70185
70186    #[inline]
70187    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam, __ast_path: &mut AstKindPath) {
70188        <V as VisitMutAstPath>::visit_mut_ts_type_param(&mut **self, node, __ast_path)
70189    }
70190
70191    #[inline]
70192    fn visit_mut_ts_type_param_decl(
70193        &mut self,
70194        node: &mut TsTypeParamDecl,
70195        __ast_path: &mut AstKindPath,
70196    ) {
70197        <V as VisitMutAstPath>::visit_mut_ts_type_param_decl(&mut **self, node, __ast_path)
70198    }
70199
70200    #[inline]
70201    fn visit_mut_ts_type_param_instantiation(
70202        &mut self,
70203        node: &mut TsTypeParamInstantiation,
70204        __ast_path: &mut AstKindPath,
70205    ) {
70206        <V as VisitMutAstPath>::visit_mut_ts_type_param_instantiation(&mut **self, node, __ast_path)
70207    }
70208
70209    #[inline]
70210    fn visit_mut_ts_type_params(
70211        &mut self,
70212        node: &mut Vec<TsTypeParam>,
70213        __ast_path: &mut AstKindPath,
70214    ) {
70215        <V as VisitMutAstPath>::visit_mut_ts_type_params(&mut **self, node, __ast_path)
70216    }
70217
70218    #[inline]
70219    fn visit_mut_ts_type_predicate(
70220        &mut self,
70221        node: &mut TsTypePredicate,
70222        __ast_path: &mut AstKindPath,
70223    ) {
70224        <V as VisitMutAstPath>::visit_mut_ts_type_predicate(&mut **self, node, __ast_path)
70225    }
70226
70227    #[inline]
70228    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery, __ast_path: &mut AstKindPath) {
70229        <V as VisitMutAstPath>::visit_mut_ts_type_query(&mut **self, node, __ast_path)
70230    }
70231
70232    #[inline]
70233    fn visit_mut_ts_type_query_expr(
70234        &mut self,
70235        node: &mut TsTypeQueryExpr,
70236        __ast_path: &mut AstKindPath,
70237    ) {
70238        <V as VisitMutAstPath>::visit_mut_ts_type_query_expr(&mut **self, node, __ast_path)
70239    }
70240
70241    #[inline]
70242    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef, __ast_path: &mut AstKindPath) {
70243        <V as VisitMutAstPath>::visit_mut_ts_type_ref(&mut **self, node, __ast_path)
70244    }
70245
70246    #[inline]
70247    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>, __ast_path: &mut AstKindPath) {
70248        <V as VisitMutAstPath>::visit_mut_ts_types(&mut **self, node, __ast_path)
70249    }
70250
70251    #[inline]
70252    fn visit_mut_ts_union_or_intersection_type(
70253        &mut self,
70254        node: &mut TsUnionOrIntersectionType,
70255        __ast_path: &mut AstKindPath,
70256    ) {
70257        <V as VisitMutAstPath>::visit_mut_ts_union_or_intersection_type(
70258            &mut **self,
70259            node,
70260            __ast_path,
70261        )
70262    }
70263
70264    #[inline]
70265    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType, __ast_path: &mut AstKindPath) {
70266        <V as VisitMutAstPath>::visit_mut_ts_union_type(&mut **self, node, __ast_path)
70267    }
70268
70269    #[inline]
70270    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr, __ast_path: &mut AstKindPath) {
70271        <V as VisitMutAstPath>::visit_mut_unary_expr(&mut **self, node, __ast_path)
70272    }
70273
70274    #[inline]
70275    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp, __ast_path: &mut AstKindPath) {
70276        <V as VisitMutAstPath>::visit_mut_unary_op(&mut **self, node, __ast_path)
70277    }
70278
70279    #[inline]
70280    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr, __ast_path: &mut AstKindPath) {
70281        <V as VisitMutAstPath>::visit_mut_update_expr(&mut **self, node, __ast_path)
70282    }
70283
70284    #[inline]
70285    fn visit_mut_update_op(&mut self, node: &mut UpdateOp, __ast_path: &mut AstKindPath) {
70286        <V as VisitMutAstPath>::visit_mut_update_op(&mut **self, node, __ast_path)
70287    }
70288
70289    #[inline]
70290    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl, __ast_path: &mut AstKindPath) {
70291        <V as VisitMutAstPath>::visit_mut_using_decl(&mut **self, node, __ast_path)
70292    }
70293
70294    #[inline]
70295    fn visit_mut_var_decl(&mut self, node: &mut VarDecl, __ast_path: &mut AstKindPath) {
70296        <V as VisitMutAstPath>::visit_mut_var_decl(&mut **self, node, __ast_path)
70297    }
70298
70299    #[inline]
70300    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind, __ast_path: &mut AstKindPath) {
70301        <V as VisitMutAstPath>::visit_mut_var_decl_kind(&mut **self, node, __ast_path)
70302    }
70303
70304    #[inline]
70305    fn visit_mut_var_decl_or_expr(
70306        &mut self,
70307        node: &mut VarDeclOrExpr,
70308        __ast_path: &mut AstKindPath,
70309    ) {
70310        <V as VisitMutAstPath>::visit_mut_var_decl_or_expr(&mut **self, node, __ast_path)
70311    }
70312
70313    #[inline]
70314    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator, __ast_path: &mut AstKindPath) {
70315        <V as VisitMutAstPath>::visit_mut_var_declarator(&mut **self, node, __ast_path)
70316    }
70317
70318    #[inline]
70319    fn visit_mut_var_declarators(
70320        &mut self,
70321        node: &mut Vec<VarDeclarator>,
70322        __ast_path: &mut AstKindPath,
70323    ) {
70324        <V as VisitMutAstPath>::visit_mut_var_declarators(&mut **self, node, __ast_path)
70325    }
70326
70327    #[inline]
70328    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt, __ast_path: &mut AstKindPath) {
70329        <V as VisitMutAstPath>::visit_mut_while_stmt(&mut **self, node, __ast_path)
70330    }
70331
70332    #[inline]
70333    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt, __ast_path: &mut AstKindPath) {
70334        <V as VisitMutAstPath>::visit_mut_with_stmt(&mut **self, node, __ast_path)
70335    }
70336
70337    #[inline]
70338    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr, __ast_path: &mut AstKindPath) {
70339        <V as VisitMutAstPath>::visit_mut_yield_expr(&mut **self, node, __ast_path)
70340    }
70341}
70342#[cfg(any(docsrs, feature = "path"))]
70343#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
70344impl<V> VisitMutAstPath for Box<V>
70345where
70346    V: ?Sized + VisitMutAstPath,
70347{
70348    #[inline]
70349    fn visit_mut_accessibility(&mut self, node: &mut Accessibility, __ast_path: &mut AstKindPath) {
70350        <V as VisitMutAstPath>::visit_mut_accessibility(&mut **self, node, __ast_path)
70351    }
70352
70353    #[inline]
70354    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit, __ast_path: &mut AstKindPath) {
70355        <V as VisitMutAstPath>::visit_mut_array_lit(&mut **self, node, __ast_path)
70356    }
70357
70358    #[inline]
70359    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat, __ast_path: &mut AstKindPath) {
70360        <V as VisitMutAstPath>::visit_mut_array_pat(&mut **self, node, __ast_path)
70361    }
70362
70363    #[inline]
70364    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr, __ast_path: &mut AstKindPath) {
70365        <V as VisitMutAstPath>::visit_mut_arrow_expr(&mut **self, node, __ast_path)
70366    }
70367
70368    #[inline]
70369    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr, __ast_path: &mut AstKindPath) {
70370        <V as VisitMutAstPath>::visit_mut_assign_expr(&mut **self, node, __ast_path)
70371    }
70372
70373    #[inline]
70374    fn visit_mut_assign_op(&mut self, node: &mut AssignOp, __ast_path: &mut AstKindPath) {
70375        <V as VisitMutAstPath>::visit_mut_assign_op(&mut **self, node, __ast_path)
70376    }
70377
70378    #[inline]
70379    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat, __ast_path: &mut AstKindPath) {
70380        <V as VisitMutAstPath>::visit_mut_assign_pat(&mut **self, node, __ast_path)
70381    }
70382
70383    #[inline]
70384    fn visit_mut_assign_pat_prop(
70385        &mut self,
70386        node: &mut AssignPatProp,
70387        __ast_path: &mut AstKindPath,
70388    ) {
70389        <V as VisitMutAstPath>::visit_mut_assign_pat_prop(&mut **self, node, __ast_path)
70390    }
70391
70392    #[inline]
70393    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp, __ast_path: &mut AstKindPath) {
70394        <V as VisitMutAstPath>::visit_mut_assign_prop(&mut **self, node, __ast_path)
70395    }
70396
70397    #[inline]
70398    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget, __ast_path: &mut AstKindPath) {
70399        <V as VisitMutAstPath>::visit_mut_assign_target(&mut **self, node, __ast_path)
70400    }
70401
70402    #[inline]
70403    fn visit_mut_assign_target_pat(
70404        &mut self,
70405        node: &mut AssignTargetPat,
70406        __ast_path: &mut AstKindPath,
70407    ) {
70408        <V as VisitMutAstPath>::visit_mut_assign_target_pat(&mut **self, node, __ast_path)
70409    }
70410
70411    #[inline]
70412    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom, __ast_path: &mut AstKindPath) {
70413        <V as VisitMutAstPath>::visit_mut_atom(&mut **self, node, __ast_path)
70414    }
70415
70416    #[inline]
70417    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor, __ast_path: &mut AstKindPath) {
70418        <V as VisitMutAstPath>::visit_mut_auto_accessor(&mut **self, node, __ast_path)
70419    }
70420
70421    #[inline]
70422    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr, __ast_path: &mut AstKindPath) {
70423        <V as VisitMutAstPath>::visit_mut_await_expr(&mut **self, node, __ast_path)
70424    }
70425
70426    #[inline]
70427    fn visit_mut_big_int(&mut self, node: &mut BigInt, __ast_path: &mut AstKindPath) {
70428        <V as VisitMutAstPath>::visit_mut_big_int(&mut **self, node, __ast_path)
70429    }
70430
70431    #[inline]
70432    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue, __ast_path: &mut AstKindPath) {
70433        <V as VisitMutAstPath>::visit_mut_big_int_value(&mut **self, node, __ast_path)
70434    }
70435
70436    #[inline]
70437    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr, __ast_path: &mut AstKindPath) {
70438        <V as VisitMutAstPath>::visit_mut_bin_expr(&mut **self, node, __ast_path)
70439    }
70440
70441    #[inline]
70442    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp, __ast_path: &mut AstKindPath) {
70443        <V as VisitMutAstPath>::visit_mut_binary_op(&mut **self, node, __ast_path)
70444    }
70445
70446    #[inline]
70447    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent, __ast_path: &mut AstKindPath) {
70448        <V as VisitMutAstPath>::visit_mut_binding_ident(&mut **self, node, __ast_path)
70449    }
70450
70451    #[inline]
70452    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt, __ast_path: &mut AstKindPath) {
70453        <V as VisitMutAstPath>::visit_mut_block_stmt(&mut **self, node, __ast_path)
70454    }
70455
70456    #[inline]
70457    fn visit_mut_block_stmt_or_expr(
70458        &mut self,
70459        node: &mut BlockStmtOrExpr,
70460        __ast_path: &mut AstKindPath,
70461    ) {
70462        <V as VisitMutAstPath>::visit_mut_block_stmt_or_expr(&mut **self, node, __ast_path)
70463    }
70464
70465    #[inline]
70466    fn visit_mut_bool(&mut self, node: &mut Bool, __ast_path: &mut AstKindPath) {
70467        <V as VisitMutAstPath>::visit_mut_bool(&mut **self, node, __ast_path)
70468    }
70469
70470    #[inline]
70471    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt, __ast_path: &mut AstKindPath) {
70472        <V as VisitMutAstPath>::visit_mut_break_stmt(&mut **self, node, __ast_path)
70473    }
70474
70475    #[inline]
70476    fn visit_mut_call_expr(&mut self, node: &mut CallExpr, __ast_path: &mut AstKindPath) {
70477        <V as VisitMutAstPath>::visit_mut_call_expr(&mut **self, node, __ast_path)
70478    }
70479
70480    #[inline]
70481    fn visit_mut_callee(&mut self, node: &mut Callee, __ast_path: &mut AstKindPath) {
70482        <V as VisitMutAstPath>::visit_mut_callee(&mut **self, node, __ast_path)
70483    }
70484
70485    #[inline]
70486    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause, __ast_path: &mut AstKindPath) {
70487        <V as VisitMutAstPath>::visit_mut_catch_clause(&mut **self, node, __ast_path)
70488    }
70489
70490    #[inline]
70491    fn visit_mut_class(&mut self, node: &mut Class, __ast_path: &mut AstKindPath) {
70492        <V as VisitMutAstPath>::visit_mut_class(&mut **self, node, __ast_path)
70493    }
70494
70495    #[inline]
70496    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl, __ast_path: &mut AstKindPath) {
70497        <V as VisitMutAstPath>::visit_mut_class_decl(&mut **self, node, __ast_path)
70498    }
70499
70500    #[inline]
70501    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr, __ast_path: &mut AstKindPath) {
70502        <V as VisitMutAstPath>::visit_mut_class_expr(&mut **self, node, __ast_path)
70503    }
70504
70505    #[inline]
70506    fn visit_mut_class_member(&mut self, node: &mut ClassMember, __ast_path: &mut AstKindPath) {
70507        <V as VisitMutAstPath>::visit_mut_class_member(&mut **self, node, __ast_path)
70508    }
70509
70510    #[inline]
70511    fn visit_mut_class_members(
70512        &mut self,
70513        node: &mut Vec<ClassMember>,
70514        __ast_path: &mut AstKindPath,
70515    ) {
70516        <V as VisitMutAstPath>::visit_mut_class_members(&mut **self, node, __ast_path)
70517    }
70518
70519    #[inline]
70520    fn visit_mut_class_method(&mut self, node: &mut ClassMethod, __ast_path: &mut AstKindPath) {
70521        <V as VisitMutAstPath>::visit_mut_class_method(&mut **self, node, __ast_path)
70522    }
70523
70524    #[inline]
70525    fn visit_mut_class_prop(&mut self, node: &mut ClassProp, __ast_path: &mut AstKindPath) {
70526        <V as VisitMutAstPath>::visit_mut_class_prop(&mut **self, node, __ast_path)
70527    }
70528
70529    #[inline]
70530    fn visit_mut_computed_prop_name(
70531        &mut self,
70532        node: &mut ComputedPropName,
70533        __ast_path: &mut AstKindPath,
70534    ) {
70535        <V as VisitMutAstPath>::visit_mut_computed_prop_name(&mut **self, node, __ast_path)
70536    }
70537
70538    #[inline]
70539    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr, __ast_path: &mut AstKindPath) {
70540        <V as VisitMutAstPath>::visit_mut_cond_expr(&mut **self, node, __ast_path)
70541    }
70542
70543    #[inline]
70544    fn visit_mut_constructor(&mut self, node: &mut Constructor, __ast_path: &mut AstKindPath) {
70545        <V as VisitMutAstPath>::visit_mut_constructor(&mut **self, node, __ast_path)
70546    }
70547
70548    #[inline]
70549    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt, __ast_path: &mut AstKindPath) {
70550        <V as VisitMutAstPath>::visit_mut_continue_stmt(&mut **self, node, __ast_path)
70551    }
70552
70553    #[inline]
70554    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt, __ast_path: &mut AstKindPath) {
70555        <V as VisitMutAstPath>::visit_mut_debugger_stmt(&mut **self, node, __ast_path)
70556    }
70557
70558    #[inline]
70559    fn visit_mut_decl(&mut self, node: &mut Decl, __ast_path: &mut AstKindPath) {
70560        <V as VisitMutAstPath>::visit_mut_decl(&mut **self, node, __ast_path)
70561    }
70562
70563    #[inline]
70564    fn visit_mut_decorator(&mut self, node: &mut Decorator, __ast_path: &mut AstKindPath) {
70565        <V as VisitMutAstPath>::visit_mut_decorator(&mut **self, node, __ast_path)
70566    }
70567
70568    #[inline]
70569    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>, __ast_path: &mut AstKindPath) {
70570        <V as VisitMutAstPath>::visit_mut_decorators(&mut **self, node, __ast_path)
70571    }
70572
70573    #[inline]
70574    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl, __ast_path: &mut AstKindPath) {
70575        <V as VisitMutAstPath>::visit_mut_default_decl(&mut **self, node, __ast_path)
70576    }
70577
70578    #[inline]
70579    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt, __ast_path: &mut AstKindPath) {
70580        <V as VisitMutAstPath>::visit_mut_do_while_stmt(&mut **self, node, __ast_path)
70581    }
70582
70583    #[inline]
70584    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt, __ast_path: &mut AstKindPath) {
70585        <V as VisitMutAstPath>::visit_mut_empty_stmt(&mut **self, node, __ast_path)
70586    }
70587
70588    #[inline]
70589    fn visit_mut_export_all(&mut self, node: &mut ExportAll, __ast_path: &mut AstKindPath) {
70590        <V as VisitMutAstPath>::visit_mut_export_all(&mut **self, node, __ast_path)
70591    }
70592
70593    #[inline]
70594    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl, __ast_path: &mut AstKindPath) {
70595        <V as VisitMutAstPath>::visit_mut_export_decl(&mut **self, node, __ast_path)
70596    }
70597
70598    #[inline]
70599    fn visit_mut_export_default_decl(
70600        &mut self,
70601        node: &mut ExportDefaultDecl,
70602        __ast_path: &mut AstKindPath,
70603    ) {
70604        <V as VisitMutAstPath>::visit_mut_export_default_decl(&mut **self, node, __ast_path)
70605    }
70606
70607    #[inline]
70608    fn visit_mut_export_default_expr(
70609        &mut self,
70610        node: &mut ExportDefaultExpr,
70611        __ast_path: &mut AstKindPath,
70612    ) {
70613        <V as VisitMutAstPath>::visit_mut_export_default_expr(&mut **self, node, __ast_path)
70614    }
70615
70616    #[inline]
70617    fn visit_mut_export_default_specifier(
70618        &mut self,
70619        node: &mut ExportDefaultSpecifier,
70620        __ast_path: &mut AstKindPath,
70621    ) {
70622        <V as VisitMutAstPath>::visit_mut_export_default_specifier(&mut **self, node, __ast_path)
70623    }
70624
70625    #[inline]
70626    fn visit_mut_export_named_specifier(
70627        &mut self,
70628        node: &mut ExportNamedSpecifier,
70629        __ast_path: &mut AstKindPath,
70630    ) {
70631        <V as VisitMutAstPath>::visit_mut_export_named_specifier(&mut **self, node, __ast_path)
70632    }
70633
70634    #[inline]
70635    fn visit_mut_export_namespace_specifier(
70636        &mut self,
70637        node: &mut ExportNamespaceSpecifier,
70638        __ast_path: &mut AstKindPath,
70639    ) {
70640        <V as VisitMutAstPath>::visit_mut_export_namespace_specifier(&mut **self, node, __ast_path)
70641    }
70642
70643    #[inline]
70644    fn visit_mut_export_specifier(
70645        &mut self,
70646        node: &mut ExportSpecifier,
70647        __ast_path: &mut AstKindPath,
70648    ) {
70649        <V as VisitMutAstPath>::visit_mut_export_specifier(&mut **self, node, __ast_path)
70650    }
70651
70652    #[inline]
70653    fn visit_mut_export_specifiers(
70654        &mut self,
70655        node: &mut Vec<ExportSpecifier>,
70656        __ast_path: &mut AstKindPath,
70657    ) {
70658        <V as VisitMutAstPath>::visit_mut_export_specifiers(&mut **self, node, __ast_path)
70659    }
70660
70661    #[inline]
70662    fn visit_mut_expr(&mut self, node: &mut Expr, __ast_path: &mut AstKindPath) {
70663        <V as VisitMutAstPath>::visit_mut_expr(&mut **self, node, __ast_path)
70664    }
70665
70666    #[inline]
70667    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread, __ast_path: &mut AstKindPath) {
70668        <V as VisitMutAstPath>::visit_mut_expr_or_spread(&mut **self, node, __ast_path)
70669    }
70670
70671    #[inline]
70672    fn visit_mut_expr_or_spreads(
70673        &mut self,
70674        node: &mut Vec<ExprOrSpread>,
70675        __ast_path: &mut AstKindPath,
70676    ) {
70677        <V as VisitMutAstPath>::visit_mut_expr_or_spreads(&mut **self, node, __ast_path)
70678    }
70679
70680    #[inline]
70681    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt, __ast_path: &mut AstKindPath) {
70682        <V as VisitMutAstPath>::visit_mut_expr_stmt(&mut **self, node, __ast_path)
70683    }
70684
70685    #[inline]
70686    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>, __ast_path: &mut AstKindPath) {
70687        <V as VisitMutAstPath>::visit_mut_exprs(&mut **self, node, __ast_path)
70688    }
70689
70690    #[inline]
70691    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl, __ast_path: &mut AstKindPath) {
70692        <V as VisitMutAstPath>::visit_mut_fn_decl(&mut **self, node, __ast_path)
70693    }
70694
70695    #[inline]
70696    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr, __ast_path: &mut AstKindPath) {
70697        <V as VisitMutAstPath>::visit_mut_fn_expr(&mut **self, node, __ast_path)
70698    }
70699
70700    #[inline]
70701    fn visit_mut_for_head(&mut self, node: &mut ForHead, __ast_path: &mut AstKindPath) {
70702        <V as VisitMutAstPath>::visit_mut_for_head(&mut **self, node, __ast_path)
70703    }
70704
70705    #[inline]
70706    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt, __ast_path: &mut AstKindPath) {
70707        <V as VisitMutAstPath>::visit_mut_for_in_stmt(&mut **self, node, __ast_path)
70708    }
70709
70710    #[inline]
70711    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt, __ast_path: &mut AstKindPath) {
70712        <V as VisitMutAstPath>::visit_mut_for_of_stmt(&mut **self, node, __ast_path)
70713    }
70714
70715    #[inline]
70716    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt, __ast_path: &mut AstKindPath) {
70717        <V as VisitMutAstPath>::visit_mut_for_stmt(&mut **self, node, __ast_path)
70718    }
70719
70720    #[inline]
70721    fn visit_mut_function(&mut self, node: &mut Function, __ast_path: &mut AstKindPath) {
70722        <V as VisitMutAstPath>::visit_mut_function(&mut **self, node, __ast_path)
70723    }
70724
70725    #[inline]
70726    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp, __ast_path: &mut AstKindPath) {
70727        <V as VisitMutAstPath>::visit_mut_getter_prop(&mut **self, node, __ast_path)
70728    }
70729
70730    #[inline]
70731    fn visit_mut_ident(&mut self, node: &mut Ident, __ast_path: &mut AstKindPath) {
70732        <V as VisitMutAstPath>::visit_mut_ident(&mut **self, node, __ast_path)
70733    }
70734
70735    #[inline]
70736    fn visit_mut_ident_name(&mut self, node: &mut IdentName, __ast_path: &mut AstKindPath) {
70737        <V as VisitMutAstPath>::visit_mut_ident_name(&mut **self, node, __ast_path)
70738    }
70739
70740    #[inline]
70741    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt, __ast_path: &mut AstKindPath) {
70742        <V as VisitMutAstPath>::visit_mut_if_stmt(&mut **self, node, __ast_path)
70743    }
70744
70745    #[inline]
70746    fn visit_mut_import(&mut self, node: &mut Import, __ast_path: &mut AstKindPath) {
70747        <V as VisitMutAstPath>::visit_mut_import(&mut **self, node, __ast_path)
70748    }
70749
70750    #[inline]
70751    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl, __ast_path: &mut AstKindPath) {
70752        <V as VisitMutAstPath>::visit_mut_import_decl(&mut **self, node, __ast_path)
70753    }
70754
70755    #[inline]
70756    fn visit_mut_import_default_specifier(
70757        &mut self,
70758        node: &mut ImportDefaultSpecifier,
70759        __ast_path: &mut AstKindPath,
70760    ) {
70761        <V as VisitMutAstPath>::visit_mut_import_default_specifier(&mut **self, node, __ast_path)
70762    }
70763
70764    #[inline]
70765    fn visit_mut_import_named_specifier(
70766        &mut self,
70767        node: &mut ImportNamedSpecifier,
70768        __ast_path: &mut AstKindPath,
70769    ) {
70770        <V as VisitMutAstPath>::visit_mut_import_named_specifier(&mut **self, node, __ast_path)
70771    }
70772
70773    #[inline]
70774    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase, __ast_path: &mut AstKindPath) {
70775        <V as VisitMutAstPath>::visit_mut_import_phase(&mut **self, node, __ast_path)
70776    }
70777
70778    #[inline]
70779    fn visit_mut_import_specifier(
70780        &mut self,
70781        node: &mut ImportSpecifier,
70782        __ast_path: &mut AstKindPath,
70783    ) {
70784        <V as VisitMutAstPath>::visit_mut_import_specifier(&mut **self, node, __ast_path)
70785    }
70786
70787    #[inline]
70788    fn visit_mut_import_specifiers(
70789        &mut self,
70790        node: &mut Vec<ImportSpecifier>,
70791        __ast_path: &mut AstKindPath,
70792    ) {
70793        <V as VisitMutAstPath>::visit_mut_import_specifiers(&mut **self, node, __ast_path)
70794    }
70795
70796    #[inline]
70797    fn visit_mut_import_star_as_specifier(
70798        &mut self,
70799        node: &mut ImportStarAsSpecifier,
70800        __ast_path: &mut AstKindPath,
70801    ) {
70802        <V as VisitMutAstPath>::visit_mut_import_star_as_specifier(&mut **self, node, __ast_path)
70803    }
70804
70805    #[inline]
70806    fn visit_mut_import_with(&mut self, node: &mut ImportWith, __ast_path: &mut AstKindPath) {
70807        <V as VisitMutAstPath>::visit_mut_import_with(&mut **self, node, __ast_path)
70808    }
70809
70810    #[inline]
70811    fn visit_mut_import_with_item(
70812        &mut self,
70813        node: &mut ImportWithItem,
70814        __ast_path: &mut AstKindPath,
70815    ) {
70816        <V as VisitMutAstPath>::visit_mut_import_with_item(&mut **self, node, __ast_path)
70817    }
70818
70819    #[inline]
70820    fn visit_mut_import_with_items(
70821        &mut self,
70822        node: &mut Vec<ImportWithItem>,
70823        __ast_path: &mut AstKindPath,
70824    ) {
70825        <V as VisitMutAstPath>::visit_mut_import_with_items(&mut **self, node, __ast_path)
70826    }
70827
70828    #[inline]
70829    fn visit_mut_invalid(&mut self, node: &mut Invalid, __ast_path: &mut AstKindPath) {
70830        <V as VisitMutAstPath>::visit_mut_invalid(&mut **self, node, __ast_path)
70831    }
70832
70833    #[inline]
70834    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr, __ast_path: &mut AstKindPath) {
70835        <V as VisitMutAstPath>::visit_mut_jsx_attr(&mut **self, node, __ast_path)
70836    }
70837
70838    #[inline]
70839    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName, __ast_path: &mut AstKindPath) {
70840        <V as VisitMutAstPath>::visit_mut_jsx_attr_name(&mut **self, node, __ast_path)
70841    }
70842
70843    #[inline]
70844    fn visit_mut_jsx_attr_or_spread(
70845        &mut self,
70846        node: &mut JSXAttrOrSpread,
70847        __ast_path: &mut AstKindPath,
70848    ) {
70849        <V as VisitMutAstPath>::visit_mut_jsx_attr_or_spread(&mut **self, node, __ast_path)
70850    }
70851
70852    #[inline]
70853    fn visit_mut_jsx_attr_or_spreads(
70854        &mut self,
70855        node: &mut Vec<JSXAttrOrSpread>,
70856        __ast_path: &mut AstKindPath,
70857    ) {
70858        <V as VisitMutAstPath>::visit_mut_jsx_attr_or_spreads(&mut **self, node, __ast_path)
70859    }
70860
70861    #[inline]
70862    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue, __ast_path: &mut AstKindPath) {
70863        <V as VisitMutAstPath>::visit_mut_jsx_attr_value(&mut **self, node, __ast_path)
70864    }
70865
70866    #[inline]
70867    fn visit_mut_jsx_closing_element(
70868        &mut self,
70869        node: &mut JSXClosingElement,
70870        __ast_path: &mut AstKindPath,
70871    ) {
70872        <V as VisitMutAstPath>::visit_mut_jsx_closing_element(&mut **self, node, __ast_path)
70873    }
70874
70875    #[inline]
70876    fn visit_mut_jsx_closing_fragment(
70877        &mut self,
70878        node: &mut JSXClosingFragment,
70879        __ast_path: &mut AstKindPath,
70880    ) {
70881        <V as VisitMutAstPath>::visit_mut_jsx_closing_fragment(&mut **self, node, __ast_path)
70882    }
70883
70884    #[inline]
70885    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement, __ast_path: &mut AstKindPath) {
70886        <V as VisitMutAstPath>::visit_mut_jsx_element(&mut **self, node, __ast_path)
70887    }
70888
70889    #[inline]
70890    fn visit_mut_jsx_element_child(
70891        &mut self,
70892        node: &mut JSXElementChild,
70893        __ast_path: &mut AstKindPath,
70894    ) {
70895        <V as VisitMutAstPath>::visit_mut_jsx_element_child(&mut **self, node, __ast_path)
70896    }
70897
70898    #[inline]
70899    fn visit_mut_jsx_element_childs(
70900        &mut self,
70901        node: &mut Vec<JSXElementChild>,
70902        __ast_path: &mut AstKindPath,
70903    ) {
70904        <V as VisitMutAstPath>::visit_mut_jsx_element_childs(&mut **self, node, __ast_path)
70905    }
70906
70907    #[inline]
70908    fn visit_mut_jsx_element_name(
70909        &mut self,
70910        node: &mut JSXElementName,
70911        __ast_path: &mut AstKindPath,
70912    ) {
70913        <V as VisitMutAstPath>::visit_mut_jsx_element_name(&mut **self, node, __ast_path)
70914    }
70915
70916    #[inline]
70917    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr, __ast_path: &mut AstKindPath) {
70918        <V as VisitMutAstPath>::visit_mut_jsx_empty_expr(&mut **self, node, __ast_path)
70919    }
70920
70921    #[inline]
70922    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr, __ast_path: &mut AstKindPath) {
70923        <V as VisitMutAstPath>::visit_mut_jsx_expr(&mut **self, node, __ast_path)
70924    }
70925
70926    #[inline]
70927    fn visit_mut_jsx_expr_container(
70928        &mut self,
70929        node: &mut JSXExprContainer,
70930        __ast_path: &mut AstKindPath,
70931    ) {
70932        <V as VisitMutAstPath>::visit_mut_jsx_expr_container(&mut **self, node, __ast_path)
70933    }
70934
70935    #[inline]
70936    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment, __ast_path: &mut AstKindPath) {
70937        <V as VisitMutAstPath>::visit_mut_jsx_fragment(&mut **self, node, __ast_path)
70938    }
70939
70940    #[inline]
70941    fn visit_mut_jsx_member_expr(
70942        &mut self,
70943        node: &mut JSXMemberExpr,
70944        __ast_path: &mut AstKindPath,
70945    ) {
70946        <V as VisitMutAstPath>::visit_mut_jsx_member_expr(&mut **self, node, __ast_path)
70947    }
70948
70949    #[inline]
70950    fn visit_mut_jsx_namespaced_name(
70951        &mut self,
70952        node: &mut JSXNamespacedName,
70953        __ast_path: &mut AstKindPath,
70954    ) {
70955        <V as VisitMutAstPath>::visit_mut_jsx_namespaced_name(&mut **self, node, __ast_path)
70956    }
70957
70958    #[inline]
70959    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject, __ast_path: &mut AstKindPath) {
70960        <V as VisitMutAstPath>::visit_mut_jsx_object(&mut **self, node, __ast_path)
70961    }
70962
70963    #[inline]
70964    fn visit_mut_jsx_opening_element(
70965        &mut self,
70966        node: &mut JSXOpeningElement,
70967        __ast_path: &mut AstKindPath,
70968    ) {
70969        <V as VisitMutAstPath>::visit_mut_jsx_opening_element(&mut **self, node, __ast_path)
70970    }
70971
70972    #[inline]
70973    fn visit_mut_jsx_opening_fragment(
70974        &mut self,
70975        node: &mut JSXOpeningFragment,
70976        __ast_path: &mut AstKindPath,
70977    ) {
70978        <V as VisitMutAstPath>::visit_mut_jsx_opening_fragment(&mut **self, node, __ast_path)
70979    }
70980
70981    #[inline]
70982    fn visit_mut_jsx_spread_child(
70983        &mut self,
70984        node: &mut JSXSpreadChild,
70985        __ast_path: &mut AstKindPath,
70986    ) {
70987        <V as VisitMutAstPath>::visit_mut_jsx_spread_child(&mut **self, node, __ast_path)
70988    }
70989
70990    #[inline]
70991    fn visit_mut_jsx_text(&mut self, node: &mut JSXText, __ast_path: &mut AstKindPath) {
70992        <V as VisitMutAstPath>::visit_mut_jsx_text(&mut **self, node, __ast_path)
70993    }
70994
70995    #[inline]
70996    fn visit_mut_key(&mut self, node: &mut Key, __ast_path: &mut AstKindPath) {
70997        <V as VisitMutAstPath>::visit_mut_key(&mut **self, node, __ast_path)
70998    }
70999
71000    #[inline]
71001    fn visit_mut_key_value_pat_prop(
71002        &mut self,
71003        node: &mut KeyValuePatProp,
71004        __ast_path: &mut AstKindPath,
71005    ) {
71006        <V as VisitMutAstPath>::visit_mut_key_value_pat_prop(&mut **self, node, __ast_path)
71007    }
71008
71009    #[inline]
71010    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp, __ast_path: &mut AstKindPath) {
71011        <V as VisitMutAstPath>::visit_mut_key_value_prop(&mut **self, node, __ast_path)
71012    }
71013
71014    #[inline]
71015    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt, __ast_path: &mut AstKindPath) {
71016        <V as VisitMutAstPath>::visit_mut_labeled_stmt(&mut **self, node, __ast_path)
71017    }
71018
71019    #[inline]
71020    fn visit_mut_lit(&mut self, node: &mut Lit, __ast_path: &mut AstKindPath) {
71021        <V as VisitMutAstPath>::visit_mut_lit(&mut **self, node, __ast_path)
71022    }
71023
71024    #[inline]
71025    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr, __ast_path: &mut AstKindPath) {
71026        <V as VisitMutAstPath>::visit_mut_member_expr(&mut **self, node, __ast_path)
71027    }
71028
71029    #[inline]
71030    fn visit_mut_member_prop(&mut self, node: &mut MemberProp, __ast_path: &mut AstKindPath) {
71031        <V as VisitMutAstPath>::visit_mut_member_prop(&mut **self, node, __ast_path)
71032    }
71033
71034    #[inline]
71035    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr, __ast_path: &mut AstKindPath) {
71036        <V as VisitMutAstPath>::visit_mut_meta_prop_expr(&mut **self, node, __ast_path)
71037    }
71038
71039    #[inline]
71040    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind, __ast_path: &mut AstKindPath) {
71041        <V as VisitMutAstPath>::visit_mut_meta_prop_kind(&mut **self, node, __ast_path)
71042    }
71043
71044    #[inline]
71045    fn visit_mut_method_kind(&mut self, node: &mut MethodKind, __ast_path: &mut AstKindPath) {
71046        <V as VisitMutAstPath>::visit_mut_method_kind(&mut **self, node, __ast_path)
71047    }
71048
71049    #[inline]
71050    fn visit_mut_method_prop(&mut self, node: &mut MethodProp, __ast_path: &mut AstKindPath) {
71051        <V as VisitMutAstPath>::visit_mut_method_prop(&mut **self, node, __ast_path)
71052    }
71053
71054    #[inline]
71055    fn visit_mut_module(&mut self, node: &mut Module, __ast_path: &mut AstKindPath) {
71056        <V as VisitMutAstPath>::visit_mut_module(&mut **self, node, __ast_path)
71057    }
71058
71059    #[inline]
71060    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl, __ast_path: &mut AstKindPath) {
71061        <V as VisitMutAstPath>::visit_mut_module_decl(&mut **self, node, __ast_path)
71062    }
71063
71064    #[inline]
71065    fn visit_mut_module_export_name(
71066        &mut self,
71067        node: &mut ModuleExportName,
71068        __ast_path: &mut AstKindPath,
71069    ) {
71070        <V as VisitMutAstPath>::visit_mut_module_export_name(&mut **self, node, __ast_path)
71071    }
71072
71073    #[inline]
71074    fn visit_mut_module_item(&mut self, node: &mut ModuleItem, __ast_path: &mut AstKindPath) {
71075        <V as VisitMutAstPath>::visit_mut_module_item(&mut **self, node, __ast_path)
71076    }
71077
71078    #[inline]
71079    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>, __ast_path: &mut AstKindPath) {
71080        <V as VisitMutAstPath>::visit_mut_module_items(&mut **self, node, __ast_path)
71081    }
71082
71083    #[inline]
71084    fn visit_mut_named_export(&mut self, node: &mut NamedExport, __ast_path: &mut AstKindPath) {
71085        <V as VisitMutAstPath>::visit_mut_named_export(&mut **self, node, __ast_path)
71086    }
71087
71088    #[inline]
71089    fn visit_mut_new_expr(&mut self, node: &mut NewExpr, __ast_path: &mut AstKindPath) {
71090        <V as VisitMutAstPath>::visit_mut_new_expr(&mut **self, node, __ast_path)
71091    }
71092
71093    #[inline]
71094    fn visit_mut_null(&mut self, node: &mut Null, __ast_path: &mut AstKindPath) {
71095        <V as VisitMutAstPath>::visit_mut_null(&mut **self, node, __ast_path)
71096    }
71097
71098    #[inline]
71099    fn visit_mut_number(&mut self, node: &mut Number, __ast_path: &mut AstKindPath) {
71100        <V as VisitMutAstPath>::visit_mut_number(&mut **self, node, __ast_path)
71101    }
71102
71103    #[inline]
71104    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit, __ast_path: &mut AstKindPath) {
71105        <V as VisitMutAstPath>::visit_mut_object_lit(&mut **self, node, __ast_path)
71106    }
71107
71108    #[inline]
71109    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat, __ast_path: &mut AstKindPath) {
71110        <V as VisitMutAstPath>::visit_mut_object_pat(&mut **self, node, __ast_path)
71111    }
71112
71113    #[inline]
71114    fn visit_mut_object_pat_prop(
71115        &mut self,
71116        node: &mut ObjectPatProp,
71117        __ast_path: &mut AstKindPath,
71118    ) {
71119        <V as VisitMutAstPath>::visit_mut_object_pat_prop(&mut **self, node, __ast_path)
71120    }
71121
71122    #[inline]
71123    fn visit_mut_object_pat_props(
71124        &mut self,
71125        node: &mut Vec<ObjectPatProp>,
71126        __ast_path: &mut AstKindPath,
71127    ) {
71128        <V as VisitMutAstPath>::visit_mut_object_pat_props(&mut **self, node, __ast_path)
71129    }
71130
71131    #[inline]
71132    fn visit_mut_opt_accessibility(
71133        &mut self,
71134        node: &mut Option<Accessibility>,
71135        __ast_path: &mut AstKindPath,
71136    ) {
71137        <V as VisitMutAstPath>::visit_mut_opt_accessibility(&mut **self, node, __ast_path)
71138    }
71139
71140    #[inline]
71141    fn visit_mut_opt_atom(
71142        &mut self,
71143        node: &mut Option<swc_atoms::Atom>,
71144        __ast_path: &mut AstKindPath,
71145    ) {
71146        <V as VisitMutAstPath>::visit_mut_opt_atom(&mut **self, node, __ast_path)
71147    }
71148
71149    #[inline]
71150    fn visit_mut_opt_block_stmt(
71151        &mut self,
71152        node: &mut Option<BlockStmt>,
71153        __ast_path: &mut AstKindPath,
71154    ) {
71155        <V as VisitMutAstPath>::visit_mut_opt_block_stmt(&mut **self, node, __ast_path)
71156    }
71157
71158    #[inline]
71159    fn visit_mut_opt_call(&mut self, node: &mut OptCall, __ast_path: &mut AstKindPath) {
71160        <V as VisitMutAstPath>::visit_mut_opt_call(&mut **self, node, __ast_path)
71161    }
71162
71163    #[inline]
71164    fn visit_mut_opt_catch_clause(
71165        &mut self,
71166        node: &mut Option<CatchClause>,
71167        __ast_path: &mut AstKindPath,
71168    ) {
71169        <V as VisitMutAstPath>::visit_mut_opt_catch_clause(&mut **self, node, __ast_path)
71170    }
71171
71172    #[inline]
71173    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase, __ast_path: &mut AstKindPath) {
71174        <V as VisitMutAstPath>::visit_mut_opt_chain_base(&mut **self, node, __ast_path)
71175    }
71176
71177    #[inline]
71178    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr, __ast_path: &mut AstKindPath) {
71179        <V as VisitMutAstPath>::visit_mut_opt_chain_expr(&mut **self, node, __ast_path)
71180    }
71181
71182    #[inline]
71183    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>, __ast_path: &mut AstKindPath) {
71184        <V as VisitMutAstPath>::visit_mut_opt_expr(&mut **self, node, __ast_path)
71185    }
71186
71187    #[inline]
71188    fn visit_mut_opt_expr_or_spread(
71189        &mut self,
71190        node: &mut Option<ExprOrSpread>,
71191        __ast_path: &mut AstKindPath,
71192    ) {
71193        <V as VisitMutAstPath>::visit_mut_opt_expr_or_spread(&mut **self, node, __ast_path)
71194    }
71195
71196    #[inline]
71197    fn visit_mut_opt_expr_or_spreads(
71198        &mut self,
71199        node: &mut Option<Vec<ExprOrSpread>>,
71200        __ast_path: &mut AstKindPath,
71201    ) {
71202        <V as VisitMutAstPath>::visit_mut_opt_expr_or_spreads(&mut **self, node, __ast_path)
71203    }
71204
71205    #[inline]
71206    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>, __ast_path: &mut AstKindPath) {
71207        <V as VisitMutAstPath>::visit_mut_opt_ident(&mut **self, node, __ast_path)
71208    }
71209
71210    #[inline]
71211    fn visit_mut_opt_jsx_attr_value(
71212        &mut self,
71213        node: &mut Option<JSXAttrValue>,
71214        __ast_path: &mut AstKindPath,
71215    ) {
71216        <V as VisitMutAstPath>::visit_mut_opt_jsx_attr_value(&mut **self, node, __ast_path)
71217    }
71218
71219    #[inline]
71220    fn visit_mut_opt_jsx_closing_element(
71221        &mut self,
71222        node: &mut Option<JSXClosingElement>,
71223        __ast_path: &mut AstKindPath,
71224    ) {
71225        <V as VisitMutAstPath>::visit_mut_opt_jsx_closing_element(&mut **self, node, __ast_path)
71226    }
71227
71228    #[inline]
71229    fn visit_mut_opt_module_export_name(
71230        &mut self,
71231        node: &mut Option<ModuleExportName>,
71232        __ast_path: &mut AstKindPath,
71233    ) {
71234        <V as VisitMutAstPath>::visit_mut_opt_module_export_name(&mut **self, node, __ast_path)
71235    }
71236
71237    #[inline]
71238    fn visit_mut_opt_object_lit(
71239        &mut self,
71240        node: &mut Option<Box<ObjectLit>>,
71241        __ast_path: &mut AstKindPath,
71242    ) {
71243        <V as VisitMutAstPath>::visit_mut_opt_object_lit(&mut **self, node, __ast_path)
71244    }
71245
71246    #[inline]
71247    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>, __ast_path: &mut AstKindPath) {
71248        <V as VisitMutAstPath>::visit_mut_opt_pat(&mut **self, node, __ast_path)
71249    }
71250
71251    #[inline]
71252    fn visit_mut_opt_span(
71253        &mut self,
71254        node: &mut Option<swc_common::Span>,
71255        __ast_path: &mut AstKindPath,
71256    ) {
71257        <V as VisitMutAstPath>::visit_mut_opt_span(&mut **self, node, __ast_path)
71258    }
71259
71260    #[inline]
71261    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>, __ast_path: &mut AstKindPath) {
71262        <V as VisitMutAstPath>::visit_mut_opt_stmt(&mut **self, node, __ast_path)
71263    }
71264
71265    #[inline]
71266    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>, __ast_path: &mut AstKindPath) {
71267        <V as VisitMutAstPath>::visit_mut_opt_str(&mut **self, node, __ast_path)
71268    }
71269
71270    #[inline]
71271    fn visit_mut_opt_true_plus_minus(
71272        &mut self,
71273        node: &mut Option<TruePlusMinus>,
71274        __ast_path: &mut AstKindPath,
71275    ) {
71276        <V as VisitMutAstPath>::visit_mut_opt_true_plus_minus(&mut **self, node, __ast_path)
71277    }
71278
71279    #[inline]
71280    fn visit_mut_opt_ts_entity_name(
71281        &mut self,
71282        node: &mut Option<TsEntityName>,
71283        __ast_path: &mut AstKindPath,
71284    ) {
71285        <V as VisitMutAstPath>::visit_mut_opt_ts_entity_name(&mut **self, node, __ast_path)
71286    }
71287
71288    #[inline]
71289    fn visit_mut_opt_ts_import_call_options(
71290        &mut self,
71291        node: &mut Option<TsImportCallOptions>,
71292        __ast_path: &mut AstKindPath,
71293    ) {
71294        <V as VisitMutAstPath>::visit_mut_opt_ts_import_call_options(&mut **self, node, __ast_path)
71295    }
71296
71297    #[inline]
71298    fn visit_mut_opt_ts_namespace_body(
71299        &mut self,
71300        node: &mut Option<TsNamespaceBody>,
71301        __ast_path: &mut AstKindPath,
71302    ) {
71303        <V as VisitMutAstPath>::visit_mut_opt_ts_namespace_body(&mut **self, node, __ast_path)
71304    }
71305
71306    #[inline]
71307    fn visit_mut_opt_ts_type(
71308        &mut self,
71309        node: &mut Option<Box<TsType>>,
71310        __ast_path: &mut AstKindPath,
71311    ) {
71312        <V as VisitMutAstPath>::visit_mut_opt_ts_type(&mut **self, node, __ast_path)
71313    }
71314
71315    #[inline]
71316    fn visit_mut_opt_ts_type_ann(
71317        &mut self,
71318        node: &mut Option<Box<TsTypeAnn>>,
71319        __ast_path: &mut AstKindPath,
71320    ) {
71321        <V as VisitMutAstPath>::visit_mut_opt_ts_type_ann(&mut **self, node, __ast_path)
71322    }
71323
71324    #[inline]
71325    fn visit_mut_opt_ts_type_param_decl(
71326        &mut self,
71327        node: &mut Option<Box<TsTypeParamDecl>>,
71328        __ast_path: &mut AstKindPath,
71329    ) {
71330        <V as VisitMutAstPath>::visit_mut_opt_ts_type_param_decl(&mut **self, node, __ast_path)
71331    }
71332
71333    #[inline]
71334    fn visit_mut_opt_ts_type_param_instantiation(
71335        &mut self,
71336        node: &mut Option<Box<TsTypeParamInstantiation>>,
71337        __ast_path: &mut AstKindPath,
71338    ) {
71339        <V as VisitMutAstPath>::visit_mut_opt_ts_type_param_instantiation(
71340            &mut **self,
71341            node,
71342            __ast_path,
71343        )
71344    }
71345
71346    #[inline]
71347    fn visit_mut_opt_var_decl_or_expr(
71348        &mut self,
71349        node: &mut Option<VarDeclOrExpr>,
71350        __ast_path: &mut AstKindPath,
71351    ) {
71352        <V as VisitMutAstPath>::visit_mut_opt_var_decl_or_expr(&mut **self, node, __ast_path)
71353    }
71354
71355    #[inline]
71356    fn visit_mut_opt_vec_expr_or_spreads(
71357        &mut self,
71358        node: &mut Vec<Option<ExprOrSpread>>,
71359        __ast_path: &mut AstKindPath,
71360    ) {
71361        <V as VisitMutAstPath>::visit_mut_opt_vec_expr_or_spreads(&mut **self, node, __ast_path)
71362    }
71363
71364    #[inline]
71365    fn visit_mut_opt_vec_pats(
71366        &mut self,
71367        node: &mut Vec<Option<Pat>>,
71368        __ast_path: &mut AstKindPath,
71369    ) {
71370        <V as VisitMutAstPath>::visit_mut_opt_vec_pats(&mut **self, node, __ast_path)
71371    }
71372
71373    #[inline]
71374    fn visit_mut_param(&mut self, node: &mut Param, __ast_path: &mut AstKindPath) {
71375        <V as VisitMutAstPath>::visit_mut_param(&mut **self, node, __ast_path)
71376    }
71377
71378    #[inline]
71379    fn visit_mut_param_or_ts_param_prop(
71380        &mut self,
71381        node: &mut ParamOrTsParamProp,
71382        __ast_path: &mut AstKindPath,
71383    ) {
71384        <V as VisitMutAstPath>::visit_mut_param_or_ts_param_prop(&mut **self, node, __ast_path)
71385    }
71386
71387    #[inline]
71388    fn visit_mut_param_or_ts_param_props(
71389        &mut self,
71390        node: &mut Vec<ParamOrTsParamProp>,
71391        __ast_path: &mut AstKindPath,
71392    ) {
71393        <V as VisitMutAstPath>::visit_mut_param_or_ts_param_props(&mut **self, node, __ast_path)
71394    }
71395
71396    #[inline]
71397    fn visit_mut_params(&mut self, node: &mut Vec<Param>, __ast_path: &mut AstKindPath) {
71398        <V as VisitMutAstPath>::visit_mut_params(&mut **self, node, __ast_path)
71399    }
71400
71401    #[inline]
71402    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr, __ast_path: &mut AstKindPath) {
71403        <V as VisitMutAstPath>::visit_mut_paren_expr(&mut **self, node, __ast_path)
71404    }
71405
71406    #[inline]
71407    fn visit_mut_pat(&mut self, node: &mut Pat, __ast_path: &mut AstKindPath) {
71408        <V as VisitMutAstPath>::visit_mut_pat(&mut **self, node, __ast_path)
71409    }
71410
71411    #[inline]
71412    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>, __ast_path: &mut AstKindPath) {
71413        <V as VisitMutAstPath>::visit_mut_pats(&mut **self, node, __ast_path)
71414    }
71415
71416    #[inline]
71417    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod, __ast_path: &mut AstKindPath) {
71418        <V as VisitMutAstPath>::visit_mut_private_method(&mut **self, node, __ast_path)
71419    }
71420
71421    #[inline]
71422    fn visit_mut_private_name(&mut self, node: &mut PrivateName, __ast_path: &mut AstKindPath) {
71423        <V as VisitMutAstPath>::visit_mut_private_name(&mut **self, node, __ast_path)
71424    }
71425
71426    #[inline]
71427    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp, __ast_path: &mut AstKindPath) {
71428        <V as VisitMutAstPath>::visit_mut_private_prop(&mut **self, node, __ast_path)
71429    }
71430
71431    #[inline]
71432    fn visit_mut_program(&mut self, node: &mut Program, __ast_path: &mut AstKindPath) {
71433        <V as VisitMutAstPath>::visit_mut_program(&mut **self, node, __ast_path)
71434    }
71435
71436    #[inline]
71437    fn visit_mut_prop(&mut self, node: &mut Prop, __ast_path: &mut AstKindPath) {
71438        <V as VisitMutAstPath>::visit_mut_prop(&mut **self, node, __ast_path)
71439    }
71440
71441    #[inline]
71442    fn visit_mut_prop_name(&mut self, node: &mut PropName, __ast_path: &mut AstKindPath) {
71443        <V as VisitMutAstPath>::visit_mut_prop_name(&mut **self, node, __ast_path)
71444    }
71445
71446    #[inline]
71447    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread, __ast_path: &mut AstKindPath) {
71448        <V as VisitMutAstPath>::visit_mut_prop_or_spread(&mut **self, node, __ast_path)
71449    }
71450
71451    #[inline]
71452    fn visit_mut_prop_or_spreads(
71453        &mut self,
71454        node: &mut Vec<PropOrSpread>,
71455        __ast_path: &mut AstKindPath,
71456    ) {
71457        <V as VisitMutAstPath>::visit_mut_prop_or_spreads(&mut **self, node, __ast_path)
71458    }
71459
71460    #[inline]
71461    fn visit_mut_regex(&mut self, node: &mut Regex, __ast_path: &mut AstKindPath) {
71462        <V as VisitMutAstPath>::visit_mut_regex(&mut **self, node, __ast_path)
71463    }
71464
71465    #[inline]
71466    fn visit_mut_rest_pat(&mut self, node: &mut RestPat, __ast_path: &mut AstKindPath) {
71467        <V as VisitMutAstPath>::visit_mut_rest_pat(&mut **self, node, __ast_path)
71468    }
71469
71470    #[inline]
71471    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt, __ast_path: &mut AstKindPath) {
71472        <V as VisitMutAstPath>::visit_mut_return_stmt(&mut **self, node, __ast_path)
71473    }
71474
71475    #[inline]
71476    fn visit_mut_script(&mut self, node: &mut Script, __ast_path: &mut AstKindPath) {
71477        <V as VisitMutAstPath>::visit_mut_script(&mut **self, node, __ast_path)
71478    }
71479
71480    #[inline]
71481    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr, __ast_path: &mut AstKindPath) {
71482        <V as VisitMutAstPath>::visit_mut_seq_expr(&mut **self, node, __ast_path)
71483    }
71484
71485    #[inline]
71486    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp, __ast_path: &mut AstKindPath) {
71487        <V as VisitMutAstPath>::visit_mut_setter_prop(&mut **self, node, __ast_path)
71488    }
71489
71490    #[inline]
71491    fn visit_mut_simple_assign_target(
71492        &mut self,
71493        node: &mut SimpleAssignTarget,
71494        __ast_path: &mut AstKindPath,
71495    ) {
71496        <V as VisitMutAstPath>::visit_mut_simple_assign_target(&mut **self, node, __ast_path)
71497    }
71498
71499    #[inline]
71500    fn visit_mut_span(&mut self, node: &mut swc_common::Span, __ast_path: &mut AstKindPath) {
71501        <V as VisitMutAstPath>::visit_mut_span(&mut **self, node, __ast_path)
71502    }
71503
71504    #[inline]
71505    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement, __ast_path: &mut AstKindPath) {
71506        <V as VisitMutAstPath>::visit_mut_spread_element(&mut **self, node, __ast_path)
71507    }
71508
71509    #[inline]
71510    fn visit_mut_static_block(&mut self, node: &mut StaticBlock, __ast_path: &mut AstKindPath) {
71511        <V as VisitMutAstPath>::visit_mut_static_block(&mut **self, node, __ast_path)
71512    }
71513
71514    #[inline]
71515    fn visit_mut_stmt(&mut self, node: &mut Stmt, __ast_path: &mut AstKindPath) {
71516        <V as VisitMutAstPath>::visit_mut_stmt(&mut **self, node, __ast_path)
71517    }
71518
71519    #[inline]
71520    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>, __ast_path: &mut AstKindPath) {
71521        <V as VisitMutAstPath>::visit_mut_stmts(&mut **self, node, __ast_path)
71522    }
71523
71524    #[inline]
71525    fn visit_mut_str(&mut self, node: &mut Str, __ast_path: &mut AstKindPath) {
71526        <V as VisitMutAstPath>::visit_mut_str(&mut **self, node, __ast_path)
71527    }
71528
71529    #[inline]
71530    fn visit_mut_super(&mut self, node: &mut Super, __ast_path: &mut AstKindPath) {
71531        <V as VisitMutAstPath>::visit_mut_super(&mut **self, node, __ast_path)
71532    }
71533
71534    #[inline]
71535    fn visit_mut_super_prop(&mut self, node: &mut SuperProp, __ast_path: &mut AstKindPath) {
71536        <V as VisitMutAstPath>::visit_mut_super_prop(&mut **self, node, __ast_path)
71537    }
71538
71539    #[inline]
71540    fn visit_mut_super_prop_expr(
71541        &mut self,
71542        node: &mut SuperPropExpr,
71543        __ast_path: &mut AstKindPath,
71544    ) {
71545        <V as VisitMutAstPath>::visit_mut_super_prop_expr(&mut **self, node, __ast_path)
71546    }
71547
71548    #[inline]
71549    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase, __ast_path: &mut AstKindPath) {
71550        <V as VisitMutAstPath>::visit_mut_switch_case(&mut **self, node, __ast_path)
71551    }
71552
71553    #[inline]
71554    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>, __ast_path: &mut AstKindPath) {
71555        <V as VisitMutAstPath>::visit_mut_switch_cases(&mut **self, node, __ast_path)
71556    }
71557
71558    #[inline]
71559    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt, __ast_path: &mut AstKindPath) {
71560        <V as VisitMutAstPath>::visit_mut_switch_stmt(&mut **self, node, __ast_path)
71561    }
71562
71563    #[inline]
71564    fn visit_mut_syntax_context(
71565        &mut self,
71566        node: &mut swc_common::SyntaxContext,
71567        __ast_path: &mut AstKindPath,
71568    ) {
71569        <V as VisitMutAstPath>::visit_mut_syntax_context(&mut **self, node, __ast_path)
71570    }
71571
71572    #[inline]
71573    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl, __ast_path: &mut AstKindPath) {
71574        <V as VisitMutAstPath>::visit_mut_tagged_tpl(&mut **self, node, __ast_path)
71575    }
71576
71577    #[inline]
71578    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr, __ast_path: &mut AstKindPath) {
71579        <V as VisitMutAstPath>::visit_mut_this_expr(&mut **self, node, __ast_path)
71580    }
71581
71582    #[inline]
71583    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt, __ast_path: &mut AstKindPath) {
71584        <V as VisitMutAstPath>::visit_mut_throw_stmt(&mut **self, node, __ast_path)
71585    }
71586
71587    #[inline]
71588    fn visit_mut_tpl(&mut self, node: &mut Tpl, __ast_path: &mut AstKindPath) {
71589        <V as VisitMutAstPath>::visit_mut_tpl(&mut **self, node, __ast_path)
71590    }
71591
71592    #[inline]
71593    fn visit_mut_tpl_element(&mut self, node: &mut TplElement, __ast_path: &mut AstKindPath) {
71594        <V as VisitMutAstPath>::visit_mut_tpl_element(&mut **self, node, __ast_path)
71595    }
71596
71597    #[inline]
71598    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>, __ast_path: &mut AstKindPath) {
71599        <V as VisitMutAstPath>::visit_mut_tpl_elements(&mut **self, node, __ast_path)
71600    }
71601
71602    #[inline]
71603    fn visit_mut_true_plus_minus(
71604        &mut self,
71605        node: &mut TruePlusMinus,
71606        __ast_path: &mut AstKindPath,
71607    ) {
71608        <V as VisitMutAstPath>::visit_mut_true_plus_minus(&mut **self, node, __ast_path)
71609    }
71610
71611    #[inline]
71612    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt, __ast_path: &mut AstKindPath) {
71613        <V as VisitMutAstPath>::visit_mut_try_stmt(&mut **self, node, __ast_path)
71614    }
71615
71616    #[inline]
71617    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType, __ast_path: &mut AstKindPath) {
71618        <V as VisitMutAstPath>::visit_mut_ts_array_type(&mut **self, node, __ast_path)
71619    }
71620
71621    #[inline]
71622    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr, __ast_path: &mut AstKindPath) {
71623        <V as VisitMutAstPath>::visit_mut_ts_as_expr(&mut **self, node, __ast_path)
71624    }
71625
71626    #[inline]
71627    fn visit_mut_ts_call_signature_decl(
71628        &mut self,
71629        node: &mut TsCallSignatureDecl,
71630        __ast_path: &mut AstKindPath,
71631    ) {
71632        <V as VisitMutAstPath>::visit_mut_ts_call_signature_decl(&mut **self, node, __ast_path)
71633    }
71634
71635    #[inline]
71636    fn visit_mut_ts_conditional_type(
71637        &mut self,
71638        node: &mut TsConditionalType,
71639        __ast_path: &mut AstKindPath,
71640    ) {
71641        <V as VisitMutAstPath>::visit_mut_ts_conditional_type(&mut **self, node, __ast_path)
71642    }
71643
71644    #[inline]
71645    fn visit_mut_ts_const_assertion(
71646        &mut self,
71647        node: &mut TsConstAssertion,
71648        __ast_path: &mut AstKindPath,
71649    ) {
71650        <V as VisitMutAstPath>::visit_mut_ts_const_assertion(&mut **self, node, __ast_path)
71651    }
71652
71653    #[inline]
71654    fn visit_mut_ts_construct_signature_decl(
71655        &mut self,
71656        node: &mut TsConstructSignatureDecl,
71657        __ast_path: &mut AstKindPath,
71658    ) {
71659        <V as VisitMutAstPath>::visit_mut_ts_construct_signature_decl(&mut **self, node, __ast_path)
71660    }
71661
71662    #[inline]
71663    fn visit_mut_ts_constructor_type(
71664        &mut self,
71665        node: &mut TsConstructorType,
71666        __ast_path: &mut AstKindPath,
71667    ) {
71668        <V as VisitMutAstPath>::visit_mut_ts_constructor_type(&mut **self, node, __ast_path)
71669    }
71670
71671    #[inline]
71672    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName, __ast_path: &mut AstKindPath) {
71673        <V as VisitMutAstPath>::visit_mut_ts_entity_name(&mut **self, node, __ast_path)
71674    }
71675
71676    #[inline]
71677    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl, __ast_path: &mut AstKindPath) {
71678        <V as VisitMutAstPath>::visit_mut_ts_enum_decl(&mut **self, node, __ast_path)
71679    }
71680
71681    #[inline]
71682    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember, __ast_path: &mut AstKindPath) {
71683        <V as VisitMutAstPath>::visit_mut_ts_enum_member(&mut **self, node, __ast_path)
71684    }
71685
71686    #[inline]
71687    fn visit_mut_ts_enum_member_id(
71688        &mut self,
71689        node: &mut TsEnumMemberId,
71690        __ast_path: &mut AstKindPath,
71691    ) {
71692        <V as VisitMutAstPath>::visit_mut_ts_enum_member_id(&mut **self, node, __ast_path)
71693    }
71694
71695    #[inline]
71696    fn visit_mut_ts_enum_members(
71697        &mut self,
71698        node: &mut Vec<TsEnumMember>,
71699        __ast_path: &mut AstKindPath,
71700    ) {
71701        <V as VisitMutAstPath>::visit_mut_ts_enum_members(&mut **self, node, __ast_path)
71702    }
71703
71704    #[inline]
71705    fn visit_mut_ts_export_assignment(
71706        &mut self,
71707        node: &mut TsExportAssignment,
71708        __ast_path: &mut AstKindPath,
71709    ) {
71710        <V as VisitMutAstPath>::visit_mut_ts_export_assignment(&mut **self, node, __ast_path)
71711    }
71712
71713    #[inline]
71714    fn visit_mut_ts_expr_with_type_args(
71715        &mut self,
71716        node: &mut TsExprWithTypeArgs,
71717        __ast_path: &mut AstKindPath,
71718    ) {
71719        <V as VisitMutAstPath>::visit_mut_ts_expr_with_type_args(&mut **self, node, __ast_path)
71720    }
71721
71722    #[inline]
71723    fn visit_mut_ts_expr_with_type_argss(
71724        &mut self,
71725        node: &mut Vec<TsExprWithTypeArgs>,
71726        __ast_path: &mut AstKindPath,
71727    ) {
71728        <V as VisitMutAstPath>::visit_mut_ts_expr_with_type_argss(&mut **self, node, __ast_path)
71729    }
71730
71731    #[inline]
71732    fn visit_mut_ts_external_module_ref(
71733        &mut self,
71734        node: &mut TsExternalModuleRef,
71735        __ast_path: &mut AstKindPath,
71736    ) {
71737        <V as VisitMutAstPath>::visit_mut_ts_external_module_ref(&mut **self, node, __ast_path)
71738    }
71739
71740    #[inline]
71741    fn visit_mut_ts_fn_or_constructor_type(
71742        &mut self,
71743        node: &mut TsFnOrConstructorType,
71744        __ast_path: &mut AstKindPath,
71745    ) {
71746        <V as VisitMutAstPath>::visit_mut_ts_fn_or_constructor_type(&mut **self, node, __ast_path)
71747    }
71748
71749    #[inline]
71750    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam, __ast_path: &mut AstKindPath) {
71751        <V as VisitMutAstPath>::visit_mut_ts_fn_param(&mut **self, node, __ast_path)
71752    }
71753
71754    #[inline]
71755    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>, __ast_path: &mut AstKindPath) {
71756        <V as VisitMutAstPath>::visit_mut_ts_fn_params(&mut **self, node, __ast_path)
71757    }
71758
71759    #[inline]
71760    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType, __ast_path: &mut AstKindPath) {
71761        <V as VisitMutAstPath>::visit_mut_ts_fn_type(&mut **self, node, __ast_path)
71762    }
71763
71764    #[inline]
71765    fn visit_mut_ts_getter_signature(
71766        &mut self,
71767        node: &mut TsGetterSignature,
71768        __ast_path: &mut AstKindPath,
71769    ) {
71770        <V as VisitMutAstPath>::visit_mut_ts_getter_signature(&mut **self, node, __ast_path)
71771    }
71772
71773    #[inline]
71774    fn visit_mut_ts_import_call_options(
71775        &mut self,
71776        node: &mut TsImportCallOptions,
71777        __ast_path: &mut AstKindPath,
71778    ) {
71779        <V as VisitMutAstPath>::visit_mut_ts_import_call_options(&mut **self, node, __ast_path)
71780    }
71781
71782    #[inline]
71783    fn visit_mut_ts_import_equals_decl(
71784        &mut self,
71785        node: &mut TsImportEqualsDecl,
71786        __ast_path: &mut AstKindPath,
71787    ) {
71788        <V as VisitMutAstPath>::visit_mut_ts_import_equals_decl(&mut **self, node, __ast_path)
71789    }
71790
71791    #[inline]
71792    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType, __ast_path: &mut AstKindPath) {
71793        <V as VisitMutAstPath>::visit_mut_ts_import_type(&mut **self, node, __ast_path)
71794    }
71795
71796    #[inline]
71797    fn visit_mut_ts_index_signature(
71798        &mut self,
71799        node: &mut TsIndexSignature,
71800        __ast_path: &mut AstKindPath,
71801    ) {
71802        <V as VisitMutAstPath>::visit_mut_ts_index_signature(&mut **self, node, __ast_path)
71803    }
71804
71805    #[inline]
71806    fn visit_mut_ts_indexed_access_type(
71807        &mut self,
71808        node: &mut TsIndexedAccessType,
71809        __ast_path: &mut AstKindPath,
71810    ) {
71811        <V as VisitMutAstPath>::visit_mut_ts_indexed_access_type(&mut **self, node, __ast_path)
71812    }
71813
71814    #[inline]
71815    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType, __ast_path: &mut AstKindPath) {
71816        <V as VisitMutAstPath>::visit_mut_ts_infer_type(&mut **self, node, __ast_path)
71817    }
71818
71819    #[inline]
71820    fn visit_mut_ts_instantiation(
71821        &mut self,
71822        node: &mut TsInstantiation,
71823        __ast_path: &mut AstKindPath,
71824    ) {
71825        <V as VisitMutAstPath>::visit_mut_ts_instantiation(&mut **self, node, __ast_path)
71826    }
71827
71828    #[inline]
71829    fn visit_mut_ts_interface_body(
71830        &mut self,
71831        node: &mut TsInterfaceBody,
71832        __ast_path: &mut AstKindPath,
71833    ) {
71834        <V as VisitMutAstPath>::visit_mut_ts_interface_body(&mut **self, node, __ast_path)
71835    }
71836
71837    #[inline]
71838    fn visit_mut_ts_interface_decl(
71839        &mut self,
71840        node: &mut TsInterfaceDecl,
71841        __ast_path: &mut AstKindPath,
71842    ) {
71843        <V as VisitMutAstPath>::visit_mut_ts_interface_decl(&mut **self, node, __ast_path)
71844    }
71845
71846    #[inline]
71847    fn visit_mut_ts_intersection_type(
71848        &mut self,
71849        node: &mut TsIntersectionType,
71850        __ast_path: &mut AstKindPath,
71851    ) {
71852        <V as VisitMutAstPath>::visit_mut_ts_intersection_type(&mut **self, node, __ast_path)
71853    }
71854
71855    #[inline]
71856    fn visit_mut_ts_keyword_type(
71857        &mut self,
71858        node: &mut TsKeywordType,
71859        __ast_path: &mut AstKindPath,
71860    ) {
71861        <V as VisitMutAstPath>::visit_mut_ts_keyword_type(&mut **self, node, __ast_path)
71862    }
71863
71864    #[inline]
71865    fn visit_mut_ts_keyword_type_kind(
71866        &mut self,
71867        node: &mut TsKeywordTypeKind,
71868        __ast_path: &mut AstKindPath,
71869    ) {
71870        <V as VisitMutAstPath>::visit_mut_ts_keyword_type_kind(&mut **self, node, __ast_path)
71871    }
71872
71873    #[inline]
71874    fn visit_mut_ts_lit(&mut self, node: &mut TsLit, __ast_path: &mut AstKindPath) {
71875        <V as VisitMutAstPath>::visit_mut_ts_lit(&mut **self, node, __ast_path)
71876    }
71877
71878    #[inline]
71879    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType, __ast_path: &mut AstKindPath) {
71880        <V as VisitMutAstPath>::visit_mut_ts_lit_type(&mut **self, node, __ast_path)
71881    }
71882
71883    #[inline]
71884    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType, __ast_path: &mut AstKindPath) {
71885        <V as VisitMutAstPath>::visit_mut_ts_mapped_type(&mut **self, node, __ast_path)
71886    }
71887
71888    #[inline]
71889    fn visit_mut_ts_method_signature(
71890        &mut self,
71891        node: &mut TsMethodSignature,
71892        __ast_path: &mut AstKindPath,
71893    ) {
71894        <V as VisitMutAstPath>::visit_mut_ts_method_signature(&mut **self, node, __ast_path)
71895    }
71896
71897    #[inline]
71898    fn visit_mut_ts_module_block(
71899        &mut self,
71900        node: &mut TsModuleBlock,
71901        __ast_path: &mut AstKindPath,
71902    ) {
71903        <V as VisitMutAstPath>::visit_mut_ts_module_block(&mut **self, node, __ast_path)
71904    }
71905
71906    #[inline]
71907    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl, __ast_path: &mut AstKindPath) {
71908        <V as VisitMutAstPath>::visit_mut_ts_module_decl(&mut **self, node, __ast_path)
71909    }
71910
71911    #[inline]
71912    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName, __ast_path: &mut AstKindPath) {
71913        <V as VisitMutAstPath>::visit_mut_ts_module_name(&mut **self, node, __ast_path)
71914    }
71915
71916    #[inline]
71917    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef, __ast_path: &mut AstKindPath) {
71918        <V as VisitMutAstPath>::visit_mut_ts_module_ref(&mut **self, node, __ast_path)
71919    }
71920
71921    #[inline]
71922    fn visit_mut_ts_namespace_body(
71923        &mut self,
71924        node: &mut TsNamespaceBody,
71925        __ast_path: &mut AstKindPath,
71926    ) {
71927        <V as VisitMutAstPath>::visit_mut_ts_namespace_body(&mut **self, node, __ast_path)
71928    }
71929
71930    #[inline]
71931    fn visit_mut_ts_namespace_decl(
71932        &mut self,
71933        node: &mut TsNamespaceDecl,
71934        __ast_path: &mut AstKindPath,
71935    ) {
71936        <V as VisitMutAstPath>::visit_mut_ts_namespace_decl(&mut **self, node, __ast_path)
71937    }
71938
71939    #[inline]
71940    fn visit_mut_ts_namespace_export_decl(
71941        &mut self,
71942        node: &mut TsNamespaceExportDecl,
71943        __ast_path: &mut AstKindPath,
71944    ) {
71945        <V as VisitMutAstPath>::visit_mut_ts_namespace_export_decl(&mut **self, node, __ast_path)
71946    }
71947
71948    #[inline]
71949    fn visit_mut_ts_non_null_expr(
71950        &mut self,
71951        node: &mut TsNonNullExpr,
71952        __ast_path: &mut AstKindPath,
71953    ) {
71954        <V as VisitMutAstPath>::visit_mut_ts_non_null_expr(&mut **self, node, __ast_path)
71955    }
71956
71957    #[inline]
71958    fn visit_mut_ts_optional_type(
71959        &mut self,
71960        node: &mut TsOptionalType,
71961        __ast_path: &mut AstKindPath,
71962    ) {
71963        <V as VisitMutAstPath>::visit_mut_ts_optional_type(&mut **self, node, __ast_path)
71964    }
71965
71966    #[inline]
71967    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp, __ast_path: &mut AstKindPath) {
71968        <V as VisitMutAstPath>::visit_mut_ts_param_prop(&mut **self, node, __ast_path)
71969    }
71970
71971    #[inline]
71972    fn visit_mut_ts_param_prop_param(
71973        &mut self,
71974        node: &mut TsParamPropParam,
71975        __ast_path: &mut AstKindPath,
71976    ) {
71977        <V as VisitMutAstPath>::visit_mut_ts_param_prop_param(&mut **self, node, __ast_path)
71978    }
71979
71980    #[inline]
71981    fn visit_mut_ts_parenthesized_type(
71982        &mut self,
71983        node: &mut TsParenthesizedType,
71984        __ast_path: &mut AstKindPath,
71985    ) {
71986        <V as VisitMutAstPath>::visit_mut_ts_parenthesized_type(&mut **self, node, __ast_path)
71987    }
71988
71989    #[inline]
71990    fn visit_mut_ts_property_signature(
71991        &mut self,
71992        node: &mut TsPropertySignature,
71993        __ast_path: &mut AstKindPath,
71994    ) {
71995        <V as VisitMutAstPath>::visit_mut_ts_property_signature(&mut **self, node, __ast_path)
71996    }
71997
71998    #[inline]
71999    fn visit_mut_ts_qualified_name(
72000        &mut self,
72001        node: &mut TsQualifiedName,
72002        __ast_path: &mut AstKindPath,
72003    ) {
72004        <V as VisitMutAstPath>::visit_mut_ts_qualified_name(&mut **self, node, __ast_path)
72005    }
72006
72007    #[inline]
72008    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType, __ast_path: &mut AstKindPath) {
72009        <V as VisitMutAstPath>::visit_mut_ts_rest_type(&mut **self, node, __ast_path)
72010    }
72011
72012    #[inline]
72013    fn visit_mut_ts_satisfies_expr(
72014        &mut self,
72015        node: &mut TsSatisfiesExpr,
72016        __ast_path: &mut AstKindPath,
72017    ) {
72018        <V as VisitMutAstPath>::visit_mut_ts_satisfies_expr(&mut **self, node, __ast_path)
72019    }
72020
72021    #[inline]
72022    fn visit_mut_ts_setter_signature(
72023        &mut self,
72024        node: &mut TsSetterSignature,
72025        __ast_path: &mut AstKindPath,
72026    ) {
72027        <V as VisitMutAstPath>::visit_mut_ts_setter_signature(&mut **self, node, __ast_path)
72028    }
72029
72030    #[inline]
72031    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType, __ast_path: &mut AstKindPath) {
72032        <V as VisitMutAstPath>::visit_mut_ts_this_type(&mut **self, node, __ast_path)
72033    }
72034
72035    #[inline]
72036    fn visit_mut_ts_this_type_or_ident(
72037        &mut self,
72038        node: &mut TsThisTypeOrIdent,
72039        __ast_path: &mut AstKindPath,
72040    ) {
72041        <V as VisitMutAstPath>::visit_mut_ts_this_type_or_ident(&mut **self, node, __ast_path)
72042    }
72043
72044    #[inline]
72045    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType, __ast_path: &mut AstKindPath) {
72046        <V as VisitMutAstPath>::visit_mut_ts_tpl_lit_type(&mut **self, node, __ast_path)
72047    }
72048
72049    #[inline]
72050    fn visit_mut_ts_tuple_element(
72051        &mut self,
72052        node: &mut TsTupleElement,
72053        __ast_path: &mut AstKindPath,
72054    ) {
72055        <V as VisitMutAstPath>::visit_mut_ts_tuple_element(&mut **self, node, __ast_path)
72056    }
72057
72058    #[inline]
72059    fn visit_mut_ts_tuple_elements(
72060        &mut self,
72061        node: &mut Vec<TsTupleElement>,
72062        __ast_path: &mut AstKindPath,
72063    ) {
72064        <V as VisitMutAstPath>::visit_mut_ts_tuple_elements(&mut **self, node, __ast_path)
72065    }
72066
72067    #[inline]
72068    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType, __ast_path: &mut AstKindPath) {
72069        <V as VisitMutAstPath>::visit_mut_ts_tuple_type(&mut **self, node, __ast_path)
72070    }
72071
72072    #[inline]
72073    fn visit_mut_ts_type(&mut self, node: &mut TsType, __ast_path: &mut AstKindPath) {
72074        <V as VisitMutAstPath>::visit_mut_ts_type(&mut **self, node, __ast_path)
72075    }
72076
72077    #[inline]
72078    fn visit_mut_ts_type_alias_decl(
72079        &mut self,
72080        node: &mut TsTypeAliasDecl,
72081        __ast_path: &mut AstKindPath,
72082    ) {
72083        <V as VisitMutAstPath>::visit_mut_ts_type_alias_decl(&mut **self, node, __ast_path)
72084    }
72085
72086    #[inline]
72087    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn, __ast_path: &mut AstKindPath) {
72088        <V as VisitMutAstPath>::visit_mut_ts_type_ann(&mut **self, node, __ast_path)
72089    }
72090
72091    #[inline]
72092    fn visit_mut_ts_type_assertion(
72093        &mut self,
72094        node: &mut TsTypeAssertion,
72095        __ast_path: &mut AstKindPath,
72096    ) {
72097        <V as VisitMutAstPath>::visit_mut_ts_type_assertion(&mut **self, node, __ast_path)
72098    }
72099
72100    #[inline]
72101    fn visit_mut_ts_type_element(
72102        &mut self,
72103        node: &mut TsTypeElement,
72104        __ast_path: &mut AstKindPath,
72105    ) {
72106        <V as VisitMutAstPath>::visit_mut_ts_type_element(&mut **self, node, __ast_path)
72107    }
72108
72109    #[inline]
72110    fn visit_mut_ts_type_elements(
72111        &mut self,
72112        node: &mut Vec<TsTypeElement>,
72113        __ast_path: &mut AstKindPath,
72114    ) {
72115        <V as VisitMutAstPath>::visit_mut_ts_type_elements(&mut **self, node, __ast_path)
72116    }
72117
72118    #[inline]
72119    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit, __ast_path: &mut AstKindPath) {
72120        <V as VisitMutAstPath>::visit_mut_ts_type_lit(&mut **self, node, __ast_path)
72121    }
72122
72123    #[inline]
72124    fn visit_mut_ts_type_operator(
72125        &mut self,
72126        node: &mut TsTypeOperator,
72127        __ast_path: &mut AstKindPath,
72128    ) {
72129        <V as VisitMutAstPath>::visit_mut_ts_type_operator(&mut **self, node, __ast_path)
72130    }
72131
72132    #[inline]
72133    fn visit_mut_ts_type_operator_op(
72134        &mut self,
72135        node: &mut TsTypeOperatorOp,
72136        __ast_path: &mut AstKindPath,
72137    ) {
72138        <V as VisitMutAstPath>::visit_mut_ts_type_operator_op(&mut **self, node, __ast_path)
72139    }
72140
72141    #[inline]
72142    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam, __ast_path: &mut AstKindPath) {
72143        <V as VisitMutAstPath>::visit_mut_ts_type_param(&mut **self, node, __ast_path)
72144    }
72145
72146    #[inline]
72147    fn visit_mut_ts_type_param_decl(
72148        &mut self,
72149        node: &mut TsTypeParamDecl,
72150        __ast_path: &mut AstKindPath,
72151    ) {
72152        <V as VisitMutAstPath>::visit_mut_ts_type_param_decl(&mut **self, node, __ast_path)
72153    }
72154
72155    #[inline]
72156    fn visit_mut_ts_type_param_instantiation(
72157        &mut self,
72158        node: &mut TsTypeParamInstantiation,
72159        __ast_path: &mut AstKindPath,
72160    ) {
72161        <V as VisitMutAstPath>::visit_mut_ts_type_param_instantiation(&mut **self, node, __ast_path)
72162    }
72163
72164    #[inline]
72165    fn visit_mut_ts_type_params(
72166        &mut self,
72167        node: &mut Vec<TsTypeParam>,
72168        __ast_path: &mut AstKindPath,
72169    ) {
72170        <V as VisitMutAstPath>::visit_mut_ts_type_params(&mut **self, node, __ast_path)
72171    }
72172
72173    #[inline]
72174    fn visit_mut_ts_type_predicate(
72175        &mut self,
72176        node: &mut TsTypePredicate,
72177        __ast_path: &mut AstKindPath,
72178    ) {
72179        <V as VisitMutAstPath>::visit_mut_ts_type_predicate(&mut **self, node, __ast_path)
72180    }
72181
72182    #[inline]
72183    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery, __ast_path: &mut AstKindPath) {
72184        <V as VisitMutAstPath>::visit_mut_ts_type_query(&mut **self, node, __ast_path)
72185    }
72186
72187    #[inline]
72188    fn visit_mut_ts_type_query_expr(
72189        &mut self,
72190        node: &mut TsTypeQueryExpr,
72191        __ast_path: &mut AstKindPath,
72192    ) {
72193        <V as VisitMutAstPath>::visit_mut_ts_type_query_expr(&mut **self, node, __ast_path)
72194    }
72195
72196    #[inline]
72197    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef, __ast_path: &mut AstKindPath) {
72198        <V as VisitMutAstPath>::visit_mut_ts_type_ref(&mut **self, node, __ast_path)
72199    }
72200
72201    #[inline]
72202    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>, __ast_path: &mut AstKindPath) {
72203        <V as VisitMutAstPath>::visit_mut_ts_types(&mut **self, node, __ast_path)
72204    }
72205
72206    #[inline]
72207    fn visit_mut_ts_union_or_intersection_type(
72208        &mut self,
72209        node: &mut TsUnionOrIntersectionType,
72210        __ast_path: &mut AstKindPath,
72211    ) {
72212        <V as VisitMutAstPath>::visit_mut_ts_union_or_intersection_type(
72213            &mut **self,
72214            node,
72215            __ast_path,
72216        )
72217    }
72218
72219    #[inline]
72220    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType, __ast_path: &mut AstKindPath) {
72221        <V as VisitMutAstPath>::visit_mut_ts_union_type(&mut **self, node, __ast_path)
72222    }
72223
72224    #[inline]
72225    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr, __ast_path: &mut AstKindPath) {
72226        <V as VisitMutAstPath>::visit_mut_unary_expr(&mut **self, node, __ast_path)
72227    }
72228
72229    #[inline]
72230    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp, __ast_path: &mut AstKindPath) {
72231        <V as VisitMutAstPath>::visit_mut_unary_op(&mut **self, node, __ast_path)
72232    }
72233
72234    #[inline]
72235    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr, __ast_path: &mut AstKindPath) {
72236        <V as VisitMutAstPath>::visit_mut_update_expr(&mut **self, node, __ast_path)
72237    }
72238
72239    #[inline]
72240    fn visit_mut_update_op(&mut self, node: &mut UpdateOp, __ast_path: &mut AstKindPath) {
72241        <V as VisitMutAstPath>::visit_mut_update_op(&mut **self, node, __ast_path)
72242    }
72243
72244    #[inline]
72245    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl, __ast_path: &mut AstKindPath) {
72246        <V as VisitMutAstPath>::visit_mut_using_decl(&mut **self, node, __ast_path)
72247    }
72248
72249    #[inline]
72250    fn visit_mut_var_decl(&mut self, node: &mut VarDecl, __ast_path: &mut AstKindPath) {
72251        <V as VisitMutAstPath>::visit_mut_var_decl(&mut **self, node, __ast_path)
72252    }
72253
72254    #[inline]
72255    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind, __ast_path: &mut AstKindPath) {
72256        <V as VisitMutAstPath>::visit_mut_var_decl_kind(&mut **self, node, __ast_path)
72257    }
72258
72259    #[inline]
72260    fn visit_mut_var_decl_or_expr(
72261        &mut self,
72262        node: &mut VarDeclOrExpr,
72263        __ast_path: &mut AstKindPath,
72264    ) {
72265        <V as VisitMutAstPath>::visit_mut_var_decl_or_expr(&mut **self, node, __ast_path)
72266    }
72267
72268    #[inline]
72269    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator, __ast_path: &mut AstKindPath) {
72270        <V as VisitMutAstPath>::visit_mut_var_declarator(&mut **self, node, __ast_path)
72271    }
72272
72273    #[inline]
72274    fn visit_mut_var_declarators(
72275        &mut self,
72276        node: &mut Vec<VarDeclarator>,
72277        __ast_path: &mut AstKindPath,
72278    ) {
72279        <V as VisitMutAstPath>::visit_mut_var_declarators(&mut **self, node, __ast_path)
72280    }
72281
72282    #[inline]
72283    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt, __ast_path: &mut AstKindPath) {
72284        <V as VisitMutAstPath>::visit_mut_while_stmt(&mut **self, node, __ast_path)
72285    }
72286
72287    #[inline]
72288    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt, __ast_path: &mut AstKindPath) {
72289        <V as VisitMutAstPath>::visit_mut_with_stmt(&mut **self, node, __ast_path)
72290    }
72291
72292    #[inline]
72293    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr, __ast_path: &mut AstKindPath) {
72294        <V as VisitMutAstPath>::visit_mut_yield_expr(&mut **self, node, __ast_path)
72295    }
72296}
72297#[cfg(any(docsrs, feature = "path"))]
72298#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
72299impl<A, B> VisitMutAstPath for ::swc_visit::Either<A, B>
72300where
72301    A: VisitMutAstPath,
72302    B: VisitMutAstPath,
72303{
72304    #[inline]
72305    fn visit_mut_accessibility(&mut self, node: &mut Accessibility, __ast_path: &mut AstKindPath) {
72306        match self {
72307            swc_visit::Either::Left(visitor) => {
72308                VisitMutAstPath::visit_mut_accessibility(visitor, node, __ast_path)
72309            }
72310            swc_visit::Either::Right(visitor) => {
72311                VisitMutAstPath::visit_mut_accessibility(visitor, node, __ast_path)
72312            }
72313        }
72314    }
72315
72316    #[inline]
72317    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit, __ast_path: &mut AstKindPath) {
72318        match self {
72319            swc_visit::Either::Left(visitor) => {
72320                VisitMutAstPath::visit_mut_array_lit(visitor, node, __ast_path)
72321            }
72322            swc_visit::Either::Right(visitor) => {
72323                VisitMutAstPath::visit_mut_array_lit(visitor, node, __ast_path)
72324            }
72325        }
72326    }
72327
72328    #[inline]
72329    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat, __ast_path: &mut AstKindPath) {
72330        match self {
72331            swc_visit::Either::Left(visitor) => {
72332                VisitMutAstPath::visit_mut_array_pat(visitor, node, __ast_path)
72333            }
72334            swc_visit::Either::Right(visitor) => {
72335                VisitMutAstPath::visit_mut_array_pat(visitor, node, __ast_path)
72336            }
72337        }
72338    }
72339
72340    #[inline]
72341    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr, __ast_path: &mut AstKindPath) {
72342        match self {
72343            swc_visit::Either::Left(visitor) => {
72344                VisitMutAstPath::visit_mut_arrow_expr(visitor, node, __ast_path)
72345            }
72346            swc_visit::Either::Right(visitor) => {
72347                VisitMutAstPath::visit_mut_arrow_expr(visitor, node, __ast_path)
72348            }
72349        }
72350    }
72351
72352    #[inline]
72353    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr, __ast_path: &mut AstKindPath) {
72354        match self {
72355            swc_visit::Either::Left(visitor) => {
72356                VisitMutAstPath::visit_mut_assign_expr(visitor, node, __ast_path)
72357            }
72358            swc_visit::Either::Right(visitor) => {
72359                VisitMutAstPath::visit_mut_assign_expr(visitor, node, __ast_path)
72360            }
72361        }
72362    }
72363
72364    #[inline]
72365    fn visit_mut_assign_op(&mut self, node: &mut AssignOp, __ast_path: &mut AstKindPath) {
72366        match self {
72367            swc_visit::Either::Left(visitor) => {
72368                VisitMutAstPath::visit_mut_assign_op(visitor, node, __ast_path)
72369            }
72370            swc_visit::Either::Right(visitor) => {
72371                VisitMutAstPath::visit_mut_assign_op(visitor, node, __ast_path)
72372            }
72373        }
72374    }
72375
72376    #[inline]
72377    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat, __ast_path: &mut AstKindPath) {
72378        match self {
72379            swc_visit::Either::Left(visitor) => {
72380                VisitMutAstPath::visit_mut_assign_pat(visitor, node, __ast_path)
72381            }
72382            swc_visit::Either::Right(visitor) => {
72383                VisitMutAstPath::visit_mut_assign_pat(visitor, node, __ast_path)
72384            }
72385        }
72386    }
72387
72388    #[inline]
72389    fn visit_mut_assign_pat_prop(
72390        &mut self,
72391        node: &mut AssignPatProp,
72392        __ast_path: &mut AstKindPath,
72393    ) {
72394        match self {
72395            swc_visit::Either::Left(visitor) => {
72396                VisitMutAstPath::visit_mut_assign_pat_prop(visitor, node, __ast_path)
72397            }
72398            swc_visit::Either::Right(visitor) => {
72399                VisitMutAstPath::visit_mut_assign_pat_prop(visitor, node, __ast_path)
72400            }
72401        }
72402    }
72403
72404    #[inline]
72405    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp, __ast_path: &mut AstKindPath) {
72406        match self {
72407            swc_visit::Either::Left(visitor) => {
72408                VisitMutAstPath::visit_mut_assign_prop(visitor, node, __ast_path)
72409            }
72410            swc_visit::Either::Right(visitor) => {
72411                VisitMutAstPath::visit_mut_assign_prop(visitor, node, __ast_path)
72412            }
72413        }
72414    }
72415
72416    #[inline]
72417    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget, __ast_path: &mut AstKindPath) {
72418        match self {
72419            swc_visit::Either::Left(visitor) => {
72420                VisitMutAstPath::visit_mut_assign_target(visitor, node, __ast_path)
72421            }
72422            swc_visit::Either::Right(visitor) => {
72423                VisitMutAstPath::visit_mut_assign_target(visitor, node, __ast_path)
72424            }
72425        }
72426    }
72427
72428    #[inline]
72429    fn visit_mut_assign_target_pat(
72430        &mut self,
72431        node: &mut AssignTargetPat,
72432        __ast_path: &mut AstKindPath,
72433    ) {
72434        match self {
72435            swc_visit::Either::Left(visitor) => {
72436                VisitMutAstPath::visit_mut_assign_target_pat(visitor, node, __ast_path)
72437            }
72438            swc_visit::Either::Right(visitor) => {
72439                VisitMutAstPath::visit_mut_assign_target_pat(visitor, node, __ast_path)
72440            }
72441        }
72442    }
72443
72444    #[inline]
72445    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom, __ast_path: &mut AstKindPath) {
72446        match self {
72447            swc_visit::Either::Left(visitor) => {
72448                VisitMutAstPath::visit_mut_atom(visitor, node, __ast_path)
72449            }
72450            swc_visit::Either::Right(visitor) => {
72451                VisitMutAstPath::visit_mut_atom(visitor, node, __ast_path)
72452            }
72453        }
72454    }
72455
72456    #[inline]
72457    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor, __ast_path: &mut AstKindPath) {
72458        match self {
72459            swc_visit::Either::Left(visitor) => {
72460                VisitMutAstPath::visit_mut_auto_accessor(visitor, node, __ast_path)
72461            }
72462            swc_visit::Either::Right(visitor) => {
72463                VisitMutAstPath::visit_mut_auto_accessor(visitor, node, __ast_path)
72464            }
72465        }
72466    }
72467
72468    #[inline]
72469    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr, __ast_path: &mut AstKindPath) {
72470        match self {
72471            swc_visit::Either::Left(visitor) => {
72472                VisitMutAstPath::visit_mut_await_expr(visitor, node, __ast_path)
72473            }
72474            swc_visit::Either::Right(visitor) => {
72475                VisitMutAstPath::visit_mut_await_expr(visitor, node, __ast_path)
72476            }
72477        }
72478    }
72479
72480    #[inline]
72481    fn visit_mut_big_int(&mut self, node: &mut BigInt, __ast_path: &mut AstKindPath) {
72482        match self {
72483            swc_visit::Either::Left(visitor) => {
72484                VisitMutAstPath::visit_mut_big_int(visitor, node, __ast_path)
72485            }
72486            swc_visit::Either::Right(visitor) => {
72487                VisitMutAstPath::visit_mut_big_int(visitor, node, __ast_path)
72488            }
72489        }
72490    }
72491
72492    #[inline]
72493    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue, __ast_path: &mut AstKindPath) {
72494        match self {
72495            swc_visit::Either::Left(visitor) => {
72496                VisitMutAstPath::visit_mut_big_int_value(visitor, node, __ast_path)
72497            }
72498            swc_visit::Either::Right(visitor) => {
72499                VisitMutAstPath::visit_mut_big_int_value(visitor, node, __ast_path)
72500            }
72501        }
72502    }
72503
72504    #[inline]
72505    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr, __ast_path: &mut AstKindPath) {
72506        match self {
72507            swc_visit::Either::Left(visitor) => {
72508                VisitMutAstPath::visit_mut_bin_expr(visitor, node, __ast_path)
72509            }
72510            swc_visit::Either::Right(visitor) => {
72511                VisitMutAstPath::visit_mut_bin_expr(visitor, node, __ast_path)
72512            }
72513        }
72514    }
72515
72516    #[inline]
72517    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp, __ast_path: &mut AstKindPath) {
72518        match self {
72519            swc_visit::Either::Left(visitor) => {
72520                VisitMutAstPath::visit_mut_binary_op(visitor, node, __ast_path)
72521            }
72522            swc_visit::Either::Right(visitor) => {
72523                VisitMutAstPath::visit_mut_binary_op(visitor, node, __ast_path)
72524            }
72525        }
72526    }
72527
72528    #[inline]
72529    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent, __ast_path: &mut AstKindPath) {
72530        match self {
72531            swc_visit::Either::Left(visitor) => {
72532                VisitMutAstPath::visit_mut_binding_ident(visitor, node, __ast_path)
72533            }
72534            swc_visit::Either::Right(visitor) => {
72535                VisitMutAstPath::visit_mut_binding_ident(visitor, node, __ast_path)
72536            }
72537        }
72538    }
72539
72540    #[inline]
72541    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt, __ast_path: &mut AstKindPath) {
72542        match self {
72543            swc_visit::Either::Left(visitor) => {
72544                VisitMutAstPath::visit_mut_block_stmt(visitor, node, __ast_path)
72545            }
72546            swc_visit::Either::Right(visitor) => {
72547                VisitMutAstPath::visit_mut_block_stmt(visitor, node, __ast_path)
72548            }
72549        }
72550    }
72551
72552    #[inline]
72553    fn visit_mut_block_stmt_or_expr(
72554        &mut self,
72555        node: &mut BlockStmtOrExpr,
72556        __ast_path: &mut AstKindPath,
72557    ) {
72558        match self {
72559            swc_visit::Either::Left(visitor) => {
72560                VisitMutAstPath::visit_mut_block_stmt_or_expr(visitor, node, __ast_path)
72561            }
72562            swc_visit::Either::Right(visitor) => {
72563                VisitMutAstPath::visit_mut_block_stmt_or_expr(visitor, node, __ast_path)
72564            }
72565        }
72566    }
72567
72568    #[inline]
72569    fn visit_mut_bool(&mut self, node: &mut Bool, __ast_path: &mut AstKindPath) {
72570        match self {
72571            swc_visit::Either::Left(visitor) => {
72572                VisitMutAstPath::visit_mut_bool(visitor, node, __ast_path)
72573            }
72574            swc_visit::Either::Right(visitor) => {
72575                VisitMutAstPath::visit_mut_bool(visitor, node, __ast_path)
72576            }
72577        }
72578    }
72579
72580    #[inline]
72581    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt, __ast_path: &mut AstKindPath) {
72582        match self {
72583            swc_visit::Either::Left(visitor) => {
72584                VisitMutAstPath::visit_mut_break_stmt(visitor, node, __ast_path)
72585            }
72586            swc_visit::Either::Right(visitor) => {
72587                VisitMutAstPath::visit_mut_break_stmt(visitor, node, __ast_path)
72588            }
72589        }
72590    }
72591
72592    #[inline]
72593    fn visit_mut_call_expr(&mut self, node: &mut CallExpr, __ast_path: &mut AstKindPath) {
72594        match self {
72595            swc_visit::Either::Left(visitor) => {
72596                VisitMutAstPath::visit_mut_call_expr(visitor, node, __ast_path)
72597            }
72598            swc_visit::Either::Right(visitor) => {
72599                VisitMutAstPath::visit_mut_call_expr(visitor, node, __ast_path)
72600            }
72601        }
72602    }
72603
72604    #[inline]
72605    fn visit_mut_callee(&mut self, node: &mut Callee, __ast_path: &mut AstKindPath) {
72606        match self {
72607            swc_visit::Either::Left(visitor) => {
72608                VisitMutAstPath::visit_mut_callee(visitor, node, __ast_path)
72609            }
72610            swc_visit::Either::Right(visitor) => {
72611                VisitMutAstPath::visit_mut_callee(visitor, node, __ast_path)
72612            }
72613        }
72614    }
72615
72616    #[inline]
72617    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause, __ast_path: &mut AstKindPath) {
72618        match self {
72619            swc_visit::Either::Left(visitor) => {
72620                VisitMutAstPath::visit_mut_catch_clause(visitor, node, __ast_path)
72621            }
72622            swc_visit::Either::Right(visitor) => {
72623                VisitMutAstPath::visit_mut_catch_clause(visitor, node, __ast_path)
72624            }
72625        }
72626    }
72627
72628    #[inline]
72629    fn visit_mut_class(&mut self, node: &mut Class, __ast_path: &mut AstKindPath) {
72630        match self {
72631            swc_visit::Either::Left(visitor) => {
72632                VisitMutAstPath::visit_mut_class(visitor, node, __ast_path)
72633            }
72634            swc_visit::Either::Right(visitor) => {
72635                VisitMutAstPath::visit_mut_class(visitor, node, __ast_path)
72636            }
72637        }
72638    }
72639
72640    #[inline]
72641    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl, __ast_path: &mut AstKindPath) {
72642        match self {
72643            swc_visit::Either::Left(visitor) => {
72644                VisitMutAstPath::visit_mut_class_decl(visitor, node, __ast_path)
72645            }
72646            swc_visit::Either::Right(visitor) => {
72647                VisitMutAstPath::visit_mut_class_decl(visitor, node, __ast_path)
72648            }
72649        }
72650    }
72651
72652    #[inline]
72653    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr, __ast_path: &mut AstKindPath) {
72654        match self {
72655            swc_visit::Either::Left(visitor) => {
72656                VisitMutAstPath::visit_mut_class_expr(visitor, node, __ast_path)
72657            }
72658            swc_visit::Either::Right(visitor) => {
72659                VisitMutAstPath::visit_mut_class_expr(visitor, node, __ast_path)
72660            }
72661        }
72662    }
72663
72664    #[inline]
72665    fn visit_mut_class_member(&mut self, node: &mut ClassMember, __ast_path: &mut AstKindPath) {
72666        match self {
72667            swc_visit::Either::Left(visitor) => {
72668                VisitMutAstPath::visit_mut_class_member(visitor, node, __ast_path)
72669            }
72670            swc_visit::Either::Right(visitor) => {
72671                VisitMutAstPath::visit_mut_class_member(visitor, node, __ast_path)
72672            }
72673        }
72674    }
72675
72676    #[inline]
72677    fn visit_mut_class_members(
72678        &mut self,
72679        node: &mut Vec<ClassMember>,
72680        __ast_path: &mut AstKindPath,
72681    ) {
72682        match self {
72683            swc_visit::Either::Left(visitor) => {
72684                VisitMutAstPath::visit_mut_class_members(visitor, node, __ast_path)
72685            }
72686            swc_visit::Either::Right(visitor) => {
72687                VisitMutAstPath::visit_mut_class_members(visitor, node, __ast_path)
72688            }
72689        }
72690    }
72691
72692    #[inline]
72693    fn visit_mut_class_method(&mut self, node: &mut ClassMethod, __ast_path: &mut AstKindPath) {
72694        match self {
72695            swc_visit::Either::Left(visitor) => {
72696                VisitMutAstPath::visit_mut_class_method(visitor, node, __ast_path)
72697            }
72698            swc_visit::Either::Right(visitor) => {
72699                VisitMutAstPath::visit_mut_class_method(visitor, node, __ast_path)
72700            }
72701        }
72702    }
72703
72704    #[inline]
72705    fn visit_mut_class_prop(&mut self, node: &mut ClassProp, __ast_path: &mut AstKindPath) {
72706        match self {
72707            swc_visit::Either::Left(visitor) => {
72708                VisitMutAstPath::visit_mut_class_prop(visitor, node, __ast_path)
72709            }
72710            swc_visit::Either::Right(visitor) => {
72711                VisitMutAstPath::visit_mut_class_prop(visitor, node, __ast_path)
72712            }
72713        }
72714    }
72715
72716    #[inline]
72717    fn visit_mut_computed_prop_name(
72718        &mut self,
72719        node: &mut ComputedPropName,
72720        __ast_path: &mut AstKindPath,
72721    ) {
72722        match self {
72723            swc_visit::Either::Left(visitor) => {
72724                VisitMutAstPath::visit_mut_computed_prop_name(visitor, node, __ast_path)
72725            }
72726            swc_visit::Either::Right(visitor) => {
72727                VisitMutAstPath::visit_mut_computed_prop_name(visitor, node, __ast_path)
72728            }
72729        }
72730    }
72731
72732    #[inline]
72733    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr, __ast_path: &mut AstKindPath) {
72734        match self {
72735            swc_visit::Either::Left(visitor) => {
72736                VisitMutAstPath::visit_mut_cond_expr(visitor, node, __ast_path)
72737            }
72738            swc_visit::Either::Right(visitor) => {
72739                VisitMutAstPath::visit_mut_cond_expr(visitor, node, __ast_path)
72740            }
72741        }
72742    }
72743
72744    #[inline]
72745    fn visit_mut_constructor(&mut self, node: &mut Constructor, __ast_path: &mut AstKindPath) {
72746        match self {
72747            swc_visit::Either::Left(visitor) => {
72748                VisitMutAstPath::visit_mut_constructor(visitor, node, __ast_path)
72749            }
72750            swc_visit::Either::Right(visitor) => {
72751                VisitMutAstPath::visit_mut_constructor(visitor, node, __ast_path)
72752            }
72753        }
72754    }
72755
72756    #[inline]
72757    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt, __ast_path: &mut AstKindPath) {
72758        match self {
72759            swc_visit::Either::Left(visitor) => {
72760                VisitMutAstPath::visit_mut_continue_stmt(visitor, node, __ast_path)
72761            }
72762            swc_visit::Either::Right(visitor) => {
72763                VisitMutAstPath::visit_mut_continue_stmt(visitor, node, __ast_path)
72764            }
72765        }
72766    }
72767
72768    #[inline]
72769    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt, __ast_path: &mut AstKindPath) {
72770        match self {
72771            swc_visit::Either::Left(visitor) => {
72772                VisitMutAstPath::visit_mut_debugger_stmt(visitor, node, __ast_path)
72773            }
72774            swc_visit::Either::Right(visitor) => {
72775                VisitMutAstPath::visit_mut_debugger_stmt(visitor, node, __ast_path)
72776            }
72777        }
72778    }
72779
72780    #[inline]
72781    fn visit_mut_decl(&mut self, node: &mut Decl, __ast_path: &mut AstKindPath) {
72782        match self {
72783            swc_visit::Either::Left(visitor) => {
72784                VisitMutAstPath::visit_mut_decl(visitor, node, __ast_path)
72785            }
72786            swc_visit::Either::Right(visitor) => {
72787                VisitMutAstPath::visit_mut_decl(visitor, node, __ast_path)
72788            }
72789        }
72790    }
72791
72792    #[inline]
72793    fn visit_mut_decorator(&mut self, node: &mut Decorator, __ast_path: &mut AstKindPath) {
72794        match self {
72795            swc_visit::Either::Left(visitor) => {
72796                VisitMutAstPath::visit_mut_decorator(visitor, node, __ast_path)
72797            }
72798            swc_visit::Either::Right(visitor) => {
72799                VisitMutAstPath::visit_mut_decorator(visitor, node, __ast_path)
72800            }
72801        }
72802    }
72803
72804    #[inline]
72805    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>, __ast_path: &mut AstKindPath) {
72806        match self {
72807            swc_visit::Either::Left(visitor) => {
72808                VisitMutAstPath::visit_mut_decorators(visitor, node, __ast_path)
72809            }
72810            swc_visit::Either::Right(visitor) => {
72811                VisitMutAstPath::visit_mut_decorators(visitor, node, __ast_path)
72812            }
72813        }
72814    }
72815
72816    #[inline]
72817    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl, __ast_path: &mut AstKindPath) {
72818        match self {
72819            swc_visit::Either::Left(visitor) => {
72820                VisitMutAstPath::visit_mut_default_decl(visitor, node, __ast_path)
72821            }
72822            swc_visit::Either::Right(visitor) => {
72823                VisitMutAstPath::visit_mut_default_decl(visitor, node, __ast_path)
72824            }
72825        }
72826    }
72827
72828    #[inline]
72829    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt, __ast_path: &mut AstKindPath) {
72830        match self {
72831            swc_visit::Either::Left(visitor) => {
72832                VisitMutAstPath::visit_mut_do_while_stmt(visitor, node, __ast_path)
72833            }
72834            swc_visit::Either::Right(visitor) => {
72835                VisitMutAstPath::visit_mut_do_while_stmt(visitor, node, __ast_path)
72836            }
72837        }
72838    }
72839
72840    #[inline]
72841    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt, __ast_path: &mut AstKindPath) {
72842        match self {
72843            swc_visit::Either::Left(visitor) => {
72844                VisitMutAstPath::visit_mut_empty_stmt(visitor, node, __ast_path)
72845            }
72846            swc_visit::Either::Right(visitor) => {
72847                VisitMutAstPath::visit_mut_empty_stmt(visitor, node, __ast_path)
72848            }
72849        }
72850    }
72851
72852    #[inline]
72853    fn visit_mut_export_all(&mut self, node: &mut ExportAll, __ast_path: &mut AstKindPath) {
72854        match self {
72855            swc_visit::Either::Left(visitor) => {
72856                VisitMutAstPath::visit_mut_export_all(visitor, node, __ast_path)
72857            }
72858            swc_visit::Either::Right(visitor) => {
72859                VisitMutAstPath::visit_mut_export_all(visitor, node, __ast_path)
72860            }
72861        }
72862    }
72863
72864    #[inline]
72865    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl, __ast_path: &mut AstKindPath) {
72866        match self {
72867            swc_visit::Either::Left(visitor) => {
72868                VisitMutAstPath::visit_mut_export_decl(visitor, node, __ast_path)
72869            }
72870            swc_visit::Either::Right(visitor) => {
72871                VisitMutAstPath::visit_mut_export_decl(visitor, node, __ast_path)
72872            }
72873        }
72874    }
72875
72876    #[inline]
72877    fn visit_mut_export_default_decl(
72878        &mut self,
72879        node: &mut ExportDefaultDecl,
72880        __ast_path: &mut AstKindPath,
72881    ) {
72882        match self {
72883            swc_visit::Either::Left(visitor) => {
72884                VisitMutAstPath::visit_mut_export_default_decl(visitor, node, __ast_path)
72885            }
72886            swc_visit::Either::Right(visitor) => {
72887                VisitMutAstPath::visit_mut_export_default_decl(visitor, node, __ast_path)
72888            }
72889        }
72890    }
72891
72892    #[inline]
72893    fn visit_mut_export_default_expr(
72894        &mut self,
72895        node: &mut ExportDefaultExpr,
72896        __ast_path: &mut AstKindPath,
72897    ) {
72898        match self {
72899            swc_visit::Either::Left(visitor) => {
72900                VisitMutAstPath::visit_mut_export_default_expr(visitor, node, __ast_path)
72901            }
72902            swc_visit::Either::Right(visitor) => {
72903                VisitMutAstPath::visit_mut_export_default_expr(visitor, node, __ast_path)
72904            }
72905        }
72906    }
72907
72908    #[inline]
72909    fn visit_mut_export_default_specifier(
72910        &mut self,
72911        node: &mut ExportDefaultSpecifier,
72912        __ast_path: &mut AstKindPath,
72913    ) {
72914        match self {
72915            swc_visit::Either::Left(visitor) => {
72916                VisitMutAstPath::visit_mut_export_default_specifier(visitor, node, __ast_path)
72917            }
72918            swc_visit::Either::Right(visitor) => {
72919                VisitMutAstPath::visit_mut_export_default_specifier(visitor, node, __ast_path)
72920            }
72921        }
72922    }
72923
72924    #[inline]
72925    fn visit_mut_export_named_specifier(
72926        &mut self,
72927        node: &mut ExportNamedSpecifier,
72928        __ast_path: &mut AstKindPath,
72929    ) {
72930        match self {
72931            swc_visit::Either::Left(visitor) => {
72932                VisitMutAstPath::visit_mut_export_named_specifier(visitor, node, __ast_path)
72933            }
72934            swc_visit::Either::Right(visitor) => {
72935                VisitMutAstPath::visit_mut_export_named_specifier(visitor, node, __ast_path)
72936            }
72937        }
72938    }
72939
72940    #[inline]
72941    fn visit_mut_export_namespace_specifier(
72942        &mut self,
72943        node: &mut ExportNamespaceSpecifier,
72944        __ast_path: &mut AstKindPath,
72945    ) {
72946        match self {
72947            swc_visit::Either::Left(visitor) => {
72948                VisitMutAstPath::visit_mut_export_namespace_specifier(visitor, node, __ast_path)
72949            }
72950            swc_visit::Either::Right(visitor) => {
72951                VisitMutAstPath::visit_mut_export_namespace_specifier(visitor, node, __ast_path)
72952            }
72953        }
72954    }
72955
72956    #[inline]
72957    fn visit_mut_export_specifier(
72958        &mut self,
72959        node: &mut ExportSpecifier,
72960        __ast_path: &mut AstKindPath,
72961    ) {
72962        match self {
72963            swc_visit::Either::Left(visitor) => {
72964                VisitMutAstPath::visit_mut_export_specifier(visitor, node, __ast_path)
72965            }
72966            swc_visit::Either::Right(visitor) => {
72967                VisitMutAstPath::visit_mut_export_specifier(visitor, node, __ast_path)
72968            }
72969        }
72970    }
72971
72972    #[inline]
72973    fn visit_mut_export_specifiers(
72974        &mut self,
72975        node: &mut Vec<ExportSpecifier>,
72976        __ast_path: &mut AstKindPath,
72977    ) {
72978        match self {
72979            swc_visit::Either::Left(visitor) => {
72980                VisitMutAstPath::visit_mut_export_specifiers(visitor, node, __ast_path)
72981            }
72982            swc_visit::Either::Right(visitor) => {
72983                VisitMutAstPath::visit_mut_export_specifiers(visitor, node, __ast_path)
72984            }
72985        }
72986    }
72987
72988    #[inline]
72989    fn visit_mut_expr(&mut self, node: &mut Expr, __ast_path: &mut AstKindPath) {
72990        match self {
72991            swc_visit::Either::Left(visitor) => {
72992                VisitMutAstPath::visit_mut_expr(visitor, node, __ast_path)
72993            }
72994            swc_visit::Either::Right(visitor) => {
72995                VisitMutAstPath::visit_mut_expr(visitor, node, __ast_path)
72996            }
72997        }
72998    }
72999
73000    #[inline]
73001    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread, __ast_path: &mut AstKindPath) {
73002        match self {
73003            swc_visit::Either::Left(visitor) => {
73004                VisitMutAstPath::visit_mut_expr_or_spread(visitor, node, __ast_path)
73005            }
73006            swc_visit::Either::Right(visitor) => {
73007                VisitMutAstPath::visit_mut_expr_or_spread(visitor, node, __ast_path)
73008            }
73009        }
73010    }
73011
73012    #[inline]
73013    fn visit_mut_expr_or_spreads(
73014        &mut self,
73015        node: &mut Vec<ExprOrSpread>,
73016        __ast_path: &mut AstKindPath,
73017    ) {
73018        match self {
73019            swc_visit::Either::Left(visitor) => {
73020                VisitMutAstPath::visit_mut_expr_or_spreads(visitor, node, __ast_path)
73021            }
73022            swc_visit::Either::Right(visitor) => {
73023                VisitMutAstPath::visit_mut_expr_or_spreads(visitor, node, __ast_path)
73024            }
73025        }
73026    }
73027
73028    #[inline]
73029    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt, __ast_path: &mut AstKindPath) {
73030        match self {
73031            swc_visit::Either::Left(visitor) => {
73032                VisitMutAstPath::visit_mut_expr_stmt(visitor, node, __ast_path)
73033            }
73034            swc_visit::Either::Right(visitor) => {
73035                VisitMutAstPath::visit_mut_expr_stmt(visitor, node, __ast_path)
73036            }
73037        }
73038    }
73039
73040    #[inline]
73041    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>, __ast_path: &mut AstKindPath) {
73042        match self {
73043            swc_visit::Either::Left(visitor) => {
73044                VisitMutAstPath::visit_mut_exprs(visitor, node, __ast_path)
73045            }
73046            swc_visit::Either::Right(visitor) => {
73047                VisitMutAstPath::visit_mut_exprs(visitor, node, __ast_path)
73048            }
73049        }
73050    }
73051
73052    #[inline]
73053    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl, __ast_path: &mut AstKindPath) {
73054        match self {
73055            swc_visit::Either::Left(visitor) => {
73056                VisitMutAstPath::visit_mut_fn_decl(visitor, node, __ast_path)
73057            }
73058            swc_visit::Either::Right(visitor) => {
73059                VisitMutAstPath::visit_mut_fn_decl(visitor, node, __ast_path)
73060            }
73061        }
73062    }
73063
73064    #[inline]
73065    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr, __ast_path: &mut AstKindPath) {
73066        match self {
73067            swc_visit::Either::Left(visitor) => {
73068                VisitMutAstPath::visit_mut_fn_expr(visitor, node, __ast_path)
73069            }
73070            swc_visit::Either::Right(visitor) => {
73071                VisitMutAstPath::visit_mut_fn_expr(visitor, node, __ast_path)
73072            }
73073        }
73074    }
73075
73076    #[inline]
73077    fn visit_mut_for_head(&mut self, node: &mut ForHead, __ast_path: &mut AstKindPath) {
73078        match self {
73079            swc_visit::Either::Left(visitor) => {
73080                VisitMutAstPath::visit_mut_for_head(visitor, node, __ast_path)
73081            }
73082            swc_visit::Either::Right(visitor) => {
73083                VisitMutAstPath::visit_mut_for_head(visitor, node, __ast_path)
73084            }
73085        }
73086    }
73087
73088    #[inline]
73089    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt, __ast_path: &mut AstKindPath) {
73090        match self {
73091            swc_visit::Either::Left(visitor) => {
73092                VisitMutAstPath::visit_mut_for_in_stmt(visitor, node, __ast_path)
73093            }
73094            swc_visit::Either::Right(visitor) => {
73095                VisitMutAstPath::visit_mut_for_in_stmt(visitor, node, __ast_path)
73096            }
73097        }
73098    }
73099
73100    #[inline]
73101    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt, __ast_path: &mut AstKindPath) {
73102        match self {
73103            swc_visit::Either::Left(visitor) => {
73104                VisitMutAstPath::visit_mut_for_of_stmt(visitor, node, __ast_path)
73105            }
73106            swc_visit::Either::Right(visitor) => {
73107                VisitMutAstPath::visit_mut_for_of_stmt(visitor, node, __ast_path)
73108            }
73109        }
73110    }
73111
73112    #[inline]
73113    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt, __ast_path: &mut AstKindPath) {
73114        match self {
73115            swc_visit::Either::Left(visitor) => {
73116                VisitMutAstPath::visit_mut_for_stmt(visitor, node, __ast_path)
73117            }
73118            swc_visit::Either::Right(visitor) => {
73119                VisitMutAstPath::visit_mut_for_stmt(visitor, node, __ast_path)
73120            }
73121        }
73122    }
73123
73124    #[inline]
73125    fn visit_mut_function(&mut self, node: &mut Function, __ast_path: &mut AstKindPath) {
73126        match self {
73127            swc_visit::Either::Left(visitor) => {
73128                VisitMutAstPath::visit_mut_function(visitor, node, __ast_path)
73129            }
73130            swc_visit::Either::Right(visitor) => {
73131                VisitMutAstPath::visit_mut_function(visitor, node, __ast_path)
73132            }
73133        }
73134    }
73135
73136    #[inline]
73137    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp, __ast_path: &mut AstKindPath) {
73138        match self {
73139            swc_visit::Either::Left(visitor) => {
73140                VisitMutAstPath::visit_mut_getter_prop(visitor, node, __ast_path)
73141            }
73142            swc_visit::Either::Right(visitor) => {
73143                VisitMutAstPath::visit_mut_getter_prop(visitor, node, __ast_path)
73144            }
73145        }
73146    }
73147
73148    #[inline]
73149    fn visit_mut_ident(&mut self, node: &mut Ident, __ast_path: &mut AstKindPath) {
73150        match self {
73151            swc_visit::Either::Left(visitor) => {
73152                VisitMutAstPath::visit_mut_ident(visitor, node, __ast_path)
73153            }
73154            swc_visit::Either::Right(visitor) => {
73155                VisitMutAstPath::visit_mut_ident(visitor, node, __ast_path)
73156            }
73157        }
73158    }
73159
73160    #[inline]
73161    fn visit_mut_ident_name(&mut self, node: &mut IdentName, __ast_path: &mut AstKindPath) {
73162        match self {
73163            swc_visit::Either::Left(visitor) => {
73164                VisitMutAstPath::visit_mut_ident_name(visitor, node, __ast_path)
73165            }
73166            swc_visit::Either::Right(visitor) => {
73167                VisitMutAstPath::visit_mut_ident_name(visitor, node, __ast_path)
73168            }
73169        }
73170    }
73171
73172    #[inline]
73173    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt, __ast_path: &mut AstKindPath) {
73174        match self {
73175            swc_visit::Either::Left(visitor) => {
73176                VisitMutAstPath::visit_mut_if_stmt(visitor, node, __ast_path)
73177            }
73178            swc_visit::Either::Right(visitor) => {
73179                VisitMutAstPath::visit_mut_if_stmt(visitor, node, __ast_path)
73180            }
73181        }
73182    }
73183
73184    #[inline]
73185    fn visit_mut_import(&mut self, node: &mut Import, __ast_path: &mut AstKindPath) {
73186        match self {
73187            swc_visit::Either::Left(visitor) => {
73188                VisitMutAstPath::visit_mut_import(visitor, node, __ast_path)
73189            }
73190            swc_visit::Either::Right(visitor) => {
73191                VisitMutAstPath::visit_mut_import(visitor, node, __ast_path)
73192            }
73193        }
73194    }
73195
73196    #[inline]
73197    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl, __ast_path: &mut AstKindPath) {
73198        match self {
73199            swc_visit::Either::Left(visitor) => {
73200                VisitMutAstPath::visit_mut_import_decl(visitor, node, __ast_path)
73201            }
73202            swc_visit::Either::Right(visitor) => {
73203                VisitMutAstPath::visit_mut_import_decl(visitor, node, __ast_path)
73204            }
73205        }
73206    }
73207
73208    #[inline]
73209    fn visit_mut_import_default_specifier(
73210        &mut self,
73211        node: &mut ImportDefaultSpecifier,
73212        __ast_path: &mut AstKindPath,
73213    ) {
73214        match self {
73215            swc_visit::Either::Left(visitor) => {
73216                VisitMutAstPath::visit_mut_import_default_specifier(visitor, node, __ast_path)
73217            }
73218            swc_visit::Either::Right(visitor) => {
73219                VisitMutAstPath::visit_mut_import_default_specifier(visitor, node, __ast_path)
73220            }
73221        }
73222    }
73223
73224    #[inline]
73225    fn visit_mut_import_named_specifier(
73226        &mut self,
73227        node: &mut ImportNamedSpecifier,
73228        __ast_path: &mut AstKindPath,
73229    ) {
73230        match self {
73231            swc_visit::Either::Left(visitor) => {
73232                VisitMutAstPath::visit_mut_import_named_specifier(visitor, node, __ast_path)
73233            }
73234            swc_visit::Either::Right(visitor) => {
73235                VisitMutAstPath::visit_mut_import_named_specifier(visitor, node, __ast_path)
73236            }
73237        }
73238    }
73239
73240    #[inline]
73241    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase, __ast_path: &mut AstKindPath) {
73242        match self {
73243            swc_visit::Either::Left(visitor) => {
73244                VisitMutAstPath::visit_mut_import_phase(visitor, node, __ast_path)
73245            }
73246            swc_visit::Either::Right(visitor) => {
73247                VisitMutAstPath::visit_mut_import_phase(visitor, node, __ast_path)
73248            }
73249        }
73250    }
73251
73252    #[inline]
73253    fn visit_mut_import_specifier(
73254        &mut self,
73255        node: &mut ImportSpecifier,
73256        __ast_path: &mut AstKindPath,
73257    ) {
73258        match self {
73259            swc_visit::Either::Left(visitor) => {
73260                VisitMutAstPath::visit_mut_import_specifier(visitor, node, __ast_path)
73261            }
73262            swc_visit::Either::Right(visitor) => {
73263                VisitMutAstPath::visit_mut_import_specifier(visitor, node, __ast_path)
73264            }
73265        }
73266    }
73267
73268    #[inline]
73269    fn visit_mut_import_specifiers(
73270        &mut self,
73271        node: &mut Vec<ImportSpecifier>,
73272        __ast_path: &mut AstKindPath,
73273    ) {
73274        match self {
73275            swc_visit::Either::Left(visitor) => {
73276                VisitMutAstPath::visit_mut_import_specifiers(visitor, node, __ast_path)
73277            }
73278            swc_visit::Either::Right(visitor) => {
73279                VisitMutAstPath::visit_mut_import_specifiers(visitor, node, __ast_path)
73280            }
73281        }
73282    }
73283
73284    #[inline]
73285    fn visit_mut_import_star_as_specifier(
73286        &mut self,
73287        node: &mut ImportStarAsSpecifier,
73288        __ast_path: &mut AstKindPath,
73289    ) {
73290        match self {
73291            swc_visit::Either::Left(visitor) => {
73292                VisitMutAstPath::visit_mut_import_star_as_specifier(visitor, node, __ast_path)
73293            }
73294            swc_visit::Either::Right(visitor) => {
73295                VisitMutAstPath::visit_mut_import_star_as_specifier(visitor, node, __ast_path)
73296            }
73297        }
73298    }
73299
73300    #[inline]
73301    fn visit_mut_import_with(&mut self, node: &mut ImportWith, __ast_path: &mut AstKindPath) {
73302        match self {
73303            swc_visit::Either::Left(visitor) => {
73304                VisitMutAstPath::visit_mut_import_with(visitor, node, __ast_path)
73305            }
73306            swc_visit::Either::Right(visitor) => {
73307                VisitMutAstPath::visit_mut_import_with(visitor, node, __ast_path)
73308            }
73309        }
73310    }
73311
73312    #[inline]
73313    fn visit_mut_import_with_item(
73314        &mut self,
73315        node: &mut ImportWithItem,
73316        __ast_path: &mut AstKindPath,
73317    ) {
73318        match self {
73319            swc_visit::Either::Left(visitor) => {
73320                VisitMutAstPath::visit_mut_import_with_item(visitor, node, __ast_path)
73321            }
73322            swc_visit::Either::Right(visitor) => {
73323                VisitMutAstPath::visit_mut_import_with_item(visitor, node, __ast_path)
73324            }
73325        }
73326    }
73327
73328    #[inline]
73329    fn visit_mut_import_with_items(
73330        &mut self,
73331        node: &mut Vec<ImportWithItem>,
73332        __ast_path: &mut AstKindPath,
73333    ) {
73334        match self {
73335            swc_visit::Either::Left(visitor) => {
73336                VisitMutAstPath::visit_mut_import_with_items(visitor, node, __ast_path)
73337            }
73338            swc_visit::Either::Right(visitor) => {
73339                VisitMutAstPath::visit_mut_import_with_items(visitor, node, __ast_path)
73340            }
73341        }
73342    }
73343
73344    #[inline]
73345    fn visit_mut_invalid(&mut self, node: &mut Invalid, __ast_path: &mut AstKindPath) {
73346        match self {
73347            swc_visit::Either::Left(visitor) => {
73348                VisitMutAstPath::visit_mut_invalid(visitor, node, __ast_path)
73349            }
73350            swc_visit::Either::Right(visitor) => {
73351                VisitMutAstPath::visit_mut_invalid(visitor, node, __ast_path)
73352            }
73353        }
73354    }
73355
73356    #[inline]
73357    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr, __ast_path: &mut AstKindPath) {
73358        match self {
73359            swc_visit::Either::Left(visitor) => {
73360                VisitMutAstPath::visit_mut_jsx_attr(visitor, node, __ast_path)
73361            }
73362            swc_visit::Either::Right(visitor) => {
73363                VisitMutAstPath::visit_mut_jsx_attr(visitor, node, __ast_path)
73364            }
73365        }
73366    }
73367
73368    #[inline]
73369    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName, __ast_path: &mut AstKindPath) {
73370        match self {
73371            swc_visit::Either::Left(visitor) => {
73372                VisitMutAstPath::visit_mut_jsx_attr_name(visitor, node, __ast_path)
73373            }
73374            swc_visit::Either::Right(visitor) => {
73375                VisitMutAstPath::visit_mut_jsx_attr_name(visitor, node, __ast_path)
73376            }
73377        }
73378    }
73379
73380    #[inline]
73381    fn visit_mut_jsx_attr_or_spread(
73382        &mut self,
73383        node: &mut JSXAttrOrSpread,
73384        __ast_path: &mut AstKindPath,
73385    ) {
73386        match self {
73387            swc_visit::Either::Left(visitor) => {
73388                VisitMutAstPath::visit_mut_jsx_attr_or_spread(visitor, node, __ast_path)
73389            }
73390            swc_visit::Either::Right(visitor) => {
73391                VisitMutAstPath::visit_mut_jsx_attr_or_spread(visitor, node, __ast_path)
73392            }
73393        }
73394    }
73395
73396    #[inline]
73397    fn visit_mut_jsx_attr_or_spreads(
73398        &mut self,
73399        node: &mut Vec<JSXAttrOrSpread>,
73400        __ast_path: &mut AstKindPath,
73401    ) {
73402        match self {
73403            swc_visit::Either::Left(visitor) => {
73404                VisitMutAstPath::visit_mut_jsx_attr_or_spreads(visitor, node, __ast_path)
73405            }
73406            swc_visit::Either::Right(visitor) => {
73407                VisitMutAstPath::visit_mut_jsx_attr_or_spreads(visitor, node, __ast_path)
73408            }
73409        }
73410    }
73411
73412    #[inline]
73413    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue, __ast_path: &mut AstKindPath) {
73414        match self {
73415            swc_visit::Either::Left(visitor) => {
73416                VisitMutAstPath::visit_mut_jsx_attr_value(visitor, node, __ast_path)
73417            }
73418            swc_visit::Either::Right(visitor) => {
73419                VisitMutAstPath::visit_mut_jsx_attr_value(visitor, node, __ast_path)
73420            }
73421        }
73422    }
73423
73424    #[inline]
73425    fn visit_mut_jsx_closing_element(
73426        &mut self,
73427        node: &mut JSXClosingElement,
73428        __ast_path: &mut AstKindPath,
73429    ) {
73430        match self {
73431            swc_visit::Either::Left(visitor) => {
73432                VisitMutAstPath::visit_mut_jsx_closing_element(visitor, node, __ast_path)
73433            }
73434            swc_visit::Either::Right(visitor) => {
73435                VisitMutAstPath::visit_mut_jsx_closing_element(visitor, node, __ast_path)
73436            }
73437        }
73438    }
73439
73440    #[inline]
73441    fn visit_mut_jsx_closing_fragment(
73442        &mut self,
73443        node: &mut JSXClosingFragment,
73444        __ast_path: &mut AstKindPath,
73445    ) {
73446        match self {
73447            swc_visit::Either::Left(visitor) => {
73448                VisitMutAstPath::visit_mut_jsx_closing_fragment(visitor, node, __ast_path)
73449            }
73450            swc_visit::Either::Right(visitor) => {
73451                VisitMutAstPath::visit_mut_jsx_closing_fragment(visitor, node, __ast_path)
73452            }
73453        }
73454    }
73455
73456    #[inline]
73457    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement, __ast_path: &mut AstKindPath) {
73458        match self {
73459            swc_visit::Either::Left(visitor) => {
73460                VisitMutAstPath::visit_mut_jsx_element(visitor, node, __ast_path)
73461            }
73462            swc_visit::Either::Right(visitor) => {
73463                VisitMutAstPath::visit_mut_jsx_element(visitor, node, __ast_path)
73464            }
73465        }
73466    }
73467
73468    #[inline]
73469    fn visit_mut_jsx_element_child(
73470        &mut self,
73471        node: &mut JSXElementChild,
73472        __ast_path: &mut AstKindPath,
73473    ) {
73474        match self {
73475            swc_visit::Either::Left(visitor) => {
73476                VisitMutAstPath::visit_mut_jsx_element_child(visitor, node, __ast_path)
73477            }
73478            swc_visit::Either::Right(visitor) => {
73479                VisitMutAstPath::visit_mut_jsx_element_child(visitor, node, __ast_path)
73480            }
73481        }
73482    }
73483
73484    #[inline]
73485    fn visit_mut_jsx_element_childs(
73486        &mut self,
73487        node: &mut Vec<JSXElementChild>,
73488        __ast_path: &mut AstKindPath,
73489    ) {
73490        match self {
73491            swc_visit::Either::Left(visitor) => {
73492                VisitMutAstPath::visit_mut_jsx_element_childs(visitor, node, __ast_path)
73493            }
73494            swc_visit::Either::Right(visitor) => {
73495                VisitMutAstPath::visit_mut_jsx_element_childs(visitor, node, __ast_path)
73496            }
73497        }
73498    }
73499
73500    #[inline]
73501    fn visit_mut_jsx_element_name(
73502        &mut self,
73503        node: &mut JSXElementName,
73504        __ast_path: &mut AstKindPath,
73505    ) {
73506        match self {
73507            swc_visit::Either::Left(visitor) => {
73508                VisitMutAstPath::visit_mut_jsx_element_name(visitor, node, __ast_path)
73509            }
73510            swc_visit::Either::Right(visitor) => {
73511                VisitMutAstPath::visit_mut_jsx_element_name(visitor, node, __ast_path)
73512            }
73513        }
73514    }
73515
73516    #[inline]
73517    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr, __ast_path: &mut AstKindPath) {
73518        match self {
73519            swc_visit::Either::Left(visitor) => {
73520                VisitMutAstPath::visit_mut_jsx_empty_expr(visitor, node, __ast_path)
73521            }
73522            swc_visit::Either::Right(visitor) => {
73523                VisitMutAstPath::visit_mut_jsx_empty_expr(visitor, node, __ast_path)
73524            }
73525        }
73526    }
73527
73528    #[inline]
73529    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr, __ast_path: &mut AstKindPath) {
73530        match self {
73531            swc_visit::Either::Left(visitor) => {
73532                VisitMutAstPath::visit_mut_jsx_expr(visitor, node, __ast_path)
73533            }
73534            swc_visit::Either::Right(visitor) => {
73535                VisitMutAstPath::visit_mut_jsx_expr(visitor, node, __ast_path)
73536            }
73537        }
73538    }
73539
73540    #[inline]
73541    fn visit_mut_jsx_expr_container(
73542        &mut self,
73543        node: &mut JSXExprContainer,
73544        __ast_path: &mut AstKindPath,
73545    ) {
73546        match self {
73547            swc_visit::Either::Left(visitor) => {
73548                VisitMutAstPath::visit_mut_jsx_expr_container(visitor, node, __ast_path)
73549            }
73550            swc_visit::Either::Right(visitor) => {
73551                VisitMutAstPath::visit_mut_jsx_expr_container(visitor, node, __ast_path)
73552            }
73553        }
73554    }
73555
73556    #[inline]
73557    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment, __ast_path: &mut AstKindPath) {
73558        match self {
73559            swc_visit::Either::Left(visitor) => {
73560                VisitMutAstPath::visit_mut_jsx_fragment(visitor, node, __ast_path)
73561            }
73562            swc_visit::Either::Right(visitor) => {
73563                VisitMutAstPath::visit_mut_jsx_fragment(visitor, node, __ast_path)
73564            }
73565        }
73566    }
73567
73568    #[inline]
73569    fn visit_mut_jsx_member_expr(
73570        &mut self,
73571        node: &mut JSXMemberExpr,
73572        __ast_path: &mut AstKindPath,
73573    ) {
73574        match self {
73575            swc_visit::Either::Left(visitor) => {
73576                VisitMutAstPath::visit_mut_jsx_member_expr(visitor, node, __ast_path)
73577            }
73578            swc_visit::Either::Right(visitor) => {
73579                VisitMutAstPath::visit_mut_jsx_member_expr(visitor, node, __ast_path)
73580            }
73581        }
73582    }
73583
73584    #[inline]
73585    fn visit_mut_jsx_namespaced_name(
73586        &mut self,
73587        node: &mut JSXNamespacedName,
73588        __ast_path: &mut AstKindPath,
73589    ) {
73590        match self {
73591            swc_visit::Either::Left(visitor) => {
73592                VisitMutAstPath::visit_mut_jsx_namespaced_name(visitor, node, __ast_path)
73593            }
73594            swc_visit::Either::Right(visitor) => {
73595                VisitMutAstPath::visit_mut_jsx_namespaced_name(visitor, node, __ast_path)
73596            }
73597        }
73598    }
73599
73600    #[inline]
73601    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject, __ast_path: &mut AstKindPath) {
73602        match self {
73603            swc_visit::Either::Left(visitor) => {
73604                VisitMutAstPath::visit_mut_jsx_object(visitor, node, __ast_path)
73605            }
73606            swc_visit::Either::Right(visitor) => {
73607                VisitMutAstPath::visit_mut_jsx_object(visitor, node, __ast_path)
73608            }
73609        }
73610    }
73611
73612    #[inline]
73613    fn visit_mut_jsx_opening_element(
73614        &mut self,
73615        node: &mut JSXOpeningElement,
73616        __ast_path: &mut AstKindPath,
73617    ) {
73618        match self {
73619            swc_visit::Either::Left(visitor) => {
73620                VisitMutAstPath::visit_mut_jsx_opening_element(visitor, node, __ast_path)
73621            }
73622            swc_visit::Either::Right(visitor) => {
73623                VisitMutAstPath::visit_mut_jsx_opening_element(visitor, node, __ast_path)
73624            }
73625        }
73626    }
73627
73628    #[inline]
73629    fn visit_mut_jsx_opening_fragment(
73630        &mut self,
73631        node: &mut JSXOpeningFragment,
73632        __ast_path: &mut AstKindPath,
73633    ) {
73634        match self {
73635            swc_visit::Either::Left(visitor) => {
73636                VisitMutAstPath::visit_mut_jsx_opening_fragment(visitor, node, __ast_path)
73637            }
73638            swc_visit::Either::Right(visitor) => {
73639                VisitMutAstPath::visit_mut_jsx_opening_fragment(visitor, node, __ast_path)
73640            }
73641        }
73642    }
73643
73644    #[inline]
73645    fn visit_mut_jsx_spread_child(
73646        &mut self,
73647        node: &mut JSXSpreadChild,
73648        __ast_path: &mut AstKindPath,
73649    ) {
73650        match self {
73651            swc_visit::Either::Left(visitor) => {
73652                VisitMutAstPath::visit_mut_jsx_spread_child(visitor, node, __ast_path)
73653            }
73654            swc_visit::Either::Right(visitor) => {
73655                VisitMutAstPath::visit_mut_jsx_spread_child(visitor, node, __ast_path)
73656            }
73657        }
73658    }
73659
73660    #[inline]
73661    fn visit_mut_jsx_text(&mut self, node: &mut JSXText, __ast_path: &mut AstKindPath) {
73662        match self {
73663            swc_visit::Either::Left(visitor) => {
73664                VisitMutAstPath::visit_mut_jsx_text(visitor, node, __ast_path)
73665            }
73666            swc_visit::Either::Right(visitor) => {
73667                VisitMutAstPath::visit_mut_jsx_text(visitor, node, __ast_path)
73668            }
73669        }
73670    }
73671
73672    #[inline]
73673    fn visit_mut_key(&mut self, node: &mut Key, __ast_path: &mut AstKindPath) {
73674        match self {
73675            swc_visit::Either::Left(visitor) => {
73676                VisitMutAstPath::visit_mut_key(visitor, node, __ast_path)
73677            }
73678            swc_visit::Either::Right(visitor) => {
73679                VisitMutAstPath::visit_mut_key(visitor, node, __ast_path)
73680            }
73681        }
73682    }
73683
73684    #[inline]
73685    fn visit_mut_key_value_pat_prop(
73686        &mut self,
73687        node: &mut KeyValuePatProp,
73688        __ast_path: &mut AstKindPath,
73689    ) {
73690        match self {
73691            swc_visit::Either::Left(visitor) => {
73692                VisitMutAstPath::visit_mut_key_value_pat_prop(visitor, node, __ast_path)
73693            }
73694            swc_visit::Either::Right(visitor) => {
73695                VisitMutAstPath::visit_mut_key_value_pat_prop(visitor, node, __ast_path)
73696            }
73697        }
73698    }
73699
73700    #[inline]
73701    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp, __ast_path: &mut AstKindPath) {
73702        match self {
73703            swc_visit::Either::Left(visitor) => {
73704                VisitMutAstPath::visit_mut_key_value_prop(visitor, node, __ast_path)
73705            }
73706            swc_visit::Either::Right(visitor) => {
73707                VisitMutAstPath::visit_mut_key_value_prop(visitor, node, __ast_path)
73708            }
73709        }
73710    }
73711
73712    #[inline]
73713    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt, __ast_path: &mut AstKindPath) {
73714        match self {
73715            swc_visit::Either::Left(visitor) => {
73716                VisitMutAstPath::visit_mut_labeled_stmt(visitor, node, __ast_path)
73717            }
73718            swc_visit::Either::Right(visitor) => {
73719                VisitMutAstPath::visit_mut_labeled_stmt(visitor, node, __ast_path)
73720            }
73721        }
73722    }
73723
73724    #[inline]
73725    fn visit_mut_lit(&mut self, node: &mut Lit, __ast_path: &mut AstKindPath) {
73726        match self {
73727            swc_visit::Either::Left(visitor) => {
73728                VisitMutAstPath::visit_mut_lit(visitor, node, __ast_path)
73729            }
73730            swc_visit::Either::Right(visitor) => {
73731                VisitMutAstPath::visit_mut_lit(visitor, node, __ast_path)
73732            }
73733        }
73734    }
73735
73736    #[inline]
73737    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr, __ast_path: &mut AstKindPath) {
73738        match self {
73739            swc_visit::Either::Left(visitor) => {
73740                VisitMutAstPath::visit_mut_member_expr(visitor, node, __ast_path)
73741            }
73742            swc_visit::Either::Right(visitor) => {
73743                VisitMutAstPath::visit_mut_member_expr(visitor, node, __ast_path)
73744            }
73745        }
73746    }
73747
73748    #[inline]
73749    fn visit_mut_member_prop(&mut self, node: &mut MemberProp, __ast_path: &mut AstKindPath) {
73750        match self {
73751            swc_visit::Either::Left(visitor) => {
73752                VisitMutAstPath::visit_mut_member_prop(visitor, node, __ast_path)
73753            }
73754            swc_visit::Either::Right(visitor) => {
73755                VisitMutAstPath::visit_mut_member_prop(visitor, node, __ast_path)
73756            }
73757        }
73758    }
73759
73760    #[inline]
73761    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr, __ast_path: &mut AstKindPath) {
73762        match self {
73763            swc_visit::Either::Left(visitor) => {
73764                VisitMutAstPath::visit_mut_meta_prop_expr(visitor, node, __ast_path)
73765            }
73766            swc_visit::Either::Right(visitor) => {
73767                VisitMutAstPath::visit_mut_meta_prop_expr(visitor, node, __ast_path)
73768            }
73769        }
73770    }
73771
73772    #[inline]
73773    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind, __ast_path: &mut AstKindPath) {
73774        match self {
73775            swc_visit::Either::Left(visitor) => {
73776                VisitMutAstPath::visit_mut_meta_prop_kind(visitor, node, __ast_path)
73777            }
73778            swc_visit::Either::Right(visitor) => {
73779                VisitMutAstPath::visit_mut_meta_prop_kind(visitor, node, __ast_path)
73780            }
73781        }
73782    }
73783
73784    #[inline]
73785    fn visit_mut_method_kind(&mut self, node: &mut MethodKind, __ast_path: &mut AstKindPath) {
73786        match self {
73787            swc_visit::Either::Left(visitor) => {
73788                VisitMutAstPath::visit_mut_method_kind(visitor, node, __ast_path)
73789            }
73790            swc_visit::Either::Right(visitor) => {
73791                VisitMutAstPath::visit_mut_method_kind(visitor, node, __ast_path)
73792            }
73793        }
73794    }
73795
73796    #[inline]
73797    fn visit_mut_method_prop(&mut self, node: &mut MethodProp, __ast_path: &mut AstKindPath) {
73798        match self {
73799            swc_visit::Either::Left(visitor) => {
73800                VisitMutAstPath::visit_mut_method_prop(visitor, node, __ast_path)
73801            }
73802            swc_visit::Either::Right(visitor) => {
73803                VisitMutAstPath::visit_mut_method_prop(visitor, node, __ast_path)
73804            }
73805        }
73806    }
73807
73808    #[inline]
73809    fn visit_mut_module(&mut self, node: &mut Module, __ast_path: &mut AstKindPath) {
73810        match self {
73811            swc_visit::Either::Left(visitor) => {
73812                VisitMutAstPath::visit_mut_module(visitor, node, __ast_path)
73813            }
73814            swc_visit::Either::Right(visitor) => {
73815                VisitMutAstPath::visit_mut_module(visitor, node, __ast_path)
73816            }
73817        }
73818    }
73819
73820    #[inline]
73821    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl, __ast_path: &mut AstKindPath) {
73822        match self {
73823            swc_visit::Either::Left(visitor) => {
73824                VisitMutAstPath::visit_mut_module_decl(visitor, node, __ast_path)
73825            }
73826            swc_visit::Either::Right(visitor) => {
73827                VisitMutAstPath::visit_mut_module_decl(visitor, node, __ast_path)
73828            }
73829        }
73830    }
73831
73832    #[inline]
73833    fn visit_mut_module_export_name(
73834        &mut self,
73835        node: &mut ModuleExportName,
73836        __ast_path: &mut AstKindPath,
73837    ) {
73838        match self {
73839            swc_visit::Either::Left(visitor) => {
73840                VisitMutAstPath::visit_mut_module_export_name(visitor, node, __ast_path)
73841            }
73842            swc_visit::Either::Right(visitor) => {
73843                VisitMutAstPath::visit_mut_module_export_name(visitor, node, __ast_path)
73844            }
73845        }
73846    }
73847
73848    #[inline]
73849    fn visit_mut_module_item(&mut self, node: &mut ModuleItem, __ast_path: &mut AstKindPath) {
73850        match self {
73851            swc_visit::Either::Left(visitor) => {
73852                VisitMutAstPath::visit_mut_module_item(visitor, node, __ast_path)
73853            }
73854            swc_visit::Either::Right(visitor) => {
73855                VisitMutAstPath::visit_mut_module_item(visitor, node, __ast_path)
73856            }
73857        }
73858    }
73859
73860    #[inline]
73861    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>, __ast_path: &mut AstKindPath) {
73862        match self {
73863            swc_visit::Either::Left(visitor) => {
73864                VisitMutAstPath::visit_mut_module_items(visitor, node, __ast_path)
73865            }
73866            swc_visit::Either::Right(visitor) => {
73867                VisitMutAstPath::visit_mut_module_items(visitor, node, __ast_path)
73868            }
73869        }
73870    }
73871
73872    #[inline]
73873    fn visit_mut_named_export(&mut self, node: &mut NamedExport, __ast_path: &mut AstKindPath) {
73874        match self {
73875            swc_visit::Either::Left(visitor) => {
73876                VisitMutAstPath::visit_mut_named_export(visitor, node, __ast_path)
73877            }
73878            swc_visit::Either::Right(visitor) => {
73879                VisitMutAstPath::visit_mut_named_export(visitor, node, __ast_path)
73880            }
73881        }
73882    }
73883
73884    #[inline]
73885    fn visit_mut_new_expr(&mut self, node: &mut NewExpr, __ast_path: &mut AstKindPath) {
73886        match self {
73887            swc_visit::Either::Left(visitor) => {
73888                VisitMutAstPath::visit_mut_new_expr(visitor, node, __ast_path)
73889            }
73890            swc_visit::Either::Right(visitor) => {
73891                VisitMutAstPath::visit_mut_new_expr(visitor, node, __ast_path)
73892            }
73893        }
73894    }
73895
73896    #[inline]
73897    fn visit_mut_null(&mut self, node: &mut Null, __ast_path: &mut AstKindPath) {
73898        match self {
73899            swc_visit::Either::Left(visitor) => {
73900                VisitMutAstPath::visit_mut_null(visitor, node, __ast_path)
73901            }
73902            swc_visit::Either::Right(visitor) => {
73903                VisitMutAstPath::visit_mut_null(visitor, node, __ast_path)
73904            }
73905        }
73906    }
73907
73908    #[inline]
73909    fn visit_mut_number(&mut self, node: &mut Number, __ast_path: &mut AstKindPath) {
73910        match self {
73911            swc_visit::Either::Left(visitor) => {
73912                VisitMutAstPath::visit_mut_number(visitor, node, __ast_path)
73913            }
73914            swc_visit::Either::Right(visitor) => {
73915                VisitMutAstPath::visit_mut_number(visitor, node, __ast_path)
73916            }
73917        }
73918    }
73919
73920    #[inline]
73921    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit, __ast_path: &mut AstKindPath) {
73922        match self {
73923            swc_visit::Either::Left(visitor) => {
73924                VisitMutAstPath::visit_mut_object_lit(visitor, node, __ast_path)
73925            }
73926            swc_visit::Either::Right(visitor) => {
73927                VisitMutAstPath::visit_mut_object_lit(visitor, node, __ast_path)
73928            }
73929        }
73930    }
73931
73932    #[inline]
73933    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat, __ast_path: &mut AstKindPath) {
73934        match self {
73935            swc_visit::Either::Left(visitor) => {
73936                VisitMutAstPath::visit_mut_object_pat(visitor, node, __ast_path)
73937            }
73938            swc_visit::Either::Right(visitor) => {
73939                VisitMutAstPath::visit_mut_object_pat(visitor, node, __ast_path)
73940            }
73941        }
73942    }
73943
73944    #[inline]
73945    fn visit_mut_object_pat_prop(
73946        &mut self,
73947        node: &mut ObjectPatProp,
73948        __ast_path: &mut AstKindPath,
73949    ) {
73950        match self {
73951            swc_visit::Either::Left(visitor) => {
73952                VisitMutAstPath::visit_mut_object_pat_prop(visitor, node, __ast_path)
73953            }
73954            swc_visit::Either::Right(visitor) => {
73955                VisitMutAstPath::visit_mut_object_pat_prop(visitor, node, __ast_path)
73956            }
73957        }
73958    }
73959
73960    #[inline]
73961    fn visit_mut_object_pat_props(
73962        &mut self,
73963        node: &mut Vec<ObjectPatProp>,
73964        __ast_path: &mut AstKindPath,
73965    ) {
73966        match self {
73967            swc_visit::Either::Left(visitor) => {
73968                VisitMutAstPath::visit_mut_object_pat_props(visitor, node, __ast_path)
73969            }
73970            swc_visit::Either::Right(visitor) => {
73971                VisitMutAstPath::visit_mut_object_pat_props(visitor, node, __ast_path)
73972            }
73973        }
73974    }
73975
73976    #[inline]
73977    fn visit_mut_opt_accessibility(
73978        &mut self,
73979        node: &mut Option<Accessibility>,
73980        __ast_path: &mut AstKindPath,
73981    ) {
73982        match self {
73983            swc_visit::Either::Left(visitor) => {
73984                VisitMutAstPath::visit_mut_opt_accessibility(visitor, node, __ast_path)
73985            }
73986            swc_visit::Either::Right(visitor) => {
73987                VisitMutAstPath::visit_mut_opt_accessibility(visitor, node, __ast_path)
73988            }
73989        }
73990    }
73991
73992    #[inline]
73993    fn visit_mut_opt_atom(
73994        &mut self,
73995        node: &mut Option<swc_atoms::Atom>,
73996        __ast_path: &mut AstKindPath,
73997    ) {
73998        match self {
73999            swc_visit::Either::Left(visitor) => {
74000                VisitMutAstPath::visit_mut_opt_atom(visitor, node, __ast_path)
74001            }
74002            swc_visit::Either::Right(visitor) => {
74003                VisitMutAstPath::visit_mut_opt_atom(visitor, node, __ast_path)
74004            }
74005        }
74006    }
74007
74008    #[inline]
74009    fn visit_mut_opt_block_stmt(
74010        &mut self,
74011        node: &mut Option<BlockStmt>,
74012        __ast_path: &mut AstKindPath,
74013    ) {
74014        match self {
74015            swc_visit::Either::Left(visitor) => {
74016                VisitMutAstPath::visit_mut_opt_block_stmt(visitor, node, __ast_path)
74017            }
74018            swc_visit::Either::Right(visitor) => {
74019                VisitMutAstPath::visit_mut_opt_block_stmt(visitor, node, __ast_path)
74020            }
74021        }
74022    }
74023
74024    #[inline]
74025    fn visit_mut_opt_call(&mut self, node: &mut OptCall, __ast_path: &mut AstKindPath) {
74026        match self {
74027            swc_visit::Either::Left(visitor) => {
74028                VisitMutAstPath::visit_mut_opt_call(visitor, node, __ast_path)
74029            }
74030            swc_visit::Either::Right(visitor) => {
74031                VisitMutAstPath::visit_mut_opt_call(visitor, node, __ast_path)
74032            }
74033        }
74034    }
74035
74036    #[inline]
74037    fn visit_mut_opt_catch_clause(
74038        &mut self,
74039        node: &mut Option<CatchClause>,
74040        __ast_path: &mut AstKindPath,
74041    ) {
74042        match self {
74043            swc_visit::Either::Left(visitor) => {
74044                VisitMutAstPath::visit_mut_opt_catch_clause(visitor, node, __ast_path)
74045            }
74046            swc_visit::Either::Right(visitor) => {
74047                VisitMutAstPath::visit_mut_opt_catch_clause(visitor, node, __ast_path)
74048            }
74049        }
74050    }
74051
74052    #[inline]
74053    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase, __ast_path: &mut AstKindPath) {
74054        match self {
74055            swc_visit::Either::Left(visitor) => {
74056                VisitMutAstPath::visit_mut_opt_chain_base(visitor, node, __ast_path)
74057            }
74058            swc_visit::Either::Right(visitor) => {
74059                VisitMutAstPath::visit_mut_opt_chain_base(visitor, node, __ast_path)
74060            }
74061        }
74062    }
74063
74064    #[inline]
74065    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr, __ast_path: &mut AstKindPath) {
74066        match self {
74067            swc_visit::Either::Left(visitor) => {
74068                VisitMutAstPath::visit_mut_opt_chain_expr(visitor, node, __ast_path)
74069            }
74070            swc_visit::Either::Right(visitor) => {
74071                VisitMutAstPath::visit_mut_opt_chain_expr(visitor, node, __ast_path)
74072            }
74073        }
74074    }
74075
74076    #[inline]
74077    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>, __ast_path: &mut AstKindPath) {
74078        match self {
74079            swc_visit::Either::Left(visitor) => {
74080                VisitMutAstPath::visit_mut_opt_expr(visitor, node, __ast_path)
74081            }
74082            swc_visit::Either::Right(visitor) => {
74083                VisitMutAstPath::visit_mut_opt_expr(visitor, node, __ast_path)
74084            }
74085        }
74086    }
74087
74088    #[inline]
74089    fn visit_mut_opt_expr_or_spread(
74090        &mut self,
74091        node: &mut Option<ExprOrSpread>,
74092        __ast_path: &mut AstKindPath,
74093    ) {
74094        match self {
74095            swc_visit::Either::Left(visitor) => {
74096                VisitMutAstPath::visit_mut_opt_expr_or_spread(visitor, node, __ast_path)
74097            }
74098            swc_visit::Either::Right(visitor) => {
74099                VisitMutAstPath::visit_mut_opt_expr_or_spread(visitor, node, __ast_path)
74100            }
74101        }
74102    }
74103
74104    #[inline]
74105    fn visit_mut_opt_expr_or_spreads(
74106        &mut self,
74107        node: &mut Option<Vec<ExprOrSpread>>,
74108        __ast_path: &mut AstKindPath,
74109    ) {
74110        match self {
74111            swc_visit::Either::Left(visitor) => {
74112                VisitMutAstPath::visit_mut_opt_expr_or_spreads(visitor, node, __ast_path)
74113            }
74114            swc_visit::Either::Right(visitor) => {
74115                VisitMutAstPath::visit_mut_opt_expr_or_spreads(visitor, node, __ast_path)
74116            }
74117        }
74118    }
74119
74120    #[inline]
74121    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>, __ast_path: &mut AstKindPath) {
74122        match self {
74123            swc_visit::Either::Left(visitor) => {
74124                VisitMutAstPath::visit_mut_opt_ident(visitor, node, __ast_path)
74125            }
74126            swc_visit::Either::Right(visitor) => {
74127                VisitMutAstPath::visit_mut_opt_ident(visitor, node, __ast_path)
74128            }
74129        }
74130    }
74131
74132    #[inline]
74133    fn visit_mut_opt_jsx_attr_value(
74134        &mut self,
74135        node: &mut Option<JSXAttrValue>,
74136        __ast_path: &mut AstKindPath,
74137    ) {
74138        match self {
74139            swc_visit::Either::Left(visitor) => {
74140                VisitMutAstPath::visit_mut_opt_jsx_attr_value(visitor, node, __ast_path)
74141            }
74142            swc_visit::Either::Right(visitor) => {
74143                VisitMutAstPath::visit_mut_opt_jsx_attr_value(visitor, node, __ast_path)
74144            }
74145        }
74146    }
74147
74148    #[inline]
74149    fn visit_mut_opt_jsx_closing_element(
74150        &mut self,
74151        node: &mut Option<JSXClosingElement>,
74152        __ast_path: &mut AstKindPath,
74153    ) {
74154        match self {
74155            swc_visit::Either::Left(visitor) => {
74156                VisitMutAstPath::visit_mut_opt_jsx_closing_element(visitor, node, __ast_path)
74157            }
74158            swc_visit::Either::Right(visitor) => {
74159                VisitMutAstPath::visit_mut_opt_jsx_closing_element(visitor, node, __ast_path)
74160            }
74161        }
74162    }
74163
74164    #[inline]
74165    fn visit_mut_opt_module_export_name(
74166        &mut self,
74167        node: &mut Option<ModuleExportName>,
74168        __ast_path: &mut AstKindPath,
74169    ) {
74170        match self {
74171            swc_visit::Either::Left(visitor) => {
74172                VisitMutAstPath::visit_mut_opt_module_export_name(visitor, node, __ast_path)
74173            }
74174            swc_visit::Either::Right(visitor) => {
74175                VisitMutAstPath::visit_mut_opt_module_export_name(visitor, node, __ast_path)
74176            }
74177        }
74178    }
74179
74180    #[inline]
74181    fn visit_mut_opt_object_lit(
74182        &mut self,
74183        node: &mut Option<Box<ObjectLit>>,
74184        __ast_path: &mut AstKindPath,
74185    ) {
74186        match self {
74187            swc_visit::Either::Left(visitor) => {
74188                VisitMutAstPath::visit_mut_opt_object_lit(visitor, node, __ast_path)
74189            }
74190            swc_visit::Either::Right(visitor) => {
74191                VisitMutAstPath::visit_mut_opt_object_lit(visitor, node, __ast_path)
74192            }
74193        }
74194    }
74195
74196    #[inline]
74197    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>, __ast_path: &mut AstKindPath) {
74198        match self {
74199            swc_visit::Either::Left(visitor) => {
74200                VisitMutAstPath::visit_mut_opt_pat(visitor, node, __ast_path)
74201            }
74202            swc_visit::Either::Right(visitor) => {
74203                VisitMutAstPath::visit_mut_opt_pat(visitor, node, __ast_path)
74204            }
74205        }
74206    }
74207
74208    #[inline]
74209    fn visit_mut_opt_span(
74210        &mut self,
74211        node: &mut Option<swc_common::Span>,
74212        __ast_path: &mut AstKindPath,
74213    ) {
74214        match self {
74215            swc_visit::Either::Left(visitor) => {
74216                VisitMutAstPath::visit_mut_opt_span(visitor, node, __ast_path)
74217            }
74218            swc_visit::Either::Right(visitor) => {
74219                VisitMutAstPath::visit_mut_opt_span(visitor, node, __ast_path)
74220            }
74221        }
74222    }
74223
74224    #[inline]
74225    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>, __ast_path: &mut AstKindPath) {
74226        match self {
74227            swc_visit::Either::Left(visitor) => {
74228                VisitMutAstPath::visit_mut_opt_stmt(visitor, node, __ast_path)
74229            }
74230            swc_visit::Either::Right(visitor) => {
74231                VisitMutAstPath::visit_mut_opt_stmt(visitor, node, __ast_path)
74232            }
74233        }
74234    }
74235
74236    #[inline]
74237    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>, __ast_path: &mut AstKindPath) {
74238        match self {
74239            swc_visit::Either::Left(visitor) => {
74240                VisitMutAstPath::visit_mut_opt_str(visitor, node, __ast_path)
74241            }
74242            swc_visit::Either::Right(visitor) => {
74243                VisitMutAstPath::visit_mut_opt_str(visitor, node, __ast_path)
74244            }
74245        }
74246    }
74247
74248    #[inline]
74249    fn visit_mut_opt_true_plus_minus(
74250        &mut self,
74251        node: &mut Option<TruePlusMinus>,
74252        __ast_path: &mut AstKindPath,
74253    ) {
74254        match self {
74255            swc_visit::Either::Left(visitor) => {
74256                VisitMutAstPath::visit_mut_opt_true_plus_minus(visitor, node, __ast_path)
74257            }
74258            swc_visit::Either::Right(visitor) => {
74259                VisitMutAstPath::visit_mut_opt_true_plus_minus(visitor, node, __ast_path)
74260            }
74261        }
74262    }
74263
74264    #[inline]
74265    fn visit_mut_opt_ts_entity_name(
74266        &mut self,
74267        node: &mut Option<TsEntityName>,
74268        __ast_path: &mut AstKindPath,
74269    ) {
74270        match self {
74271            swc_visit::Either::Left(visitor) => {
74272                VisitMutAstPath::visit_mut_opt_ts_entity_name(visitor, node, __ast_path)
74273            }
74274            swc_visit::Either::Right(visitor) => {
74275                VisitMutAstPath::visit_mut_opt_ts_entity_name(visitor, node, __ast_path)
74276            }
74277        }
74278    }
74279
74280    #[inline]
74281    fn visit_mut_opt_ts_import_call_options(
74282        &mut self,
74283        node: &mut Option<TsImportCallOptions>,
74284        __ast_path: &mut AstKindPath,
74285    ) {
74286        match self {
74287            swc_visit::Either::Left(visitor) => {
74288                VisitMutAstPath::visit_mut_opt_ts_import_call_options(visitor, node, __ast_path)
74289            }
74290            swc_visit::Either::Right(visitor) => {
74291                VisitMutAstPath::visit_mut_opt_ts_import_call_options(visitor, node, __ast_path)
74292            }
74293        }
74294    }
74295
74296    #[inline]
74297    fn visit_mut_opt_ts_namespace_body(
74298        &mut self,
74299        node: &mut Option<TsNamespaceBody>,
74300        __ast_path: &mut AstKindPath,
74301    ) {
74302        match self {
74303            swc_visit::Either::Left(visitor) => {
74304                VisitMutAstPath::visit_mut_opt_ts_namespace_body(visitor, node, __ast_path)
74305            }
74306            swc_visit::Either::Right(visitor) => {
74307                VisitMutAstPath::visit_mut_opt_ts_namespace_body(visitor, node, __ast_path)
74308            }
74309        }
74310    }
74311
74312    #[inline]
74313    fn visit_mut_opt_ts_type(
74314        &mut self,
74315        node: &mut Option<Box<TsType>>,
74316        __ast_path: &mut AstKindPath,
74317    ) {
74318        match self {
74319            swc_visit::Either::Left(visitor) => {
74320                VisitMutAstPath::visit_mut_opt_ts_type(visitor, node, __ast_path)
74321            }
74322            swc_visit::Either::Right(visitor) => {
74323                VisitMutAstPath::visit_mut_opt_ts_type(visitor, node, __ast_path)
74324            }
74325        }
74326    }
74327
74328    #[inline]
74329    fn visit_mut_opt_ts_type_ann(
74330        &mut self,
74331        node: &mut Option<Box<TsTypeAnn>>,
74332        __ast_path: &mut AstKindPath,
74333    ) {
74334        match self {
74335            swc_visit::Either::Left(visitor) => {
74336                VisitMutAstPath::visit_mut_opt_ts_type_ann(visitor, node, __ast_path)
74337            }
74338            swc_visit::Either::Right(visitor) => {
74339                VisitMutAstPath::visit_mut_opt_ts_type_ann(visitor, node, __ast_path)
74340            }
74341        }
74342    }
74343
74344    #[inline]
74345    fn visit_mut_opt_ts_type_param_decl(
74346        &mut self,
74347        node: &mut Option<Box<TsTypeParamDecl>>,
74348        __ast_path: &mut AstKindPath,
74349    ) {
74350        match self {
74351            swc_visit::Either::Left(visitor) => {
74352                VisitMutAstPath::visit_mut_opt_ts_type_param_decl(visitor, node, __ast_path)
74353            }
74354            swc_visit::Either::Right(visitor) => {
74355                VisitMutAstPath::visit_mut_opt_ts_type_param_decl(visitor, node, __ast_path)
74356            }
74357        }
74358    }
74359
74360    #[inline]
74361    fn visit_mut_opt_ts_type_param_instantiation(
74362        &mut self,
74363        node: &mut Option<Box<TsTypeParamInstantiation>>,
74364        __ast_path: &mut AstKindPath,
74365    ) {
74366        match self {
74367            swc_visit::Either::Left(visitor) => {
74368                VisitMutAstPath::visit_mut_opt_ts_type_param_instantiation(
74369                    visitor, node, __ast_path,
74370                )
74371            }
74372            swc_visit::Either::Right(visitor) => {
74373                VisitMutAstPath::visit_mut_opt_ts_type_param_instantiation(
74374                    visitor, node, __ast_path,
74375                )
74376            }
74377        }
74378    }
74379
74380    #[inline]
74381    fn visit_mut_opt_var_decl_or_expr(
74382        &mut self,
74383        node: &mut Option<VarDeclOrExpr>,
74384        __ast_path: &mut AstKindPath,
74385    ) {
74386        match self {
74387            swc_visit::Either::Left(visitor) => {
74388                VisitMutAstPath::visit_mut_opt_var_decl_or_expr(visitor, node, __ast_path)
74389            }
74390            swc_visit::Either::Right(visitor) => {
74391                VisitMutAstPath::visit_mut_opt_var_decl_or_expr(visitor, node, __ast_path)
74392            }
74393        }
74394    }
74395
74396    #[inline]
74397    fn visit_mut_opt_vec_expr_or_spreads(
74398        &mut self,
74399        node: &mut Vec<Option<ExprOrSpread>>,
74400        __ast_path: &mut AstKindPath,
74401    ) {
74402        match self {
74403            swc_visit::Either::Left(visitor) => {
74404                VisitMutAstPath::visit_mut_opt_vec_expr_or_spreads(visitor, node, __ast_path)
74405            }
74406            swc_visit::Either::Right(visitor) => {
74407                VisitMutAstPath::visit_mut_opt_vec_expr_or_spreads(visitor, node, __ast_path)
74408            }
74409        }
74410    }
74411
74412    #[inline]
74413    fn visit_mut_opt_vec_pats(
74414        &mut self,
74415        node: &mut Vec<Option<Pat>>,
74416        __ast_path: &mut AstKindPath,
74417    ) {
74418        match self {
74419            swc_visit::Either::Left(visitor) => {
74420                VisitMutAstPath::visit_mut_opt_vec_pats(visitor, node, __ast_path)
74421            }
74422            swc_visit::Either::Right(visitor) => {
74423                VisitMutAstPath::visit_mut_opt_vec_pats(visitor, node, __ast_path)
74424            }
74425        }
74426    }
74427
74428    #[inline]
74429    fn visit_mut_param(&mut self, node: &mut Param, __ast_path: &mut AstKindPath) {
74430        match self {
74431            swc_visit::Either::Left(visitor) => {
74432                VisitMutAstPath::visit_mut_param(visitor, node, __ast_path)
74433            }
74434            swc_visit::Either::Right(visitor) => {
74435                VisitMutAstPath::visit_mut_param(visitor, node, __ast_path)
74436            }
74437        }
74438    }
74439
74440    #[inline]
74441    fn visit_mut_param_or_ts_param_prop(
74442        &mut self,
74443        node: &mut ParamOrTsParamProp,
74444        __ast_path: &mut AstKindPath,
74445    ) {
74446        match self {
74447            swc_visit::Either::Left(visitor) => {
74448                VisitMutAstPath::visit_mut_param_or_ts_param_prop(visitor, node, __ast_path)
74449            }
74450            swc_visit::Either::Right(visitor) => {
74451                VisitMutAstPath::visit_mut_param_or_ts_param_prop(visitor, node, __ast_path)
74452            }
74453        }
74454    }
74455
74456    #[inline]
74457    fn visit_mut_param_or_ts_param_props(
74458        &mut self,
74459        node: &mut Vec<ParamOrTsParamProp>,
74460        __ast_path: &mut AstKindPath,
74461    ) {
74462        match self {
74463            swc_visit::Either::Left(visitor) => {
74464                VisitMutAstPath::visit_mut_param_or_ts_param_props(visitor, node, __ast_path)
74465            }
74466            swc_visit::Either::Right(visitor) => {
74467                VisitMutAstPath::visit_mut_param_or_ts_param_props(visitor, node, __ast_path)
74468            }
74469        }
74470    }
74471
74472    #[inline]
74473    fn visit_mut_params(&mut self, node: &mut Vec<Param>, __ast_path: &mut AstKindPath) {
74474        match self {
74475            swc_visit::Either::Left(visitor) => {
74476                VisitMutAstPath::visit_mut_params(visitor, node, __ast_path)
74477            }
74478            swc_visit::Either::Right(visitor) => {
74479                VisitMutAstPath::visit_mut_params(visitor, node, __ast_path)
74480            }
74481        }
74482    }
74483
74484    #[inline]
74485    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr, __ast_path: &mut AstKindPath) {
74486        match self {
74487            swc_visit::Either::Left(visitor) => {
74488                VisitMutAstPath::visit_mut_paren_expr(visitor, node, __ast_path)
74489            }
74490            swc_visit::Either::Right(visitor) => {
74491                VisitMutAstPath::visit_mut_paren_expr(visitor, node, __ast_path)
74492            }
74493        }
74494    }
74495
74496    #[inline]
74497    fn visit_mut_pat(&mut self, node: &mut Pat, __ast_path: &mut AstKindPath) {
74498        match self {
74499            swc_visit::Either::Left(visitor) => {
74500                VisitMutAstPath::visit_mut_pat(visitor, node, __ast_path)
74501            }
74502            swc_visit::Either::Right(visitor) => {
74503                VisitMutAstPath::visit_mut_pat(visitor, node, __ast_path)
74504            }
74505        }
74506    }
74507
74508    #[inline]
74509    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>, __ast_path: &mut AstKindPath) {
74510        match self {
74511            swc_visit::Either::Left(visitor) => {
74512                VisitMutAstPath::visit_mut_pats(visitor, node, __ast_path)
74513            }
74514            swc_visit::Either::Right(visitor) => {
74515                VisitMutAstPath::visit_mut_pats(visitor, node, __ast_path)
74516            }
74517        }
74518    }
74519
74520    #[inline]
74521    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod, __ast_path: &mut AstKindPath) {
74522        match self {
74523            swc_visit::Either::Left(visitor) => {
74524                VisitMutAstPath::visit_mut_private_method(visitor, node, __ast_path)
74525            }
74526            swc_visit::Either::Right(visitor) => {
74527                VisitMutAstPath::visit_mut_private_method(visitor, node, __ast_path)
74528            }
74529        }
74530    }
74531
74532    #[inline]
74533    fn visit_mut_private_name(&mut self, node: &mut PrivateName, __ast_path: &mut AstKindPath) {
74534        match self {
74535            swc_visit::Either::Left(visitor) => {
74536                VisitMutAstPath::visit_mut_private_name(visitor, node, __ast_path)
74537            }
74538            swc_visit::Either::Right(visitor) => {
74539                VisitMutAstPath::visit_mut_private_name(visitor, node, __ast_path)
74540            }
74541        }
74542    }
74543
74544    #[inline]
74545    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp, __ast_path: &mut AstKindPath) {
74546        match self {
74547            swc_visit::Either::Left(visitor) => {
74548                VisitMutAstPath::visit_mut_private_prop(visitor, node, __ast_path)
74549            }
74550            swc_visit::Either::Right(visitor) => {
74551                VisitMutAstPath::visit_mut_private_prop(visitor, node, __ast_path)
74552            }
74553        }
74554    }
74555
74556    #[inline]
74557    fn visit_mut_program(&mut self, node: &mut Program, __ast_path: &mut AstKindPath) {
74558        match self {
74559            swc_visit::Either::Left(visitor) => {
74560                VisitMutAstPath::visit_mut_program(visitor, node, __ast_path)
74561            }
74562            swc_visit::Either::Right(visitor) => {
74563                VisitMutAstPath::visit_mut_program(visitor, node, __ast_path)
74564            }
74565        }
74566    }
74567
74568    #[inline]
74569    fn visit_mut_prop(&mut self, node: &mut Prop, __ast_path: &mut AstKindPath) {
74570        match self {
74571            swc_visit::Either::Left(visitor) => {
74572                VisitMutAstPath::visit_mut_prop(visitor, node, __ast_path)
74573            }
74574            swc_visit::Either::Right(visitor) => {
74575                VisitMutAstPath::visit_mut_prop(visitor, node, __ast_path)
74576            }
74577        }
74578    }
74579
74580    #[inline]
74581    fn visit_mut_prop_name(&mut self, node: &mut PropName, __ast_path: &mut AstKindPath) {
74582        match self {
74583            swc_visit::Either::Left(visitor) => {
74584                VisitMutAstPath::visit_mut_prop_name(visitor, node, __ast_path)
74585            }
74586            swc_visit::Either::Right(visitor) => {
74587                VisitMutAstPath::visit_mut_prop_name(visitor, node, __ast_path)
74588            }
74589        }
74590    }
74591
74592    #[inline]
74593    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread, __ast_path: &mut AstKindPath) {
74594        match self {
74595            swc_visit::Either::Left(visitor) => {
74596                VisitMutAstPath::visit_mut_prop_or_spread(visitor, node, __ast_path)
74597            }
74598            swc_visit::Either::Right(visitor) => {
74599                VisitMutAstPath::visit_mut_prop_or_spread(visitor, node, __ast_path)
74600            }
74601        }
74602    }
74603
74604    #[inline]
74605    fn visit_mut_prop_or_spreads(
74606        &mut self,
74607        node: &mut Vec<PropOrSpread>,
74608        __ast_path: &mut AstKindPath,
74609    ) {
74610        match self {
74611            swc_visit::Either::Left(visitor) => {
74612                VisitMutAstPath::visit_mut_prop_or_spreads(visitor, node, __ast_path)
74613            }
74614            swc_visit::Either::Right(visitor) => {
74615                VisitMutAstPath::visit_mut_prop_or_spreads(visitor, node, __ast_path)
74616            }
74617        }
74618    }
74619
74620    #[inline]
74621    fn visit_mut_regex(&mut self, node: &mut Regex, __ast_path: &mut AstKindPath) {
74622        match self {
74623            swc_visit::Either::Left(visitor) => {
74624                VisitMutAstPath::visit_mut_regex(visitor, node, __ast_path)
74625            }
74626            swc_visit::Either::Right(visitor) => {
74627                VisitMutAstPath::visit_mut_regex(visitor, node, __ast_path)
74628            }
74629        }
74630    }
74631
74632    #[inline]
74633    fn visit_mut_rest_pat(&mut self, node: &mut RestPat, __ast_path: &mut AstKindPath) {
74634        match self {
74635            swc_visit::Either::Left(visitor) => {
74636                VisitMutAstPath::visit_mut_rest_pat(visitor, node, __ast_path)
74637            }
74638            swc_visit::Either::Right(visitor) => {
74639                VisitMutAstPath::visit_mut_rest_pat(visitor, node, __ast_path)
74640            }
74641        }
74642    }
74643
74644    #[inline]
74645    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt, __ast_path: &mut AstKindPath) {
74646        match self {
74647            swc_visit::Either::Left(visitor) => {
74648                VisitMutAstPath::visit_mut_return_stmt(visitor, node, __ast_path)
74649            }
74650            swc_visit::Either::Right(visitor) => {
74651                VisitMutAstPath::visit_mut_return_stmt(visitor, node, __ast_path)
74652            }
74653        }
74654    }
74655
74656    #[inline]
74657    fn visit_mut_script(&mut self, node: &mut Script, __ast_path: &mut AstKindPath) {
74658        match self {
74659            swc_visit::Either::Left(visitor) => {
74660                VisitMutAstPath::visit_mut_script(visitor, node, __ast_path)
74661            }
74662            swc_visit::Either::Right(visitor) => {
74663                VisitMutAstPath::visit_mut_script(visitor, node, __ast_path)
74664            }
74665        }
74666    }
74667
74668    #[inline]
74669    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr, __ast_path: &mut AstKindPath) {
74670        match self {
74671            swc_visit::Either::Left(visitor) => {
74672                VisitMutAstPath::visit_mut_seq_expr(visitor, node, __ast_path)
74673            }
74674            swc_visit::Either::Right(visitor) => {
74675                VisitMutAstPath::visit_mut_seq_expr(visitor, node, __ast_path)
74676            }
74677        }
74678    }
74679
74680    #[inline]
74681    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp, __ast_path: &mut AstKindPath) {
74682        match self {
74683            swc_visit::Either::Left(visitor) => {
74684                VisitMutAstPath::visit_mut_setter_prop(visitor, node, __ast_path)
74685            }
74686            swc_visit::Either::Right(visitor) => {
74687                VisitMutAstPath::visit_mut_setter_prop(visitor, node, __ast_path)
74688            }
74689        }
74690    }
74691
74692    #[inline]
74693    fn visit_mut_simple_assign_target(
74694        &mut self,
74695        node: &mut SimpleAssignTarget,
74696        __ast_path: &mut AstKindPath,
74697    ) {
74698        match self {
74699            swc_visit::Either::Left(visitor) => {
74700                VisitMutAstPath::visit_mut_simple_assign_target(visitor, node, __ast_path)
74701            }
74702            swc_visit::Either::Right(visitor) => {
74703                VisitMutAstPath::visit_mut_simple_assign_target(visitor, node, __ast_path)
74704            }
74705        }
74706    }
74707
74708    #[inline]
74709    fn visit_mut_span(&mut self, node: &mut swc_common::Span, __ast_path: &mut AstKindPath) {
74710        match self {
74711            swc_visit::Either::Left(visitor) => {
74712                VisitMutAstPath::visit_mut_span(visitor, node, __ast_path)
74713            }
74714            swc_visit::Either::Right(visitor) => {
74715                VisitMutAstPath::visit_mut_span(visitor, node, __ast_path)
74716            }
74717        }
74718    }
74719
74720    #[inline]
74721    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement, __ast_path: &mut AstKindPath) {
74722        match self {
74723            swc_visit::Either::Left(visitor) => {
74724                VisitMutAstPath::visit_mut_spread_element(visitor, node, __ast_path)
74725            }
74726            swc_visit::Either::Right(visitor) => {
74727                VisitMutAstPath::visit_mut_spread_element(visitor, node, __ast_path)
74728            }
74729        }
74730    }
74731
74732    #[inline]
74733    fn visit_mut_static_block(&mut self, node: &mut StaticBlock, __ast_path: &mut AstKindPath) {
74734        match self {
74735            swc_visit::Either::Left(visitor) => {
74736                VisitMutAstPath::visit_mut_static_block(visitor, node, __ast_path)
74737            }
74738            swc_visit::Either::Right(visitor) => {
74739                VisitMutAstPath::visit_mut_static_block(visitor, node, __ast_path)
74740            }
74741        }
74742    }
74743
74744    #[inline]
74745    fn visit_mut_stmt(&mut self, node: &mut Stmt, __ast_path: &mut AstKindPath) {
74746        match self {
74747            swc_visit::Either::Left(visitor) => {
74748                VisitMutAstPath::visit_mut_stmt(visitor, node, __ast_path)
74749            }
74750            swc_visit::Either::Right(visitor) => {
74751                VisitMutAstPath::visit_mut_stmt(visitor, node, __ast_path)
74752            }
74753        }
74754    }
74755
74756    #[inline]
74757    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>, __ast_path: &mut AstKindPath) {
74758        match self {
74759            swc_visit::Either::Left(visitor) => {
74760                VisitMutAstPath::visit_mut_stmts(visitor, node, __ast_path)
74761            }
74762            swc_visit::Either::Right(visitor) => {
74763                VisitMutAstPath::visit_mut_stmts(visitor, node, __ast_path)
74764            }
74765        }
74766    }
74767
74768    #[inline]
74769    fn visit_mut_str(&mut self, node: &mut Str, __ast_path: &mut AstKindPath) {
74770        match self {
74771            swc_visit::Either::Left(visitor) => {
74772                VisitMutAstPath::visit_mut_str(visitor, node, __ast_path)
74773            }
74774            swc_visit::Either::Right(visitor) => {
74775                VisitMutAstPath::visit_mut_str(visitor, node, __ast_path)
74776            }
74777        }
74778    }
74779
74780    #[inline]
74781    fn visit_mut_super(&mut self, node: &mut Super, __ast_path: &mut AstKindPath) {
74782        match self {
74783            swc_visit::Either::Left(visitor) => {
74784                VisitMutAstPath::visit_mut_super(visitor, node, __ast_path)
74785            }
74786            swc_visit::Either::Right(visitor) => {
74787                VisitMutAstPath::visit_mut_super(visitor, node, __ast_path)
74788            }
74789        }
74790    }
74791
74792    #[inline]
74793    fn visit_mut_super_prop(&mut self, node: &mut SuperProp, __ast_path: &mut AstKindPath) {
74794        match self {
74795            swc_visit::Either::Left(visitor) => {
74796                VisitMutAstPath::visit_mut_super_prop(visitor, node, __ast_path)
74797            }
74798            swc_visit::Either::Right(visitor) => {
74799                VisitMutAstPath::visit_mut_super_prop(visitor, node, __ast_path)
74800            }
74801        }
74802    }
74803
74804    #[inline]
74805    fn visit_mut_super_prop_expr(
74806        &mut self,
74807        node: &mut SuperPropExpr,
74808        __ast_path: &mut AstKindPath,
74809    ) {
74810        match self {
74811            swc_visit::Either::Left(visitor) => {
74812                VisitMutAstPath::visit_mut_super_prop_expr(visitor, node, __ast_path)
74813            }
74814            swc_visit::Either::Right(visitor) => {
74815                VisitMutAstPath::visit_mut_super_prop_expr(visitor, node, __ast_path)
74816            }
74817        }
74818    }
74819
74820    #[inline]
74821    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase, __ast_path: &mut AstKindPath) {
74822        match self {
74823            swc_visit::Either::Left(visitor) => {
74824                VisitMutAstPath::visit_mut_switch_case(visitor, node, __ast_path)
74825            }
74826            swc_visit::Either::Right(visitor) => {
74827                VisitMutAstPath::visit_mut_switch_case(visitor, node, __ast_path)
74828            }
74829        }
74830    }
74831
74832    #[inline]
74833    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>, __ast_path: &mut AstKindPath) {
74834        match self {
74835            swc_visit::Either::Left(visitor) => {
74836                VisitMutAstPath::visit_mut_switch_cases(visitor, node, __ast_path)
74837            }
74838            swc_visit::Either::Right(visitor) => {
74839                VisitMutAstPath::visit_mut_switch_cases(visitor, node, __ast_path)
74840            }
74841        }
74842    }
74843
74844    #[inline]
74845    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt, __ast_path: &mut AstKindPath) {
74846        match self {
74847            swc_visit::Either::Left(visitor) => {
74848                VisitMutAstPath::visit_mut_switch_stmt(visitor, node, __ast_path)
74849            }
74850            swc_visit::Either::Right(visitor) => {
74851                VisitMutAstPath::visit_mut_switch_stmt(visitor, node, __ast_path)
74852            }
74853        }
74854    }
74855
74856    #[inline]
74857    fn visit_mut_syntax_context(
74858        &mut self,
74859        node: &mut swc_common::SyntaxContext,
74860        __ast_path: &mut AstKindPath,
74861    ) {
74862        match self {
74863            swc_visit::Either::Left(visitor) => {
74864                VisitMutAstPath::visit_mut_syntax_context(visitor, node, __ast_path)
74865            }
74866            swc_visit::Either::Right(visitor) => {
74867                VisitMutAstPath::visit_mut_syntax_context(visitor, node, __ast_path)
74868            }
74869        }
74870    }
74871
74872    #[inline]
74873    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl, __ast_path: &mut AstKindPath) {
74874        match self {
74875            swc_visit::Either::Left(visitor) => {
74876                VisitMutAstPath::visit_mut_tagged_tpl(visitor, node, __ast_path)
74877            }
74878            swc_visit::Either::Right(visitor) => {
74879                VisitMutAstPath::visit_mut_tagged_tpl(visitor, node, __ast_path)
74880            }
74881        }
74882    }
74883
74884    #[inline]
74885    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr, __ast_path: &mut AstKindPath) {
74886        match self {
74887            swc_visit::Either::Left(visitor) => {
74888                VisitMutAstPath::visit_mut_this_expr(visitor, node, __ast_path)
74889            }
74890            swc_visit::Either::Right(visitor) => {
74891                VisitMutAstPath::visit_mut_this_expr(visitor, node, __ast_path)
74892            }
74893        }
74894    }
74895
74896    #[inline]
74897    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt, __ast_path: &mut AstKindPath) {
74898        match self {
74899            swc_visit::Either::Left(visitor) => {
74900                VisitMutAstPath::visit_mut_throw_stmt(visitor, node, __ast_path)
74901            }
74902            swc_visit::Either::Right(visitor) => {
74903                VisitMutAstPath::visit_mut_throw_stmt(visitor, node, __ast_path)
74904            }
74905        }
74906    }
74907
74908    #[inline]
74909    fn visit_mut_tpl(&mut self, node: &mut Tpl, __ast_path: &mut AstKindPath) {
74910        match self {
74911            swc_visit::Either::Left(visitor) => {
74912                VisitMutAstPath::visit_mut_tpl(visitor, node, __ast_path)
74913            }
74914            swc_visit::Either::Right(visitor) => {
74915                VisitMutAstPath::visit_mut_tpl(visitor, node, __ast_path)
74916            }
74917        }
74918    }
74919
74920    #[inline]
74921    fn visit_mut_tpl_element(&mut self, node: &mut TplElement, __ast_path: &mut AstKindPath) {
74922        match self {
74923            swc_visit::Either::Left(visitor) => {
74924                VisitMutAstPath::visit_mut_tpl_element(visitor, node, __ast_path)
74925            }
74926            swc_visit::Either::Right(visitor) => {
74927                VisitMutAstPath::visit_mut_tpl_element(visitor, node, __ast_path)
74928            }
74929        }
74930    }
74931
74932    #[inline]
74933    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>, __ast_path: &mut AstKindPath) {
74934        match self {
74935            swc_visit::Either::Left(visitor) => {
74936                VisitMutAstPath::visit_mut_tpl_elements(visitor, node, __ast_path)
74937            }
74938            swc_visit::Either::Right(visitor) => {
74939                VisitMutAstPath::visit_mut_tpl_elements(visitor, node, __ast_path)
74940            }
74941        }
74942    }
74943
74944    #[inline]
74945    fn visit_mut_true_plus_minus(
74946        &mut self,
74947        node: &mut TruePlusMinus,
74948        __ast_path: &mut AstKindPath,
74949    ) {
74950        match self {
74951            swc_visit::Either::Left(visitor) => {
74952                VisitMutAstPath::visit_mut_true_plus_minus(visitor, node, __ast_path)
74953            }
74954            swc_visit::Either::Right(visitor) => {
74955                VisitMutAstPath::visit_mut_true_plus_minus(visitor, node, __ast_path)
74956            }
74957        }
74958    }
74959
74960    #[inline]
74961    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt, __ast_path: &mut AstKindPath) {
74962        match self {
74963            swc_visit::Either::Left(visitor) => {
74964                VisitMutAstPath::visit_mut_try_stmt(visitor, node, __ast_path)
74965            }
74966            swc_visit::Either::Right(visitor) => {
74967                VisitMutAstPath::visit_mut_try_stmt(visitor, node, __ast_path)
74968            }
74969        }
74970    }
74971
74972    #[inline]
74973    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType, __ast_path: &mut AstKindPath) {
74974        match self {
74975            swc_visit::Either::Left(visitor) => {
74976                VisitMutAstPath::visit_mut_ts_array_type(visitor, node, __ast_path)
74977            }
74978            swc_visit::Either::Right(visitor) => {
74979                VisitMutAstPath::visit_mut_ts_array_type(visitor, node, __ast_path)
74980            }
74981        }
74982    }
74983
74984    #[inline]
74985    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr, __ast_path: &mut AstKindPath) {
74986        match self {
74987            swc_visit::Either::Left(visitor) => {
74988                VisitMutAstPath::visit_mut_ts_as_expr(visitor, node, __ast_path)
74989            }
74990            swc_visit::Either::Right(visitor) => {
74991                VisitMutAstPath::visit_mut_ts_as_expr(visitor, node, __ast_path)
74992            }
74993        }
74994    }
74995
74996    #[inline]
74997    fn visit_mut_ts_call_signature_decl(
74998        &mut self,
74999        node: &mut TsCallSignatureDecl,
75000        __ast_path: &mut AstKindPath,
75001    ) {
75002        match self {
75003            swc_visit::Either::Left(visitor) => {
75004                VisitMutAstPath::visit_mut_ts_call_signature_decl(visitor, node, __ast_path)
75005            }
75006            swc_visit::Either::Right(visitor) => {
75007                VisitMutAstPath::visit_mut_ts_call_signature_decl(visitor, node, __ast_path)
75008            }
75009        }
75010    }
75011
75012    #[inline]
75013    fn visit_mut_ts_conditional_type(
75014        &mut self,
75015        node: &mut TsConditionalType,
75016        __ast_path: &mut AstKindPath,
75017    ) {
75018        match self {
75019            swc_visit::Either::Left(visitor) => {
75020                VisitMutAstPath::visit_mut_ts_conditional_type(visitor, node, __ast_path)
75021            }
75022            swc_visit::Either::Right(visitor) => {
75023                VisitMutAstPath::visit_mut_ts_conditional_type(visitor, node, __ast_path)
75024            }
75025        }
75026    }
75027
75028    #[inline]
75029    fn visit_mut_ts_const_assertion(
75030        &mut self,
75031        node: &mut TsConstAssertion,
75032        __ast_path: &mut AstKindPath,
75033    ) {
75034        match self {
75035            swc_visit::Either::Left(visitor) => {
75036                VisitMutAstPath::visit_mut_ts_const_assertion(visitor, node, __ast_path)
75037            }
75038            swc_visit::Either::Right(visitor) => {
75039                VisitMutAstPath::visit_mut_ts_const_assertion(visitor, node, __ast_path)
75040            }
75041        }
75042    }
75043
75044    #[inline]
75045    fn visit_mut_ts_construct_signature_decl(
75046        &mut self,
75047        node: &mut TsConstructSignatureDecl,
75048        __ast_path: &mut AstKindPath,
75049    ) {
75050        match self {
75051            swc_visit::Either::Left(visitor) => {
75052                VisitMutAstPath::visit_mut_ts_construct_signature_decl(visitor, node, __ast_path)
75053            }
75054            swc_visit::Either::Right(visitor) => {
75055                VisitMutAstPath::visit_mut_ts_construct_signature_decl(visitor, node, __ast_path)
75056            }
75057        }
75058    }
75059
75060    #[inline]
75061    fn visit_mut_ts_constructor_type(
75062        &mut self,
75063        node: &mut TsConstructorType,
75064        __ast_path: &mut AstKindPath,
75065    ) {
75066        match self {
75067            swc_visit::Either::Left(visitor) => {
75068                VisitMutAstPath::visit_mut_ts_constructor_type(visitor, node, __ast_path)
75069            }
75070            swc_visit::Either::Right(visitor) => {
75071                VisitMutAstPath::visit_mut_ts_constructor_type(visitor, node, __ast_path)
75072            }
75073        }
75074    }
75075
75076    #[inline]
75077    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName, __ast_path: &mut AstKindPath) {
75078        match self {
75079            swc_visit::Either::Left(visitor) => {
75080                VisitMutAstPath::visit_mut_ts_entity_name(visitor, node, __ast_path)
75081            }
75082            swc_visit::Either::Right(visitor) => {
75083                VisitMutAstPath::visit_mut_ts_entity_name(visitor, node, __ast_path)
75084            }
75085        }
75086    }
75087
75088    #[inline]
75089    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl, __ast_path: &mut AstKindPath) {
75090        match self {
75091            swc_visit::Either::Left(visitor) => {
75092                VisitMutAstPath::visit_mut_ts_enum_decl(visitor, node, __ast_path)
75093            }
75094            swc_visit::Either::Right(visitor) => {
75095                VisitMutAstPath::visit_mut_ts_enum_decl(visitor, node, __ast_path)
75096            }
75097        }
75098    }
75099
75100    #[inline]
75101    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember, __ast_path: &mut AstKindPath) {
75102        match self {
75103            swc_visit::Either::Left(visitor) => {
75104                VisitMutAstPath::visit_mut_ts_enum_member(visitor, node, __ast_path)
75105            }
75106            swc_visit::Either::Right(visitor) => {
75107                VisitMutAstPath::visit_mut_ts_enum_member(visitor, node, __ast_path)
75108            }
75109        }
75110    }
75111
75112    #[inline]
75113    fn visit_mut_ts_enum_member_id(
75114        &mut self,
75115        node: &mut TsEnumMemberId,
75116        __ast_path: &mut AstKindPath,
75117    ) {
75118        match self {
75119            swc_visit::Either::Left(visitor) => {
75120                VisitMutAstPath::visit_mut_ts_enum_member_id(visitor, node, __ast_path)
75121            }
75122            swc_visit::Either::Right(visitor) => {
75123                VisitMutAstPath::visit_mut_ts_enum_member_id(visitor, node, __ast_path)
75124            }
75125        }
75126    }
75127
75128    #[inline]
75129    fn visit_mut_ts_enum_members(
75130        &mut self,
75131        node: &mut Vec<TsEnumMember>,
75132        __ast_path: &mut AstKindPath,
75133    ) {
75134        match self {
75135            swc_visit::Either::Left(visitor) => {
75136                VisitMutAstPath::visit_mut_ts_enum_members(visitor, node, __ast_path)
75137            }
75138            swc_visit::Either::Right(visitor) => {
75139                VisitMutAstPath::visit_mut_ts_enum_members(visitor, node, __ast_path)
75140            }
75141        }
75142    }
75143
75144    #[inline]
75145    fn visit_mut_ts_export_assignment(
75146        &mut self,
75147        node: &mut TsExportAssignment,
75148        __ast_path: &mut AstKindPath,
75149    ) {
75150        match self {
75151            swc_visit::Either::Left(visitor) => {
75152                VisitMutAstPath::visit_mut_ts_export_assignment(visitor, node, __ast_path)
75153            }
75154            swc_visit::Either::Right(visitor) => {
75155                VisitMutAstPath::visit_mut_ts_export_assignment(visitor, node, __ast_path)
75156            }
75157        }
75158    }
75159
75160    #[inline]
75161    fn visit_mut_ts_expr_with_type_args(
75162        &mut self,
75163        node: &mut TsExprWithTypeArgs,
75164        __ast_path: &mut AstKindPath,
75165    ) {
75166        match self {
75167            swc_visit::Either::Left(visitor) => {
75168                VisitMutAstPath::visit_mut_ts_expr_with_type_args(visitor, node, __ast_path)
75169            }
75170            swc_visit::Either::Right(visitor) => {
75171                VisitMutAstPath::visit_mut_ts_expr_with_type_args(visitor, node, __ast_path)
75172            }
75173        }
75174    }
75175
75176    #[inline]
75177    fn visit_mut_ts_expr_with_type_argss(
75178        &mut self,
75179        node: &mut Vec<TsExprWithTypeArgs>,
75180        __ast_path: &mut AstKindPath,
75181    ) {
75182        match self {
75183            swc_visit::Either::Left(visitor) => {
75184                VisitMutAstPath::visit_mut_ts_expr_with_type_argss(visitor, node, __ast_path)
75185            }
75186            swc_visit::Either::Right(visitor) => {
75187                VisitMutAstPath::visit_mut_ts_expr_with_type_argss(visitor, node, __ast_path)
75188            }
75189        }
75190    }
75191
75192    #[inline]
75193    fn visit_mut_ts_external_module_ref(
75194        &mut self,
75195        node: &mut TsExternalModuleRef,
75196        __ast_path: &mut AstKindPath,
75197    ) {
75198        match self {
75199            swc_visit::Either::Left(visitor) => {
75200                VisitMutAstPath::visit_mut_ts_external_module_ref(visitor, node, __ast_path)
75201            }
75202            swc_visit::Either::Right(visitor) => {
75203                VisitMutAstPath::visit_mut_ts_external_module_ref(visitor, node, __ast_path)
75204            }
75205        }
75206    }
75207
75208    #[inline]
75209    fn visit_mut_ts_fn_or_constructor_type(
75210        &mut self,
75211        node: &mut TsFnOrConstructorType,
75212        __ast_path: &mut AstKindPath,
75213    ) {
75214        match self {
75215            swc_visit::Either::Left(visitor) => {
75216                VisitMutAstPath::visit_mut_ts_fn_or_constructor_type(visitor, node, __ast_path)
75217            }
75218            swc_visit::Either::Right(visitor) => {
75219                VisitMutAstPath::visit_mut_ts_fn_or_constructor_type(visitor, node, __ast_path)
75220            }
75221        }
75222    }
75223
75224    #[inline]
75225    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam, __ast_path: &mut AstKindPath) {
75226        match self {
75227            swc_visit::Either::Left(visitor) => {
75228                VisitMutAstPath::visit_mut_ts_fn_param(visitor, node, __ast_path)
75229            }
75230            swc_visit::Either::Right(visitor) => {
75231                VisitMutAstPath::visit_mut_ts_fn_param(visitor, node, __ast_path)
75232            }
75233        }
75234    }
75235
75236    #[inline]
75237    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>, __ast_path: &mut AstKindPath) {
75238        match self {
75239            swc_visit::Either::Left(visitor) => {
75240                VisitMutAstPath::visit_mut_ts_fn_params(visitor, node, __ast_path)
75241            }
75242            swc_visit::Either::Right(visitor) => {
75243                VisitMutAstPath::visit_mut_ts_fn_params(visitor, node, __ast_path)
75244            }
75245        }
75246    }
75247
75248    #[inline]
75249    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType, __ast_path: &mut AstKindPath) {
75250        match self {
75251            swc_visit::Either::Left(visitor) => {
75252                VisitMutAstPath::visit_mut_ts_fn_type(visitor, node, __ast_path)
75253            }
75254            swc_visit::Either::Right(visitor) => {
75255                VisitMutAstPath::visit_mut_ts_fn_type(visitor, node, __ast_path)
75256            }
75257        }
75258    }
75259
75260    #[inline]
75261    fn visit_mut_ts_getter_signature(
75262        &mut self,
75263        node: &mut TsGetterSignature,
75264        __ast_path: &mut AstKindPath,
75265    ) {
75266        match self {
75267            swc_visit::Either::Left(visitor) => {
75268                VisitMutAstPath::visit_mut_ts_getter_signature(visitor, node, __ast_path)
75269            }
75270            swc_visit::Either::Right(visitor) => {
75271                VisitMutAstPath::visit_mut_ts_getter_signature(visitor, node, __ast_path)
75272            }
75273        }
75274    }
75275
75276    #[inline]
75277    fn visit_mut_ts_import_call_options(
75278        &mut self,
75279        node: &mut TsImportCallOptions,
75280        __ast_path: &mut AstKindPath,
75281    ) {
75282        match self {
75283            swc_visit::Either::Left(visitor) => {
75284                VisitMutAstPath::visit_mut_ts_import_call_options(visitor, node, __ast_path)
75285            }
75286            swc_visit::Either::Right(visitor) => {
75287                VisitMutAstPath::visit_mut_ts_import_call_options(visitor, node, __ast_path)
75288            }
75289        }
75290    }
75291
75292    #[inline]
75293    fn visit_mut_ts_import_equals_decl(
75294        &mut self,
75295        node: &mut TsImportEqualsDecl,
75296        __ast_path: &mut AstKindPath,
75297    ) {
75298        match self {
75299            swc_visit::Either::Left(visitor) => {
75300                VisitMutAstPath::visit_mut_ts_import_equals_decl(visitor, node, __ast_path)
75301            }
75302            swc_visit::Either::Right(visitor) => {
75303                VisitMutAstPath::visit_mut_ts_import_equals_decl(visitor, node, __ast_path)
75304            }
75305        }
75306    }
75307
75308    #[inline]
75309    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType, __ast_path: &mut AstKindPath) {
75310        match self {
75311            swc_visit::Either::Left(visitor) => {
75312                VisitMutAstPath::visit_mut_ts_import_type(visitor, node, __ast_path)
75313            }
75314            swc_visit::Either::Right(visitor) => {
75315                VisitMutAstPath::visit_mut_ts_import_type(visitor, node, __ast_path)
75316            }
75317        }
75318    }
75319
75320    #[inline]
75321    fn visit_mut_ts_index_signature(
75322        &mut self,
75323        node: &mut TsIndexSignature,
75324        __ast_path: &mut AstKindPath,
75325    ) {
75326        match self {
75327            swc_visit::Either::Left(visitor) => {
75328                VisitMutAstPath::visit_mut_ts_index_signature(visitor, node, __ast_path)
75329            }
75330            swc_visit::Either::Right(visitor) => {
75331                VisitMutAstPath::visit_mut_ts_index_signature(visitor, node, __ast_path)
75332            }
75333        }
75334    }
75335
75336    #[inline]
75337    fn visit_mut_ts_indexed_access_type(
75338        &mut self,
75339        node: &mut TsIndexedAccessType,
75340        __ast_path: &mut AstKindPath,
75341    ) {
75342        match self {
75343            swc_visit::Either::Left(visitor) => {
75344                VisitMutAstPath::visit_mut_ts_indexed_access_type(visitor, node, __ast_path)
75345            }
75346            swc_visit::Either::Right(visitor) => {
75347                VisitMutAstPath::visit_mut_ts_indexed_access_type(visitor, node, __ast_path)
75348            }
75349        }
75350    }
75351
75352    #[inline]
75353    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType, __ast_path: &mut AstKindPath) {
75354        match self {
75355            swc_visit::Either::Left(visitor) => {
75356                VisitMutAstPath::visit_mut_ts_infer_type(visitor, node, __ast_path)
75357            }
75358            swc_visit::Either::Right(visitor) => {
75359                VisitMutAstPath::visit_mut_ts_infer_type(visitor, node, __ast_path)
75360            }
75361        }
75362    }
75363
75364    #[inline]
75365    fn visit_mut_ts_instantiation(
75366        &mut self,
75367        node: &mut TsInstantiation,
75368        __ast_path: &mut AstKindPath,
75369    ) {
75370        match self {
75371            swc_visit::Either::Left(visitor) => {
75372                VisitMutAstPath::visit_mut_ts_instantiation(visitor, node, __ast_path)
75373            }
75374            swc_visit::Either::Right(visitor) => {
75375                VisitMutAstPath::visit_mut_ts_instantiation(visitor, node, __ast_path)
75376            }
75377        }
75378    }
75379
75380    #[inline]
75381    fn visit_mut_ts_interface_body(
75382        &mut self,
75383        node: &mut TsInterfaceBody,
75384        __ast_path: &mut AstKindPath,
75385    ) {
75386        match self {
75387            swc_visit::Either::Left(visitor) => {
75388                VisitMutAstPath::visit_mut_ts_interface_body(visitor, node, __ast_path)
75389            }
75390            swc_visit::Either::Right(visitor) => {
75391                VisitMutAstPath::visit_mut_ts_interface_body(visitor, node, __ast_path)
75392            }
75393        }
75394    }
75395
75396    #[inline]
75397    fn visit_mut_ts_interface_decl(
75398        &mut self,
75399        node: &mut TsInterfaceDecl,
75400        __ast_path: &mut AstKindPath,
75401    ) {
75402        match self {
75403            swc_visit::Either::Left(visitor) => {
75404                VisitMutAstPath::visit_mut_ts_interface_decl(visitor, node, __ast_path)
75405            }
75406            swc_visit::Either::Right(visitor) => {
75407                VisitMutAstPath::visit_mut_ts_interface_decl(visitor, node, __ast_path)
75408            }
75409        }
75410    }
75411
75412    #[inline]
75413    fn visit_mut_ts_intersection_type(
75414        &mut self,
75415        node: &mut TsIntersectionType,
75416        __ast_path: &mut AstKindPath,
75417    ) {
75418        match self {
75419            swc_visit::Either::Left(visitor) => {
75420                VisitMutAstPath::visit_mut_ts_intersection_type(visitor, node, __ast_path)
75421            }
75422            swc_visit::Either::Right(visitor) => {
75423                VisitMutAstPath::visit_mut_ts_intersection_type(visitor, node, __ast_path)
75424            }
75425        }
75426    }
75427
75428    #[inline]
75429    fn visit_mut_ts_keyword_type(
75430        &mut self,
75431        node: &mut TsKeywordType,
75432        __ast_path: &mut AstKindPath,
75433    ) {
75434        match self {
75435            swc_visit::Either::Left(visitor) => {
75436                VisitMutAstPath::visit_mut_ts_keyword_type(visitor, node, __ast_path)
75437            }
75438            swc_visit::Either::Right(visitor) => {
75439                VisitMutAstPath::visit_mut_ts_keyword_type(visitor, node, __ast_path)
75440            }
75441        }
75442    }
75443
75444    #[inline]
75445    fn visit_mut_ts_keyword_type_kind(
75446        &mut self,
75447        node: &mut TsKeywordTypeKind,
75448        __ast_path: &mut AstKindPath,
75449    ) {
75450        match self {
75451            swc_visit::Either::Left(visitor) => {
75452                VisitMutAstPath::visit_mut_ts_keyword_type_kind(visitor, node, __ast_path)
75453            }
75454            swc_visit::Either::Right(visitor) => {
75455                VisitMutAstPath::visit_mut_ts_keyword_type_kind(visitor, node, __ast_path)
75456            }
75457        }
75458    }
75459
75460    #[inline]
75461    fn visit_mut_ts_lit(&mut self, node: &mut TsLit, __ast_path: &mut AstKindPath) {
75462        match self {
75463            swc_visit::Either::Left(visitor) => {
75464                VisitMutAstPath::visit_mut_ts_lit(visitor, node, __ast_path)
75465            }
75466            swc_visit::Either::Right(visitor) => {
75467                VisitMutAstPath::visit_mut_ts_lit(visitor, node, __ast_path)
75468            }
75469        }
75470    }
75471
75472    #[inline]
75473    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType, __ast_path: &mut AstKindPath) {
75474        match self {
75475            swc_visit::Either::Left(visitor) => {
75476                VisitMutAstPath::visit_mut_ts_lit_type(visitor, node, __ast_path)
75477            }
75478            swc_visit::Either::Right(visitor) => {
75479                VisitMutAstPath::visit_mut_ts_lit_type(visitor, node, __ast_path)
75480            }
75481        }
75482    }
75483
75484    #[inline]
75485    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType, __ast_path: &mut AstKindPath) {
75486        match self {
75487            swc_visit::Either::Left(visitor) => {
75488                VisitMutAstPath::visit_mut_ts_mapped_type(visitor, node, __ast_path)
75489            }
75490            swc_visit::Either::Right(visitor) => {
75491                VisitMutAstPath::visit_mut_ts_mapped_type(visitor, node, __ast_path)
75492            }
75493        }
75494    }
75495
75496    #[inline]
75497    fn visit_mut_ts_method_signature(
75498        &mut self,
75499        node: &mut TsMethodSignature,
75500        __ast_path: &mut AstKindPath,
75501    ) {
75502        match self {
75503            swc_visit::Either::Left(visitor) => {
75504                VisitMutAstPath::visit_mut_ts_method_signature(visitor, node, __ast_path)
75505            }
75506            swc_visit::Either::Right(visitor) => {
75507                VisitMutAstPath::visit_mut_ts_method_signature(visitor, node, __ast_path)
75508            }
75509        }
75510    }
75511
75512    #[inline]
75513    fn visit_mut_ts_module_block(
75514        &mut self,
75515        node: &mut TsModuleBlock,
75516        __ast_path: &mut AstKindPath,
75517    ) {
75518        match self {
75519            swc_visit::Either::Left(visitor) => {
75520                VisitMutAstPath::visit_mut_ts_module_block(visitor, node, __ast_path)
75521            }
75522            swc_visit::Either::Right(visitor) => {
75523                VisitMutAstPath::visit_mut_ts_module_block(visitor, node, __ast_path)
75524            }
75525        }
75526    }
75527
75528    #[inline]
75529    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl, __ast_path: &mut AstKindPath) {
75530        match self {
75531            swc_visit::Either::Left(visitor) => {
75532                VisitMutAstPath::visit_mut_ts_module_decl(visitor, node, __ast_path)
75533            }
75534            swc_visit::Either::Right(visitor) => {
75535                VisitMutAstPath::visit_mut_ts_module_decl(visitor, node, __ast_path)
75536            }
75537        }
75538    }
75539
75540    #[inline]
75541    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName, __ast_path: &mut AstKindPath) {
75542        match self {
75543            swc_visit::Either::Left(visitor) => {
75544                VisitMutAstPath::visit_mut_ts_module_name(visitor, node, __ast_path)
75545            }
75546            swc_visit::Either::Right(visitor) => {
75547                VisitMutAstPath::visit_mut_ts_module_name(visitor, node, __ast_path)
75548            }
75549        }
75550    }
75551
75552    #[inline]
75553    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef, __ast_path: &mut AstKindPath) {
75554        match self {
75555            swc_visit::Either::Left(visitor) => {
75556                VisitMutAstPath::visit_mut_ts_module_ref(visitor, node, __ast_path)
75557            }
75558            swc_visit::Either::Right(visitor) => {
75559                VisitMutAstPath::visit_mut_ts_module_ref(visitor, node, __ast_path)
75560            }
75561        }
75562    }
75563
75564    #[inline]
75565    fn visit_mut_ts_namespace_body(
75566        &mut self,
75567        node: &mut TsNamespaceBody,
75568        __ast_path: &mut AstKindPath,
75569    ) {
75570        match self {
75571            swc_visit::Either::Left(visitor) => {
75572                VisitMutAstPath::visit_mut_ts_namespace_body(visitor, node, __ast_path)
75573            }
75574            swc_visit::Either::Right(visitor) => {
75575                VisitMutAstPath::visit_mut_ts_namespace_body(visitor, node, __ast_path)
75576            }
75577        }
75578    }
75579
75580    #[inline]
75581    fn visit_mut_ts_namespace_decl(
75582        &mut self,
75583        node: &mut TsNamespaceDecl,
75584        __ast_path: &mut AstKindPath,
75585    ) {
75586        match self {
75587            swc_visit::Either::Left(visitor) => {
75588                VisitMutAstPath::visit_mut_ts_namespace_decl(visitor, node, __ast_path)
75589            }
75590            swc_visit::Either::Right(visitor) => {
75591                VisitMutAstPath::visit_mut_ts_namespace_decl(visitor, node, __ast_path)
75592            }
75593        }
75594    }
75595
75596    #[inline]
75597    fn visit_mut_ts_namespace_export_decl(
75598        &mut self,
75599        node: &mut TsNamespaceExportDecl,
75600        __ast_path: &mut AstKindPath,
75601    ) {
75602        match self {
75603            swc_visit::Either::Left(visitor) => {
75604                VisitMutAstPath::visit_mut_ts_namespace_export_decl(visitor, node, __ast_path)
75605            }
75606            swc_visit::Either::Right(visitor) => {
75607                VisitMutAstPath::visit_mut_ts_namespace_export_decl(visitor, node, __ast_path)
75608            }
75609        }
75610    }
75611
75612    #[inline]
75613    fn visit_mut_ts_non_null_expr(
75614        &mut self,
75615        node: &mut TsNonNullExpr,
75616        __ast_path: &mut AstKindPath,
75617    ) {
75618        match self {
75619            swc_visit::Either::Left(visitor) => {
75620                VisitMutAstPath::visit_mut_ts_non_null_expr(visitor, node, __ast_path)
75621            }
75622            swc_visit::Either::Right(visitor) => {
75623                VisitMutAstPath::visit_mut_ts_non_null_expr(visitor, node, __ast_path)
75624            }
75625        }
75626    }
75627
75628    #[inline]
75629    fn visit_mut_ts_optional_type(
75630        &mut self,
75631        node: &mut TsOptionalType,
75632        __ast_path: &mut AstKindPath,
75633    ) {
75634        match self {
75635            swc_visit::Either::Left(visitor) => {
75636                VisitMutAstPath::visit_mut_ts_optional_type(visitor, node, __ast_path)
75637            }
75638            swc_visit::Either::Right(visitor) => {
75639                VisitMutAstPath::visit_mut_ts_optional_type(visitor, node, __ast_path)
75640            }
75641        }
75642    }
75643
75644    #[inline]
75645    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp, __ast_path: &mut AstKindPath) {
75646        match self {
75647            swc_visit::Either::Left(visitor) => {
75648                VisitMutAstPath::visit_mut_ts_param_prop(visitor, node, __ast_path)
75649            }
75650            swc_visit::Either::Right(visitor) => {
75651                VisitMutAstPath::visit_mut_ts_param_prop(visitor, node, __ast_path)
75652            }
75653        }
75654    }
75655
75656    #[inline]
75657    fn visit_mut_ts_param_prop_param(
75658        &mut self,
75659        node: &mut TsParamPropParam,
75660        __ast_path: &mut AstKindPath,
75661    ) {
75662        match self {
75663            swc_visit::Either::Left(visitor) => {
75664                VisitMutAstPath::visit_mut_ts_param_prop_param(visitor, node, __ast_path)
75665            }
75666            swc_visit::Either::Right(visitor) => {
75667                VisitMutAstPath::visit_mut_ts_param_prop_param(visitor, node, __ast_path)
75668            }
75669        }
75670    }
75671
75672    #[inline]
75673    fn visit_mut_ts_parenthesized_type(
75674        &mut self,
75675        node: &mut TsParenthesizedType,
75676        __ast_path: &mut AstKindPath,
75677    ) {
75678        match self {
75679            swc_visit::Either::Left(visitor) => {
75680                VisitMutAstPath::visit_mut_ts_parenthesized_type(visitor, node, __ast_path)
75681            }
75682            swc_visit::Either::Right(visitor) => {
75683                VisitMutAstPath::visit_mut_ts_parenthesized_type(visitor, node, __ast_path)
75684            }
75685        }
75686    }
75687
75688    #[inline]
75689    fn visit_mut_ts_property_signature(
75690        &mut self,
75691        node: &mut TsPropertySignature,
75692        __ast_path: &mut AstKindPath,
75693    ) {
75694        match self {
75695            swc_visit::Either::Left(visitor) => {
75696                VisitMutAstPath::visit_mut_ts_property_signature(visitor, node, __ast_path)
75697            }
75698            swc_visit::Either::Right(visitor) => {
75699                VisitMutAstPath::visit_mut_ts_property_signature(visitor, node, __ast_path)
75700            }
75701        }
75702    }
75703
75704    #[inline]
75705    fn visit_mut_ts_qualified_name(
75706        &mut self,
75707        node: &mut TsQualifiedName,
75708        __ast_path: &mut AstKindPath,
75709    ) {
75710        match self {
75711            swc_visit::Either::Left(visitor) => {
75712                VisitMutAstPath::visit_mut_ts_qualified_name(visitor, node, __ast_path)
75713            }
75714            swc_visit::Either::Right(visitor) => {
75715                VisitMutAstPath::visit_mut_ts_qualified_name(visitor, node, __ast_path)
75716            }
75717        }
75718    }
75719
75720    #[inline]
75721    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType, __ast_path: &mut AstKindPath) {
75722        match self {
75723            swc_visit::Either::Left(visitor) => {
75724                VisitMutAstPath::visit_mut_ts_rest_type(visitor, node, __ast_path)
75725            }
75726            swc_visit::Either::Right(visitor) => {
75727                VisitMutAstPath::visit_mut_ts_rest_type(visitor, node, __ast_path)
75728            }
75729        }
75730    }
75731
75732    #[inline]
75733    fn visit_mut_ts_satisfies_expr(
75734        &mut self,
75735        node: &mut TsSatisfiesExpr,
75736        __ast_path: &mut AstKindPath,
75737    ) {
75738        match self {
75739            swc_visit::Either::Left(visitor) => {
75740                VisitMutAstPath::visit_mut_ts_satisfies_expr(visitor, node, __ast_path)
75741            }
75742            swc_visit::Either::Right(visitor) => {
75743                VisitMutAstPath::visit_mut_ts_satisfies_expr(visitor, node, __ast_path)
75744            }
75745        }
75746    }
75747
75748    #[inline]
75749    fn visit_mut_ts_setter_signature(
75750        &mut self,
75751        node: &mut TsSetterSignature,
75752        __ast_path: &mut AstKindPath,
75753    ) {
75754        match self {
75755            swc_visit::Either::Left(visitor) => {
75756                VisitMutAstPath::visit_mut_ts_setter_signature(visitor, node, __ast_path)
75757            }
75758            swc_visit::Either::Right(visitor) => {
75759                VisitMutAstPath::visit_mut_ts_setter_signature(visitor, node, __ast_path)
75760            }
75761        }
75762    }
75763
75764    #[inline]
75765    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType, __ast_path: &mut AstKindPath) {
75766        match self {
75767            swc_visit::Either::Left(visitor) => {
75768                VisitMutAstPath::visit_mut_ts_this_type(visitor, node, __ast_path)
75769            }
75770            swc_visit::Either::Right(visitor) => {
75771                VisitMutAstPath::visit_mut_ts_this_type(visitor, node, __ast_path)
75772            }
75773        }
75774    }
75775
75776    #[inline]
75777    fn visit_mut_ts_this_type_or_ident(
75778        &mut self,
75779        node: &mut TsThisTypeOrIdent,
75780        __ast_path: &mut AstKindPath,
75781    ) {
75782        match self {
75783            swc_visit::Either::Left(visitor) => {
75784                VisitMutAstPath::visit_mut_ts_this_type_or_ident(visitor, node, __ast_path)
75785            }
75786            swc_visit::Either::Right(visitor) => {
75787                VisitMutAstPath::visit_mut_ts_this_type_or_ident(visitor, node, __ast_path)
75788            }
75789        }
75790    }
75791
75792    #[inline]
75793    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType, __ast_path: &mut AstKindPath) {
75794        match self {
75795            swc_visit::Either::Left(visitor) => {
75796                VisitMutAstPath::visit_mut_ts_tpl_lit_type(visitor, node, __ast_path)
75797            }
75798            swc_visit::Either::Right(visitor) => {
75799                VisitMutAstPath::visit_mut_ts_tpl_lit_type(visitor, node, __ast_path)
75800            }
75801        }
75802    }
75803
75804    #[inline]
75805    fn visit_mut_ts_tuple_element(
75806        &mut self,
75807        node: &mut TsTupleElement,
75808        __ast_path: &mut AstKindPath,
75809    ) {
75810        match self {
75811            swc_visit::Either::Left(visitor) => {
75812                VisitMutAstPath::visit_mut_ts_tuple_element(visitor, node, __ast_path)
75813            }
75814            swc_visit::Either::Right(visitor) => {
75815                VisitMutAstPath::visit_mut_ts_tuple_element(visitor, node, __ast_path)
75816            }
75817        }
75818    }
75819
75820    #[inline]
75821    fn visit_mut_ts_tuple_elements(
75822        &mut self,
75823        node: &mut Vec<TsTupleElement>,
75824        __ast_path: &mut AstKindPath,
75825    ) {
75826        match self {
75827            swc_visit::Either::Left(visitor) => {
75828                VisitMutAstPath::visit_mut_ts_tuple_elements(visitor, node, __ast_path)
75829            }
75830            swc_visit::Either::Right(visitor) => {
75831                VisitMutAstPath::visit_mut_ts_tuple_elements(visitor, node, __ast_path)
75832            }
75833        }
75834    }
75835
75836    #[inline]
75837    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType, __ast_path: &mut AstKindPath) {
75838        match self {
75839            swc_visit::Either::Left(visitor) => {
75840                VisitMutAstPath::visit_mut_ts_tuple_type(visitor, node, __ast_path)
75841            }
75842            swc_visit::Either::Right(visitor) => {
75843                VisitMutAstPath::visit_mut_ts_tuple_type(visitor, node, __ast_path)
75844            }
75845        }
75846    }
75847
75848    #[inline]
75849    fn visit_mut_ts_type(&mut self, node: &mut TsType, __ast_path: &mut AstKindPath) {
75850        match self {
75851            swc_visit::Either::Left(visitor) => {
75852                VisitMutAstPath::visit_mut_ts_type(visitor, node, __ast_path)
75853            }
75854            swc_visit::Either::Right(visitor) => {
75855                VisitMutAstPath::visit_mut_ts_type(visitor, node, __ast_path)
75856            }
75857        }
75858    }
75859
75860    #[inline]
75861    fn visit_mut_ts_type_alias_decl(
75862        &mut self,
75863        node: &mut TsTypeAliasDecl,
75864        __ast_path: &mut AstKindPath,
75865    ) {
75866        match self {
75867            swc_visit::Either::Left(visitor) => {
75868                VisitMutAstPath::visit_mut_ts_type_alias_decl(visitor, node, __ast_path)
75869            }
75870            swc_visit::Either::Right(visitor) => {
75871                VisitMutAstPath::visit_mut_ts_type_alias_decl(visitor, node, __ast_path)
75872            }
75873        }
75874    }
75875
75876    #[inline]
75877    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn, __ast_path: &mut AstKindPath) {
75878        match self {
75879            swc_visit::Either::Left(visitor) => {
75880                VisitMutAstPath::visit_mut_ts_type_ann(visitor, node, __ast_path)
75881            }
75882            swc_visit::Either::Right(visitor) => {
75883                VisitMutAstPath::visit_mut_ts_type_ann(visitor, node, __ast_path)
75884            }
75885        }
75886    }
75887
75888    #[inline]
75889    fn visit_mut_ts_type_assertion(
75890        &mut self,
75891        node: &mut TsTypeAssertion,
75892        __ast_path: &mut AstKindPath,
75893    ) {
75894        match self {
75895            swc_visit::Either::Left(visitor) => {
75896                VisitMutAstPath::visit_mut_ts_type_assertion(visitor, node, __ast_path)
75897            }
75898            swc_visit::Either::Right(visitor) => {
75899                VisitMutAstPath::visit_mut_ts_type_assertion(visitor, node, __ast_path)
75900            }
75901        }
75902    }
75903
75904    #[inline]
75905    fn visit_mut_ts_type_element(
75906        &mut self,
75907        node: &mut TsTypeElement,
75908        __ast_path: &mut AstKindPath,
75909    ) {
75910        match self {
75911            swc_visit::Either::Left(visitor) => {
75912                VisitMutAstPath::visit_mut_ts_type_element(visitor, node, __ast_path)
75913            }
75914            swc_visit::Either::Right(visitor) => {
75915                VisitMutAstPath::visit_mut_ts_type_element(visitor, node, __ast_path)
75916            }
75917        }
75918    }
75919
75920    #[inline]
75921    fn visit_mut_ts_type_elements(
75922        &mut self,
75923        node: &mut Vec<TsTypeElement>,
75924        __ast_path: &mut AstKindPath,
75925    ) {
75926        match self {
75927            swc_visit::Either::Left(visitor) => {
75928                VisitMutAstPath::visit_mut_ts_type_elements(visitor, node, __ast_path)
75929            }
75930            swc_visit::Either::Right(visitor) => {
75931                VisitMutAstPath::visit_mut_ts_type_elements(visitor, node, __ast_path)
75932            }
75933        }
75934    }
75935
75936    #[inline]
75937    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit, __ast_path: &mut AstKindPath) {
75938        match self {
75939            swc_visit::Either::Left(visitor) => {
75940                VisitMutAstPath::visit_mut_ts_type_lit(visitor, node, __ast_path)
75941            }
75942            swc_visit::Either::Right(visitor) => {
75943                VisitMutAstPath::visit_mut_ts_type_lit(visitor, node, __ast_path)
75944            }
75945        }
75946    }
75947
75948    #[inline]
75949    fn visit_mut_ts_type_operator(
75950        &mut self,
75951        node: &mut TsTypeOperator,
75952        __ast_path: &mut AstKindPath,
75953    ) {
75954        match self {
75955            swc_visit::Either::Left(visitor) => {
75956                VisitMutAstPath::visit_mut_ts_type_operator(visitor, node, __ast_path)
75957            }
75958            swc_visit::Either::Right(visitor) => {
75959                VisitMutAstPath::visit_mut_ts_type_operator(visitor, node, __ast_path)
75960            }
75961        }
75962    }
75963
75964    #[inline]
75965    fn visit_mut_ts_type_operator_op(
75966        &mut self,
75967        node: &mut TsTypeOperatorOp,
75968        __ast_path: &mut AstKindPath,
75969    ) {
75970        match self {
75971            swc_visit::Either::Left(visitor) => {
75972                VisitMutAstPath::visit_mut_ts_type_operator_op(visitor, node, __ast_path)
75973            }
75974            swc_visit::Either::Right(visitor) => {
75975                VisitMutAstPath::visit_mut_ts_type_operator_op(visitor, node, __ast_path)
75976            }
75977        }
75978    }
75979
75980    #[inline]
75981    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam, __ast_path: &mut AstKindPath) {
75982        match self {
75983            swc_visit::Either::Left(visitor) => {
75984                VisitMutAstPath::visit_mut_ts_type_param(visitor, node, __ast_path)
75985            }
75986            swc_visit::Either::Right(visitor) => {
75987                VisitMutAstPath::visit_mut_ts_type_param(visitor, node, __ast_path)
75988            }
75989        }
75990    }
75991
75992    #[inline]
75993    fn visit_mut_ts_type_param_decl(
75994        &mut self,
75995        node: &mut TsTypeParamDecl,
75996        __ast_path: &mut AstKindPath,
75997    ) {
75998        match self {
75999            swc_visit::Either::Left(visitor) => {
76000                VisitMutAstPath::visit_mut_ts_type_param_decl(visitor, node, __ast_path)
76001            }
76002            swc_visit::Either::Right(visitor) => {
76003                VisitMutAstPath::visit_mut_ts_type_param_decl(visitor, node, __ast_path)
76004            }
76005        }
76006    }
76007
76008    #[inline]
76009    fn visit_mut_ts_type_param_instantiation(
76010        &mut self,
76011        node: &mut TsTypeParamInstantiation,
76012        __ast_path: &mut AstKindPath,
76013    ) {
76014        match self {
76015            swc_visit::Either::Left(visitor) => {
76016                VisitMutAstPath::visit_mut_ts_type_param_instantiation(visitor, node, __ast_path)
76017            }
76018            swc_visit::Either::Right(visitor) => {
76019                VisitMutAstPath::visit_mut_ts_type_param_instantiation(visitor, node, __ast_path)
76020            }
76021        }
76022    }
76023
76024    #[inline]
76025    fn visit_mut_ts_type_params(
76026        &mut self,
76027        node: &mut Vec<TsTypeParam>,
76028        __ast_path: &mut AstKindPath,
76029    ) {
76030        match self {
76031            swc_visit::Either::Left(visitor) => {
76032                VisitMutAstPath::visit_mut_ts_type_params(visitor, node, __ast_path)
76033            }
76034            swc_visit::Either::Right(visitor) => {
76035                VisitMutAstPath::visit_mut_ts_type_params(visitor, node, __ast_path)
76036            }
76037        }
76038    }
76039
76040    #[inline]
76041    fn visit_mut_ts_type_predicate(
76042        &mut self,
76043        node: &mut TsTypePredicate,
76044        __ast_path: &mut AstKindPath,
76045    ) {
76046        match self {
76047            swc_visit::Either::Left(visitor) => {
76048                VisitMutAstPath::visit_mut_ts_type_predicate(visitor, node, __ast_path)
76049            }
76050            swc_visit::Either::Right(visitor) => {
76051                VisitMutAstPath::visit_mut_ts_type_predicate(visitor, node, __ast_path)
76052            }
76053        }
76054    }
76055
76056    #[inline]
76057    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery, __ast_path: &mut AstKindPath) {
76058        match self {
76059            swc_visit::Either::Left(visitor) => {
76060                VisitMutAstPath::visit_mut_ts_type_query(visitor, node, __ast_path)
76061            }
76062            swc_visit::Either::Right(visitor) => {
76063                VisitMutAstPath::visit_mut_ts_type_query(visitor, node, __ast_path)
76064            }
76065        }
76066    }
76067
76068    #[inline]
76069    fn visit_mut_ts_type_query_expr(
76070        &mut self,
76071        node: &mut TsTypeQueryExpr,
76072        __ast_path: &mut AstKindPath,
76073    ) {
76074        match self {
76075            swc_visit::Either::Left(visitor) => {
76076                VisitMutAstPath::visit_mut_ts_type_query_expr(visitor, node, __ast_path)
76077            }
76078            swc_visit::Either::Right(visitor) => {
76079                VisitMutAstPath::visit_mut_ts_type_query_expr(visitor, node, __ast_path)
76080            }
76081        }
76082    }
76083
76084    #[inline]
76085    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef, __ast_path: &mut AstKindPath) {
76086        match self {
76087            swc_visit::Either::Left(visitor) => {
76088                VisitMutAstPath::visit_mut_ts_type_ref(visitor, node, __ast_path)
76089            }
76090            swc_visit::Either::Right(visitor) => {
76091                VisitMutAstPath::visit_mut_ts_type_ref(visitor, node, __ast_path)
76092            }
76093        }
76094    }
76095
76096    #[inline]
76097    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>, __ast_path: &mut AstKindPath) {
76098        match self {
76099            swc_visit::Either::Left(visitor) => {
76100                VisitMutAstPath::visit_mut_ts_types(visitor, node, __ast_path)
76101            }
76102            swc_visit::Either::Right(visitor) => {
76103                VisitMutAstPath::visit_mut_ts_types(visitor, node, __ast_path)
76104            }
76105        }
76106    }
76107
76108    #[inline]
76109    fn visit_mut_ts_union_or_intersection_type(
76110        &mut self,
76111        node: &mut TsUnionOrIntersectionType,
76112        __ast_path: &mut AstKindPath,
76113    ) {
76114        match self {
76115            swc_visit::Either::Left(visitor) => {
76116                VisitMutAstPath::visit_mut_ts_union_or_intersection_type(visitor, node, __ast_path)
76117            }
76118            swc_visit::Either::Right(visitor) => {
76119                VisitMutAstPath::visit_mut_ts_union_or_intersection_type(visitor, node, __ast_path)
76120            }
76121        }
76122    }
76123
76124    #[inline]
76125    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType, __ast_path: &mut AstKindPath) {
76126        match self {
76127            swc_visit::Either::Left(visitor) => {
76128                VisitMutAstPath::visit_mut_ts_union_type(visitor, node, __ast_path)
76129            }
76130            swc_visit::Either::Right(visitor) => {
76131                VisitMutAstPath::visit_mut_ts_union_type(visitor, node, __ast_path)
76132            }
76133        }
76134    }
76135
76136    #[inline]
76137    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr, __ast_path: &mut AstKindPath) {
76138        match self {
76139            swc_visit::Either::Left(visitor) => {
76140                VisitMutAstPath::visit_mut_unary_expr(visitor, node, __ast_path)
76141            }
76142            swc_visit::Either::Right(visitor) => {
76143                VisitMutAstPath::visit_mut_unary_expr(visitor, node, __ast_path)
76144            }
76145        }
76146    }
76147
76148    #[inline]
76149    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp, __ast_path: &mut AstKindPath) {
76150        match self {
76151            swc_visit::Either::Left(visitor) => {
76152                VisitMutAstPath::visit_mut_unary_op(visitor, node, __ast_path)
76153            }
76154            swc_visit::Either::Right(visitor) => {
76155                VisitMutAstPath::visit_mut_unary_op(visitor, node, __ast_path)
76156            }
76157        }
76158    }
76159
76160    #[inline]
76161    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr, __ast_path: &mut AstKindPath) {
76162        match self {
76163            swc_visit::Either::Left(visitor) => {
76164                VisitMutAstPath::visit_mut_update_expr(visitor, node, __ast_path)
76165            }
76166            swc_visit::Either::Right(visitor) => {
76167                VisitMutAstPath::visit_mut_update_expr(visitor, node, __ast_path)
76168            }
76169        }
76170    }
76171
76172    #[inline]
76173    fn visit_mut_update_op(&mut self, node: &mut UpdateOp, __ast_path: &mut AstKindPath) {
76174        match self {
76175            swc_visit::Either::Left(visitor) => {
76176                VisitMutAstPath::visit_mut_update_op(visitor, node, __ast_path)
76177            }
76178            swc_visit::Either::Right(visitor) => {
76179                VisitMutAstPath::visit_mut_update_op(visitor, node, __ast_path)
76180            }
76181        }
76182    }
76183
76184    #[inline]
76185    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl, __ast_path: &mut AstKindPath) {
76186        match self {
76187            swc_visit::Either::Left(visitor) => {
76188                VisitMutAstPath::visit_mut_using_decl(visitor, node, __ast_path)
76189            }
76190            swc_visit::Either::Right(visitor) => {
76191                VisitMutAstPath::visit_mut_using_decl(visitor, node, __ast_path)
76192            }
76193        }
76194    }
76195
76196    #[inline]
76197    fn visit_mut_var_decl(&mut self, node: &mut VarDecl, __ast_path: &mut AstKindPath) {
76198        match self {
76199            swc_visit::Either::Left(visitor) => {
76200                VisitMutAstPath::visit_mut_var_decl(visitor, node, __ast_path)
76201            }
76202            swc_visit::Either::Right(visitor) => {
76203                VisitMutAstPath::visit_mut_var_decl(visitor, node, __ast_path)
76204            }
76205        }
76206    }
76207
76208    #[inline]
76209    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind, __ast_path: &mut AstKindPath) {
76210        match self {
76211            swc_visit::Either::Left(visitor) => {
76212                VisitMutAstPath::visit_mut_var_decl_kind(visitor, node, __ast_path)
76213            }
76214            swc_visit::Either::Right(visitor) => {
76215                VisitMutAstPath::visit_mut_var_decl_kind(visitor, node, __ast_path)
76216            }
76217        }
76218    }
76219
76220    #[inline]
76221    fn visit_mut_var_decl_or_expr(
76222        &mut self,
76223        node: &mut VarDeclOrExpr,
76224        __ast_path: &mut AstKindPath,
76225    ) {
76226        match self {
76227            swc_visit::Either::Left(visitor) => {
76228                VisitMutAstPath::visit_mut_var_decl_or_expr(visitor, node, __ast_path)
76229            }
76230            swc_visit::Either::Right(visitor) => {
76231                VisitMutAstPath::visit_mut_var_decl_or_expr(visitor, node, __ast_path)
76232            }
76233        }
76234    }
76235
76236    #[inline]
76237    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator, __ast_path: &mut AstKindPath) {
76238        match self {
76239            swc_visit::Either::Left(visitor) => {
76240                VisitMutAstPath::visit_mut_var_declarator(visitor, node, __ast_path)
76241            }
76242            swc_visit::Either::Right(visitor) => {
76243                VisitMutAstPath::visit_mut_var_declarator(visitor, node, __ast_path)
76244            }
76245        }
76246    }
76247
76248    #[inline]
76249    fn visit_mut_var_declarators(
76250        &mut self,
76251        node: &mut Vec<VarDeclarator>,
76252        __ast_path: &mut AstKindPath,
76253    ) {
76254        match self {
76255            swc_visit::Either::Left(visitor) => {
76256                VisitMutAstPath::visit_mut_var_declarators(visitor, node, __ast_path)
76257            }
76258            swc_visit::Either::Right(visitor) => {
76259                VisitMutAstPath::visit_mut_var_declarators(visitor, node, __ast_path)
76260            }
76261        }
76262    }
76263
76264    #[inline]
76265    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt, __ast_path: &mut AstKindPath) {
76266        match self {
76267            swc_visit::Either::Left(visitor) => {
76268                VisitMutAstPath::visit_mut_while_stmt(visitor, node, __ast_path)
76269            }
76270            swc_visit::Either::Right(visitor) => {
76271                VisitMutAstPath::visit_mut_while_stmt(visitor, node, __ast_path)
76272            }
76273        }
76274    }
76275
76276    #[inline]
76277    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt, __ast_path: &mut AstKindPath) {
76278        match self {
76279            swc_visit::Either::Left(visitor) => {
76280                VisitMutAstPath::visit_mut_with_stmt(visitor, node, __ast_path)
76281            }
76282            swc_visit::Either::Right(visitor) => {
76283                VisitMutAstPath::visit_mut_with_stmt(visitor, node, __ast_path)
76284            }
76285        }
76286    }
76287
76288    #[inline]
76289    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr, __ast_path: &mut AstKindPath) {
76290        match self {
76291            swc_visit::Either::Left(visitor) => {
76292                VisitMutAstPath::visit_mut_yield_expr(visitor, node, __ast_path)
76293            }
76294            swc_visit::Either::Right(visitor) => {
76295                VisitMutAstPath::visit_mut_yield_expr(visitor, node, __ast_path)
76296            }
76297        }
76298    }
76299}
76300#[cfg(any(docsrs, feature = "path"))]
76301#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
76302impl<V> VisitMutAstPath for ::swc_visit::Optional<V>
76303where
76304    V: VisitMutAstPath,
76305{
76306    #[inline]
76307    fn visit_mut_accessibility(&mut self, node: &mut Accessibility, __ast_path: &mut AstKindPath) {
76308        if self.enabled {
76309            <V as VisitMutAstPath>::visit_mut_accessibility(&mut self.visitor, node, __ast_path)
76310        } else {
76311        }
76312    }
76313
76314    #[inline]
76315    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit, __ast_path: &mut AstKindPath) {
76316        if self.enabled {
76317            <V as VisitMutAstPath>::visit_mut_array_lit(&mut self.visitor, node, __ast_path)
76318        } else {
76319        }
76320    }
76321
76322    #[inline]
76323    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat, __ast_path: &mut AstKindPath) {
76324        if self.enabled {
76325            <V as VisitMutAstPath>::visit_mut_array_pat(&mut self.visitor, node, __ast_path)
76326        } else {
76327        }
76328    }
76329
76330    #[inline]
76331    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr, __ast_path: &mut AstKindPath) {
76332        if self.enabled {
76333            <V as VisitMutAstPath>::visit_mut_arrow_expr(&mut self.visitor, node, __ast_path)
76334        } else {
76335        }
76336    }
76337
76338    #[inline]
76339    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr, __ast_path: &mut AstKindPath) {
76340        if self.enabled {
76341            <V as VisitMutAstPath>::visit_mut_assign_expr(&mut self.visitor, node, __ast_path)
76342        } else {
76343        }
76344    }
76345
76346    #[inline]
76347    fn visit_mut_assign_op(&mut self, node: &mut AssignOp, __ast_path: &mut AstKindPath) {
76348        if self.enabled {
76349            <V as VisitMutAstPath>::visit_mut_assign_op(&mut self.visitor, node, __ast_path)
76350        } else {
76351        }
76352    }
76353
76354    #[inline]
76355    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat, __ast_path: &mut AstKindPath) {
76356        if self.enabled {
76357            <V as VisitMutAstPath>::visit_mut_assign_pat(&mut self.visitor, node, __ast_path)
76358        } else {
76359        }
76360    }
76361
76362    #[inline]
76363    fn visit_mut_assign_pat_prop(
76364        &mut self,
76365        node: &mut AssignPatProp,
76366        __ast_path: &mut AstKindPath,
76367    ) {
76368        if self.enabled {
76369            <V as VisitMutAstPath>::visit_mut_assign_pat_prop(&mut self.visitor, node, __ast_path)
76370        } else {
76371        }
76372    }
76373
76374    #[inline]
76375    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp, __ast_path: &mut AstKindPath) {
76376        if self.enabled {
76377            <V as VisitMutAstPath>::visit_mut_assign_prop(&mut self.visitor, node, __ast_path)
76378        } else {
76379        }
76380    }
76381
76382    #[inline]
76383    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget, __ast_path: &mut AstKindPath) {
76384        if self.enabled {
76385            <V as VisitMutAstPath>::visit_mut_assign_target(&mut self.visitor, node, __ast_path)
76386        } else {
76387        }
76388    }
76389
76390    #[inline]
76391    fn visit_mut_assign_target_pat(
76392        &mut self,
76393        node: &mut AssignTargetPat,
76394        __ast_path: &mut AstKindPath,
76395    ) {
76396        if self.enabled {
76397            <V as VisitMutAstPath>::visit_mut_assign_target_pat(&mut self.visitor, node, __ast_path)
76398        } else {
76399        }
76400    }
76401
76402    #[inline]
76403    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom, __ast_path: &mut AstKindPath) {
76404        if self.enabled {
76405            <V as VisitMutAstPath>::visit_mut_atom(&mut self.visitor, node, __ast_path)
76406        } else {
76407        }
76408    }
76409
76410    #[inline]
76411    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor, __ast_path: &mut AstKindPath) {
76412        if self.enabled {
76413            <V as VisitMutAstPath>::visit_mut_auto_accessor(&mut self.visitor, node, __ast_path)
76414        } else {
76415        }
76416    }
76417
76418    #[inline]
76419    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr, __ast_path: &mut AstKindPath) {
76420        if self.enabled {
76421            <V as VisitMutAstPath>::visit_mut_await_expr(&mut self.visitor, node, __ast_path)
76422        } else {
76423        }
76424    }
76425
76426    #[inline]
76427    fn visit_mut_big_int(&mut self, node: &mut BigInt, __ast_path: &mut AstKindPath) {
76428        if self.enabled {
76429            <V as VisitMutAstPath>::visit_mut_big_int(&mut self.visitor, node, __ast_path)
76430        } else {
76431        }
76432    }
76433
76434    #[inline]
76435    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue, __ast_path: &mut AstKindPath) {
76436        if self.enabled {
76437            <V as VisitMutAstPath>::visit_mut_big_int_value(&mut self.visitor, node, __ast_path)
76438        } else {
76439        }
76440    }
76441
76442    #[inline]
76443    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr, __ast_path: &mut AstKindPath) {
76444        if self.enabled {
76445            <V as VisitMutAstPath>::visit_mut_bin_expr(&mut self.visitor, node, __ast_path)
76446        } else {
76447        }
76448    }
76449
76450    #[inline]
76451    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp, __ast_path: &mut AstKindPath) {
76452        if self.enabled {
76453            <V as VisitMutAstPath>::visit_mut_binary_op(&mut self.visitor, node, __ast_path)
76454        } else {
76455        }
76456    }
76457
76458    #[inline]
76459    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent, __ast_path: &mut AstKindPath) {
76460        if self.enabled {
76461            <V as VisitMutAstPath>::visit_mut_binding_ident(&mut self.visitor, node, __ast_path)
76462        } else {
76463        }
76464    }
76465
76466    #[inline]
76467    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt, __ast_path: &mut AstKindPath) {
76468        if self.enabled {
76469            <V as VisitMutAstPath>::visit_mut_block_stmt(&mut self.visitor, node, __ast_path)
76470        } else {
76471        }
76472    }
76473
76474    #[inline]
76475    fn visit_mut_block_stmt_or_expr(
76476        &mut self,
76477        node: &mut BlockStmtOrExpr,
76478        __ast_path: &mut AstKindPath,
76479    ) {
76480        if self.enabled {
76481            <V as VisitMutAstPath>::visit_mut_block_stmt_or_expr(
76482                &mut self.visitor,
76483                node,
76484                __ast_path,
76485            )
76486        } else {
76487        }
76488    }
76489
76490    #[inline]
76491    fn visit_mut_bool(&mut self, node: &mut Bool, __ast_path: &mut AstKindPath) {
76492        if self.enabled {
76493            <V as VisitMutAstPath>::visit_mut_bool(&mut self.visitor, node, __ast_path)
76494        } else {
76495        }
76496    }
76497
76498    #[inline]
76499    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt, __ast_path: &mut AstKindPath) {
76500        if self.enabled {
76501            <V as VisitMutAstPath>::visit_mut_break_stmt(&mut self.visitor, node, __ast_path)
76502        } else {
76503        }
76504    }
76505
76506    #[inline]
76507    fn visit_mut_call_expr(&mut self, node: &mut CallExpr, __ast_path: &mut AstKindPath) {
76508        if self.enabled {
76509            <V as VisitMutAstPath>::visit_mut_call_expr(&mut self.visitor, node, __ast_path)
76510        } else {
76511        }
76512    }
76513
76514    #[inline]
76515    fn visit_mut_callee(&mut self, node: &mut Callee, __ast_path: &mut AstKindPath) {
76516        if self.enabled {
76517            <V as VisitMutAstPath>::visit_mut_callee(&mut self.visitor, node, __ast_path)
76518        } else {
76519        }
76520    }
76521
76522    #[inline]
76523    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause, __ast_path: &mut AstKindPath) {
76524        if self.enabled {
76525            <V as VisitMutAstPath>::visit_mut_catch_clause(&mut self.visitor, node, __ast_path)
76526        } else {
76527        }
76528    }
76529
76530    #[inline]
76531    fn visit_mut_class(&mut self, node: &mut Class, __ast_path: &mut AstKindPath) {
76532        if self.enabled {
76533            <V as VisitMutAstPath>::visit_mut_class(&mut self.visitor, node, __ast_path)
76534        } else {
76535        }
76536    }
76537
76538    #[inline]
76539    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl, __ast_path: &mut AstKindPath) {
76540        if self.enabled {
76541            <V as VisitMutAstPath>::visit_mut_class_decl(&mut self.visitor, node, __ast_path)
76542        } else {
76543        }
76544    }
76545
76546    #[inline]
76547    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr, __ast_path: &mut AstKindPath) {
76548        if self.enabled {
76549            <V as VisitMutAstPath>::visit_mut_class_expr(&mut self.visitor, node, __ast_path)
76550        } else {
76551        }
76552    }
76553
76554    #[inline]
76555    fn visit_mut_class_member(&mut self, node: &mut ClassMember, __ast_path: &mut AstKindPath) {
76556        if self.enabled {
76557            <V as VisitMutAstPath>::visit_mut_class_member(&mut self.visitor, node, __ast_path)
76558        } else {
76559        }
76560    }
76561
76562    #[inline]
76563    fn visit_mut_class_members(
76564        &mut self,
76565        node: &mut Vec<ClassMember>,
76566        __ast_path: &mut AstKindPath,
76567    ) {
76568        if self.enabled {
76569            <V as VisitMutAstPath>::visit_mut_class_members(&mut self.visitor, node, __ast_path)
76570        } else {
76571        }
76572    }
76573
76574    #[inline]
76575    fn visit_mut_class_method(&mut self, node: &mut ClassMethod, __ast_path: &mut AstKindPath) {
76576        if self.enabled {
76577            <V as VisitMutAstPath>::visit_mut_class_method(&mut self.visitor, node, __ast_path)
76578        } else {
76579        }
76580    }
76581
76582    #[inline]
76583    fn visit_mut_class_prop(&mut self, node: &mut ClassProp, __ast_path: &mut AstKindPath) {
76584        if self.enabled {
76585            <V as VisitMutAstPath>::visit_mut_class_prop(&mut self.visitor, node, __ast_path)
76586        } else {
76587        }
76588    }
76589
76590    #[inline]
76591    fn visit_mut_computed_prop_name(
76592        &mut self,
76593        node: &mut ComputedPropName,
76594        __ast_path: &mut AstKindPath,
76595    ) {
76596        if self.enabled {
76597            <V as VisitMutAstPath>::visit_mut_computed_prop_name(
76598                &mut self.visitor,
76599                node,
76600                __ast_path,
76601            )
76602        } else {
76603        }
76604    }
76605
76606    #[inline]
76607    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr, __ast_path: &mut AstKindPath) {
76608        if self.enabled {
76609            <V as VisitMutAstPath>::visit_mut_cond_expr(&mut self.visitor, node, __ast_path)
76610        } else {
76611        }
76612    }
76613
76614    #[inline]
76615    fn visit_mut_constructor(&mut self, node: &mut Constructor, __ast_path: &mut AstKindPath) {
76616        if self.enabled {
76617            <V as VisitMutAstPath>::visit_mut_constructor(&mut self.visitor, node, __ast_path)
76618        } else {
76619        }
76620    }
76621
76622    #[inline]
76623    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt, __ast_path: &mut AstKindPath) {
76624        if self.enabled {
76625            <V as VisitMutAstPath>::visit_mut_continue_stmt(&mut self.visitor, node, __ast_path)
76626        } else {
76627        }
76628    }
76629
76630    #[inline]
76631    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt, __ast_path: &mut AstKindPath) {
76632        if self.enabled {
76633            <V as VisitMutAstPath>::visit_mut_debugger_stmt(&mut self.visitor, node, __ast_path)
76634        } else {
76635        }
76636    }
76637
76638    #[inline]
76639    fn visit_mut_decl(&mut self, node: &mut Decl, __ast_path: &mut AstKindPath) {
76640        if self.enabled {
76641            <V as VisitMutAstPath>::visit_mut_decl(&mut self.visitor, node, __ast_path)
76642        } else {
76643        }
76644    }
76645
76646    #[inline]
76647    fn visit_mut_decorator(&mut self, node: &mut Decorator, __ast_path: &mut AstKindPath) {
76648        if self.enabled {
76649            <V as VisitMutAstPath>::visit_mut_decorator(&mut self.visitor, node, __ast_path)
76650        } else {
76651        }
76652    }
76653
76654    #[inline]
76655    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>, __ast_path: &mut AstKindPath) {
76656        if self.enabled {
76657            <V as VisitMutAstPath>::visit_mut_decorators(&mut self.visitor, node, __ast_path)
76658        } else {
76659        }
76660    }
76661
76662    #[inline]
76663    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl, __ast_path: &mut AstKindPath) {
76664        if self.enabled {
76665            <V as VisitMutAstPath>::visit_mut_default_decl(&mut self.visitor, node, __ast_path)
76666        } else {
76667        }
76668    }
76669
76670    #[inline]
76671    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt, __ast_path: &mut AstKindPath) {
76672        if self.enabled {
76673            <V as VisitMutAstPath>::visit_mut_do_while_stmt(&mut self.visitor, node, __ast_path)
76674        } else {
76675        }
76676    }
76677
76678    #[inline]
76679    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt, __ast_path: &mut AstKindPath) {
76680        if self.enabled {
76681            <V as VisitMutAstPath>::visit_mut_empty_stmt(&mut self.visitor, node, __ast_path)
76682        } else {
76683        }
76684    }
76685
76686    #[inline]
76687    fn visit_mut_export_all(&mut self, node: &mut ExportAll, __ast_path: &mut AstKindPath) {
76688        if self.enabled {
76689            <V as VisitMutAstPath>::visit_mut_export_all(&mut self.visitor, node, __ast_path)
76690        } else {
76691        }
76692    }
76693
76694    #[inline]
76695    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl, __ast_path: &mut AstKindPath) {
76696        if self.enabled {
76697            <V as VisitMutAstPath>::visit_mut_export_decl(&mut self.visitor, node, __ast_path)
76698        } else {
76699        }
76700    }
76701
76702    #[inline]
76703    fn visit_mut_export_default_decl(
76704        &mut self,
76705        node: &mut ExportDefaultDecl,
76706        __ast_path: &mut AstKindPath,
76707    ) {
76708        if self.enabled {
76709            <V as VisitMutAstPath>::visit_mut_export_default_decl(
76710                &mut self.visitor,
76711                node,
76712                __ast_path,
76713            )
76714        } else {
76715        }
76716    }
76717
76718    #[inline]
76719    fn visit_mut_export_default_expr(
76720        &mut self,
76721        node: &mut ExportDefaultExpr,
76722        __ast_path: &mut AstKindPath,
76723    ) {
76724        if self.enabled {
76725            <V as VisitMutAstPath>::visit_mut_export_default_expr(
76726                &mut self.visitor,
76727                node,
76728                __ast_path,
76729            )
76730        } else {
76731        }
76732    }
76733
76734    #[inline]
76735    fn visit_mut_export_default_specifier(
76736        &mut self,
76737        node: &mut ExportDefaultSpecifier,
76738        __ast_path: &mut AstKindPath,
76739    ) {
76740        if self.enabled {
76741            <V as VisitMutAstPath>::visit_mut_export_default_specifier(
76742                &mut self.visitor,
76743                node,
76744                __ast_path,
76745            )
76746        } else {
76747        }
76748    }
76749
76750    #[inline]
76751    fn visit_mut_export_named_specifier(
76752        &mut self,
76753        node: &mut ExportNamedSpecifier,
76754        __ast_path: &mut AstKindPath,
76755    ) {
76756        if self.enabled {
76757            <V as VisitMutAstPath>::visit_mut_export_named_specifier(
76758                &mut self.visitor,
76759                node,
76760                __ast_path,
76761            )
76762        } else {
76763        }
76764    }
76765
76766    #[inline]
76767    fn visit_mut_export_namespace_specifier(
76768        &mut self,
76769        node: &mut ExportNamespaceSpecifier,
76770        __ast_path: &mut AstKindPath,
76771    ) {
76772        if self.enabled {
76773            <V as VisitMutAstPath>::visit_mut_export_namespace_specifier(
76774                &mut self.visitor,
76775                node,
76776                __ast_path,
76777            )
76778        } else {
76779        }
76780    }
76781
76782    #[inline]
76783    fn visit_mut_export_specifier(
76784        &mut self,
76785        node: &mut ExportSpecifier,
76786        __ast_path: &mut AstKindPath,
76787    ) {
76788        if self.enabled {
76789            <V as VisitMutAstPath>::visit_mut_export_specifier(&mut self.visitor, node, __ast_path)
76790        } else {
76791        }
76792    }
76793
76794    #[inline]
76795    fn visit_mut_export_specifiers(
76796        &mut self,
76797        node: &mut Vec<ExportSpecifier>,
76798        __ast_path: &mut AstKindPath,
76799    ) {
76800        if self.enabled {
76801            <V as VisitMutAstPath>::visit_mut_export_specifiers(&mut self.visitor, node, __ast_path)
76802        } else {
76803        }
76804    }
76805
76806    #[inline]
76807    fn visit_mut_expr(&mut self, node: &mut Expr, __ast_path: &mut AstKindPath) {
76808        if self.enabled {
76809            <V as VisitMutAstPath>::visit_mut_expr(&mut self.visitor, node, __ast_path)
76810        } else {
76811        }
76812    }
76813
76814    #[inline]
76815    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread, __ast_path: &mut AstKindPath) {
76816        if self.enabled {
76817            <V as VisitMutAstPath>::visit_mut_expr_or_spread(&mut self.visitor, node, __ast_path)
76818        } else {
76819        }
76820    }
76821
76822    #[inline]
76823    fn visit_mut_expr_or_spreads(
76824        &mut self,
76825        node: &mut Vec<ExprOrSpread>,
76826        __ast_path: &mut AstKindPath,
76827    ) {
76828        if self.enabled {
76829            <V as VisitMutAstPath>::visit_mut_expr_or_spreads(&mut self.visitor, node, __ast_path)
76830        } else {
76831        }
76832    }
76833
76834    #[inline]
76835    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt, __ast_path: &mut AstKindPath) {
76836        if self.enabled {
76837            <V as VisitMutAstPath>::visit_mut_expr_stmt(&mut self.visitor, node, __ast_path)
76838        } else {
76839        }
76840    }
76841
76842    #[inline]
76843    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>, __ast_path: &mut AstKindPath) {
76844        if self.enabled {
76845            <V as VisitMutAstPath>::visit_mut_exprs(&mut self.visitor, node, __ast_path)
76846        } else {
76847        }
76848    }
76849
76850    #[inline]
76851    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl, __ast_path: &mut AstKindPath) {
76852        if self.enabled {
76853            <V as VisitMutAstPath>::visit_mut_fn_decl(&mut self.visitor, node, __ast_path)
76854        } else {
76855        }
76856    }
76857
76858    #[inline]
76859    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr, __ast_path: &mut AstKindPath) {
76860        if self.enabled {
76861            <V as VisitMutAstPath>::visit_mut_fn_expr(&mut self.visitor, node, __ast_path)
76862        } else {
76863        }
76864    }
76865
76866    #[inline]
76867    fn visit_mut_for_head(&mut self, node: &mut ForHead, __ast_path: &mut AstKindPath) {
76868        if self.enabled {
76869            <V as VisitMutAstPath>::visit_mut_for_head(&mut self.visitor, node, __ast_path)
76870        } else {
76871        }
76872    }
76873
76874    #[inline]
76875    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt, __ast_path: &mut AstKindPath) {
76876        if self.enabled {
76877            <V as VisitMutAstPath>::visit_mut_for_in_stmt(&mut self.visitor, node, __ast_path)
76878        } else {
76879        }
76880    }
76881
76882    #[inline]
76883    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt, __ast_path: &mut AstKindPath) {
76884        if self.enabled {
76885            <V as VisitMutAstPath>::visit_mut_for_of_stmt(&mut self.visitor, node, __ast_path)
76886        } else {
76887        }
76888    }
76889
76890    #[inline]
76891    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt, __ast_path: &mut AstKindPath) {
76892        if self.enabled {
76893            <V as VisitMutAstPath>::visit_mut_for_stmt(&mut self.visitor, node, __ast_path)
76894        } else {
76895        }
76896    }
76897
76898    #[inline]
76899    fn visit_mut_function(&mut self, node: &mut Function, __ast_path: &mut AstKindPath) {
76900        if self.enabled {
76901            <V as VisitMutAstPath>::visit_mut_function(&mut self.visitor, node, __ast_path)
76902        } else {
76903        }
76904    }
76905
76906    #[inline]
76907    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp, __ast_path: &mut AstKindPath) {
76908        if self.enabled {
76909            <V as VisitMutAstPath>::visit_mut_getter_prop(&mut self.visitor, node, __ast_path)
76910        } else {
76911        }
76912    }
76913
76914    #[inline]
76915    fn visit_mut_ident(&mut self, node: &mut Ident, __ast_path: &mut AstKindPath) {
76916        if self.enabled {
76917            <V as VisitMutAstPath>::visit_mut_ident(&mut self.visitor, node, __ast_path)
76918        } else {
76919        }
76920    }
76921
76922    #[inline]
76923    fn visit_mut_ident_name(&mut self, node: &mut IdentName, __ast_path: &mut AstKindPath) {
76924        if self.enabled {
76925            <V as VisitMutAstPath>::visit_mut_ident_name(&mut self.visitor, node, __ast_path)
76926        } else {
76927        }
76928    }
76929
76930    #[inline]
76931    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt, __ast_path: &mut AstKindPath) {
76932        if self.enabled {
76933            <V as VisitMutAstPath>::visit_mut_if_stmt(&mut self.visitor, node, __ast_path)
76934        } else {
76935        }
76936    }
76937
76938    #[inline]
76939    fn visit_mut_import(&mut self, node: &mut Import, __ast_path: &mut AstKindPath) {
76940        if self.enabled {
76941            <V as VisitMutAstPath>::visit_mut_import(&mut self.visitor, node, __ast_path)
76942        } else {
76943        }
76944    }
76945
76946    #[inline]
76947    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl, __ast_path: &mut AstKindPath) {
76948        if self.enabled {
76949            <V as VisitMutAstPath>::visit_mut_import_decl(&mut self.visitor, node, __ast_path)
76950        } else {
76951        }
76952    }
76953
76954    #[inline]
76955    fn visit_mut_import_default_specifier(
76956        &mut self,
76957        node: &mut ImportDefaultSpecifier,
76958        __ast_path: &mut AstKindPath,
76959    ) {
76960        if self.enabled {
76961            <V as VisitMutAstPath>::visit_mut_import_default_specifier(
76962                &mut self.visitor,
76963                node,
76964                __ast_path,
76965            )
76966        } else {
76967        }
76968    }
76969
76970    #[inline]
76971    fn visit_mut_import_named_specifier(
76972        &mut self,
76973        node: &mut ImportNamedSpecifier,
76974        __ast_path: &mut AstKindPath,
76975    ) {
76976        if self.enabled {
76977            <V as VisitMutAstPath>::visit_mut_import_named_specifier(
76978                &mut self.visitor,
76979                node,
76980                __ast_path,
76981            )
76982        } else {
76983        }
76984    }
76985
76986    #[inline]
76987    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase, __ast_path: &mut AstKindPath) {
76988        if self.enabled {
76989            <V as VisitMutAstPath>::visit_mut_import_phase(&mut self.visitor, node, __ast_path)
76990        } else {
76991        }
76992    }
76993
76994    #[inline]
76995    fn visit_mut_import_specifier(
76996        &mut self,
76997        node: &mut ImportSpecifier,
76998        __ast_path: &mut AstKindPath,
76999    ) {
77000        if self.enabled {
77001            <V as VisitMutAstPath>::visit_mut_import_specifier(&mut self.visitor, node, __ast_path)
77002        } else {
77003        }
77004    }
77005
77006    #[inline]
77007    fn visit_mut_import_specifiers(
77008        &mut self,
77009        node: &mut Vec<ImportSpecifier>,
77010        __ast_path: &mut AstKindPath,
77011    ) {
77012        if self.enabled {
77013            <V as VisitMutAstPath>::visit_mut_import_specifiers(&mut self.visitor, node, __ast_path)
77014        } else {
77015        }
77016    }
77017
77018    #[inline]
77019    fn visit_mut_import_star_as_specifier(
77020        &mut self,
77021        node: &mut ImportStarAsSpecifier,
77022        __ast_path: &mut AstKindPath,
77023    ) {
77024        if self.enabled {
77025            <V as VisitMutAstPath>::visit_mut_import_star_as_specifier(
77026                &mut self.visitor,
77027                node,
77028                __ast_path,
77029            )
77030        } else {
77031        }
77032    }
77033
77034    #[inline]
77035    fn visit_mut_import_with(&mut self, node: &mut ImportWith, __ast_path: &mut AstKindPath) {
77036        if self.enabled {
77037            <V as VisitMutAstPath>::visit_mut_import_with(&mut self.visitor, node, __ast_path)
77038        } else {
77039        }
77040    }
77041
77042    #[inline]
77043    fn visit_mut_import_with_item(
77044        &mut self,
77045        node: &mut ImportWithItem,
77046        __ast_path: &mut AstKindPath,
77047    ) {
77048        if self.enabled {
77049            <V as VisitMutAstPath>::visit_mut_import_with_item(&mut self.visitor, node, __ast_path)
77050        } else {
77051        }
77052    }
77053
77054    #[inline]
77055    fn visit_mut_import_with_items(
77056        &mut self,
77057        node: &mut Vec<ImportWithItem>,
77058        __ast_path: &mut AstKindPath,
77059    ) {
77060        if self.enabled {
77061            <V as VisitMutAstPath>::visit_mut_import_with_items(&mut self.visitor, node, __ast_path)
77062        } else {
77063        }
77064    }
77065
77066    #[inline]
77067    fn visit_mut_invalid(&mut self, node: &mut Invalid, __ast_path: &mut AstKindPath) {
77068        if self.enabled {
77069            <V as VisitMutAstPath>::visit_mut_invalid(&mut self.visitor, node, __ast_path)
77070        } else {
77071        }
77072    }
77073
77074    #[inline]
77075    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr, __ast_path: &mut AstKindPath) {
77076        if self.enabled {
77077            <V as VisitMutAstPath>::visit_mut_jsx_attr(&mut self.visitor, node, __ast_path)
77078        } else {
77079        }
77080    }
77081
77082    #[inline]
77083    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName, __ast_path: &mut AstKindPath) {
77084        if self.enabled {
77085            <V as VisitMutAstPath>::visit_mut_jsx_attr_name(&mut self.visitor, node, __ast_path)
77086        } else {
77087        }
77088    }
77089
77090    #[inline]
77091    fn visit_mut_jsx_attr_or_spread(
77092        &mut self,
77093        node: &mut JSXAttrOrSpread,
77094        __ast_path: &mut AstKindPath,
77095    ) {
77096        if self.enabled {
77097            <V as VisitMutAstPath>::visit_mut_jsx_attr_or_spread(
77098                &mut self.visitor,
77099                node,
77100                __ast_path,
77101            )
77102        } else {
77103        }
77104    }
77105
77106    #[inline]
77107    fn visit_mut_jsx_attr_or_spreads(
77108        &mut self,
77109        node: &mut Vec<JSXAttrOrSpread>,
77110        __ast_path: &mut AstKindPath,
77111    ) {
77112        if self.enabled {
77113            <V as VisitMutAstPath>::visit_mut_jsx_attr_or_spreads(
77114                &mut self.visitor,
77115                node,
77116                __ast_path,
77117            )
77118        } else {
77119        }
77120    }
77121
77122    #[inline]
77123    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue, __ast_path: &mut AstKindPath) {
77124        if self.enabled {
77125            <V as VisitMutAstPath>::visit_mut_jsx_attr_value(&mut self.visitor, node, __ast_path)
77126        } else {
77127        }
77128    }
77129
77130    #[inline]
77131    fn visit_mut_jsx_closing_element(
77132        &mut self,
77133        node: &mut JSXClosingElement,
77134        __ast_path: &mut AstKindPath,
77135    ) {
77136        if self.enabled {
77137            <V as VisitMutAstPath>::visit_mut_jsx_closing_element(
77138                &mut self.visitor,
77139                node,
77140                __ast_path,
77141            )
77142        } else {
77143        }
77144    }
77145
77146    #[inline]
77147    fn visit_mut_jsx_closing_fragment(
77148        &mut self,
77149        node: &mut JSXClosingFragment,
77150        __ast_path: &mut AstKindPath,
77151    ) {
77152        if self.enabled {
77153            <V as VisitMutAstPath>::visit_mut_jsx_closing_fragment(
77154                &mut self.visitor,
77155                node,
77156                __ast_path,
77157            )
77158        } else {
77159        }
77160    }
77161
77162    #[inline]
77163    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement, __ast_path: &mut AstKindPath) {
77164        if self.enabled {
77165            <V as VisitMutAstPath>::visit_mut_jsx_element(&mut self.visitor, node, __ast_path)
77166        } else {
77167        }
77168    }
77169
77170    #[inline]
77171    fn visit_mut_jsx_element_child(
77172        &mut self,
77173        node: &mut JSXElementChild,
77174        __ast_path: &mut AstKindPath,
77175    ) {
77176        if self.enabled {
77177            <V as VisitMutAstPath>::visit_mut_jsx_element_child(&mut self.visitor, node, __ast_path)
77178        } else {
77179        }
77180    }
77181
77182    #[inline]
77183    fn visit_mut_jsx_element_childs(
77184        &mut self,
77185        node: &mut Vec<JSXElementChild>,
77186        __ast_path: &mut AstKindPath,
77187    ) {
77188        if self.enabled {
77189            <V as VisitMutAstPath>::visit_mut_jsx_element_childs(
77190                &mut self.visitor,
77191                node,
77192                __ast_path,
77193            )
77194        } else {
77195        }
77196    }
77197
77198    #[inline]
77199    fn visit_mut_jsx_element_name(
77200        &mut self,
77201        node: &mut JSXElementName,
77202        __ast_path: &mut AstKindPath,
77203    ) {
77204        if self.enabled {
77205            <V as VisitMutAstPath>::visit_mut_jsx_element_name(&mut self.visitor, node, __ast_path)
77206        } else {
77207        }
77208    }
77209
77210    #[inline]
77211    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr, __ast_path: &mut AstKindPath) {
77212        if self.enabled {
77213            <V as VisitMutAstPath>::visit_mut_jsx_empty_expr(&mut self.visitor, node, __ast_path)
77214        } else {
77215        }
77216    }
77217
77218    #[inline]
77219    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr, __ast_path: &mut AstKindPath) {
77220        if self.enabled {
77221            <V as VisitMutAstPath>::visit_mut_jsx_expr(&mut self.visitor, node, __ast_path)
77222        } else {
77223        }
77224    }
77225
77226    #[inline]
77227    fn visit_mut_jsx_expr_container(
77228        &mut self,
77229        node: &mut JSXExprContainer,
77230        __ast_path: &mut AstKindPath,
77231    ) {
77232        if self.enabled {
77233            <V as VisitMutAstPath>::visit_mut_jsx_expr_container(
77234                &mut self.visitor,
77235                node,
77236                __ast_path,
77237            )
77238        } else {
77239        }
77240    }
77241
77242    #[inline]
77243    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment, __ast_path: &mut AstKindPath) {
77244        if self.enabled {
77245            <V as VisitMutAstPath>::visit_mut_jsx_fragment(&mut self.visitor, node, __ast_path)
77246        } else {
77247        }
77248    }
77249
77250    #[inline]
77251    fn visit_mut_jsx_member_expr(
77252        &mut self,
77253        node: &mut JSXMemberExpr,
77254        __ast_path: &mut AstKindPath,
77255    ) {
77256        if self.enabled {
77257            <V as VisitMutAstPath>::visit_mut_jsx_member_expr(&mut self.visitor, node, __ast_path)
77258        } else {
77259        }
77260    }
77261
77262    #[inline]
77263    fn visit_mut_jsx_namespaced_name(
77264        &mut self,
77265        node: &mut JSXNamespacedName,
77266        __ast_path: &mut AstKindPath,
77267    ) {
77268        if self.enabled {
77269            <V as VisitMutAstPath>::visit_mut_jsx_namespaced_name(
77270                &mut self.visitor,
77271                node,
77272                __ast_path,
77273            )
77274        } else {
77275        }
77276    }
77277
77278    #[inline]
77279    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject, __ast_path: &mut AstKindPath) {
77280        if self.enabled {
77281            <V as VisitMutAstPath>::visit_mut_jsx_object(&mut self.visitor, node, __ast_path)
77282        } else {
77283        }
77284    }
77285
77286    #[inline]
77287    fn visit_mut_jsx_opening_element(
77288        &mut self,
77289        node: &mut JSXOpeningElement,
77290        __ast_path: &mut AstKindPath,
77291    ) {
77292        if self.enabled {
77293            <V as VisitMutAstPath>::visit_mut_jsx_opening_element(
77294                &mut self.visitor,
77295                node,
77296                __ast_path,
77297            )
77298        } else {
77299        }
77300    }
77301
77302    #[inline]
77303    fn visit_mut_jsx_opening_fragment(
77304        &mut self,
77305        node: &mut JSXOpeningFragment,
77306        __ast_path: &mut AstKindPath,
77307    ) {
77308        if self.enabled {
77309            <V as VisitMutAstPath>::visit_mut_jsx_opening_fragment(
77310                &mut self.visitor,
77311                node,
77312                __ast_path,
77313            )
77314        } else {
77315        }
77316    }
77317
77318    #[inline]
77319    fn visit_mut_jsx_spread_child(
77320        &mut self,
77321        node: &mut JSXSpreadChild,
77322        __ast_path: &mut AstKindPath,
77323    ) {
77324        if self.enabled {
77325            <V as VisitMutAstPath>::visit_mut_jsx_spread_child(&mut self.visitor, node, __ast_path)
77326        } else {
77327        }
77328    }
77329
77330    #[inline]
77331    fn visit_mut_jsx_text(&mut self, node: &mut JSXText, __ast_path: &mut AstKindPath) {
77332        if self.enabled {
77333            <V as VisitMutAstPath>::visit_mut_jsx_text(&mut self.visitor, node, __ast_path)
77334        } else {
77335        }
77336    }
77337
77338    #[inline]
77339    fn visit_mut_key(&mut self, node: &mut Key, __ast_path: &mut AstKindPath) {
77340        if self.enabled {
77341            <V as VisitMutAstPath>::visit_mut_key(&mut self.visitor, node, __ast_path)
77342        } else {
77343        }
77344    }
77345
77346    #[inline]
77347    fn visit_mut_key_value_pat_prop(
77348        &mut self,
77349        node: &mut KeyValuePatProp,
77350        __ast_path: &mut AstKindPath,
77351    ) {
77352        if self.enabled {
77353            <V as VisitMutAstPath>::visit_mut_key_value_pat_prop(
77354                &mut self.visitor,
77355                node,
77356                __ast_path,
77357            )
77358        } else {
77359        }
77360    }
77361
77362    #[inline]
77363    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp, __ast_path: &mut AstKindPath) {
77364        if self.enabled {
77365            <V as VisitMutAstPath>::visit_mut_key_value_prop(&mut self.visitor, node, __ast_path)
77366        } else {
77367        }
77368    }
77369
77370    #[inline]
77371    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt, __ast_path: &mut AstKindPath) {
77372        if self.enabled {
77373            <V as VisitMutAstPath>::visit_mut_labeled_stmt(&mut self.visitor, node, __ast_path)
77374        } else {
77375        }
77376    }
77377
77378    #[inline]
77379    fn visit_mut_lit(&mut self, node: &mut Lit, __ast_path: &mut AstKindPath) {
77380        if self.enabled {
77381            <V as VisitMutAstPath>::visit_mut_lit(&mut self.visitor, node, __ast_path)
77382        } else {
77383        }
77384    }
77385
77386    #[inline]
77387    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr, __ast_path: &mut AstKindPath) {
77388        if self.enabled {
77389            <V as VisitMutAstPath>::visit_mut_member_expr(&mut self.visitor, node, __ast_path)
77390        } else {
77391        }
77392    }
77393
77394    #[inline]
77395    fn visit_mut_member_prop(&mut self, node: &mut MemberProp, __ast_path: &mut AstKindPath) {
77396        if self.enabled {
77397            <V as VisitMutAstPath>::visit_mut_member_prop(&mut self.visitor, node, __ast_path)
77398        } else {
77399        }
77400    }
77401
77402    #[inline]
77403    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr, __ast_path: &mut AstKindPath) {
77404        if self.enabled {
77405            <V as VisitMutAstPath>::visit_mut_meta_prop_expr(&mut self.visitor, node, __ast_path)
77406        } else {
77407        }
77408    }
77409
77410    #[inline]
77411    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind, __ast_path: &mut AstKindPath) {
77412        if self.enabled {
77413            <V as VisitMutAstPath>::visit_mut_meta_prop_kind(&mut self.visitor, node, __ast_path)
77414        } else {
77415        }
77416    }
77417
77418    #[inline]
77419    fn visit_mut_method_kind(&mut self, node: &mut MethodKind, __ast_path: &mut AstKindPath) {
77420        if self.enabled {
77421            <V as VisitMutAstPath>::visit_mut_method_kind(&mut self.visitor, node, __ast_path)
77422        } else {
77423        }
77424    }
77425
77426    #[inline]
77427    fn visit_mut_method_prop(&mut self, node: &mut MethodProp, __ast_path: &mut AstKindPath) {
77428        if self.enabled {
77429            <V as VisitMutAstPath>::visit_mut_method_prop(&mut self.visitor, node, __ast_path)
77430        } else {
77431        }
77432    }
77433
77434    #[inline]
77435    fn visit_mut_module(&mut self, node: &mut Module, __ast_path: &mut AstKindPath) {
77436        if self.enabled {
77437            <V as VisitMutAstPath>::visit_mut_module(&mut self.visitor, node, __ast_path)
77438        } else {
77439        }
77440    }
77441
77442    #[inline]
77443    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl, __ast_path: &mut AstKindPath) {
77444        if self.enabled {
77445            <V as VisitMutAstPath>::visit_mut_module_decl(&mut self.visitor, node, __ast_path)
77446        } else {
77447        }
77448    }
77449
77450    #[inline]
77451    fn visit_mut_module_export_name(
77452        &mut self,
77453        node: &mut ModuleExportName,
77454        __ast_path: &mut AstKindPath,
77455    ) {
77456        if self.enabled {
77457            <V as VisitMutAstPath>::visit_mut_module_export_name(
77458                &mut self.visitor,
77459                node,
77460                __ast_path,
77461            )
77462        } else {
77463        }
77464    }
77465
77466    #[inline]
77467    fn visit_mut_module_item(&mut self, node: &mut ModuleItem, __ast_path: &mut AstKindPath) {
77468        if self.enabled {
77469            <V as VisitMutAstPath>::visit_mut_module_item(&mut self.visitor, node, __ast_path)
77470        } else {
77471        }
77472    }
77473
77474    #[inline]
77475    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>, __ast_path: &mut AstKindPath) {
77476        if self.enabled {
77477            <V as VisitMutAstPath>::visit_mut_module_items(&mut self.visitor, node, __ast_path)
77478        } else {
77479        }
77480    }
77481
77482    #[inline]
77483    fn visit_mut_named_export(&mut self, node: &mut NamedExport, __ast_path: &mut AstKindPath) {
77484        if self.enabled {
77485            <V as VisitMutAstPath>::visit_mut_named_export(&mut self.visitor, node, __ast_path)
77486        } else {
77487        }
77488    }
77489
77490    #[inline]
77491    fn visit_mut_new_expr(&mut self, node: &mut NewExpr, __ast_path: &mut AstKindPath) {
77492        if self.enabled {
77493            <V as VisitMutAstPath>::visit_mut_new_expr(&mut self.visitor, node, __ast_path)
77494        } else {
77495        }
77496    }
77497
77498    #[inline]
77499    fn visit_mut_null(&mut self, node: &mut Null, __ast_path: &mut AstKindPath) {
77500        if self.enabled {
77501            <V as VisitMutAstPath>::visit_mut_null(&mut self.visitor, node, __ast_path)
77502        } else {
77503        }
77504    }
77505
77506    #[inline]
77507    fn visit_mut_number(&mut self, node: &mut Number, __ast_path: &mut AstKindPath) {
77508        if self.enabled {
77509            <V as VisitMutAstPath>::visit_mut_number(&mut self.visitor, node, __ast_path)
77510        } else {
77511        }
77512    }
77513
77514    #[inline]
77515    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit, __ast_path: &mut AstKindPath) {
77516        if self.enabled {
77517            <V as VisitMutAstPath>::visit_mut_object_lit(&mut self.visitor, node, __ast_path)
77518        } else {
77519        }
77520    }
77521
77522    #[inline]
77523    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat, __ast_path: &mut AstKindPath) {
77524        if self.enabled {
77525            <V as VisitMutAstPath>::visit_mut_object_pat(&mut self.visitor, node, __ast_path)
77526        } else {
77527        }
77528    }
77529
77530    #[inline]
77531    fn visit_mut_object_pat_prop(
77532        &mut self,
77533        node: &mut ObjectPatProp,
77534        __ast_path: &mut AstKindPath,
77535    ) {
77536        if self.enabled {
77537            <V as VisitMutAstPath>::visit_mut_object_pat_prop(&mut self.visitor, node, __ast_path)
77538        } else {
77539        }
77540    }
77541
77542    #[inline]
77543    fn visit_mut_object_pat_props(
77544        &mut self,
77545        node: &mut Vec<ObjectPatProp>,
77546        __ast_path: &mut AstKindPath,
77547    ) {
77548        if self.enabled {
77549            <V as VisitMutAstPath>::visit_mut_object_pat_props(&mut self.visitor, node, __ast_path)
77550        } else {
77551        }
77552    }
77553
77554    #[inline]
77555    fn visit_mut_opt_accessibility(
77556        &mut self,
77557        node: &mut Option<Accessibility>,
77558        __ast_path: &mut AstKindPath,
77559    ) {
77560        if self.enabled {
77561            <V as VisitMutAstPath>::visit_mut_opt_accessibility(&mut self.visitor, node, __ast_path)
77562        } else {
77563        }
77564    }
77565
77566    #[inline]
77567    fn visit_mut_opt_atom(
77568        &mut self,
77569        node: &mut Option<swc_atoms::Atom>,
77570        __ast_path: &mut AstKindPath,
77571    ) {
77572        if self.enabled {
77573            <V as VisitMutAstPath>::visit_mut_opt_atom(&mut self.visitor, node, __ast_path)
77574        } else {
77575        }
77576    }
77577
77578    #[inline]
77579    fn visit_mut_opt_block_stmt(
77580        &mut self,
77581        node: &mut Option<BlockStmt>,
77582        __ast_path: &mut AstKindPath,
77583    ) {
77584        if self.enabled {
77585            <V as VisitMutAstPath>::visit_mut_opt_block_stmt(&mut self.visitor, node, __ast_path)
77586        } else {
77587        }
77588    }
77589
77590    #[inline]
77591    fn visit_mut_opt_call(&mut self, node: &mut OptCall, __ast_path: &mut AstKindPath) {
77592        if self.enabled {
77593            <V as VisitMutAstPath>::visit_mut_opt_call(&mut self.visitor, node, __ast_path)
77594        } else {
77595        }
77596    }
77597
77598    #[inline]
77599    fn visit_mut_opt_catch_clause(
77600        &mut self,
77601        node: &mut Option<CatchClause>,
77602        __ast_path: &mut AstKindPath,
77603    ) {
77604        if self.enabled {
77605            <V as VisitMutAstPath>::visit_mut_opt_catch_clause(&mut self.visitor, node, __ast_path)
77606        } else {
77607        }
77608    }
77609
77610    #[inline]
77611    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase, __ast_path: &mut AstKindPath) {
77612        if self.enabled {
77613            <V as VisitMutAstPath>::visit_mut_opt_chain_base(&mut self.visitor, node, __ast_path)
77614        } else {
77615        }
77616    }
77617
77618    #[inline]
77619    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr, __ast_path: &mut AstKindPath) {
77620        if self.enabled {
77621            <V as VisitMutAstPath>::visit_mut_opt_chain_expr(&mut self.visitor, node, __ast_path)
77622        } else {
77623        }
77624    }
77625
77626    #[inline]
77627    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>, __ast_path: &mut AstKindPath) {
77628        if self.enabled {
77629            <V as VisitMutAstPath>::visit_mut_opt_expr(&mut self.visitor, node, __ast_path)
77630        } else {
77631        }
77632    }
77633
77634    #[inline]
77635    fn visit_mut_opt_expr_or_spread(
77636        &mut self,
77637        node: &mut Option<ExprOrSpread>,
77638        __ast_path: &mut AstKindPath,
77639    ) {
77640        if self.enabled {
77641            <V as VisitMutAstPath>::visit_mut_opt_expr_or_spread(
77642                &mut self.visitor,
77643                node,
77644                __ast_path,
77645            )
77646        } else {
77647        }
77648    }
77649
77650    #[inline]
77651    fn visit_mut_opt_expr_or_spreads(
77652        &mut self,
77653        node: &mut Option<Vec<ExprOrSpread>>,
77654        __ast_path: &mut AstKindPath,
77655    ) {
77656        if self.enabled {
77657            <V as VisitMutAstPath>::visit_mut_opt_expr_or_spreads(
77658                &mut self.visitor,
77659                node,
77660                __ast_path,
77661            )
77662        } else {
77663        }
77664    }
77665
77666    #[inline]
77667    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>, __ast_path: &mut AstKindPath) {
77668        if self.enabled {
77669            <V as VisitMutAstPath>::visit_mut_opt_ident(&mut self.visitor, node, __ast_path)
77670        } else {
77671        }
77672    }
77673
77674    #[inline]
77675    fn visit_mut_opt_jsx_attr_value(
77676        &mut self,
77677        node: &mut Option<JSXAttrValue>,
77678        __ast_path: &mut AstKindPath,
77679    ) {
77680        if self.enabled {
77681            <V as VisitMutAstPath>::visit_mut_opt_jsx_attr_value(
77682                &mut self.visitor,
77683                node,
77684                __ast_path,
77685            )
77686        } else {
77687        }
77688    }
77689
77690    #[inline]
77691    fn visit_mut_opt_jsx_closing_element(
77692        &mut self,
77693        node: &mut Option<JSXClosingElement>,
77694        __ast_path: &mut AstKindPath,
77695    ) {
77696        if self.enabled {
77697            <V as VisitMutAstPath>::visit_mut_opt_jsx_closing_element(
77698                &mut self.visitor,
77699                node,
77700                __ast_path,
77701            )
77702        } else {
77703        }
77704    }
77705
77706    #[inline]
77707    fn visit_mut_opt_module_export_name(
77708        &mut self,
77709        node: &mut Option<ModuleExportName>,
77710        __ast_path: &mut AstKindPath,
77711    ) {
77712        if self.enabled {
77713            <V as VisitMutAstPath>::visit_mut_opt_module_export_name(
77714                &mut self.visitor,
77715                node,
77716                __ast_path,
77717            )
77718        } else {
77719        }
77720    }
77721
77722    #[inline]
77723    fn visit_mut_opt_object_lit(
77724        &mut self,
77725        node: &mut Option<Box<ObjectLit>>,
77726        __ast_path: &mut AstKindPath,
77727    ) {
77728        if self.enabled {
77729            <V as VisitMutAstPath>::visit_mut_opt_object_lit(&mut self.visitor, node, __ast_path)
77730        } else {
77731        }
77732    }
77733
77734    #[inline]
77735    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>, __ast_path: &mut AstKindPath) {
77736        if self.enabled {
77737            <V as VisitMutAstPath>::visit_mut_opt_pat(&mut self.visitor, node, __ast_path)
77738        } else {
77739        }
77740    }
77741
77742    #[inline]
77743    fn visit_mut_opt_span(
77744        &mut self,
77745        node: &mut Option<swc_common::Span>,
77746        __ast_path: &mut AstKindPath,
77747    ) {
77748        if self.enabled {
77749            <V as VisitMutAstPath>::visit_mut_opt_span(&mut self.visitor, node, __ast_path)
77750        } else {
77751        }
77752    }
77753
77754    #[inline]
77755    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>, __ast_path: &mut AstKindPath) {
77756        if self.enabled {
77757            <V as VisitMutAstPath>::visit_mut_opt_stmt(&mut self.visitor, node, __ast_path)
77758        } else {
77759        }
77760    }
77761
77762    #[inline]
77763    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>, __ast_path: &mut AstKindPath) {
77764        if self.enabled {
77765            <V as VisitMutAstPath>::visit_mut_opt_str(&mut self.visitor, node, __ast_path)
77766        } else {
77767        }
77768    }
77769
77770    #[inline]
77771    fn visit_mut_opt_true_plus_minus(
77772        &mut self,
77773        node: &mut Option<TruePlusMinus>,
77774        __ast_path: &mut AstKindPath,
77775    ) {
77776        if self.enabled {
77777            <V as VisitMutAstPath>::visit_mut_opt_true_plus_minus(
77778                &mut self.visitor,
77779                node,
77780                __ast_path,
77781            )
77782        } else {
77783        }
77784    }
77785
77786    #[inline]
77787    fn visit_mut_opt_ts_entity_name(
77788        &mut self,
77789        node: &mut Option<TsEntityName>,
77790        __ast_path: &mut AstKindPath,
77791    ) {
77792        if self.enabled {
77793            <V as VisitMutAstPath>::visit_mut_opt_ts_entity_name(
77794                &mut self.visitor,
77795                node,
77796                __ast_path,
77797            )
77798        } else {
77799        }
77800    }
77801
77802    #[inline]
77803    fn visit_mut_opt_ts_import_call_options(
77804        &mut self,
77805        node: &mut Option<TsImportCallOptions>,
77806        __ast_path: &mut AstKindPath,
77807    ) {
77808        if self.enabled {
77809            <V as VisitMutAstPath>::visit_mut_opt_ts_import_call_options(
77810                &mut self.visitor,
77811                node,
77812                __ast_path,
77813            )
77814        } else {
77815        }
77816    }
77817
77818    #[inline]
77819    fn visit_mut_opt_ts_namespace_body(
77820        &mut self,
77821        node: &mut Option<TsNamespaceBody>,
77822        __ast_path: &mut AstKindPath,
77823    ) {
77824        if self.enabled {
77825            <V as VisitMutAstPath>::visit_mut_opt_ts_namespace_body(
77826                &mut self.visitor,
77827                node,
77828                __ast_path,
77829            )
77830        } else {
77831        }
77832    }
77833
77834    #[inline]
77835    fn visit_mut_opt_ts_type(
77836        &mut self,
77837        node: &mut Option<Box<TsType>>,
77838        __ast_path: &mut AstKindPath,
77839    ) {
77840        if self.enabled {
77841            <V as VisitMutAstPath>::visit_mut_opt_ts_type(&mut self.visitor, node, __ast_path)
77842        } else {
77843        }
77844    }
77845
77846    #[inline]
77847    fn visit_mut_opt_ts_type_ann(
77848        &mut self,
77849        node: &mut Option<Box<TsTypeAnn>>,
77850        __ast_path: &mut AstKindPath,
77851    ) {
77852        if self.enabled {
77853            <V as VisitMutAstPath>::visit_mut_opt_ts_type_ann(&mut self.visitor, node, __ast_path)
77854        } else {
77855        }
77856    }
77857
77858    #[inline]
77859    fn visit_mut_opt_ts_type_param_decl(
77860        &mut self,
77861        node: &mut Option<Box<TsTypeParamDecl>>,
77862        __ast_path: &mut AstKindPath,
77863    ) {
77864        if self.enabled {
77865            <V as VisitMutAstPath>::visit_mut_opt_ts_type_param_decl(
77866                &mut self.visitor,
77867                node,
77868                __ast_path,
77869            )
77870        } else {
77871        }
77872    }
77873
77874    #[inline]
77875    fn visit_mut_opt_ts_type_param_instantiation(
77876        &mut self,
77877        node: &mut Option<Box<TsTypeParamInstantiation>>,
77878        __ast_path: &mut AstKindPath,
77879    ) {
77880        if self.enabled {
77881            <V as VisitMutAstPath>::visit_mut_opt_ts_type_param_instantiation(
77882                &mut self.visitor,
77883                node,
77884                __ast_path,
77885            )
77886        } else {
77887        }
77888    }
77889
77890    #[inline]
77891    fn visit_mut_opt_var_decl_or_expr(
77892        &mut self,
77893        node: &mut Option<VarDeclOrExpr>,
77894        __ast_path: &mut AstKindPath,
77895    ) {
77896        if self.enabled {
77897            <V as VisitMutAstPath>::visit_mut_opt_var_decl_or_expr(
77898                &mut self.visitor,
77899                node,
77900                __ast_path,
77901            )
77902        } else {
77903        }
77904    }
77905
77906    #[inline]
77907    fn visit_mut_opt_vec_expr_or_spreads(
77908        &mut self,
77909        node: &mut Vec<Option<ExprOrSpread>>,
77910        __ast_path: &mut AstKindPath,
77911    ) {
77912        if self.enabled {
77913            <V as VisitMutAstPath>::visit_mut_opt_vec_expr_or_spreads(
77914                &mut self.visitor,
77915                node,
77916                __ast_path,
77917            )
77918        } else {
77919        }
77920    }
77921
77922    #[inline]
77923    fn visit_mut_opt_vec_pats(
77924        &mut self,
77925        node: &mut Vec<Option<Pat>>,
77926        __ast_path: &mut AstKindPath,
77927    ) {
77928        if self.enabled {
77929            <V as VisitMutAstPath>::visit_mut_opt_vec_pats(&mut self.visitor, node, __ast_path)
77930        } else {
77931        }
77932    }
77933
77934    #[inline]
77935    fn visit_mut_param(&mut self, node: &mut Param, __ast_path: &mut AstKindPath) {
77936        if self.enabled {
77937            <V as VisitMutAstPath>::visit_mut_param(&mut self.visitor, node, __ast_path)
77938        } else {
77939        }
77940    }
77941
77942    #[inline]
77943    fn visit_mut_param_or_ts_param_prop(
77944        &mut self,
77945        node: &mut ParamOrTsParamProp,
77946        __ast_path: &mut AstKindPath,
77947    ) {
77948        if self.enabled {
77949            <V as VisitMutAstPath>::visit_mut_param_or_ts_param_prop(
77950                &mut self.visitor,
77951                node,
77952                __ast_path,
77953            )
77954        } else {
77955        }
77956    }
77957
77958    #[inline]
77959    fn visit_mut_param_or_ts_param_props(
77960        &mut self,
77961        node: &mut Vec<ParamOrTsParamProp>,
77962        __ast_path: &mut AstKindPath,
77963    ) {
77964        if self.enabled {
77965            <V as VisitMutAstPath>::visit_mut_param_or_ts_param_props(
77966                &mut self.visitor,
77967                node,
77968                __ast_path,
77969            )
77970        } else {
77971        }
77972    }
77973
77974    #[inline]
77975    fn visit_mut_params(&mut self, node: &mut Vec<Param>, __ast_path: &mut AstKindPath) {
77976        if self.enabled {
77977            <V as VisitMutAstPath>::visit_mut_params(&mut self.visitor, node, __ast_path)
77978        } else {
77979        }
77980    }
77981
77982    #[inline]
77983    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr, __ast_path: &mut AstKindPath) {
77984        if self.enabled {
77985            <V as VisitMutAstPath>::visit_mut_paren_expr(&mut self.visitor, node, __ast_path)
77986        } else {
77987        }
77988    }
77989
77990    #[inline]
77991    fn visit_mut_pat(&mut self, node: &mut Pat, __ast_path: &mut AstKindPath) {
77992        if self.enabled {
77993            <V as VisitMutAstPath>::visit_mut_pat(&mut self.visitor, node, __ast_path)
77994        } else {
77995        }
77996    }
77997
77998    #[inline]
77999    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>, __ast_path: &mut AstKindPath) {
78000        if self.enabled {
78001            <V as VisitMutAstPath>::visit_mut_pats(&mut self.visitor, node, __ast_path)
78002        } else {
78003        }
78004    }
78005
78006    #[inline]
78007    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod, __ast_path: &mut AstKindPath) {
78008        if self.enabled {
78009            <V as VisitMutAstPath>::visit_mut_private_method(&mut self.visitor, node, __ast_path)
78010        } else {
78011        }
78012    }
78013
78014    #[inline]
78015    fn visit_mut_private_name(&mut self, node: &mut PrivateName, __ast_path: &mut AstKindPath) {
78016        if self.enabled {
78017            <V as VisitMutAstPath>::visit_mut_private_name(&mut self.visitor, node, __ast_path)
78018        } else {
78019        }
78020    }
78021
78022    #[inline]
78023    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp, __ast_path: &mut AstKindPath) {
78024        if self.enabled {
78025            <V as VisitMutAstPath>::visit_mut_private_prop(&mut self.visitor, node, __ast_path)
78026        } else {
78027        }
78028    }
78029
78030    #[inline]
78031    fn visit_mut_program(&mut self, node: &mut Program, __ast_path: &mut AstKindPath) {
78032        if self.enabled {
78033            <V as VisitMutAstPath>::visit_mut_program(&mut self.visitor, node, __ast_path)
78034        } else {
78035        }
78036    }
78037
78038    #[inline]
78039    fn visit_mut_prop(&mut self, node: &mut Prop, __ast_path: &mut AstKindPath) {
78040        if self.enabled {
78041            <V as VisitMutAstPath>::visit_mut_prop(&mut self.visitor, node, __ast_path)
78042        } else {
78043        }
78044    }
78045
78046    #[inline]
78047    fn visit_mut_prop_name(&mut self, node: &mut PropName, __ast_path: &mut AstKindPath) {
78048        if self.enabled {
78049            <V as VisitMutAstPath>::visit_mut_prop_name(&mut self.visitor, node, __ast_path)
78050        } else {
78051        }
78052    }
78053
78054    #[inline]
78055    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread, __ast_path: &mut AstKindPath) {
78056        if self.enabled {
78057            <V as VisitMutAstPath>::visit_mut_prop_or_spread(&mut self.visitor, node, __ast_path)
78058        } else {
78059        }
78060    }
78061
78062    #[inline]
78063    fn visit_mut_prop_or_spreads(
78064        &mut self,
78065        node: &mut Vec<PropOrSpread>,
78066        __ast_path: &mut AstKindPath,
78067    ) {
78068        if self.enabled {
78069            <V as VisitMutAstPath>::visit_mut_prop_or_spreads(&mut self.visitor, node, __ast_path)
78070        } else {
78071        }
78072    }
78073
78074    #[inline]
78075    fn visit_mut_regex(&mut self, node: &mut Regex, __ast_path: &mut AstKindPath) {
78076        if self.enabled {
78077            <V as VisitMutAstPath>::visit_mut_regex(&mut self.visitor, node, __ast_path)
78078        } else {
78079        }
78080    }
78081
78082    #[inline]
78083    fn visit_mut_rest_pat(&mut self, node: &mut RestPat, __ast_path: &mut AstKindPath) {
78084        if self.enabled {
78085            <V as VisitMutAstPath>::visit_mut_rest_pat(&mut self.visitor, node, __ast_path)
78086        } else {
78087        }
78088    }
78089
78090    #[inline]
78091    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt, __ast_path: &mut AstKindPath) {
78092        if self.enabled {
78093            <V as VisitMutAstPath>::visit_mut_return_stmt(&mut self.visitor, node, __ast_path)
78094        } else {
78095        }
78096    }
78097
78098    #[inline]
78099    fn visit_mut_script(&mut self, node: &mut Script, __ast_path: &mut AstKindPath) {
78100        if self.enabled {
78101            <V as VisitMutAstPath>::visit_mut_script(&mut self.visitor, node, __ast_path)
78102        } else {
78103        }
78104    }
78105
78106    #[inline]
78107    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr, __ast_path: &mut AstKindPath) {
78108        if self.enabled {
78109            <V as VisitMutAstPath>::visit_mut_seq_expr(&mut self.visitor, node, __ast_path)
78110        } else {
78111        }
78112    }
78113
78114    #[inline]
78115    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp, __ast_path: &mut AstKindPath) {
78116        if self.enabled {
78117            <V as VisitMutAstPath>::visit_mut_setter_prop(&mut self.visitor, node, __ast_path)
78118        } else {
78119        }
78120    }
78121
78122    #[inline]
78123    fn visit_mut_simple_assign_target(
78124        &mut self,
78125        node: &mut SimpleAssignTarget,
78126        __ast_path: &mut AstKindPath,
78127    ) {
78128        if self.enabled {
78129            <V as VisitMutAstPath>::visit_mut_simple_assign_target(
78130                &mut self.visitor,
78131                node,
78132                __ast_path,
78133            )
78134        } else {
78135        }
78136    }
78137
78138    #[inline]
78139    fn visit_mut_span(&mut self, node: &mut swc_common::Span, __ast_path: &mut AstKindPath) {
78140        if self.enabled {
78141            <V as VisitMutAstPath>::visit_mut_span(&mut self.visitor, node, __ast_path)
78142        } else {
78143        }
78144    }
78145
78146    #[inline]
78147    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement, __ast_path: &mut AstKindPath) {
78148        if self.enabled {
78149            <V as VisitMutAstPath>::visit_mut_spread_element(&mut self.visitor, node, __ast_path)
78150        } else {
78151        }
78152    }
78153
78154    #[inline]
78155    fn visit_mut_static_block(&mut self, node: &mut StaticBlock, __ast_path: &mut AstKindPath) {
78156        if self.enabled {
78157            <V as VisitMutAstPath>::visit_mut_static_block(&mut self.visitor, node, __ast_path)
78158        } else {
78159        }
78160    }
78161
78162    #[inline]
78163    fn visit_mut_stmt(&mut self, node: &mut Stmt, __ast_path: &mut AstKindPath) {
78164        if self.enabled {
78165            <V as VisitMutAstPath>::visit_mut_stmt(&mut self.visitor, node, __ast_path)
78166        } else {
78167        }
78168    }
78169
78170    #[inline]
78171    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>, __ast_path: &mut AstKindPath) {
78172        if self.enabled {
78173            <V as VisitMutAstPath>::visit_mut_stmts(&mut self.visitor, node, __ast_path)
78174        } else {
78175        }
78176    }
78177
78178    #[inline]
78179    fn visit_mut_str(&mut self, node: &mut Str, __ast_path: &mut AstKindPath) {
78180        if self.enabled {
78181            <V as VisitMutAstPath>::visit_mut_str(&mut self.visitor, node, __ast_path)
78182        } else {
78183        }
78184    }
78185
78186    #[inline]
78187    fn visit_mut_super(&mut self, node: &mut Super, __ast_path: &mut AstKindPath) {
78188        if self.enabled {
78189            <V as VisitMutAstPath>::visit_mut_super(&mut self.visitor, node, __ast_path)
78190        } else {
78191        }
78192    }
78193
78194    #[inline]
78195    fn visit_mut_super_prop(&mut self, node: &mut SuperProp, __ast_path: &mut AstKindPath) {
78196        if self.enabled {
78197            <V as VisitMutAstPath>::visit_mut_super_prop(&mut self.visitor, node, __ast_path)
78198        } else {
78199        }
78200    }
78201
78202    #[inline]
78203    fn visit_mut_super_prop_expr(
78204        &mut self,
78205        node: &mut SuperPropExpr,
78206        __ast_path: &mut AstKindPath,
78207    ) {
78208        if self.enabled {
78209            <V as VisitMutAstPath>::visit_mut_super_prop_expr(&mut self.visitor, node, __ast_path)
78210        } else {
78211        }
78212    }
78213
78214    #[inline]
78215    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase, __ast_path: &mut AstKindPath) {
78216        if self.enabled {
78217            <V as VisitMutAstPath>::visit_mut_switch_case(&mut self.visitor, node, __ast_path)
78218        } else {
78219        }
78220    }
78221
78222    #[inline]
78223    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>, __ast_path: &mut AstKindPath) {
78224        if self.enabled {
78225            <V as VisitMutAstPath>::visit_mut_switch_cases(&mut self.visitor, node, __ast_path)
78226        } else {
78227        }
78228    }
78229
78230    #[inline]
78231    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt, __ast_path: &mut AstKindPath) {
78232        if self.enabled {
78233            <V as VisitMutAstPath>::visit_mut_switch_stmt(&mut self.visitor, node, __ast_path)
78234        } else {
78235        }
78236    }
78237
78238    #[inline]
78239    fn visit_mut_syntax_context(
78240        &mut self,
78241        node: &mut swc_common::SyntaxContext,
78242        __ast_path: &mut AstKindPath,
78243    ) {
78244        if self.enabled {
78245            <V as VisitMutAstPath>::visit_mut_syntax_context(&mut self.visitor, node, __ast_path)
78246        } else {
78247        }
78248    }
78249
78250    #[inline]
78251    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl, __ast_path: &mut AstKindPath) {
78252        if self.enabled {
78253            <V as VisitMutAstPath>::visit_mut_tagged_tpl(&mut self.visitor, node, __ast_path)
78254        } else {
78255        }
78256    }
78257
78258    #[inline]
78259    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr, __ast_path: &mut AstKindPath) {
78260        if self.enabled {
78261            <V as VisitMutAstPath>::visit_mut_this_expr(&mut self.visitor, node, __ast_path)
78262        } else {
78263        }
78264    }
78265
78266    #[inline]
78267    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt, __ast_path: &mut AstKindPath) {
78268        if self.enabled {
78269            <V as VisitMutAstPath>::visit_mut_throw_stmt(&mut self.visitor, node, __ast_path)
78270        } else {
78271        }
78272    }
78273
78274    #[inline]
78275    fn visit_mut_tpl(&mut self, node: &mut Tpl, __ast_path: &mut AstKindPath) {
78276        if self.enabled {
78277            <V as VisitMutAstPath>::visit_mut_tpl(&mut self.visitor, node, __ast_path)
78278        } else {
78279        }
78280    }
78281
78282    #[inline]
78283    fn visit_mut_tpl_element(&mut self, node: &mut TplElement, __ast_path: &mut AstKindPath) {
78284        if self.enabled {
78285            <V as VisitMutAstPath>::visit_mut_tpl_element(&mut self.visitor, node, __ast_path)
78286        } else {
78287        }
78288    }
78289
78290    #[inline]
78291    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>, __ast_path: &mut AstKindPath) {
78292        if self.enabled {
78293            <V as VisitMutAstPath>::visit_mut_tpl_elements(&mut self.visitor, node, __ast_path)
78294        } else {
78295        }
78296    }
78297
78298    #[inline]
78299    fn visit_mut_true_plus_minus(
78300        &mut self,
78301        node: &mut TruePlusMinus,
78302        __ast_path: &mut AstKindPath,
78303    ) {
78304        if self.enabled {
78305            <V as VisitMutAstPath>::visit_mut_true_plus_minus(&mut self.visitor, node, __ast_path)
78306        } else {
78307        }
78308    }
78309
78310    #[inline]
78311    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt, __ast_path: &mut AstKindPath) {
78312        if self.enabled {
78313            <V as VisitMutAstPath>::visit_mut_try_stmt(&mut self.visitor, node, __ast_path)
78314        } else {
78315        }
78316    }
78317
78318    #[inline]
78319    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType, __ast_path: &mut AstKindPath) {
78320        if self.enabled {
78321            <V as VisitMutAstPath>::visit_mut_ts_array_type(&mut self.visitor, node, __ast_path)
78322        } else {
78323        }
78324    }
78325
78326    #[inline]
78327    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr, __ast_path: &mut AstKindPath) {
78328        if self.enabled {
78329            <V as VisitMutAstPath>::visit_mut_ts_as_expr(&mut self.visitor, node, __ast_path)
78330        } else {
78331        }
78332    }
78333
78334    #[inline]
78335    fn visit_mut_ts_call_signature_decl(
78336        &mut self,
78337        node: &mut TsCallSignatureDecl,
78338        __ast_path: &mut AstKindPath,
78339    ) {
78340        if self.enabled {
78341            <V as VisitMutAstPath>::visit_mut_ts_call_signature_decl(
78342                &mut self.visitor,
78343                node,
78344                __ast_path,
78345            )
78346        } else {
78347        }
78348    }
78349
78350    #[inline]
78351    fn visit_mut_ts_conditional_type(
78352        &mut self,
78353        node: &mut TsConditionalType,
78354        __ast_path: &mut AstKindPath,
78355    ) {
78356        if self.enabled {
78357            <V as VisitMutAstPath>::visit_mut_ts_conditional_type(
78358                &mut self.visitor,
78359                node,
78360                __ast_path,
78361            )
78362        } else {
78363        }
78364    }
78365
78366    #[inline]
78367    fn visit_mut_ts_const_assertion(
78368        &mut self,
78369        node: &mut TsConstAssertion,
78370        __ast_path: &mut AstKindPath,
78371    ) {
78372        if self.enabled {
78373            <V as VisitMutAstPath>::visit_mut_ts_const_assertion(
78374                &mut self.visitor,
78375                node,
78376                __ast_path,
78377            )
78378        } else {
78379        }
78380    }
78381
78382    #[inline]
78383    fn visit_mut_ts_construct_signature_decl(
78384        &mut self,
78385        node: &mut TsConstructSignatureDecl,
78386        __ast_path: &mut AstKindPath,
78387    ) {
78388        if self.enabled {
78389            <V as VisitMutAstPath>::visit_mut_ts_construct_signature_decl(
78390                &mut self.visitor,
78391                node,
78392                __ast_path,
78393            )
78394        } else {
78395        }
78396    }
78397
78398    #[inline]
78399    fn visit_mut_ts_constructor_type(
78400        &mut self,
78401        node: &mut TsConstructorType,
78402        __ast_path: &mut AstKindPath,
78403    ) {
78404        if self.enabled {
78405            <V as VisitMutAstPath>::visit_mut_ts_constructor_type(
78406                &mut self.visitor,
78407                node,
78408                __ast_path,
78409            )
78410        } else {
78411        }
78412    }
78413
78414    #[inline]
78415    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName, __ast_path: &mut AstKindPath) {
78416        if self.enabled {
78417            <V as VisitMutAstPath>::visit_mut_ts_entity_name(&mut self.visitor, node, __ast_path)
78418        } else {
78419        }
78420    }
78421
78422    #[inline]
78423    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl, __ast_path: &mut AstKindPath) {
78424        if self.enabled {
78425            <V as VisitMutAstPath>::visit_mut_ts_enum_decl(&mut self.visitor, node, __ast_path)
78426        } else {
78427        }
78428    }
78429
78430    #[inline]
78431    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember, __ast_path: &mut AstKindPath) {
78432        if self.enabled {
78433            <V as VisitMutAstPath>::visit_mut_ts_enum_member(&mut self.visitor, node, __ast_path)
78434        } else {
78435        }
78436    }
78437
78438    #[inline]
78439    fn visit_mut_ts_enum_member_id(
78440        &mut self,
78441        node: &mut TsEnumMemberId,
78442        __ast_path: &mut AstKindPath,
78443    ) {
78444        if self.enabled {
78445            <V as VisitMutAstPath>::visit_mut_ts_enum_member_id(&mut self.visitor, node, __ast_path)
78446        } else {
78447        }
78448    }
78449
78450    #[inline]
78451    fn visit_mut_ts_enum_members(
78452        &mut self,
78453        node: &mut Vec<TsEnumMember>,
78454        __ast_path: &mut AstKindPath,
78455    ) {
78456        if self.enabled {
78457            <V as VisitMutAstPath>::visit_mut_ts_enum_members(&mut self.visitor, node, __ast_path)
78458        } else {
78459        }
78460    }
78461
78462    #[inline]
78463    fn visit_mut_ts_export_assignment(
78464        &mut self,
78465        node: &mut TsExportAssignment,
78466        __ast_path: &mut AstKindPath,
78467    ) {
78468        if self.enabled {
78469            <V as VisitMutAstPath>::visit_mut_ts_export_assignment(
78470                &mut self.visitor,
78471                node,
78472                __ast_path,
78473            )
78474        } else {
78475        }
78476    }
78477
78478    #[inline]
78479    fn visit_mut_ts_expr_with_type_args(
78480        &mut self,
78481        node: &mut TsExprWithTypeArgs,
78482        __ast_path: &mut AstKindPath,
78483    ) {
78484        if self.enabled {
78485            <V as VisitMutAstPath>::visit_mut_ts_expr_with_type_args(
78486                &mut self.visitor,
78487                node,
78488                __ast_path,
78489            )
78490        } else {
78491        }
78492    }
78493
78494    #[inline]
78495    fn visit_mut_ts_expr_with_type_argss(
78496        &mut self,
78497        node: &mut Vec<TsExprWithTypeArgs>,
78498        __ast_path: &mut AstKindPath,
78499    ) {
78500        if self.enabled {
78501            <V as VisitMutAstPath>::visit_mut_ts_expr_with_type_argss(
78502                &mut self.visitor,
78503                node,
78504                __ast_path,
78505            )
78506        } else {
78507        }
78508    }
78509
78510    #[inline]
78511    fn visit_mut_ts_external_module_ref(
78512        &mut self,
78513        node: &mut TsExternalModuleRef,
78514        __ast_path: &mut AstKindPath,
78515    ) {
78516        if self.enabled {
78517            <V as VisitMutAstPath>::visit_mut_ts_external_module_ref(
78518                &mut self.visitor,
78519                node,
78520                __ast_path,
78521            )
78522        } else {
78523        }
78524    }
78525
78526    #[inline]
78527    fn visit_mut_ts_fn_or_constructor_type(
78528        &mut self,
78529        node: &mut TsFnOrConstructorType,
78530        __ast_path: &mut AstKindPath,
78531    ) {
78532        if self.enabled {
78533            <V as VisitMutAstPath>::visit_mut_ts_fn_or_constructor_type(
78534                &mut self.visitor,
78535                node,
78536                __ast_path,
78537            )
78538        } else {
78539        }
78540    }
78541
78542    #[inline]
78543    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam, __ast_path: &mut AstKindPath) {
78544        if self.enabled {
78545            <V as VisitMutAstPath>::visit_mut_ts_fn_param(&mut self.visitor, node, __ast_path)
78546        } else {
78547        }
78548    }
78549
78550    #[inline]
78551    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>, __ast_path: &mut AstKindPath) {
78552        if self.enabled {
78553            <V as VisitMutAstPath>::visit_mut_ts_fn_params(&mut self.visitor, node, __ast_path)
78554        } else {
78555        }
78556    }
78557
78558    #[inline]
78559    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType, __ast_path: &mut AstKindPath) {
78560        if self.enabled {
78561            <V as VisitMutAstPath>::visit_mut_ts_fn_type(&mut self.visitor, node, __ast_path)
78562        } else {
78563        }
78564    }
78565
78566    #[inline]
78567    fn visit_mut_ts_getter_signature(
78568        &mut self,
78569        node: &mut TsGetterSignature,
78570        __ast_path: &mut AstKindPath,
78571    ) {
78572        if self.enabled {
78573            <V as VisitMutAstPath>::visit_mut_ts_getter_signature(
78574                &mut self.visitor,
78575                node,
78576                __ast_path,
78577            )
78578        } else {
78579        }
78580    }
78581
78582    #[inline]
78583    fn visit_mut_ts_import_call_options(
78584        &mut self,
78585        node: &mut TsImportCallOptions,
78586        __ast_path: &mut AstKindPath,
78587    ) {
78588        if self.enabled {
78589            <V as VisitMutAstPath>::visit_mut_ts_import_call_options(
78590                &mut self.visitor,
78591                node,
78592                __ast_path,
78593            )
78594        } else {
78595        }
78596    }
78597
78598    #[inline]
78599    fn visit_mut_ts_import_equals_decl(
78600        &mut self,
78601        node: &mut TsImportEqualsDecl,
78602        __ast_path: &mut AstKindPath,
78603    ) {
78604        if self.enabled {
78605            <V as VisitMutAstPath>::visit_mut_ts_import_equals_decl(
78606                &mut self.visitor,
78607                node,
78608                __ast_path,
78609            )
78610        } else {
78611        }
78612    }
78613
78614    #[inline]
78615    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType, __ast_path: &mut AstKindPath) {
78616        if self.enabled {
78617            <V as VisitMutAstPath>::visit_mut_ts_import_type(&mut self.visitor, node, __ast_path)
78618        } else {
78619        }
78620    }
78621
78622    #[inline]
78623    fn visit_mut_ts_index_signature(
78624        &mut self,
78625        node: &mut TsIndexSignature,
78626        __ast_path: &mut AstKindPath,
78627    ) {
78628        if self.enabled {
78629            <V as VisitMutAstPath>::visit_mut_ts_index_signature(
78630                &mut self.visitor,
78631                node,
78632                __ast_path,
78633            )
78634        } else {
78635        }
78636    }
78637
78638    #[inline]
78639    fn visit_mut_ts_indexed_access_type(
78640        &mut self,
78641        node: &mut TsIndexedAccessType,
78642        __ast_path: &mut AstKindPath,
78643    ) {
78644        if self.enabled {
78645            <V as VisitMutAstPath>::visit_mut_ts_indexed_access_type(
78646                &mut self.visitor,
78647                node,
78648                __ast_path,
78649            )
78650        } else {
78651        }
78652    }
78653
78654    #[inline]
78655    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType, __ast_path: &mut AstKindPath) {
78656        if self.enabled {
78657            <V as VisitMutAstPath>::visit_mut_ts_infer_type(&mut self.visitor, node, __ast_path)
78658        } else {
78659        }
78660    }
78661
78662    #[inline]
78663    fn visit_mut_ts_instantiation(
78664        &mut self,
78665        node: &mut TsInstantiation,
78666        __ast_path: &mut AstKindPath,
78667    ) {
78668        if self.enabled {
78669            <V as VisitMutAstPath>::visit_mut_ts_instantiation(&mut self.visitor, node, __ast_path)
78670        } else {
78671        }
78672    }
78673
78674    #[inline]
78675    fn visit_mut_ts_interface_body(
78676        &mut self,
78677        node: &mut TsInterfaceBody,
78678        __ast_path: &mut AstKindPath,
78679    ) {
78680        if self.enabled {
78681            <V as VisitMutAstPath>::visit_mut_ts_interface_body(&mut self.visitor, node, __ast_path)
78682        } else {
78683        }
78684    }
78685
78686    #[inline]
78687    fn visit_mut_ts_interface_decl(
78688        &mut self,
78689        node: &mut TsInterfaceDecl,
78690        __ast_path: &mut AstKindPath,
78691    ) {
78692        if self.enabled {
78693            <V as VisitMutAstPath>::visit_mut_ts_interface_decl(&mut self.visitor, node, __ast_path)
78694        } else {
78695        }
78696    }
78697
78698    #[inline]
78699    fn visit_mut_ts_intersection_type(
78700        &mut self,
78701        node: &mut TsIntersectionType,
78702        __ast_path: &mut AstKindPath,
78703    ) {
78704        if self.enabled {
78705            <V as VisitMutAstPath>::visit_mut_ts_intersection_type(
78706                &mut self.visitor,
78707                node,
78708                __ast_path,
78709            )
78710        } else {
78711        }
78712    }
78713
78714    #[inline]
78715    fn visit_mut_ts_keyword_type(
78716        &mut self,
78717        node: &mut TsKeywordType,
78718        __ast_path: &mut AstKindPath,
78719    ) {
78720        if self.enabled {
78721            <V as VisitMutAstPath>::visit_mut_ts_keyword_type(&mut self.visitor, node, __ast_path)
78722        } else {
78723        }
78724    }
78725
78726    #[inline]
78727    fn visit_mut_ts_keyword_type_kind(
78728        &mut self,
78729        node: &mut TsKeywordTypeKind,
78730        __ast_path: &mut AstKindPath,
78731    ) {
78732        if self.enabled {
78733            <V as VisitMutAstPath>::visit_mut_ts_keyword_type_kind(
78734                &mut self.visitor,
78735                node,
78736                __ast_path,
78737            )
78738        } else {
78739        }
78740    }
78741
78742    #[inline]
78743    fn visit_mut_ts_lit(&mut self, node: &mut TsLit, __ast_path: &mut AstKindPath) {
78744        if self.enabled {
78745            <V as VisitMutAstPath>::visit_mut_ts_lit(&mut self.visitor, node, __ast_path)
78746        } else {
78747        }
78748    }
78749
78750    #[inline]
78751    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType, __ast_path: &mut AstKindPath) {
78752        if self.enabled {
78753            <V as VisitMutAstPath>::visit_mut_ts_lit_type(&mut self.visitor, node, __ast_path)
78754        } else {
78755        }
78756    }
78757
78758    #[inline]
78759    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType, __ast_path: &mut AstKindPath) {
78760        if self.enabled {
78761            <V as VisitMutAstPath>::visit_mut_ts_mapped_type(&mut self.visitor, node, __ast_path)
78762        } else {
78763        }
78764    }
78765
78766    #[inline]
78767    fn visit_mut_ts_method_signature(
78768        &mut self,
78769        node: &mut TsMethodSignature,
78770        __ast_path: &mut AstKindPath,
78771    ) {
78772        if self.enabled {
78773            <V as VisitMutAstPath>::visit_mut_ts_method_signature(
78774                &mut self.visitor,
78775                node,
78776                __ast_path,
78777            )
78778        } else {
78779        }
78780    }
78781
78782    #[inline]
78783    fn visit_mut_ts_module_block(
78784        &mut self,
78785        node: &mut TsModuleBlock,
78786        __ast_path: &mut AstKindPath,
78787    ) {
78788        if self.enabled {
78789            <V as VisitMutAstPath>::visit_mut_ts_module_block(&mut self.visitor, node, __ast_path)
78790        } else {
78791        }
78792    }
78793
78794    #[inline]
78795    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl, __ast_path: &mut AstKindPath) {
78796        if self.enabled {
78797            <V as VisitMutAstPath>::visit_mut_ts_module_decl(&mut self.visitor, node, __ast_path)
78798        } else {
78799        }
78800    }
78801
78802    #[inline]
78803    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName, __ast_path: &mut AstKindPath) {
78804        if self.enabled {
78805            <V as VisitMutAstPath>::visit_mut_ts_module_name(&mut self.visitor, node, __ast_path)
78806        } else {
78807        }
78808    }
78809
78810    #[inline]
78811    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef, __ast_path: &mut AstKindPath) {
78812        if self.enabled {
78813            <V as VisitMutAstPath>::visit_mut_ts_module_ref(&mut self.visitor, node, __ast_path)
78814        } else {
78815        }
78816    }
78817
78818    #[inline]
78819    fn visit_mut_ts_namespace_body(
78820        &mut self,
78821        node: &mut TsNamespaceBody,
78822        __ast_path: &mut AstKindPath,
78823    ) {
78824        if self.enabled {
78825            <V as VisitMutAstPath>::visit_mut_ts_namespace_body(&mut self.visitor, node, __ast_path)
78826        } else {
78827        }
78828    }
78829
78830    #[inline]
78831    fn visit_mut_ts_namespace_decl(
78832        &mut self,
78833        node: &mut TsNamespaceDecl,
78834        __ast_path: &mut AstKindPath,
78835    ) {
78836        if self.enabled {
78837            <V as VisitMutAstPath>::visit_mut_ts_namespace_decl(&mut self.visitor, node, __ast_path)
78838        } else {
78839        }
78840    }
78841
78842    #[inline]
78843    fn visit_mut_ts_namespace_export_decl(
78844        &mut self,
78845        node: &mut TsNamespaceExportDecl,
78846        __ast_path: &mut AstKindPath,
78847    ) {
78848        if self.enabled {
78849            <V as VisitMutAstPath>::visit_mut_ts_namespace_export_decl(
78850                &mut self.visitor,
78851                node,
78852                __ast_path,
78853            )
78854        } else {
78855        }
78856    }
78857
78858    #[inline]
78859    fn visit_mut_ts_non_null_expr(
78860        &mut self,
78861        node: &mut TsNonNullExpr,
78862        __ast_path: &mut AstKindPath,
78863    ) {
78864        if self.enabled {
78865            <V as VisitMutAstPath>::visit_mut_ts_non_null_expr(&mut self.visitor, node, __ast_path)
78866        } else {
78867        }
78868    }
78869
78870    #[inline]
78871    fn visit_mut_ts_optional_type(
78872        &mut self,
78873        node: &mut TsOptionalType,
78874        __ast_path: &mut AstKindPath,
78875    ) {
78876        if self.enabled {
78877            <V as VisitMutAstPath>::visit_mut_ts_optional_type(&mut self.visitor, node, __ast_path)
78878        } else {
78879        }
78880    }
78881
78882    #[inline]
78883    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp, __ast_path: &mut AstKindPath) {
78884        if self.enabled {
78885            <V as VisitMutAstPath>::visit_mut_ts_param_prop(&mut self.visitor, node, __ast_path)
78886        } else {
78887        }
78888    }
78889
78890    #[inline]
78891    fn visit_mut_ts_param_prop_param(
78892        &mut self,
78893        node: &mut TsParamPropParam,
78894        __ast_path: &mut AstKindPath,
78895    ) {
78896        if self.enabled {
78897            <V as VisitMutAstPath>::visit_mut_ts_param_prop_param(
78898                &mut self.visitor,
78899                node,
78900                __ast_path,
78901            )
78902        } else {
78903        }
78904    }
78905
78906    #[inline]
78907    fn visit_mut_ts_parenthesized_type(
78908        &mut self,
78909        node: &mut TsParenthesizedType,
78910        __ast_path: &mut AstKindPath,
78911    ) {
78912        if self.enabled {
78913            <V as VisitMutAstPath>::visit_mut_ts_parenthesized_type(
78914                &mut self.visitor,
78915                node,
78916                __ast_path,
78917            )
78918        } else {
78919        }
78920    }
78921
78922    #[inline]
78923    fn visit_mut_ts_property_signature(
78924        &mut self,
78925        node: &mut TsPropertySignature,
78926        __ast_path: &mut AstKindPath,
78927    ) {
78928        if self.enabled {
78929            <V as VisitMutAstPath>::visit_mut_ts_property_signature(
78930                &mut self.visitor,
78931                node,
78932                __ast_path,
78933            )
78934        } else {
78935        }
78936    }
78937
78938    #[inline]
78939    fn visit_mut_ts_qualified_name(
78940        &mut self,
78941        node: &mut TsQualifiedName,
78942        __ast_path: &mut AstKindPath,
78943    ) {
78944        if self.enabled {
78945            <V as VisitMutAstPath>::visit_mut_ts_qualified_name(&mut self.visitor, node, __ast_path)
78946        } else {
78947        }
78948    }
78949
78950    #[inline]
78951    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType, __ast_path: &mut AstKindPath) {
78952        if self.enabled {
78953            <V as VisitMutAstPath>::visit_mut_ts_rest_type(&mut self.visitor, node, __ast_path)
78954        } else {
78955        }
78956    }
78957
78958    #[inline]
78959    fn visit_mut_ts_satisfies_expr(
78960        &mut self,
78961        node: &mut TsSatisfiesExpr,
78962        __ast_path: &mut AstKindPath,
78963    ) {
78964        if self.enabled {
78965            <V as VisitMutAstPath>::visit_mut_ts_satisfies_expr(&mut self.visitor, node, __ast_path)
78966        } else {
78967        }
78968    }
78969
78970    #[inline]
78971    fn visit_mut_ts_setter_signature(
78972        &mut self,
78973        node: &mut TsSetterSignature,
78974        __ast_path: &mut AstKindPath,
78975    ) {
78976        if self.enabled {
78977            <V as VisitMutAstPath>::visit_mut_ts_setter_signature(
78978                &mut self.visitor,
78979                node,
78980                __ast_path,
78981            )
78982        } else {
78983        }
78984    }
78985
78986    #[inline]
78987    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType, __ast_path: &mut AstKindPath) {
78988        if self.enabled {
78989            <V as VisitMutAstPath>::visit_mut_ts_this_type(&mut self.visitor, node, __ast_path)
78990        } else {
78991        }
78992    }
78993
78994    #[inline]
78995    fn visit_mut_ts_this_type_or_ident(
78996        &mut self,
78997        node: &mut TsThisTypeOrIdent,
78998        __ast_path: &mut AstKindPath,
78999    ) {
79000        if self.enabled {
79001            <V as VisitMutAstPath>::visit_mut_ts_this_type_or_ident(
79002                &mut self.visitor,
79003                node,
79004                __ast_path,
79005            )
79006        } else {
79007        }
79008    }
79009
79010    #[inline]
79011    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType, __ast_path: &mut AstKindPath) {
79012        if self.enabled {
79013            <V as VisitMutAstPath>::visit_mut_ts_tpl_lit_type(&mut self.visitor, node, __ast_path)
79014        } else {
79015        }
79016    }
79017
79018    #[inline]
79019    fn visit_mut_ts_tuple_element(
79020        &mut self,
79021        node: &mut TsTupleElement,
79022        __ast_path: &mut AstKindPath,
79023    ) {
79024        if self.enabled {
79025            <V as VisitMutAstPath>::visit_mut_ts_tuple_element(&mut self.visitor, node, __ast_path)
79026        } else {
79027        }
79028    }
79029
79030    #[inline]
79031    fn visit_mut_ts_tuple_elements(
79032        &mut self,
79033        node: &mut Vec<TsTupleElement>,
79034        __ast_path: &mut AstKindPath,
79035    ) {
79036        if self.enabled {
79037            <V as VisitMutAstPath>::visit_mut_ts_tuple_elements(&mut self.visitor, node, __ast_path)
79038        } else {
79039        }
79040    }
79041
79042    #[inline]
79043    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType, __ast_path: &mut AstKindPath) {
79044        if self.enabled {
79045            <V as VisitMutAstPath>::visit_mut_ts_tuple_type(&mut self.visitor, node, __ast_path)
79046        } else {
79047        }
79048    }
79049
79050    #[inline]
79051    fn visit_mut_ts_type(&mut self, node: &mut TsType, __ast_path: &mut AstKindPath) {
79052        if self.enabled {
79053            <V as VisitMutAstPath>::visit_mut_ts_type(&mut self.visitor, node, __ast_path)
79054        } else {
79055        }
79056    }
79057
79058    #[inline]
79059    fn visit_mut_ts_type_alias_decl(
79060        &mut self,
79061        node: &mut TsTypeAliasDecl,
79062        __ast_path: &mut AstKindPath,
79063    ) {
79064        if self.enabled {
79065            <V as VisitMutAstPath>::visit_mut_ts_type_alias_decl(
79066                &mut self.visitor,
79067                node,
79068                __ast_path,
79069            )
79070        } else {
79071        }
79072    }
79073
79074    #[inline]
79075    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn, __ast_path: &mut AstKindPath) {
79076        if self.enabled {
79077            <V as VisitMutAstPath>::visit_mut_ts_type_ann(&mut self.visitor, node, __ast_path)
79078        } else {
79079        }
79080    }
79081
79082    #[inline]
79083    fn visit_mut_ts_type_assertion(
79084        &mut self,
79085        node: &mut TsTypeAssertion,
79086        __ast_path: &mut AstKindPath,
79087    ) {
79088        if self.enabled {
79089            <V as VisitMutAstPath>::visit_mut_ts_type_assertion(&mut self.visitor, node, __ast_path)
79090        } else {
79091        }
79092    }
79093
79094    #[inline]
79095    fn visit_mut_ts_type_element(
79096        &mut self,
79097        node: &mut TsTypeElement,
79098        __ast_path: &mut AstKindPath,
79099    ) {
79100        if self.enabled {
79101            <V as VisitMutAstPath>::visit_mut_ts_type_element(&mut self.visitor, node, __ast_path)
79102        } else {
79103        }
79104    }
79105
79106    #[inline]
79107    fn visit_mut_ts_type_elements(
79108        &mut self,
79109        node: &mut Vec<TsTypeElement>,
79110        __ast_path: &mut AstKindPath,
79111    ) {
79112        if self.enabled {
79113            <V as VisitMutAstPath>::visit_mut_ts_type_elements(&mut self.visitor, node, __ast_path)
79114        } else {
79115        }
79116    }
79117
79118    #[inline]
79119    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit, __ast_path: &mut AstKindPath) {
79120        if self.enabled {
79121            <V as VisitMutAstPath>::visit_mut_ts_type_lit(&mut self.visitor, node, __ast_path)
79122        } else {
79123        }
79124    }
79125
79126    #[inline]
79127    fn visit_mut_ts_type_operator(
79128        &mut self,
79129        node: &mut TsTypeOperator,
79130        __ast_path: &mut AstKindPath,
79131    ) {
79132        if self.enabled {
79133            <V as VisitMutAstPath>::visit_mut_ts_type_operator(&mut self.visitor, node, __ast_path)
79134        } else {
79135        }
79136    }
79137
79138    #[inline]
79139    fn visit_mut_ts_type_operator_op(
79140        &mut self,
79141        node: &mut TsTypeOperatorOp,
79142        __ast_path: &mut AstKindPath,
79143    ) {
79144        if self.enabled {
79145            <V as VisitMutAstPath>::visit_mut_ts_type_operator_op(
79146                &mut self.visitor,
79147                node,
79148                __ast_path,
79149            )
79150        } else {
79151        }
79152    }
79153
79154    #[inline]
79155    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam, __ast_path: &mut AstKindPath) {
79156        if self.enabled {
79157            <V as VisitMutAstPath>::visit_mut_ts_type_param(&mut self.visitor, node, __ast_path)
79158        } else {
79159        }
79160    }
79161
79162    #[inline]
79163    fn visit_mut_ts_type_param_decl(
79164        &mut self,
79165        node: &mut TsTypeParamDecl,
79166        __ast_path: &mut AstKindPath,
79167    ) {
79168        if self.enabled {
79169            <V as VisitMutAstPath>::visit_mut_ts_type_param_decl(
79170                &mut self.visitor,
79171                node,
79172                __ast_path,
79173            )
79174        } else {
79175        }
79176    }
79177
79178    #[inline]
79179    fn visit_mut_ts_type_param_instantiation(
79180        &mut self,
79181        node: &mut TsTypeParamInstantiation,
79182        __ast_path: &mut AstKindPath,
79183    ) {
79184        if self.enabled {
79185            <V as VisitMutAstPath>::visit_mut_ts_type_param_instantiation(
79186                &mut self.visitor,
79187                node,
79188                __ast_path,
79189            )
79190        } else {
79191        }
79192    }
79193
79194    #[inline]
79195    fn visit_mut_ts_type_params(
79196        &mut self,
79197        node: &mut Vec<TsTypeParam>,
79198        __ast_path: &mut AstKindPath,
79199    ) {
79200        if self.enabled {
79201            <V as VisitMutAstPath>::visit_mut_ts_type_params(&mut self.visitor, node, __ast_path)
79202        } else {
79203        }
79204    }
79205
79206    #[inline]
79207    fn visit_mut_ts_type_predicate(
79208        &mut self,
79209        node: &mut TsTypePredicate,
79210        __ast_path: &mut AstKindPath,
79211    ) {
79212        if self.enabled {
79213            <V as VisitMutAstPath>::visit_mut_ts_type_predicate(&mut self.visitor, node, __ast_path)
79214        } else {
79215        }
79216    }
79217
79218    #[inline]
79219    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery, __ast_path: &mut AstKindPath) {
79220        if self.enabled {
79221            <V as VisitMutAstPath>::visit_mut_ts_type_query(&mut self.visitor, node, __ast_path)
79222        } else {
79223        }
79224    }
79225
79226    #[inline]
79227    fn visit_mut_ts_type_query_expr(
79228        &mut self,
79229        node: &mut TsTypeQueryExpr,
79230        __ast_path: &mut AstKindPath,
79231    ) {
79232        if self.enabled {
79233            <V as VisitMutAstPath>::visit_mut_ts_type_query_expr(
79234                &mut self.visitor,
79235                node,
79236                __ast_path,
79237            )
79238        } else {
79239        }
79240    }
79241
79242    #[inline]
79243    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef, __ast_path: &mut AstKindPath) {
79244        if self.enabled {
79245            <V as VisitMutAstPath>::visit_mut_ts_type_ref(&mut self.visitor, node, __ast_path)
79246        } else {
79247        }
79248    }
79249
79250    #[inline]
79251    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>, __ast_path: &mut AstKindPath) {
79252        if self.enabled {
79253            <V as VisitMutAstPath>::visit_mut_ts_types(&mut self.visitor, node, __ast_path)
79254        } else {
79255        }
79256    }
79257
79258    #[inline]
79259    fn visit_mut_ts_union_or_intersection_type(
79260        &mut self,
79261        node: &mut TsUnionOrIntersectionType,
79262        __ast_path: &mut AstKindPath,
79263    ) {
79264        if self.enabled {
79265            <V as VisitMutAstPath>::visit_mut_ts_union_or_intersection_type(
79266                &mut self.visitor,
79267                node,
79268                __ast_path,
79269            )
79270        } else {
79271        }
79272    }
79273
79274    #[inline]
79275    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType, __ast_path: &mut AstKindPath) {
79276        if self.enabled {
79277            <V as VisitMutAstPath>::visit_mut_ts_union_type(&mut self.visitor, node, __ast_path)
79278        } else {
79279        }
79280    }
79281
79282    #[inline]
79283    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr, __ast_path: &mut AstKindPath) {
79284        if self.enabled {
79285            <V as VisitMutAstPath>::visit_mut_unary_expr(&mut self.visitor, node, __ast_path)
79286        } else {
79287        }
79288    }
79289
79290    #[inline]
79291    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp, __ast_path: &mut AstKindPath) {
79292        if self.enabled {
79293            <V as VisitMutAstPath>::visit_mut_unary_op(&mut self.visitor, node, __ast_path)
79294        } else {
79295        }
79296    }
79297
79298    #[inline]
79299    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr, __ast_path: &mut AstKindPath) {
79300        if self.enabled {
79301            <V as VisitMutAstPath>::visit_mut_update_expr(&mut self.visitor, node, __ast_path)
79302        } else {
79303        }
79304    }
79305
79306    #[inline]
79307    fn visit_mut_update_op(&mut self, node: &mut UpdateOp, __ast_path: &mut AstKindPath) {
79308        if self.enabled {
79309            <V as VisitMutAstPath>::visit_mut_update_op(&mut self.visitor, node, __ast_path)
79310        } else {
79311        }
79312    }
79313
79314    #[inline]
79315    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl, __ast_path: &mut AstKindPath) {
79316        if self.enabled {
79317            <V as VisitMutAstPath>::visit_mut_using_decl(&mut self.visitor, node, __ast_path)
79318        } else {
79319        }
79320    }
79321
79322    #[inline]
79323    fn visit_mut_var_decl(&mut self, node: &mut VarDecl, __ast_path: &mut AstKindPath) {
79324        if self.enabled {
79325            <V as VisitMutAstPath>::visit_mut_var_decl(&mut self.visitor, node, __ast_path)
79326        } else {
79327        }
79328    }
79329
79330    #[inline]
79331    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind, __ast_path: &mut AstKindPath) {
79332        if self.enabled {
79333            <V as VisitMutAstPath>::visit_mut_var_decl_kind(&mut self.visitor, node, __ast_path)
79334        } else {
79335        }
79336    }
79337
79338    #[inline]
79339    fn visit_mut_var_decl_or_expr(
79340        &mut self,
79341        node: &mut VarDeclOrExpr,
79342        __ast_path: &mut AstKindPath,
79343    ) {
79344        if self.enabled {
79345            <V as VisitMutAstPath>::visit_mut_var_decl_or_expr(&mut self.visitor, node, __ast_path)
79346        } else {
79347        }
79348    }
79349
79350    #[inline]
79351    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator, __ast_path: &mut AstKindPath) {
79352        if self.enabled {
79353            <V as VisitMutAstPath>::visit_mut_var_declarator(&mut self.visitor, node, __ast_path)
79354        } else {
79355        }
79356    }
79357
79358    #[inline]
79359    fn visit_mut_var_declarators(
79360        &mut self,
79361        node: &mut Vec<VarDeclarator>,
79362        __ast_path: &mut AstKindPath,
79363    ) {
79364        if self.enabled {
79365            <V as VisitMutAstPath>::visit_mut_var_declarators(&mut self.visitor, node, __ast_path)
79366        } else {
79367        }
79368    }
79369
79370    #[inline]
79371    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt, __ast_path: &mut AstKindPath) {
79372        if self.enabled {
79373            <V as VisitMutAstPath>::visit_mut_while_stmt(&mut self.visitor, node, __ast_path)
79374        } else {
79375        }
79376    }
79377
79378    #[inline]
79379    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt, __ast_path: &mut AstKindPath) {
79380        if self.enabled {
79381            <V as VisitMutAstPath>::visit_mut_with_stmt(&mut self.visitor, node, __ast_path)
79382        } else {
79383        }
79384    }
79385
79386    #[inline]
79387    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr, __ast_path: &mut AstKindPath) {
79388        if self.enabled {
79389            <V as VisitMutAstPath>::visit_mut_yield_expr(&mut self.visitor, node, __ast_path)
79390        } else {
79391        }
79392    }
79393}
79394#[doc = r" A trait implemented for types that can be visited using a visitor."]
79395#[cfg(any(docsrs, feature = "path"))]
79396#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79397pub trait VisitMutWithAstPath<V: ?Sized + VisitMutAstPath> {
79398    #[doc = r" Calls a visitor method (visitor.fold_xxx) with self."]
79399    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath);
79400    #[doc = r" Visit children nodes of `self`` with `visitor`."]
79401    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath);
79402}
79403#[cfg(any(docsrs, feature = "path"))]
79404#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79405impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Accessibility {
79406    #[doc = "Calls [VisitMutAstPath`::visit_mut_accessibility`] with `self`."]
79407    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79408        <V as VisitMutAstPath>::visit_mut_accessibility(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            Accessibility::Public => {}
79414            Accessibility::Protected => {}
79415            Accessibility::Private => {}
79416        }
79417    }
79418}
79419#[cfg(any(docsrs, feature = "path"))]
79420#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79421impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ArrayLit {
79422    #[doc = "Calls [VisitMutAstPath`::visit_mut_array_lit`] with `self`."]
79423    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79424        <V as VisitMutAstPath>::visit_mut_array_lit(visitor, self, __ast_path)
79425    }
79426
79427    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79428        match self {
79429            ArrayLit { span, elems } => {
79430                {
79431                    let mut __ast_path = __ast_path
79432                        .with_guard(AstParentKind::ArrayLit(self::fields::ArrayLitField::Span));
79433                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79434                        span,
79435                        visitor,
79436                        &mut *__ast_path,
79437                    )
79438                };
79439                {
79440                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrayLit(
79441                        self::fields::ArrayLitField::Elems(usize::MAX),
79442                    ));
79443                    <Vec<Option<ExprOrSpread>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79444                        elems,
79445                        visitor,
79446                        &mut *__ast_path,
79447                    )
79448                };
79449            }
79450        }
79451    }
79452}
79453#[cfg(any(docsrs, feature = "path"))]
79454#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79455impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ArrayPat {
79456    #[doc = "Calls [VisitMutAstPath`::visit_mut_array_pat`] with `self`."]
79457    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79458        <V as VisitMutAstPath>::visit_mut_array_pat(visitor, self, __ast_path)
79459    }
79460
79461    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79462        match self {
79463            ArrayPat {
79464                span,
79465                elems,
79466                optional,
79467                type_ann,
79468            } => {
79469                {
79470                    let mut __ast_path = __ast_path
79471                        .with_guard(AstParentKind::ArrayPat(self::fields::ArrayPatField::Span));
79472                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79473                        span,
79474                        visitor,
79475                        &mut *__ast_path,
79476                    )
79477                };
79478                {
79479                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrayPat(
79480                        self::fields::ArrayPatField::Elems(usize::MAX),
79481                    ));
79482                    <Vec<Option<Pat>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79483                        elems,
79484                        visitor,
79485                        &mut *__ast_path,
79486                    )
79487                };
79488                {
79489                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrayPat(
79490                        self::fields::ArrayPatField::TypeAnn,
79491                    ));
79492                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79493                        type_ann,
79494                        visitor,
79495                        &mut *__ast_path,
79496                    )
79497                };
79498            }
79499        }
79500    }
79501}
79502#[cfg(any(docsrs, feature = "path"))]
79503#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79504impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ArrowExpr {
79505    #[doc = "Calls [VisitMutAstPath`::visit_mut_arrow_expr`] with `self`."]
79506    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79507        <V as VisitMutAstPath>::visit_mut_arrow_expr(visitor, self, __ast_path)
79508    }
79509
79510    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79511        match self {
79512            ArrowExpr {
79513                span,
79514                ctxt,
79515                params,
79516                body,
79517                is_async,
79518                is_generator,
79519                type_params,
79520                return_type,
79521            } => {
79522                {
79523                    let mut __ast_path = __ast_path
79524                        .with_guard(AstParentKind::ArrowExpr(self::fields::ArrowExprField::Span));
79525                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79526                        span,
79527                        visitor,
79528                        &mut *__ast_path,
79529                    )
79530                };
79531                {
79532                    let mut __ast_path = __ast_path
79533                        .with_guard(AstParentKind::ArrowExpr(self::fields::ArrowExprField::Ctxt));
79534                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79535                        ctxt,
79536                        visitor,
79537                        &mut *__ast_path,
79538                    )
79539                };
79540                {
79541                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrowExpr(
79542                        self::fields::ArrowExprField::Params(usize::MAX),
79543                    ));
79544                    <Vec<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79545                        params,
79546                        visitor,
79547                        &mut *__ast_path,
79548                    )
79549                };
79550                {
79551                    let mut __ast_path = __ast_path
79552                        .with_guard(AstParentKind::ArrowExpr(self::fields::ArrowExprField::Body));
79553                    <Box<BlockStmtOrExpr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79554                        body,
79555                        visitor,
79556                        &mut *__ast_path,
79557                    )
79558                };
79559                {
79560                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrowExpr(
79561                        self::fields::ArrowExprField::TypeParams,
79562                    ));
79563                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
79564                };
79565                {
79566                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrowExpr(
79567                        self::fields::ArrowExprField::ReturnType,
79568                    ));
79569                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79570                        return_type,
79571                        visitor,
79572                        &mut *__ast_path,
79573                    )
79574                };
79575            }
79576        }
79577    }
79578}
79579#[cfg(any(docsrs, feature = "path"))]
79580#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79581impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AssignExpr {
79582    #[doc = "Calls [VisitMutAstPath`::visit_mut_assign_expr`] with `self`."]
79583    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79584        <V as VisitMutAstPath>::visit_mut_assign_expr(visitor, self, __ast_path)
79585    }
79586
79587    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79588        match self {
79589            AssignExpr {
79590                span,
79591                op,
79592                left,
79593                right,
79594            } => {
79595                {
79596                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignExpr(
79597                        self::fields::AssignExprField::Span,
79598                    ));
79599                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79600                        span,
79601                        visitor,
79602                        &mut *__ast_path,
79603                    )
79604                };
79605                {
79606                    let mut __ast_path = __ast_path
79607                        .with_guard(AstParentKind::AssignExpr(self::fields::AssignExprField::Op));
79608                    <AssignOp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79609                        op,
79610                        visitor,
79611                        &mut *__ast_path,
79612                    )
79613                };
79614                {
79615                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignExpr(
79616                        self::fields::AssignExprField::Left,
79617                    ));
79618                    <AssignTarget as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79619                        left,
79620                        visitor,
79621                        &mut *__ast_path,
79622                    )
79623                };
79624                {
79625                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignExpr(
79626                        self::fields::AssignExprField::Right,
79627                    ));
79628                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79629                        right,
79630                        visitor,
79631                        &mut *__ast_path,
79632                    )
79633                };
79634            }
79635        }
79636    }
79637}
79638#[cfg(any(docsrs, feature = "path"))]
79639#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79640impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AssignOp {
79641    #[doc = "Calls [VisitMutAstPath`::visit_mut_assign_op`] with `self`."]
79642    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79643        <V as VisitMutAstPath>::visit_mut_assign_op(visitor, self, __ast_path)
79644    }
79645
79646    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79647        match self {
79648            AssignOp::Assign => {}
79649            AssignOp::AddAssign => {}
79650            AssignOp::SubAssign => {}
79651            AssignOp::MulAssign => {}
79652            AssignOp::DivAssign => {}
79653            AssignOp::ModAssign => {}
79654            AssignOp::LShiftAssign => {}
79655            AssignOp::RShiftAssign => {}
79656            AssignOp::ZeroFillRShiftAssign => {}
79657            AssignOp::BitOrAssign => {}
79658            AssignOp::BitXorAssign => {}
79659            AssignOp::BitAndAssign => {}
79660            AssignOp::ExpAssign => {}
79661            AssignOp::AndAssign => {}
79662            AssignOp::OrAssign => {}
79663            AssignOp::NullishAssign => {}
79664        }
79665    }
79666}
79667#[cfg(any(docsrs, feature = "path"))]
79668#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79669impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AssignPat {
79670    #[doc = "Calls [VisitMutAstPath`::visit_mut_assign_pat`] with `self`."]
79671    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79672        <V as VisitMutAstPath>::visit_mut_assign_pat(visitor, self, __ast_path)
79673    }
79674
79675    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79676        match self {
79677            AssignPat { span, left, right } => {
79678                {
79679                    let mut __ast_path = __ast_path
79680                        .with_guard(AstParentKind::AssignPat(self::fields::AssignPatField::Span));
79681                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79682                        span,
79683                        visitor,
79684                        &mut *__ast_path,
79685                    )
79686                };
79687                {
79688                    let mut __ast_path = __ast_path
79689                        .with_guard(AstParentKind::AssignPat(self::fields::AssignPatField::Left));
79690                    <Box<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79691                        left,
79692                        visitor,
79693                        &mut *__ast_path,
79694                    )
79695                };
79696                {
79697                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignPat(
79698                        self::fields::AssignPatField::Right,
79699                    ));
79700                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79701                        right,
79702                        visitor,
79703                        &mut *__ast_path,
79704                    )
79705                };
79706            }
79707        }
79708    }
79709}
79710#[cfg(any(docsrs, feature = "path"))]
79711#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79712impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AssignPatProp {
79713    #[doc = "Calls [VisitMutAstPath`::visit_mut_assign_pat_prop`] with `self`."]
79714    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79715        <V as VisitMutAstPath>::visit_mut_assign_pat_prop(visitor, self, __ast_path)
79716    }
79717
79718    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79719        match self {
79720            AssignPatProp { span, key, value } => {
79721                {
79722                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignPatProp(
79723                        self::fields::AssignPatPropField::Span,
79724                    ));
79725                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79726                        span,
79727                        visitor,
79728                        &mut *__ast_path,
79729                    )
79730                };
79731                {
79732                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignPatProp(
79733                        self::fields::AssignPatPropField::Key,
79734                    ));
79735                    <BindingIdent as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79736                        key,
79737                        visitor,
79738                        &mut *__ast_path,
79739                    )
79740                };
79741                {
79742                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignPatProp(
79743                        self::fields::AssignPatPropField::Value,
79744                    ));
79745                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79746                        value,
79747                        visitor,
79748                        &mut *__ast_path,
79749                    )
79750                };
79751            }
79752        }
79753    }
79754}
79755#[cfg(any(docsrs, feature = "path"))]
79756#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79757impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AssignProp {
79758    #[doc = "Calls [VisitMutAstPath`::visit_mut_assign_prop`] with `self`."]
79759    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79760        <V as VisitMutAstPath>::visit_mut_assign_prop(visitor, self, __ast_path)
79761    }
79762
79763    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79764        match self {
79765            AssignProp { span, key, value } => {
79766                {
79767                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignProp(
79768                        self::fields::AssignPropField::Span,
79769                    ));
79770                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79771                        span,
79772                        visitor,
79773                        &mut *__ast_path,
79774                    )
79775                };
79776                {
79777                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignProp(
79778                        self::fields::AssignPropField::Key,
79779                    ));
79780                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79781                        key,
79782                        visitor,
79783                        &mut *__ast_path,
79784                    )
79785                };
79786                {
79787                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignProp(
79788                        self::fields::AssignPropField::Value,
79789                    ));
79790                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79791                        value,
79792                        visitor,
79793                        &mut *__ast_path,
79794                    )
79795                };
79796            }
79797        }
79798    }
79799}
79800#[cfg(any(docsrs, feature = "path"))]
79801#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79802impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AssignTarget {
79803    #[doc = "Calls [VisitMutAstPath`::visit_mut_assign_target`] with `self`."]
79804    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79805        <V as VisitMutAstPath>::visit_mut_assign_target(visitor, self, __ast_path)
79806    }
79807
79808    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79809        match self {
79810            AssignTarget::Simple { 0: _field_0 } => {
79811                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTarget(
79812                    self::fields::AssignTargetField::Simple,
79813                ));
79814                <SimpleAssignTarget as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79815                    _field_0,
79816                    visitor,
79817                    &mut *__ast_path,
79818                );
79819            }
79820            AssignTarget::Pat { 0: _field_0 } => {
79821                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTarget(
79822                    self::fields::AssignTargetField::Pat,
79823                ));
79824                <AssignTargetPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79825                    _field_0,
79826                    visitor,
79827                    &mut *__ast_path,
79828                );
79829            }
79830        }
79831    }
79832}
79833#[cfg(any(docsrs, feature = "path"))]
79834#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79835impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AssignTargetPat {
79836    #[doc = "Calls [VisitMutAstPath`::visit_mut_assign_target_pat`] with `self`."]
79837    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79838        <V as VisitMutAstPath>::visit_mut_assign_target_pat(visitor, self, __ast_path)
79839    }
79840
79841    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79842        match self {
79843            AssignTargetPat::Array { 0: _field_0 } => {
79844                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTargetPat(
79845                    self::fields::AssignTargetPatField::Array,
79846                ));
79847                <ArrayPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79848                    _field_0,
79849                    visitor,
79850                    &mut *__ast_path,
79851                );
79852            }
79853            AssignTargetPat::Object { 0: _field_0 } => {
79854                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTargetPat(
79855                    self::fields::AssignTargetPatField::Object,
79856                ));
79857                <ObjectPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79858                    _field_0,
79859                    visitor,
79860                    &mut *__ast_path,
79861                );
79862            }
79863            AssignTargetPat::Invalid { 0: _field_0 } => {
79864                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTargetPat(
79865                    self::fields::AssignTargetPatField::Invalid,
79866                ));
79867                <Invalid as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79868                    _field_0,
79869                    visitor,
79870                    &mut *__ast_path,
79871                );
79872            }
79873        }
79874    }
79875}
79876#[cfg(any(docsrs, feature = "path"))]
79877#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79878impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AutoAccessor {
79879    #[doc = "Calls [VisitMutAstPath`::visit_mut_auto_accessor`] with `self`."]
79880    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79881        <V as VisitMutAstPath>::visit_mut_auto_accessor(visitor, self, __ast_path)
79882    }
79883
79884    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79885        match self {
79886            AutoAccessor {
79887                span,
79888                key,
79889                value,
79890                type_ann,
79891                is_static,
79892                decorators,
79893                accessibility,
79894                is_abstract,
79895                is_override,
79896                definite,
79897            } => {
79898                {
79899                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
79900                        self::fields::AutoAccessorField::Span,
79901                    ));
79902                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79903                        span,
79904                        visitor,
79905                        &mut *__ast_path,
79906                    )
79907                };
79908                {
79909                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
79910                        self::fields::AutoAccessorField::Key,
79911                    ));
79912                    <Key as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79913                        key,
79914                        visitor,
79915                        &mut *__ast_path,
79916                    )
79917                };
79918                {
79919                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
79920                        self::fields::AutoAccessorField::Value,
79921                    ));
79922                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79923                        value,
79924                        visitor,
79925                        &mut *__ast_path,
79926                    )
79927                };
79928                {
79929                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
79930                        self::fields::AutoAccessorField::TypeAnn,
79931                    ));
79932                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79933                        type_ann,
79934                        visitor,
79935                        &mut *__ast_path,
79936                    )
79937                };
79938                {
79939                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
79940                        self::fields::AutoAccessorField::Decorators(usize::MAX),
79941                    ));
79942                    <Vec<Decorator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79943                        decorators,
79944                        visitor,
79945                        &mut *__ast_path,
79946                    )
79947                };
79948                {
79949                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
79950                        self::fields::AutoAccessorField::Accessibility,
79951                    ));
79952                    <Option<Accessibility> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79953                        accessibility,
79954                        visitor,
79955                        &mut *__ast_path,
79956                    )
79957                };
79958            }
79959        }
79960    }
79961}
79962#[cfg(any(docsrs, feature = "path"))]
79963#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79964impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AwaitExpr {
79965    #[doc = "Calls [VisitMutAstPath`::visit_mut_await_expr`] with `self`."]
79966    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79967        <V as VisitMutAstPath>::visit_mut_await_expr(visitor, self, __ast_path)
79968    }
79969
79970    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79971        match self {
79972            AwaitExpr { span, arg } => {
79973                {
79974                    let mut __ast_path = __ast_path
79975                        .with_guard(AstParentKind::AwaitExpr(self::fields::AwaitExprField::Span));
79976                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79977                        span,
79978                        visitor,
79979                        &mut *__ast_path,
79980                    )
79981                };
79982                {
79983                    let mut __ast_path = __ast_path
79984                        .with_guard(AstParentKind::AwaitExpr(self::fields::AwaitExprField::Arg));
79985                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79986                        arg,
79987                        visitor,
79988                        &mut *__ast_path,
79989                    )
79990                };
79991            }
79992        }
79993    }
79994}
79995#[cfg(any(docsrs, feature = "path"))]
79996#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79997impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for BigInt {
79998    #[doc = "Calls [VisitMutAstPath`::visit_mut_big_int`] with `self`."]
79999    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80000        <V as VisitMutAstPath>::visit_mut_big_int(visitor, self, __ast_path)
80001    }
80002
80003    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80004        match self {
80005            BigInt { span, value, raw } => {
80006                {
80007                    let mut __ast_path = __ast_path
80008                        .with_guard(AstParentKind::BigInt(self::fields::BigIntField::Span));
80009                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80010                        span,
80011                        visitor,
80012                        &mut *__ast_path,
80013                    )
80014                };
80015                {
80016                    let mut __ast_path = __ast_path
80017                        .with_guard(AstParentKind::BigInt(self::fields::BigIntField::Value));
80018                    <Box<BigIntValue> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80019                        value,
80020                        visitor,
80021                        &mut *__ast_path,
80022                    )
80023                };
80024                {
80025                    let mut __ast_path = __ast_path
80026                        .with_guard(AstParentKind::BigInt(self::fields::BigIntField::Raw));
80027                    <Option<swc_atoms::Atom> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80028                        raw,
80029                        visitor,
80030                        &mut *__ast_path,
80031                    )
80032                };
80033            }
80034        }
80035    }
80036}
80037#[cfg(any(docsrs, feature = "path"))]
80038#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80039impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for BinExpr {
80040    #[doc = "Calls [VisitMutAstPath`::visit_mut_bin_expr`] with `self`."]
80041    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80042        <V as VisitMutAstPath>::visit_mut_bin_expr(visitor, self, __ast_path)
80043    }
80044
80045    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80046        match self {
80047            BinExpr {
80048                span,
80049                op,
80050                left,
80051                right,
80052            } => {
80053                {
80054                    let mut __ast_path = __ast_path
80055                        .with_guard(AstParentKind::BinExpr(self::fields::BinExprField::Span));
80056                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80057                        span,
80058                        visitor,
80059                        &mut *__ast_path,
80060                    )
80061                };
80062                {
80063                    let mut __ast_path = __ast_path
80064                        .with_guard(AstParentKind::BinExpr(self::fields::BinExprField::Op));
80065                    <BinaryOp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80066                        op,
80067                        visitor,
80068                        &mut *__ast_path,
80069                    )
80070                };
80071                {
80072                    let mut __ast_path = __ast_path
80073                        .with_guard(AstParentKind::BinExpr(self::fields::BinExprField::Left));
80074                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80075                        left,
80076                        visitor,
80077                        &mut *__ast_path,
80078                    )
80079                };
80080                {
80081                    let mut __ast_path = __ast_path
80082                        .with_guard(AstParentKind::BinExpr(self::fields::BinExprField::Right));
80083                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80084                        right,
80085                        visitor,
80086                        &mut *__ast_path,
80087                    )
80088                };
80089            }
80090        }
80091    }
80092}
80093#[cfg(any(docsrs, feature = "path"))]
80094#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80095impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for BinaryOp {
80096    #[doc = "Calls [VisitMutAstPath`::visit_mut_binary_op`] with `self`."]
80097    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80098        <V as VisitMutAstPath>::visit_mut_binary_op(visitor, self, __ast_path)
80099    }
80100
80101    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80102        match self {
80103            BinaryOp::EqEq => {}
80104            BinaryOp::NotEq => {}
80105            BinaryOp::EqEqEq => {}
80106            BinaryOp::NotEqEq => {}
80107            BinaryOp::Lt => {}
80108            BinaryOp::LtEq => {}
80109            BinaryOp::Gt => {}
80110            BinaryOp::GtEq => {}
80111            BinaryOp::LShift => {}
80112            BinaryOp::RShift => {}
80113            BinaryOp::ZeroFillRShift => {}
80114            BinaryOp::Add => {}
80115            BinaryOp::Sub => {}
80116            BinaryOp::Mul => {}
80117            BinaryOp::Div => {}
80118            BinaryOp::Mod => {}
80119            BinaryOp::BitOr => {}
80120            BinaryOp::BitXor => {}
80121            BinaryOp::BitAnd => {}
80122            BinaryOp::LogicalOr => {}
80123            BinaryOp::LogicalAnd => {}
80124            BinaryOp::In => {}
80125            BinaryOp::InstanceOf => {}
80126            BinaryOp::Exp => {}
80127            BinaryOp::NullishCoalescing => {}
80128        }
80129    }
80130}
80131#[cfg(any(docsrs, feature = "path"))]
80132#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80133impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for BindingIdent {
80134    #[doc = "Calls [VisitMutAstPath`::visit_mut_binding_ident`] with `self`."]
80135    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80136        <V as VisitMutAstPath>::visit_mut_binding_ident(visitor, self, __ast_path)
80137    }
80138
80139    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80140        match self {
80141            BindingIdent { id, type_ann } => {
80142                {
80143                    let mut __ast_path = __ast_path.with_guard(AstParentKind::BindingIdent(
80144                        self::fields::BindingIdentField::Id,
80145                    ));
80146                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80147                        id,
80148                        visitor,
80149                        &mut *__ast_path,
80150                    )
80151                };
80152                {
80153                    let mut __ast_path = __ast_path.with_guard(AstParentKind::BindingIdent(
80154                        self::fields::BindingIdentField::TypeAnn,
80155                    ));
80156                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80157                        type_ann,
80158                        visitor,
80159                        &mut *__ast_path,
80160                    )
80161                };
80162            }
80163        }
80164    }
80165}
80166#[cfg(any(docsrs, feature = "path"))]
80167#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80168impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for BlockStmt {
80169    #[doc = "Calls [VisitMutAstPath`::visit_mut_block_stmt`] with `self`."]
80170    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80171        <V as VisitMutAstPath>::visit_mut_block_stmt(visitor, self, __ast_path)
80172    }
80173
80174    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80175        match self {
80176            BlockStmt { span, ctxt, stmts } => {
80177                {
80178                    let mut __ast_path = __ast_path
80179                        .with_guard(AstParentKind::BlockStmt(self::fields::BlockStmtField::Span));
80180                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80181                        span,
80182                        visitor,
80183                        &mut *__ast_path,
80184                    )
80185                };
80186                {
80187                    let mut __ast_path = __ast_path
80188                        .with_guard(AstParentKind::BlockStmt(self::fields::BlockStmtField::Ctxt));
80189                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80190                        ctxt,
80191                        visitor,
80192                        &mut *__ast_path,
80193                    )
80194                };
80195                {
80196                    let mut __ast_path = __ast_path.with_guard(AstParentKind::BlockStmt(
80197                        self::fields::BlockStmtField::Stmts(usize::MAX),
80198                    ));
80199                    <Vec<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80200                        stmts,
80201                        visitor,
80202                        &mut *__ast_path,
80203                    )
80204                };
80205            }
80206        }
80207    }
80208}
80209#[cfg(any(docsrs, feature = "path"))]
80210#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80211impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for BlockStmtOrExpr {
80212    #[doc = "Calls [VisitMutAstPath`::visit_mut_block_stmt_or_expr`] with `self`."]
80213    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80214        <V as VisitMutAstPath>::visit_mut_block_stmt_or_expr(visitor, self, __ast_path)
80215    }
80216
80217    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80218        match self {
80219            BlockStmtOrExpr::BlockStmt { 0: _field_0 } => {
80220                let mut __ast_path = __ast_path.with_guard(AstParentKind::BlockStmtOrExpr(
80221                    self::fields::BlockStmtOrExprField::BlockStmt,
80222                ));
80223                <BlockStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80224                    _field_0,
80225                    visitor,
80226                    &mut *__ast_path,
80227                );
80228            }
80229            BlockStmtOrExpr::Expr { 0: _field_0 } => {
80230                let mut __ast_path = __ast_path.with_guard(AstParentKind::BlockStmtOrExpr(
80231                    self::fields::BlockStmtOrExprField::Expr,
80232                ));
80233                <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80234                    _field_0,
80235                    visitor,
80236                    &mut *__ast_path,
80237                );
80238            }
80239        }
80240    }
80241}
80242#[cfg(any(docsrs, feature = "path"))]
80243#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80244impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Bool {
80245    #[doc = "Calls [VisitMutAstPath`::visit_mut_bool`] with `self`."]
80246    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80247        <V as VisitMutAstPath>::visit_mut_bool(visitor, self, __ast_path)
80248    }
80249
80250    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80251        match self {
80252            Bool { span, value } => {
80253                {
80254                    let mut __ast_path =
80255                        __ast_path.with_guard(AstParentKind::Bool(self::fields::BoolField::Span));
80256                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80257                        span,
80258                        visitor,
80259                        &mut *__ast_path,
80260                    )
80261                };
80262            }
80263        }
80264    }
80265}
80266#[cfg(any(docsrs, feature = "path"))]
80267#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80268impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for BreakStmt {
80269    #[doc = "Calls [VisitMutAstPath`::visit_mut_break_stmt`] with `self`."]
80270    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80271        <V as VisitMutAstPath>::visit_mut_break_stmt(visitor, self, __ast_path)
80272    }
80273
80274    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80275        match self {
80276            BreakStmt { span, label } => {
80277                {
80278                    let mut __ast_path = __ast_path
80279                        .with_guard(AstParentKind::BreakStmt(self::fields::BreakStmtField::Span));
80280                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80281                        span,
80282                        visitor,
80283                        &mut *__ast_path,
80284                    )
80285                };
80286                {
80287                    let mut __ast_path = __ast_path.with_guard(AstParentKind::BreakStmt(
80288                        self::fields::BreakStmtField::Label,
80289                    ));
80290                    <Option<Ident> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80291                        label,
80292                        visitor,
80293                        &mut *__ast_path,
80294                    )
80295                };
80296            }
80297        }
80298    }
80299}
80300#[cfg(any(docsrs, feature = "path"))]
80301#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80302impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for CallExpr {
80303    #[doc = "Calls [VisitMutAstPath`::visit_mut_call_expr`] with `self`."]
80304    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80305        <V as VisitMutAstPath>::visit_mut_call_expr(visitor, self, __ast_path)
80306    }
80307
80308    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80309        match self {
80310            CallExpr {
80311                span,
80312                ctxt,
80313                callee,
80314                args,
80315                type_args,
80316            } => {
80317                {
80318                    let mut __ast_path = __ast_path
80319                        .with_guard(AstParentKind::CallExpr(self::fields::CallExprField::Span));
80320                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80321                        span,
80322                        visitor,
80323                        &mut *__ast_path,
80324                    )
80325                };
80326                {
80327                    let mut __ast_path = __ast_path
80328                        .with_guard(AstParentKind::CallExpr(self::fields::CallExprField::Ctxt));
80329                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80330                        ctxt,
80331                        visitor,
80332                        &mut *__ast_path,
80333                    )
80334                };
80335                {
80336                    let mut __ast_path = __ast_path
80337                        .with_guard(AstParentKind::CallExpr(self::fields::CallExprField::Callee));
80338                    <Callee as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80339                        callee,
80340                        visitor,
80341                        &mut *__ast_path,
80342                    )
80343                };
80344                {
80345                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CallExpr(
80346                        self::fields::CallExprField::Args(usize::MAX),
80347                    ));
80348                    <Vec<ExprOrSpread> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80349                        args,
80350                        visitor,
80351                        &mut *__ast_path,
80352                    )
80353                };
80354                {
80355                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CallExpr(
80356                        self::fields::CallExprField::TypeArgs,
80357                    ));
80358                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_args , visitor , & mut * __ast_path)
80359                };
80360            }
80361        }
80362    }
80363}
80364#[cfg(any(docsrs, feature = "path"))]
80365#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80366impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Callee {
80367    #[doc = "Calls [VisitMutAstPath`::visit_mut_callee`] with `self`."]
80368    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80369        <V as VisitMutAstPath>::visit_mut_callee(visitor, self, __ast_path)
80370    }
80371
80372    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80373        match self {
80374            Callee::Super { 0: _field_0 } => {
80375                let mut __ast_path =
80376                    __ast_path.with_guard(AstParentKind::Callee(self::fields::CalleeField::Super));
80377                <Super as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80378                    _field_0,
80379                    visitor,
80380                    &mut *__ast_path,
80381                );
80382            }
80383            Callee::Import { 0: _field_0 } => {
80384                let mut __ast_path =
80385                    __ast_path.with_guard(AstParentKind::Callee(self::fields::CalleeField::Import));
80386                <Import as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80387                    _field_0,
80388                    visitor,
80389                    &mut *__ast_path,
80390                );
80391            }
80392            Callee::Expr { 0: _field_0 } => {
80393                let mut __ast_path =
80394                    __ast_path.with_guard(AstParentKind::Callee(self::fields::CalleeField::Expr));
80395                <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80396                    _field_0,
80397                    visitor,
80398                    &mut *__ast_path,
80399                );
80400            }
80401        }
80402    }
80403}
80404#[cfg(any(docsrs, feature = "path"))]
80405#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80406impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for CatchClause {
80407    #[doc = "Calls [VisitMutAstPath`::visit_mut_catch_clause`] with `self`."]
80408    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80409        <V as VisitMutAstPath>::visit_mut_catch_clause(visitor, self, __ast_path)
80410    }
80411
80412    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80413        match self {
80414            CatchClause { span, param, body } => {
80415                {
80416                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CatchClause(
80417                        self::fields::CatchClauseField::Span,
80418                    ));
80419                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80420                        span,
80421                        visitor,
80422                        &mut *__ast_path,
80423                    )
80424                };
80425                {
80426                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CatchClause(
80427                        self::fields::CatchClauseField::Param,
80428                    ));
80429                    <Option<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80430                        param,
80431                        visitor,
80432                        &mut *__ast_path,
80433                    )
80434                };
80435                {
80436                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CatchClause(
80437                        self::fields::CatchClauseField::Body,
80438                    ));
80439                    <BlockStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80440                        body,
80441                        visitor,
80442                        &mut *__ast_path,
80443                    )
80444                };
80445            }
80446        }
80447    }
80448}
80449#[cfg(any(docsrs, feature = "path"))]
80450#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80451impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Class {
80452    #[doc = "Calls [VisitMutAstPath`::visit_mut_class`] with `self`."]
80453    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80454        <V as VisitMutAstPath>::visit_mut_class(visitor, self, __ast_path)
80455    }
80456
80457    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80458        match self {
80459            Class {
80460                span,
80461                ctxt,
80462                decorators,
80463                body,
80464                super_class,
80465                is_abstract,
80466                type_params,
80467                super_type_params,
80468                implements,
80469            } => {
80470                {
80471                    let mut __ast_path =
80472                        __ast_path.with_guard(AstParentKind::Class(self::fields::ClassField::Span));
80473                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80474                        span,
80475                        visitor,
80476                        &mut *__ast_path,
80477                    )
80478                };
80479                {
80480                    let mut __ast_path =
80481                        __ast_path.with_guard(AstParentKind::Class(self::fields::ClassField::Ctxt));
80482                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80483                        ctxt,
80484                        visitor,
80485                        &mut *__ast_path,
80486                    )
80487                };
80488                {
80489                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Class(
80490                        self::fields::ClassField::Decorators(usize::MAX),
80491                    ));
80492                    <Vec<Decorator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80493                        decorators,
80494                        visitor,
80495                        &mut *__ast_path,
80496                    )
80497                };
80498                {
80499                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Class(
80500                        self::fields::ClassField::Body(usize::MAX),
80501                    ));
80502                    <Vec<ClassMember> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80503                        body,
80504                        visitor,
80505                        &mut *__ast_path,
80506                    )
80507                };
80508                {
80509                    let mut __ast_path = __ast_path
80510                        .with_guard(AstParentKind::Class(self::fields::ClassField::SuperClass));
80511                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80512                        super_class,
80513                        visitor,
80514                        &mut *__ast_path,
80515                    )
80516                };
80517                {
80518                    let mut __ast_path = __ast_path
80519                        .with_guard(AstParentKind::Class(self::fields::ClassField::TypeParams));
80520                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
80521                };
80522                {
80523                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Class(
80524                        self::fields::ClassField::SuperTypeParams,
80525                    ));
80526                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (super_type_params , visitor , & mut * __ast_path)
80527                };
80528                {
80529                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Class(
80530                        self::fields::ClassField::Implements(usize::MAX),
80531                    ));
80532                    <Vec<TsExprWithTypeArgs> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80533                        implements,
80534                        visitor,
80535                        &mut *__ast_path,
80536                    )
80537                };
80538            }
80539        }
80540    }
80541}
80542#[cfg(any(docsrs, feature = "path"))]
80543#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80544impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ClassDecl {
80545    #[doc = "Calls [VisitMutAstPath`::visit_mut_class_decl`] with `self`."]
80546    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80547        <V as VisitMutAstPath>::visit_mut_class_decl(visitor, self, __ast_path)
80548    }
80549
80550    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80551        match self {
80552            ClassDecl {
80553                ident,
80554                declare,
80555                class,
80556            } => {
80557                {
80558                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassDecl(
80559                        self::fields::ClassDeclField::Ident,
80560                    ));
80561                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80562                        ident,
80563                        visitor,
80564                        &mut *__ast_path,
80565                    )
80566                };
80567                {
80568                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassDecl(
80569                        self::fields::ClassDeclField::Class,
80570                    ));
80571                    <Box<Class> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80572                        class,
80573                        visitor,
80574                        &mut *__ast_path,
80575                    )
80576                };
80577            }
80578        }
80579    }
80580}
80581#[cfg(any(docsrs, feature = "path"))]
80582#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80583impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ClassExpr {
80584    #[doc = "Calls [VisitMutAstPath`::visit_mut_class_expr`] with `self`."]
80585    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80586        <V as VisitMutAstPath>::visit_mut_class_expr(visitor, self, __ast_path)
80587    }
80588
80589    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80590        match self {
80591            ClassExpr { ident, class } => {
80592                {
80593                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassExpr(
80594                        self::fields::ClassExprField::Ident,
80595                    ));
80596                    <Option<Ident> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80597                        ident,
80598                        visitor,
80599                        &mut *__ast_path,
80600                    )
80601                };
80602                {
80603                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassExpr(
80604                        self::fields::ClassExprField::Class,
80605                    ));
80606                    <Box<Class> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80607                        class,
80608                        visitor,
80609                        &mut *__ast_path,
80610                    )
80611                };
80612            }
80613        }
80614    }
80615}
80616#[cfg(any(docsrs, feature = "path"))]
80617#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80618impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ClassMember {
80619    #[doc = "Calls [VisitMutAstPath`::visit_mut_class_member`] with `self`."]
80620    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80621        <V as VisitMutAstPath>::visit_mut_class_member(visitor, self, __ast_path)
80622    }
80623
80624    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80625        match self {
80626            ClassMember::Constructor { 0: _field_0 } => {
80627                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80628                    self::fields::ClassMemberField::Constructor,
80629                ));
80630                <Constructor as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80631                    _field_0,
80632                    visitor,
80633                    &mut *__ast_path,
80634                );
80635            }
80636            ClassMember::Method { 0: _field_0 } => {
80637                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80638                    self::fields::ClassMemberField::Method,
80639                ));
80640                <ClassMethod as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80641                    _field_0,
80642                    visitor,
80643                    &mut *__ast_path,
80644                );
80645            }
80646            ClassMember::PrivateMethod { 0: _field_0 } => {
80647                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80648                    self::fields::ClassMemberField::PrivateMethod,
80649                ));
80650                <PrivateMethod as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80651                    _field_0,
80652                    visitor,
80653                    &mut *__ast_path,
80654                );
80655            }
80656            ClassMember::ClassProp { 0: _field_0 } => {
80657                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80658                    self::fields::ClassMemberField::ClassProp,
80659                ));
80660                <ClassProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80661                    _field_0,
80662                    visitor,
80663                    &mut *__ast_path,
80664                );
80665            }
80666            ClassMember::PrivateProp { 0: _field_0 } => {
80667                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80668                    self::fields::ClassMemberField::PrivateProp,
80669                ));
80670                <PrivateProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80671                    _field_0,
80672                    visitor,
80673                    &mut *__ast_path,
80674                );
80675            }
80676            ClassMember::TsIndexSignature { 0: _field_0 } => {
80677                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80678                    self::fields::ClassMemberField::TsIndexSignature,
80679                ));
80680                <TsIndexSignature as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80681                    _field_0,
80682                    visitor,
80683                    &mut *__ast_path,
80684                );
80685            }
80686            ClassMember::Empty { 0: _field_0 } => {
80687                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80688                    self::fields::ClassMemberField::Empty,
80689                ));
80690                <EmptyStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80691                    _field_0,
80692                    visitor,
80693                    &mut *__ast_path,
80694                );
80695            }
80696            ClassMember::StaticBlock { 0: _field_0 } => {
80697                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80698                    self::fields::ClassMemberField::StaticBlock,
80699                ));
80700                <StaticBlock as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80701                    _field_0,
80702                    visitor,
80703                    &mut *__ast_path,
80704                );
80705            }
80706            ClassMember::AutoAccessor { 0: _field_0 } => {
80707                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80708                    self::fields::ClassMemberField::AutoAccessor,
80709                ));
80710                <AutoAccessor as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80711                    _field_0,
80712                    visitor,
80713                    &mut *__ast_path,
80714                );
80715            }
80716        }
80717    }
80718}
80719#[cfg(any(docsrs, feature = "path"))]
80720#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80721impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ClassMethod {
80722    #[doc = "Calls [VisitMutAstPath`::visit_mut_class_method`] with `self`."]
80723    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80724        <V as VisitMutAstPath>::visit_mut_class_method(visitor, self, __ast_path)
80725    }
80726
80727    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80728        match self {
80729            ClassMethod {
80730                span,
80731                key,
80732                function,
80733                kind,
80734                is_static,
80735                accessibility,
80736                is_abstract,
80737                is_optional,
80738                is_override,
80739            } => {
80740                {
80741                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
80742                        self::fields::ClassMethodField::Span,
80743                    ));
80744                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80745                        span,
80746                        visitor,
80747                        &mut *__ast_path,
80748                    )
80749                };
80750                {
80751                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
80752                        self::fields::ClassMethodField::Key,
80753                    ));
80754                    <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80755                        key,
80756                        visitor,
80757                        &mut *__ast_path,
80758                    )
80759                };
80760                {
80761                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
80762                        self::fields::ClassMethodField::Function,
80763                    ));
80764                    <Box<Function> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80765                        function,
80766                        visitor,
80767                        &mut *__ast_path,
80768                    )
80769                };
80770                {
80771                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
80772                        self::fields::ClassMethodField::Kind,
80773                    ));
80774                    <MethodKind as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80775                        kind,
80776                        visitor,
80777                        &mut *__ast_path,
80778                    )
80779                };
80780                {
80781                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
80782                        self::fields::ClassMethodField::Accessibility,
80783                    ));
80784                    <Option<Accessibility> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80785                        accessibility,
80786                        visitor,
80787                        &mut *__ast_path,
80788                    )
80789                };
80790            }
80791        }
80792    }
80793}
80794#[cfg(any(docsrs, feature = "path"))]
80795#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80796impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ClassProp {
80797    #[doc = "Calls [VisitMutAstPath`::visit_mut_class_prop`] with `self`."]
80798    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80799        <V as VisitMutAstPath>::visit_mut_class_prop(visitor, self, __ast_path)
80800    }
80801
80802    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80803        match self {
80804            ClassProp {
80805                span,
80806                key,
80807                value,
80808                type_ann,
80809                is_static,
80810                decorators,
80811                accessibility,
80812                is_abstract,
80813                is_optional,
80814                is_override,
80815                readonly,
80816                declare,
80817                definite,
80818            } => {
80819                {
80820                    let mut __ast_path = __ast_path
80821                        .with_guard(AstParentKind::ClassProp(self::fields::ClassPropField::Span));
80822                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80823                        span,
80824                        visitor,
80825                        &mut *__ast_path,
80826                    )
80827                };
80828                {
80829                    let mut __ast_path = __ast_path
80830                        .with_guard(AstParentKind::ClassProp(self::fields::ClassPropField::Key));
80831                    <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80832                        key,
80833                        visitor,
80834                        &mut *__ast_path,
80835                    )
80836                };
80837                {
80838                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassProp(
80839                        self::fields::ClassPropField::Value,
80840                    ));
80841                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80842                        value,
80843                        visitor,
80844                        &mut *__ast_path,
80845                    )
80846                };
80847                {
80848                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassProp(
80849                        self::fields::ClassPropField::TypeAnn,
80850                    ));
80851                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80852                        type_ann,
80853                        visitor,
80854                        &mut *__ast_path,
80855                    )
80856                };
80857                {
80858                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassProp(
80859                        self::fields::ClassPropField::Decorators(usize::MAX),
80860                    ));
80861                    <Vec<Decorator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80862                        decorators,
80863                        visitor,
80864                        &mut *__ast_path,
80865                    )
80866                };
80867                {
80868                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassProp(
80869                        self::fields::ClassPropField::Accessibility,
80870                    ));
80871                    <Option<Accessibility> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80872                        accessibility,
80873                        visitor,
80874                        &mut *__ast_path,
80875                    )
80876                };
80877            }
80878        }
80879    }
80880}
80881#[cfg(any(docsrs, feature = "path"))]
80882#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80883impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ComputedPropName {
80884    #[doc = "Calls [VisitMutAstPath`::visit_mut_computed_prop_name`] with `self`."]
80885    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80886        <V as VisitMutAstPath>::visit_mut_computed_prop_name(visitor, self, __ast_path)
80887    }
80888
80889    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80890        match self {
80891            ComputedPropName { span, expr } => {
80892                {
80893                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ComputedPropName(
80894                        self::fields::ComputedPropNameField::Span,
80895                    ));
80896                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80897                        span,
80898                        visitor,
80899                        &mut *__ast_path,
80900                    )
80901                };
80902                {
80903                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ComputedPropName(
80904                        self::fields::ComputedPropNameField::Expr,
80905                    ));
80906                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80907                        expr,
80908                        visitor,
80909                        &mut *__ast_path,
80910                    )
80911                };
80912            }
80913        }
80914    }
80915}
80916#[cfg(any(docsrs, feature = "path"))]
80917#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80918impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for CondExpr {
80919    #[doc = "Calls [VisitMutAstPath`::visit_mut_cond_expr`] with `self`."]
80920    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80921        <V as VisitMutAstPath>::visit_mut_cond_expr(visitor, self, __ast_path)
80922    }
80923
80924    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80925        match self {
80926            CondExpr {
80927                span,
80928                test,
80929                cons,
80930                alt,
80931            } => {
80932                {
80933                    let mut __ast_path = __ast_path
80934                        .with_guard(AstParentKind::CondExpr(self::fields::CondExprField::Span));
80935                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80936                        span,
80937                        visitor,
80938                        &mut *__ast_path,
80939                    )
80940                };
80941                {
80942                    let mut __ast_path = __ast_path
80943                        .with_guard(AstParentKind::CondExpr(self::fields::CondExprField::Test));
80944                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80945                        test,
80946                        visitor,
80947                        &mut *__ast_path,
80948                    )
80949                };
80950                {
80951                    let mut __ast_path = __ast_path
80952                        .with_guard(AstParentKind::CondExpr(self::fields::CondExprField::Cons));
80953                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80954                        cons,
80955                        visitor,
80956                        &mut *__ast_path,
80957                    )
80958                };
80959                {
80960                    let mut __ast_path = __ast_path
80961                        .with_guard(AstParentKind::CondExpr(self::fields::CondExprField::Alt));
80962                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80963                        alt,
80964                        visitor,
80965                        &mut *__ast_path,
80966                    )
80967                };
80968            }
80969        }
80970    }
80971}
80972#[cfg(any(docsrs, feature = "path"))]
80973#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80974impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Constructor {
80975    #[doc = "Calls [VisitMutAstPath`::visit_mut_constructor`] with `self`."]
80976    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80977        <V as VisitMutAstPath>::visit_mut_constructor(visitor, self, __ast_path)
80978    }
80979
80980    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80981        match self {
80982            Constructor {
80983                span,
80984                ctxt,
80985                key,
80986                params,
80987                body,
80988                accessibility,
80989                is_optional,
80990            } => {
80991                {
80992                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
80993                        self::fields::ConstructorField::Span,
80994                    ));
80995                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80996                        span,
80997                        visitor,
80998                        &mut *__ast_path,
80999                    )
81000                };
81001                {
81002                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
81003                        self::fields::ConstructorField::Ctxt,
81004                    ));
81005                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81006                        ctxt,
81007                        visitor,
81008                        &mut *__ast_path,
81009                    )
81010                };
81011                {
81012                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
81013                        self::fields::ConstructorField::Key,
81014                    ));
81015                    <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81016                        key,
81017                        visitor,
81018                        &mut *__ast_path,
81019                    )
81020                };
81021                {
81022                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
81023                        self::fields::ConstructorField::Params(usize::MAX),
81024                    ));
81025                    <Vec<ParamOrTsParamProp> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81026                        params,
81027                        visitor,
81028                        &mut *__ast_path,
81029                    )
81030                };
81031                {
81032                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
81033                        self::fields::ConstructorField::Body,
81034                    ));
81035                    <Option<BlockStmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81036                        body,
81037                        visitor,
81038                        &mut *__ast_path,
81039                    )
81040                };
81041                {
81042                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
81043                        self::fields::ConstructorField::Accessibility,
81044                    ));
81045                    <Option<Accessibility> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81046                        accessibility,
81047                        visitor,
81048                        &mut *__ast_path,
81049                    )
81050                };
81051            }
81052        }
81053    }
81054}
81055#[cfg(any(docsrs, feature = "path"))]
81056#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81057impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ContinueStmt {
81058    #[doc = "Calls [VisitMutAstPath`::visit_mut_continue_stmt`] with `self`."]
81059    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81060        <V as VisitMutAstPath>::visit_mut_continue_stmt(visitor, self, __ast_path)
81061    }
81062
81063    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81064        match self {
81065            ContinueStmt { span, label } => {
81066                {
81067                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ContinueStmt(
81068                        self::fields::ContinueStmtField::Span,
81069                    ));
81070                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81071                        span,
81072                        visitor,
81073                        &mut *__ast_path,
81074                    )
81075                };
81076                {
81077                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ContinueStmt(
81078                        self::fields::ContinueStmtField::Label,
81079                    ));
81080                    <Option<Ident> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81081                        label,
81082                        visitor,
81083                        &mut *__ast_path,
81084                    )
81085                };
81086            }
81087        }
81088    }
81089}
81090#[cfg(any(docsrs, feature = "path"))]
81091#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81092impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for DebuggerStmt {
81093    #[doc = "Calls [VisitMutAstPath`::visit_mut_debugger_stmt`] with `self`."]
81094    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81095        <V as VisitMutAstPath>::visit_mut_debugger_stmt(visitor, self, __ast_path)
81096    }
81097
81098    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81099        match self {
81100            DebuggerStmt { span } => {
81101                {
81102                    let mut __ast_path = __ast_path.with_guard(AstParentKind::DebuggerStmt(
81103                        self::fields::DebuggerStmtField::Span,
81104                    ));
81105                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81106                        span,
81107                        visitor,
81108                        &mut *__ast_path,
81109                    )
81110                };
81111            }
81112        }
81113    }
81114}
81115#[cfg(any(docsrs, feature = "path"))]
81116#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81117impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Decl {
81118    #[doc = "Calls [VisitMutAstPath`::visit_mut_decl`] with `self`."]
81119    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81120        <V as VisitMutAstPath>::visit_mut_decl(visitor, self, __ast_path)
81121    }
81122
81123    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81124        match self {
81125            Decl::Class { 0: _field_0 } => {
81126                let mut __ast_path =
81127                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::Class));
81128                <ClassDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81129                    _field_0,
81130                    visitor,
81131                    &mut *__ast_path,
81132                );
81133            }
81134            Decl::Fn { 0: _field_0 } => {
81135                let mut __ast_path =
81136                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::Fn));
81137                <FnDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81138                    _field_0,
81139                    visitor,
81140                    &mut *__ast_path,
81141                );
81142            }
81143            Decl::Var { 0: _field_0 } => {
81144                let mut __ast_path =
81145                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::Var));
81146                <Box<VarDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81147                    _field_0,
81148                    visitor,
81149                    &mut *__ast_path,
81150                );
81151            }
81152            Decl::Using { 0: _field_0 } => {
81153                let mut __ast_path =
81154                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::Using));
81155                <Box<UsingDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81156                    _field_0,
81157                    visitor,
81158                    &mut *__ast_path,
81159                );
81160            }
81161            Decl::TsInterface { 0: _field_0 } => {
81162                let mut __ast_path = __ast_path
81163                    .with_guard(AstParentKind::Decl(self::fields::DeclField::TsInterface));
81164                <Box<TsInterfaceDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81165                    _field_0,
81166                    visitor,
81167                    &mut *__ast_path,
81168                );
81169            }
81170            Decl::TsTypeAlias { 0: _field_0 } => {
81171                let mut __ast_path = __ast_path
81172                    .with_guard(AstParentKind::Decl(self::fields::DeclField::TsTypeAlias));
81173                <Box<TsTypeAliasDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81174                    _field_0,
81175                    visitor,
81176                    &mut *__ast_path,
81177                );
81178            }
81179            Decl::TsEnum { 0: _field_0 } => {
81180                let mut __ast_path =
81181                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::TsEnum));
81182                <Box<TsEnumDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81183                    _field_0,
81184                    visitor,
81185                    &mut *__ast_path,
81186                );
81187            }
81188            Decl::TsModule { 0: _field_0 } => {
81189                let mut __ast_path =
81190                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::TsModule));
81191                <Box<TsModuleDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81192                    _field_0,
81193                    visitor,
81194                    &mut *__ast_path,
81195                );
81196            }
81197        }
81198    }
81199}
81200#[cfg(any(docsrs, feature = "path"))]
81201#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81202impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Decorator {
81203    #[doc = "Calls [VisitMutAstPath`::visit_mut_decorator`] with `self`."]
81204    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81205        <V as VisitMutAstPath>::visit_mut_decorator(visitor, self, __ast_path)
81206    }
81207
81208    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81209        match self {
81210            Decorator { span, expr } => {
81211                {
81212                    let mut __ast_path = __ast_path
81213                        .with_guard(AstParentKind::Decorator(self::fields::DecoratorField::Span));
81214                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81215                        span,
81216                        visitor,
81217                        &mut *__ast_path,
81218                    )
81219                };
81220                {
81221                    let mut __ast_path = __ast_path
81222                        .with_guard(AstParentKind::Decorator(self::fields::DecoratorField::Expr));
81223                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81224                        expr,
81225                        visitor,
81226                        &mut *__ast_path,
81227                    )
81228                };
81229            }
81230        }
81231    }
81232}
81233#[cfg(any(docsrs, feature = "path"))]
81234#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81235impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for DefaultDecl {
81236    #[doc = "Calls [VisitMutAstPath`::visit_mut_default_decl`] with `self`."]
81237    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81238        <V as VisitMutAstPath>::visit_mut_default_decl(visitor, self, __ast_path)
81239    }
81240
81241    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81242        match self {
81243            DefaultDecl::Class { 0: _field_0 } => {
81244                let mut __ast_path = __ast_path.with_guard(AstParentKind::DefaultDecl(
81245                    self::fields::DefaultDeclField::Class,
81246                ));
81247                <ClassExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81248                    _field_0,
81249                    visitor,
81250                    &mut *__ast_path,
81251                );
81252            }
81253            DefaultDecl::Fn { 0: _field_0 } => {
81254                let mut __ast_path = __ast_path.with_guard(AstParentKind::DefaultDecl(
81255                    self::fields::DefaultDeclField::Fn,
81256                ));
81257                <FnExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81258                    _field_0,
81259                    visitor,
81260                    &mut *__ast_path,
81261                );
81262            }
81263            DefaultDecl::TsInterfaceDecl { 0: _field_0 } => {
81264                let mut __ast_path = __ast_path.with_guard(AstParentKind::DefaultDecl(
81265                    self::fields::DefaultDeclField::TsInterfaceDecl,
81266                ));
81267                <Box<TsInterfaceDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81268                    _field_0,
81269                    visitor,
81270                    &mut *__ast_path,
81271                );
81272            }
81273        }
81274    }
81275}
81276#[cfg(any(docsrs, feature = "path"))]
81277#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81278impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for DoWhileStmt {
81279    #[doc = "Calls [VisitMutAstPath`::visit_mut_do_while_stmt`] with `self`."]
81280    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81281        <V as VisitMutAstPath>::visit_mut_do_while_stmt(visitor, self, __ast_path)
81282    }
81283
81284    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81285        match self {
81286            DoWhileStmt { span, test, body } => {
81287                {
81288                    let mut __ast_path = __ast_path.with_guard(AstParentKind::DoWhileStmt(
81289                        self::fields::DoWhileStmtField::Span,
81290                    ));
81291                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81292                        span,
81293                        visitor,
81294                        &mut *__ast_path,
81295                    )
81296                };
81297                {
81298                    let mut __ast_path = __ast_path.with_guard(AstParentKind::DoWhileStmt(
81299                        self::fields::DoWhileStmtField::Test,
81300                    ));
81301                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81302                        test,
81303                        visitor,
81304                        &mut *__ast_path,
81305                    )
81306                };
81307                {
81308                    let mut __ast_path = __ast_path.with_guard(AstParentKind::DoWhileStmt(
81309                        self::fields::DoWhileStmtField::Body,
81310                    ));
81311                    <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81312                        body,
81313                        visitor,
81314                        &mut *__ast_path,
81315                    )
81316                };
81317            }
81318        }
81319    }
81320}
81321#[cfg(any(docsrs, feature = "path"))]
81322#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81323impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for EmptyStmt {
81324    #[doc = "Calls [VisitMutAstPath`::visit_mut_empty_stmt`] with `self`."]
81325    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81326        <V as VisitMutAstPath>::visit_mut_empty_stmt(visitor, self, __ast_path)
81327    }
81328
81329    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81330        match self {
81331            EmptyStmt { span } => {
81332                {
81333                    let mut __ast_path = __ast_path
81334                        .with_guard(AstParentKind::EmptyStmt(self::fields::EmptyStmtField::Span));
81335                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81336                        span,
81337                        visitor,
81338                        &mut *__ast_path,
81339                    )
81340                };
81341            }
81342        }
81343    }
81344}
81345#[cfg(any(docsrs, feature = "path"))]
81346#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81347impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExportAll {
81348    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_all`] with `self`."]
81349    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81350        <V as VisitMutAstPath>::visit_mut_export_all(visitor, self, __ast_path)
81351    }
81352
81353    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81354        match self {
81355            ExportAll {
81356                span,
81357                src,
81358                type_only,
81359                with,
81360            } => {
81361                {
81362                    let mut __ast_path = __ast_path
81363                        .with_guard(AstParentKind::ExportAll(self::fields::ExportAllField::Span));
81364                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81365                        span,
81366                        visitor,
81367                        &mut *__ast_path,
81368                    )
81369                };
81370                {
81371                    let mut __ast_path = __ast_path
81372                        .with_guard(AstParentKind::ExportAll(self::fields::ExportAllField::Src));
81373                    <Box<Str> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81374                        src,
81375                        visitor,
81376                        &mut *__ast_path,
81377                    )
81378                };
81379                {
81380                    let mut __ast_path = __ast_path
81381                        .with_guard(AstParentKind::ExportAll(self::fields::ExportAllField::With));
81382                    <Option<Box<ObjectLit>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81383                        with,
81384                        visitor,
81385                        &mut *__ast_path,
81386                    )
81387                };
81388            }
81389        }
81390    }
81391}
81392#[cfg(any(docsrs, feature = "path"))]
81393#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81394impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExportDecl {
81395    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_decl`] with `self`."]
81396    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81397        <V as VisitMutAstPath>::visit_mut_export_decl(visitor, self, __ast_path)
81398    }
81399
81400    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81401        match self {
81402            ExportDecl { span, decl } => {
81403                {
81404                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDecl(
81405                        self::fields::ExportDeclField::Span,
81406                    ));
81407                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81408                        span,
81409                        visitor,
81410                        &mut *__ast_path,
81411                    )
81412                };
81413                {
81414                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDecl(
81415                        self::fields::ExportDeclField::Decl,
81416                    ));
81417                    <Decl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81418                        decl,
81419                        visitor,
81420                        &mut *__ast_path,
81421                    )
81422                };
81423            }
81424        }
81425    }
81426}
81427#[cfg(any(docsrs, feature = "path"))]
81428#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81429impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExportDefaultDecl {
81430    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_default_decl`] with `self`."]
81431    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81432        <V as VisitMutAstPath>::visit_mut_export_default_decl(visitor, self, __ast_path)
81433    }
81434
81435    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81436        match self {
81437            ExportDefaultDecl { span, decl } => {
81438                {
81439                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDefaultDecl(
81440                        self::fields::ExportDefaultDeclField::Span,
81441                    ));
81442                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81443                        span,
81444                        visitor,
81445                        &mut *__ast_path,
81446                    )
81447                };
81448                {
81449                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDefaultDecl(
81450                        self::fields::ExportDefaultDeclField::Decl,
81451                    ));
81452                    <DefaultDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81453                        decl,
81454                        visitor,
81455                        &mut *__ast_path,
81456                    )
81457                };
81458            }
81459        }
81460    }
81461}
81462#[cfg(any(docsrs, feature = "path"))]
81463#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81464impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExportDefaultExpr {
81465    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_default_expr`] with `self`."]
81466    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81467        <V as VisitMutAstPath>::visit_mut_export_default_expr(visitor, self, __ast_path)
81468    }
81469
81470    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81471        match self {
81472            ExportDefaultExpr { span, expr } => {
81473                {
81474                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDefaultExpr(
81475                        self::fields::ExportDefaultExprField::Span,
81476                    ));
81477                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81478                        span,
81479                        visitor,
81480                        &mut *__ast_path,
81481                    )
81482                };
81483                {
81484                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDefaultExpr(
81485                        self::fields::ExportDefaultExprField::Expr,
81486                    ));
81487                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81488                        expr,
81489                        visitor,
81490                        &mut *__ast_path,
81491                    )
81492                };
81493            }
81494        }
81495    }
81496}
81497#[cfg(any(docsrs, feature = "path"))]
81498#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81499impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExportDefaultSpecifier {
81500    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_default_specifier`] with `self`."]
81501    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81502        <V as VisitMutAstPath>::visit_mut_export_default_specifier(visitor, self, __ast_path)
81503    }
81504
81505    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81506        match self {
81507            ExportDefaultSpecifier { exported } => {
81508                {
81509                    let mut __ast_path =
81510                        __ast_path.with_guard(AstParentKind::ExportDefaultSpecifier(
81511                            self::fields::ExportDefaultSpecifierField::Exported,
81512                        ));
81513                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81514                        exported,
81515                        visitor,
81516                        &mut *__ast_path,
81517                    )
81518                };
81519            }
81520        }
81521    }
81522}
81523#[cfg(any(docsrs, feature = "path"))]
81524#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81525impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExportNamedSpecifier {
81526    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_named_specifier`] with `self`."]
81527    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81528        <V as VisitMutAstPath>::visit_mut_export_named_specifier(visitor, self, __ast_path)
81529    }
81530
81531    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81532        match self {
81533            ExportNamedSpecifier {
81534                span,
81535                orig,
81536                exported,
81537                is_type_only,
81538            } => {
81539                {
81540                    let mut __ast_path =
81541                        __ast_path.with_guard(AstParentKind::ExportNamedSpecifier(
81542                            self::fields::ExportNamedSpecifierField::Span,
81543                        ));
81544                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81545                        span,
81546                        visitor,
81547                        &mut *__ast_path,
81548                    )
81549                };
81550                {
81551                    let mut __ast_path =
81552                        __ast_path.with_guard(AstParentKind::ExportNamedSpecifier(
81553                            self::fields::ExportNamedSpecifierField::Orig,
81554                        ));
81555                    <ModuleExportName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81556                        orig,
81557                        visitor,
81558                        &mut *__ast_path,
81559                    )
81560                };
81561                {
81562                    let mut __ast_path =
81563                        __ast_path.with_guard(AstParentKind::ExportNamedSpecifier(
81564                            self::fields::ExportNamedSpecifierField::Exported,
81565                        ));
81566                    <Option<ModuleExportName> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81567                        exported,
81568                        visitor,
81569                        &mut *__ast_path,
81570                    )
81571                };
81572            }
81573        }
81574    }
81575}
81576#[cfg(any(docsrs, feature = "path"))]
81577#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81578impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExportNamespaceSpecifier {
81579    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_namespace_specifier`] with `self`."]
81580    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81581        <V as VisitMutAstPath>::visit_mut_export_namespace_specifier(visitor, self, __ast_path)
81582    }
81583
81584    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81585        match self {
81586            ExportNamespaceSpecifier { span, name } => {
81587                {
81588                    let mut __ast_path =
81589                        __ast_path.with_guard(AstParentKind::ExportNamespaceSpecifier(
81590                            self::fields::ExportNamespaceSpecifierField::Span,
81591                        ));
81592                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81593                        span,
81594                        visitor,
81595                        &mut *__ast_path,
81596                    )
81597                };
81598                {
81599                    let mut __ast_path =
81600                        __ast_path.with_guard(AstParentKind::ExportNamespaceSpecifier(
81601                            self::fields::ExportNamespaceSpecifierField::Name,
81602                        ));
81603                    <ModuleExportName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81604                        name,
81605                        visitor,
81606                        &mut *__ast_path,
81607                    )
81608                };
81609            }
81610        }
81611    }
81612}
81613#[cfg(any(docsrs, feature = "path"))]
81614#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81615impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExportSpecifier {
81616    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_specifier`] with `self`."]
81617    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81618        <V as VisitMutAstPath>::visit_mut_export_specifier(visitor, self, __ast_path)
81619    }
81620
81621    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81622        match self {
81623            ExportSpecifier::Namespace { 0: _field_0 } => {
81624                let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportSpecifier(
81625                    self::fields::ExportSpecifierField::Namespace,
81626                ));
81627                <ExportNamespaceSpecifier as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81628                    _field_0,
81629                    visitor,
81630                    &mut *__ast_path,
81631                );
81632            }
81633            ExportSpecifier::Default { 0: _field_0 } => {
81634                let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportSpecifier(
81635                    self::fields::ExportSpecifierField::Default,
81636                ));
81637                <ExportDefaultSpecifier as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81638                    _field_0,
81639                    visitor,
81640                    &mut *__ast_path,
81641                );
81642            }
81643            ExportSpecifier::Named { 0: _field_0 } => {
81644                let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportSpecifier(
81645                    self::fields::ExportSpecifierField::Named,
81646                ));
81647                <ExportNamedSpecifier as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81648                    _field_0,
81649                    visitor,
81650                    &mut *__ast_path,
81651                );
81652            }
81653        }
81654    }
81655}
81656#[cfg(any(docsrs, feature = "path"))]
81657#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81658impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Expr {
81659    #[doc = "Calls [VisitMutAstPath`::visit_mut_expr`] with `self`."]
81660    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81661        <V as VisitMutAstPath>::visit_mut_expr(visitor, self, __ast_path)
81662    }
81663
81664    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81665        match self {
81666            Expr::This { 0: _field_0 } => {
81667                let mut __ast_path =
81668                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::This));
81669                <ThisExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81670                    _field_0,
81671                    visitor,
81672                    &mut *__ast_path,
81673                );
81674            }
81675            Expr::Array { 0: _field_0 } => {
81676                let mut __ast_path =
81677                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Array));
81678                <ArrayLit as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81679                    _field_0,
81680                    visitor,
81681                    &mut *__ast_path,
81682                );
81683            }
81684            Expr::Object { 0: _field_0 } => {
81685                let mut __ast_path =
81686                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Object));
81687                <ObjectLit as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81688                    _field_0,
81689                    visitor,
81690                    &mut *__ast_path,
81691                );
81692            }
81693            Expr::Fn { 0: _field_0 } => {
81694                let mut __ast_path =
81695                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Fn));
81696                <FnExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81697                    _field_0,
81698                    visitor,
81699                    &mut *__ast_path,
81700                );
81701            }
81702            Expr::Unary { 0: _field_0 } => {
81703                let mut __ast_path =
81704                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Unary));
81705                <UnaryExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81706                    _field_0,
81707                    visitor,
81708                    &mut *__ast_path,
81709                );
81710            }
81711            Expr::Update { 0: _field_0 } => {
81712                let mut __ast_path =
81713                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Update));
81714                <UpdateExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81715                    _field_0,
81716                    visitor,
81717                    &mut *__ast_path,
81718                );
81719            }
81720            Expr::Bin { 0: _field_0 } => {
81721                let mut __ast_path =
81722                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Bin));
81723                <BinExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81724                    _field_0,
81725                    visitor,
81726                    &mut *__ast_path,
81727                );
81728            }
81729            Expr::Assign { 0: _field_0 } => {
81730                let mut __ast_path =
81731                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Assign));
81732                <AssignExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81733                    _field_0,
81734                    visitor,
81735                    &mut *__ast_path,
81736                );
81737            }
81738            Expr::Member { 0: _field_0 } => {
81739                let mut __ast_path =
81740                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Member));
81741                <MemberExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81742                    _field_0,
81743                    visitor,
81744                    &mut *__ast_path,
81745                );
81746            }
81747            Expr::SuperProp { 0: _field_0 } => {
81748                let mut __ast_path =
81749                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::SuperProp));
81750                <SuperPropExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81751                    _field_0,
81752                    visitor,
81753                    &mut *__ast_path,
81754                );
81755            }
81756            Expr::Cond { 0: _field_0 } => {
81757                let mut __ast_path =
81758                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Cond));
81759                <CondExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81760                    _field_0,
81761                    visitor,
81762                    &mut *__ast_path,
81763                );
81764            }
81765            Expr::Call { 0: _field_0 } => {
81766                let mut __ast_path =
81767                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Call));
81768                <CallExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81769                    _field_0,
81770                    visitor,
81771                    &mut *__ast_path,
81772                );
81773            }
81774            Expr::New { 0: _field_0 } => {
81775                let mut __ast_path =
81776                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::New));
81777                <NewExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81778                    _field_0,
81779                    visitor,
81780                    &mut *__ast_path,
81781                );
81782            }
81783            Expr::Seq { 0: _field_0 } => {
81784                let mut __ast_path =
81785                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Seq));
81786                <SeqExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81787                    _field_0,
81788                    visitor,
81789                    &mut *__ast_path,
81790                );
81791            }
81792            Expr::Ident { 0: _field_0 } => {
81793                let mut __ast_path =
81794                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Ident));
81795                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81796                    _field_0,
81797                    visitor,
81798                    &mut *__ast_path,
81799                );
81800            }
81801            Expr::Lit { 0: _field_0 } => {
81802                let mut __ast_path =
81803                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Lit));
81804                <Lit as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81805                    _field_0,
81806                    visitor,
81807                    &mut *__ast_path,
81808                );
81809            }
81810            Expr::Tpl { 0: _field_0 } => {
81811                let mut __ast_path =
81812                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Tpl));
81813                <Tpl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81814                    _field_0,
81815                    visitor,
81816                    &mut *__ast_path,
81817                );
81818            }
81819            Expr::TaggedTpl { 0: _field_0 } => {
81820                let mut __ast_path =
81821                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::TaggedTpl));
81822                <TaggedTpl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81823                    _field_0,
81824                    visitor,
81825                    &mut *__ast_path,
81826                );
81827            }
81828            Expr::Arrow { 0: _field_0 } => {
81829                let mut __ast_path =
81830                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Arrow));
81831                <ArrowExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81832                    _field_0,
81833                    visitor,
81834                    &mut *__ast_path,
81835                );
81836            }
81837            Expr::Class { 0: _field_0 } => {
81838                let mut __ast_path =
81839                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Class));
81840                <ClassExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81841                    _field_0,
81842                    visitor,
81843                    &mut *__ast_path,
81844                );
81845            }
81846            Expr::Yield { 0: _field_0 } => {
81847                let mut __ast_path =
81848                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Yield));
81849                <YieldExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81850                    _field_0,
81851                    visitor,
81852                    &mut *__ast_path,
81853                );
81854            }
81855            Expr::MetaProp { 0: _field_0 } => {
81856                let mut __ast_path =
81857                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::MetaProp));
81858                <MetaPropExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81859                    _field_0,
81860                    visitor,
81861                    &mut *__ast_path,
81862                );
81863            }
81864            Expr::Await { 0: _field_0 } => {
81865                let mut __ast_path =
81866                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Await));
81867                <AwaitExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81868                    _field_0,
81869                    visitor,
81870                    &mut *__ast_path,
81871                );
81872            }
81873            Expr::Paren { 0: _field_0 } => {
81874                let mut __ast_path =
81875                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Paren));
81876                <ParenExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81877                    _field_0,
81878                    visitor,
81879                    &mut *__ast_path,
81880                );
81881            }
81882            Expr::JSXMember { 0: _field_0 } => {
81883                let mut __ast_path =
81884                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Jsxmember));
81885                <JSXMemberExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81886                    _field_0,
81887                    visitor,
81888                    &mut *__ast_path,
81889                );
81890            }
81891            Expr::JSXNamespacedName { 0: _field_0 } => {
81892                let mut __ast_path = __ast_path.with_guard(AstParentKind::Expr(
81893                    self::fields::ExprField::JsxnamespacedName,
81894                ));
81895                <JSXNamespacedName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81896                    _field_0,
81897                    visitor,
81898                    &mut *__ast_path,
81899                );
81900            }
81901            Expr::JSXEmpty { 0: _field_0 } => {
81902                let mut __ast_path =
81903                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Jsxempty));
81904                <JSXEmptyExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81905                    _field_0,
81906                    visitor,
81907                    &mut *__ast_path,
81908                );
81909            }
81910            Expr::JSXElement { 0: _field_0 } => {
81911                let mut __ast_path =
81912                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Jsxelement));
81913                <Box<JSXElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81914                    _field_0,
81915                    visitor,
81916                    &mut *__ast_path,
81917                );
81918            }
81919            Expr::JSXFragment { 0: _field_0 } => {
81920                let mut __ast_path = __ast_path
81921                    .with_guard(AstParentKind::Expr(self::fields::ExprField::Jsxfragment));
81922                <JSXFragment as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81923                    _field_0,
81924                    visitor,
81925                    &mut *__ast_path,
81926                );
81927            }
81928            Expr::TsTypeAssertion { 0: _field_0 } => {
81929                let mut __ast_path = __ast_path.with_guard(AstParentKind::Expr(
81930                    self::fields::ExprField::TsTypeAssertion,
81931                ));
81932                <TsTypeAssertion as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81933                    _field_0,
81934                    visitor,
81935                    &mut *__ast_path,
81936                );
81937            }
81938            Expr::TsConstAssertion { 0: _field_0 } => {
81939                let mut __ast_path = __ast_path.with_guard(AstParentKind::Expr(
81940                    self::fields::ExprField::TsConstAssertion,
81941                ));
81942                <TsConstAssertion as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81943                    _field_0,
81944                    visitor,
81945                    &mut *__ast_path,
81946                );
81947            }
81948            Expr::TsNonNull { 0: _field_0 } => {
81949                let mut __ast_path =
81950                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::TsNonNull));
81951                <TsNonNullExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81952                    _field_0,
81953                    visitor,
81954                    &mut *__ast_path,
81955                );
81956            }
81957            Expr::TsAs { 0: _field_0 } => {
81958                let mut __ast_path =
81959                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::TsAs));
81960                <TsAsExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81961                    _field_0,
81962                    visitor,
81963                    &mut *__ast_path,
81964                );
81965            }
81966            Expr::TsInstantiation { 0: _field_0 } => {
81967                let mut __ast_path = __ast_path.with_guard(AstParentKind::Expr(
81968                    self::fields::ExprField::TsInstantiation,
81969                ));
81970                <TsInstantiation as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81971                    _field_0,
81972                    visitor,
81973                    &mut *__ast_path,
81974                );
81975            }
81976            Expr::TsSatisfies { 0: _field_0 } => {
81977                let mut __ast_path = __ast_path
81978                    .with_guard(AstParentKind::Expr(self::fields::ExprField::TsSatisfies));
81979                <TsSatisfiesExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81980                    _field_0,
81981                    visitor,
81982                    &mut *__ast_path,
81983                );
81984            }
81985            Expr::PrivateName { 0: _field_0 } => {
81986                let mut __ast_path = __ast_path
81987                    .with_guard(AstParentKind::Expr(self::fields::ExprField::PrivateName));
81988                <PrivateName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81989                    _field_0,
81990                    visitor,
81991                    &mut *__ast_path,
81992                );
81993            }
81994            Expr::OptChain { 0: _field_0 } => {
81995                let mut __ast_path =
81996                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::OptChain));
81997                <OptChainExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81998                    _field_0,
81999                    visitor,
82000                    &mut *__ast_path,
82001                );
82002            }
82003            Expr::Invalid { 0: _field_0 } => {
82004                let mut __ast_path =
82005                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Invalid));
82006                <Invalid as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82007                    _field_0,
82008                    visitor,
82009                    &mut *__ast_path,
82010                );
82011            }
82012        }
82013    }
82014}
82015#[cfg(any(docsrs, feature = "path"))]
82016#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82017impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExprOrSpread {
82018    #[doc = "Calls [VisitMutAstPath`::visit_mut_expr_or_spread`] with `self`."]
82019    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82020        <V as VisitMutAstPath>::visit_mut_expr_or_spread(visitor, self, __ast_path)
82021    }
82022
82023    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82024        match self {
82025            ExprOrSpread { spread, expr } => {
82026                {
82027                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExprOrSpread(
82028                        self::fields::ExprOrSpreadField::Spread,
82029                    ));
82030                    <Option<swc_common::Span> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82031                        spread,
82032                        visitor,
82033                        &mut *__ast_path,
82034                    )
82035                };
82036                {
82037                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExprOrSpread(
82038                        self::fields::ExprOrSpreadField::Expr,
82039                    ));
82040                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82041                        expr,
82042                        visitor,
82043                        &mut *__ast_path,
82044                    )
82045                };
82046            }
82047        }
82048    }
82049}
82050#[cfg(any(docsrs, feature = "path"))]
82051#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82052impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExprStmt {
82053    #[doc = "Calls [VisitMutAstPath`::visit_mut_expr_stmt`] with `self`."]
82054    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82055        <V as VisitMutAstPath>::visit_mut_expr_stmt(visitor, self, __ast_path)
82056    }
82057
82058    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82059        match self {
82060            ExprStmt { span, expr } => {
82061                {
82062                    let mut __ast_path = __ast_path
82063                        .with_guard(AstParentKind::ExprStmt(self::fields::ExprStmtField::Span));
82064                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82065                        span,
82066                        visitor,
82067                        &mut *__ast_path,
82068                    )
82069                };
82070                {
82071                    let mut __ast_path = __ast_path
82072                        .with_guard(AstParentKind::ExprStmt(self::fields::ExprStmtField::Expr));
82073                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82074                        expr,
82075                        visitor,
82076                        &mut *__ast_path,
82077                    )
82078                };
82079            }
82080        }
82081    }
82082}
82083#[cfg(any(docsrs, feature = "path"))]
82084#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82085impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for FnDecl {
82086    #[doc = "Calls [VisitMutAstPath`::visit_mut_fn_decl`] with `self`."]
82087    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82088        <V as VisitMutAstPath>::visit_mut_fn_decl(visitor, self, __ast_path)
82089    }
82090
82091    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82092        match self {
82093            FnDecl {
82094                ident,
82095                declare,
82096                function,
82097            } => {
82098                {
82099                    let mut __ast_path = __ast_path
82100                        .with_guard(AstParentKind::FnDecl(self::fields::FnDeclField::Ident));
82101                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82102                        ident,
82103                        visitor,
82104                        &mut *__ast_path,
82105                    )
82106                };
82107                {
82108                    let mut __ast_path = __ast_path
82109                        .with_guard(AstParentKind::FnDecl(self::fields::FnDeclField::Function));
82110                    <Box<Function> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82111                        function,
82112                        visitor,
82113                        &mut *__ast_path,
82114                    )
82115                };
82116            }
82117        }
82118    }
82119}
82120#[cfg(any(docsrs, feature = "path"))]
82121#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82122impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for FnExpr {
82123    #[doc = "Calls [VisitMutAstPath`::visit_mut_fn_expr`] with `self`."]
82124    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82125        <V as VisitMutAstPath>::visit_mut_fn_expr(visitor, self, __ast_path)
82126    }
82127
82128    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82129        match self {
82130            FnExpr { ident, function } => {
82131                {
82132                    let mut __ast_path = __ast_path
82133                        .with_guard(AstParentKind::FnExpr(self::fields::FnExprField::Ident));
82134                    <Option<Ident> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82135                        ident,
82136                        visitor,
82137                        &mut *__ast_path,
82138                    )
82139                };
82140                {
82141                    let mut __ast_path = __ast_path
82142                        .with_guard(AstParentKind::FnExpr(self::fields::FnExprField::Function));
82143                    <Box<Function> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82144                        function,
82145                        visitor,
82146                        &mut *__ast_path,
82147                    )
82148                };
82149            }
82150        }
82151    }
82152}
82153#[cfg(any(docsrs, feature = "path"))]
82154#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82155impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ForHead {
82156    #[doc = "Calls [VisitMutAstPath`::visit_mut_for_head`] with `self`."]
82157    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82158        <V as VisitMutAstPath>::visit_mut_for_head(visitor, self, __ast_path)
82159    }
82160
82161    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82162        match self {
82163            ForHead::VarDecl { 0: _field_0 } => {
82164                let mut __ast_path = __ast_path
82165                    .with_guard(AstParentKind::ForHead(self::fields::ForHeadField::VarDecl));
82166                <Box<VarDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82167                    _field_0,
82168                    visitor,
82169                    &mut *__ast_path,
82170                );
82171            }
82172            ForHead::UsingDecl { 0: _field_0 } => {
82173                let mut __ast_path = __ast_path.with_guard(AstParentKind::ForHead(
82174                    self::fields::ForHeadField::UsingDecl,
82175                ));
82176                <Box<UsingDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82177                    _field_0,
82178                    visitor,
82179                    &mut *__ast_path,
82180                );
82181            }
82182            ForHead::Pat { 0: _field_0 } => {
82183                let mut __ast_path =
82184                    __ast_path.with_guard(AstParentKind::ForHead(self::fields::ForHeadField::Pat));
82185                <Box<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82186                    _field_0,
82187                    visitor,
82188                    &mut *__ast_path,
82189                );
82190            }
82191        }
82192    }
82193}
82194#[cfg(any(docsrs, feature = "path"))]
82195#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82196impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ForInStmt {
82197    #[doc = "Calls [VisitMutAstPath`::visit_mut_for_in_stmt`] with `self`."]
82198    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82199        <V as VisitMutAstPath>::visit_mut_for_in_stmt(visitor, self, __ast_path)
82200    }
82201
82202    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82203        match self {
82204            ForInStmt {
82205                span,
82206                left,
82207                right,
82208                body,
82209            } => {
82210                {
82211                    let mut __ast_path = __ast_path
82212                        .with_guard(AstParentKind::ForInStmt(self::fields::ForInStmtField::Span));
82213                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82214                        span,
82215                        visitor,
82216                        &mut *__ast_path,
82217                    )
82218                };
82219                {
82220                    let mut __ast_path = __ast_path
82221                        .with_guard(AstParentKind::ForInStmt(self::fields::ForInStmtField::Left));
82222                    <ForHead as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82223                        left,
82224                        visitor,
82225                        &mut *__ast_path,
82226                    )
82227                };
82228                {
82229                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ForInStmt(
82230                        self::fields::ForInStmtField::Right,
82231                    ));
82232                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82233                        right,
82234                        visitor,
82235                        &mut *__ast_path,
82236                    )
82237                };
82238                {
82239                    let mut __ast_path = __ast_path
82240                        .with_guard(AstParentKind::ForInStmt(self::fields::ForInStmtField::Body));
82241                    <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82242                        body,
82243                        visitor,
82244                        &mut *__ast_path,
82245                    )
82246                };
82247            }
82248        }
82249    }
82250}
82251#[cfg(any(docsrs, feature = "path"))]
82252#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82253impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ForOfStmt {
82254    #[doc = "Calls [VisitMutAstPath`::visit_mut_for_of_stmt`] with `self`."]
82255    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82256        <V as VisitMutAstPath>::visit_mut_for_of_stmt(visitor, self, __ast_path)
82257    }
82258
82259    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82260        match self {
82261            ForOfStmt {
82262                span,
82263                is_await,
82264                left,
82265                right,
82266                body,
82267            } => {
82268                {
82269                    let mut __ast_path = __ast_path
82270                        .with_guard(AstParentKind::ForOfStmt(self::fields::ForOfStmtField::Span));
82271                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82272                        span,
82273                        visitor,
82274                        &mut *__ast_path,
82275                    )
82276                };
82277                {
82278                    let mut __ast_path = __ast_path
82279                        .with_guard(AstParentKind::ForOfStmt(self::fields::ForOfStmtField::Left));
82280                    <ForHead as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82281                        left,
82282                        visitor,
82283                        &mut *__ast_path,
82284                    )
82285                };
82286                {
82287                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ForOfStmt(
82288                        self::fields::ForOfStmtField::Right,
82289                    ));
82290                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82291                        right,
82292                        visitor,
82293                        &mut *__ast_path,
82294                    )
82295                };
82296                {
82297                    let mut __ast_path = __ast_path
82298                        .with_guard(AstParentKind::ForOfStmt(self::fields::ForOfStmtField::Body));
82299                    <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82300                        body,
82301                        visitor,
82302                        &mut *__ast_path,
82303                    )
82304                };
82305            }
82306        }
82307    }
82308}
82309#[cfg(any(docsrs, feature = "path"))]
82310#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82311impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ForStmt {
82312    #[doc = "Calls [VisitMutAstPath`::visit_mut_for_stmt`] with `self`."]
82313    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82314        <V as VisitMutAstPath>::visit_mut_for_stmt(visitor, self, __ast_path)
82315    }
82316
82317    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82318        match self {
82319            ForStmt {
82320                span,
82321                init,
82322                test,
82323                update,
82324                body,
82325            } => {
82326                {
82327                    let mut __ast_path = __ast_path
82328                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Span));
82329                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82330                        span,
82331                        visitor,
82332                        &mut *__ast_path,
82333                    )
82334                };
82335                {
82336                    let mut __ast_path = __ast_path
82337                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Init));
82338                    <Option<VarDeclOrExpr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82339                        init,
82340                        visitor,
82341                        &mut *__ast_path,
82342                    )
82343                };
82344                {
82345                    let mut __ast_path = __ast_path
82346                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Test));
82347                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82348                        test,
82349                        visitor,
82350                        &mut *__ast_path,
82351                    )
82352                };
82353                {
82354                    let mut __ast_path = __ast_path
82355                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Update));
82356                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82357                        update,
82358                        visitor,
82359                        &mut *__ast_path,
82360                    )
82361                };
82362                {
82363                    let mut __ast_path = __ast_path
82364                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Body));
82365                    <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82366                        body,
82367                        visitor,
82368                        &mut *__ast_path,
82369                    )
82370                };
82371            }
82372        }
82373    }
82374}
82375#[cfg(any(docsrs, feature = "path"))]
82376#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82377impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Function {
82378    #[doc = "Calls [VisitMutAstPath`::visit_mut_function`] with `self`."]
82379    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82380        <V as VisitMutAstPath>::visit_mut_function(visitor, self, __ast_path)
82381    }
82382
82383    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82384        match self {
82385            Function {
82386                params,
82387                decorators,
82388                span,
82389                ctxt,
82390                body,
82391                is_generator,
82392                is_async,
82393                type_params,
82394                return_type,
82395            } => {
82396                {
82397                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Function(
82398                        self::fields::FunctionField::Params(usize::MAX),
82399                    ));
82400                    <Vec<Param> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82401                        params,
82402                        visitor,
82403                        &mut *__ast_path,
82404                    )
82405                };
82406                {
82407                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Function(
82408                        self::fields::FunctionField::Decorators(usize::MAX),
82409                    ));
82410                    <Vec<Decorator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82411                        decorators,
82412                        visitor,
82413                        &mut *__ast_path,
82414                    )
82415                };
82416                {
82417                    let mut __ast_path = __ast_path
82418                        .with_guard(AstParentKind::Function(self::fields::FunctionField::Span));
82419                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82420                        span,
82421                        visitor,
82422                        &mut *__ast_path,
82423                    )
82424                };
82425                {
82426                    let mut __ast_path = __ast_path
82427                        .with_guard(AstParentKind::Function(self::fields::FunctionField::Ctxt));
82428                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82429                        ctxt,
82430                        visitor,
82431                        &mut *__ast_path,
82432                    )
82433                };
82434                {
82435                    let mut __ast_path = __ast_path
82436                        .with_guard(AstParentKind::Function(self::fields::FunctionField::Body));
82437                    <Option<BlockStmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82438                        body,
82439                        visitor,
82440                        &mut *__ast_path,
82441                    )
82442                };
82443                {
82444                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Function(
82445                        self::fields::FunctionField::TypeParams,
82446                    ));
82447                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
82448                };
82449                {
82450                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Function(
82451                        self::fields::FunctionField::ReturnType,
82452                    ));
82453                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82454                        return_type,
82455                        visitor,
82456                        &mut *__ast_path,
82457                    )
82458                };
82459            }
82460        }
82461    }
82462}
82463#[cfg(any(docsrs, feature = "path"))]
82464#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82465impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for GetterProp {
82466    #[doc = "Calls [VisitMutAstPath`::visit_mut_getter_prop`] with `self`."]
82467    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82468        <V as VisitMutAstPath>::visit_mut_getter_prop(visitor, self, __ast_path)
82469    }
82470
82471    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82472        match self {
82473            GetterProp {
82474                span,
82475                key,
82476                type_ann,
82477                body,
82478            } => {
82479                {
82480                    let mut __ast_path = __ast_path.with_guard(AstParentKind::GetterProp(
82481                        self::fields::GetterPropField::Span,
82482                    ));
82483                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82484                        span,
82485                        visitor,
82486                        &mut *__ast_path,
82487                    )
82488                };
82489                {
82490                    let mut __ast_path = __ast_path.with_guard(AstParentKind::GetterProp(
82491                        self::fields::GetterPropField::Key,
82492                    ));
82493                    <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82494                        key,
82495                        visitor,
82496                        &mut *__ast_path,
82497                    )
82498                };
82499                {
82500                    let mut __ast_path = __ast_path.with_guard(AstParentKind::GetterProp(
82501                        self::fields::GetterPropField::TypeAnn,
82502                    ));
82503                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82504                        type_ann,
82505                        visitor,
82506                        &mut *__ast_path,
82507                    )
82508                };
82509                {
82510                    let mut __ast_path = __ast_path.with_guard(AstParentKind::GetterProp(
82511                        self::fields::GetterPropField::Body,
82512                    ));
82513                    <Option<BlockStmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82514                        body,
82515                        visitor,
82516                        &mut *__ast_path,
82517                    )
82518                };
82519            }
82520        }
82521    }
82522}
82523#[cfg(any(docsrs, feature = "path"))]
82524#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82525impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Ident {
82526    #[doc = "Calls [VisitMutAstPath`::visit_mut_ident`] with `self`."]
82527    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82528        <V as VisitMutAstPath>::visit_mut_ident(visitor, self, __ast_path)
82529    }
82530
82531    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82532        match self {
82533            Ident {
82534                span,
82535                ctxt,
82536                sym,
82537                optional,
82538            } => {
82539                {
82540                    let mut __ast_path =
82541                        __ast_path.with_guard(AstParentKind::Ident(self::fields::IdentField::Span));
82542                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82543                        span,
82544                        visitor,
82545                        &mut *__ast_path,
82546                    )
82547                };
82548                {
82549                    let mut __ast_path =
82550                        __ast_path.with_guard(AstParentKind::Ident(self::fields::IdentField::Ctxt));
82551                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82552                        ctxt,
82553                        visitor,
82554                        &mut *__ast_path,
82555                    )
82556                };
82557                {
82558                    let mut __ast_path =
82559                        __ast_path.with_guard(AstParentKind::Ident(self::fields::IdentField::Sym));
82560                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82561                        sym,
82562                        visitor,
82563                        &mut *__ast_path,
82564                    )
82565                };
82566            }
82567        }
82568    }
82569}
82570#[cfg(any(docsrs, feature = "path"))]
82571#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82572impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for IdentName {
82573    #[doc = "Calls [VisitMutAstPath`::visit_mut_ident_name`] with `self`."]
82574    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82575        <V as VisitMutAstPath>::visit_mut_ident_name(visitor, self, __ast_path)
82576    }
82577
82578    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82579        match self {
82580            IdentName { span, sym } => {
82581                {
82582                    let mut __ast_path = __ast_path
82583                        .with_guard(AstParentKind::IdentName(self::fields::IdentNameField::Span));
82584                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82585                        span,
82586                        visitor,
82587                        &mut *__ast_path,
82588                    )
82589                };
82590                {
82591                    let mut __ast_path = __ast_path
82592                        .with_guard(AstParentKind::IdentName(self::fields::IdentNameField::Sym));
82593                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82594                        sym,
82595                        visitor,
82596                        &mut *__ast_path,
82597                    )
82598                };
82599            }
82600        }
82601    }
82602}
82603#[cfg(any(docsrs, feature = "path"))]
82604#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82605impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for IfStmt {
82606    #[doc = "Calls [VisitMutAstPath`::visit_mut_if_stmt`] with `self`."]
82607    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82608        <V as VisitMutAstPath>::visit_mut_if_stmt(visitor, self, __ast_path)
82609    }
82610
82611    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82612        match self {
82613            IfStmt {
82614                span,
82615                test,
82616                cons,
82617                alt,
82618            } => {
82619                {
82620                    let mut __ast_path = __ast_path
82621                        .with_guard(AstParentKind::IfStmt(self::fields::IfStmtField::Span));
82622                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82623                        span,
82624                        visitor,
82625                        &mut *__ast_path,
82626                    )
82627                };
82628                {
82629                    let mut __ast_path = __ast_path
82630                        .with_guard(AstParentKind::IfStmt(self::fields::IfStmtField::Test));
82631                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82632                        test,
82633                        visitor,
82634                        &mut *__ast_path,
82635                    )
82636                };
82637                {
82638                    let mut __ast_path = __ast_path
82639                        .with_guard(AstParentKind::IfStmt(self::fields::IfStmtField::Cons));
82640                    <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82641                        cons,
82642                        visitor,
82643                        &mut *__ast_path,
82644                    )
82645                };
82646                {
82647                    let mut __ast_path = __ast_path
82648                        .with_guard(AstParentKind::IfStmt(self::fields::IfStmtField::Alt));
82649                    <Option<Box<Stmt>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82650                        alt,
82651                        visitor,
82652                        &mut *__ast_path,
82653                    )
82654                };
82655            }
82656        }
82657    }
82658}
82659#[cfg(any(docsrs, feature = "path"))]
82660#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82661impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Import {
82662    #[doc = "Calls [VisitMutAstPath`::visit_mut_import`] with `self`."]
82663    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82664        <V as VisitMutAstPath>::visit_mut_import(visitor, self, __ast_path)
82665    }
82666
82667    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82668        match self {
82669            Import { span, phase } => {
82670                {
82671                    let mut __ast_path = __ast_path
82672                        .with_guard(AstParentKind::Import(self::fields::ImportField::Span));
82673                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82674                        span,
82675                        visitor,
82676                        &mut *__ast_path,
82677                    )
82678                };
82679                {
82680                    let mut __ast_path = __ast_path
82681                        .with_guard(AstParentKind::Import(self::fields::ImportField::Phase));
82682                    <ImportPhase as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82683                        phase,
82684                        visitor,
82685                        &mut *__ast_path,
82686                    )
82687                };
82688            }
82689        }
82690    }
82691}
82692#[cfg(any(docsrs, feature = "path"))]
82693#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82694impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ImportDecl {
82695    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_decl`] with `self`."]
82696    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82697        <V as VisitMutAstPath>::visit_mut_import_decl(visitor, self, __ast_path)
82698    }
82699
82700    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82701        match self {
82702            ImportDecl {
82703                span,
82704                specifiers,
82705                src,
82706                type_only,
82707                with,
82708                phase,
82709            } => {
82710                {
82711                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
82712                        self::fields::ImportDeclField::Span,
82713                    ));
82714                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82715                        span,
82716                        visitor,
82717                        &mut *__ast_path,
82718                    )
82719                };
82720                {
82721                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
82722                        self::fields::ImportDeclField::Specifiers(usize::MAX),
82723                    ));
82724                    <Vec<ImportSpecifier> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82725                        specifiers,
82726                        visitor,
82727                        &mut *__ast_path,
82728                    )
82729                };
82730                {
82731                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
82732                        self::fields::ImportDeclField::Src,
82733                    ));
82734                    <Box<Str> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82735                        src,
82736                        visitor,
82737                        &mut *__ast_path,
82738                    )
82739                };
82740                {
82741                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
82742                        self::fields::ImportDeclField::With,
82743                    ));
82744                    <Option<Box<ObjectLit>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82745                        with,
82746                        visitor,
82747                        &mut *__ast_path,
82748                    )
82749                };
82750                {
82751                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
82752                        self::fields::ImportDeclField::Phase,
82753                    ));
82754                    <ImportPhase as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82755                        phase,
82756                        visitor,
82757                        &mut *__ast_path,
82758                    )
82759                };
82760            }
82761        }
82762    }
82763}
82764#[cfg(any(docsrs, feature = "path"))]
82765#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82766impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ImportDefaultSpecifier {
82767    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_default_specifier`] with `self`."]
82768    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82769        <V as VisitMutAstPath>::visit_mut_import_default_specifier(visitor, self, __ast_path)
82770    }
82771
82772    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82773        match self {
82774            ImportDefaultSpecifier { span, local } => {
82775                {
82776                    let mut __ast_path =
82777                        __ast_path.with_guard(AstParentKind::ImportDefaultSpecifier(
82778                            self::fields::ImportDefaultSpecifierField::Span,
82779                        ));
82780                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82781                        span,
82782                        visitor,
82783                        &mut *__ast_path,
82784                    )
82785                };
82786                {
82787                    let mut __ast_path =
82788                        __ast_path.with_guard(AstParentKind::ImportDefaultSpecifier(
82789                            self::fields::ImportDefaultSpecifierField::Local,
82790                        ));
82791                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82792                        local,
82793                        visitor,
82794                        &mut *__ast_path,
82795                    )
82796                };
82797            }
82798        }
82799    }
82800}
82801#[cfg(any(docsrs, feature = "path"))]
82802#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82803impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ImportNamedSpecifier {
82804    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_named_specifier`] with `self`."]
82805    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82806        <V as VisitMutAstPath>::visit_mut_import_named_specifier(visitor, self, __ast_path)
82807    }
82808
82809    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82810        match self {
82811            ImportNamedSpecifier {
82812                span,
82813                local,
82814                imported,
82815                is_type_only,
82816            } => {
82817                {
82818                    let mut __ast_path =
82819                        __ast_path.with_guard(AstParentKind::ImportNamedSpecifier(
82820                            self::fields::ImportNamedSpecifierField::Span,
82821                        ));
82822                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82823                        span,
82824                        visitor,
82825                        &mut *__ast_path,
82826                    )
82827                };
82828                {
82829                    let mut __ast_path =
82830                        __ast_path.with_guard(AstParentKind::ImportNamedSpecifier(
82831                            self::fields::ImportNamedSpecifierField::Local,
82832                        ));
82833                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82834                        local,
82835                        visitor,
82836                        &mut *__ast_path,
82837                    )
82838                };
82839                {
82840                    let mut __ast_path =
82841                        __ast_path.with_guard(AstParentKind::ImportNamedSpecifier(
82842                            self::fields::ImportNamedSpecifierField::Imported,
82843                        ));
82844                    <Option<ModuleExportName> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82845                        imported,
82846                        visitor,
82847                        &mut *__ast_path,
82848                    )
82849                };
82850            }
82851        }
82852    }
82853}
82854#[cfg(any(docsrs, feature = "path"))]
82855#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82856impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ImportPhase {
82857    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_phase`] with `self`."]
82858    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82859        <V as VisitMutAstPath>::visit_mut_import_phase(visitor, self, __ast_path)
82860    }
82861
82862    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82863        match self {
82864            ImportPhase::Evaluation => {}
82865            ImportPhase::Source => {}
82866            ImportPhase::Defer => {}
82867        }
82868    }
82869}
82870#[cfg(any(docsrs, feature = "path"))]
82871#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82872impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ImportSpecifier {
82873    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_specifier`] with `self`."]
82874    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82875        <V as VisitMutAstPath>::visit_mut_import_specifier(visitor, self, __ast_path)
82876    }
82877
82878    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82879        match self {
82880            ImportSpecifier::Named { 0: _field_0 } => {
82881                let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportSpecifier(
82882                    self::fields::ImportSpecifierField::Named,
82883                ));
82884                <ImportNamedSpecifier as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82885                    _field_0,
82886                    visitor,
82887                    &mut *__ast_path,
82888                );
82889            }
82890            ImportSpecifier::Default { 0: _field_0 } => {
82891                let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportSpecifier(
82892                    self::fields::ImportSpecifierField::Default,
82893                ));
82894                <ImportDefaultSpecifier as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82895                    _field_0,
82896                    visitor,
82897                    &mut *__ast_path,
82898                );
82899            }
82900            ImportSpecifier::Namespace { 0: _field_0 } => {
82901                let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportSpecifier(
82902                    self::fields::ImportSpecifierField::Namespace,
82903                ));
82904                <ImportStarAsSpecifier as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82905                    _field_0,
82906                    visitor,
82907                    &mut *__ast_path,
82908                );
82909            }
82910        }
82911    }
82912}
82913#[cfg(any(docsrs, feature = "path"))]
82914#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82915impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ImportStarAsSpecifier {
82916    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_star_as_specifier`] with `self`."]
82917    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82918        <V as VisitMutAstPath>::visit_mut_import_star_as_specifier(visitor, self, __ast_path)
82919    }
82920
82921    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82922        match self {
82923            ImportStarAsSpecifier { span, local } => {
82924                {
82925                    let mut __ast_path =
82926                        __ast_path.with_guard(AstParentKind::ImportStarAsSpecifier(
82927                            self::fields::ImportStarAsSpecifierField::Span,
82928                        ));
82929                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82930                        span,
82931                        visitor,
82932                        &mut *__ast_path,
82933                    )
82934                };
82935                {
82936                    let mut __ast_path =
82937                        __ast_path.with_guard(AstParentKind::ImportStarAsSpecifier(
82938                            self::fields::ImportStarAsSpecifierField::Local,
82939                        ));
82940                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82941                        local,
82942                        visitor,
82943                        &mut *__ast_path,
82944                    )
82945                };
82946            }
82947        }
82948    }
82949}
82950#[cfg(any(docsrs, feature = "path"))]
82951#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82952impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ImportWith {
82953    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_with`] with `self`."]
82954    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82955        <V as VisitMutAstPath>::visit_mut_import_with(visitor, self, __ast_path)
82956    }
82957
82958    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82959        match self {
82960            ImportWith { span, values } => {
82961                {
82962                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportWith(
82963                        self::fields::ImportWithField::Span,
82964                    ));
82965                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82966                        span,
82967                        visitor,
82968                        &mut *__ast_path,
82969                    )
82970                };
82971                {
82972                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportWith(
82973                        self::fields::ImportWithField::Values(usize::MAX),
82974                    ));
82975                    <Vec<ImportWithItem> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82976                        values,
82977                        visitor,
82978                        &mut *__ast_path,
82979                    )
82980                };
82981            }
82982        }
82983    }
82984}
82985#[cfg(any(docsrs, feature = "path"))]
82986#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82987impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ImportWithItem {
82988    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_with_item`] with `self`."]
82989    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82990        <V as VisitMutAstPath>::visit_mut_import_with_item(visitor, self, __ast_path)
82991    }
82992
82993    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82994        match self {
82995            ImportWithItem { key, value } => {
82996                {
82997                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportWithItem(
82998                        self::fields::ImportWithItemField::Key,
82999                    ));
83000                    <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83001                        key,
83002                        visitor,
83003                        &mut *__ast_path,
83004                    )
83005                };
83006                {
83007                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportWithItem(
83008                        self::fields::ImportWithItemField::Value,
83009                    ));
83010                    <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83011                        value,
83012                        visitor,
83013                        &mut *__ast_path,
83014                    )
83015                };
83016            }
83017        }
83018    }
83019}
83020#[cfg(any(docsrs, feature = "path"))]
83021#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83022impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Invalid {
83023    #[doc = "Calls [VisitMutAstPath`::visit_mut_invalid`] with `self`."]
83024    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83025        <V as VisitMutAstPath>::visit_mut_invalid(visitor, self, __ast_path)
83026    }
83027
83028    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83029        match self {
83030            Invalid { span } => {
83031                {
83032                    let mut __ast_path = __ast_path
83033                        .with_guard(AstParentKind::Invalid(self::fields::InvalidField::Span));
83034                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83035                        span,
83036                        visitor,
83037                        &mut *__ast_path,
83038                    )
83039                };
83040            }
83041        }
83042    }
83043}
83044#[cfg(any(docsrs, feature = "path"))]
83045#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83046impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXAttr {
83047    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_attr`] with `self`."]
83048    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83049        <V as VisitMutAstPath>::visit_mut_jsx_attr(visitor, self, __ast_path)
83050    }
83051
83052    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83053        match self {
83054            JSXAttr { span, name, value } => {
83055                {
83056                    let mut __ast_path = __ast_path
83057                        .with_guard(AstParentKind::JSXAttr(self::fields::JSXAttrField::Span));
83058                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83059                        span,
83060                        visitor,
83061                        &mut *__ast_path,
83062                    )
83063                };
83064                {
83065                    let mut __ast_path = __ast_path
83066                        .with_guard(AstParentKind::JSXAttr(self::fields::JSXAttrField::Name));
83067                    <JSXAttrName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83068                        name,
83069                        visitor,
83070                        &mut *__ast_path,
83071                    )
83072                };
83073                {
83074                    let mut __ast_path = __ast_path
83075                        .with_guard(AstParentKind::JSXAttr(self::fields::JSXAttrField::Value));
83076                    <Option<JSXAttrValue> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83077                        value,
83078                        visitor,
83079                        &mut *__ast_path,
83080                    )
83081                };
83082            }
83083        }
83084    }
83085}
83086#[cfg(any(docsrs, feature = "path"))]
83087#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83088impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXAttrName {
83089    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_attr_name`] with `self`."]
83090    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83091        <V as VisitMutAstPath>::visit_mut_jsx_attr_name(visitor, self, __ast_path)
83092    }
83093
83094    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83095        match self {
83096            JSXAttrName::Ident { 0: _field_0 } => {
83097                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrName(
83098                    self::fields::JSXAttrNameField::Ident,
83099                ));
83100                <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83101                    _field_0,
83102                    visitor,
83103                    &mut *__ast_path,
83104                );
83105            }
83106            JSXAttrName::JSXNamespacedName { 0: _field_0 } => {
83107                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrName(
83108                    self::fields::JSXAttrNameField::JsxnamespacedName,
83109                ));
83110                <JSXNamespacedName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83111                    _field_0,
83112                    visitor,
83113                    &mut *__ast_path,
83114                );
83115            }
83116        }
83117    }
83118}
83119#[cfg(any(docsrs, feature = "path"))]
83120#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83121impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXAttrOrSpread {
83122    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_attr_or_spread`] with `self`."]
83123    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83124        <V as VisitMutAstPath>::visit_mut_jsx_attr_or_spread(visitor, self, __ast_path)
83125    }
83126
83127    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83128        match self {
83129            JSXAttrOrSpread::JSXAttr { 0: _field_0 } => {
83130                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrOrSpread(
83131                    self::fields::JSXAttrOrSpreadField::Jsxattr,
83132                ));
83133                <JSXAttr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83134                    _field_0,
83135                    visitor,
83136                    &mut *__ast_path,
83137                );
83138            }
83139            JSXAttrOrSpread::SpreadElement { 0: _field_0 } => {
83140                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrOrSpread(
83141                    self::fields::JSXAttrOrSpreadField::SpreadElement,
83142                ));
83143                <SpreadElement as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83144                    _field_0,
83145                    visitor,
83146                    &mut *__ast_path,
83147                );
83148            }
83149        }
83150    }
83151}
83152#[cfg(any(docsrs, feature = "path"))]
83153#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83154impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXAttrValue {
83155    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_attr_value`] with `self`."]
83156    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83157        <V as VisitMutAstPath>::visit_mut_jsx_attr_value(visitor, self, __ast_path)
83158    }
83159
83160    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83161        match self {
83162            JSXAttrValue::Lit { 0: _field_0 } => {
83163                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrValue(
83164                    self::fields::JSXAttrValueField::Lit,
83165                ));
83166                <Lit as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83167                    _field_0,
83168                    visitor,
83169                    &mut *__ast_path,
83170                );
83171            }
83172            JSXAttrValue::JSXExprContainer { 0: _field_0 } => {
83173                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrValue(
83174                    self::fields::JSXAttrValueField::JsxexprContainer,
83175                ));
83176                <JSXExprContainer as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83177                    _field_0,
83178                    visitor,
83179                    &mut *__ast_path,
83180                );
83181            }
83182            JSXAttrValue::JSXElement { 0: _field_0 } => {
83183                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrValue(
83184                    self::fields::JSXAttrValueField::Jsxelement,
83185                ));
83186                <Box<JSXElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83187                    _field_0,
83188                    visitor,
83189                    &mut *__ast_path,
83190                );
83191            }
83192            JSXAttrValue::JSXFragment { 0: _field_0 } => {
83193                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrValue(
83194                    self::fields::JSXAttrValueField::Jsxfragment,
83195                ));
83196                <JSXFragment as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83197                    _field_0,
83198                    visitor,
83199                    &mut *__ast_path,
83200                );
83201            }
83202        }
83203    }
83204}
83205#[cfg(any(docsrs, feature = "path"))]
83206#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83207impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXClosingElement {
83208    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_closing_element`] with `self`."]
83209    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83210        <V as VisitMutAstPath>::visit_mut_jsx_closing_element(visitor, self, __ast_path)
83211    }
83212
83213    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83214        match self {
83215            JSXClosingElement { span, name } => {
83216                {
83217                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXClosingElement(
83218                        self::fields::JSXClosingElementField::Span,
83219                    ));
83220                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83221                        span,
83222                        visitor,
83223                        &mut *__ast_path,
83224                    )
83225                };
83226                {
83227                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXClosingElement(
83228                        self::fields::JSXClosingElementField::Name,
83229                    ));
83230                    <JSXElementName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83231                        name,
83232                        visitor,
83233                        &mut *__ast_path,
83234                    )
83235                };
83236            }
83237        }
83238    }
83239}
83240#[cfg(any(docsrs, feature = "path"))]
83241#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83242impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXClosingFragment {
83243    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_closing_fragment`] with `self`."]
83244    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83245        <V as VisitMutAstPath>::visit_mut_jsx_closing_fragment(visitor, self, __ast_path)
83246    }
83247
83248    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83249        match self {
83250            JSXClosingFragment { span } => {
83251                {
83252                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXClosingFragment(
83253                        self::fields::JSXClosingFragmentField::Span,
83254                    ));
83255                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83256                        span,
83257                        visitor,
83258                        &mut *__ast_path,
83259                    )
83260                };
83261            }
83262        }
83263    }
83264}
83265#[cfg(any(docsrs, feature = "path"))]
83266#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83267impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXElement {
83268    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_element`] with `self`."]
83269    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83270        <V as VisitMutAstPath>::visit_mut_jsx_element(visitor, self, __ast_path)
83271    }
83272
83273    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83274        match self {
83275            JSXElement {
83276                span,
83277                opening,
83278                children,
83279                closing,
83280            } => {
83281                {
83282                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElement(
83283                        self::fields::JSXElementField::Span,
83284                    ));
83285                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83286                        span,
83287                        visitor,
83288                        &mut *__ast_path,
83289                    )
83290                };
83291                {
83292                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElement(
83293                        self::fields::JSXElementField::Opening,
83294                    ));
83295                    <JSXOpeningElement as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83296                        opening,
83297                        visitor,
83298                        &mut *__ast_path,
83299                    )
83300                };
83301                {
83302                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElement(
83303                        self::fields::JSXElementField::Children(usize::MAX),
83304                    ));
83305                    <Vec<JSXElementChild> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83306                        children,
83307                        visitor,
83308                        &mut *__ast_path,
83309                    )
83310                };
83311                {
83312                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElement(
83313                        self::fields::JSXElementField::Closing,
83314                    ));
83315                    <Option<JSXClosingElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83316                        closing,
83317                        visitor,
83318                        &mut *__ast_path,
83319                    )
83320                };
83321            }
83322        }
83323    }
83324}
83325#[cfg(any(docsrs, feature = "path"))]
83326#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83327impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXElementChild {
83328    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_element_child`] with `self`."]
83329    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83330        <V as VisitMutAstPath>::visit_mut_jsx_element_child(visitor, self, __ast_path)
83331    }
83332
83333    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83334        match self {
83335            JSXElementChild::JSXText { 0: _field_0 } => {
83336                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
83337                    self::fields::JSXElementChildField::Jsxtext,
83338                ));
83339                <JSXText as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83340                    _field_0,
83341                    visitor,
83342                    &mut *__ast_path,
83343                );
83344            }
83345            JSXElementChild::JSXExprContainer { 0: _field_0 } => {
83346                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
83347                    self::fields::JSXElementChildField::JsxexprContainer,
83348                ));
83349                <JSXExprContainer as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83350                    _field_0,
83351                    visitor,
83352                    &mut *__ast_path,
83353                );
83354            }
83355            JSXElementChild::JSXSpreadChild { 0: _field_0 } => {
83356                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
83357                    self::fields::JSXElementChildField::JsxspreadChild,
83358                ));
83359                <JSXSpreadChild as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83360                    _field_0,
83361                    visitor,
83362                    &mut *__ast_path,
83363                );
83364            }
83365            JSXElementChild::JSXElement { 0: _field_0 } => {
83366                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
83367                    self::fields::JSXElementChildField::Jsxelement,
83368                ));
83369                <Box<JSXElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83370                    _field_0,
83371                    visitor,
83372                    &mut *__ast_path,
83373                );
83374            }
83375            JSXElementChild::JSXFragment { 0: _field_0 } => {
83376                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
83377                    self::fields::JSXElementChildField::Jsxfragment,
83378                ));
83379                <JSXFragment as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83380                    _field_0,
83381                    visitor,
83382                    &mut *__ast_path,
83383                );
83384            }
83385        }
83386    }
83387}
83388#[cfg(any(docsrs, feature = "path"))]
83389#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83390impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXElementName {
83391    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_element_name`] with `self`."]
83392    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83393        <V as VisitMutAstPath>::visit_mut_jsx_element_name(visitor, self, __ast_path)
83394    }
83395
83396    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83397        match self {
83398            JSXElementName::Ident { 0: _field_0 } => {
83399                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementName(
83400                    self::fields::JSXElementNameField::Ident,
83401                ));
83402                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83403                    _field_0,
83404                    visitor,
83405                    &mut *__ast_path,
83406                );
83407            }
83408            JSXElementName::JSXMemberExpr { 0: _field_0 } => {
83409                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementName(
83410                    self::fields::JSXElementNameField::JsxmemberExpr,
83411                ));
83412                <JSXMemberExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83413                    _field_0,
83414                    visitor,
83415                    &mut *__ast_path,
83416                );
83417            }
83418            JSXElementName::JSXNamespacedName { 0: _field_0 } => {
83419                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementName(
83420                    self::fields::JSXElementNameField::JsxnamespacedName,
83421                ));
83422                <JSXNamespacedName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83423                    _field_0,
83424                    visitor,
83425                    &mut *__ast_path,
83426                );
83427            }
83428        }
83429    }
83430}
83431#[cfg(any(docsrs, feature = "path"))]
83432#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83433impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXEmptyExpr {
83434    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_empty_expr`] with `self`."]
83435    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83436        <V as VisitMutAstPath>::visit_mut_jsx_empty_expr(visitor, self, __ast_path)
83437    }
83438
83439    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83440        match self {
83441            JSXEmptyExpr { span } => {
83442                {
83443                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXEmptyExpr(
83444                        self::fields::JSXEmptyExprField::Span,
83445                    ));
83446                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83447                        span,
83448                        visitor,
83449                        &mut *__ast_path,
83450                    )
83451                };
83452            }
83453        }
83454    }
83455}
83456#[cfg(any(docsrs, feature = "path"))]
83457#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83458impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXExpr {
83459    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_expr`] with `self`."]
83460    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83461        <V as VisitMutAstPath>::visit_mut_jsx_expr(visitor, self, __ast_path)
83462    }
83463
83464    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83465        match self {
83466            JSXExpr::JSXEmptyExpr { 0: _field_0 } => {
83467                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXExpr(
83468                    self::fields::JSXExprField::JsxemptyExpr,
83469                ));
83470                <JSXEmptyExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83471                    _field_0,
83472                    visitor,
83473                    &mut *__ast_path,
83474                );
83475            }
83476            JSXExpr::Expr { 0: _field_0 } => {
83477                let mut __ast_path =
83478                    __ast_path.with_guard(AstParentKind::JSXExpr(self::fields::JSXExprField::Expr));
83479                <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83480                    _field_0,
83481                    visitor,
83482                    &mut *__ast_path,
83483                );
83484            }
83485        }
83486    }
83487}
83488#[cfg(any(docsrs, feature = "path"))]
83489#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83490impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXExprContainer {
83491    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_expr_container`] with `self`."]
83492    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83493        <V as VisitMutAstPath>::visit_mut_jsx_expr_container(visitor, self, __ast_path)
83494    }
83495
83496    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83497        match self {
83498            JSXExprContainer { span, expr } => {
83499                {
83500                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXExprContainer(
83501                        self::fields::JSXExprContainerField::Span,
83502                    ));
83503                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83504                        span,
83505                        visitor,
83506                        &mut *__ast_path,
83507                    )
83508                };
83509                {
83510                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXExprContainer(
83511                        self::fields::JSXExprContainerField::Expr,
83512                    ));
83513                    <JSXExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83514                        expr,
83515                        visitor,
83516                        &mut *__ast_path,
83517                    )
83518                };
83519            }
83520        }
83521    }
83522}
83523#[cfg(any(docsrs, feature = "path"))]
83524#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83525impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXFragment {
83526    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_fragment`] with `self`."]
83527    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83528        <V as VisitMutAstPath>::visit_mut_jsx_fragment(visitor, self, __ast_path)
83529    }
83530
83531    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83532        match self {
83533            JSXFragment {
83534                span,
83535                opening,
83536                children,
83537                closing,
83538            } => {
83539                {
83540                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXFragment(
83541                        self::fields::JSXFragmentField::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::JSXFragment(
83551                        self::fields::JSXFragmentField::Opening,
83552                    ));
83553                    <JSXOpeningFragment as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83554                        opening,
83555                        visitor,
83556                        &mut *__ast_path,
83557                    )
83558                };
83559                {
83560                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXFragment(
83561                        self::fields::JSXFragmentField::Children(usize::MAX),
83562                    ));
83563                    <Vec<JSXElementChild> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83564                        children,
83565                        visitor,
83566                        &mut *__ast_path,
83567                    )
83568                };
83569                {
83570                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXFragment(
83571                        self::fields::JSXFragmentField::Closing,
83572                    ));
83573                    <JSXClosingFragment as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83574                        closing,
83575                        visitor,
83576                        &mut *__ast_path,
83577                    )
83578                };
83579            }
83580        }
83581    }
83582}
83583#[cfg(any(docsrs, feature = "path"))]
83584#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83585impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXMemberExpr {
83586    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_member_expr`] with `self`."]
83587    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83588        <V as VisitMutAstPath>::visit_mut_jsx_member_expr(visitor, self, __ast_path)
83589    }
83590
83591    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83592        match self {
83593            JSXMemberExpr { span, obj, prop } => {
83594                {
83595                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXMemberExpr(
83596                        self::fields::JSXMemberExprField::Span,
83597                    ));
83598                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83599                        span,
83600                        visitor,
83601                        &mut *__ast_path,
83602                    )
83603                };
83604                {
83605                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXMemberExpr(
83606                        self::fields::JSXMemberExprField::Obj,
83607                    ));
83608                    <JSXObject as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83609                        obj,
83610                        visitor,
83611                        &mut *__ast_path,
83612                    )
83613                };
83614                {
83615                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXMemberExpr(
83616                        self::fields::JSXMemberExprField::Prop,
83617                    ));
83618                    <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83619                        prop,
83620                        visitor,
83621                        &mut *__ast_path,
83622                    )
83623                };
83624            }
83625        }
83626    }
83627}
83628#[cfg(any(docsrs, feature = "path"))]
83629#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83630impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXNamespacedName {
83631    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_namespaced_name`] with `self`."]
83632    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83633        <V as VisitMutAstPath>::visit_mut_jsx_namespaced_name(visitor, self, __ast_path)
83634    }
83635
83636    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83637        match self {
83638            JSXNamespacedName { span, ns, name } => {
83639                {
83640                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXNamespacedName(
83641                        self::fields::JSXNamespacedNameField::Span,
83642                    ));
83643                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83644                        span,
83645                        visitor,
83646                        &mut *__ast_path,
83647                    )
83648                };
83649                {
83650                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXNamespacedName(
83651                        self::fields::JSXNamespacedNameField::Ns,
83652                    ));
83653                    <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83654                        ns,
83655                        visitor,
83656                        &mut *__ast_path,
83657                    )
83658                };
83659                {
83660                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXNamespacedName(
83661                        self::fields::JSXNamespacedNameField::Name,
83662                    ));
83663                    <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83664                        name,
83665                        visitor,
83666                        &mut *__ast_path,
83667                    )
83668                };
83669            }
83670        }
83671    }
83672}
83673#[cfg(any(docsrs, feature = "path"))]
83674#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83675impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXObject {
83676    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_object`] with `self`."]
83677    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83678        <V as VisitMutAstPath>::visit_mut_jsx_object(visitor, self, __ast_path)
83679    }
83680
83681    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83682        match self {
83683            JSXObject::JSXMemberExpr { 0: _field_0 } => {
83684                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXObject(
83685                    self::fields::JSXObjectField::JsxmemberExpr,
83686                ));
83687                <Box<JSXMemberExpr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83688                    _field_0,
83689                    visitor,
83690                    &mut *__ast_path,
83691                );
83692            }
83693            JSXObject::Ident { 0: _field_0 } => {
83694                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXObject(
83695                    self::fields::JSXObjectField::Ident,
83696                ));
83697                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83698                    _field_0,
83699                    visitor,
83700                    &mut *__ast_path,
83701                );
83702            }
83703        }
83704    }
83705}
83706#[cfg(any(docsrs, feature = "path"))]
83707#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83708impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXOpeningElement {
83709    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_opening_element`] with `self`."]
83710    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83711        <V as VisitMutAstPath>::visit_mut_jsx_opening_element(visitor, self, __ast_path)
83712    }
83713
83714    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83715        match self {
83716            JSXOpeningElement {
83717                name,
83718                span,
83719                attrs,
83720                self_closing,
83721                type_args,
83722            } => {
83723                {
83724                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningElement(
83725                        self::fields::JSXOpeningElementField::Name,
83726                    ));
83727                    <JSXElementName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83728                        name,
83729                        visitor,
83730                        &mut *__ast_path,
83731                    )
83732                };
83733                {
83734                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningElement(
83735                        self::fields::JSXOpeningElementField::Span,
83736                    ));
83737                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83738                        span,
83739                        visitor,
83740                        &mut *__ast_path,
83741                    )
83742                };
83743                {
83744                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningElement(
83745                        self::fields::JSXOpeningElementField::Attrs(usize::MAX),
83746                    ));
83747                    <Vec<JSXAttrOrSpread> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83748                        attrs,
83749                        visitor,
83750                        &mut *__ast_path,
83751                    )
83752                };
83753                {
83754                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningElement(
83755                        self::fields::JSXOpeningElementField::TypeArgs,
83756                    ));
83757                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_args , visitor , & mut * __ast_path)
83758                };
83759            }
83760        }
83761    }
83762}
83763#[cfg(any(docsrs, feature = "path"))]
83764#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83765impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXOpeningFragment {
83766    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_opening_fragment`] with `self`."]
83767    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83768        <V as VisitMutAstPath>::visit_mut_jsx_opening_fragment(visitor, self, __ast_path)
83769    }
83770
83771    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83772        match self {
83773            JSXOpeningFragment { span } => {
83774                {
83775                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningFragment(
83776                        self::fields::JSXOpeningFragmentField::Span,
83777                    ));
83778                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83779                        span,
83780                        visitor,
83781                        &mut *__ast_path,
83782                    )
83783                };
83784            }
83785        }
83786    }
83787}
83788#[cfg(any(docsrs, feature = "path"))]
83789#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83790impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXSpreadChild {
83791    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_spread_child`] with `self`."]
83792    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83793        <V as VisitMutAstPath>::visit_mut_jsx_spread_child(visitor, self, __ast_path)
83794    }
83795
83796    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83797        match self {
83798            JSXSpreadChild { span, expr } => {
83799                {
83800                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXSpreadChild(
83801                        self::fields::JSXSpreadChildField::Span,
83802                    ));
83803                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83804                        span,
83805                        visitor,
83806                        &mut *__ast_path,
83807                    )
83808                };
83809                {
83810                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXSpreadChild(
83811                        self::fields::JSXSpreadChildField::Expr,
83812                    ));
83813                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83814                        expr,
83815                        visitor,
83816                        &mut *__ast_path,
83817                    )
83818                };
83819            }
83820        }
83821    }
83822}
83823#[cfg(any(docsrs, feature = "path"))]
83824#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83825impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXText {
83826    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_text`] with `self`."]
83827    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83828        <V as VisitMutAstPath>::visit_mut_jsx_text(visitor, self, __ast_path)
83829    }
83830
83831    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83832        match self {
83833            JSXText { span, value, raw } => {
83834                {
83835                    let mut __ast_path = __ast_path
83836                        .with_guard(AstParentKind::JSXText(self::fields::JSXTextField::Span));
83837                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83838                        span,
83839                        visitor,
83840                        &mut *__ast_path,
83841                    )
83842                };
83843                {
83844                    let mut __ast_path = __ast_path
83845                        .with_guard(AstParentKind::JSXText(self::fields::JSXTextField::Value));
83846                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83847                        value,
83848                        visitor,
83849                        &mut *__ast_path,
83850                    )
83851                };
83852                {
83853                    let mut __ast_path = __ast_path
83854                        .with_guard(AstParentKind::JSXText(self::fields::JSXTextField::Raw));
83855                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83856                        raw,
83857                        visitor,
83858                        &mut *__ast_path,
83859                    )
83860                };
83861            }
83862        }
83863    }
83864}
83865#[cfg(any(docsrs, feature = "path"))]
83866#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83867impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Key {
83868    #[doc = "Calls [VisitMutAstPath`::visit_mut_key`] with `self`."]
83869    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83870        <V as VisitMutAstPath>::visit_mut_key(visitor, self, __ast_path)
83871    }
83872
83873    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83874        match self {
83875            Key::Private { 0: _field_0 } => {
83876                let mut __ast_path =
83877                    __ast_path.with_guard(AstParentKind::Key(self::fields::KeyField::Private));
83878                <PrivateName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83879                    _field_0,
83880                    visitor,
83881                    &mut *__ast_path,
83882                );
83883            }
83884            Key::Public { 0: _field_0 } => {
83885                let mut __ast_path =
83886                    __ast_path.with_guard(AstParentKind::Key(self::fields::KeyField::Public));
83887                <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83888                    _field_0,
83889                    visitor,
83890                    &mut *__ast_path,
83891                );
83892            }
83893        }
83894    }
83895}
83896#[cfg(any(docsrs, feature = "path"))]
83897#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83898impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for KeyValuePatProp {
83899    #[doc = "Calls [VisitMutAstPath`::visit_mut_key_value_pat_prop`] with `self`."]
83900    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83901        <V as VisitMutAstPath>::visit_mut_key_value_pat_prop(visitor, self, __ast_path)
83902    }
83903
83904    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83905        match self {
83906            KeyValuePatProp { key, value } => {
83907                {
83908                    let mut __ast_path = __ast_path.with_guard(AstParentKind::KeyValuePatProp(
83909                        self::fields::KeyValuePatPropField::Key,
83910                    ));
83911                    <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83912                        key,
83913                        visitor,
83914                        &mut *__ast_path,
83915                    )
83916                };
83917                {
83918                    let mut __ast_path = __ast_path.with_guard(AstParentKind::KeyValuePatProp(
83919                        self::fields::KeyValuePatPropField::Value,
83920                    ));
83921                    <Box<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83922                        value,
83923                        visitor,
83924                        &mut *__ast_path,
83925                    )
83926                };
83927            }
83928        }
83929    }
83930}
83931#[cfg(any(docsrs, feature = "path"))]
83932#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83933impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for KeyValueProp {
83934    #[doc = "Calls [VisitMutAstPath`::visit_mut_key_value_prop`] with `self`."]
83935    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83936        <V as VisitMutAstPath>::visit_mut_key_value_prop(visitor, self, __ast_path)
83937    }
83938
83939    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83940        match self {
83941            KeyValueProp { key, value } => {
83942                {
83943                    let mut __ast_path = __ast_path.with_guard(AstParentKind::KeyValueProp(
83944                        self::fields::KeyValuePropField::Key,
83945                    ));
83946                    <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83947                        key,
83948                        visitor,
83949                        &mut *__ast_path,
83950                    )
83951                };
83952                {
83953                    let mut __ast_path = __ast_path.with_guard(AstParentKind::KeyValueProp(
83954                        self::fields::KeyValuePropField::Value,
83955                    ));
83956                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83957                        value,
83958                        visitor,
83959                        &mut *__ast_path,
83960                    )
83961                };
83962            }
83963        }
83964    }
83965}
83966#[cfg(any(docsrs, feature = "path"))]
83967#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83968impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for LabeledStmt {
83969    #[doc = "Calls [VisitMutAstPath`::visit_mut_labeled_stmt`] with `self`."]
83970    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83971        <V as VisitMutAstPath>::visit_mut_labeled_stmt(visitor, self, __ast_path)
83972    }
83973
83974    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83975        match self {
83976            LabeledStmt { span, label, body } => {
83977                {
83978                    let mut __ast_path = __ast_path.with_guard(AstParentKind::LabeledStmt(
83979                        self::fields::LabeledStmtField::Span,
83980                    ));
83981                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83982                        span,
83983                        visitor,
83984                        &mut *__ast_path,
83985                    )
83986                };
83987                {
83988                    let mut __ast_path = __ast_path.with_guard(AstParentKind::LabeledStmt(
83989                        self::fields::LabeledStmtField::Label,
83990                    ));
83991                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83992                        label,
83993                        visitor,
83994                        &mut *__ast_path,
83995                    )
83996                };
83997                {
83998                    let mut __ast_path = __ast_path.with_guard(AstParentKind::LabeledStmt(
83999                        self::fields::LabeledStmtField::Body,
84000                    ));
84001                    <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84002                        body,
84003                        visitor,
84004                        &mut *__ast_path,
84005                    )
84006                };
84007            }
84008        }
84009    }
84010}
84011#[cfg(any(docsrs, feature = "path"))]
84012#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84013impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Lit {
84014    #[doc = "Calls [VisitMutAstPath`::visit_mut_lit`] with `self`."]
84015    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84016        <V as VisitMutAstPath>::visit_mut_lit(visitor, self, __ast_path)
84017    }
84018
84019    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84020        match self {
84021            Lit::Str { 0: _field_0 } => {
84022                let mut __ast_path =
84023                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Str));
84024                <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84025                    _field_0,
84026                    visitor,
84027                    &mut *__ast_path,
84028                );
84029            }
84030            Lit::Bool { 0: _field_0 } => {
84031                let mut __ast_path =
84032                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Bool));
84033                <Bool as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84034                    _field_0,
84035                    visitor,
84036                    &mut *__ast_path,
84037                );
84038            }
84039            Lit::Null { 0: _field_0 } => {
84040                let mut __ast_path =
84041                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Null));
84042                <Null as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84043                    _field_0,
84044                    visitor,
84045                    &mut *__ast_path,
84046                );
84047            }
84048            Lit::Num { 0: _field_0 } => {
84049                let mut __ast_path =
84050                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Num));
84051                <Number as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84052                    _field_0,
84053                    visitor,
84054                    &mut *__ast_path,
84055                );
84056            }
84057            Lit::BigInt { 0: _field_0 } => {
84058                let mut __ast_path =
84059                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::BigInt));
84060                <BigInt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84061                    _field_0,
84062                    visitor,
84063                    &mut *__ast_path,
84064                );
84065            }
84066            Lit::Regex { 0: _field_0 } => {
84067                let mut __ast_path =
84068                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Regex));
84069                <Regex as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84070                    _field_0,
84071                    visitor,
84072                    &mut *__ast_path,
84073                );
84074            }
84075            Lit::JSXText { 0: _field_0 } => {
84076                let mut __ast_path =
84077                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Jsxtext));
84078                <JSXText as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84079                    _field_0,
84080                    visitor,
84081                    &mut *__ast_path,
84082                );
84083            }
84084        }
84085    }
84086}
84087#[cfg(any(docsrs, feature = "path"))]
84088#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84089impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for MemberExpr {
84090    #[doc = "Calls [VisitMutAstPath`::visit_mut_member_expr`] with `self`."]
84091    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84092        <V as VisitMutAstPath>::visit_mut_member_expr(visitor, self, __ast_path)
84093    }
84094
84095    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84096        match self {
84097            MemberExpr { span, obj, prop } => {
84098                {
84099                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberExpr(
84100                        self::fields::MemberExprField::Span,
84101                    ));
84102                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84103                        span,
84104                        visitor,
84105                        &mut *__ast_path,
84106                    )
84107                };
84108                {
84109                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberExpr(
84110                        self::fields::MemberExprField::Obj,
84111                    ));
84112                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84113                        obj,
84114                        visitor,
84115                        &mut *__ast_path,
84116                    )
84117                };
84118                {
84119                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberExpr(
84120                        self::fields::MemberExprField::Prop,
84121                    ));
84122                    <MemberProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84123                        prop,
84124                        visitor,
84125                        &mut *__ast_path,
84126                    )
84127                };
84128            }
84129        }
84130    }
84131}
84132#[cfg(any(docsrs, feature = "path"))]
84133#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84134impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for MemberProp {
84135    #[doc = "Calls [VisitMutAstPath`::visit_mut_member_prop`] with `self`."]
84136    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84137        <V as VisitMutAstPath>::visit_mut_member_prop(visitor, self, __ast_path)
84138    }
84139
84140    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84141        match self {
84142            MemberProp::Ident { 0: _field_0 } => {
84143                let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberProp(
84144                    self::fields::MemberPropField::Ident,
84145                ));
84146                <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84147                    _field_0,
84148                    visitor,
84149                    &mut *__ast_path,
84150                );
84151            }
84152            MemberProp::PrivateName { 0: _field_0 } => {
84153                let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberProp(
84154                    self::fields::MemberPropField::PrivateName,
84155                ));
84156                <PrivateName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84157                    _field_0,
84158                    visitor,
84159                    &mut *__ast_path,
84160                );
84161            }
84162            MemberProp::Computed { 0: _field_0 } => {
84163                let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberProp(
84164                    self::fields::MemberPropField::Computed,
84165                ));
84166                <ComputedPropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84167                    _field_0,
84168                    visitor,
84169                    &mut *__ast_path,
84170                );
84171            }
84172        }
84173    }
84174}
84175#[cfg(any(docsrs, feature = "path"))]
84176#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84177impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for MetaPropExpr {
84178    #[doc = "Calls [VisitMutAstPath`::visit_mut_meta_prop_expr`] with `self`."]
84179    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84180        <V as VisitMutAstPath>::visit_mut_meta_prop_expr(visitor, self, __ast_path)
84181    }
84182
84183    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84184        match self {
84185            MetaPropExpr { span, kind } => {
84186                {
84187                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MetaPropExpr(
84188                        self::fields::MetaPropExprField::Span,
84189                    ));
84190                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84191                        span,
84192                        visitor,
84193                        &mut *__ast_path,
84194                    )
84195                };
84196                {
84197                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MetaPropExpr(
84198                        self::fields::MetaPropExprField::Kind,
84199                    ));
84200                    <MetaPropKind as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84201                        kind,
84202                        visitor,
84203                        &mut *__ast_path,
84204                    )
84205                };
84206            }
84207        }
84208    }
84209}
84210#[cfg(any(docsrs, feature = "path"))]
84211#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84212impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for MetaPropKind {
84213    #[doc = "Calls [VisitMutAstPath`::visit_mut_meta_prop_kind`] with `self`."]
84214    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84215        <V as VisitMutAstPath>::visit_mut_meta_prop_kind(visitor, self, __ast_path)
84216    }
84217
84218    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84219        match self {
84220            MetaPropKind::NewTarget => {}
84221            MetaPropKind::ImportMeta => {}
84222        }
84223    }
84224}
84225#[cfg(any(docsrs, feature = "path"))]
84226#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84227impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for MethodKind {
84228    #[doc = "Calls [VisitMutAstPath`::visit_mut_method_kind`] with `self`."]
84229    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84230        <V as VisitMutAstPath>::visit_mut_method_kind(visitor, self, __ast_path)
84231    }
84232
84233    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84234        match self {
84235            MethodKind::Method => {}
84236            MethodKind::Getter => {}
84237            MethodKind::Setter => {}
84238        }
84239    }
84240}
84241#[cfg(any(docsrs, feature = "path"))]
84242#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84243impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for MethodProp {
84244    #[doc = "Calls [VisitMutAstPath`::visit_mut_method_prop`] with `self`."]
84245    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84246        <V as VisitMutAstPath>::visit_mut_method_prop(visitor, self, __ast_path)
84247    }
84248
84249    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84250        match self {
84251            MethodProp { key, function } => {
84252                {
84253                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MethodProp(
84254                        self::fields::MethodPropField::Key,
84255                    ));
84256                    <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84257                        key,
84258                        visitor,
84259                        &mut *__ast_path,
84260                    )
84261                };
84262                {
84263                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MethodProp(
84264                        self::fields::MethodPropField::Function,
84265                    ));
84266                    <Box<Function> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84267                        function,
84268                        visitor,
84269                        &mut *__ast_path,
84270                    )
84271                };
84272            }
84273        }
84274    }
84275}
84276#[cfg(any(docsrs, feature = "path"))]
84277#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84278impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Module {
84279    #[doc = "Calls [VisitMutAstPath`::visit_mut_module`] with `self`."]
84280    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84281        <V as VisitMutAstPath>::visit_mut_module(visitor, self, __ast_path)
84282    }
84283
84284    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84285        match self {
84286            Module {
84287                span,
84288                body,
84289                shebang,
84290            } => {
84291                {
84292                    let mut __ast_path = __ast_path
84293                        .with_guard(AstParentKind::Module(self::fields::ModuleField::Span));
84294                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84295                        span,
84296                        visitor,
84297                        &mut *__ast_path,
84298                    )
84299                };
84300                {
84301                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Module(
84302                        self::fields::ModuleField::Body(usize::MAX),
84303                    ));
84304                    <Vec<ModuleItem> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84305                        body,
84306                        visitor,
84307                        &mut *__ast_path,
84308                    )
84309                };
84310                {
84311                    let mut __ast_path = __ast_path
84312                        .with_guard(AstParentKind::Module(self::fields::ModuleField::Shebang));
84313                    <Option<swc_atoms::Atom> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84314                        shebang,
84315                        visitor,
84316                        &mut *__ast_path,
84317                    )
84318                };
84319            }
84320        }
84321    }
84322}
84323#[cfg(any(docsrs, feature = "path"))]
84324#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84325impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ModuleDecl {
84326    #[doc = "Calls [VisitMutAstPath`::visit_mut_module_decl`] with `self`."]
84327    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84328        <V as VisitMutAstPath>::visit_mut_module_decl(visitor, self, __ast_path)
84329    }
84330
84331    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84332        match self {
84333            ModuleDecl::Import { 0: _field_0 } => {
84334                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
84335                    self::fields::ModuleDeclField::Import,
84336                ));
84337                <ImportDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84338                    _field_0,
84339                    visitor,
84340                    &mut *__ast_path,
84341                );
84342            }
84343            ModuleDecl::ExportDecl { 0: _field_0 } => {
84344                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
84345                    self::fields::ModuleDeclField::ExportDecl,
84346                ));
84347                <ExportDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84348                    _field_0,
84349                    visitor,
84350                    &mut *__ast_path,
84351                );
84352            }
84353            ModuleDecl::ExportNamed { 0: _field_0 } => {
84354                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
84355                    self::fields::ModuleDeclField::ExportNamed,
84356                ));
84357                <NamedExport as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84358                    _field_0,
84359                    visitor,
84360                    &mut *__ast_path,
84361                );
84362            }
84363            ModuleDecl::ExportDefaultDecl { 0: _field_0 } => {
84364                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
84365                    self::fields::ModuleDeclField::ExportDefaultDecl,
84366                ));
84367                <ExportDefaultDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84368                    _field_0,
84369                    visitor,
84370                    &mut *__ast_path,
84371                );
84372            }
84373            ModuleDecl::ExportDefaultExpr { 0: _field_0 } => {
84374                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
84375                    self::fields::ModuleDeclField::ExportDefaultExpr,
84376                ));
84377                <ExportDefaultExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84378                    _field_0,
84379                    visitor,
84380                    &mut *__ast_path,
84381                );
84382            }
84383            ModuleDecl::ExportAll { 0: _field_0 } => {
84384                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
84385                    self::fields::ModuleDeclField::ExportAll,
84386                ));
84387                <ExportAll as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84388                    _field_0,
84389                    visitor,
84390                    &mut *__ast_path,
84391                );
84392            }
84393            ModuleDecl::TsImportEquals { 0: _field_0 } => {
84394                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
84395                    self::fields::ModuleDeclField::TsImportEquals,
84396                ));
84397                <Box<TsImportEqualsDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84398                    _field_0,
84399                    visitor,
84400                    &mut *__ast_path,
84401                );
84402            }
84403            ModuleDecl::TsExportAssignment { 0: _field_0 } => {
84404                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
84405                    self::fields::ModuleDeclField::TsExportAssignment,
84406                ));
84407                <TsExportAssignment as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84408                    _field_0,
84409                    visitor,
84410                    &mut *__ast_path,
84411                );
84412            }
84413            ModuleDecl::TsNamespaceExport { 0: _field_0 } => {
84414                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
84415                    self::fields::ModuleDeclField::TsNamespaceExport,
84416                ));
84417                <TsNamespaceExportDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84418                    _field_0,
84419                    visitor,
84420                    &mut *__ast_path,
84421                );
84422            }
84423        }
84424    }
84425}
84426#[cfg(any(docsrs, feature = "path"))]
84427#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84428impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ModuleExportName {
84429    #[doc = "Calls [VisitMutAstPath`::visit_mut_module_export_name`] with `self`."]
84430    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84431        <V as VisitMutAstPath>::visit_mut_module_export_name(visitor, self, __ast_path)
84432    }
84433
84434    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84435        match self {
84436            ModuleExportName::Ident { 0: _field_0 } => {
84437                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleExportName(
84438                    self::fields::ModuleExportNameField::Ident,
84439                ));
84440                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84441                    _field_0,
84442                    visitor,
84443                    &mut *__ast_path,
84444                );
84445            }
84446            ModuleExportName::Str { 0: _field_0 } => {
84447                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleExportName(
84448                    self::fields::ModuleExportNameField::Str,
84449                ));
84450                <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84451                    _field_0,
84452                    visitor,
84453                    &mut *__ast_path,
84454                );
84455            }
84456        }
84457    }
84458}
84459#[cfg(any(docsrs, feature = "path"))]
84460#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84461impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ModuleItem {
84462    #[doc = "Calls [VisitMutAstPath`::visit_mut_module_item`] with `self`."]
84463    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84464        <V as VisitMutAstPath>::visit_mut_module_item(visitor, self, __ast_path)
84465    }
84466
84467    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84468        match self {
84469            ModuleItem::ModuleDecl { 0: _field_0 } => {
84470                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleItem(
84471                    self::fields::ModuleItemField::ModuleDecl,
84472                ));
84473                <ModuleDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84474                    _field_0,
84475                    visitor,
84476                    &mut *__ast_path,
84477                );
84478            }
84479            ModuleItem::Stmt { 0: _field_0 } => {
84480                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleItem(
84481                    self::fields::ModuleItemField::Stmt,
84482                ));
84483                <Stmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84484                    _field_0,
84485                    visitor,
84486                    &mut *__ast_path,
84487                );
84488            }
84489        }
84490    }
84491}
84492#[cfg(any(docsrs, feature = "path"))]
84493#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84494impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for NamedExport {
84495    #[doc = "Calls [VisitMutAstPath`::visit_mut_named_export`] with `self`."]
84496    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84497        <V as VisitMutAstPath>::visit_mut_named_export(visitor, self, __ast_path)
84498    }
84499
84500    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84501        match self {
84502            NamedExport {
84503                span,
84504                specifiers,
84505                src,
84506                type_only,
84507                with,
84508            } => {
84509                {
84510                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NamedExport(
84511                        self::fields::NamedExportField::Span,
84512                    ));
84513                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84514                        span,
84515                        visitor,
84516                        &mut *__ast_path,
84517                    )
84518                };
84519                {
84520                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NamedExport(
84521                        self::fields::NamedExportField::Specifiers(usize::MAX),
84522                    ));
84523                    <Vec<ExportSpecifier> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84524                        specifiers,
84525                        visitor,
84526                        &mut *__ast_path,
84527                    )
84528                };
84529                {
84530                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NamedExport(
84531                        self::fields::NamedExportField::Src,
84532                    ));
84533                    <Option<Box<Str>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84534                        src,
84535                        visitor,
84536                        &mut *__ast_path,
84537                    )
84538                };
84539                {
84540                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NamedExport(
84541                        self::fields::NamedExportField::With,
84542                    ));
84543                    <Option<Box<ObjectLit>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84544                        with,
84545                        visitor,
84546                        &mut *__ast_path,
84547                    )
84548                };
84549            }
84550        }
84551    }
84552}
84553#[cfg(any(docsrs, feature = "path"))]
84554#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84555impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for NewExpr {
84556    #[doc = "Calls [VisitMutAstPath`::visit_mut_new_expr`] with `self`."]
84557    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84558        <V as VisitMutAstPath>::visit_mut_new_expr(visitor, self, __ast_path)
84559    }
84560
84561    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84562        match self {
84563            NewExpr {
84564                span,
84565                ctxt,
84566                callee,
84567                args,
84568                type_args,
84569            } => {
84570                {
84571                    let mut __ast_path = __ast_path
84572                        .with_guard(AstParentKind::NewExpr(self::fields::NewExprField::Span));
84573                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84574                        span,
84575                        visitor,
84576                        &mut *__ast_path,
84577                    )
84578                };
84579                {
84580                    let mut __ast_path = __ast_path
84581                        .with_guard(AstParentKind::NewExpr(self::fields::NewExprField::Ctxt));
84582                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84583                        ctxt,
84584                        visitor,
84585                        &mut *__ast_path,
84586                    )
84587                };
84588                {
84589                    let mut __ast_path = __ast_path
84590                        .with_guard(AstParentKind::NewExpr(self::fields::NewExprField::Callee));
84591                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84592                        callee,
84593                        visitor,
84594                        &mut *__ast_path,
84595                    )
84596                };
84597                {
84598                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NewExpr(
84599                        self::fields::NewExprField::Args(usize::MAX),
84600                    ));
84601                    <Option<Vec<ExprOrSpread>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84602                        args,
84603                        visitor,
84604                        &mut *__ast_path,
84605                    )
84606                };
84607                {
84608                    let mut __ast_path = __ast_path
84609                        .with_guard(AstParentKind::NewExpr(self::fields::NewExprField::TypeArgs));
84610                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_args , visitor , & mut * __ast_path)
84611                };
84612            }
84613        }
84614    }
84615}
84616#[cfg(any(docsrs, feature = "path"))]
84617#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84618impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Null {
84619    #[doc = "Calls [VisitMutAstPath`::visit_mut_null`] with `self`."]
84620    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84621        <V as VisitMutAstPath>::visit_mut_null(visitor, self, __ast_path)
84622    }
84623
84624    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84625        match self {
84626            Null { span } => {
84627                {
84628                    let mut __ast_path =
84629                        __ast_path.with_guard(AstParentKind::Null(self::fields::NullField::Span));
84630                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84631                        span,
84632                        visitor,
84633                        &mut *__ast_path,
84634                    )
84635                };
84636            }
84637        }
84638    }
84639}
84640#[cfg(any(docsrs, feature = "path"))]
84641#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84642impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Number {
84643    #[doc = "Calls [VisitMutAstPath`::visit_mut_number`] with `self`."]
84644    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84645        <V as VisitMutAstPath>::visit_mut_number(visitor, self, __ast_path)
84646    }
84647
84648    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84649        match self {
84650            Number { span, value, raw } => {
84651                {
84652                    let mut __ast_path = __ast_path
84653                        .with_guard(AstParentKind::Number(self::fields::NumberField::Span));
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
84662                        .with_guard(AstParentKind::Number(self::fields::NumberField::Raw));
84663                    <Option<swc_atoms::Atom> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84664                        raw,
84665                        visitor,
84666                        &mut *__ast_path,
84667                    )
84668                };
84669            }
84670        }
84671    }
84672}
84673#[cfg(any(docsrs, feature = "path"))]
84674#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84675impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ObjectLit {
84676    #[doc = "Calls [VisitMutAstPath`::visit_mut_object_lit`] with `self`."]
84677    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84678        <V as VisitMutAstPath>::visit_mut_object_lit(visitor, self, __ast_path)
84679    }
84680
84681    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84682        match self {
84683            ObjectLit { span, props } => {
84684                {
84685                    let mut __ast_path = __ast_path
84686                        .with_guard(AstParentKind::ObjectLit(self::fields::ObjectLitField::Span));
84687                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84688                        span,
84689                        visitor,
84690                        &mut *__ast_path,
84691                    )
84692                };
84693                {
84694                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectLit(
84695                        self::fields::ObjectLitField::Props(usize::MAX),
84696                    ));
84697                    <Vec<PropOrSpread> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84698                        props,
84699                        visitor,
84700                        &mut *__ast_path,
84701                    )
84702                };
84703            }
84704        }
84705    }
84706}
84707#[cfg(any(docsrs, feature = "path"))]
84708#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84709impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ObjectPat {
84710    #[doc = "Calls [VisitMutAstPath`::visit_mut_object_pat`] with `self`."]
84711    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84712        <V as VisitMutAstPath>::visit_mut_object_pat(visitor, self, __ast_path)
84713    }
84714
84715    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84716        match self {
84717            ObjectPat {
84718                span,
84719                props,
84720                optional,
84721                type_ann,
84722            } => {
84723                {
84724                    let mut __ast_path = __ast_path
84725                        .with_guard(AstParentKind::ObjectPat(self::fields::ObjectPatField::Span));
84726                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84727                        span,
84728                        visitor,
84729                        &mut *__ast_path,
84730                    )
84731                };
84732                {
84733                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPat(
84734                        self::fields::ObjectPatField::Props(usize::MAX),
84735                    ));
84736                    <Vec<ObjectPatProp> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84737                        props,
84738                        visitor,
84739                        &mut *__ast_path,
84740                    )
84741                };
84742                {
84743                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPat(
84744                        self::fields::ObjectPatField::TypeAnn,
84745                    ));
84746                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84747                        type_ann,
84748                        visitor,
84749                        &mut *__ast_path,
84750                    )
84751                };
84752            }
84753        }
84754    }
84755}
84756#[cfg(any(docsrs, feature = "path"))]
84757#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84758impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ObjectPatProp {
84759    #[doc = "Calls [VisitMutAstPath`::visit_mut_object_pat_prop`] with `self`."]
84760    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84761        <V as VisitMutAstPath>::visit_mut_object_pat_prop(visitor, self, __ast_path)
84762    }
84763
84764    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84765        match self {
84766            ObjectPatProp::KeyValue { 0: _field_0 } => {
84767                let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPatProp(
84768                    self::fields::ObjectPatPropField::KeyValue,
84769                ));
84770                <KeyValuePatProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84771                    _field_0,
84772                    visitor,
84773                    &mut *__ast_path,
84774                );
84775            }
84776            ObjectPatProp::Assign { 0: _field_0 } => {
84777                let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPatProp(
84778                    self::fields::ObjectPatPropField::Assign,
84779                ));
84780                <AssignPatProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84781                    _field_0,
84782                    visitor,
84783                    &mut *__ast_path,
84784                );
84785            }
84786            ObjectPatProp::Rest { 0: _field_0 } => {
84787                let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPatProp(
84788                    self::fields::ObjectPatPropField::Rest,
84789                ));
84790                <RestPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84791                    _field_0,
84792                    visitor,
84793                    &mut *__ast_path,
84794                );
84795            }
84796        }
84797    }
84798}
84799#[cfg(any(docsrs, feature = "path"))]
84800#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84801impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for OptCall {
84802    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_call`] with `self`."]
84803    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84804        <V as VisitMutAstPath>::visit_mut_opt_call(visitor, self, __ast_path)
84805    }
84806
84807    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84808        match self {
84809            OptCall {
84810                span,
84811                ctxt,
84812                callee,
84813                args,
84814                type_args,
84815            } => {
84816                {
84817                    let mut __ast_path = __ast_path
84818                        .with_guard(AstParentKind::OptCall(self::fields::OptCallField::Span));
84819                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84820                        span,
84821                        visitor,
84822                        &mut *__ast_path,
84823                    )
84824                };
84825                {
84826                    let mut __ast_path = __ast_path
84827                        .with_guard(AstParentKind::OptCall(self::fields::OptCallField::Ctxt));
84828                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84829                        ctxt,
84830                        visitor,
84831                        &mut *__ast_path,
84832                    )
84833                };
84834                {
84835                    let mut __ast_path = __ast_path
84836                        .with_guard(AstParentKind::OptCall(self::fields::OptCallField::Callee));
84837                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84838                        callee,
84839                        visitor,
84840                        &mut *__ast_path,
84841                    )
84842                };
84843                {
84844                    let mut __ast_path = __ast_path.with_guard(AstParentKind::OptCall(
84845                        self::fields::OptCallField::Args(usize::MAX),
84846                    ));
84847                    <Vec<ExprOrSpread> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84848                        args,
84849                        visitor,
84850                        &mut *__ast_path,
84851                    )
84852                };
84853                {
84854                    let mut __ast_path = __ast_path
84855                        .with_guard(AstParentKind::OptCall(self::fields::OptCallField::TypeArgs));
84856                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_args , visitor , & mut * __ast_path)
84857                };
84858            }
84859        }
84860    }
84861}
84862#[cfg(any(docsrs, feature = "path"))]
84863#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84864impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for OptChainBase {
84865    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_chain_base`] with `self`."]
84866    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84867        <V as VisitMutAstPath>::visit_mut_opt_chain_base(visitor, self, __ast_path)
84868    }
84869
84870    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84871        match self {
84872            OptChainBase::Member { 0: _field_0 } => {
84873                let mut __ast_path = __ast_path.with_guard(AstParentKind::OptChainBase(
84874                    self::fields::OptChainBaseField::Member,
84875                ));
84876                <MemberExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84877                    _field_0,
84878                    visitor,
84879                    &mut *__ast_path,
84880                );
84881            }
84882            OptChainBase::Call { 0: _field_0 } => {
84883                let mut __ast_path = __ast_path.with_guard(AstParentKind::OptChainBase(
84884                    self::fields::OptChainBaseField::Call,
84885                ));
84886                <OptCall as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84887                    _field_0,
84888                    visitor,
84889                    &mut *__ast_path,
84890                );
84891            }
84892        }
84893    }
84894}
84895#[cfg(any(docsrs, feature = "path"))]
84896#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84897impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for OptChainExpr {
84898    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_chain_expr`] with `self`."]
84899    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84900        <V as VisitMutAstPath>::visit_mut_opt_chain_expr(visitor, self, __ast_path)
84901    }
84902
84903    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84904        match self {
84905            OptChainExpr {
84906                span,
84907                optional,
84908                base,
84909            } => {
84910                {
84911                    let mut __ast_path = __ast_path.with_guard(AstParentKind::OptChainExpr(
84912                        self::fields::OptChainExprField::Span,
84913                    ));
84914                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84915                        span,
84916                        visitor,
84917                        &mut *__ast_path,
84918                    )
84919                };
84920                {
84921                    let mut __ast_path = __ast_path.with_guard(AstParentKind::OptChainExpr(
84922                        self::fields::OptChainExprField::Base,
84923                    ));
84924                    <Box<OptChainBase> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84925                        base,
84926                        visitor,
84927                        &mut *__ast_path,
84928                    )
84929                };
84930            }
84931        }
84932    }
84933}
84934#[cfg(any(docsrs, feature = "path"))]
84935#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84936impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Param {
84937    #[doc = "Calls [VisitMutAstPath`::visit_mut_param`] with `self`."]
84938    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84939        <V as VisitMutAstPath>::visit_mut_param(visitor, self, __ast_path)
84940    }
84941
84942    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84943        match self {
84944            Param {
84945                span,
84946                decorators,
84947                pat,
84948            } => {
84949                {
84950                    let mut __ast_path =
84951                        __ast_path.with_guard(AstParentKind::Param(self::fields::ParamField::Span));
84952                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84953                        span,
84954                        visitor,
84955                        &mut *__ast_path,
84956                    )
84957                };
84958                {
84959                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Param(
84960                        self::fields::ParamField::Decorators(usize::MAX),
84961                    ));
84962                    <Vec<Decorator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84963                        decorators,
84964                        visitor,
84965                        &mut *__ast_path,
84966                    )
84967                };
84968                {
84969                    let mut __ast_path =
84970                        __ast_path.with_guard(AstParentKind::Param(self::fields::ParamField::Pat));
84971                    <Pat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84972                        pat,
84973                        visitor,
84974                        &mut *__ast_path,
84975                    )
84976                };
84977            }
84978        }
84979    }
84980}
84981#[cfg(any(docsrs, feature = "path"))]
84982#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84983impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ParamOrTsParamProp {
84984    #[doc = "Calls [VisitMutAstPath`::visit_mut_param_or_ts_param_prop`] with `self`."]
84985    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84986        <V as VisitMutAstPath>::visit_mut_param_or_ts_param_prop(visitor, self, __ast_path)
84987    }
84988
84989    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84990        match self {
84991            ParamOrTsParamProp::TsParamProp { 0: _field_0 } => {
84992                let mut __ast_path = __ast_path.with_guard(AstParentKind::ParamOrTsParamProp(
84993                    self::fields::ParamOrTsParamPropField::TsParamProp,
84994                ));
84995                <TsParamProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84996                    _field_0,
84997                    visitor,
84998                    &mut *__ast_path,
84999                );
85000            }
85001            ParamOrTsParamProp::Param { 0: _field_0 } => {
85002                let mut __ast_path = __ast_path.with_guard(AstParentKind::ParamOrTsParamProp(
85003                    self::fields::ParamOrTsParamPropField::Param,
85004                ));
85005                <Param as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85006                    _field_0,
85007                    visitor,
85008                    &mut *__ast_path,
85009                );
85010            }
85011        }
85012    }
85013}
85014#[cfg(any(docsrs, feature = "path"))]
85015#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85016impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ParenExpr {
85017    #[doc = "Calls [VisitMutAstPath`::visit_mut_paren_expr`] with `self`."]
85018    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85019        <V as VisitMutAstPath>::visit_mut_paren_expr(visitor, self, __ast_path)
85020    }
85021
85022    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85023        match self {
85024            ParenExpr { span, expr } => {
85025                {
85026                    let mut __ast_path = __ast_path
85027                        .with_guard(AstParentKind::ParenExpr(self::fields::ParenExprField::Span));
85028                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85029                        span,
85030                        visitor,
85031                        &mut *__ast_path,
85032                    )
85033                };
85034                {
85035                    let mut __ast_path = __ast_path
85036                        .with_guard(AstParentKind::ParenExpr(self::fields::ParenExprField::Expr));
85037                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85038                        expr,
85039                        visitor,
85040                        &mut *__ast_path,
85041                    )
85042                };
85043            }
85044        }
85045    }
85046}
85047#[cfg(any(docsrs, feature = "path"))]
85048#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85049impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Pat {
85050    #[doc = "Calls [VisitMutAstPath`::visit_mut_pat`] with `self`."]
85051    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85052        <V as VisitMutAstPath>::visit_mut_pat(visitor, self, __ast_path)
85053    }
85054
85055    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85056        match self {
85057            Pat::Ident { 0: _field_0 } => {
85058                let mut __ast_path =
85059                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Ident));
85060                <BindingIdent as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85061                    _field_0,
85062                    visitor,
85063                    &mut *__ast_path,
85064                );
85065            }
85066            Pat::Array { 0: _field_0 } => {
85067                let mut __ast_path =
85068                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Array));
85069                <ArrayPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85070                    _field_0,
85071                    visitor,
85072                    &mut *__ast_path,
85073                );
85074            }
85075            Pat::Rest { 0: _field_0 } => {
85076                let mut __ast_path =
85077                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Rest));
85078                <RestPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85079                    _field_0,
85080                    visitor,
85081                    &mut *__ast_path,
85082                );
85083            }
85084            Pat::Object { 0: _field_0 } => {
85085                let mut __ast_path =
85086                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Object));
85087                <ObjectPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85088                    _field_0,
85089                    visitor,
85090                    &mut *__ast_path,
85091                );
85092            }
85093            Pat::Assign { 0: _field_0 } => {
85094                let mut __ast_path =
85095                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Assign));
85096                <AssignPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85097                    _field_0,
85098                    visitor,
85099                    &mut *__ast_path,
85100                );
85101            }
85102            Pat::Invalid { 0: _field_0 } => {
85103                let mut __ast_path =
85104                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Invalid));
85105                <Invalid as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85106                    _field_0,
85107                    visitor,
85108                    &mut *__ast_path,
85109                );
85110            }
85111            Pat::Expr { 0: _field_0 } => {
85112                let mut __ast_path =
85113                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Expr));
85114                <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85115                    _field_0,
85116                    visitor,
85117                    &mut *__ast_path,
85118                );
85119            }
85120        }
85121    }
85122}
85123#[cfg(any(docsrs, feature = "path"))]
85124#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85125impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for PrivateMethod {
85126    #[doc = "Calls [VisitMutAstPath`::visit_mut_private_method`] with `self`."]
85127    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85128        <V as VisitMutAstPath>::visit_mut_private_method(visitor, self, __ast_path)
85129    }
85130
85131    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85132        match self {
85133            PrivateMethod {
85134                span,
85135                key,
85136                function,
85137                kind,
85138                is_static,
85139                accessibility,
85140                is_abstract,
85141                is_optional,
85142                is_override,
85143            } => {
85144                {
85145                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
85146                        self::fields::PrivateMethodField::Span,
85147                    ));
85148                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85149                        span,
85150                        visitor,
85151                        &mut *__ast_path,
85152                    )
85153                };
85154                {
85155                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
85156                        self::fields::PrivateMethodField::Key,
85157                    ));
85158                    <PrivateName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85159                        key,
85160                        visitor,
85161                        &mut *__ast_path,
85162                    )
85163                };
85164                {
85165                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
85166                        self::fields::PrivateMethodField::Function,
85167                    ));
85168                    <Box<Function> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85169                        function,
85170                        visitor,
85171                        &mut *__ast_path,
85172                    )
85173                };
85174                {
85175                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
85176                        self::fields::PrivateMethodField::Kind,
85177                    ));
85178                    <MethodKind as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85179                        kind,
85180                        visitor,
85181                        &mut *__ast_path,
85182                    )
85183                };
85184                {
85185                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
85186                        self::fields::PrivateMethodField::Accessibility,
85187                    ));
85188                    <Option<Accessibility> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85189                        accessibility,
85190                        visitor,
85191                        &mut *__ast_path,
85192                    )
85193                };
85194            }
85195        }
85196    }
85197}
85198#[cfg(any(docsrs, feature = "path"))]
85199#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85200impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for PrivateName {
85201    #[doc = "Calls [VisitMutAstPath`::visit_mut_private_name`] with `self`."]
85202    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85203        <V as VisitMutAstPath>::visit_mut_private_name(visitor, self, __ast_path)
85204    }
85205
85206    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85207        match self {
85208            PrivateName { span, name } => {
85209                {
85210                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateName(
85211                        self::fields::PrivateNameField::Span,
85212                    ));
85213                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85214                        span,
85215                        visitor,
85216                        &mut *__ast_path,
85217                    )
85218                };
85219                {
85220                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateName(
85221                        self::fields::PrivateNameField::Name,
85222                    ));
85223                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85224                        name,
85225                        visitor,
85226                        &mut *__ast_path,
85227                    )
85228                };
85229            }
85230        }
85231    }
85232}
85233#[cfg(any(docsrs, feature = "path"))]
85234#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85235impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for PrivateProp {
85236    #[doc = "Calls [VisitMutAstPath`::visit_mut_private_prop`] with `self`."]
85237    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85238        <V as VisitMutAstPath>::visit_mut_private_prop(visitor, self, __ast_path)
85239    }
85240
85241    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85242        match self {
85243            PrivateProp {
85244                span,
85245                ctxt,
85246                key,
85247                value,
85248                type_ann,
85249                is_static,
85250                decorators,
85251                accessibility,
85252                is_optional,
85253                is_override,
85254                readonly,
85255                definite,
85256            } => {
85257                {
85258                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
85259                        self::fields::PrivatePropField::Span,
85260                    ));
85261                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85262                        span,
85263                        visitor,
85264                        &mut *__ast_path,
85265                    )
85266                };
85267                {
85268                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
85269                        self::fields::PrivatePropField::Ctxt,
85270                    ));
85271                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85272                        ctxt,
85273                        visitor,
85274                        &mut *__ast_path,
85275                    )
85276                };
85277                {
85278                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
85279                        self::fields::PrivatePropField::Key,
85280                    ));
85281                    <PrivateName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85282                        key,
85283                        visitor,
85284                        &mut *__ast_path,
85285                    )
85286                };
85287                {
85288                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
85289                        self::fields::PrivatePropField::Value,
85290                    ));
85291                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85292                        value,
85293                        visitor,
85294                        &mut *__ast_path,
85295                    )
85296                };
85297                {
85298                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
85299                        self::fields::PrivatePropField::TypeAnn,
85300                    ));
85301                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85302                        type_ann,
85303                        visitor,
85304                        &mut *__ast_path,
85305                    )
85306                };
85307                {
85308                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
85309                        self::fields::PrivatePropField::Decorators(usize::MAX),
85310                    ));
85311                    <Vec<Decorator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85312                        decorators,
85313                        visitor,
85314                        &mut *__ast_path,
85315                    )
85316                };
85317                {
85318                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
85319                        self::fields::PrivatePropField::Accessibility,
85320                    ));
85321                    <Option<Accessibility> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85322                        accessibility,
85323                        visitor,
85324                        &mut *__ast_path,
85325                    )
85326                };
85327            }
85328        }
85329    }
85330}
85331#[cfg(any(docsrs, feature = "path"))]
85332#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85333impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Program {
85334    #[doc = "Calls [VisitMutAstPath`::visit_mut_program`] with `self`."]
85335    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85336        <V as VisitMutAstPath>::visit_mut_program(visitor, self, __ast_path)
85337    }
85338
85339    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85340        match self {
85341            Program::Module { 0: _field_0 } => {
85342                let mut __ast_path = __ast_path
85343                    .with_guard(AstParentKind::Program(self::fields::ProgramField::Module));
85344                <Module as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85345                    _field_0,
85346                    visitor,
85347                    &mut *__ast_path,
85348                );
85349            }
85350            Program::Script { 0: _field_0 } => {
85351                let mut __ast_path = __ast_path
85352                    .with_guard(AstParentKind::Program(self::fields::ProgramField::Script));
85353                <Script as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85354                    _field_0,
85355                    visitor,
85356                    &mut *__ast_path,
85357                );
85358            }
85359        }
85360    }
85361}
85362#[cfg(any(docsrs, feature = "path"))]
85363#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85364impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Prop {
85365    #[doc = "Calls [VisitMutAstPath`::visit_mut_prop`] with `self`."]
85366    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85367        <V as VisitMutAstPath>::visit_mut_prop(visitor, self, __ast_path)
85368    }
85369
85370    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85371        match self {
85372            Prop::Shorthand { 0: _field_0 } => {
85373                let mut __ast_path =
85374                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Shorthand));
85375                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85376                    _field_0,
85377                    visitor,
85378                    &mut *__ast_path,
85379                );
85380            }
85381            Prop::KeyValue { 0: _field_0 } => {
85382                let mut __ast_path =
85383                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::KeyValue));
85384                <KeyValueProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85385                    _field_0,
85386                    visitor,
85387                    &mut *__ast_path,
85388                );
85389            }
85390            Prop::Assign { 0: _field_0 } => {
85391                let mut __ast_path =
85392                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Assign));
85393                <AssignProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85394                    _field_0,
85395                    visitor,
85396                    &mut *__ast_path,
85397                );
85398            }
85399            Prop::Getter { 0: _field_0 } => {
85400                let mut __ast_path =
85401                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Getter));
85402                <GetterProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85403                    _field_0,
85404                    visitor,
85405                    &mut *__ast_path,
85406                );
85407            }
85408            Prop::Setter { 0: _field_0 } => {
85409                let mut __ast_path =
85410                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Setter));
85411                <SetterProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85412                    _field_0,
85413                    visitor,
85414                    &mut *__ast_path,
85415                );
85416            }
85417            Prop::Method { 0: _field_0 } => {
85418                let mut __ast_path =
85419                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Method));
85420                <MethodProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85421                    _field_0,
85422                    visitor,
85423                    &mut *__ast_path,
85424                );
85425            }
85426        }
85427    }
85428}
85429#[cfg(any(docsrs, feature = "path"))]
85430#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85431impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for PropName {
85432    #[doc = "Calls [VisitMutAstPath`::visit_mut_prop_name`] with `self`."]
85433    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85434        <V as VisitMutAstPath>::visit_mut_prop_name(visitor, self, __ast_path)
85435    }
85436
85437    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85438        match self {
85439            PropName::Ident { 0: _field_0 } => {
85440                let mut __ast_path = __ast_path
85441                    .with_guard(AstParentKind::PropName(self::fields::PropNameField::Ident));
85442                <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85443                    _field_0,
85444                    visitor,
85445                    &mut *__ast_path,
85446                );
85447            }
85448            PropName::Str { 0: _field_0 } => {
85449                let mut __ast_path = __ast_path
85450                    .with_guard(AstParentKind::PropName(self::fields::PropNameField::Str));
85451                <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85452                    _field_0,
85453                    visitor,
85454                    &mut *__ast_path,
85455                );
85456            }
85457            PropName::Num { 0: _field_0 } => {
85458                let mut __ast_path = __ast_path
85459                    .with_guard(AstParentKind::PropName(self::fields::PropNameField::Num));
85460                <Number as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85461                    _field_0,
85462                    visitor,
85463                    &mut *__ast_path,
85464                );
85465            }
85466            PropName::Computed { 0: _field_0 } => {
85467                let mut __ast_path = __ast_path.with_guard(AstParentKind::PropName(
85468                    self::fields::PropNameField::Computed,
85469                ));
85470                <ComputedPropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85471                    _field_0,
85472                    visitor,
85473                    &mut *__ast_path,
85474                );
85475            }
85476            PropName::BigInt { 0: _field_0 } => {
85477                let mut __ast_path = __ast_path
85478                    .with_guard(AstParentKind::PropName(self::fields::PropNameField::BigInt));
85479                <BigInt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85480                    _field_0,
85481                    visitor,
85482                    &mut *__ast_path,
85483                );
85484            }
85485        }
85486    }
85487}
85488#[cfg(any(docsrs, feature = "path"))]
85489#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85490impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for PropOrSpread {
85491    #[doc = "Calls [VisitMutAstPath`::visit_mut_prop_or_spread`] with `self`."]
85492    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85493        <V as VisitMutAstPath>::visit_mut_prop_or_spread(visitor, self, __ast_path)
85494    }
85495
85496    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85497        match self {
85498            PropOrSpread::Spread { 0: _field_0 } => {
85499                let mut __ast_path = __ast_path.with_guard(AstParentKind::PropOrSpread(
85500                    self::fields::PropOrSpreadField::Spread,
85501                ));
85502                <SpreadElement as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85503                    _field_0,
85504                    visitor,
85505                    &mut *__ast_path,
85506                );
85507            }
85508            PropOrSpread::Prop { 0: _field_0 } => {
85509                let mut __ast_path = __ast_path.with_guard(AstParentKind::PropOrSpread(
85510                    self::fields::PropOrSpreadField::Prop,
85511                ));
85512                <Box<Prop> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85513                    _field_0,
85514                    visitor,
85515                    &mut *__ast_path,
85516                );
85517            }
85518        }
85519    }
85520}
85521#[cfg(any(docsrs, feature = "path"))]
85522#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85523impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Regex {
85524    #[doc = "Calls [VisitMutAstPath`::visit_mut_regex`] with `self`."]
85525    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85526        <V as VisitMutAstPath>::visit_mut_regex(visitor, self, __ast_path)
85527    }
85528
85529    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85530        match self {
85531            Regex { span, exp, flags } => {
85532                {
85533                    let mut __ast_path =
85534                        __ast_path.with_guard(AstParentKind::Regex(self::fields::RegexField::Span));
85535                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85536                        span,
85537                        visitor,
85538                        &mut *__ast_path,
85539                    )
85540                };
85541                {
85542                    let mut __ast_path =
85543                        __ast_path.with_guard(AstParentKind::Regex(self::fields::RegexField::Exp));
85544                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85545                        exp,
85546                        visitor,
85547                        &mut *__ast_path,
85548                    )
85549                };
85550                {
85551                    let mut __ast_path = __ast_path
85552                        .with_guard(AstParentKind::Regex(self::fields::RegexField::Flags));
85553                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85554                        flags,
85555                        visitor,
85556                        &mut *__ast_path,
85557                    )
85558                };
85559            }
85560        }
85561    }
85562}
85563#[cfg(any(docsrs, feature = "path"))]
85564#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85565impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for RestPat {
85566    #[doc = "Calls [VisitMutAstPath`::visit_mut_rest_pat`] with `self`."]
85567    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85568        <V as VisitMutAstPath>::visit_mut_rest_pat(visitor, self, __ast_path)
85569    }
85570
85571    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85572        match self {
85573            RestPat {
85574                span,
85575                dot3_token,
85576                arg,
85577                type_ann,
85578            } => {
85579                {
85580                    let mut __ast_path = __ast_path
85581                        .with_guard(AstParentKind::RestPat(self::fields::RestPatField::Span));
85582                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85583                        span,
85584                        visitor,
85585                        &mut *__ast_path,
85586                    )
85587                };
85588                {
85589                    let mut __ast_path = __ast_path.with_guard(AstParentKind::RestPat(
85590                        self::fields::RestPatField::Dot3Token,
85591                    ));
85592                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85593                        dot3_token,
85594                        visitor,
85595                        &mut *__ast_path,
85596                    )
85597                };
85598                {
85599                    let mut __ast_path = __ast_path
85600                        .with_guard(AstParentKind::RestPat(self::fields::RestPatField::Arg));
85601                    <Box<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85602                        arg,
85603                        visitor,
85604                        &mut *__ast_path,
85605                    )
85606                };
85607                {
85608                    let mut __ast_path = __ast_path
85609                        .with_guard(AstParentKind::RestPat(self::fields::RestPatField::TypeAnn));
85610                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85611                        type_ann,
85612                        visitor,
85613                        &mut *__ast_path,
85614                    )
85615                };
85616            }
85617        }
85618    }
85619}
85620#[cfg(any(docsrs, feature = "path"))]
85621#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85622impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ReturnStmt {
85623    #[doc = "Calls [VisitMutAstPath`::visit_mut_return_stmt`] with `self`."]
85624    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85625        <V as VisitMutAstPath>::visit_mut_return_stmt(visitor, self, __ast_path)
85626    }
85627
85628    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85629        match self {
85630            ReturnStmt { span, arg } => {
85631                {
85632                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ReturnStmt(
85633                        self::fields::ReturnStmtField::Span,
85634                    ));
85635                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85636                        span,
85637                        visitor,
85638                        &mut *__ast_path,
85639                    )
85640                };
85641                {
85642                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ReturnStmt(
85643                        self::fields::ReturnStmtField::Arg,
85644                    ));
85645                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85646                        arg,
85647                        visitor,
85648                        &mut *__ast_path,
85649                    )
85650                };
85651            }
85652        }
85653    }
85654}
85655#[cfg(any(docsrs, feature = "path"))]
85656#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85657impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Script {
85658    #[doc = "Calls [VisitMutAstPath`::visit_mut_script`] with `self`."]
85659    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85660        <V as VisitMutAstPath>::visit_mut_script(visitor, self, __ast_path)
85661    }
85662
85663    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85664        match self {
85665            Script {
85666                span,
85667                body,
85668                shebang,
85669            } => {
85670                {
85671                    let mut __ast_path = __ast_path
85672                        .with_guard(AstParentKind::Script(self::fields::ScriptField::Span));
85673                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85674                        span,
85675                        visitor,
85676                        &mut *__ast_path,
85677                    )
85678                };
85679                {
85680                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Script(
85681                        self::fields::ScriptField::Body(usize::MAX),
85682                    ));
85683                    <Vec<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85684                        body,
85685                        visitor,
85686                        &mut *__ast_path,
85687                    )
85688                };
85689                {
85690                    let mut __ast_path = __ast_path
85691                        .with_guard(AstParentKind::Script(self::fields::ScriptField::Shebang));
85692                    <Option<swc_atoms::Atom> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85693                        shebang,
85694                        visitor,
85695                        &mut *__ast_path,
85696                    )
85697                };
85698            }
85699        }
85700    }
85701}
85702#[cfg(any(docsrs, feature = "path"))]
85703#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85704impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for SeqExpr {
85705    #[doc = "Calls [VisitMutAstPath`::visit_mut_seq_expr`] with `self`."]
85706    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85707        <V as VisitMutAstPath>::visit_mut_seq_expr(visitor, self, __ast_path)
85708    }
85709
85710    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85711        match self {
85712            SeqExpr { span, exprs } => {
85713                {
85714                    let mut __ast_path = __ast_path
85715                        .with_guard(AstParentKind::SeqExpr(self::fields::SeqExprField::Span));
85716                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85717                        span,
85718                        visitor,
85719                        &mut *__ast_path,
85720                    )
85721                };
85722                {
85723                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SeqExpr(
85724                        self::fields::SeqExprField::Exprs(usize::MAX),
85725                    ));
85726                    <Vec<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85727                        exprs,
85728                        visitor,
85729                        &mut *__ast_path,
85730                    )
85731                };
85732            }
85733        }
85734    }
85735}
85736#[cfg(any(docsrs, feature = "path"))]
85737#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85738impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for SetterProp {
85739    #[doc = "Calls [VisitMutAstPath`::visit_mut_setter_prop`] with `self`."]
85740    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85741        <V as VisitMutAstPath>::visit_mut_setter_prop(visitor, self, __ast_path)
85742    }
85743
85744    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85745        match self {
85746            SetterProp {
85747                span,
85748                key,
85749                this_param,
85750                param,
85751                body,
85752            } => {
85753                {
85754                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
85755                        self::fields::SetterPropField::Span,
85756                    ));
85757                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85758                        span,
85759                        visitor,
85760                        &mut *__ast_path,
85761                    )
85762                };
85763                {
85764                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
85765                        self::fields::SetterPropField::Key,
85766                    ));
85767                    <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85768                        key,
85769                        visitor,
85770                        &mut *__ast_path,
85771                    )
85772                };
85773                {
85774                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
85775                        self::fields::SetterPropField::ThisParam,
85776                    ));
85777                    <Option<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85778                        this_param,
85779                        visitor,
85780                        &mut *__ast_path,
85781                    )
85782                };
85783                {
85784                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
85785                        self::fields::SetterPropField::Param,
85786                    ));
85787                    <Box<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85788                        param,
85789                        visitor,
85790                        &mut *__ast_path,
85791                    )
85792                };
85793                {
85794                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
85795                        self::fields::SetterPropField::Body,
85796                    ));
85797                    <Option<BlockStmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85798                        body,
85799                        visitor,
85800                        &mut *__ast_path,
85801                    )
85802                };
85803            }
85804        }
85805    }
85806}
85807#[cfg(any(docsrs, feature = "path"))]
85808#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85809impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for SimpleAssignTarget {
85810    #[doc = "Calls [VisitMutAstPath`::visit_mut_simple_assign_target`] with `self`."]
85811    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85812        <V as VisitMutAstPath>::visit_mut_simple_assign_target(visitor, self, __ast_path)
85813    }
85814
85815    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85816        match self {
85817            SimpleAssignTarget::Ident { 0: _field_0 } => {
85818                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85819                    self::fields::SimpleAssignTargetField::Ident,
85820                ));
85821                <BindingIdent as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85822                    _field_0,
85823                    visitor,
85824                    &mut *__ast_path,
85825                );
85826            }
85827            SimpleAssignTarget::Member { 0: _field_0 } => {
85828                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85829                    self::fields::SimpleAssignTargetField::Member,
85830                ));
85831                <MemberExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85832                    _field_0,
85833                    visitor,
85834                    &mut *__ast_path,
85835                );
85836            }
85837            SimpleAssignTarget::SuperProp { 0: _field_0 } => {
85838                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85839                    self::fields::SimpleAssignTargetField::SuperProp,
85840                ));
85841                <SuperPropExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85842                    _field_0,
85843                    visitor,
85844                    &mut *__ast_path,
85845                );
85846            }
85847            SimpleAssignTarget::Paren { 0: _field_0 } => {
85848                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85849                    self::fields::SimpleAssignTargetField::Paren,
85850                ));
85851                <ParenExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85852                    _field_0,
85853                    visitor,
85854                    &mut *__ast_path,
85855                );
85856            }
85857            SimpleAssignTarget::OptChain { 0: _field_0 } => {
85858                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85859                    self::fields::SimpleAssignTargetField::OptChain,
85860                ));
85861                <OptChainExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85862                    _field_0,
85863                    visitor,
85864                    &mut *__ast_path,
85865                );
85866            }
85867            SimpleAssignTarget::TsAs { 0: _field_0 } => {
85868                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85869                    self::fields::SimpleAssignTargetField::TsAs,
85870                ));
85871                <TsAsExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85872                    _field_0,
85873                    visitor,
85874                    &mut *__ast_path,
85875                );
85876            }
85877            SimpleAssignTarget::TsSatisfies { 0: _field_0 } => {
85878                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85879                    self::fields::SimpleAssignTargetField::TsSatisfies,
85880                ));
85881                <TsSatisfiesExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85882                    _field_0,
85883                    visitor,
85884                    &mut *__ast_path,
85885                );
85886            }
85887            SimpleAssignTarget::TsNonNull { 0: _field_0 } => {
85888                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85889                    self::fields::SimpleAssignTargetField::TsNonNull,
85890                ));
85891                <TsNonNullExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85892                    _field_0,
85893                    visitor,
85894                    &mut *__ast_path,
85895                );
85896            }
85897            SimpleAssignTarget::TsTypeAssertion { 0: _field_0 } => {
85898                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85899                    self::fields::SimpleAssignTargetField::TsTypeAssertion,
85900                ));
85901                <TsTypeAssertion as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85902                    _field_0,
85903                    visitor,
85904                    &mut *__ast_path,
85905                );
85906            }
85907            SimpleAssignTarget::TsInstantiation { 0: _field_0 } => {
85908                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85909                    self::fields::SimpleAssignTargetField::TsInstantiation,
85910                ));
85911                <TsInstantiation as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85912                    _field_0,
85913                    visitor,
85914                    &mut *__ast_path,
85915                );
85916            }
85917            SimpleAssignTarget::Invalid { 0: _field_0 } => {
85918                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85919                    self::fields::SimpleAssignTargetField::Invalid,
85920                ));
85921                <Invalid as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85922                    _field_0,
85923                    visitor,
85924                    &mut *__ast_path,
85925                );
85926            }
85927        }
85928    }
85929}
85930#[cfg(any(docsrs, feature = "path"))]
85931#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85932impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for SpreadElement {
85933    #[doc = "Calls [VisitMutAstPath`::visit_mut_spread_element`] with `self`."]
85934    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85935        <V as VisitMutAstPath>::visit_mut_spread_element(visitor, self, __ast_path)
85936    }
85937
85938    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85939        match self {
85940            SpreadElement { dot3_token, expr } => {
85941                {
85942                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SpreadElement(
85943                        self::fields::SpreadElementField::Dot3Token,
85944                    ));
85945                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85946                        dot3_token,
85947                        visitor,
85948                        &mut *__ast_path,
85949                    )
85950                };
85951                {
85952                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SpreadElement(
85953                        self::fields::SpreadElementField::Expr,
85954                    ));
85955                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85956                        expr,
85957                        visitor,
85958                        &mut *__ast_path,
85959                    )
85960                };
85961            }
85962        }
85963    }
85964}
85965#[cfg(any(docsrs, feature = "path"))]
85966#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85967impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for StaticBlock {
85968    #[doc = "Calls [VisitMutAstPath`::visit_mut_static_block`] with `self`."]
85969    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85970        <V as VisitMutAstPath>::visit_mut_static_block(visitor, self, __ast_path)
85971    }
85972
85973    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85974        match self {
85975            StaticBlock { span, body } => {
85976                {
85977                    let mut __ast_path = __ast_path.with_guard(AstParentKind::StaticBlock(
85978                        self::fields::StaticBlockField::Span,
85979                    ));
85980                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85981                        span,
85982                        visitor,
85983                        &mut *__ast_path,
85984                    )
85985                };
85986                {
85987                    let mut __ast_path = __ast_path.with_guard(AstParentKind::StaticBlock(
85988                        self::fields::StaticBlockField::Body,
85989                    ));
85990                    <BlockStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85991                        body,
85992                        visitor,
85993                        &mut *__ast_path,
85994                    )
85995                };
85996            }
85997        }
85998    }
85999}
86000#[cfg(any(docsrs, feature = "path"))]
86001#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86002impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Stmt {
86003    #[doc = "Calls [VisitMutAstPath`::visit_mut_stmt`] with `self`."]
86004    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86005        <V as VisitMutAstPath>::visit_mut_stmt(visitor, self, __ast_path)
86006    }
86007
86008    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86009        match self {
86010            Stmt::Block { 0: _field_0 } => {
86011                let mut __ast_path =
86012                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Block));
86013                <BlockStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86014                    _field_0,
86015                    visitor,
86016                    &mut *__ast_path,
86017                );
86018            }
86019            Stmt::Empty { 0: _field_0 } => {
86020                let mut __ast_path =
86021                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Empty));
86022                <EmptyStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86023                    _field_0,
86024                    visitor,
86025                    &mut *__ast_path,
86026                );
86027            }
86028            Stmt::Debugger { 0: _field_0 } => {
86029                let mut __ast_path =
86030                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Debugger));
86031                <DebuggerStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86032                    _field_0,
86033                    visitor,
86034                    &mut *__ast_path,
86035                );
86036            }
86037            Stmt::With { 0: _field_0 } => {
86038                let mut __ast_path =
86039                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::With));
86040                <WithStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86041                    _field_0,
86042                    visitor,
86043                    &mut *__ast_path,
86044                );
86045            }
86046            Stmt::Return { 0: _field_0 } => {
86047                let mut __ast_path =
86048                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Return));
86049                <ReturnStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86050                    _field_0,
86051                    visitor,
86052                    &mut *__ast_path,
86053                );
86054            }
86055            Stmt::Labeled { 0: _field_0 } => {
86056                let mut __ast_path =
86057                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Labeled));
86058                <LabeledStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86059                    _field_0,
86060                    visitor,
86061                    &mut *__ast_path,
86062                );
86063            }
86064            Stmt::Break { 0: _field_0 } => {
86065                let mut __ast_path =
86066                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Break));
86067                <BreakStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86068                    _field_0,
86069                    visitor,
86070                    &mut *__ast_path,
86071                );
86072            }
86073            Stmt::Continue { 0: _field_0 } => {
86074                let mut __ast_path =
86075                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Continue));
86076                <ContinueStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86077                    _field_0,
86078                    visitor,
86079                    &mut *__ast_path,
86080                );
86081            }
86082            Stmt::If { 0: _field_0 } => {
86083                let mut __ast_path =
86084                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::If));
86085                <IfStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86086                    _field_0,
86087                    visitor,
86088                    &mut *__ast_path,
86089                );
86090            }
86091            Stmt::Switch { 0: _field_0 } => {
86092                let mut __ast_path =
86093                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Switch));
86094                <SwitchStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86095                    _field_0,
86096                    visitor,
86097                    &mut *__ast_path,
86098                );
86099            }
86100            Stmt::Throw { 0: _field_0 } => {
86101                let mut __ast_path =
86102                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Throw));
86103                <ThrowStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86104                    _field_0,
86105                    visitor,
86106                    &mut *__ast_path,
86107                );
86108            }
86109            Stmt::Try { 0: _field_0 } => {
86110                let mut __ast_path =
86111                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Try));
86112                <Box<TryStmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86113                    _field_0,
86114                    visitor,
86115                    &mut *__ast_path,
86116                );
86117            }
86118            Stmt::While { 0: _field_0 } => {
86119                let mut __ast_path =
86120                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::While));
86121                <WhileStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86122                    _field_0,
86123                    visitor,
86124                    &mut *__ast_path,
86125                );
86126            }
86127            Stmt::DoWhile { 0: _field_0 } => {
86128                let mut __ast_path =
86129                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::DoWhile));
86130                <DoWhileStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86131                    _field_0,
86132                    visitor,
86133                    &mut *__ast_path,
86134                );
86135            }
86136            Stmt::For { 0: _field_0 } => {
86137                let mut __ast_path =
86138                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::For));
86139                <ForStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86140                    _field_0,
86141                    visitor,
86142                    &mut *__ast_path,
86143                );
86144            }
86145            Stmt::ForIn { 0: _field_0 } => {
86146                let mut __ast_path =
86147                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::ForIn));
86148                <ForInStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86149                    _field_0,
86150                    visitor,
86151                    &mut *__ast_path,
86152                );
86153            }
86154            Stmt::ForOf { 0: _field_0 } => {
86155                let mut __ast_path =
86156                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::ForOf));
86157                <ForOfStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86158                    _field_0,
86159                    visitor,
86160                    &mut *__ast_path,
86161                );
86162            }
86163            Stmt::Decl { 0: _field_0 } => {
86164                let mut __ast_path =
86165                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Decl));
86166                <Decl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86167                    _field_0,
86168                    visitor,
86169                    &mut *__ast_path,
86170                );
86171            }
86172            Stmt::Expr { 0: _field_0 } => {
86173                let mut __ast_path =
86174                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Expr));
86175                <ExprStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86176                    _field_0,
86177                    visitor,
86178                    &mut *__ast_path,
86179                );
86180            }
86181        }
86182    }
86183}
86184#[cfg(any(docsrs, feature = "path"))]
86185#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86186impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Str {
86187    #[doc = "Calls [VisitMutAstPath`::visit_mut_str`] with `self`."]
86188    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86189        <V as VisitMutAstPath>::visit_mut_str(visitor, self, __ast_path)
86190    }
86191
86192    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86193        match self {
86194            Str { span, value, raw } => {
86195                {
86196                    let mut __ast_path =
86197                        __ast_path.with_guard(AstParentKind::Str(self::fields::StrField::Span));
86198                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86199                        span,
86200                        visitor,
86201                        &mut *__ast_path,
86202                    )
86203                };
86204                {
86205                    let mut __ast_path =
86206                        __ast_path.with_guard(AstParentKind::Str(self::fields::StrField::Value));
86207                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86208                        value,
86209                        visitor,
86210                        &mut *__ast_path,
86211                    )
86212                };
86213                {
86214                    let mut __ast_path =
86215                        __ast_path.with_guard(AstParentKind::Str(self::fields::StrField::Raw));
86216                    <Option<swc_atoms::Atom> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86217                        raw,
86218                        visitor,
86219                        &mut *__ast_path,
86220                    )
86221                };
86222            }
86223        }
86224    }
86225}
86226#[cfg(any(docsrs, feature = "path"))]
86227#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86228impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Super {
86229    #[doc = "Calls [VisitMutAstPath`::visit_mut_super`] with `self`."]
86230    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86231        <V as VisitMutAstPath>::visit_mut_super(visitor, self, __ast_path)
86232    }
86233
86234    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86235        match self {
86236            Super { span } => {
86237                {
86238                    let mut __ast_path =
86239                        __ast_path.with_guard(AstParentKind::Super(self::fields::SuperField::Span));
86240                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86241                        span,
86242                        visitor,
86243                        &mut *__ast_path,
86244                    )
86245                };
86246            }
86247        }
86248    }
86249}
86250#[cfg(any(docsrs, feature = "path"))]
86251#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86252impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for SuperProp {
86253    #[doc = "Calls [VisitMutAstPath`::visit_mut_super_prop`] with `self`."]
86254    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86255        <V as VisitMutAstPath>::visit_mut_super_prop(visitor, self, __ast_path)
86256    }
86257
86258    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86259        match self {
86260            SuperProp::Ident { 0: _field_0 } => {
86261                let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperProp(
86262                    self::fields::SuperPropField::Ident,
86263                ));
86264                <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86265                    _field_0,
86266                    visitor,
86267                    &mut *__ast_path,
86268                );
86269            }
86270            SuperProp::Computed { 0: _field_0 } => {
86271                let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperProp(
86272                    self::fields::SuperPropField::Computed,
86273                ));
86274                <ComputedPropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86275                    _field_0,
86276                    visitor,
86277                    &mut *__ast_path,
86278                );
86279            }
86280        }
86281    }
86282}
86283#[cfg(any(docsrs, feature = "path"))]
86284#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86285impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for SuperPropExpr {
86286    #[doc = "Calls [VisitMutAstPath`::visit_mut_super_prop_expr`] with `self`."]
86287    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86288        <V as VisitMutAstPath>::visit_mut_super_prop_expr(visitor, self, __ast_path)
86289    }
86290
86291    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86292        match self {
86293            SuperPropExpr { span, obj, prop } => {
86294                {
86295                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperPropExpr(
86296                        self::fields::SuperPropExprField::Span,
86297                    ));
86298                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86299                        span,
86300                        visitor,
86301                        &mut *__ast_path,
86302                    )
86303                };
86304                {
86305                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperPropExpr(
86306                        self::fields::SuperPropExprField::Obj,
86307                    ));
86308                    <Super as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86309                        obj,
86310                        visitor,
86311                        &mut *__ast_path,
86312                    )
86313                };
86314                {
86315                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperPropExpr(
86316                        self::fields::SuperPropExprField::Prop,
86317                    ));
86318                    <SuperProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86319                        prop,
86320                        visitor,
86321                        &mut *__ast_path,
86322                    )
86323                };
86324            }
86325        }
86326    }
86327}
86328#[cfg(any(docsrs, feature = "path"))]
86329#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86330impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for SwitchCase {
86331    #[doc = "Calls [VisitMutAstPath`::visit_mut_switch_case`] with `self`."]
86332    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86333        <V as VisitMutAstPath>::visit_mut_switch_case(visitor, self, __ast_path)
86334    }
86335
86336    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86337        match self {
86338            SwitchCase { span, test, cons } => {
86339                {
86340                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchCase(
86341                        self::fields::SwitchCaseField::Span,
86342                    ));
86343                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86344                        span,
86345                        visitor,
86346                        &mut *__ast_path,
86347                    )
86348                };
86349                {
86350                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchCase(
86351                        self::fields::SwitchCaseField::Test,
86352                    ));
86353                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86354                        test,
86355                        visitor,
86356                        &mut *__ast_path,
86357                    )
86358                };
86359                {
86360                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchCase(
86361                        self::fields::SwitchCaseField::Cons(usize::MAX),
86362                    ));
86363                    <Vec<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86364                        cons,
86365                        visitor,
86366                        &mut *__ast_path,
86367                    )
86368                };
86369            }
86370        }
86371    }
86372}
86373#[cfg(any(docsrs, feature = "path"))]
86374#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86375impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for SwitchStmt {
86376    #[doc = "Calls [VisitMutAstPath`::visit_mut_switch_stmt`] with `self`."]
86377    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86378        <V as VisitMutAstPath>::visit_mut_switch_stmt(visitor, self, __ast_path)
86379    }
86380
86381    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86382        match self {
86383            SwitchStmt {
86384                span,
86385                discriminant,
86386                cases,
86387            } => {
86388                {
86389                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchStmt(
86390                        self::fields::SwitchStmtField::Span,
86391                    ));
86392                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86393                        span,
86394                        visitor,
86395                        &mut *__ast_path,
86396                    )
86397                };
86398                {
86399                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchStmt(
86400                        self::fields::SwitchStmtField::Discriminant,
86401                    ));
86402                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86403                        discriminant,
86404                        visitor,
86405                        &mut *__ast_path,
86406                    )
86407                };
86408                {
86409                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchStmt(
86410                        self::fields::SwitchStmtField::Cases(usize::MAX),
86411                    ));
86412                    <Vec<SwitchCase> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86413                        cases,
86414                        visitor,
86415                        &mut *__ast_path,
86416                    )
86417                };
86418            }
86419        }
86420    }
86421}
86422#[cfg(any(docsrs, feature = "path"))]
86423#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86424impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TaggedTpl {
86425    #[doc = "Calls [VisitMutAstPath`::visit_mut_tagged_tpl`] with `self`."]
86426    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86427        <V as VisitMutAstPath>::visit_mut_tagged_tpl(visitor, self, __ast_path)
86428    }
86429
86430    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86431        match self {
86432            TaggedTpl {
86433                span,
86434                ctxt,
86435                tag,
86436                type_params,
86437                tpl,
86438            } => {
86439                {
86440                    let mut __ast_path = __ast_path
86441                        .with_guard(AstParentKind::TaggedTpl(self::fields::TaggedTplField::Span));
86442                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86443                        span,
86444                        visitor,
86445                        &mut *__ast_path,
86446                    )
86447                };
86448                {
86449                    let mut __ast_path = __ast_path
86450                        .with_guard(AstParentKind::TaggedTpl(self::fields::TaggedTplField::Ctxt));
86451                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86452                        ctxt,
86453                        visitor,
86454                        &mut *__ast_path,
86455                    )
86456                };
86457                {
86458                    let mut __ast_path = __ast_path
86459                        .with_guard(AstParentKind::TaggedTpl(self::fields::TaggedTplField::Tag));
86460                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86461                        tag,
86462                        visitor,
86463                        &mut *__ast_path,
86464                    )
86465                };
86466                {
86467                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TaggedTpl(
86468                        self::fields::TaggedTplField::TypeParams,
86469                    ));
86470                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
86471                };
86472                {
86473                    let mut __ast_path = __ast_path
86474                        .with_guard(AstParentKind::TaggedTpl(self::fields::TaggedTplField::Tpl));
86475                    <Box<Tpl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86476                        tpl,
86477                        visitor,
86478                        &mut *__ast_path,
86479                    )
86480                };
86481            }
86482        }
86483    }
86484}
86485#[cfg(any(docsrs, feature = "path"))]
86486#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86487impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ThisExpr {
86488    #[doc = "Calls [VisitMutAstPath`::visit_mut_this_expr`] with `self`."]
86489    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86490        <V as VisitMutAstPath>::visit_mut_this_expr(visitor, self, __ast_path)
86491    }
86492
86493    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86494        match self {
86495            ThisExpr { span } => {
86496                {
86497                    let mut __ast_path = __ast_path
86498                        .with_guard(AstParentKind::ThisExpr(self::fields::ThisExprField::Span));
86499                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86500                        span,
86501                        visitor,
86502                        &mut *__ast_path,
86503                    )
86504                };
86505            }
86506        }
86507    }
86508}
86509#[cfg(any(docsrs, feature = "path"))]
86510#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86511impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ThrowStmt {
86512    #[doc = "Calls [VisitMutAstPath`::visit_mut_throw_stmt`] with `self`."]
86513    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86514        <V as VisitMutAstPath>::visit_mut_throw_stmt(visitor, self, __ast_path)
86515    }
86516
86517    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86518        match self {
86519            ThrowStmt { span, arg } => {
86520                {
86521                    let mut __ast_path = __ast_path
86522                        .with_guard(AstParentKind::ThrowStmt(self::fields::ThrowStmtField::Span));
86523                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86524                        span,
86525                        visitor,
86526                        &mut *__ast_path,
86527                    )
86528                };
86529                {
86530                    let mut __ast_path = __ast_path
86531                        .with_guard(AstParentKind::ThrowStmt(self::fields::ThrowStmtField::Arg));
86532                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86533                        arg,
86534                        visitor,
86535                        &mut *__ast_path,
86536                    )
86537                };
86538            }
86539        }
86540    }
86541}
86542#[cfg(any(docsrs, feature = "path"))]
86543#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86544impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Tpl {
86545    #[doc = "Calls [VisitMutAstPath`::visit_mut_tpl`] with `self`."]
86546    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86547        <V as VisitMutAstPath>::visit_mut_tpl(visitor, self, __ast_path)
86548    }
86549
86550    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86551        match self {
86552            Tpl {
86553                span,
86554                exprs,
86555                quasis,
86556            } => {
86557                {
86558                    let mut __ast_path =
86559                        __ast_path.with_guard(AstParentKind::Tpl(self::fields::TplField::Span));
86560                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86561                        span,
86562                        visitor,
86563                        &mut *__ast_path,
86564                    )
86565                };
86566                {
86567                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Tpl(
86568                        self::fields::TplField::Exprs(usize::MAX),
86569                    ));
86570                    <Vec<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86571                        exprs,
86572                        visitor,
86573                        &mut *__ast_path,
86574                    )
86575                };
86576                {
86577                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Tpl(
86578                        self::fields::TplField::Quasis(usize::MAX),
86579                    ));
86580                    <Vec<TplElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86581                        quasis,
86582                        visitor,
86583                        &mut *__ast_path,
86584                    )
86585                };
86586            }
86587        }
86588    }
86589}
86590#[cfg(any(docsrs, feature = "path"))]
86591#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86592impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TplElement {
86593    #[doc = "Calls [VisitMutAstPath`::visit_mut_tpl_element`] with `self`."]
86594    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86595        <V as VisitMutAstPath>::visit_mut_tpl_element(visitor, self, __ast_path)
86596    }
86597
86598    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86599        match self {
86600            TplElement {
86601                span,
86602                tail,
86603                cooked,
86604                raw,
86605            } => {
86606                {
86607                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TplElement(
86608                        self::fields::TplElementField::Span,
86609                    ));
86610                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86611                        span,
86612                        visitor,
86613                        &mut *__ast_path,
86614                    )
86615                };
86616                {
86617                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TplElement(
86618                        self::fields::TplElementField::Cooked,
86619                    ));
86620                    <Option<swc_atoms::Atom> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86621                        cooked,
86622                        visitor,
86623                        &mut *__ast_path,
86624                    )
86625                };
86626                {
86627                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TplElement(
86628                        self::fields::TplElementField::Raw,
86629                    ));
86630                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86631                        raw,
86632                        visitor,
86633                        &mut *__ast_path,
86634                    )
86635                };
86636            }
86637        }
86638    }
86639}
86640#[cfg(any(docsrs, feature = "path"))]
86641#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86642impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TruePlusMinus {
86643    #[doc = "Calls [VisitMutAstPath`::visit_mut_true_plus_minus`] with `self`."]
86644    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86645        <V as VisitMutAstPath>::visit_mut_true_plus_minus(visitor, self, __ast_path)
86646    }
86647
86648    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86649        match self {
86650            TruePlusMinus::True => {}
86651            TruePlusMinus::Plus => {}
86652            TruePlusMinus::Minus => {}
86653        }
86654    }
86655}
86656#[cfg(any(docsrs, feature = "path"))]
86657#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86658impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TryStmt {
86659    #[doc = "Calls [VisitMutAstPath`::visit_mut_try_stmt`] with `self`."]
86660    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86661        <V as VisitMutAstPath>::visit_mut_try_stmt(visitor, self, __ast_path)
86662    }
86663
86664    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86665        match self {
86666            TryStmt {
86667                span,
86668                block,
86669                handler,
86670                finalizer,
86671            } => {
86672                {
86673                    let mut __ast_path = __ast_path
86674                        .with_guard(AstParentKind::TryStmt(self::fields::TryStmtField::Span));
86675                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86676                        span,
86677                        visitor,
86678                        &mut *__ast_path,
86679                    )
86680                };
86681                {
86682                    let mut __ast_path = __ast_path
86683                        .with_guard(AstParentKind::TryStmt(self::fields::TryStmtField::Block));
86684                    <BlockStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86685                        block,
86686                        visitor,
86687                        &mut *__ast_path,
86688                    )
86689                };
86690                {
86691                    let mut __ast_path = __ast_path
86692                        .with_guard(AstParentKind::TryStmt(self::fields::TryStmtField::Handler));
86693                    <Option<CatchClause> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86694                        handler,
86695                        visitor,
86696                        &mut *__ast_path,
86697                    )
86698                };
86699                {
86700                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TryStmt(
86701                        self::fields::TryStmtField::Finalizer,
86702                    ));
86703                    <Option<BlockStmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86704                        finalizer,
86705                        visitor,
86706                        &mut *__ast_path,
86707                    )
86708                };
86709            }
86710        }
86711    }
86712}
86713#[cfg(any(docsrs, feature = "path"))]
86714#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86715impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsArrayType {
86716    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_array_type`] with `self`."]
86717    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86718        <V as VisitMutAstPath>::visit_mut_ts_array_type(visitor, self, __ast_path)
86719    }
86720
86721    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86722        match self {
86723            TsArrayType { span, elem_type } => {
86724                {
86725                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsArrayType(
86726                        self::fields::TsArrayTypeField::Span,
86727                    ));
86728                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86729                        span,
86730                        visitor,
86731                        &mut *__ast_path,
86732                    )
86733                };
86734                {
86735                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsArrayType(
86736                        self::fields::TsArrayTypeField::ElemType,
86737                    ));
86738                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86739                        elem_type,
86740                        visitor,
86741                        &mut *__ast_path,
86742                    )
86743                };
86744            }
86745        }
86746    }
86747}
86748#[cfg(any(docsrs, feature = "path"))]
86749#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86750impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsAsExpr {
86751    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_as_expr`] with `self`."]
86752    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86753        <V as VisitMutAstPath>::visit_mut_ts_as_expr(visitor, self, __ast_path)
86754    }
86755
86756    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86757        match self {
86758            TsAsExpr {
86759                span,
86760                expr,
86761                type_ann,
86762            } => {
86763                {
86764                    let mut __ast_path = __ast_path
86765                        .with_guard(AstParentKind::TsAsExpr(self::fields::TsAsExprField::Span));
86766                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86767                        span,
86768                        visitor,
86769                        &mut *__ast_path,
86770                    )
86771                };
86772                {
86773                    let mut __ast_path = __ast_path
86774                        .with_guard(AstParentKind::TsAsExpr(self::fields::TsAsExprField::Expr));
86775                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86776                        expr,
86777                        visitor,
86778                        &mut *__ast_path,
86779                    )
86780                };
86781                {
86782                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsAsExpr(
86783                        self::fields::TsAsExprField::TypeAnn,
86784                    ));
86785                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86786                        type_ann,
86787                        visitor,
86788                        &mut *__ast_path,
86789                    )
86790                };
86791            }
86792        }
86793    }
86794}
86795#[cfg(any(docsrs, feature = "path"))]
86796#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86797impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsCallSignatureDecl {
86798    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_call_signature_decl`] with `self`."]
86799    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86800        <V as VisitMutAstPath>::visit_mut_ts_call_signature_decl(visitor, self, __ast_path)
86801    }
86802
86803    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86804        match self {
86805            TsCallSignatureDecl {
86806                span,
86807                params,
86808                type_ann,
86809                type_params,
86810            } => {
86811                {
86812                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsCallSignatureDecl(
86813                        self::fields::TsCallSignatureDeclField::Span,
86814                    ));
86815                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86816                        span,
86817                        visitor,
86818                        &mut *__ast_path,
86819                    )
86820                };
86821                {
86822                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsCallSignatureDecl(
86823                        self::fields::TsCallSignatureDeclField::Params(usize::MAX),
86824                    ));
86825                    <Vec<TsFnParam> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86826                        params,
86827                        visitor,
86828                        &mut *__ast_path,
86829                    )
86830                };
86831                {
86832                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsCallSignatureDecl(
86833                        self::fields::TsCallSignatureDeclField::TypeAnn,
86834                    ));
86835                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86836                        type_ann,
86837                        visitor,
86838                        &mut *__ast_path,
86839                    )
86840                };
86841                {
86842                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsCallSignatureDecl(
86843                        self::fields::TsCallSignatureDeclField::TypeParams,
86844                    ));
86845                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
86846                };
86847            }
86848        }
86849    }
86850}
86851#[cfg(any(docsrs, feature = "path"))]
86852#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86853impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsConditionalType {
86854    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_conditional_type`] with `self`."]
86855    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86856        <V as VisitMutAstPath>::visit_mut_ts_conditional_type(visitor, self, __ast_path)
86857    }
86858
86859    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86860        match self {
86861            TsConditionalType {
86862                span,
86863                check_type,
86864                extends_type,
86865                true_type,
86866                false_type,
86867            } => {
86868                {
86869                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
86870                        self::fields::TsConditionalTypeField::Span,
86871                    ));
86872                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86873                        span,
86874                        visitor,
86875                        &mut *__ast_path,
86876                    )
86877                };
86878                {
86879                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
86880                        self::fields::TsConditionalTypeField::CheckType,
86881                    ));
86882                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86883                        check_type,
86884                        visitor,
86885                        &mut *__ast_path,
86886                    )
86887                };
86888                {
86889                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
86890                        self::fields::TsConditionalTypeField::ExtendsType,
86891                    ));
86892                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86893                        extends_type,
86894                        visitor,
86895                        &mut *__ast_path,
86896                    )
86897                };
86898                {
86899                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
86900                        self::fields::TsConditionalTypeField::TrueType,
86901                    ));
86902                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86903                        true_type,
86904                        visitor,
86905                        &mut *__ast_path,
86906                    )
86907                };
86908                {
86909                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
86910                        self::fields::TsConditionalTypeField::FalseType,
86911                    ));
86912                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86913                        false_type,
86914                        visitor,
86915                        &mut *__ast_path,
86916                    )
86917                };
86918            }
86919        }
86920    }
86921}
86922#[cfg(any(docsrs, feature = "path"))]
86923#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86924impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsConstAssertion {
86925    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_const_assertion`] with `self`."]
86926    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86927        <V as VisitMutAstPath>::visit_mut_ts_const_assertion(visitor, self, __ast_path)
86928    }
86929
86930    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86931        match self {
86932            TsConstAssertion { span, expr } => {
86933                {
86934                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstAssertion(
86935                        self::fields::TsConstAssertionField::Span,
86936                    ));
86937                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86938                        span,
86939                        visitor,
86940                        &mut *__ast_path,
86941                    )
86942                };
86943                {
86944                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstAssertion(
86945                        self::fields::TsConstAssertionField::Expr,
86946                    ));
86947                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86948                        expr,
86949                        visitor,
86950                        &mut *__ast_path,
86951                    )
86952                };
86953            }
86954        }
86955    }
86956}
86957#[cfg(any(docsrs, feature = "path"))]
86958#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86959impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsConstructSignatureDecl {
86960    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_construct_signature_decl`] with `self`."]
86961    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86962        <V as VisitMutAstPath>::visit_mut_ts_construct_signature_decl(visitor, self, __ast_path)
86963    }
86964
86965    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86966        match self {
86967            TsConstructSignatureDecl {
86968                span,
86969                params,
86970                type_ann,
86971                type_params,
86972            } => {
86973                {
86974                    let mut __ast_path =
86975                        __ast_path.with_guard(AstParentKind::TsConstructSignatureDecl(
86976                            self::fields::TsConstructSignatureDeclField::Span,
86977                        ));
86978                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86979                        span,
86980                        visitor,
86981                        &mut *__ast_path,
86982                    )
86983                };
86984                {
86985                    let mut __ast_path =
86986                        __ast_path.with_guard(AstParentKind::TsConstructSignatureDecl(
86987                            self::fields::TsConstructSignatureDeclField::Params(usize::MAX),
86988                        ));
86989                    <Vec<TsFnParam> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86990                        params,
86991                        visitor,
86992                        &mut *__ast_path,
86993                    )
86994                };
86995                {
86996                    let mut __ast_path =
86997                        __ast_path.with_guard(AstParentKind::TsConstructSignatureDecl(
86998                            self::fields::TsConstructSignatureDeclField::TypeAnn,
86999                        ));
87000                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87001                        type_ann,
87002                        visitor,
87003                        &mut *__ast_path,
87004                    )
87005                };
87006                {
87007                    let mut __ast_path =
87008                        __ast_path.with_guard(AstParentKind::TsConstructSignatureDecl(
87009                            self::fields::TsConstructSignatureDeclField::TypeParams,
87010                        ));
87011                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
87012                };
87013            }
87014        }
87015    }
87016}
87017#[cfg(any(docsrs, feature = "path"))]
87018#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87019impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsConstructorType {
87020    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_constructor_type`] with `self`."]
87021    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87022        <V as VisitMutAstPath>::visit_mut_ts_constructor_type(visitor, self, __ast_path)
87023    }
87024
87025    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87026        match self {
87027            TsConstructorType {
87028                span,
87029                params,
87030                type_params,
87031                type_ann,
87032                is_abstract,
87033            } => {
87034                {
87035                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstructorType(
87036                        self::fields::TsConstructorTypeField::Span,
87037                    ));
87038                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87039                        span,
87040                        visitor,
87041                        &mut *__ast_path,
87042                    )
87043                };
87044                {
87045                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstructorType(
87046                        self::fields::TsConstructorTypeField::Params(usize::MAX),
87047                    ));
87048                    <Vec<TsFnParam> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87049                        params,
87050                        visitor,
87051                        &mut *__ast_path,
87052                    )
87053                };
87054                {
87055                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstructorType(
87056                        self::fields::TsConstructorTypeField::TypeParams,
87057                    ));
87058                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
87059                };
87060                {
87061                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstructorType(
87062                        self::fields::TsConstructorTypeField::TypeAnn,
87063                    ));
87064                    <Box<TsTypeAnn> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87065                        type_ann,
87066                        visitor,
87067                        &mut *__ast_path,
87068                    )
87069                };
87070            }
87071        }
87072    }
87073}
87074#[cfg(any(docsrs, feature = "path"))]
87075#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87076impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsEntityName {
87077    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_entity_name`] with `self`."]
87078    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87079        <V as VisitMutAstPath>::visit_mut_ts_entity_name(visitor, self, __ast_path)
87080    }
87081
87082    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87083        match self {
87084            TsEntityName::TsQualifiedName { 0: _field_0 } => {
87085                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEntityName(
87086                    self::fields::TsEntityNameField::TsQualifiedName,
87087                ));
87088                <Box<TsQualifiedName> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87089                    _field_0,
87090                    visitor,
87091                    &mut *__ast_path,
87092                );
87093            }
87094            TsEntityName::Ident { 0: _field_0 } => {
87095                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEntityName(
87096                    self::fields::TsEntityNameField::Ident,
87097                ));
87098                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87099                    _field_0,
87100                    visitor,
87101                    &mut *__ast_path,
87102                );
87103            }
87104        }
87105    }
87106}
87107#[cfg(any(docsrs, feature = "path"))]
87108#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87109impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsEnumDecl {
87110    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_enum_decl`] with `self`."]
87111    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87112        <V as VisitMutAstPath>::visit_mut_ts_enum_decl(visitor, self, __ast_path)
87113    }
87114
87115    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87116        match self {
87117            TsEnumDecl {
87118                span,
87119                declare,
87120                is_const,
87121                id,
87122                members,
87123            } => {
87124                {
87125                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumDecl(
87126                        self::fields::TsEnumDeclField::Span,
87127                    ));
87128                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87129                        span,
87130                        visitor,
87131                        &mut *__ast_path,
87132                    )
87133                };
87134                {
87135                    let mut __ast_path = __ast_path
87136                        .with_guard(AstParentKind::TsEnumDecl(self::fields::TsEnumDeclField::Id));
87137                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87138                        id,
87139                        visitor,
87140                        &mut *__ast_path,
87141                    )
87142                };
87143                {
87144                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumDecl(
87145                        self::fields::TsEnumDeclField::Members(usize::MAX),
87146                    ));
87147                    <Vec<TsEnumMember> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87148                        members,
87149                        visitor,
87150                        &mut *__ast_path,
87151                    )
87152                };
87153            }
87154        }
87155    }
87156}
87157#[cfg(any(docsrs, feature = "path"))]
87158#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87159impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsEnumMember {
87160    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_enum_member`] with `self`."]
87161    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87162        <V as VisitMutAstPath>::visit_mut_ts_enum_member(visitor, self, __ast_path)
87163    }
87164
87165    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87166        match self {
87167            TsEnumMember { span, id, init } => {
87168                {
87169                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMember(
87170                        self::fields::TsEnumMemberField::Span,
87171                    ));
87172                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87173                        span,
87174                        visitor,
87175                        &mut *__ast_path,
87176                    )
87177                };
87178                {
87179                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMember(
87180                        self::fields::TsEnumMemberField::Id,
87181                    ));
87182                    <TsEnumMemberId as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87183                        id,
87184                        visitor,
87185                        &mut *__ast_path,
87186                    )
87187                };
87188                {
87189                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMember(
87190                        self::fields::TsEnumMemberField::Init,
87191                    ));
87192                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87193                        init,
87194                        visitor,
87195                        &mut *__ast_path,
87196                    )
87197                };
87198            }
87199        }
87200    }
87201}
87202#[cfg(any(docsrs, feature = "path"))]
87203#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87204impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsEnumMemberId {
87205    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_enum_member_id`] with `self`."]
87206    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87207        <V as VisitMutAstPath>::visit_mut_ts_enum_member_id(visitor, self, __ast_path)
87208    }
87209
87210    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87211        match self {
87212            TsEnumMemberId::Ident { 0: _field_0 } => {
87213                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMemberId(
87214                    self::fields::TsEnumMemberIdField::Ident,
87215                ));
87216                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87217                    _field_0,
87218                    visitor,
87219                    &mut *__ast_path,
87220                );
87221            }
87222            TsEnumMemberId::Str { 0: _field_0 } => {
87223                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMemberId(
87224                    self::fields::TsEnumMemberIdField::Str,
87225                ));
87226                <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87227                    _field_0,
87228                    visitor,
87229                    &mut *__ast_path,
87230                );
87231            }
87232        }
87233    }
87234}
87235#[cfg(any(docsrs, feature = "path"))]
87236#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87237impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsExportAssignment {
87238    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_export_assignment`] with `self`."]
87239    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87240        <V as VisitMutAstPath>::visit_mut_ts_export_assignment(visitor, self, __ast_path)
87241    }
87242
87243    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87244        match self {
87245            TsExportAssignment { span, expr } => {
87246                {
87247                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExportAssignment(
87248                        self::fields::TsExportAssignmentField::Span,
87249                    ));
87250                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87251                        span,
87252                        visitor,
87253                        &mut *__ast_path,
87254                    )
87255                };
87256                {
87257                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExportAssignment(
87258                        self::fields::TsExportAssignmentField::Expr,
87259                    ));
87260                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87261                        expr,
87262                        visitor,
87263                        &mut *__ast_path,
87264                    )
87265                };
87266            }
87267        }
87268    }
87269}
87270#[cfg(any(docsrs, feature = "path"))]
87271#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87272impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsExprWithTypeArgs {
87273    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_expr_with_type_args`] with `self`."]
87274    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87275        <V as VisitMutAstPath>::visit_mut_ts_expr_with_type_args(visitor, self, __ast_path)
87276    }
87277
87278    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87279        match self {
87280            TsExprWithTypeArgs {
87281                span,
87282                expr,
87283                type_args,
87284            } => {
87285                {
87286                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExprWithTypeArgs(
87287                        self::fields::TsExprWithTypeArgsField::Span,
87288                    ));
87289                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87290                        span,
87291                        visitor,
87292                        &mut *__ast_path,
87293                    )
87294                };
87295                {
87296                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExprWithTypeArgs(
87297                        self::fields::TsExprWithTypeArgsField::Expr,
87298                    ));
87299                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87300                        expr,
87301                        visitor,
87302                        &mut *__ast_path,
87303                    )
87304                };
87305                {
87306                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExprWithTypeArgs(
87307                        self::fields::TsExprWithTypeArgsField::TypeArgs,
87308                    ));
87309                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_args , visitor , & mut * __ast_path)
87310                };
87311            }
87312        }
87313    }
87314}
87315#[cfg(any(docsrs, feature = "path"))]
87316#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87317impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsExternalModuleRef {
87318    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_external_module_ref`] with `self`."]
87319    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87320        <V as VisitMutAstPath>::visit_mut_ts_external_module_ref(visitor, self, __ast_path)
87321    }
87322
87323    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87324        match self {
87325            TsExternalModuleRef { span, expr } => {
87326                {
87327                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExternalModuleRef(
87328                        self::fields::TsExternalModuleRefField::Span,
87329                    ));
87330                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87331                        span,
87332                        visitor,
87333                        &mut *__ast_path,
87334                    )
87335                };
87336                {
87337                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExternalModuleRef(
87338                        self::fields::TsExternalModuleRefField::Expr,
87339                    ));
87340                    <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87341                        expr,
87342                        visitor,
87343                        &mut *__ast_path,
87344                    )
87345                };
87346            }
87347        }
87348    }
87349}
87350#[cfg(any(docsrs, feature = "path"))]
87351#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87352impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsFnOrConstructorType {
87353    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_fn_or_constructor_type`] with `self`."]
87354    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87355        <V as VisitMutAstPath>::visit_mut_ts_fn_or_constructor_type(visitor, self, __ast_path)
87356    }
87357
87358    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87359        match self {
87360            TsFnOrConstructorType::TsFnType { 0: _field_0 } => {
87361                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnOrConstructorType(
87362                    self::fields::TsFnOrConstructorTypeField::TsFnType,
87363                ));
87364                <TsFnType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87365                    _field_0,
87366                    visitor,
87367                    &mut *__ast_path,
87368                );
87369            }
87370            TsFnOrConstructorType::TsConstructorType { 0: _field_0 } => {
87371                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnOrConstructorType(
87372                    self::fields::TsFnOrConstructorTypeField::TsConstructorType,
87373                ));
87374                <TsConstructorType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87375                    _field_0,
87376                    visitor,
87377                    &mut *__ast_path,
87378                );
87379            }
87380        }
87381    }
87382}
87383#[cfg(any(docsrs, feature = "path"))]
87384#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87385impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsFnParam {
87386    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_fn_param`] with `self`."]
87387    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87388        <V as VisitMutAstPath>::visit_mut_ts_fn_param(visitor, self, __ast_path)
87389    }
87390
87391    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87392        match self {
87393            TsFnParam::Ident { 0: _field_0 } => {
87394                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnParam(
87395                    self::fields::TsFnParamField::Ident,
87396                ));
87397                <BindingIdent as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87398                    _field_0,
87399                    visitor,
87400                    &mut *__ast_path,
87401                );
87402            }
87403            TsFnParam::Array { 0: _field_0 } => {
87404                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnParam(
87405                    self::fields::TsFnParamField::Array,
87406                ));
87407                <ArrayPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87408                    _field_0,
87409                    visitor,
87410                    &mut *__ast_path,
87411                );
87412            }
87413            TsFnParam::Rest { 0: _field_0 } => {
87414                let mut __ast_path = __ast_path
87415                    .with_guard(AstParentKind::TsFnParam(self::fields::TsFnParamField::Rest));
87416                <RestPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87417                    _field_0,
87418                    visitor,
87419                    &mut *__ast_path,
87420                );
87421            }
87422            TsFnParam::Object { 0: _field_0 } => {
87423                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnParam(
87424                    self::fields::TsFnParamField::Object,
87425                ));
87426                <ObjectPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87427                    _field_0,
87428                    visitor,
87429                    &mut *__ast_path,
87430                );
87431            }
87432        }
87433    }
87434}
87435#[cfg(any(docsrs, feature = "path"))]
87436#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87437impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsFnType {
87438    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_fn_type`] with `self`."]
87439    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87440        <V as VisitMutAstPath>::visit_mut_ts_fn_type(visitor, self, __ast_path)
87441    }
87442
87443    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87444        match self {
87445            TsFnType {
87446                span,
87447                params,
87448                type_params,
87449                type_ann,
87450            } => {
87451                {
87452                    let mut __ast_path = __ast_path
87453                        .with_guard(AstParentKind::TsFnType(self::fields::TsFnTypeField::Span));
87454                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87455                        span,
87456                        visitor,
87457                        &mut *__ast_path,
87458                    )
87459                };
87460                {
87461                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnType(
87462                        self::fields::TsFnTypeField::Params(usize::MAX),
87463                    ));
87464                    <Vec<TsFnParam> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87465                        params,
87466                        visitor,
87467                        &mut *__ast_path,
87468                    )
87469                };
87470                {
87471                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnType(
87472                        self::fields::TsFnTypeField::TypeParams,
87473                    ));
87474                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
87475                };
87476                {
87477                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnType(
87478                        self::fields::TsFnTypeField::TypeAnn,
87479                    ));
87480                    <Box<TsTypeAnn> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87481                        type_ann,
87482                        visitor,
87483                        &mut *__ast_path,
87484                    )
87485                };
87486            }
87487        }
87488    }
87489}
87490#[cfg(any(docsrs, feature = "path"))]
87491#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87492impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsGetterSignature {
87493    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_getter_signature`] with `self`."]
87494    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87495        <V as VisitMutAstPath>::visit_mut_ts_getter_signature(visitor, self, __ast_path)
87496    }
87497
87498    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87499        match self {
87500            TsGetterSignature {
87501                span,
87502                key,
87503                computed,
87504                type_ann,
87505            } => {
87506                {
87507                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsGetterSignature(
87508                        self::fields::TsGetterSignatureField::Span,
87509                    ));
87510                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87511                        span,
87512                        visitor,
87513                        &mut *__ast_path,
87514                    )
87515                };
87516                {
87517                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsGetterSignature(
87518                        self::fields::TsGetterSignatureField::Key,
87519                    ));
87520                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87521                        key,
87522                        visitor,
87523                        &mut *__ast_path,
87524                    )
87525                };
87526                {
87527                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsGetterSignature(
87528                        self::fields::TsGetterSignatureField::TypeAnn,
87529                    ));
87530                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87531                        type_ann,
87532                        visitor,
87533                        &mut *__ast_path,
87534                    )
87535                };
87536            }
87537        }
87538    }
87539}
87540#[cfg(any(docsrs, feature = "path"))]
87541#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87542impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsImportCallOptions {
87543    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_import_call_options`] with `self`."]
87544    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87545        <V as VisitMutAstPath>::visit_mut_ts_import_call_options(visitor, self, __ast_path)
87546    }
87547
87548    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87549        match self {
87550            TsImportCallOptions { span, with } => {
87551                {
87552                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportCallOptions(
87553                        self::fields::TsImportCallOptionsField::Span,
87554                    ));
87555                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87556                        span,
87557                        visitor,
87558                        &mut *__ast_path,
87559                    )
87560                };
87561                {
87562                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportCallOptions(
87563                        self::fields::TsImportCallOptionsField::With,
87564                    ));
87565                    <Box<ObjectLit> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87566                        with,
87567                        visitor,
87568                        &mut *__ast_path,
87569                    )
87570                };
87571            }
87572        }
87573    }
87574}
87575#[cfg(any(docsrs, feature = "path"))]
87576#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87577impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsImportEqualsDecl {
87578    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_import_equals_decl`] with `self`."]
87579    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87580        <V as VisitMutAstPath>::visit_mut_ts_import_equals_decl(visitor, self, __ast_path)
87581    }
87582
87583    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87584        match self {
87585            TsImportEqualsDecl {
87586                span,
87587                is_export,
87588                is_type_only,
87589                id,
87590                module_ref,
87591            } => {
87592                {
87593                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportEqualsDecl(
87594                        self::fields::TsImportEqualsDeclField::Span,
87595                    ));
87596                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87597                        span,
87598                        visitor,
87599                        &mut *__ast_path,
87600                    )
87601                };
87602                {
87603                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportEqualsDecl(
87604                        self::fields::TsImportEqualsDeclField::Id,
87605                    ));
87606                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87607                        id,
87608                        visitor,
87609                        &mut *__ast_path,
87610                    )
87611                };
87612                {
87613                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportEqualsDecl(
87614                        self::fields::TsImportEqualsDeclField::ModuleRef,
87615                    ));
87616                    <TsModuleRef as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87617                        module_ref,
87618                        visitor,
87619                        &mut *__ast_path,
87620                    )
87621                };
87622            }
87623        }
87624    }
87625}
87626#[cfg(any(docsrs, feature = "path"))]
87627#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87628impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsImportType {
87629    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_import_type`] with `self`."]
87630    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87631        <V as VisitMutAstPath>::visit_mut_ts_import_type(visitor, self, __ast_path)
87632    }
87633
87634    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87635        match self {
87636            TsImportType {
87637                span,
87638                arg,
87639                qualifier,
87640                type_args,
87641                attributes,
87642            } => {
87643                {
87644                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
87645                        self::fields::TsImportTypeField::Span,
87646                    ));
87647                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87648                        span,
87649                        visitor,
87650                        &mut *__ast_path,
87651                    )
87652                };
87653                {
87654                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
87655                        self::fields::TsImportTypeField::Arg,
87656                    ));
87657                    <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87658                        arg,
87659                        visitor,
87660                        &mut *__ast_path,
87661                    )
87662                };
87663                {
87664                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
87665                        self::fields::TsImportTypeField::Qualifier,
87666                    ));
87667                    <Option<TsEntityName> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87668                        qualifier,
87669                        visitor,
87670                        &mut *__ast_path,
87671                    )
87672                };
87673                {
87674                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
87675                        self::fields::TsImportTypeField::TypeArgs,
87676                    ));
87677                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_args , visitor , & mut * __ast_path)
87678                };
87679                {
87680                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
87681                        self::fields::TsImportTypeField::Attributes,
87682                    ));
87683                    <Option<TsImportCallOptions> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87684                        attributes,
87685                        visitor,
87686                        &mut *__ast_path,
87687                    )
87688                };
87689            }
87690        }
87691    }
87692}
87693#[cfg(any(docsrs, feature = "path"))]
87694#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87695impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsIndexSignature {
87696    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_index_signature`] with `self`."]
87697    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87698        <V as VisitMutAstPath>::visit_mut_ts_index_signature(visitor, self, __ast_path)
87699    }
87700
87701    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87702        match self {
87703            TsIndexSignature {
87704                params,
87705                type_ann,
87706                readonly,
87707                is_static,
87708                span,
87709            } => {
87710                {
87711                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexSignature(
87712                        self::fields::TsIndexSignatureField::Params(usize::MAX),
87713                    ));
87714                    <Vec<TsFnParam> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87715                        params,
87716                        visitor,
87717                        &mut *__ast_path,
87718                    )
87719                };
87720                {
87721                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexSignature(
87722                        self::fields::TsIndexSignatureField::TypeAnn,
87723                    ));
87724                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87725                        type_ann,
87726                        visitor,
87727                        &mut *__ast_path,
87728                    )
87729                };
87730                {
87731                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexSignature(
87732                        self::fields::TsIndexSignatureField::Span,
87733                    ));
87734                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87735                        span,
87736                        visitor,
87737                        &mut *__ast_path,
87738                    )
87739                };
87740            }
87741        }
87742    }
87743}
87744#[cfg(any(docsrs, feature = "path"))]
87745#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87746impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsIndexedAccessType {
87747    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_indexed_access_type`] with `self`."]
87748    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87749        <V as VisitMutAstPath>::visit_mut_ts_indexed_access_type(visitor, self, __ast_path)
87750    }
87751
87752    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87753        match self {
87754            TsIndexedAccessType {
87755                span,
87756                readonly,
87757                obj_type,
87758                index_type,
87759            } => {
87760                {
87761                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexedAccessType(
87762                        self::fields::TsIndexedAccessTypeField::Span,
87763                    ));
87764                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87765                        span,
87766                        visitor,
87767                        &mut *__ast_path,
87768                    )
87769                };
87770                {
87771                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexedAccessType(
87772                        self::fields::TsIndexedAccessTypeField::ObjType,
87773                    ));
87774                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87775                        obj_type,
87776                        visitor,
87777                        &mut *__ast_path,
87778                    )
87779                };
87780                {
87781                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexedAccessType(
87782                        self::fields::TsIndexedAccessTypeField::IndexType,
87783                    ));
87784                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87785                        index_type,
87786                        visitor,
87787                        &mut *__ast_path,
87788                    )
87789                };
87790            }
87791        }
87792    }
87793}
87794#[cfg(any(docsrs, feature = "path"))]
87795#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87796impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsInferType {
87797    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_infer_type`] with `self`."]
87798    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87799        <V as VisitMutAstPath>::visit_mut_ts_infer_type(visitor, self, __ast_path)
87800    }
87801
87802    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87803        match self {
87804            TsInferType { span, type_param } => {
87805                {
87806                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInferType(
87807                        self::fields::TsInferTypeField::Span,
87808                    ));
87809                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87810                        span,
87811                        visitor,
87812                        &mut *__ast_path,
87813                    )
87814                };
87815                {
87816                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInferType(
87817                        self::fields::TsInferTypeField::TypeParam,
87818                    ));
87819                    <TsTypeParam as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87820                        type_param,
87821                        visitor,
87822                        &mut *__ast_path,
87823                    )
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 TsInstantiation {
87832    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_instantiation`] 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_instantiation(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            TsInstantiation {
87840                span,
87841                expr,
87842                type_args,
87843            } => {
87844                {
87845                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInstantiation(
87846                        self::fields::TsInstantiationField::Span,
87847                    ));
87848                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87849                        span,
87850                        visitor,
87851                        &mut *__ast_path,
87852                    )
87853                };
87854                {
87855                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInstantiation(
87856                        self::fields::TsInstantiationField::Expr,
87857                    ));
87858                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87859                        expr,
87860                        visitor,
87861                        &mut *__ast_path,
87862                    )
87863                };
87864                {
87865                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInstantiation(
87866                        self::fields::TsInstantiationField::TypeArgs,
87867                    ));
87868                    < Box < TsTypeParamInstantiation > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_args , visitor , & mut * __ast_path)
87869                };
87870            }
87871        }
87872    }
87873}
87874#[cfg(any(docsrs, feature = "path"))]
87875#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87876impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsInterfaceBody {
87877    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_interface_body`] with `self`."]
87878    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87879        <V as VisitMutAstPath>::visit_mut_ts_interface_body(visitor, self, __ast_path)
87880    }
87881
87882    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87883        match self {
87884            TsInterfaceBody { span, body } => {
87885                {
87886                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceBody(
87887                        self::fields::TsInterfaceBodyField::Span,
87888                    ));
87889                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87890                        span,
87891                        visitor,
87892                        &mut *__ast_path,
87893                    )
87894                };
87895                {
87896                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceBody(
87897                        self::fields::TsInterfaceBodyField::Body(usize::MAX),
87898                    ));
87899                    <Vec<TsTypeElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87900                        body,
87901                        visitor,
87902                        &mut *__ast_path,
87903                    )
87904                };
87905            }
87906        }
87907    }
87908}
87909#[cfg(any(docsrs, feature = "path"))]
87910#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87911impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsInterfaceDecl {
87912    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_interface_decl`] with `self`."]
87913    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87914        <V as VisitMutAstPath>::visit_mut_ts_interface_decl(visitor, self, __ast_path)
87915    }
87916
87917    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87918        match self {
87919            TsInterfaceDecl {
87920                span,
87921                id,
87922                declare,
87923                type_params,
87924                extends,
87925                body,
87926            } => {
87927                {
87928                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
87929                        self::fields::TsInterfaceDeclField::Span,
87930                    ));
87931                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87932                        span,
87933                        visitor,
87934                        &mut *__ast_path,
87935                    )
87936                };
87937                {
87938                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
87939                        self::fields::TsInterfaceDeclField::Id,
87940                    ));
87941                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87942                        id,
87943                        visitor,
87944                        &mut *__ast_path,
87945                    )
87946                };
87947                {
87948                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
87949                        self::fields::TsInterfaceDeclField::TypeParams,
87950                    ));
87951                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
87952                };
87953                {
87954                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
87955                        self::fields::TsInterfaceDeclField::Extends(usize::MAX),
87956                    ));
87957                    <Vec<TsExprWithTypeArgs> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87958                        extends,
87959                        visitor,
87960                        &mut *__ast_path,
87961                    )
87962                };
87963                {
87964                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
87965                        self::fields::TsInterfaceDeclField::Body,
87966                    ));
87967                    <TsInterfaceBody as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87968                        body,
87969                        visitor,
87970                        &mut *__ast_path,
87971                    )
87972                };
87973            }
87974        }
87975    }
87976}
87977#[cfg(any(docsrs, feature = "path"))]
87978#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87979impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsIntersectionType {
87980    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_intersection_type`] with `self`."]
87981    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87982        <V as VisitMutAstPath>::visit_mut_ts_intersection_type(visitor, self, __ast_path)
87983    }
87984
87985    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87986        match self {
87987            TsIntersectionType { span, types } => {
87988                {
87989                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIntersectionType(
87990                        self::fields::TsIntersectionTypeField::Span,
87991                    ));
87992                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87993                        span,
87994                        visitor,
87995                        &mut *__ast_path,
87996                    )
87997                };
87998                {
87999                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIntersectionType(
88000                        self::fields::TsIntersectionTypeField::Types(usize::MAX),
88001                    ));
88002                    <Vec<Box<TsType>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88003                        types,
88004                        visitor,
88005                        &mut *__ast_path,
88006                    )
88007                };
88008            }
88009        }
88010    }
88011}
88012#[cfg(any(docsrs, feature = "path"))]
88013#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88014impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsKeywordType {
88015    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_keyword_type`] with `self`."]
88016    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88017        <V as VisitMutAstPath>::visit_mut_ts_keyword_type(visitor, self, __ast_path)
88018    }
88019
88020    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88021        match self {
88022            TsKeywordType { span, kind } => {
88023                {
88024                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsKeywordType(
88025                        self::fields::TsKeywordTypeField::Span,
88026                    ));
88027                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88028                        span,
88029                        visitor,
88030                        &mut *__ast_path,
88031                    )
88032                };
88033                {
88034                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsKeywordType(
88035                        self::fields::TsKeywordTypeField::Kind,
88036                    ));
88037                    <TsKeywordTypeKind as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88038                        kind,
88039                        visitor,
88040                        &mut *__ast_path,
88041                    )
88042                };
88043            }
88044        }
88045    }
88046}
88047#[cfg(any(docsrs, feature = "path"))]
88048#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88049impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsKeywordTypeKind {
88050    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_keyword_type_kind`] with `self`."]
88051    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88052        <V as VisitMutAstPath>::visit_mut_ts_keyword_type_kind(visitor, self, __ast_path)
88053    }
88054
88055    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88056        match self {
88057            TsKeywordTypeKind::TsAnyKeyword => {}
88058            TsKeywordTypeKind::TsUnknownKeyword => {}
88059            TsKeywordTypeKind::TsNumberKeyword => {}
88060            TsKeywordTypeKind::TsObjectKeyword => {}
88061            TsKeywordTypeKind::TsBooleanKeyword => {}
88062            TsKeywordTypeKind::TsBigIntKeyword => {}
88063            TsKeywordTypeKind::TsStringKeyword => {}
88064            TsKeywordTypeKind::TsSymbolKeyword => {}
88065            TsKeywordTypeKind::TsVoidKeyword => {}
88066            TsKeywordTypeKind::TsUndefinedKeyword => {}
88067            TsKeywordTypeKind::TsNullKeyword => {}
88068            TsKeywordTypeKind::TsNeverKeyword => {}
88069            TsKeywordTypeKind::TsIntrinsicKeyword => {}
88070        }
88071    }
88072}
88073#[cfg(any(docsrs, feature = "path"))]
88074#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88075impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsLit {
88076    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_lit`] with `self`."]
88077    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88078        <V as VisitMutAstPath>::visit_mut_ts_lit(visitor, self, __ast_path)
88079    }
88080
88081    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88082        match self {
88083            TsLit::Number { 0: _field_0 } => {
88084                let mut __ast_path =
88085                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::Number));
88086                <Number as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88087                    _field_0,
88088                    visitor,
88089                    &mut *__ast_path,
88090                );
88091            }
88092            TsLit::Str { 0: _field_0 } => {
88093                let mut __ast_path =
88094                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::Str));
88095                <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88096                    _field_0,
88097                    visitor,
88098                    &mut *__ast_path,
88099                );
88100            }
88101            TsLit::Bool { 0: _field_0 } => {
88102                let mut __ast_path =
88103                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::Bool));
88104                <Bool as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88105                    _field_0,
88106                    visitor,
88107                    &mut *__ast_path,
88108                );
88109            }
88110            TsLit::BigInt { 0: _field_0 } => {
88111                let mut __ast_path =
88112                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::BigInt));
88113                <BigInt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88114                    _field_0,
88115                    visitor,
88116                    &mut *__ast_path,
88117                );
88118            }
88119            TsLit::Tpl { 0: _field_0 } => {
88120                let mut __ast_path =
88121                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::Tpl));
88122                <TsTplLitType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88123                    _field_0,
88124                    visitor,
88125                    &mut *__ast_path,
88126                );
88127            }
88128        }
88129    }
88130}
88131#[cfg(any(docsrs, feature = "path"))]
88132#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88133impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsLitType {
88134    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_lit_type`] with `self`."]
88135    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88136        <V as VisitMutAstPath>::visit_mut_ts_lit_type(visitor, self, __ast_path)
88137    }
88138
88139    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88140        match self {
88141            TsLitType { span, lit } => {
88142                {
88143                    let mut __ast_path = __ast_path
88144                        .with_guard(AstParentKind::TsLitType(self::fields::TsLitTypeField::Span));
88145                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88146                        span,
88147                        visitor,
88148                        &mut *__ast_path,
88149                    )
88150                };
88151                {
88152                    let mut __ast_path = __ast_path
88153                        .with_guard(AstParentKind::TsLitType(self::fields::TsLitTypeField::Lit));
88154                    <TsLit as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88155                        lit,
88156                        visitor,
88157                        &mut *__ast_path,
88158                    )
88159                };
88160            }
88161        }
88162    }
88163}
88164#[cfg(any(docsrs, feature = "path"))]
88165#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88166impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsMappedType {
88167    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_mapped_type`] with `self`."]
88168    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88169        <V as VisitMutAstPath>::visit_mut_ts_mapped_type(visitor, self, __ast_path)
88170    }
88171
88172    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88173        match self {
88174            TsMappedType {
88175                span,
88176                readonly,
88177                type_param,
88178                name_type,
88179                optional,
88180                type_ann,
88181            } => {
88182                {
88183                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
88184                        self::fields::TsMappedTypeField::Span,
88185                    ));
88186                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88187                        span,
88188                        visitor,
88189                        &mut *__ast_path,
88190                    )
88191                };
88192                {
88193                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
88194                        self::fields::TsMappedTypeField::Readonly,
88195                    ));
88196                    <Option<TruePlusMinus> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88197                        readonly,
88198                        visitor,
88199                        &mut *__ast_path,
88200                    )
88201                };
88202                {
88203                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
88204                        self::fields::TsMappedTypeField::TypeParam,
88205                    ));
88206                    <TsTypeParam as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88207                        type_param,
88208                        visitor,
88209                        &mut *__ast_path,
88210                    )
88211                };
88212                {
88213                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
88214                        self::fields::TsMappedTypeField::NameType,
88215                    ));
88216                    <Option<Box<TsType>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88217                        name_type,
88218                        visitor,
88219                        &mut *__ast_path,
88220                    )
88221                };
88222                {
88223                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
88224                        self::fields::TsMappedTypeField::Optional,
88225                    ));
88226                    <Option<TruePlusMinus> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88227                        optional,
88228                        visitor,
88229                        &mut *__ast_path,
88230                    )
88231                };
88232                {
88233                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
88234                        self::fields::TsMappedTypeField::TypeAnn,
88235                    ));
88236                    <Option<Box<TsType>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88237                        type_ann,
88238                        visitor,
88239                        &mut *__ast_path,
88240                    )
88241                };
88242            }
88243        }
88244    }
88245}
88246#[cfg(any(docsrs, feature = "path"))]
88247#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88248impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsMethodSignature {
88249    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_method_signature`] with `self`."]
88250    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88251        <V as VisitMutAstPath>::visit_mut_ts_method_signature(visitor, self, __ast_path)
88252    }
88253
88254    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88255        match self {
88256            TsMethodSignature {
88257                span,
88258                key,
88259                computed,
88260                optional,
88261                params,
88262                type_ann,
88263                type_params,
88264            } => {
88265                {
88266                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
88267                        self::fields::TsMethodSignatureField::Span,
88268                    ));
88269                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88270                        span,
88271                        visitor,
88272                        &mut *__ast_path,
88273                    )
88274                };
88275                {
88276                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
88277                        self::fields::TsMethodSignatureField::Key,
88278                    ));
88279                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88280                        key,
88281                        visitor,
88282                        &mut *__ast_path,
88283                    )
88284                };
88285                {
88286                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
88287                        self::fields::TsMethodSignatureField::Params(usize::MAX),
88288                    ));
88289                    <Vec<TsFnParam> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88290                        params,
88291                        visitor,
88292                        &mut *__ast_path,
88293                    )
88294                };
88295                {
88296                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
88297                        self::fields::TsMethodSignatureField::TypeAnn,
88298                    ));
88299                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88300                        type_ann,
88301                        visitor,
88302                        &mut *__ast_path,
88303                    )
88304                };
88305                {
88306                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
88307                        self::fields::TsMethodSignatureField::TypeParams,
88308                    ));
88309                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
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 TsModuleBlock {
88318    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_module_block`] 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_module_block(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            TsModuleBlock { span, body } => {
88326                {
88327                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleBlock(
88328                        self::fields::TsModuleBlockField::Span,
88329                    ));
88330                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88331                        span,
88332                        visitor,
88333                        &mut *__ast_path,
88334                    )
88335                };
88336                {
88337                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleBlock(
88338                        self::fields::TsModuleBlockField::Body(usize::MAX),
88339                    ));
88340                    <Vec<ModuleItem> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88341                        body,
88342                        visitor,
88343                        &mut *__ast_path,
88344                    )
88345                };
88346            }
88347        }
88348    }
88349}
88350#[cfg(any(docsrs, feature = "path"))]
88351#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88352impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsModuleDecl {
88353    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_module_decl`] with `self`."]
88354    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88355        <V as VisitMutAstPath>::visit_mut_ts_module_decl(visitor, self, __ast_path)
88356    }
88357
88358    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88359        match self {
88360            TsModuleDecl {
88361                span,
88362                declare,
88363                global,
88364                namespace,
88365                id,
88366                body,
88367            } => {
88368                {
88369                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleDecl(
88370                        self::fields::TsModuleDeclField::Span,
88371                    ));
88372                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88373                        span,
88374                        visitor,
88375                        &mut *__ast_path,
88376                    )
88377                };
88378                {
88379                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleDecl(
88380                        self::fields::TsModuleDeclField::Id,
88381                    ));
88382                    <TsModuleName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88383                        id,
88384                        visitor,
88385                        &mut *__ast_path,
88386                    )
88387                };
88388                {
88389                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleDecl(
88390                        self::fields::TsModuleDeclField::Body,
88391                    ));
88392                    <Option<TsNamespaceBody> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88393                        body,
88394                        visitor,
88395                        &mut *__ast_path,
88396                    )
88397                };
88398            }
88399        }
88400    }
88401}
88402#[cfg(any(docsrs, feature = "path"))]
88403#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88404impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsModuleName {
88405    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_module_name`] with `self`."]
88406    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88407        <V as VisitMutAstPath>::visit_mut_ts_module_name(visitor, self, __ast_path)
88408    }
88409
88410    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88411        match self {
88412            TsModuleName::Ident { 0: _field_0 } => {
88413                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleName(
88414                    self::fields::TsModuleNameField::Ident,
88415                ));
88416                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88417                    _field_0,
88418                    visitor,
88419                    &mut *__ast_path,
88420                );
88421            }
88422            TsModuleName::Str { 0: _field_0 } => {
88423                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleName(
88424                    self::fields::TsModuleNameField::Str,
88425                ));
88426                <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88427                    _field_0,
88428                    visitor,
88429                    &mut *__ast_path,
88430                );
88431            }
88432        }
88433    }
88434}
88435#[cfg(any(docsrs, feature = "path"))]
88436#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88437impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsModuleRef {
88438    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_module_ref`] with `self`."]
88439    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88440        <V as VisitMutAstPath>::visit_mut_ts_module_ref(visitor, self, __ast_path)
88441    }
88442
88443    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88444        match self {
88445            TsModuleRef::TsEntityName { 0: _field_0 } => {
88446                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleRef(
88447                    self::fields::TsModuleRefField::TsEntityName,
88448                ));
88449                <TsEntityName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88450                    _field_0,
88451                    visitor,
88452                    &mut *__ast_path,
88453                );
88454            }
88455            TsModuleRef::TsExternalModuleRef { 0: _field_0 } => {
88456                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleRef(
88457                    self::fields::TsModuleRefField::TsExternalModuleRef,
88458                ));
88459                <TsExternalModuleRef as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88460                    _field_0,
88461                    visitor,
88462                    &mut *__ast_path,
88463                );
88464            }
88465        }
88466    }
88467}
88468#[cfg(any(docsrs, feature = "path"))]
88469#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88470impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsNamespaceBody {
88471    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_namespace_body`] with `self`."]
88472    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88473        <V as VisitMutAstPath>::visit_mut_ts_namespace_body(visitor, self, __ast_path)
88474    }
88475
88476    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88477        match self {
88478            TsNamespaceBody::TsModuleBlock { 0: _field_0 } => {
88479                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceBody(
88480                    self::fields::TsNamespaceBodyField::TsModuleBlock,
88481                ));
88482                <TsModuleBlock as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88483                    _field_0,
88484                    visitor,
88485                    &mut *__ast_path,
88486                );
88487            }
88488            TsNamespaceBody::TsNamespaceDecl { 0: _field_0 } => {
88489                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceBody(
88490                    self::fields::TsNamespaceBodyField::TsNamespaceDecl,
88491                ));
88492                <TsNamespaceDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88493                    _field_0,
88494                    visitor,
88495                    &mut *__ast_path,
88496                );
88497            }
88498        }
88499    }
88500}
88501#[cfg(any(docsrs, feature = "path"))]
88502#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88503impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsNamespaceDecl {
88504    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_namespace_decl`] with `self`."]
88505    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88506        <V as VisitMutAstPath>::visit_mut_ts_namespace_decl(visitor, self, __ast_path)
88507    }
88508
88509    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88510        match self {
88511            TsNamespaceDecl {
88512                span,
88513                declare,
88514                global,
88515                id,
88516                body,
88517            } => {
88518                {
88519                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceDecl(
88520                        self::fields::TsNamespaceDeclField::Span,
88521                    ));
88522                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88523                        span,
88524                        visitor,
88525                        &mut *__ast_path,
88526                    )
88527                };
88528                {
88529                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceDecl(
88530                        self::fields::TsNamespaceDeclField::Id,
88531                    ));
88532                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88533                        id,
88534                        visitor,
88535                        &mut *__ast_path,
88536                    )
88537                };
88538                {
88539                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceDecl(
88540                        self::fields::TsNamespaceDeclField::Body,
88541                    ));
88542                    <Box<TsNamespaceBody> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88543                        body,
88544                        visitor,
88545                        &mut *__ast_path,
88546                    )
88547                };
88548            }
88549        }
88550    }
88551}
88552#[cfg(any(docsrs, feature = "path"))]
88553#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88554impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsNamespaceExportDecl {
88555    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_namespace_export_decl`] with `self`."]
88556    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88557        <V as VisitMutAstPath>::visit_mut_ts_namespace_export_decl(visitor, self, __ast_path)
88558    }
88559
88560    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88561        match self {
88562            TsNamespaceExportDecl { span, id } => {
88563                {
88564                    let mut __ast_path =
88565                        __ast_path.with_guard(AstParentKind::TsNamespaceExportDecl(
88566                            self::fields::TsNamespaceExportDeclField::Span,
88567                        ));
88568                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88569                        span,
88570                        visitor,
88571                        &mut *__ast_path,
88572                    )
88573                };
88574                {
88575                    let mut __ast_path =
88576                        __ast_path.with_guard(AstParentKind::TsNamespaceExportDecl(
88577                            self::fields::TsNamespaceExportDeclField::Id,
88578                        ));
88579                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88580                        id,
88581                        visitor,
88582                        &mut *__ast_path,
88583                    )
88584                };
88585            }
88586        }
88587    }
88588}
88589#[cfg(any(docsrs, feature = "path"))]
88590#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88591impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsNonNullExpr {
88592    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_non_null_expr`] with `self`."]
88593    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88594        <V as VisitMutAstPath>::visit_mut_ts_non_null_expr(visitor, self, __ast_path)
88595    }
88596
88597    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88598        match self {
88599            TsNonNullExpr { span, expr } => {
88600                {
88601                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNonNullExpr(
88602                        self::fields::TsNonNullExprField::Span,
88603                    ));
88604                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88605                        span,
88606                        visitor,
88607                        &mut *__ast_path,
88608                    )
88609                };
88610                {
88611                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNonNullExpr(
88612                        self::fields::TsNonNullExprField::Expr,
88613                    ));
88614                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88615                        expr,
88616                        visitor,
88617                        &mut *__ast_path,
88618                    )
88619                };
88620            }
88621        }
88622    }
88623}
88624#[cfg(any(docsrs, feature = "path"))]
88625#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88626impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsOptionalType {
88627    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_optional_type`] with `self`."]
88628    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88629        <V as VisitMutAstPath>::visit_mut_ts_optional_type(visitor, self, __ast_path)
88630    }
88631
88632    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88633        match self {
88634            TsOptionalType { span, type_ann } => {
88635                {
88636                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsOptionalType(
88637                        self::fields::TsOptionalTypeField::Span,
88638                    ));
88639                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88640                        span,
88641                        visitor,
88642                        &mut *__ast_path,
88643                    )
88644                };
88645                {
88646                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsOptionalType(
88647                        self::fields::TsOptionalTypeField::TypeAnn,
88648                    ));
88649                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88650                        type_ann,
88651                        visitor,
88652                        &mut *__ast_path,
88653                    )
88654                };
88655            }
88656        }
88657    }
88658}
88659#[cfg(any(docsrs, feature = "path"))]
88660#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88661impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsParamProp {
88662    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_param_prop`] with `self`."]
88663    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88664        <V as VisitMutAstPath>::visit_mut_ts_param_prop(visitor, self, __ast_path)
88665    }
88666
88667    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88668        match self {
88669            TsParamProp {
88670                span,
88671                decorators,
88672                accessibility,
88673                is_override,
88674                readonly,
88675                param,
88676            } => {
88677                {
88678                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamProp(
88679                        self::fields::TsParamPropField::Span,
88680                    ));
88681                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88682                        span,
88683                        visitor,
88684                        &mut *__ast_path,
88685                    )
88686                };
88687                {
88688                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamProp(
88689                        self::fields::TsParamPropField::Decorators(usize::MAX),
88690                    ));
88691                    <Vec<Decorator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88692                        decorators,
88693                        visitor,
88694                        &mut *__ast_path,
88695                    )
88696                };
88697                {
88698                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamProp(
88699                        self::fields::TsParamPropField::Accessibility,
88700                    ));
88701                    <Option<Accessibility> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88702                        accessibility,
88703                        visitor,
88704                        &mut *__ast_path,
88705                    )
88706                };
88707                {
88708                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamProp(
88709                        self::fields::TsParamPropField::Param,
88710                    ));
88711                    <TsParamPropParam as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88712                        param,
88713                        visitor,
88714                        &mut *__ast_path,
88715                    )
88716                };
88717            }
88718        }
88719    }
88720}
88721#[cfg(any(docsrs, feature = "path"))]
88722#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88723impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsParamPropParam {
88724    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_param_prop_param`] with `self`."]
88725    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88726        <V as VisitMutAstPath>::visit_mut_ts_param_prop_param(visitor, self, __ast_path)
88727    }
88728
88729    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88730        match self {
88731            TsParamPropParam::Ident { 0: _field_0 } => {
88732                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamPropParam(
88733                    self::fields::TsParamPropParamField::Ident,
88734                ));
88735                <BindingIdent as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88736                    _field_0,
88737                    visitor,
88738                    &mut *__ast_path,
88739                );
88740            }
88741            TsParamPropParam::Assign { 0: _field_0 } => {
88742                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamPropParam(
88743                    self::fields::TsParamPropParamField::Assign,
88744                ));
88745                <AssignPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88746                    _field_0,
88747                    visitor,
88748                    &mut *__ast_path,
88749                );
88750            }
88751        }
88752    }
88753}
88754#[cfg(any(docsrs, feature = "path"))]
88755#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88756impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsParenthesizedType {
88757    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_parenthesized_type`] with `self`."]
88758    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88759        <V as VisitMutAstPath>::visit_mut_ts_parenthesized_type(visitor, self, __ast_path)
88760    }
88761
88762    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88763        match self {
88764            TsParenthesizedType { span, type_ann } => {
88765                {
88766                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParenthesizedType(
88767                        self::fields::TsParenthesizedTypeField::Span,
88768                    ));
88769                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88770                        span,
88771                        visitor,
88772                        &mut *__ast_path,
88773                    )
88774                };
88775                {
88776                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParenthesizedType(
88777                        self::fields::TsParenthesizedTypeField::TypeAnn,
88778                    ));
88779                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88780                        type_ann,
88781                        visitor,
88782                        &mut *__ast_path,
88783                    )
88784                };
88785            }
88786        }
88787    }
88788}
88789#[cfg(any(docsrs, feature = "path"))]
88790#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88791impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsPropertySignature {
88792    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_property_signature`] with `self`."]
88793    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88794        <V as VisitMutAstPath>::visit_mut_ts_property_signature(visitor, self, __ast_path)
88795    }
88796
88797    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88798        match self {
88799            TsPropertySignature {
88800                span,
88801                readonly,
88802                key,
88803                computed,
88804                optional,
88805                type_ann,
88806            } => {
88807                {
88808                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsPropertySignature(
88809                        self::fields::TsPropertySignatureField::Span,
88810                    ));
88811                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88812                        span,
88813                        visitor,
88814                        &mut *__ast_path,
88815                    )
88816                };
88817                {
88818                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsPropertySignature(
88819                        self::fields::TsPropertySignatureField::Key,
88820                    ));
88821                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88822                        key,
88823                        visitor,
88824                        &mut *__ast_path,
88825                    )
88826                };
88827                {
88828                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsPropertySignature(
88829                        self::fields::TsPropertySignatureField::TypeAnn,
88830                    ));
88831                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88832                        type_ann,
88833                        visitor,
88834                        &mut *__ast_path,
88835                    )
88836                };
88837            }
88838        }
88839    }
88840}
88841#[cfg(any(docsrs, feature = "path"))]
88842#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88843impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsQualifiedName {
88844    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_qualified_name`] with `self`."]
88845    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88846        <V as VisitMutAstPath>::visit_mut_ts_qualified_name(visitor, self, __ast_path)
88847    }
88848
88849    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88850        match self {
88851            TsQualifiedName { span, left, right } => {
88852                {
88853                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsQualifiedName(
88854                        self::fields::TsQualifiedNameField::Span,
88855                    ));
88856                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88857                        span,
88858                        visitor,
88859                        &mut *__ast_path,
88860                    )
88861                };
88862                {
88863                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsQualifiedName(
88864                        self::fields::TsQualifiedNameField::Left,
88865                    ));
88866                    <TsEntityName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88867                        left,
88868                        visitor,
88869                        &mut *__ast_path,
88870                    )
88871                };
88872                {
88873                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsQualifiedName(
88874                        self::fields::TsQualifiedNameField::Right,
88875                    ));
88876                    <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88877                        right,
88878                        visitor,
88879                        &mut *__ast_path,
88880                    )
88881                };
88882            }
88883        }
88884    }
88885}
88886#[cfg(any(docsrs, feature = "path"))]
88887#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88888impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsRestType {
88889    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_rest_type`] with `self`."]
88890    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88891        <V as VisitMutAstPath>::visit_mut_ts_rest_type(visitor, self, __ast_path)
88892    }
88893
88894    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88895        match self {
88896            TsRestType { span, type_ann } => {
88897                {
88898                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsRestType(
88899                        self::fields::TsRestTypeField::Span,
88900                    ));
88901                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88902                        span,
88903                        visitor,
88904                        &mut *__ast_path,
88905                    )
88906                };
88907                {
88908                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsRestType(
88909                        self::fields::TsRestTypeField::TypeAnn,
88910                    ));
88911                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88912                        type_ann,
88913                        visitor,
88914                        &mut *__ast_path,
88915                    )
88916                };
88917            }
88918        }
88919    }
88920}
88921#[cfg(any(docsrs, feature = "path"))]
88922#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88923impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsSatisfiesExpr {
88924    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_satisfies_expr`] with `self`."]
88925    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88926        <V as VisitMutAstPath>::visit_mut_ts_satisfies_expr(visitor, self, __ast_path)
88927    }
88928
88929    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88930        match self {
88931            TsSatisfiesExpr {
88932                span,
88933                expr,
88934                type_ann,
88935            } => {
88936                {
88937                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSatisfiesExpr(
88938                        self::fields::TsSatisfiesExprField::Span,
88939                    ));
88940                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88941                        span,
88942                        visitor,
88943                        &mut *__ast_path,
88944                    )
88945                };
88946                {
88947                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSatisfiesExpr(
88948                        self::fields::TsSatisfiesExprField::Expr,
88949                    ));
88950                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88951                        expr,
88952                        visitor,
88953                        &mut *__ast_path,
88954                    )
88955                };
88956                {
88957                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSatisfiesExpr(
88958                        self::fields::TsSatisfiesExprField::TypeAnn,
88959                    ));
88960                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88961                        type_ann,
88962                        visitor,
88963                        &mut *__ast_path,
88964                    )
88965                };
88966            }
88967        }
88968    }
88969}
88970#[cfg(any(docsrs, feature = "path"))]
88971#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88972impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsSetterSignature {
88973    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_setter_signature`] with `self`."]
88974    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88975        <V as VisitMutAstPath>::visit_mut_ts_setter_signature(visitor, self, __ast_path)
88976    }
88977
88978    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88979        match self {
88980            TsSetterSignature {
88981                span,
88982                key,
88983                computed,
88984                param,
88985            } => {
88986                {
88987                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSetterSignature(
88988                        self::fields::TsSetterSignatureField::Span,
88989                    ));
88990                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88991                        span,
88992                        visitor,
88993                        &mut *__ast_path,
88994                    )
88995                };
88996                {
88997                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSetterSignature(
88998                        self::fields::TsSetterSignatureField::Key,
88999                    ));
89000                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89001                        key,
89002                        visitor,
89003                        &mut *__ast_path,
89004                    )
89005                };
89006                {
89007                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSetterSignature(
89008                        self::fields::TsSetterSignatureField::Param,
89009                    ));
89010                    <TsFnParam as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89011                        param,
89012                        visitor,
89013                        &mut *__ast_path,
89014                    )
89015                };
89016            }
89017        }
89018    }
89019}
89020#[cfg(any(docsrs, feature = "path"))]
89021#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89022impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsThisType {
89023    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_this_type`] with `self`."]
89024    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89025        <V as VisitMutAstPath>::visit_mut_ts_this_type(visitor, self, __ast_path)
89026    }
89027
89028    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89029        match self {
89030            TsThisType { span } => {
89031                {
89032                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsThisType(
89033                        self::fields::TsThisTypeField::Span,
89034                    ));
89035                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89036                        span,
89037                        visitor,
89038                        &mut *__ast_path,
89039                    )
89040                };
89041            }
89042        }
89043    }
89044}
89045#[cfg(any(docsrs, feature = "path"))]
89046#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89047impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsThisTypeOrIdent {
89048    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_this_type_or_ident`] with `self`."]
89049    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89050        <V as VisitMutAstPath>::visit_mut_ts_this_type_or_ident(visitor, self, __ast_path)
89051    }
89052
89053    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89054        match self {
89055            TsThisTypeOrIdent::TsThisType { 0: _field_0 } => {
89056                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsThisTypeOrIdent(
89057                    self::fields::TsThisTypeOrIdentField::TsThisType,
89058                ));
89059                <TsThisType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89060                    _field_0,
89061                    visitor,
89062                    &mut *__ast_path,
89063                );
89064            }
89065            TsThisTypeOrIdent::Ident { 0: _field_0 } => {
89066                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsThisTypeOrIdent(
89067                    self::fields::TsThisTypeOrIdentField::Ident,
89068                ));
89069                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89070                    _field_0,
89071                    visitor,
89072                    &mut *__ast_path,
89073                );
89074            }
89075        }
89076    }
89077}
89078#[cfg(any(docsrs, feature = "path"))]
89079#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89080impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTplLitType {
89081    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_tpl_lit_type`] with `self`."]
89082    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89083        <V as VisitMutAstPath>::visit_mut_ts_tpl_lit_type(visitor, self, __ast_path)
89084    }
89085
89086    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89087        match self {
89088            TsTplLitType {
89089                span,
89090                types,
89091                quasis,
89092            } => {
89093                {
89094                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTplLitType(
89095                        self::fields::TsTplLitTypeField::Span,
89096                    ));
89097                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89098                        span,
89099                        visitor,
89100                        &mut *__ast_path,
89101                    )
89102                };
89103                {
89104                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTplLitType(
89105                        self::fields::TsTplLitTypeField::Types(usize::MAX),
89106                    ));
89107                    <Vec<Box<TsType>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89108                        types,
89109                        visitor,
89110                        &mut *__ast_path,
89111                    )
89112                };
89113                {
89114                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTplLitType(
89115                        self::fields::TsTplLitTypeField::Quasis(usize::MAX),
89116                    ));
89117                    <Vec<TplElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89118                        quasis,
89119                        visitor,
89120                        &mut *__ast_path,
89121                    )
89122                };
89123            }
89124        }
89125    }
89126}
89127#[cfg(any(docsrs, feature = "path"))]
89128#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89129impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTupleElement {
89130    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_tuple_element`] 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_tuple_element(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            TsTupleElement { span, label, ty } => {
89138                {
89139                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleElement(
89140                        self::fields::TsTupleElementField::Span,
89141                    ));
89142                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89143                        span,
89144                        visitor,
89145                        &mut *__ast_path,
89146                    )
89147                };
89148                {
89149                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleElement(
89150                        self::fields::TsTupleElementField::Label,
89151                    ));
89152                    <Option<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89153                        label,
89154                        visitor,
89155                        &mut *__ast_path,
89156                    )
89157                };
89158                {
89159                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleElement(
89160                        self::fields::TsTupleElementField::Ty,
89161                    ));
89162                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89163                        ty,
89164                        visitor,
89165                        &mut *__ast_path,
89166                    )
89167                };
89168            }
89169        }
89170    }
89171}
89172#[cfg(any(docsrs, feature = "path"))]
89173#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89174impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTupleType {
89175    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_tuple_type`] with `self`."]
89176    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89177        <V as VisitMutAstPath>::visit_mut_ts_tuple_type(visitor, self, __ast_path)
89178    }
89179
89180    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89181        match self {
89182            TsTupleType { span, elem_types } => {
89183                {
89184                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleType(
89185                        self::fields::TsTupleTypeField::Span,
89186                    ));
89187                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89188                        span,
89189                        visitor,
89190                        &mut *__ast_path,
89191                    )
89192                };
89193                {
89194                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleType(
89195                        self::fields::TsTupleTypeField::ElemTypes(usize::MAX),
89196                    ));
89197                    <Vec<TsTupleElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89198                        elem_types,
89199                        visitor,
89200                        &mut *__ast_path,
89201                    )
89202                };
89203            }
89204        }
89205    }
89206}
89207#[cfg(any(docsrs, feature = "path"))]
89208#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89209impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsType {
89210    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type`] with `self`."]
89211    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89212        <V as VisitMutAstPath>::visit_mut_ts_type(visitor, self, __ast_path)
89213    }
89214
89215    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89216        match self {
89217            TsType::TsKeywordType { 0: _field_0 } => {
89218                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
89219                    self::fields::TsTypeField::TsKeywordType,
89220                ));
89221                <TsKeywordType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89222                    _field_0,
89223                    visitor,
89224                    &mut *__ast_path,
89225                );
89226            }
89227            TsType::TsThisType { 0: _field_0 } => {
89228                let mut __ast_path = __ast_path
89229                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsThisType));
89230                <TsThisType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89231                    _field_0,
89232                    visitor,
89233                    &mut *__ast_path,
89234                );
89235            }
89236            TsType::TsFnOrConstructorType { 0: _field_0 } => {
89237                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
89238                    self::fields::TsTypeField::TsFnOrConstructorType,
89239                ));
89240                <TsFnOrConstructorType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89241                    _field_0,
89242                    visitor,
89243                    &mut *__ast_path,
89244                );
89245            }
89246            TsType::TsTypeRef { 0: _field_0 } => {
89247                let mut __ast_path = __ast_path
89248                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsTypeRef));
89249                <TsTypeRef as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89250                    _field_0,
89251                    visitor,
89252                    &mut *__ast_path,
89253                );
89254            }
89255            TsType::TsTypeQuery { 0: _field_0 } => {
89256                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
89257                    self::fields::TsTypeField::TsTypeQuery,
89258                ));
89259                <TsTypeQuery as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89260                    _field_0,
89261                    visitor,
89262                    &mut *__ast_path,
89263                );
89264            }
89265            TsType::TsTypeLit { 0: _field_0 } => {
89266                let mut __ast_path = __ast_path
89267                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsTypeLit));
89268                <TsTypeLit as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89269                    _field_0,
89270                    visitor,
89271                    &mut *__ast_path,
89272                );
89273            }
89274            TsType::TsArrayType { 0: _field_0 } => {
89275                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
89276                    self::fields::TsTypeField::TsArrayType,
89277                ));
89278                <TsArrayType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89279                    _field_0,
89280                    visitor,
89281                    &mut *__ast_path,
89282                );
89283            }
89284            TsType::TsTupleType { 0: _field_0 } => {
89285                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
89286                    self::fields::TsTypeField::TsTupleType,
89287                ));
89288                <TsTupleType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89289                    _field_0,
89290                    visitor,
89291                    &mut *__ast_path,
89292                );
89293            }
89294            TsType::TsOptionalType { 0: _field_0 } => {
89295                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
89296                    self::fields::TsTypeField::TsOptionalType,
89297                ));
89298                <TsOptionalType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89299                    _field_0,
89300                    visitor,
89301                    &mut *__ast_path,
89302                );
89303            }
89304            TsType::TsRestType { 0: _field_0 } => {
89305                let mut __ast_path = __ast_path
89306                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsRestType));
89307                <TsRestType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89308                    _field_0,
89309                    visitor,
89310                    &mut *__ast_path,
89311                );
89312            }
89313            TsType::TsUnionOrIntersectionType { 0: _field_0 } => {
89314                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
89315                    self::fields::TsTypeField::TsUnionOrIntersectionType,
89316                ));
89317                <TsUnionOrIntersectionType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89318                    _field_0,
89319                    visitor,
89320                    &mut *__ast_path,
89321                );
89322            }
89323            TsType::TsConditionalType { 0: _field_0 } => {
89324                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
89325                    self::fields::TsTypeField::TsConditionalType,
89326                ));
89327                <TsConditionalType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89328                    _field_0,
89329                    visitor,
89330                    &mut *__ast_path,
89331                );
89332            }
89333            TsType::TsInferType { 0: _field_0 } => {
89334                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
89335                    self::fields::TsTypeField::TsInferType,
89336                ));
89337                <TsInferType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89338                    _field_0,
89339                    visitor,
89340                    &mut *__ast_path,
89341                );
89342            }
89343            TsType::TsParenthesizedType { 0: _field_0 } => {
89344                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
89345                    self::fields::TsTypeField::TsParenthesizedType,
89346                ));
89347                <TsParenthesizedType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89348                    _field_0,
89349                    visitor,
89350                    &mut *__ast_path,
89351                );
89352            }
89353            TsType::TsTypeOperator { 0: _field_0 } => {
89354                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
89355                    self::fields::TsTypeField::TsTypeOperator,
89356                ));
89357                <TsTypeOperator as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89358                    _field_0,
89359                    visitor,
89360                    &mut *__ast_path,
89361                );
89362            }
89363            TsType::TsIndexedAccessType { 0: _field_0 } => {
89364                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
89365                    self::fields::TsTypeField::TsIndexedAccessType,
89366                ));
89367                <TsIndexedAccessType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89368                    _field_0,
89369                    visitor,
89370                    &mut *__ast_path,
89371                );
89372            }
89373            TsType::TsMappedType { 0: _field_0 } => {
89374                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
89375                    self::fields::TsTypeField::TsMappedType,
89376                ));
89377                <TsMappedType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89378                    _field_0,
89379                    visitor,
89380                    &mut *__ast_path,
89381                );
89382            }
89383            TsType::TsLitType { 0: _field_0 } => {
89384                let mut __ast_path = __ast_path
89385                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsLitType));
89386                <TsLitType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89387                    _field_0,
89388                    visitor,
89389                    &mut *__ast_path,
89390                );
89391            }
89392            TsType::TsTypePredicate { 0: _field_0 } => {
89393                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
89394                    self::fields::TsTypeField::TsTypePredicate,
89395                ));
89396                <TsTypePredicate as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89397                    _field_0,
89398                    visitor,
89399                    &mut *__ast_path,
89400                );
89401            }
89402            TsType::TsImportType { 0: _field_0 } => {
89403                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
89404                    self::fields::TsTypeField::TsImportType,
89405                ));
89406                <TsImportType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89407                    _field_0,
89408                    visitor,
89409                    &mut *__ast_path,
89410                );
89411            }
89412        }
89413    }
89414}
89415#[cfg(any(docsrs, feature = "path"))]
89416#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89417impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeAliasDecl {
89418    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_alias_decl`] with `self`."]
89419    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89420        <V as VisitMutAstPath>::visit_mut_ts_type_alias_decl(visitor, self, __ast_path)
89421    }
89422
89423    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89424        match self {
89425            TsTypeAliasDecl {
89426                span,
89427                declare,
89428                id,
89429                type_params,
89430                type_ann,
89431            } => {
89432                {
89433                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAliasDecl(
89434                        self::fields::TsTypeAliasDeclField::Span,
89435                    ));
89436                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89437                        span,
89438                        visitor,
89439                        &mut *__ast_path,
89440                    )
89441                };
89442                {
89443                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAliasDecl(
89444                        self::fields::TsTypeAliasDeclField::Id,
89445                    ));
89446                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89447                        id,
89448                        visitor,
89449                        &mut *__ast_path,
89450                    )
89451                };
89452                {
89453                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAliasDecl(
89454                        self::fields::TsTypeAliasDeclField::TypeParams,
89455                    ));
89456                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
89457                };
89458                {
89459                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAliasDecl(
89460                        self::fields::TsTypeAliasDeclField::TypeAnn,
89461                    ));
89462                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89463                        type_ann,
89464                        visitor,
89465                        &mut *__ast_path,
89466                    )
89467                };
89468            }
89469        }
89470    }
89471}
89472#[cfg(any(docsrs, feature = "path"))]
89473#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89474impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeAnn {
89475    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_ann`] with `self`."]
89476    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89477        <V as VisitMutAstPath>::visit_mut_ts_type_ann(visitor, self, __ast_path)
89478    }
89479
89480    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89481        match self {
89482            TsTypeAnn { span, type_ann } => {
89483                {
89484                    let mut __ast_path = __ast_path
89485                        .with_guard(AstParentKind::TsTypeAnn(self::fields::TsTypeAnnField::Span));
89486                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89487                        span,
89488                        visitor,
89489                        &mut *__ast_path,
89490                    )
89491                };
89492                {
89493                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAnn(
89494                        self::fields::TsTypeAnnField::TypeAnn,
89495                    ));
89496                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89497                        type_ann,
89498                        visitor,
89499                        &mut *__ast_path,
89500                    )
89501                };
89502            }
89503        }
89504    }
89505}
89506#[cfg(any(docsrs, feature = "path"))]
89507#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89508impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeAssertion {
89509    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_assertion`] with `self`."]
89510    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89511        <V as VisitMutAstPath>::visit_mut_ts_type_assertion(visitor, self, __ast_path)
89512    }
89513
89514    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89515        match self {
89516            TsTypeAssertion {
89517                span,
89518                expr,
89519                type_ann,
89520            } => {
89521                {
89522                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAssertion(
89523                        self::fields::TsTypeAssertionField::Span,
89524                    ));
89525                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89526                        span,
89527                        visitor,
89528                        &mut *__ast_path,
89529                    )
89530                };
89531                {
89532                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAssertion(
89533                        self::fields::TsTypeAssertionField::Expr,
89534                    ));
89535                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89536                        expr,
89537                        visitor,
89538                        &mut *__ast_path,
89539                    )
89540                };
89541                {
89542                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAssertion(
89543                        self::fields::TsTypeAssertionField::TypeAnn,
89544                    ));
89545                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89546                        type_ann,
89547                        visitor,
89548                        &mut *__ast_path,
89549                    )
89550                };
89551            }
89552        }
89553    }
89554}
89555#[cfg(any(docsrs, feature = "path"))]
89556#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89557impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeElement {
89558    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_element`] with `self`."]
89559    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89560        <V as VisitMutAstPath>::visit_mut_ts_type_element(visitor, self, __ast_path)
89561    }
89562
89563    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89564        match self {
89565            TsTypeElement::TsCallSignatureDecl { 0: _field_0 } => {
89566                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
89567                    self::fields::TsTypeElementField::TsCallSignatureDecl,
89568                ));
89569                <TsCallSignatureDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89570                    _field_0,
89571                    visitor,
89572                    &mut *__ast_path,
89573                );
89574            }
89575            TsTypeElement::TsConstructSignatureDecl { 0: _field_0 } => {
89576                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
89577                    self::fields::TsTypeElementField::TsConstructSignatureDecl,
89578                ));
89579                <TsConstructSignatureDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89580                    _field_0,
89581                    visitor,
89582                    &mut *__ast_path,
89583                );
89584            }
89585            TsTypeElement::TsPropertySignature { 0: _field_0 } => {
89586                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
89587                    self::fields::TsTypeElementField::TsPropertySignature,
89588                ));
89589                <TsPropertySignature as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89590                    _field_0,
89591                    visitor,
89592                    &mut *__ast_path,
89593                );
89594            }
89595            TsTypeElement::TsGetterSignature { 0: _field_0 } => {
89596                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
89597                    self::fields::TsTypeElementField::TsGetterSignature,
89598                ));
89599                <TsGetterSignature as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89600                    _field_0,
89601                    visitor,
89602                    &mut *__ast_path,
89603                );
89604            }
89605            TsTypeElement::TsSetterSignature { 0: _field_0 } => {
89606                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
89607                    self::fields::TsTypeElementField::TsSetterSignature,
89608                ));
89609                <TsSetterSignature as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89610                    _field_0,
89611                    visitor,
89612                    &mut *__ast_path,
89613                );
89614            }
89615            TsTypeElement::TsMethodSignature { 0: _field_0 } => {
89616                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
89617                    self::fields::TsTypeElementField::TsMethodSignature,
89618                ));
89619                <TsMethodSignature as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89620                    _field_0,
89621                    visitor,
89622                    &mut *__ast_path,
89623                );
89624            }
89625            TsTypeElement::TsIndexSignature { 0: _field_0 } => {
89626                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
89627                    self::fields::TsTypeElementField::TsIndexSignature,
89628                ));
89629                <TsIndexSignature as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89630                    _field_0,
89631                    visitor,
89632                    &mut *__ast_path,
89633                );
89634            }
89635        }
89636    }
89637}
89638#[cfg(any(docsrs, feature = "path"))]
89639#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89640impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeLit {
89641    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_lit`] with `self`."]
89642    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89643        <V as VisitMutAstPath>::visit_mut_ts_type_lit(visitor, self, __ast_path)
89644    }
89645
89646    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89647        match self {
89648            TsTypeLit { span, members } => {
89649                {
89650                    let mut __ast_path = __ast_path
89651                        .with_guard(AstParentKind::TsTypeLit(self::fields::TsTypeLitField::Span));
89652                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89653                        span,
89654                        visitor,
89655                        &mut *__ast_path,
89656                    )
89657                };
89658                {
89659                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeLit(
89660                        self::fields::TsTypeLitField::Members(usize::MAX),
89661                    ));
89662                    <Vec<TsTypeElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89663                        members,
89664                        visitor,
89665                        &mut *__ast_path,
89666                    )
89667                };
89668            }
89669        }
89670    }
89671}
89672#[cfg(any(docsrs, feature = "path"))]
89673#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89674impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeOperator {
89675    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_operator`] with `self`."]
89676    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89677        <V as VisitMutAstPath>::visit_mut_ts_type_operator(visitor, self, __ast_path)
89678    }
89679
89680    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89681        match self {
89682            TsTypeOperator { span, op, type_ann } => {
89683                {
89684                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeOperator(
89685                        self::fields::TsTypeOperatorField::Span,
89686                    ));
89687                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89688                        span,
89689                        visitor,
89690                        &mut *__ast_path,
89691                    )
89692                };
89693                {
89694                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeOperator(
89695                        self::fields::TsTypeOperatorField::Op,
89696                    ));
89697                    <TsTypeOperatorOp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89698                        op,
89699                        visitor,
89700                        &mut *__ast_path,
89701                    )
89702                };
89703                {
89704                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeOperator(
89705                        self::fields::TsTypeOperatorField::TypeAnn,
89706                    ));
89707                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89708                        type_ann,
89709                        visitor,
89710                        &mut *__ast_path,
89711                    )
89712                };
89713            }
89714        }
89715    }
89716}
89717#[cfg(any(docsrs, feature = "path"))]
89718#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89719impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeOperatorOp {
89720    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_operator_op`] with `self`."]
89721    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89722        <V as VisitMutAstPath>::visit_mut_ts_type_operator_op(visitor, self, __ast_path)
89723    }
89724
89725    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89726        match self {
89727            TsTypeOperatorOp::KeyOf => {}
89728            TsTypeOperatorOp::Unique => {}
89729            TsTypeOperatorOp::ReadOnly => {}
89730        }
89731    }
89732}
89733#[cfg(any(docsrs, feature = "path"))]
89734#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89735impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeParam {
89736    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_param`] with `self`."]
89737    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89738        <V as VisitMutAstPath>::visit_mut_ts_type_param(visitor, self, __ast_path)
89739    }
89740
89741    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89742        match self {
89743            TsTypeParam {
89744                span,
89745                name,
89746                is_in,
89747                is_out,
89748                is_const,
89749                constraint,
89750                default,
89751            } => {
89752                {
89753                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParam(
89754                        self::fields::TsTypeParamField::Span,
89755                    ));
89756                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89757                        span,
89758                        visitor,
89759                        &mut *__ast_path,
89760                    )
89761                };
89762                {
89763                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParam(
89764                        self::fields::TsTypeParamField::Name,
89765                    ));
89766                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89767                        name,
89768                        visitor,
89769                        &mut *__ast_path,
89770                    )
89771                };
89772                {
89773                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParam(
89774                        self::fields::TsTypeParamField::Constraint,
89775                    ));
89776                    <Option<Box<TsType>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89777                        constraint,
89778                        visitor,
89779                        &mut *__ast_path,
89780                    )
89781                };
89782                {
89783                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParam(
89784                        self::fields::TsTypeParamField::Default,
89785                    ));
89786                    <Option<Box<TsType>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89787                        default,
89788                        visitor,
89789                        &mut *__ast_path,
89790                    )
89791                };
89792            }
89793        }
89794    }
89795}
89796#[cfg(any(docsrs, feature = "path"))]
89797#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89798impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeParamDecl {
89799    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_param_decl`] with `self`."]
89800    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89801        <V as VisitMutAstPath>::visit_mut_ts_type_param_decl(visitor, self, __ast_path)
89802    }
89803
89804    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89805        match self {
89806            TsTypeParamDecl { span, params } => {
89807                {
89808                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParamDecl(
89809                        self::fields::TsTypeParamDeclField::Span,
89810                    ));
89811                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89812                        span,
89813                        visitor,
89814                        &mut *__ast_path,
89815                    )
89816                };
89817                {
89818                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParamDecl(
89819                        self::fields::TsTypeParamDeclField::Params(usize::MAX),
89820                    ));
89821                    <Vec<TsTypeParam> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89822                        params,
89823                        visitor,
89824                        &mut *__ast_path,
89825                    )
89826                };
89827            }
89828        }
89829    }
89830}
89831#[cfg(any(docsrs, feature = "path"))]
89832#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89833impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeParamInstantiation {
89834    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_param_instantiation`] with `self`."]
89835    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89836        <V as VisitMutAstPath>::visit_mut_ts_type_param_instantiation(visitor, self, __ast_path)
89837    }
89838
89839    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89840        match self {
89841            TsTypeParamInstantiation { span, params } => {
89842                {
89843                    let mut __ast_path =
89844                        __ast_path.with_guard(AstParentKind::TsTypeParamInstantiation(
89845                            self::fields::TsTypeParamInstantiationField::Span,
89846                        ));
89847                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89848                        span,
89849                        visitor,
89850                        &mut *__ast_path,
89851                    )
89852                };
89853                {
89854                    let mut __ast_path =
89855                        __ast_path.with_guard(AstParentKind::TsTypeParamInstantiation(
89856                            self::fields::TsTypeParamInstantiationField::Params(usize::MAX),
89857                        ));
89858                    <Vec<Box<TsType>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89859                        params,
89860                        visitor,
89861                        &mut *__ast_path,
89862                    )
89863                };
89864            }
89865        }
89866    }
89867}
89868#[cfg(any(docsrs, feature = "path"))]
89869#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89870impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypePredicate {
89871    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_predicate`] with `self`."]
89872    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89873        <V as VisitMutAstPath>::visit_mut_ts_type_predicate(visitor, self, __ast_path)
89874    }
89875
89876    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89877        match self {
89878            TsTypePredicate {
89879                span,
89880                asserts,
89881                param_name,
89882                type_ann,
89883            } => {
89884                {
89885                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypePredicate(
89886                        self::fields::TsTypePredicateField::Span,
89887                    ));
89888                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89889                        span,
89890                        visitor,
89891                        &mut *__ast_path,
89892                    )
89893                };
89894                {
89895                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypePredicate(
89896                        self::fields::TsTypePredicateField::ParamName,
89897                    ));
89898                    <TsThisTypeOrIdent as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89899                        param_name,
89900                        visitor,
89901                        &mut *__ast_path,
89902                    )
89903                };
89904                {
89905                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypePredicate(
89906                        self::fields::TsTypePredicateField::TypeAnn,
89907                    ));
89908                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89909                        type_ann,
89910                        visitor,
89911                        &mut *__ast_path,
89912                    )
89913                };
89914            }
89915        }
89916    }
89917}
89918#[cfg(any(docsrs, feature = "path"))]
89919#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89920impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeQuery {
89921    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_query`] with `self`."]
89922    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89923        <V as VisitMutAstPath>::visit_mut_ts_type_query(visitor, self, __ast_path)
89924    }
89925
89926    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89927        match self {
89928            TsTypeQuery {
89929                span,
89930                expr_name,
89931                type_args,
89932            } => {
89933                {
89934                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQuery(
89935                        self::fields::TsTypeQueryField::Span,
89936                    ));
89937                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89938                        span,
89939                        visitor,
89940                        &mut *__ast_path,
89941                    )
89942                };
89943                {
89944                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQuery(
89945                        self::fields::TsTypeQueryField::ExprName,
89946                    ));
89947                    <TsTypeQueryExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89948                        expr_name,
89949                        visitor,
89950                        &mut *__ast_path,
89951                    )
89952                };
89953                {
89954                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQuery(
89955                        self::fields::TsTypeQueryField::TypeArgs,
89956                    ));
89957                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_args , visitor , & mut * __ast_path)
89958                };
89959            }
89960        }
89961    }
89962}
89963#[cfg(any(docsrs, feature = "path"))]
89964#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89965impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeQueryExpr {
89966    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_query_expr`] with `self`."]
89967    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89968        <V as VisitMutAstPath>::visit_mut_ts_type_query_expr(visitor, self, __ast_path)
89969    }
89970
89971    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89972        match self {
89973            TsTypeQueryExpr::TsEntityName { 0: _field_0 } => {
89974                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQueryExpr(
89975                    self::fields::TsTypeQueryExprField::TsEntityName,
89976                ));
89977                <TsEntityName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89978                    _field_0,
89979                    visitor,
89980                    &mut *__ast_path,
89981                );
89982            }
89983            TsTypeQueryExpr::Import { 0: _field_0 } => {
89984                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQueryExpr(
89985                    self::fields::TsTypeQueryExprField::Import,
89986                ));
89987                <TsImportType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89988                    _field_0,
89989                    visitor,
89990                    &mut *__ast_path,
89991                );
89992            }
89993        }
89994    }
89995}
89996#[cfg(any(docsrs, feature = "path"))]
89997#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89998impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeRef {
89999    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_ref`] with `self`."]
90000    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90001        <V as VisitMutAstPath>::visit_mut_ts_type_ref(visitor, self, __ast_path)
90002    }
90003
90004    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90005        match self {
90006            TsTypeRef {
90007                span,
90008                type_name,
90009                type_params,
90010            } => {
90011                {
90012                    let mut __ast_path = __ast_path
90013                        .with_guard(AstParentKind::TsTypeRef(self::fields::TsTypeRefField::Span));
90014                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90015                        span,
90016                        visitor,
90017                        &mut *__ast_path,
90018                    )
90019                };
90020                {
90021                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeRef(
90022                        self::fields::TsTypeRefField::TypeName,
90023                    ));
90024                    <TsEntityName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90025                        type_name,
90026                        visitor,
90027                        &mut *__ast_path,
90028                    )
90029                };
90030                {
90031                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeRef(
90032                        self::fields::TsTypeRefField::TypeParams,
90033                    ));
90034                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
90035                };
90036            }
90037        }
90038    }
90039}
90040#[cfg(any(docsrs, feature = "path"))]
90041#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90042impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsUnionOrIntersectionType {
90043    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_union_or_intersection_type`] with `self`."]
90044    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90045        <V as VisitMutAstPath>::visit_mut_ts_union_or_intersection_type(visitor, self, __ast_path)
90046    }
90047
90048    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90049        match self {
90050            TsUnionOrIntersectionType::TsUnionType { 0: _field_0 } => {
90051                let mut __ast_path =
90052                    __ast_path.with_guard(AstParentKind::TsUnionOrIntersectionType(
90053                        self::fields::TsUnionOrIntersectionTypeField::TsUnionType,
90054                    ));
90055                <TsUnionType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90056                    _field_0,
90057                    visitor,
90058                    &mut *__ast_path,
90059                );
90060            }
90061            TsUnionOrIntersectionType::TsIntersectionType { 0: _field_0 } => {
90062                let mut __ast_path =
90063                    __ast_path.with_guard(AstParentKind::TsUnionOrIntersectionType(
90064                        self::fields::TsUnionOrIntersectionTypeField::TsIntersectionType,
90065                    ));
90066                <TsIntersectionType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90067                    _field_0,
90068                    visitor,
90069                    &mut *__ast_path,
90070                );
90071            }
90072        }
90073    }
90074}
90075#[cfg(any(docsrs, feature = "path"))]
90076#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90077impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsUnionType {
90078    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_union_type`] with `self`."]
90079    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90080        <V as VisitMutAstPath>::visit_mut_ts_union_type(visitor, self, __ast_path)
90081    }
90082
90083    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90084        match self {
90085            TsUnionType { span, types } => {
90086                {
90087                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsUnionType(
90088                        self::fields::TsUnionTypeField::Span,
90089                    ));
90090                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90091                        span,
90092                        visitor,
90093                        &mut *__ast_path,
90094                    )
90095                };
90096                {
90097                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsUnionType(
90098                        self::fields::TsUnionTypeField::Types(usize::MAX),
90099                    ));
90100                    <Vec<Box<TsType>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90101                        types,
90102                        visitor,
90103                        &mut *__ast_path,
90104                    )
90105                };
90106            }
90107        }
90108    }
90109}
90110#[cfg(any(docsrs, feature = "path"))]
90111#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90112impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for UnaryExpr {
90113    #[doc = "Calls [VisitMutAstPath`::visit_mut_unary_expr`] with `self`."]
90114    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90115        <V as VisitMutAstPath>::visit_mut_unary_expr(visitor, self, __ast_path)
90116    }
90117
90118    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90119        match self {
90120            UnaryExpr { span, op, arg } => {
90121                {
90122                    let mut __ast_path = __ast_path
90123                        .with_guard(AstParentKind::UnaryExpr(self::fields::UnaryExprField::Span));
90124                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90125                        span,
90126                        visitor,
90127                        &mut *__ast_path,
90128                    )
90129                };
90130                {
90131                    let mut __ast_path = __ast_path
90132                        .with_guard(AstParentKind::UnaryExpr(self::fields::UnaryExprField::Op));
90133                    <UnaryOp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90134                        op,
90135                        visitor,
90136                        &mut *__ast_path,
90137                    )
90138                };
90139                {
90140                    let mut __ast_path = __ast_path
90141                        .with_guard(AstParentKind::UnaryExpr(self::fields::UnaryExprField::Arg));
90142                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90143                        arg,
90144                        visitor,
90145                        &mut *__ast_path,
90146                    )
90147                };
90148            }
90149        }
90150    }
90151}
90152#[cfg(any(docsrs, feature = "path"))]
90153#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90154impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for UnaryOp {
90155    #[doc = "Calls [VisitMutAstPath`::visit_mut_unary_op`] with `self`."]
90156    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90157        <V as VisitMutAstPath>::visit_mut_unary_op(visitor, self, __ast_path)
90158    }
90159
90160    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90161        match self {
90162            UnaryOp::Minus => {}
90163            UnaryOp::Plus => {}
90164            UnaryOp::Bang => {}
90165            UnaryOp::Tilde => {}
90166            UnaryOp::TypeOf => {}
90167            UnaryOp::Void => {}
90168            UnaryOp::Delete => {}
90169        }
90170    }
90171}
90172#[cfg(any(docsrs, feature = "path"))]
90173#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90174impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for UpdateExpr {
90175    #[doc = "Calls [VisitMutAstPath`::visit_mut_update_expr`] with `self`."]
90176    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90177        <V as VisitMutAstPath>::visit_mut_update_expr(visitor, self, __ast_path)
90178    }
90179
90180    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90181        match self {
90182            UpdateExpr {
90183                span,
90184                op,
90185                prefix,
90186                arg,
90187            } => {
90188                {
90189                    let mut __ast_path = __ast_path.with_guard(AstParentKind::UpdateExpr(
90190                        self::fields::UpdateExprField::Span,
90191                    ));
90192                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90193                        span,
90194                        visitor,
90195                        &mut *__ast_path,
90196                    )
90197                };
90198                {
90199                    let mut __ast_path = __ast_path
90200                        .with_guard(AstParentKind::UpdateExpr(self::fields::UpdateExprField::Op));
90201                    <UpdateOp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90202                        op,
90203                        visitor,
90204                        &mut *__ast_path,
90205                    )
90206                };
90207                {
90208                    let mut __ast_path = __ast_path.with_guard(AstParentKind::UpdateExpr(
90209                        self::fields::UpdateExprField::Arg,
90210                    ));
90211                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90212                        arg,
90213                        visitor,
90214                        &mut *__ast_path,
90215                    )
90216                };
90217            }
90218        }
90219    }
90220}
90221#[cfg(any(docsrs, feature = "path"))]
90222#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90223impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for UpdateOp {
90224    #[doc = "Calls [VisitMutAstPath`::visit_mut_update_op`] with `self`."]
90225    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90226        <V as VisitMutAstPath>::visit_mut_update_op(visitor, self, __ast_path)
90227    }
90228
90229    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90230        match self {
90231            UpdateOp::PlusPlus => {}
90232            UpdateOp::MinusMinus => {}
90233        }
90234    }
90235}
90236#[cfg(any(docsrs, feature = "path"))]
90237#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90238impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for UsingDecl {
90239    #[doc = "Calls [VisitMutAstPath`::visit_mut_using_decl`] with `self`."]
90240    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90241        <V as VisitMutAstPath>::visit_mut_using_decl(visitor, self, __ast_path)
90242    }
90243
90244    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90245        match self {
90246            UsingDecl {
90247                span,
90248                is_await,
90249                decls,
90250            } => {
90251                {
90252                    let mut __ast_path = __ast_path
90253                        .with_guard(AstParentKind::UsingDecl(self::fields::UsingDeclField::Span));
90254                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90255                        span,
90256                        visitor,
90257                        &mut *__ast_path,
90258                    )
90259                };
90260                {
90261                    let mut __ast_path = __ast_path.with_guard(AstParentKind::UsingDecl(
90262                        self::fields::UsingDeclField::Decls(usize::MAX),
90263                    ));
90264                    <Vec<VarDeclarator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90265                        decls,
90266                        visitor,
90267                        &mut *__ast_path,
90268                    )
90269                };
90270            }
90271        }
90272    }
90273}
90274#[cfg(any(docsrs, feature = "path"))]
90275#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90276impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for VarDecl {
90277    #[doc = "Calls [VisitMutAstPath`::visit_mut_var_decl`] with `self`."]
90278    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90279        <V as VisitMutAstPath>::visit_mut_var_decl(visitor, self, __ast_path)
90280    }
90281
90282    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90283        match self {
90284            VarDecl {
90285                span,
90286                ctxt,
90287                kind,
90288                declare,
90289                decls,
90290            } => {
90291                {
90292                    let mut __ast_path = __ast_path
90293                        .with_guard(AstParentKind::VarDecl(self::fields::VarDeclField::Span));
90294                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90295                        span,
90296                        visitor,
90297                        &mut *__ast_path,
90298                    )
90299                };
90300                {
90301                    let mut __ast_path = __ast_path
90302                        .with_guard(AstParentKind::VarDecl(self::fields::VarDeclField::Ctxt));
90303                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90304                        ctxt,
90305                        visitor,
90306                        &mut *__ast_path,
90307                    )
90308                };
90309                {
90310                    let mut __ast_path = __ast_path
90311                        .with_guard(AstParentKind::VarDecl(self::fields::VarDeclField::Kind));
90312                    <VarDeclKind as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90313                        kind,
90314                        visitor,
90315                        &mut *__ast_path,
90316                    )
90317                };
90318                {
90319                    let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDecl(
90320                        self::fields::VarDeclField::Decls(usize::MAX),
90321                    ));
90322                    <Vec<VarDeclarator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90323                        decls,
90324                        visitor,
90325                        &mut *__ast_path,
90326                    )
90327                };
90328            }
90329        }
90330    }
90331}
90332#[cfg(any(docsrs, feature = "path"))]
90333#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90334impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for VarDeclKind {
90335    #[doc = "Calls [VisitMutAstPath`::visit_mut_var_decl_kind`] with `self`."]
90336    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90337        <V as VisitMutAstPath>::visit_mut_var_decl_kind(visitor, self, __ast_path)
90338    }
90339
90340    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90341        match self {
90342            VarDeclKind::Var => {}
90343            VarDeclKind::Let => {}
90344            VarDeclKind::Const => {}
90345        }
90346    }
90347}
90348#[cfg(any(docsrs, feature = "path"))]
90349#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90350impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for VarDeclOrExpr {
90351    #[doc = "Calls [VisitMutAstPath`::visit_mut_var_decl_or_expr`] with `self`."]
90352    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90353        <V as VisitMutAstPath>::visit_mut_var_decl_or_expr(visitor, self, __ast_path)
90354    }
90355
90356    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90357        match self {
90358            VarDeclOrExpr::VarDecl { 0: _field_0 } => {
90359                let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclOrExpr(
90360                    self::fields::VarDeclOrExprField::VarDecl,
90361                ));
90362                <Box<VarDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90363                    _field_0,
90364                    visitor,
90365                    &mut *__ast_path,
90366                );
90367            }
90368            VarDeclOrExpr::Expr { 0: _field_0 } => {
90369                let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclOrExpr(
90370                    self::fields::VarDeclOrExprField::Expr,
90371                ));
90372                <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90373                    _field_0,
90374                    visitor,
90375                    &mut *__ast_path,
90376                );
90377            }
90378        }
90379    }
90380}
90381#[cfg(any(docsrs, feature = "path"))]
90382#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90383impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for VarDeclarator {
90384    #[doc = "Calls [VisitMutAstPath`::visit_mut_var_declarator`] with `self`."]
90385    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90386        <V as VisitMutAstPath>::visit_mut_var_declarator(visitor, self, __ast_path)
90387    }
90388
90389    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90390        match self {
90391            VarDeclarator {
90392                span,
90393                name,
90394                init,
90395                definite,
90396            } => {
90397                {
90398                    let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclarator(
90399                        self::fields::VarDeclaratorField::Span,
90400                    ));
90401                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90402                        span,
90403                        visitor,
90404                        &mut *__ast_path,
90405                    )
90406                };
90407                {
90408                    let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclarator(
90409                        self::fields::VarDeclaratorField::Name,
90410                    ));
90411                    <Pat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90412                        name,
90413                        visitor,
90414                        &mut *__ast_path,
90415                    )
90416                };
90417                {
90418                    let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclarator(
90419                        self::fields::VarDeclaratorField::Init,
90420                    ));
90421                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90422                        init,
90423                        visitor,
90424                        &mut *__ast_path,
90425                    )
90426                };
90427            }
90428        }
90429    }
90430}
90431#[cfg(any(docsrs, feature = "path"))]
90432#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90433impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for WhileStmt {
90434    #[doc = "Calls [VisitMutAstPath`::visit_mut_while_stmt`] with `self`."]
90435    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90436        <V as VisitMutAstPath>::visit_mut_while_stmt(visitor, self, __ast_path)
90437    }
90438
90439    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90440        match self {
90441            WhileStmt { span, test, body } => {
90442                {
90443                    let mut __ast_path = __ast_path
90444                        .with_guard(AstParentKind::WhileStmt(self::fields::WhileStmtField::Span));
90445                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90446                        span,
90447                        visitor,
90448                        &mut *__ast_path,
90449                    )
90450                };
90451                {
90452                    let mut __ast_path = __ast_path
90453                        .with_guard(AstParentKind::WhileStmt(self::fields::WhileStmtField::Test));
90454                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90455                        test,
90456                        visitor,
90457                        &mut *__ast_path,
90458                    )
90459                };
90460                {
90461                    let mut __ast_path = __ast_path
90462                        .with_guard(AstParentKind::WhileStmt(self::fields::WhileStmtField::Body));
90463                    <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90464                        body,
90465                        visitor,
90466                        &mut *__ast_path,
90467                    )
90468                };
90469            }
90470        }
90471    }
90472}
90473#[cfg(any(docsrs, feature = "path"))]
90474#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90475impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for WithStmt {
90476    #[doc = "Calls [VisitMutAstPath`::visit_mut_with_stmt`] with `self`."]
90477    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90478        <V as VisitMutAstPath>::visit_mut_with_stmt(visitor, self, __ast_path)
90479    }
90480
90481    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90482        match self {
90483            WithStmt { span, obj, body } => {
90484                {
90485                    let mut __ast_path = __ast_path
90486                        .with_guard(AstParentKind::WithStmt(self::fields::WithStmtField::Span));
90487                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90488                        span,
90489                        visitor,
90490                        &mut *__ast_path,
90491                    )
90492                };
90493                {
90494                    let mut __ast_path = __ast_path
90495                        .with_guard(AstParentKind::WithStmt(self::fields::WithStmtField::Obj));
90496                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90497                        obj,
90498                        visitor,
90499                        &mut *__ast_path,
90500                    )
90501                };
90502                {
90503                    let mut __ast_path = __ast_path
90504                        .with_guard(AstParentKind::WithStmt(self::fields::WithStmtField::Body));
90505                    <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90506                        body,
90507                        visitor,
90508                        &mut *__ast_path,
90509                    )
90510                };
90511            }
90512        }
90513    }
90514}
90515#[cfg(any(docsrs, feature = "path"))]
90516#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90517impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for YieldExpr {
90518    #[doc = "Calls [VisitMutAstPath`::visit_mut_yield_expr`] with `self`."]
90519    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90520        <V as VisitMutAstPath>::visit_mut_yield_expr(visitor, self, __ast_path)
90521    }
90522
90523    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90524        match self {
90525            YieldExpr {
90526                span,
90527                arg,
90528                delegate,
90529            } => {
90530                {
90531                    let mut __ast_path = __ast_path
90532                        .with_guard(AstParentKind::YieldExpr(self::fields::YieldExprField::Span));
90533                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90534                        span,
90535                        visitor,
90536                        &mut *__ast_path,
90537                    )
90538                };
90539                {
90540                    let mut __ast_path = __ast_path
90541                        .with_guard(AstParentKind::YieldExpr(self::fields::YieldExprField::Arg));
90542                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90543                        arg,
90544                        visitor,
90545                        &mut *__ast_path,
90546                    )
90547                };
90548            }
90549        }
90550    }
90551}
90552#[cfg(any(docsrs, feature = "path"))]
90553#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90554impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for swc_atoms::Atom {
90555    #[doc = "Calls [VisitMutAstPath`::visit_mut_atom`] with `self`. (Extra impl)"]
90556    #[inline]
90557    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90558        <V as VisitMutAstPath>::visit_mut_atom(visitor, self, __ast_path)
90559    }
90560
90561    #[inline]
90562    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90563        {}
90564    }
90565}
90566#[cfg(any(docsrs, feature = "path"))]
90567#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90568impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for BigIntValue {
90569    #[doc = "Calls [VisitMutAstPath`::visit_mut_big_int_value`] 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_big_int_value(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        {}
90578    }
90579}
90580#[cfg(any(docsrs, feature = "path"))]
90581#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90582impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<ClassMember> {
90583    #[doc = "Calls [VisitMutAstPath`::visit_mut_class_members`] with `self`. (Extra impl)"]
90584    #[inline]
90585    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90586        <V as VisitMutAstPath>::visit_mut_class_members(visitor, self, __ast_path)
90587    }
90588
90589    #[inline]
90590    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90591        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90592            let mut __ast_path = __ast_path.with_index_guard(__idx);
90593            <ClassMember as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90594                item,
90595                visitor,
90596                &mut *__ast_path,
90597            )
90598        })
90599    }
90600}
90601#[cfg(any(docsrs, feature = "path"))]
90602#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90603impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<Decorator> {
90604    #[doc = "Calls [VisitMutAstPath`::visit_mut_decorators`] with `self`. (Extra impl)"]
90605    #[inline]
90606    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90607        <V as VisitMutAstPath>::visit_mut_decorators(visitor, self, __ast_path)
90608    }
90609
90610    #[inline]
90611    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90612        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90613            let mut __ast_path = __ast_path.with_index_guard(__idx);
90614            <Decorator as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90615                item,
90616                visitor,
90617                &mut *__ast_path,
90618            )
90619        })
90620    }
90621}
90622#[cfg(any(docsrs, feature = "path"))]
90623#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90624impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<ExportSpecifier> {
90625    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_specifiers`] with `self`. (Extra impl)"]
90626    #[inline]
90627    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90628        <V as VisitMutAstPath>::visit_mut_export_specifiers(visitor, self, __ast_path)
90629    }
90630
90631    #[inline]
90632    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90633        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90634            let mut __ast_path = __ast_path.with_index_guard(__idx);
90635            <ExportSpecifier as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90636                item,
90637                visitor,
90638                &mut *__ast_path,
90639            )
90640        })
90641    }
90642}
90643#[cfg(any(docsrs, feature = "path"))]
90644#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90645impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<ExprOrSpread> {
90646    #[doc = "Calls [VisitMutAstPath`::visit_mut_expr_or_spreads`] with `self`. (Extra impl)"]
90647    #[inline]
90648    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90649        <V as VisitMutAstPath>::visit_mut_expr_or_spreads(visitor, self, __ast_path)
90650    }
90651
90652    #[inline]
90653    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90654        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90655            let mut __ast_path = __ast_path.with_index_guard(__idx);
90656            <ExprOrSpread as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90657                item,
90658                visitor,
90659                &mut *__ast_path,
90660            )
90661        })
90662    }
90663}
90664#[cfg(any(docsrs, feature = "path"))]
90665#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90666impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<Box<Expr>> {
90667    #[doc = "Calls [VisitMutAstPath`::visit_mut_exprs`] with `self`. (Extra impl)"]
90668    #[inline]
90669    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90670        <V as VisitMutAstPath>::visit_mut_exprs(visitor, self, __ast_path)
90671    }
90672
90673    #[inline]
90674    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90675        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90676            let mut __ast_path = __ast_path.with_index_guard(__idx);
90677            <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90678                item,
90679                visitor,
90680                &mut *__ast_path,
90681            )
90682        })
90683    }
90684}
90685#[cfg(any(docsrs, feature = "path"))]
90686#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90687impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<ImportSpecifier> {
90688    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_specifiers`] with `self`. (Extra impl)"]
90689    #[inline]
90690    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90691        <V as VisitMutAstPath>::visit_mut_import_specifiers(visitor, self, __ast_path)
90692    }
90693
90694    #[inline]
90695    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90696        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90697            let mut __ast_path = __ast_path.with_index_guard(__idx);
90698            <ImportSpecifier as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90699                item,
90700                visitor,
90701                &mut *__ast_path,
90702            )
90703        })
90704    }
90705}
90706#[cfg(any(docsrs, feature = "path"))]
90707#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90708impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<ImportWithItem> {
90709    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_with_items`] with `self`. (Extra impl)"]
90710    #[inline]
90711    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90712        <V as VisitMutAstPath>::visit_mut_import_with_items(visitor, self, __ast_path)
90713    }
90714
90715    #[inline]
90716    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90717        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90718            let mut __ast_path = __ast_path.with_index_guard(__idx);
90719            <ImportWithItem as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90720                item,
90721                visitor,
90722                &mut *__ast_path,
90723            )
90724        })
90725    }
90726}
90727#[cfg(any(docsrs, feature = "path"))]
90728#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90729impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<JSXAttrOrSpread> {
90730    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_attr_or_spreads`] with `self`. (Extra impl)"]
90731    #[inline]
90732    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90733        <V as VisitMutAstPath>::visit_mut_jsx_attr_or_spreads(visitor, self, __ast_path)
90734    }
90735
90736    #[inline]
90737    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90738        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90739            let mut __ast_path = __ast_path.with_index_guard(__idx);
90740            <JSXAttrOrSpread as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90741                item,
90742                visitor,
90743                &mut *__ast_path,
90744            )
90745        })
90746    }
90747}
90748#[cfg(any(docsrs, feature = "path"))]
90749#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90750impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<JSXElementChild> {
90751    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_element_childs`] with `self`. (Extra impl)"]
90752    #[inline]
90753    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90754        <V as VisitMutAstPath>::visit_mut_jsx_element_childs(visitor, self, __ast_path)
90755    }
90756
90757    #[inline]
90758    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90759        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90760            let mut __ast_path = __ast_path.with_index_guard(__idx);
90761            <JSXElementChild as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90762                item,
90763                visitor,
90764                &mut *__ast_path,
90765            )
90766        })
90767    }
90768}
90769#[cfg(any(docsrs, feature = "path"))]
90770#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90771impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<ModuleItem> {
90772    #[doc = "Calls [VisitMutAstPath`::visit_mut_module_items`] with `self`. (Extra impl)"]
90773    #[inline]
90774    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90775        <V as VisitMutAstPath>::visit_mut_module_items(visitor, self, __ast_path)
90776    }
90777
90778    #[inline]
90779    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90780        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90781            let mut __ast_path = __ast_path.with_index_guard(__idx);
90782            <ModuleItem as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90783                item,
90784                visitor,
90785                &mut *__ast_path,
90786            )
90787        })
90788    }
90789}
90790#[cfg(any(docsrs, feature = "path"))]
90791#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90792impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<ObjectPatProp> {
90793    #[doc = "Calls [VisitMutAstPath`::visit_mut_object_pat_props`] with `self`. (Extra impl)"]
90794    #[inline]
90795    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90796        <V as VisitMutAstPath>::visit_mut_object_pat_props(visitor, self, __ast_path)
90797    }
90798
90799    #[inline]
90800    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90801        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90802            let mut __ast_path = __ast_path.with_index_guard(__idx);
90803            <ObjectPatProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90804                item,
90805                visitor,
90806                &mut *__ast_path,
90807            )
90808        })
90809    }
90810}
90811#[cfg(any(docsrs, feature = "path"))]
90812#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90813impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Accessibility> {
90814    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_accessibility`] with `self`. (Extra impl)"]
90815    #[inline]
90816    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90817        <V as VisitMutAstPath>::visit_mut_opt_accessibility(visitor, self, __ast_path)
90818    }
90819
90820    #[inline]
90821    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90822        match self {
90823            Some(inner) => <Accessibility as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90824                inner, visitor, __ast_path,
90825            ),
90826            None => {}
90827        }
90828    }
90829}
90830#[cfg(any(docsrs, feature = "path"))]
90831#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90832impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<swc_atoms::Atom> {
90833    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_atom`] with `self`. (Extra impl)"]
90834    #[inline]
90835    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90836        <V as VisitMutAstPath>::visit_mut_opt_atom(visitor, self, __ast_path)
90837    }
90838
90839    #[inline]
90840    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90841        match self {
90842            Some(inner) => <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90843                inner, visitor, __ast_path,
90844            ),
90845            None => {}
90846        }
90847    }
90848}
90849#[cfg(any(docsrs, feature = "path"))]
90850#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90851impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<BlockStmt> {
90852    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_block_stmt`] with `self`. (Extra impl)"]
90853    #[inline]
90854    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90855        <V as VisitMutAstPath>::visit_mut_opt_block_stmt(visitor, self, __ast_path)
90856    }
90857
90858    #[inline]
90859    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90860        match self {
90861            Some(inner) => <BlockStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90862                inner, visitor, __ast_path,
90863            ),
90864            None => {}
90865        }
90866    }
90867}
90868#[cfg(any(docsrs, feature = "path"))]
90869#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90870impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<CatchClause> {
90871    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_catch_clause`] with `self`. (Extra impl)"]
90872    #[inline]
90873    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90874        <V as VisitMutAstPath>::visit_mut_opt_catch_clause(visitor, self, __ast_path)
90875    }
90876
90877    #[inline]
90878    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90879        match self {
90880            Some(inner) => <CatchClause as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90881                inner, visitor, __ast_path,
90882            ),
90883            None => {}
90884        }
90885    }
90886}
90887#[cfg(any(docsrs, feature = "path"))]
90888#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90889impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Box<Expr>> {
90890    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_expr`] with `self`. (Extra impl)"]
90891    #[inline]
90892    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90893        <V as VisitMutAstPath>::visit_mut_opt_expr(visitor, self, __ast_path)
90894    }
90895
90896    #[inline]
90897    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90898        match self {
90899            Some(inner) => <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90900                inner, visitor, __ast_path,
90901            ),
90902            None => {}
90903        }
90904    }
90905}
90906#[cfg(any(docsrs, feature = "path"))]
90907#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90908impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<ExprOrSpread> {
90909    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_expr_or_spread`] with `self`. (Extra impl)"]
90910    #[inline]
90911    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90912        <V as VisitMutAstPath>::visit_mut_opt_expr_or_spread(visitor, self, __ast_path)
90913    }
90914
90915    #[inline]
90916    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90917        match self {
90918            Some(inner) => <ExprOrSpread as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90919                inner, visitor, __ast_path,
90920            ),
90921            None => {}
90922        }
90923    }
90924}
90925#[cfg(any(docsrs, feature = "path"))]
90926#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90927impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Vec<ExprOrSpread>> {
90928    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_expr_or_spreads`] 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_opt_expr_or_spreads(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        match self {
90937            Some(inner) => <Vec<ExprOrSpread> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90938                inner, visitor, __ast_path,
90939            ),
90940            None => {}
90941        }
90942    }
90943}
90944#[cfg(any(docsrs, feature = "path"))]
90945#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90946impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Ident> {
90947    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_ident`] with `self`. (Extra impl)"]
90948    #[inline]
90949    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90950        <V as VisitMutAstPath>::visit_mut_opt_ident(visitor, self, __ast_path)
90951    }
90952
90953    #[inline]
90954    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90955        match self {
90956            Some(inner) => <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90957                inner, visitor, __ast_path,
90958            ),
90959            None => {}
90960        }
90961    }
90962}
90963#[cfg(any(docsrs, feature = "path"))]
90964#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90965impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<JSXAttrValue> {
90966    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_jsx_attr_value`] with `self`. (Extra impl)"]
90967    #[inline]
90968    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90969        <V as VisitMutAstPath>::visit_mut_opt_jsx_attr_value(visitor, self, __ast_path)
90970    }
90971
90972    #[inline]
90973    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90974        match self {
90975            Some(inner) => <JSXAttrValue as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90976                inner, visitor, __ast_path,
90977            ),
90978            None => {}
90979        }
90980    }
90981}
90982#[cfg(any(docsrs, feature = "path"))]
90983#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90984impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<JSXClosingElement> {
90985    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_jsx_closing_element`] with `self`. (Extra impl)"]
90986    #[inline]
90987    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90988        <V as VisitMutAstPath>::visit_mut_opt_jsx_closing_element(visitor, self, __ast_path)
90989    }
90990
90991    #[inline]
90992    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90993        match self {
90994            Some(inner) => <JSXClosingElement as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90995                inner, visitor, __ast_path,
90996            ),
90997            None => {}
90998        }
90999    }
91000}
91001#[cfg(any(docsrs, feature = "path"))]
91002#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91003impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<ModuleExportName> {
91004    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_module_export_name`] with `self`. (Extra impl)"]
91005    #[inline]
91006    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91007        <V as VisitMutAstPath>::visit_mut_opt_module_export_name(visitor, self, __ast_path)
91008    }
91009
91010    #[inline]
91011    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91012        match self {
91013            Some(inner) => <ModuleExportName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91014                inner, visitor, __ast_path,
91015            ),
91016            None => {}
91017        }
91018    }
91019}
91020#[cfg(any(docsrs, feature = "path"))]
91021#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91022impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Box<ObjectLit>> {
91023    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_object_lit`] with `self`. (Extra impl)"]
91024    #[inline]
91025    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91026        <V as VisitMutAstPath>::visit_mut_opt_object_lit(visitor, self, __ast_path)
91027    }
91028
91029    #[inline]
91030    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91031        match self {
91032            Some(inner) => <Box<ObjectLit> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91033                inner, visitor, __ast_path,
91034            ),
91035            None => {}
91036        }
91037    }
91038}
91039#[cfg(any(docsrs, feature = "path"))]
91040#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91041impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Pat> {
91042    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_pat`] with `self`. (Extra impl)"]
91043    #[inline]
91044    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91045        <V as VisitMutAstPath>::visit_mut_opt_pat(visitor, self, __ast_path)
91046    }
91047
91048    #[inline]
91049    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91050        match self {
91051            Some(inner) => {
91052                <Pat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(inner, visitor, __ast_path)
91053            }
91054            None => {}
91055        }
91056    }
91057}
91058#[cfg(any(docsrs, feature = "path"))]
91059#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91060impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<swc_common::Span> {
91061    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_span`] with `self`. (Extra impl)"]
91062    #[inline]
91063    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91064        <V as VisitMutAstPath>::visit_mut_opt_span(visitor, self, __ast_path)
91065    }
91066
91067    #[inline]
91068    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91069        match self {
91070            Some(inner) => <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91071                inner, visitor, __ast_path,
91072            ),
91073            None => {}
91074        }
91075    }
91076}
91077#[cfg(any(docsrs, feature = "path"))]
91078#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91079impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Box<Stmt>> {
91080    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_stmt`] with `self`. (Extra impl)"]
91081    #[inline]
91082    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91083        <V as VisitMutAstPath>::visit_mut_opt_stmt(visitor, self, __ast_path)
91084    }
91085
91086    #[inline]
91087    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91088        match self {
91089            Some(inner) => <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91090                inner, visitor, __ast_path,
91091            ),
91092            None => {}
91093        }
91094    }
91095}
91096#[cfg(any(docsrs, feature = "path"))]
91097#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91098impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Box<Str>> {
91099    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_str`] with `self`. (Extra impl)"]
91100    #[inline]
91101    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91102        <V as VisitMutAstPath>::visit_mut_opt_str(visitor, self, __ast_path)
91103    }
91104
91105    #[inline]
91106    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91107        match self {
91108            Some(inner) => <Box<Str> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91109                inner, visitor, __ast_path,
91110            ),
91111            None => {}
91112        }
91113    }
91114}
91115#[cfg(any(docsrs, feature = "path"))]
91116#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91117impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<TruePlusMinus> {
91118    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_true_plus_minus`] with `self`. (Extra impl)"]
91119    #[inline]
91120    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91121        <V as VisitMutAstPath>::visit_mut_opt_true_plus_minus(visitor, self, __ast_path)
91122    }
91123
91124    #[inline]
91125    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91126        match self {
91127            Some(inner) => <TruePlusMinus as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91128                inner, visitor, __ast_path,
91129            ),
91130            None => {}
91131        }
91132    }
91133}
91134#[cfg(any(docsrs, feature = "path"))]
91135#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91136impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<TsEntityName> {
91137    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_ts_entity_name`] with `self`. (Extra impl)"]
91138    #[inline]
91139    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91140        <V as VisitMutAstPath>::visit_mut_opt_ts_entity_name(visitor, self, __ast_path)
91141    }
91142
91143    #[inline]
91144    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91145        match self {
91146            Some(inner) => <TsEntityName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91147                inner, visitor, __ast_path,
91148            ),
91149            None => {}
91150        }
91151    }
91152}
91153#[cfg(any(docsrs, feature = "path"))]
91154#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91155impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<TsImportCallOptions> {
91156    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_ts_import_call_options`] with `self`. (Extra \
91157             impl)"]
91158    #[inline]
91159    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91160        <V as VisitMutAstPath>::visit_mut_opt_ts_import_call_options(visitor, self, __ast_path)
91161    }
91162
91163    #[inline]
91164    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91165        match self {
91166            Some(inner) => {
91167                <TsImportCallOptions as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91168                    inner, visitor, __ast_path,
91169                )
91170            }
91171            None => {}
91172        }
91173    }
91174}
91175#[cfg(any(docsrs, feature = "path"))]
91176#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91177impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<TsNamespaceBody> {
91178    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_ts_namespace_body`] with `self`. (Extra impl)"]
91179    #[inline]
91180    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91181        <V as VisitMutAstPath>::visit_mut_opt_ts_namespace_body(visitor, self, __ast_path)
91182    }
91183
91184    #[inline]
91185    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91186        match self {
91187            Some(inner) => <TsNamespaceBody as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91188                inner, visitor, __ast_path,
91189            ),
91190            None => {}
91191        }
91192    }
91193}
91194#[cfg(any(docsrs, feature = "path"))]
91195#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91196impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Box<TsType>> {
91197    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_ts_type`] with `self`. (Extra impl)"]
91198    #[inline]
91199    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91200        <V as VisitMutAstPath>::visit_mut_opt_ts_type(visitor, self, __ast_path)
91201    }
91202
91203    #[inline]
91204    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91205        match self {
91206            Some(inner) => <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91207                inner, visitor, __ast_path,
91208            ),
91209            None => {}
91210        }
91211    }
91212}
91213#[cfg(any(docsrs, feature = "path"))]
91214#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91215impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Box<TsTypeAnn>> {
91216    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_ts_type_ann`] with `self`. (Extra impl)"]
91217    #[inline]
91218    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91219        <V as VisitMutAstPath>::visit_mut_opt_ts_type_ann(visitor, self, __ast_path)
91220    }
91221
91222    #[inline]
91223    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91224        match self {
91225            Some(inner) => <Box<TsTypeAnn> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91226                inner, visitor, __ast_path,
91227            ),
91228            None => {}
91229        }
91230    }
91231}
91232#[cfg(any(docsrs, feature = "path"))]
91233#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91234impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Box<TsTypeParamDecl>> {
91235    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_ts_type_param_decl`] with `self`. (Extra impl)"]
91236    #[inline]
91237    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91238        <V as VisitMutAstPath>::visit_mut_opt_ts_type_param_decl(visitor, self, __ast_path)
91239    }
91240
91241    #[inline]
91242    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91243        match self {
91244            Some(inner) => {
91245                <Box<TsTypeParamDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91246                    inner, visitor, __ast_path,
91247                )
91248            }
91249            None => {}
91250        }
91251    }
91252}
91253#[cfg(any(docsrs, feature = "path"))]
91254#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91255impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Box<TsTypeParamInstantiation>> {
91256    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_ts_type_param_instantiation`] with `self`. \
91257             (Extra impl)"]
91258    #[inline]
91259    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91260        <V as VisitMutAstPath>::visit_mut_opt_ts_type_param_instantiation(visitor, self, __ast_path)
91261    }
91262
91263    #[inline]
91264    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91265        match self {
91266            Some(inner) => {
91267                <Box<TsTypeParamInstantiation> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91268                    inner, visitor, __ast_path,
91269                )
91270            }
91271            None => {}
91272        }
91273    }
91274}
91275#[cfg(any(docsrs, feature = "path"))]
91276#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91277impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<VarDeclOrExpr> {
91278    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_var_decl_or_expr`] with `self`. (Extra impl)"]
91279    #[inline]
91280    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91281        <V as VisitMutAstPath>::visit_mut_opt_var_decl_or_expr(visitor, self, __ast_path)
91282    }
91283
91284    #[inline]
91285    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91286        match self {
91287            Some(inner) => <VarDeclOrExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91288                inner, visitor, __ast_path,
91289            ),
91290            None => {}
91291        }
91292    }
91293}
91294#[cfg(any(docsrs, feature = "path"))]
91295#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91296impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<Option<ExprOrSpread>> {
91297    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_vec_expr_or_spreads`] with `self`. (Extra impl)"]
91298    #[inline]
91299    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91300        <V as VisitMutAstPath>::visit_mut_opt_vec_expr_or_spreads(visitor, self, __ast_path)
91301    }
91302
91303    #[inline]
91304    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91305        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91306            let mut __ast_path = __ast_path.with_index_guard(__idx);
91307            <Option<ExprOrSpread> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91308                item,
91309                visitor,
91310                &mut *__ast_path,
91311            )
91312        })
91313    }
91314}
91315#[cfg(any(docsrs, feature = "path"))]
91316#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91317impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<Option<Pat>> {
91318    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_vec_pats`] with `self`. (Extra impl)"]
91319    #[inline]
91320    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91321        <V as VisitMutAstPath>::visit_mut_opt_vec_pats(visitor, self, __ast_path)
91322    }
91323
91324    #[inline]
91325    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91326        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91327            let mut __ast_path = __ast_path.with_index_guard(__idx);
91328            <Option<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91329                item,
91330                visitor,
91331                &mut *__ast_path,
91332            )
91333        })
91334    }
91335}
91336#[cfg(any(docsrs, feature = "path"))]
91337#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91338impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<ParamOrTsParamProp> {
91339    #[doc = "Calls [VisitMutAstPath`::visit_mut_param_or_ts_param_props`] with `self`. (Extra impl)"]
91340    #[inline]
91341    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91342        <V as VisitMutAstPath>::visit_mut_param_or_ts_param_props(visitor, self, __ast_path)
91343    }
91344
91345    #[inline]
91346    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91347        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91348            let mut __ast_path = __ast_path.with_index_guard(__idx);
91349            <ParamOrTsParamProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91350                item,
91351                visitor,
91352                &mut *__ast_path,
91353            )
91354        })
91355    }
91356}
91357#[cfg(any(docsrs, feature = "path"))]
91358#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91359impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<Param> {
91360    #[doc = "Calls [VisitMutAstPath`::visit_mut_params`] with `self`. (Extra impl)"]
91361    #[inline]
91362    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91363        <V as VisitMutAstPath>::visit_mut_params(visitor, self, __ast_path)
91364    }
91365
91366    #[inline]
91367    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91368        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91369            let mut __ast_path = __ast_path.with_index_guard(__idx);
91370            <Param as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91371                item,
91372                visitor,
91373                &mut *__ast_path,
91374            )
91375        })
91376    }
91377}
91378#[cfg(any(docsrs, feature = "path"))]
91379#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91380impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<Pat> {
91381    #[doc = "Calls [VisitMutAstPath`::visit_mut_pats`] with `self`. (Extra impl)"]
91382    #[inline]
91383    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91384        <V as VisitMutAstPath>::visit_mut_pats(visitor, self, __ast_path)
91385    }
91386
91387    #[inline]
91388    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91389        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91390            let mut __ast_path = __ast_path.with_index_guard(__idx);
91391            <Pat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91392                item,
91393                visitor,
91394                &mut *__ast_path,
91395            )
91396        })
91397    }
91398}
91399#[cfg(any(docsrs, feature = "path"))]
91400#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91401impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<PropOrSpread> {
91402    #[doc = "Calls [VisitMutAstPath`::visit_mut_prop_or_spreads`] with `self`. (Extra impl)"]
91403    #[inline]
91404    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91405        <V as VisitMutAstPath>::visit_mut_prop_or_spreads(visitor, self, __ast_path)
91406    }
91407
91408    #[inline]
91409    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91410        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91411            let mut __ast_path = __ast_path.with_index_guard(__idx);
91412            <PropOrSpread as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91413                item,
91414                visitor,
91415                &mut *__ast_path,
91416            )
91417        })
91418    }
91419}
91420#[cfg(any(docsrs, feature = "path"))]
91421#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91422impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for swc_common::Span {
91423    #[doc = "Calls [VisitMutAstPath`::visit_mut_span`] with `self`. (Extra impl)"]
91424    #[inline]
91425    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91426        <V as VisitMutAstPath>::visit_mut_span(visitor, self, __ast_path)
91427    }
91428
91429    #[inline]
91430    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91431        {}
91432    }
91433}
91434#[cfg(any(docsrs, feature = "path"))]
91435#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91436impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<Stmt> {
91437    #[doc = "Calls [VisitMutAstPath`::visit_mut_stmts`] with `self`. (Extra impl)"]
91438    #[inline]
91439    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91440        <V as VisitMutAstPath>::visit_mut_stmts(visitor, self, __ast_path)
91441    }
91442
91443    #[inline]
91444    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91445        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91446            let mut __ast_path = __ast_path.with_index_guard(__idx);
91447            <Stmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91448                item,
91449                visitor,
91450                &mut *__ast_path,
91451            )
91452        })
91453    }
91454}
91455#[cfg(any(docsrs, feature = "path"))]
91456#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91457impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<SwitchCase> {
91458    #[doc = "Calls [VisitMutAstPath`::visit_mut_switch_cases`] with `self`. (Extra impl)"]
91459    #[inline]
91460    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91461        <V as VisitMutAstPath>::visit_mut_switch_cases(visitor, self, __ast_path)
91462    }
91463
91464    #[inline]
91465    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91466        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91467            let mut __ast_path = __ast_path.with_index_guard(__idx);
91468            <SwitchCase as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91469                item,
91470                visitor,
91471                &mut *__ast_path,
91472            )
91473        })
91474    }
91475}
91476#[cfg(any(docsrs, feature = "path"))]
91477#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91478impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for swc_common::SyntaxContext {
91479    #[doc = "Calls [VisitMutAstPath`::visit_mut_syntax_context`] with `self`. (Extra impl)"]
91480    #[inline]
91481    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91482        <V as VisitMutAstPath>::visit_mut_syntax_context(visitor, self, __ast_path)
91483    }
91484
91485    #[inline]
91486    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91487        {}
91488    }
91489}
91490#[cfg(any(docsrs, feature = "path"))]
91491#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91492impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<TplElement> {
91493    #[doc = "Calls [VisitMutAstPath`::visit_mut_tpl_elements`] with `self`. (Extra impl)"]
91494    #[inline]
91495    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91496        <V as VisitMutAstPath>::visit_mut_tpl_elements(visitor, self, __ast_path)
91497    }
91498
91499    #[inline]
91500    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91501        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91502            let mut __ast_path = __ast_path.with_index_guard(__idx);
91503            <TplElement as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91504                item,
91505                visitor,
91506                &mut *__ast_path,
91507            )
91508        })
91509    }
91510}
91511#[cfg(any(docsrs, feature = "path"))]
91512#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91513impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<TsEnumMember> {
91514    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_enum_members`] with `self`. (Extra impl)"]
91515    #[inline]
91516    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91517        <V as VisitMutAstPath>::visit_mut_ts_enum_members(visitor, self, __ast_path)
91518    }
91519
91520    #[inline]
91521    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91522        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91523            let mut __ast_path = __ast_path.with_index_guard(__idx);
91524            <TsEnumMember as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91525                item,
91526                visitor,
91527                &mut *__ast_path,
91528            )
91529        })
91530    }
91531}
91532#[cfg(any(docsrs, feature = "path"))]
91533#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91534impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<TsExprWithTypeArgs> {
91535    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_expr_with_type_argss`] with `self`. (Extra impl)"]
91536    #[inline]
91537    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91538        <V as VisitMutAstPath>::visit_mut_ts_expr_with_type_argss(visitor, self, __ast_path)
91539    }
91540
91541    #[inline]
91542    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91543        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91544            let mut __ast_path = __ast_path.with_index_guard(__idx);
91545            <TsExprWithTypeArgs as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91546                item,
91547                visitor,
91548                &mut *__ast_path,
91549            )
91550        })
91551    }
91552}
91553#[cfg(any(docsrs, feature = "path"))]
91554#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91555impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<TsFnParam> {
91556    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_fn_params`] with `self`. (Extra impl)"]
91557    #[inline]
91558    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91559        <V as VisitMutAstPath>::visit_mut_ts_fn_params(visitor, self, __ast_path)
91560    }
91561
91562    #[inline]
91563    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91564        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91565            let mut __ast_path = __ast_path.with_index_guard(__idx);
91566            <TsFnParam as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91567                item,
91568                visitor,
91569                &mut *__ast_path,
91570            )
91571        })
91572    }
91573}
91574#[cfg(any(docsrs, feature = "path"))]
91575#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91576impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<TsTupleElement> {
91577    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_tuple_elements`] with `self`. (Extra impl)"]
91578    #[inline]
91579    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91580        <V as VisitMutAstPath>::visit_mut_ts_tuple_elements(visitor, self, __ast_path)
91581    }
91582
91583    #[inline]
91584    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91585        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91586            let mut __ast_path = __ast_path.with_index_guard(__idx);
91587            <TsTupleElement as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91588                item,
91589                visitor,
91590                &mut *__ast_path,
91591            )
91592        })
91593    }
91594}
91595#[cfg(any(docsrs, feature = "path"))]
91596#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91597impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<TsTypeElement> {
91598    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_elements`] with `self`. (Extra impl)"]
91599    #[inline]
91600    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91601        <V as VisitMutAstPath>::visit_mut_ts_type_elements(visitor, self, __ast_path)
91602    }
91603
91604    #[inline]
91605    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91606        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91607            let mut __ast_path = __ast_path.with_index_guard(__idx);
91608            <TsTypeElement as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91609                item,
91610                visitor,
91611                &mut *__ast_path,
91612            )
91613        })
91614    }
91615}
91616#[cfg(any(docsrs, feature = "path"))]
91617#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91618impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<TsTypeParam> {
91619    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_params`] with `self`. (Extra impl)"]
91620    #[inline]
91621    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91622        <V as VisitMutAstPath>::visit_mut_ts_type_params(visitor, self, __ast_path)
91623    }
91624
91625    #[inline]
91626    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91627        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91628            let mut __ast_path = __ast_path.with_index_guard(__idx);
91629            <TsTypeParam as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91630                item,
91631                visitor,
91632                &mut *__ast_path,
91633            )
91634        })
91635    }
91636}
91637#[cfg(any(docsrs, feature = "path"))]
91638#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91639impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<Box<TsType>> {
91640    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_types`] with `self`. (Extra impl)"]
91641    #[inline]
91642    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91643        <V as VisitMutAstPath>::visit_mut_ts_types(visitor, self, __ast_path)
91644    }
91645
91646    #[inline]
91647    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91648        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91649            let mut __ast_path = __ast_path.with_index_guard(__idx);
91650            <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91651                item,
91652                visitor,
91653                &mut *__ast_path,
91654            )
91655        })
91656    }
91657}
91658#[cfg(any(docsrs, feature = "path"))]
91659#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91660impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<VarDeclarator> {
91661    #[doc = "Calls [VisitMutAstPath`::visit_mut_var_declarators`] with `self`. (Extra impl)"]
91662    #[inline]
91663    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91664        <V as VisitMutAstPath>::visit_mut_var_declarators(visitor, self, __ast_path)
91665    }
91666
91667    #[inline]
91668    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91669        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91670            let mut __ast_path = __ast_path.with_index_guard(__idx);
91671            <VarDeclarator as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91672                item,
91673                visitor,
91674                &mut *__ast_path,
91675            )
91676        })
91677    }
91678}
91679#[cfg(any(docsrs, feature = "path"))]
91680#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91681impl<V, T> VisitMutWithAstPath<V> for std::boxed::Box<T>
91682where
91683    V: ?Sized + VisitMutAstPath,
91684    T: VisitMutWithAstPath<V>,
91685{
91686    #[inline]
91687    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91688        let v = <T as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91689            &mut **self,
91690            visitor,
91691            __ast_path,
91692        );
91693        v
91694    }
91695
91696    #[inline]
91697    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91698        let v = <T as VisitMutWithAstPath<V>>::visit_mut_children_with_ast_path(
91699            &mut **self,
91700            visitor,
91701            __ast_path,
91702        );
91703        v
91704    }
91705}
91706#[doc = r" A visitor trait for traversing the AST."]
91707pub trait Fold {
91708    #[doc = "Visit a node of type `Accessibility`.\n\nBy default, this method calls \
91709             [`Accessibility::fold_children_with`]. If you want to recurse, you need to call it \
91710             manually."]
91711    #[inline]
91712    fn fold_accessibility(&mut self, node: Accessibility) -> Accessibility {
91713        <Accessibility as FoldWith<Self>>::fold_children_with(node, self)
91714    }
91715    #[doc = "Visit a node of type `ArrayLit`.\n\nBy default, this method calls \
91716             [`ArrayLit::fold_children_with`]. If you want to recurse, you need to call it \
91717             manually."]
91718    #[inline]
91719    fn fold_array_lit(&mut self, node: ArrayLit) -> ArrayLit {
91720        <ArrayLit as FoldWith<Self>>::fold_children_with(node, self)
91721    }
91722    #[doc = "Visit a node of type `ArrayPat`.\n\nBy default, this method calls \
91723             [`ArrayPat::fold_children_with`]. If you want to recurse, you need to call it \
91724             manually."]
91725    #[inline]
91726    fn fold_array_pat(&mut self, node: ArrayPat) -> ArrayPat {
91727        <ArrayPat as FoldWith<Self>>::fold_children_with(node, self)
91728    }
91729    #[doc = "Visit a node of type `ArrowExpr`.\n\nBy default, this method calls \
91730             [`ArrowExpr::fold_children_with`]. If you want to recurse, you need to call it \
91731             manually."]
91732    #[inline]
91733    fn fold_arrow_expr(&mut self, node: ArrowExpr) -> ArrowExpr {
91734        <ArrowExpr as FoldWith<Self>>::fold_children_with(node, self)
91735    }
91736    #[doc = "Visit a node of type `AssignExpr`.\n\nBy default, this method calls \
91737             [`AssignExpr::fold_children_with`]. If you want to recurse, you need to call it \
91738             manually."]
91739    #[inline]
91740    fn fold_assign_expr(&mut self, node: AssignExpr) -> AssignExpr {
91741        <AssignExpr as FoldWith<Self>>::fold_children_with(node, self)
91742    }
91743    #[doc = "Visit a node of type `AssignOp`.\n\nBy default, this method calls \
91744             [`AssignOp::fold_children_with`]. If you want to recurse, you need to call it \
91745             manually."]
91746    #[inline]
91747    fn fold_assign_op(&mut self, node: AssignOp) -> AssignOp {
91748        <AssignOp as FoldWith<Self>>::fold_children_with(node, self)
91749    }
91750    #[doc = "Visit a node of type `AssignPat`.\n\nBy default, this method calls \
91751             [`AssignPat::fold_children_with`]. If you want to recurse, you need to call it \
91752             manually."]
91753    #[inline]
91754    fn fold_assign_pat(&mut self, node: AssignPat) -> AssignPat {
91755        <AssignPat as FoldWith<Self>>::fold_children_with(node, self)
91756    }
91757    #[doc = "Visit a node of type `AssignPatProp`.\n\nBy default, this method calls \
91758             [`AssignPatProp::fold_children_with`]. If you want to recurse, you need to call it \
91759             manually."]
91760    #[inline]
91761    fn fold_assign_pat_prop(&mut self, node: AssignPatProp) -> AssignPatProp {
91762        <AssignPatProp as FoldWith<Self>>::fold_children_with(node, self)
91763    }
91764    #[doc = "Visit a node of type `AssignProp`.\n\nBy default, this method calls \
91765             [`AssignProp::fold_children_with`]. If you want to recurse, you need to call it \
91766             manually."]
91767    #[inline]
91768    fn fold_assign_prop(&mut self, node: AssignProp) -> AssignProp {
91769        <AssignProp as FoldWith<Self>>::fold_children_with(node, self)
91770    }
91771    #[doc = "Visit a node of type `AssignTarget`.\n\nBy default, this method calls \
91772             [`AssignTarget::fold_children_with`]. If you want to recurse, you need to call it \
91773             manually."]
91774    #[inline]
91775    fn fold_assign_target(&mut self, node: AssignTarget) -> AssignTarget {
91776        <AssignTarget as FoldWith<Self>>::fold_children_with(node, self)
91777    }
91778    #[doc = "Visit a node of type `AssignTargetPat`.\n\nBy default, this method calls \
91779             [`AssignTargetPat::fold_children_with`]. If you want to recurse, you need to call it \
91780             manually."]
91781    #[inline]
91782    fn fold_assign_target_pat(&mut self, node: AssignTargetPat) -> AssignTargetPat {
91783        <AssignTargetPat as FoldWith<Self>>::fold_children_with(node, self)
91784    }
91785    #[doc = "Visit a node of type `swc_atoms :: Atom`.\n\nBy default, this method calls \
91786             [`swc_atoms :: Atom::fold_children_with`]. If you want to recurse, you need to call \
91787             it manually."]
91788    #[inline]
91789    fn fold_atom(&mut self, node: swc_atoms::Atom) -> swc_atoms::Atom {
91790        <swc_atoms::Atom as FoldWith<Self>>::fold_children_with(node, self)
91791    }
91792    #[doc = "Visit a node of type `AutoAccessor`.\n\nBy default, this method calls \
91793             [`AutoAccessor::fold_children_with`]. If you want to recurse, you need to call it \
91794             manually."]
91795    #[inline]
91796    fn fold_auto_accessor(&mut self, node: AutoAccessor) -> AutoAccessor {
91797        <AutoAccessor as FoldWith<Self>>::fold_children_with(node, self)
91798    }
91799    #[doc = "Visit a node of type `AwaitExpr`.\n\nBy default, this method calls \
91800             [`AwaitExpr::fold_children_with`]. If you want to recurse, you need to call it \
91801             manually."]
91802    #[inline]
91803    fn fold_await_expr(&mut self, node: AwaitExpr) -> AwaitExpr {
91804        <AwaitExpr as FoldWith<Self>>::fold_children_with(node, self)
91805    }
91806    #[doc = "Visit a node of type `BigInt`.\n\nBy default, this method calls \
91807             [`BigInt::fold_children_with`]. If you want to recurse, you need to call it manually."]
91808    #[inline]
91809    fn fold_big_int(&mut self, node: BigInt) -> BigInt {
91810        <BigInt as FoldWith<Self>>::fold_children_with(node, self)
91811    }
91812    #[doc = "Visit a node of type `BigIntValue`.\n\nBy default, this method calls \
91813             [`BigIntValue::fold_children_with`]. If you want to recurse, you need to call it \
91814             manually."]
91815    #[inline]
91816    fn fold_big_int_value(&mut self, node: BigIntValue) -> BigIntValue {
91817        <BigIntValue as FoldWith<Self>>::fold_children_with(node, self)
91818    }
91819    #[doc = "Visit a node of type `BinExpr`.\n\nBy default, this method calls \
91820             [`BinExpr::fold_children_with`]. If you want to recurse, you need to call it manually."]
91821    #[inline]
91822    fn fold_bin_expr(&mut self, node: BinExpr) -> BinExpr {
91823        <BinExpr as FoldWith<Self>>::fold_children_with(node, self)
91824    }
91825    #[doc = "Visit a node of type `BinaryOp`.\n\nBy default, this method calls \
91826             [`BinaryOp::fold_children_with`]. If you want to recurse, you need to call it \
91827             manually."]
91828    #[inline]
91829    fn fold_binary_op(&mut self, node: BinaryOp) -> BinaryOp {
91830        <BinaryOp as FoldWith<Self>>::fold_children_with(node, self)
91831    }
91832    #[doc = "Visit a node of type `BindingIdent`.\n\nBy default, this method calls \
91833             [`BindingIdent::fold_children_with`]. If you want to recurse, you need to call it \
91834             manually."]
91835    #[inline]
91836    fn fold_binding_ident(&mut self, node: BindingIdent) -> BindingIdent {
91837        <BindingIdent as FoldWith<Self>>::fold_children_with(node, self)
91838    }
91839    #[doc = "Visit a node of type `BlockStmt`.\n\nBy default, this method calls \
91840             [`BlockStmt::fold_children_with`]. If you want to recurse, you need to call it \
91841             manually."]
91842    #[inline]
91843    fn fold_block_stmt(&mut self, node: BlockStmt) -> BlockStmt {
91844        <BlockStmt as FoldWith<Self>>::fold_children_with(node, self)
91845    }
91846    #[doc = "Visit a node of type `BlockStmtOrExpr`.\n\nBy default, this method calls \
91847             [`BlockStmtOrExpr::fold_children_with`]. If you want to recurse, you need to call it \
91848             manually."]
91849    #[inline]
91850    fn fold_block_stmt_or_expr(&mut self, node: BlockStmtOrExpr) -> BlockStmtOrExpr {
91851        <BlockStmtOrExpr as FoldWith<Self>>::fold_children_with(node, self)
91852    }
91853    #[doc = "Visit a node of type `Bool`.\n\nBy default, this method calls \
91854             [`Bool::fold_children_with`]. If you want to recurse, you need to call it manually."]
91855    #[inline]
91856    fn fold_bool(&mut self, node: Bool) -> Bool {
91857        <Bool as FoldWith<Self>>::fold_children_with(node, self)
91858    }
91859    #[doc = "Visit a node of type `BreakStmt`.\n\nBy default, this method calls \
91860             [`BreakStmt::fold_children_with`]. If you want to recurse, you need to call it \
91861             manually."]
91862    #[inline]
91863    fn fold_break_stmt(&mut self, node: BreakStmt) -> BreakStmt {
91864        <BreakStmt as FoldWith<Self>>::fold_children_with(node, self)
91865    }
91866    #[doc = "Visit a node of type `CallExpr`.\n\nBy default, this method calls \
91867             [`CallExpr::fold_children_with`]. If you want to recurse, you need to call it \
91868             manually."]
91869    #[inline]
91870    fn fold_call_expr(&mut self, node: CallExpr) -> CallExpr {
91871        <CallExpr as FoldWith<Self>>::fold_children_with(node, self)
91872    }
91873    #[doc = "Visit a node of type `Callee`.\n\nBy default, this method calls \
91874             [`Callee::fold_children_with`]. If you want to recurse, you need to call it manually."]
91875    #[inline]
91876    fn fold_callee(&mut self, node: Callee) -> Callee {
91877        <Callee as FoldWith<Self>>::fold_children_with(node, self)
91878    }
91879    #[doc = "Visit a node of type `CatchClause`.\n\nBy default, this method calls \
91880             [`CatchClause::fold_children_with`]. If you want to recurse, you need to call it \
91881             manually."]
91882    #[inline]
91883    fn fold_catch_clause(&mut self, node: CatchClause) -> CatchClause {
91884        <CatchClause as FoldWith<Self>>::fold_children_with(node, self)
91885    }
91886    #[doc = "Visit a node of type `Class`.\n\nBy default, this method calls \
91887             [`Class::fold_children_with`]. If you want to recurse, you need to call it manually."]
91888    #[inline]
91889    fn fold_class(&mut self, node: Class) -> Class {
91890        <Class as FoldWith<Self>>::fold_children_with(node, self)
91891    }
91892    #[doc = "Visit a node of type `ClassDecl`.\n\nBy default, this method calls \
91893             [`ClassDecl::fold_children_with`]. If you want to recurse, you need to call it \
91894             manually."]
91895    #[inline]
91896    fn fold_class_decl(&mut self, node: ClassDecl) -> ClassDecl {
91897        <ClassDecl as FoldWith<Self>>::fold_children_with(node, self)
91898    }
91899    #[doc = "Visit a node of type `ClassExpr`.\n\nBy default, this method calls \
91900             [`ClassExpr::fold_children_with`]. If you want to recurse, you need to call it \
91901             manually."]
91902    #[inline]
91903    fn fold_class_expr(&mut self, node: ClassExpr) -> ClassExpr {
91904        <ClassExpr as FoldWith<Self>>::fold_children_with(node, self)
91905    }
91906    #[doc = "Visit a node of type `ClassMember`.\n\nBy default, this method calls \
91907             [`ClassMember::fold_children_with`]. If you want to recurse, you need to call it \
91908             manually."]
91909    #[inline]
91910    fn fold_class_member(&mut self, node: ClassMember) -> ClassMember {
91911        <ClassMember as FoldWith<Self>>::fold_children_with(node, self)
91912    }
91913    #[doc = "Visit a node of type `Vec < ClassMember >`.\n\nBy default, this method calls [`Vec < \
91914             ClassMember >::fold_children_with`]. If you want to recurse, you need to call it \
91915             manually."]
91916    #[inline]
91917    fn fold_class_members(&mut self, node: Vec<ClassMember>) -> Vec<ClassMember> {
91918        <Vec<ClassMember> as FoldWith<Self>>::fold_children_with(node, self)
91919    }
91920    #[doc = "Visit a node of type `ClassMethod`.\n\nBy default, this method calls \
91921             [`ClassMethod::fold_children_with`]. If you want to recurse, you need to call it \
91922             manually."]
91923    #[inline]
91924    fn fold_class_method(&mut self, node: ClassMethod) -> ClassMethod {
91925        <ClassMethod as FoldWith<Self>>::fold_children_with(node, self)
91926    }
91927    #[doc = "Visit a node of type `ClassProp`.\n\nBy default, this method calls \
91928             [`ClassProp::fold_children_with`]. If you want to recurse, you need to call it \
91929             manually."]
91930    #[inline]
91931    fn fold_class_prop(&mut self, node: ClassProp) -> ClassProp {
91932        <ClassProp as FoldWith<Self>>::fold_children_with(node, self)
91933    }
91934    #[doc = "Visit a node of type `ComputedPropName`.\n\nBy default, this method calls \
91935             [`ComputedPropName::fold_children_with`]. If you want to recurse, you need to call it \
91936             manually."]
91937    #[inline]
91938    fn fold_computed_prop_name(&mut self, node: ComputedPropName) -> ComputedPropName {
91939        <ComputedPropName as FoldWith<Self>>::fold_children_with(node, self)
91940    }
91941    #[doc = "Visit a node of type `CondExpr`.\n\nBy default, this method calls \
91942             [`CondExpr::fold_children_with`]. If you want to recurse, you need to call it \
91943             manually."]
91944    #[inline]
91945    fn fold_cond_expr(&mut self, node: CondExpr) -> CondExpr {
91946        <CondExpr as FoldWith<Self>>::fold_children_with(node, self)
91947    }
91948    #[doc = "Visit a node of type `Constructor`.\n\nBy default, this method calls \
91949             [`Constructor::fold_children_with`]. If you want to recurse, you need to call it \
91950             manually."]
91951    #[inline]
91952    fn fold_constructor(&mut self, node: Constructor) -> Constructor {
91953        <Constructor as FoldWith<Self>>::fold_children_with(node, self)
91954    }
91955    #[doc = "Visit a node of type `ContinueStmt`.\n\nBy default, this method calls \
91956             [`ContinueStmt::fold_children_with`]. If you want to recurse, you need to call it \
91957             manually."]
91958    #[inline]
91959    fn fold_continue_stmt(&mut self, node: ContinueStmt) -> ContinueStmt {
91960        <ContinueStmt as FoldWith<Self>>::fold_children_with(node, self)
91961    }
91962    #[doc = "Visit a node of type `DebuggerStmt`.\n\nBy default, this method calls \
91963             [`DebuggerStmt::fold_children_with`]. If you want to recurse, you need to call it \
91964             manually."]
91965    #[inline]
91966    fn fold_debugger_stmt(&mut self, node: DebuggerStmt) -> DebuggerStmt {
91967        <DebuggerStmt as FoldWith<Self>>::fold_children_with(node, self)
91968    }
91969    #[doc = "Visit a node of type `Decl`.\n\nBy default, this method calls \
91970             [`Decl::fold_children_with`]. If you want to recurse, you need to call it manually."]
91971    #[inline]
91972    fn fold_decl(&mut self, node: Decl) -> Decl {
91973        <Decl as FoldWith<Self>>::fold_children_with(node, self)
91974    }
91975    #[doc = "Visit a node of type `Decorator`.\n\nBy default, this method calls \
91976             [`Decorator::fold_children_with`]. If you want to recurse, you need to call it \
91977             manually."]
91978    #[inline]
91979    fn fold_decorator(&mut self, node: Decorator) -> Decorator {
91980        <Decorator as FoldWith<Self>>::fold_children_with(node, self)
91981    }
91982    #[doc = "Visit a node of type `Vec < Decorator >`.\n\nBy default, this method calls [`Vec < \
91983             Decorator >::fold_children_with`]. If you want to recurse, you need to call it \
91984             manually."]
91985    #[inline]
91986    fn fold_decorators(&mut self, node: Vec<Decorator>) -> Vec<Decorator> {
91987        <Vec<Decorator> as FoldWith<Self>>::fold_children_with(node, self)
91988    }
91989    #[doc = "Visit a node of type `DefaultDecl`.\n\nBy default, this method calls \
91990             [`DefaultDecl::fold_children_with`]. If you want to recurse, you need to call it \
91991             manually."]
91992    #[inline]
91993    fn fold_default_decl(&mut self, node: DefaultDecl) -> DefaultDecl {
91994        <DefaultDecl as FoldWith<Self>>::fold_children_with(node, self)
91995    }
91996    #[doc = "Visit a node of type `DoWhileStmt`.\n\nBy default, this method calls \
91997             [`DoWhileStmt::fold_children_with`]. If you want to recurse, you need to call it \
91998             manually."]
91999    #[inline]
92000    fn fold_do_while_stmt(&mut self, node: DoWhileStmt) -> DoWhileStmt {
92001        <DoWhileStmt as FoldWith<Self>>::fold_children_with(node, self)
92002    }
92003    #[doc = "Visit a node of type `EmptyStmt`.\n\nBy default, this method calls \
92004             [`EmptyStmt::fold_children_with`]. If you want to recurse, you need to call it \
92005             manually."]
92006    #[inline]
92007    fn fold_empty_stmt(&mut self, node: EmptyStmt) -> EmptyStmt {
92008        <EmptyStmt as FoldWith<Self>>::fold_children_with(node, self)
92009    }
92010    #[doc = "Visit a node of type `ExportAll`.\n\nBy default, this method calls \
92011             [`ExportAll::fold_children_with`]. If you want to recurse, you need to call it \
92012             manually."]
92013    #[inline]
92014    fn fold_export_all(&mut self, node: ExportAll) -> ExportAll {
92015        <ExportAll as FoldWith<Self>>::fold_children_with(node, self)
92016    }
92017    #[doc = "Visit a node of type `ExportDecl`.\n\nBy default, this method calls \
92018             [`ExportDecl::fold_children_with`]. If you want to recurse, you need to call it \
92019             manually."]
92020    #[inline]
92021    fn fold_export_decl(&mut self, node: ExportDecl) -> ExportDecl {
92022        <ExportDecl as FoldWith<Self>>::fold_children_with(node, self)
92023    }
92024    #[doc = "Visit a node of type `ExportDefaultDecl`.\n\nBy default, this method calls \
92025             [`ExportDefaultDecl::fold_children_with`]. If you want to recurse, you need to call \
92026             it manually."]
92027    #[inline]
92028    fn fold_export_default_decl(&mut self, node: ExportDefaultDecl) -> ExportDefaultDecl {
92029        <ExportDefaultDecl as FoldWith<Self>>::fold_children_with(node, self)
92030    }
92031    #[doc = "Visit a node of type `ExportDefaultExpr`.\n\nBy default, this method calls \
92032             [`ExportDefaultExpr::fold_children_with`]. If you want to recurse, you need to call \
92033             it manually."]
92034    #[inline]
92035    fn fold_export_default_expr(&mut self, node: ExportDefaultExpr) -> ExportDefaultExpr {
92036        <ExportDefaultExpr as FoldWith<Self>>::fold_children_with(node, self)
92037    }
92038    #[doc = "Visit a node of type `ExportDefaultSpecifier`.\n\nBy default, this method calls \
92039             [`ExportDefaultSpecifier::fold_children_with`]. If you want to recurse, you need to \
92040             call it manually."]
92041    #[inline]
92042    fn fold_export_default_specifier(
92043        &mut self,
92044        node: ExportDefaultSpecifier,
92045    ) -> ExportDefaultSpecifier {
92046        <ExportDefaultSpecifier as FoldWith<Self>>::fold_children_with(node, self)
92047    }
92048    #[doc = "Visit a node of type `ExportNamedSpecifier`.\n\nBy default, this method calls \
92049             [`ExportNamedSpecifier::fold_children_with`]. If you want to recurse, you need to \
92050             call it manually."]
92051    #[inline]
92052    fn fold_export_named_specifier(&mut self, node: ExportNamedSpecifier) -> ExportNamedSpecifier {
92053        <ExportNamedSpecifier as FoldWith<Self>>::fold_children_with(node, self)
92054    }
92055    #[doc = "Visit a node of type `ExportNamespaceSpecifier`.\n\nBy default, this method calls \
92056             [`ExportNamespaceSpecifier::fold_children_with`]. If you want to recurse, you need to \
92057             call it manually."]
92058    #[inline]
92059    fn fold_export_namespace_specifier(
92060        &mut self,
92061        node: ExportNamespaceSpecifier,
92062    ) -> ExportNamespaceSpecifier {
92063        <ExportNamespaceSpecifier as FoldWith<Self>>::fold_children_with(node, self)
92064    }
92065    #[doc = "Visit a node of type `ExportSpecifier`.\n\nBy default, this method calls \
92066             [`ExportSpecifier::fold_children_with`]. If you want to recurse, you need to call it \
92067             manually."]
92068    #[inline]
92069    fn fold_export_specifier(&mut self, node: ExportSpecifier) -> ExportSpecifier {
92070        <ExportSpecifier as FoldWith<Self>>::fold_children_with(node, self)
92071    }
92072    #[doc = "Visit a node of type `Vec < ExportSpecifier >`.\n\nBy default, this method calls \
92073             [`Vec < ExportSpecifier >::fold_children_with`]. If you want to recurse, you need to \
92074             call it manually."]
92075    #[inline]
92076    fn fold_export_specifiers(&mut self, node: Vec<ExportSpecifier>) -> Vec<ExportSpecifier> {
92077        <Vec<ExportSpecifier> as FoldWith<Self>>::fold_children_with(node, self)
92078    }
92079    #[doc = "Visit a node of type `Expr`.\n\nBy default, this method calls \
92080             [`Expr::fold_children_with`]. If you want to recurse, you need to call it manually."]
92081    #[inline]
92082    fn fold_expr(&mut self, node: Expr) -> Expr {
92083        <Expr as FoldWith<Self>>::fold_children_with(node, self)
92084    }
92085    #[doc = "Visit a node of type `ExprOrSpread`.\n\nBy default, this method calls \
92086             [`ExprOrSpread::fold_children_with`]. If you want to recurse, you need to call it \
92087             manually."]
92088    #[inline]
92089    fn fold_expr_or_spread(&mut self, node: ExprOrSpread) -> ExprOrSpread {
92090        <ExprOrSpread as FoldWith<Self>>::fold_children_with(node, self)
92091    }
92092    #[doc = "Visit a node of type `Vec < ExprOrSpread >`.\n\nBy default, this method calls [`Vec < \
92093             ExprOrSpread >::fold_children_with`]. If you want to recurse, you need to call it \
92094             manually."]
92095    #[inline]
92096    fn fold_expr_or_spreads(&mut self, node: Vec<ExprOrSpread>) -> Vec<ExprOrSpread> {
92097        <Vec<ExprOrSpread> as FoldWith<Self>>::fold_children_with(node, self)
92098    }
92099    #[doc = "Visit a node of type `ExprStmt`.\n\nBy default, this method calls \
92100             [`ExprStmt::fold_children_with`]. If you want to recurse, you need to call it \
92101             manually."]
92102    #[inline]
92103    fn fold_expr_stmt(&mut self, node: ExprStmt) -> ExprStmt {
92104        <ExprStmt as FoldWith<Self>>::fold_children_with(node, self)
92105    }
92106    #[doc = "Visit a node of type `Vec < Box < Expr > >`.\n\nBy default, this method calls [`Vec < \
92107             Box < Expr > >::fold_children_with`]. If you want to recurse, you need to call it \
92108             manually."]
92109    #[inline]
92110    fn fold_exprs(&mut self, node: Vec<Box<Expr>>) -> Vec<Box<Expr>> {
92111        <Vec<Box<Expr>> as FoldWith<Self>>::fold_children_with(node, self)
92112    }
92113    #[doc = "Visit a node of type `FnDecl`.\n\nBy default, this method calls \
92114             [`FnDecl::fold_children_with`]. If you want to recurse, you need to call it manually."]
92115    #[inline]
92116    fn fold_fn_decl(&mut self, node: FnDecl) -> FnDecl {
92117        <FnDecl as FoldWith<Self>>::fold_children_with(node, self)
92118    }
92119    #[doc = "Visit a node of type `FnExpr`.\n\nBy default, this method calls \
92120             [`FnExpr::fold_children_with`]. If you want to recurse, you need to call it manually."]
92121    #[inline]
92122    fn fold_fn_expr(&mut self, node: FnExpr) -> FnExpr {
92123        <FnExpr as FoldWith<Self>>::fold_children_with(node, self)
92124    }
92125    #[doc = "Visit a node of type `ForHead`.\n\nBy default, this method calls \
92126             [`ForHead::fold_children_with`]. If you want to recurse, you need to call it manually."]
92127    #[inline]
92128    fn fold_for_head(&mut self, node: ForHead) -> ForHead {
92129        <ForHead as FoldWith<Self>>::fold_children_with(node, self)
92130    }
92131    #[doc = "Visit a node of type `ForInStmt`.\n\nBy default, this method calls \
92132             [`ForInStmt::fold_children_with`]. If you want to recurse, you need to call it \
92133             manually."]
92134    #[inline]
92135    fn fold_for_in_stmt(&mut self, node: ForInStmt) -> ForInStmt {
92136        <ForInStmt as FoldWith<Self>>::fold_children_with(node, self)
92137    }
92138    #[doc = "Visit a node of type `ForOfStmt`.\n\nBy default, this method calls \
92139             [`ForOfStmt::fold_children_with`]. If you want to recurse, you need to call it \
92140             manually."]
92141    #[inline]
92142    fn fold_for_of_stmt(&mut self, node: ForOfStmt) -> ForOfStmt {
92143        <ForOfStmt as FoldWith<Self>>::fold_children_with(node, self)
92144    }
92145    #[doc = "Visit a node of type `ForStmt`.\n\nBy default, this method calls \
92146             [`ForStmt::fold_children_with`]. If you want to recurse, you need to call it manually."]
92147    #[inline]
92148    fn fold_for_stmt(&mut self, node: ForStmt) -> ForStmt {
92149        <ForStmt as FoldWith<Self>>::fold_children_with(node, self)
92150    }
92151    #[doc = "Visit a node of type `Function`.\n\nBy default, this method calls \
92152             [`Function::fold_children_with`]. If you want to recurse, you need to call it \
92153             manually."]
92154    #[inline]
92155    fn fold_function(&mut self, node: Function) -> Function {
92156        <Function as FoldWith<Self>>::fold_children_with(node, self)
92157    }
92158    #[doc = "Visit a node of type `GetterProp`.\n\nBy default, this method calls \
92159             [`GetterProp::fold_children_with`]. If you want to recurse, you need to call it \
92160             manually."]
92161    #[inline]
92162    fn fold_getter_prop(&mut self, node: GetterProp) -> GetterProp {
92163        <GetterProp as FoldWith<Self>>::fold_children_with(node, self)
92164    }
92165    #[doc = "Visit a node of type `Ident`.\n\nBy default, this method calls \
92166             [`Ident::fold_children_with`]. If you want to recurse, you need to call it manually."]
92167    #[inline]
92168    fn fold_ident(&mut self, node: Ident) -> Ident {
92169        <Ident as FoldWith<Self>>::fold_children_with(node, self)
92170    }
92171    #[doc = "Visit a node of type `IdentName`.\n\nBy default, this method calls \
92172             [`IdentName::fold_children_with`]. If you want to recurse, you need to call it \
92173             manually."]
92174    #[inline]
92175    fn fold_ident_name(&mut self, node: IdentName) -> IdentName {
92176        <IdentName as FoldWith<Self>>::fold_children_with(node, self)
92177    }
92178    #[doc = "Visit a node of type `IfStmt`.\n\nBy default, this method calls \
92179             [`IfStmt::fold_children_with`]. If you want to recurse, you need to call it manually."]
92180    #[inline]
92181    fn fold_if_stmt(&mut self, node: IfStmt) -> IfStmt {
92182        <IfStmt as FoldWith<Self>>::fold_children_with(node, self)
92183    }
92184    #[doc = "Visit a node of type `Import`.\n\nBy default, this method calls \
92185             [`Import::fold_children_with`]. If you want to recurse, you need to call it manually."]
92186    #[inline]
92187    fn fold_import(&mut self, node: Import) -> Import {
92188        <Import as FoldWith<Self>>::fold_children_with(node, self)
92189    }
92190    #[doc = "Visit a node of type `ImportDecl`.\n\nBy default, this method calls \
92191             [`ImportDecl::fold_children_with`]. If you want to recurse, you need to call it \
92192             manually."]
92193    #[inline]
92194    fn fold_import_decl(&mut self, node: ImportDecl) -> ImportDecl {
92195        <ImportDecl as FoldWith<Self>>::fold_children_with(node, self)
92196    }
92197    #[doc = "Visit a node of type `ImportDefaultSpecifier`.\n\nBy default, this method calls \
92198             [`ImportDefaultSpecifier::fold_children_with`]. If you want to recurse, you need to \
92199             call it manually."]
92200    #[inline]
92201    fn fold_import_default_specifier(
92202        &mut self,
92203        node: ImportDefaultSpecifier,
92204    ) -> ImportDefaultSpecifier {
92205        <ImportDefaultSpecifier as FoldWith<Self>>::fold_children_with(node, self)
92206    }
92207    #[doc = "Visit a node of type `ImportNamedSpecifier`.\n\nBy default, this method calls \
92208             [`ImportNamedSpecifier::fold_children_with`]. If you want to recurse, you need to \
92209             call it manually."]
92210    #[inline]
92211    fn fold_import_named_specifier(&mut self, node: ImportNamedSpecifier) -> ImportNamedSpecifier {
92212        <ImportNamedSpecifier as FoldWith<Self>>::fold_children_with(node, self)
92213    }
92214    #[doc = "Visit a node of type `ImportPhase`.\n\nBy default, this method calls \
92215             [`ImportPhase::fold_children_with`]. If you want to recurse, you need to call it \
92216             manually."]
92217    #[inline]
92218    fn fold_import_phase(&mut self, node: ImportPhase) -> ImportPhase {
92219        <ImportPhase as FoldWith<Self>>::fold_children_with(node, self)
92220    }
92221    #[doc = "Visit a node of type `ImportSpecifier`.\n\nBy default, this method calls \
92222             [`ImportSpecifier::fold_children_with`]. If you want to recurse, you need to call it \
92223             manually."]
92224    #[inline]
92225    fn fold_import_specifier(&mut self, node: ImportSpecifier) -> ImportSpecifier {
92226        <ImportSpecifier as FoldWith<Self>>::fold_children_with(node, self)
92227    }
92228    #[doc = "Visit a node of type `Vec < ImportSpecifier >`.\n\nBy default, this method calls \
92229             [`Vec < ImportSpecifier >::fold_children_with`]. If you want to recurse, you need to \
92230             call it manually."]
92231    #[inline]
92232    fn fold_import_specifiers(&mut self, node: Vec<ImportSpecifier>) -> Vec<ImportSpecifier> {
92233        <Vec<ImportSpecifier> as FoldWith<Self>>::fold_children_with(node, self)
92234    }
92235    #[doc = "Visit a node of type `ImportStarAsSpecifier`.\n\nBy default, this method calls \
92236             [`ImportStarAsSpecifier::fold_children_with`]. If you want to recurse, you need to \
92237             call it manually."]
92238    #[inline]
92239    fn fold_import_star_as_specifier(
92240        &mut self,
92241        node: ImportStarAsSpecifier,
92242    ) -> ImportStarAsSpecifier {
92243        <ImportStarAsSpecifier as FoldWith<Self>>::fold_children_with(node, self)
92244    }
92245    #[doc = "Visit a node of type `ImportWith`.\n\nBy default, this method calls \
92246             [`ImportWith::fold_children_with`]. If you want to recurse, you need to call it \
92247             manually."]
92248    #[inline]
92249    fn fold_import_with(&mut self, node: ImportWith) -> ImportWith {
92250        <ImportWith as FoldWith<Self>>::fold_children_with(node, self)
92251    }
92252    #[doc = "Visit a node of type `ImportWithItem`.\n\nBy default, this method calls \
92253             [`ImportWithItem::fold_children_with`]. If you want to recurse, you need to call it \
92254             manually."]
92255    #[inline]
92256    fn fold_import_with_item(&mut self, node: ImportWithItem) -> ImportWithItem {
92257        <ImportWithItem as FoldWith<Self>>::fold_children_with(node, self)
92258    }
92259    #[doc = "Visit a node of type `Vec < ImportWithItem >`.\n\nBy default, this method calls [`Vec \
92260             < ImportWithItem >::fold_children_with`]. If you want to recurse, you need to call it \
92261             manually."]
92262    #[inline]
92263    fn fold_import_with_items(&mut self, node: Vec<ImportWithItem>) -> Vec<ImportWithItem> {
92264        <Vec<ImportWithItem> as FoldWith<Self>>::fold_children_with(node, self)
92265    }
92266    #[doc = "Visit a node of type `Invalid`.\n\nBy default, this method calls \
92267             [`Invalid::fold_children_with`]. If you want to recurse, you need to call it manually."]
92268    #[inline]
92269    fn fold_invalid(&mut self, node: Invalid) -> Invalid {
92270        <Invalid as FoldWith<Self>>::fold_children_with(node, self)
92271    }
92272    #[doc = "Visit a node of type `JSXAttr`.\n\nBy default, this method calls \
92273             [`JSXAttr::fold_children_with`]. If you want to recurse, you need to call it manually."]
92274    #[inline]
92275    fn fold_jsx_attr(&mut self, node: JSXAttr) -> JSXAttr {
92276        <JSXAttr as FoldWith<Self>>::fold_children_with(node, self)
92277    }
92278    #[doc = "Visit a node of type `JSXAttrName`.\n\nBy default, this method calls \
92279             [`JSXAttrName::fold_children_with`]. If you want to recurse, you need to call it \
92280             manually."]
92281    #[inline]
92282    fn fold_jsx_attr_name(&mut self, node: JSXAttrName) -> JSXAttrName {
92283        <JSXAttrName as FoldWith<Self>>::fold_children_with(node, self)
92284    }
92285    #[doc = "Visit a node of type `JSXAttrOrSpread`.\n\nBy default, this method calls \
92286             [`JSXAttrOrSpread::fold_children_with`]. If you want to recurse, you need to call it \
92287             manually."]
92288    #[inline]
92289    fn fold_jsx_attr_or_spread(&mut self, node: JSXAttrOrSpread) -> JSXAttrOrSpread {
92290        <JSXAttrOrSpread as FoldWith<Self>>::fold_children_with(node, self)
92291    }
92292    #[doc = "Visit a node of type `Vec < JSXAttrOrSpread >`.\n\nBy default, this method calls \
92293             [`Vec < JSXAttrOrSpread >::fold_children_with`]. If you want to recurse, you need to \
92294             call it manually."]
92295    #[inline]
92296    fn fold_jsx_attr_or_spreads(&mut self, node: Vec<JSXAttrOrSpread>) -> Vec<JSXAttrOrSpread> {
92297        <Vec<JSXAttrOrSpread> as FoldWith<Self>>::fold_children_with(node, self)
92298    }
92299    #[doc = "Visit a node of type `JSXAttrValue`.\n\nBy default, this method calls \
92300             [`JSXAttrValue::fold_children_with`]. If you want to recurse, you need to call it \
92301             manually."]
92302    #[inline]
92303    fn fold_jsx_attr_value(&mut self, node: JSXAttrValue) -> JSXAttrValue {
92304        <JSXAttrValue as FoldWith<Self>>::fold_children_with(node, self)
92305    }
92306    #[doc = "Visit a node of type `JSXClosingElement`.\n\nBy default, this method calls \
92307             [`JSXClosingElement::fold_children_with`]. If you want to recurse, you need to call \
92308             it manually."]
92309    #[inline]
92310    fn fold_jsx_closing_element(&mut self, node: JSXClosingElement) -> JSXClosingElement {
92311        <JSXClosingElement as FoldWith<Self>>::fold_children_with(node, self)
92312    }
92313    #[doc = "Visit a node of type `JSXClosingFragment`.\n\nBy default, this method calls \
92314             [`JSXClosingFragment::fold_children_with`]. If you want to recurse, you need to call \
92315             it manually."]
92316    #[inline]
92317    fn fold_jsx_closing_fragment(&mut self, node: JSXClosingFragment) -> JSXClosingFragment {
92318        <JSXClosingFragment as FoldWith<Self>>::fold_children_with(node, self)
92319    }
92320    #[doc = "Visit a node of type `JSXElement`.\n\nBy default, this method calls \
92321             [`JSXElement::fold_children_with`]. If you want to recurse, you need to call it \
92322             manually."]
92323    #[inline]
92324    fn fold_jsx_element(&mut self, node: JSXElement) -> JSXElement {
92325        <JSXElement as FoldWith<Self>>::fold_children_with(node, self)
92326    }
92327    #[doc = "Visit a node of type `JSXElementChild`.\n\nBy default, this method calls \
92328             [`JSXElementChild::fold_children_with`]. If you want to recurse, you need to call it \
92329             manually."]
92330    #[inline]
92331    fn fold_jsx_element_child(&mut self, node: JSXElementChild) -> JSXElementChild {
92332        <JSXElementChild as FoldWith<Self>>::fold_children_with(node, self)
92333    }
92334    #[doc = "Visit a node of type `Vec < JSXElementChild >`.\n\nBy default, this method calls \
92335             [`Vec < JSXElementChild >::fold_children_with`]. If you want to recurse, you need to \
92336             call it manually."]
92337    #[inline]
92338    fn fold_jsx_element_childs(&mut self, node: Vec<JSXElementChild>) -> Vec<JSXElementChild> {
92339        <Vec<JSXElementChild> as FoldWith<Self>>::fold_children_with(node, self)
92340    }
92341    #[doc = "Visit a node of type `JSXElementName`.\n\nBy default, this method calls \
92342             [`JSXElementName::fold_children_with`]. If you want to recurse, you need to call it \
92343             manually."]
92344    #[inline]
92345    fn fold_jsx_element_name(&mut self, node: JSXElementName) -> JSXElementName {
92346        <JSXElementName as FoldWith<Self>>::fold_children_with(node, self)
92347    }
92348    #[doc = "Visit a node of type `JSXEmptyExpr`.\n\nBy default, this method calls \
92349             [`JSXEmptyExpr::fold_children_with`]. If you want to recurse, you need to call it \
92350             manually."]
92351    #[inline]
92352    fn fold_jsx_empty_expr(&mut self, node: JSXEmptyExpr) -> JSXEmptyExpr {
92353        <JSXEmptyExpr as FoldWith<Self>>::fold_children_with(node, self)
92354    }
92355    #[doc = "Visit a node of type `JSXExpr`.\n\nBy default, this method calls \
92356             [`JSXExpr::fold_children_with`]. If you want to recurse, you need to call it manually."]
92357    #[inline]
92358    fn fold_jsx_expr(&mut self, node: JSXExpr) -> JSXExpr {
92359        <JSXExpr as FoldWith<Self>>::fold_children_with(node, self)
92360    }
92361    #[doc = "Visit a node of type `JSXExprContainer`.\n\nBy default, this method calls \
92362             [`JSXExprContainer::fold_children_with`]. If you want to recurse, you need to call it \
92363             manually."]
92364    #[inline]
92365    fn fold_jsx_expr_container(&mut self, node: JSXExprContainer) -> JSXExprContainer {
92366        <JSXExprContainer as FoldWith<Self>>::fold_children_with(node, self)
92367    }
92368    #[doc = "Visit a node of type `JSXFragment`.\n\nBy default, this method calls \
92369             [`JSXFragment::fold_children_with`]. If you want to recurse, you need to call it \
92370             manually."]
92371    #[inline]
92372    fn fold_jsx_fragment(&mut self, node: JSXFragment) -> JSXFragment {
92373        <JSXFragment as FoldWith<Self>>::fold_children_with(node, self)
92374    }
92375    #[doc = "Visit a node of type `JSXMemberExpr`.\n\nBy default, this method calls \
92376             [`JSXMemberExpr::fold_children_with`]. If you want to recurse, you need to call it \
92377             manually."]
92378    #[inline]
92379    fn fold_jsx_member_expr(&mut self, node: JSXMemberExpr) -> JSXMemberExpr {
92380        <JSXMemberExpr as FoldWith<Self>>::fold_children_with(node, self)
92381    }
92382    #[doc = "Visit a node of type `JSXNamespacedName`.\n\nBy default, this method calls \
92383             [`JSXNamespacedName::fold_children_with`]. If you want to recurse, you need to call \
92384             it manually."]
92385    #[inline]
92386    fn fold_jsx_namespaced_name(&mut self, node: JSXNamespacedName) -> JSXNamespacedName {
92387        <JSXNamespacedName as FoldWith<Self>>::fold_children_with(node, self)
92388    }
92389    #[doc = "Visit a node of type `JSXObject`.\n\nBy default, this method calls \
92390             [`JSXObject::fold_children_with`]. If you want to recurse, you need to call it \
92391             manually."]
92392    #[inline]
92393    fn fold_jsx_object(&mut self, node: JSXObject) -> JSXObject {
92394        <JSXObject as FoldWith<Self>>::fold_children_with(node, self)
92395    }
92396    #[doc = "Visit a node of type `JSXOpeningElement`.\n\nBy default, this method calls \
92397             [`JSXOpeningElement::fold_children_with`]. If you want to recurse, you need to call \
92398             it manually."]
92399    #[inline]
92400    fn fold_jsx_opening_element(&mut self, node: JSXOpeningElement) -> JSXOpeningElement {
92401        <JSXOpeningElement as FoldWith<Self>>::fold_children_with(node, self)
92402    }
92403    #[doc = "Visit a node of type `JSXOpeningFragment`.\n\nBy default, this method calls \
92404             [`JSXOpeningFragment::fold_children_with`]. If you want to recurse, you need to call \
92405             it manually."]
92406    #[inline]
92407    fn fold_jsx_opening_fragment(&mut self, node: JSXOpeningFragment) -> JSXOpeningFragment {
92408        <JSXOpeningFragment as FoldWith<Self>>::fold_children_with(node, self)
92409    }
92410    #[doc = "Visit a node of type `JSXSpreadChild`.\n\nBy default, this method calls \
92411             [`JSXSpreadChild::fold_children_with`]. If you want to recurse, you need to call it \
92412             manually."]
92413    #[inline]
92414    fn fold_jsx_spread_child(&mut self, node: JSXSpreadChild) -> JSXSpreadChild {
92415        <JSXSpreadChild as FoldWith<Self>>::fold_children_with(node, self)
92416    }
92417    #[doc = "Visit a node of type `JSXText`.\n\nBy default, this method calls \
92418             [`JSXText::fold_children_with`]. If you want to recurse, you need to call it manually."]
92419    #[inline]
92420    fn fold_jsx_text(&mut self, node: JSXText) -> JSXText {
92421        <JSXText as FoldWith<Self>>::fold_children_with(node, self)
92422    }
92423    #[doc = "Visit a node of type `Key`.\n\nBy default, this method calls \
92424             [`Key::fold_children_with`]. If you want to recurse, you need to call it manually."]
92425    #[inline]
92426    fn fold_key(&mut self, node: Key) -> Key {
92427        <Key as FoldWith<Self>>::fold_children_with(node, self)
92428    }
92429    #[doc = "Visit a node of type `KeyValuePatProp`.\n\nBy default, this method calls \
92430             [`KeyValuePatProp::fold_children_with`]. If you want to recurse, you need to call it \
92431             manually."]
92432    #[inline]
92433    fn fold_key_value_pat_prop(&mut self, node: KeyValuePatProp) -> KeyValuePatProp {
92434        <KeyValuePatProp as FoldWith<Self>>::fold_children_with(node, self)
92435    }
92436    #[doc = "Visit a node of type `KeyValueProp`.\n\nBy default, this method calls \
92437             [`KeyValueProp::fold_children_with`]. If you want to recurse, you need to call it \
92438             manually."]
92439    #[inline]
92440    fn fold_key_value_prop(&mut self, node: KeyValueProp) -> KeyValueProp {
92441        <KeyValueProp as FoldWith<Self>>::fold_children_with(node, self)
92442    }
92443    #[doc = "Visit a node of type `LabeledStmt`.\n\nBy default, this method calls \
92444             [`LabeledStmt::fold_children_with`]. If you want to recurse, you need to call it \
92445             manually."]
92446    #[inline]
92447    fn fold_labeled_stmt(&mut self, node: LabeledStmt) -> LabeledStmt {
92448        <LabeledStmt as FoldWith<Self>>::fold_children_with(node, self)
92449    }
92450    #[doc = "Visit a node of type `Lit`.\n\nBy default, this method calls \
92451             [`Lit::fold_children_with`]. If you want to recurse, you need to call it manually."]
92452    #[inline]
92453    fn fold_lit(&mut self, node: Lit) -> Lit {
92454        <Lit as FoldWith<Self>>::fold_children_with(node, self)
92455    }
92456    #[doc = "Visit a node of type `MemberExpr`.\n\nBy default, this method calls \
92457             [`MemberExpr::fold_children_with`]. If you want to recurse, you need to call it \
92458             manually."]
92459    #[inline]
92460    fn fold_member_expr(&mut self, node: MemberExpr) -> MemberExpr {
92461        <MemberExpr as FoldWith<Self>>::fold_children_with(node, self)
92462    }
92463    #[doc = "Visit a node of type `MemberProp`.\n\nBy default, this method calls \
92464             [`MemberProp::fold_children_with`]. If you want to recurse, you need to call it \
92465             manually."]
92466    #[inline]
92467    fn fold_member_prop(&mut self, node: MemberProp) -> MemberProp {
92468        <MemberProp as FoldWith<Self>>::fold_children_with(node, self)
92469    }
92470    #[doc = "Visit a node of type `MetaPropExpr`.\n\nBy default, this method calls \
92471             [`MetaPropExpr::fold_children_with`]. If you want to recurse, you need to call it \
92472             manually."]
92473    #[inline]
92474    fn fold_meta_prop_expr(&mut self, node: MetaPropExpr) -> MetaPropExpr {
92475        <MetaPropExpr as FoldWith<Self>>::fold_children_with(node, self)
92476    }
92477    #[doc = "Visit a node of type `MetaPropKind`.\n\nBy default, this method calls \
92478             [`MetaPropKind::fold_children_with`]. If you want to recurse, you need to call it \
92479             manually."]
92480    #[inline]
92481    fn fold_meta_prop_kind(&mut self, node: MetaPropKind) -> MetaPropKind {
92482        <MetaPropKind as FoldWith<Self>>::fold_children_with(node, self)
92483    }
92484    #[doc = "Visit a node of type `MethodKind`.\n\nBy default, this method calls \
92485             [`MethodKind::fold_children_with`]. If you want to recurse, you need to call it \
92486             manually."]
92487    #[inline]
92488    fn fold_method_kind(&mut self, node: MethodKind) -> MethodKind {
92489        <MethodKind as FoldWith<Self>>::fold_children_with(node, self)
92490    }
92491    #[doc = "Visit a node of type `MethodProp`.\n\nBy default, this method calls \
92492             [`MethodProp::fold_children_with`]. If you want to recurse, you need to call it \
92493             manually."]
92494    #[inline]
92495    fn fold_method_prop(&mut self, node: MethodProp) -> MethodProp {
92496        <MethodProp as FoldWith<Self>>::fold_children_with(node, self)
92497    }
92498    #[doc = "Visit a node of type `Module`.\n\nBy default, this method calls \
92499             [`Module::fold_children_with`]. If you want to recurse, you need to call it manually."]
92500    #[inline]
92501    fn fold_module(&mut self, node: Module) -> Module {
92502        <Module as FoldWith<Self>>::fold_children_with(node, self)
92503    }
92504    #[doc = "Visit a node of type `ModuleDecl`.\n\nBy default, this method calls \
92505             [`ModuleDecl::fold_children_with`]. If you want to recurse, you need to call it \
92506             manually."]
92507    #[inline]
92508    fn fold_module_decl(&mut self, node: ModuleDecl) -> ModuleDecl {
92509        <ModuleDecl as FoldWith<Self>>::fold_children_with(node, self)
92510    }
92511    #[doc = "Visit a node of type `ModuleExportName`.\n\nBy default, this method calls \
92512             [`ModuleExportName::fold_children_with`]. If you want to recurse, you need to call it \
92513             manually."]
92514    #[inline]
92515    fn fold_module_export_name(&mut self, node: ModuleExportName) -> ModuleExportName {
92516        <ModuleExportName as FoldWith<Self>>::fold_children_with(node, self)
92517    }
92518    #[doc = "Visit a node of type `ModuleItem`.\n\nBy default, this method calls \
92519             [`ModuleItem::fold_children_with`]. If you want to recurse, you need to call it \
92520             manually."]
92521    #[inline]
92522    fn fold_module_item(&mut self, node: ModuleItem) -> ModuleItem {
92523        <ModuleItem as FoldWith<Self>>::fold_children_with(node, self)
92524    }
92525    #[doc = "Visit a node of type `Vec < ModuleItem >`.\n\nBy default, this method calls [`Vec < \
92526             ModuleItem >::fold_children_with`]. If you want to recurse, you need to call it \
92527             manually."]
92528    #[inline]
92529    fn fold_module_items(&mut self, node: Vec<ModuleItem>) -> Vec<ModuleItem> {
92530        <Vec<ModuleItem> as FoldWith<Self>>::fold_children_with(node, self)
92531    }
92532    #[doc = "Visit a node of type `NamedExport`.\n\nBy default, this method calls \
92533             [`NamedExport::fold_children_with`]. If you want to recurse, you need to call it \
92534             manually."]
92535    #[inline]
92536    fn fold_named_export(&mut self, node: NamedExport) -> NamedExport {
92537        <NamedExport as FoldWith<Self>>::fold_children_with(node, self)
92538    }
92539    #[doc = "Visit a node of type `NewExpr`.\n\nBy default, this method calls \
92540             [`NewExpr::fold_children_with`]. If you want to recurse, you need to call it manually."]
92541    #[inline]
92542    fn fold_new_expr(&mut self, node: NewExpr) -> NewExpr {
92543        <NewExpr as FoldWith<Self>>::fold_children_with(node, self)
92544    }
92545    #[doc = "Visit a node of type `Null`.\n\nBy default, this method calls \
92546             [`Null::fold_children_with`]. If you want to recurse, you need to call it manually."]
92547    #[inline]
92548    fn fold_null(&mut self, node: Null) -> Null {
92549        <Null as FoldWith<Self>>::fold_children_with(node, self)
92550    }
92551    #[doc = "Visit a node of type `Number`.\n\nBy default, this method calls \
92552             [`Number::fold_children_with`]. If you want to recurse, you need to call it manually."]
92553    #[inline]
92554    fn fold_number(&mut self, node: Number) -> Number {
92555        <Number as FoldWith<Self>>::fold_children_with(node, self)
92556    }
92557    #[doc = "Visit a node of type `ObjectLit`.\n\nBy default, this method calls \
92558             [`ObjectLit::fold_children_with`]. If you want to recurse, you need to call it \
92559             manually."]
92560    #[inline]
92561    fn fold_object_lit(&mut self, node: ObjectLit) -> ObjectLit {
92562        <ObjectLit as FoldWith<Self>>::fold_children_with(node, self)
92563    }
92564    #[doc = "Visit a node of type `ObjectPat`.\n\nBy default, this method calls \
92565             [`ObjectPat::fold_children_with`]. If you want to recurse, you need to call it \
92566             manually."]
92567    #[inline]
92568    fn fold_object_pat(&mut self, node: ObjectPat) -> ObjectPat {
92569        <ObjectPat as FoldWith<Self>>::fold_children_with(node, self)
92570    }
92571    #[doc = "Visit a node of type `ObjectPatProp`.\n\nBy default, this method calls \
92572             [`ObjectPatProp::fold_children_with`]. If you want to recurse, you need to call it \
92573             manually."]
92574    #[inline]
92575    fn fold_object_pat_prop(&mut self, node: ObjectPatProp) -> ObjectPatProp {
92576        <ObjectPatProp as FoldWith<Self>>::fold_children_with(node, self)
92577    }
92578    #[doc = "Visit a node of type `Vec < ObjectPatProp >`.\n\nBy default, this method calls [`Vec \
92579             < ObjectPatProp >::fold_children_with`]. If you want to recurse, you need to call it \
92580             manually."]
92581    #[inline]
92582    fn fold_object_pat_props(&mut self, node: Vec<ObjectPatProp>) -> Vec<ObjectPatProp> {
92583        <Vec<ObjectPatProp> as FoldWith<Self>>::fold_children_with(node, self)
92584    }
92585    #[doc = "Visit a node of type `Option < Accessibility >`.\n\nBy default, this method calls \
92586             [`Option < Accessibility >::fold_children_with`]. If you want to recurse, you need to \
92587             call it manually."]
92588    #[inline]
92589    fn fold_opt_accessibility(&mut self, node: Option<Accessibility>) -> Option<Accessibility> {
92590        <Option<Accessibility> as FoldWith<Self>>::fold_children_with(node, self)
92591    }
92592    #[doc = "Visit a node of type `Option < swc_atoms :: Atom >`.\n\nBy default, this method calls \
92593             [`Option < swc_atoms :: Atom >::fold_children_with`]. If you want to recurse, you \
92594             need to call it manually."]
92595    #[inline]
92596    fn fold_opt_atom(&mut self, node: Option<swc_atoms::Atom>) -> Option<swc_atoms::Atom> {
92597        <Option<swc_atoms::Atom> as FoldWith<Self>>::fold_children_with(node, self)
92598    }
92599    #[doc = "Visit a node of type `Option < BlockStmt >`.\n\nBy default, this method calls \
92600             [`Option < BlockStmt >::fold_children_with`]. If you want to recurse, you need to \
92601             call it manually."]
92602    #[inline]
92603    fn fold_opt_block_stmt(&mut self, node: Option<BlockStmt>) -> Option<BlockStmt> {
92604        <Option<BlockStmt> as FoldWith<Self>>::fold_children_with(node, self)
92605    }
92606    #[doc = "Visit a node of type `OptCall`.\n\nBy default, this method calls \
92607             [`OptCall::fold_children_with`]. If you want to recurse, you need to call it manually."]
92608    #[inline]
92609    fn fold_opt_call(&mut self, node: OptCall) -> OptCall {
92610        <OptCall as FoldWith<Self>>::fold_children_with(node, self)
92611    }
92612    #[doc = "Visit a node of type `Option < CatchClause >`.\n\nBy default, this method calls \
92613             [`Option < CatchClause >::fold_children_with`]. If you want to recurse, you need to \
92614             call it manually."]
92615    #[inline]
92616    fn fold_opt_catch_clause(&mut self, node: Option<CatchClause>) -> Option<CatchClause> {
92617        <Option<CatchClause> as FoldWith<Self>>::fold_children_with(node, self)
92618    }
92619    #[doc = "Visit a node of type `OptChainBase`.\n\nBy default, this method calls \
92620             [`OptChainBase::fold_children_with`]. If you want to recurse, you need to call it \
92621             manually."]
92622    #[inline]
92623    fn fold_opt_chain_base(&mut self, node: OptChainBase) -> OptChainBase {
92624        <OptChainBase as FoldWith<Self>>::fold_children_with(node, self)
92625    }
92626    #[doc = "Visit a node of type `OptChainExpr`.\n\nBy default, this method calls \
92627             [`OptChainExpr::fold_children_with`]. If you want to recurse, you need to call it \
92628             manually."]
92629    #[inline]
92630    fn fold_opt_chain_expr(&mut self, node: OptChainExpr) -> OptChainExpr {
92631        <OptChainExpr as FoldWith<Self>>::fold_children_with(node, self)
92632    }
92633    #[doc = "Visit a node of type `Option < Box < Expr > >`.\n\nBy default, this method calls \
92634             [`Option < Box < Expr > >::fold_children_with`]. If you want to recurse, you need to \
92635             call it manually."]
92636    #[inline]
92637    fn fold_opt_expr(&mut self, node: Option<Box<Expr>>) -> Option<Box<Expr>> {
92638        <Option<Box<Expr>> as FoldWith<Self>>::fold_children_with(node, self)
92639    }
92640    #[doc = "Visit a node of type `Option < ExprOrSpread >`.\n\nBy default, this method calls \
92641             [`Option < ExprOrSpread >::fold_children_with`]. If you want to recurse, you need to \
92642             call it manually."]
92643    #[inline]
92644    fn fold_opt_expr_or_spread(&mut self, node: Option<ExprOrSpread>) -> Option<ExprOrSpread> {
92645        <Option<ExprOrSpread> as FoldWith<Self>>::fold_children_with(node, self)
92646    }
92647    #[doc = "Visit a node of type `Option < Vec < ExprOrSpread > >`.\n\nBy default, this method \
92648             calls [`Option < Vec < ExprOrSpread > >::fold_children_with`]. If you want to \
92649             recurse, you need to call it manually."]
92650    #[inline]
92651    fn fold_opt_expr_or_spreads(
92652        &mut self,
92653        node: Option<Vec<ExprOrSpread>>,
92654    ) -> Option<Vec<ExprOrSpread>> {
92655        <Option<Vec<ExprOrSpread>> as FoldWith<Self>>::fold_children_with(node, self)
92656    }
92657    #[doc = "Visit a node of type `Option < Ident >`.\n\nBy default, this method calls [`Option < \
92658             Ident >::fold_children_with`]. If you want to recurse, you need to call it manually."]
92659    #[inline]
92660    fn fold_opt_ident(&mut self, node: Option<Ident>) -> Option<Ident> {
92661        <Option<Ident> as FoldWith<Self>>::fold_children_with(node, self)
92662    }
92663    #[doc = "Visit a node of type `Option < JSXAttrValue >`.\n\nBy default, this method calls \
92664             [`Option < JSXAttrValue >::fold_children_with`]. If you want to recurse, you need to \
92665             call it manually."]
92666    #[inline]
92667    fn fold_opt_jsx_attr_value(&mut self, node: Option<JSXAttrValue>) -> Option<JSXAttrValue> {
92668        <Option<JSXAttrValue> as FoldWith<Self>>::fold_children_with(node, self)
92669    }
92670    #[doc = "Visit a node of type `Option < JSXClosingElement >`.\n\nBy default, this method calls \
92671             [`Option < JSXClosingElement >::fold_children_with`]. If you want to recurse, you \
92672             need to call it manually."]
92673    #[inline]
92674    fn fold_opt_jsx_closing_element(
92675        &mut self,
92676        node: Option<JSXClosingElement>,
92677    ) -> Option<JSXClosingElement> {
92678        <Option<JSXClosingElement> as FoldWith<Self>>::fold_children_with(node, self)
92679    }
92680    #[doc = "Visit a node of type `Option < ModuleExportName >`.\n\nBy default, this method calls \
92681             [`Option < ModuleExportName >::fold_children_with`]. If you want to recurse, you need \
92682             to call it manually."]
92683    #[inline]
92684    fn fold_opt_module_export_name(
92685        &mut self,
92686        node: Option<ModuleExportName>,
92687    ) -> Option<ModuleExportName> {
92688        <Option<ModuleExportName> as FoldWith<Self>>::fold_children_with(node, self)
92689    }
92690    #[doc = "Visit a node of type `Option < Box < ObjectLit > >`.\n\nBy default, this method calls \
92691             [`Option < Box < ObjectLit > >::fold_children_with`]. If you want to recurse, you \
92692             need to call it manually."]
92693    #[inline]
92694    fn fold_opt_object_lit(&mut self, node: Option<Box<ObjectLit>>) -> Option<Box<ObjectLit>> {
92695        <Option<Box<ObjectLit>> as FoldWith<Self>>::fold_children_with(node, self)
92696    }
92697    #[doc = "Visit a node of type `Option < Pat >`.\n\nBy default, this method calls [`Option < \
92698             Pat >::fold_children_with`]. If you want to recurse, you need to call it manually."]
92699    #[inline]
92700    fn fold_opt_pat(&mut self, node: Option<Pat>) -> Option<Pat> {
92701        <Option<Pat> as FoldWith<Self>>::fold_children_with(node, self)
92702    }
92703    #[doc = "Visit a node of type `Option < swc_common :: Span >`.\n\nBy default, this method \
92704             calls [`Option < swc_common :: Span >::fold_children_with`]. If you want to recurse, \
92705             you need to call it manually."]
92706    #[inline]
92707    fn fold_opt_span(&mut self, node: Option<swc_common::Span>) -> Option<swc_common::Span> {
92708        <Option<swc_common::Span> as FoldWith<Self>>::fold_children_with(node, self)
92709    }
92710    #[doc = "Visit a node of type `Option < Box < Stmt > >`.\n\nBy default, this method calls \
92711             [`Option < Box < Stmt > >::fold_children_with`]. If you want to recurse, you need to \
92712             call it manually."]
92713    #[inline]
92714    fn fold_opt_stmt(&mut self, node: Option<Box<Stmt>>) -> Option<Box<Stmt>> {
92715        <Option<Box<Stmt>> as FoldWith<Self>>::fold_children_with(node, self)
92716    }
92717    #[doc = "Visit a node of type `Option < Box < Str > >`.\n\nBy default, this method calls \
92718             [`Option < Box < Str > >::fold_children_with`]. If you want to recurse, you need to \
92719             call it manually."]
92720    #[inline]
92721    fn fold_opt_str(&mut self, node: Option<Box<Str>>) -> Option<Box<Str>> {
92722        <Option<Box<Str>> as FoldWith<Self>>::fold_children_with(node, self)
92723    }
92724    #[doc = "Visit a node of type `Option < TruePlusMinus >`.\n\nBy default, this method calls \
92725             [`Option < TruePlusMinus >::fold_children_with`]. If you want to recurse, you need to \
92726             call it manually."]
92727    #[inline]
92728    fn fold_opt_true_plus_minus(&mut self, node: Option<TruePlusMinus>) -> Option<TruePlusMinus> {
92729        <Option<TruePlusMinus> as FoldWith<Self>>::fold_children_with(node, self)
92730    }
92731    #[doc = "Visit a node of type `Option < TsEntityName >`.\n\nBy default, this method calls \
92732             [`Option < TsEntityName >::fold_children_with`]. If you want to recurse, you need to \
92733             call it manually."]
92734    #[inline]
92735    fn fold_opt_ts_entity_name(&mut self, node: Option<TsEntityName>) -> Option<TsEntityName> {
92736        <Option<TsEntityName> as FoldWith<Self>>::fold_children_with(node, self)
92737    }
92738    #[doc = "Visit a node of type `Option < TsImportCallOptions >`.\n\nBy default, this method \
92739             calls [`Option < TsImportCallOptions >::fold_children_with`]. If you want to recurse, \
92740             you need to call it manually."]
92741    #[inline]
92742    fn fold_opt_ts_import_call_options(
92743        &mut self,
92744        node: Option<TsImportCallOptions>,
92745    ) -> Option<TsImportCallOptions> {
92746        <Option<TsImportCallOptions> as FoldWith<Self>>::fold_children_with(node, self)
92747    }
92748    #[doc = "Visit a node of type `Option < TsNamespaceBody >`.\n\nBy default, this method calls \
92749             [`Option < TsNamespaceBody >::fold_children_with`]. If you want to recurse, you need \
92750             to call it manually."]
92751    #[inline]
92752    fn fold_opt_ts_namespace_body(
92753        &mut self,
92754        node: Option<TsNamespaceBody>,
92755    ) -> Option<TsNamespaceBody> {
92756        <Option<TsNamespaceBody> as FoldWith<Self>>::fold_children_with(node, self)
92757    }
92758    #[doc = "Visit a node of type `Option < Box < TsType > >`.\n\nBy default, this method calls \
92759             [`Option < Box < TsType > >::fold_children_with`]. If you want to recurse, you need \
92760             to call it manually."]
92761    #[inline]
92762    fn fold_opt_ts_type(&mut self, node: Option<Box<TsType>>) -> Option<Box<TsType>> {
92763        <Option<Box<TsType>> as FoldWith<Self>>::fold_children_with(node, self)
92764    }
92765    #[doc = "Visit a node of type `Option < Box < TsTypeAnn > >`.\n\nBy default, this method calls \
92766             [`Option < Box < TsTypeAnn > >::fold_children_with`]. If you want to recurse, you \
92767             need to call it manually."]
92768    #[inline]
92769    fn fold_opt_ts_type_ann(&mut self, node: Option<Box<TsTypeAnn>>) -> Option<Box<TsTypeAnn>> {
92770        <Option<Box<TsTypeAnn>> as FoldWith<Self>>::fold_children_with(node, self)
92771    }
92772    #[doc = "Visit a node of type `Option < Box < TsTypeParamDecl > >`.\n\nBy default, this method \
92773             calls [`Option < Box < TsTypeParamDecl > >::fold_children_with`]. If you want to \
92774             recurse, you need to call it manually."]
92775    #[inline]
92776    fn fold_opt_ts_type_param_decl(
92777        &mut self,
92778        node: Option<Box<TsTypeParamDecl>>,
92779    ) -> Option<Box<TsTypeParamDecl>> {
92780        <Option<Box<TsTypeParamDecl>> as FoldWith<Self>>::fold_children_with(node, self)
92781    }
92782    #[doc = "Visit a node of type `Option < Box < TsTypeParamInstantiation > >`.\n\nBy default, \
92783             this method calls [`Option < Box < TsTypeParamInstantiation > \
92784             >::fold_children_with`]. If you want to recurse, you need to call it manually."]
92785    #[inline]
92786    fn fold_opt_ts_type_param_instantiation(
92787        &mut self,
92788        node: Option<Box<TsTypeParamInstantiation>>,
92789    ) -> Option<Box<TsTypeParamInstantiation>> {
92790        <Option<Box<TsTypeParamInstantiation>> as FoldWith<Self>>::fold_children_with(node, self)
92791    }
92792    #[doc = "Visit a node of type `Option < VarDeclOrExpr >`.\n\nBy default, this method calls \
92793             [`Option < VarDeclOrExpr >::fold_children_with`]. If you want to recurse, you need to \
92794             call it manually."]
92795    #[inline]
92796    fn fold_opt_var_decl_or_expr(&mut self, node: Option<VarDeclOrExpr>) -> Option<VarDeclOrExpr> {
92797        <Option<VarDeclOrExpr> as FoldWith<Self>>::fold_children_with(node, self)
92798    }
92799    #[doc = "Visit a node of type `Vec < Option < ExprOrSpread > >`.\n\nBy default, this method \
92800             calls [`Vec < Option < ExprOrSpread > >::fold_children_with`]. If you want to \
92801             recurse, you need to call it manually."]
92802    #[inline]
92803    fn fold_opt_vec_expr_or_spreads(
92804        &mut self,
92805        node: Vec<Option<ExprOrSpread>>,
92806    ) -> Vec<Option<ExprOrSpread>> {
92807        <Vec<Option<ExprOrSpread>> as FoldWith<Self>>::fold_children_with(node, self)
92808    }
92809    #[doc = "Visit a node of type `Vec < Option < Pat > >`.\n\nBy default, this method calls [`Vec \
92810             < Option < Pat > >::fold_children_with`]. If you want to recurse, you need to call it \
92811             manually."]
92812    #[inline]
92813    fn fold_opt_vec_pats(&mut self, node: Vec<Option<Pat>>) -> Vec<Option<Pat>> {
92814        <Vec<Option<Pat>> as FoldWith<Self>>::fold_children_with(node, self)
92815    }
92816    #[doc = "Visit a node of type `Param`.\n\nBy default, this method calls \
92817             [`Param::fold_children_with`]. If you want to recurse, you need to call it manually."]
92818    #[inline]
92819    fn fold_param(&mut self, node: Param) -> Param {
92820        <Param as FoldWith<Self>>::fold_children_with(node, self)
92821    }
92822    #[doc = "Visit a node of type `ParamOrTsParamProp`.\n\nBy default, this method calls \
92823             [`ParamOrTsParamProp::fold_children_with`]. If you want to recurse, you need to call \
92824             it manually."]
92825    #[inline]
92826    fn fold_param_or_ts_param_prop(&mut self, node: ParamOrTsParamProp) -> ParamOrTsParamProp {
92827        <ParamOrTsParamProp as FoldWith<Self>>::fold_children_with(node, self)
92828    }
92829    #[doc = "Visit a node of type `Vec < ParamOrTsParamProp >`.\n\nBy default, this method calls \
92830             [`Vec < ParamOrTsParamProp >::fold_children_with`]. If you want to recurse, you need \
92831             to call it manually."]
92832    #[inline]
92833    fn fold_param_or_ts_param_props(
92834        &mut self,
92835        node: Vec<ParamOrTsParamProp>,
92836    ) -> Vec<ParamOrTsParamProp> {
92837        <Vec<ParamOrTsParamProp> as FoldWith<Self>>::fold_children_with(node, self)
92838    }
92839    #[doc = "Visit a node of type `Vec < Param >`.\n\nBy default, this method calls [`Vec < Param \
92840             >::fold_children_with`]. If you want to recurse, you need to call it manually."]
92841    #[inline]
92842    fn fold_params(&mut self, node: Vec<Param>) -> Vec<Param> {
92843        <Vec<Param> as FoldWith<Self>>::fold_children_with(node, self)
92844    }
92845    #[doc = "Visit a node of type `ParenExpr`.\n\nBy default, this method calls \
92846             [`ParenExpr::fold_children_with`]. If you want to recurse, you need to call it \
92847             manually."]
92848    #[inline]
92849    fn fold_paren_expr(&mut self, node: ParenExpr) -> ParenExpr {
92850        <ParenExpr as FoldWith<Self>>::fold_children_with(node, self)
92851    }
92852    #[doc = "Visit a node of type `Pat`.\n\nBy default, this method calls \
92853             [`Pat::fold_children_with`]. If you want to recurse, you need to call it manually."]
92854    #[inline]
92855    fn fold_pat(&mut self, node: Pat) -> Pat {
92856        <Pat as FoldWith<Self>>::fold_children_with(node, self)
92857    }
92858    #[doc = "Visit a node of type `Vec < Pat >`.\n\nBy default, this method calls [`Vec < Pat \
92859             >::fold_children_with`]. If you want to recurse, you need to call it manually."]
92860    #[inline]
92861    fn fold_pats(&mut self, node: Vec<Pat>) -> Vec<Pat> {
92862        <Vec<Pat> as FoldWith<Self>>::fold_children_with(node, self)
92863    }
92864    #[doc = "Visit a node of type `PrivateMethod`.\n\nBy default, this method calls \
92865             [`PrivateMethod::fold_children_with`]. If you want to recurse, you need to call it \
92866             manually."]
92867    #[inline]
92868    fn fold_private_method(&mut self, node: PrivateMethod) -> PrivateMethod {
92869        <PrivateMethod as FoldWith<Self>>::fold_children_with(node, self)
92870    }
92871    #[doc = "Visit a node of type `PrivateName`.\n\nBy default, this method calls \
92872             [`PrivateName::fold_children_with`]. If you want to recurse, you need to call it \
92873             manually."]
92874    #[inline]
92875    fn fold_private_name(&mut self, node: PrivateName) -> PrivateName {
92876        <PrivateName as FoldWith<Self>>::fold_children_with(node, self)
92877    }
92878    #[doc = "Visit a node of type `PrivateProp`.\n\nBy default, this method calls \
92879             [`PrivateProp::fold_children_with`]. If you want to recurse, you need to call it \
92880             manually."]
92881    #[inline]
92882    fn fold_private_prop(&mut self, node: PrivateProp) -> PrivateProp {
92883        <PrivateProp as FoldWith<Self>>::fold_children_with(node, self)
92884    }
92885    #[doc = "Visit a node of type `Program`.\n\nBy default, this method calls \
92886             [`Program::fold_children_with`]. If you want to recurse, you need to call it manually."]
92887    #[inline]
92888    fn fold_program(&mut self, node: Program) -> Program {
92889        <Program as FoldWith<Self>>::fold_children_with(node, self)
92890    }
92891    #[doc = "Visit a node of type `Prop`.\n\nBy default, this method calls \
92892             [`Prop::fold_children_with`]. If you want to recurse, you need to call it manually."]
92893    #[inline]
92894    fn fold_prop(&mut self, node: Prop) -> Prop {
92895        <Prop as FoldWith<Self>>::fold_children_with(node, self)
92896    }
92897    #[doc = "Visit a node of type `PropName`.\n\nBy default, this method calls \
92898             [`PropName::fold_children_with`]. If you want to recurse, you need to call it \
92899             manually."]
92900    #[inline]
92901    fn fold_prop_name(&mut self, node: PropName) -> PropName {
92902        <PropName as FoldWith<Self>>::fold_children_with(node, self)
92903    }
92904    #[doc = "Visit a node of type `PropOrSpread`.\n\nBy default, this method calls \
92905             [`PropOrSpread::fold_children_with`]. If you want to recurse, you need to call it \
92906             manually."]
92907    #[inline]
92908    fn fold_prop_or_spread(&mut self, node: PropOrSpread) -> PropOrSpread {
92909        <PropOrSpread as FoldWith<Self>>::fold_children_with(node, self)
92910    }
92911    #[doc = "Visit a node of type `Vec < PropOrSpread >`.\n\nBy default, this method calls [`Vec < \
92912             PropOrSpread >::fold_children_with`]. If you want to recurse, you need to call it \
92913             manually."]
92914    #[inline]
92915    fn fold_prop_or_spreads(&mut self, node: Vec<PropOrSpread>) -> Vec<PropOrSpread> {
92916        <Vec<PropOrSpread> as FoldWith<Self>>::fold_children_with(node, self)
92917    }
92918    #[doc = "Visit a node of type `Regex`.\n\nBy default, this method calls \
92919             [`Regex::fold_children_with`]. If you want to recurse, you need to call it manually."]
92920    #[inline]
92921    fn fold_regex(&mut self, node: Regex) -> Regex {
92922        <Regex as FoldWith<Self>>::fold_children_with(node, self)
92923    }
92924    #[doc = "Visit a node of type `RestPat`.\n\nBy default, this method calls \
92925             [`RestPat::fold_children_with`]. If you want to recurse, you need to call it manually."]
92926    #[inline]
92927    fn fold_rest_pat(&mut self, node: RestPat) -> RestPat {
92928        <RestPat as FoldWith<Self>>::fold_children_with(node, self)
92929    }
92930    #[doc = "Visit a node of type `ReturnStmt`.\n\nBy default, this method calls \
92931             [`ReturnStmt::fold_children_with`]. If you want to recurse, you need to call it \
92932             manually."]
92933    #[inline]
92934    fn fold_return_stmt(&mut self, node: ReturnStmt) -> ReturnStmt {
92935        <ReturnStmt as FoldWith<Self>>::fold_children_with(node, self)
92936    }
92937    #[doc = "Visit a node of type `Script`.\n\nBy default, this method calls \
92938             [`Script::fold_children_with`]. If you want to recurse, you need to call it manually."]
92939    #[inline]
92940    fn fold_script(&mut self, node: Script) -> Script {
92941        <Script as FoldWith<Self>>::fold_children_with(node, self)
92942    }
92943    #[doc = "Visit a node of type `SeqExpr`.\n\nBy default, this method calls \
92944             [`SeqExpr::fold_children_with`]. If you want to recurse, you need to call it manually."]
92945    #[inline]
92946    fn fold_seq_expr(&mut self, node: SeqExpr) -> SeqExpr {
92947        <SeqExpr as FoldWith<Self>>::fold_children_with(node, self)
92948    }
92949    #[doc = "Visit a node of type `SetterProp`.\n\nBy default, this method calls \
92950             [`SetterProp::fold_children_with`]. If you want to recurse, you need to call it \
92951             manually."]
92952    #[inline]
92953    fn fold_setter_prop(&mut self, node: SetterProp) -> SetterProp {
92954        <SetterProp as FoldWith<Self>>::fold_children_with(node, self)
92955    }
92956    #[doc = "Visit a node of type `SimpleAssignTarget`.\n\nBy default, this method calls \
92957             [`SimpleAssignTarget::fold_children_with`]. If you want to recurse, you need to call \
92958             it manually."]
92959    #[inline]
92960    fn fold_simple_assign_target(&mut self, node: SimpleAssignTarget) -> SimpleAssignTarget {
92961        <SimpleAssignTarget as FoldWith<Self>>::fold_children_with(node, self)
92962    }
92963    #[doc = "Visit a node of type `swc_common :: Span`.\n\nBy default, this method calls \
92964             [`swc_common :: Span::fold_children_with`]. If you want to recurse, you need to call \
92965             it manually."]
92966    #[inline]
92967    fn fold_span(&mut self, node: swc_common::Span) -> swc_common::Span {
92968        <swc_common::Span as FoldWith<Self>>::fold_children_with(node, self)
92969    }
92970    #[doc = "Visit a node of type `SpreadElement`.\n\nBy default, this method calls \
92971             [`SpreadElement::fold_children_with`]. If you want to recurse, you need to call it \
92972             manually."]
92973    #[inline]
92974    fn fold_spread_element(&mut self, node: SpreadElement) -> SpreadElement {
92975        <SpreadElement as FoldWith<Self>>::fold_children_with(node, self)
92976    }
92977    #[doc = "Visit a node of type `StaticBlock`.\n\nBy default, this method calls \
92978             [`StaticBlock::fold_children_with`]. If you want to recurse, you need to call it \
92979             manually."]
92980    #[inline]
92981    fn fold_static_block(&mut self, node: StaticBlock) -> StaticBlock {
92982        <StaticBlock as FoldWith<Self>>::fold_children_with(node, self)
92983    }
92984    #[doc = "Visit a node of type `Stmt`.\n\nBy default, this method calls \
92985             [`Stmt::fold_children_with`]. If you want to recurse, you need to call it manually."]
92986    #[inline]
92987    fn fold_stmt(&mut self, node: Stmt) -> Stmt {
92988        <Stmt as FoldWith<Self>>::fold_children_with(node, self)
92989    }
92990    #[doc = "Visit a node of type `Vec < Stmt >`.\n\nBy default, this method calls [`Vec < Stmt \
92991             >::fold_children_with`]. If you want to recurse, you need to call it manually."]
92992    #[inline]
92993    fn fold_stmts(&mut self, node: Vec<Stmt>) -> Vec<Stmt> {
92994        <Vec<Stmt> as FoldWith<Self>>::fold_children_with(node, self)
92995    }
92996    #[doc = "Visit a node of type `Str`.\n\nBy default, this method calls \
92997             [`Str::fold_children_with`]. If you want to recurse, you need to call it manually."]
92998    #[inline]
92999    fn fold_str(&mut self, node: Str) -> Str {
93000        <Str as FoldWith<Self>>::fold_children_with(node, self)
93001    }
93002    #[doc = "Visit a node of type `Super`.\n\nBy default, this method calls \
93003             [`Super::fold_children_with`]. If you want to recurse, you need to call it manually."]
93004    #[inline]
93005    fn fold_super(&mut self, node: Super) -> Super {
93006        <Super as FoldWith<Self>>::fold_children_with(node, self)
93007    }
93008    #[doc = "Visit a node of type `SuperProp`.\n\nBy default, this method calls \
93009             [`SuperProp::fold_children_with`]. If you want to recurse, you need to call it \
93010             manually."]
93011    #[inline]
93012    fn fold_super_prop(&mut self, node: SuperProp) -> SuperProp {
93013        <SuperProp as FoldWith<Self>>::fold_children_with(node, self)
93014    }
93015    #[doc = "Visit a node of type `SuperPropExpr`.\n\nBy default, this method calls \
93016             [`SuperPropExpr::fold_children_with`]. If you want to recurse, you need to call it \
93017             manually."]
93018    #[inline]
93019    fn fold_super_prop_expr(&mut self, node: SuperPropExpr) -> SuperPropExpr {
93020        <SuperPropExpr as FoldWith<Self>>::fold_children_with(node, self)
93021    }
93022    #[doc = "Visit a node of type `SwitchCase`.\n\nBy default, this method calls \
93023             [`SwitchCase::fold_children_with`]. If you want to recurse, you need to call it \
93024             manually."]
93025    #[inline]
93026    fn fold_switch_case(&mut self, node: SwitchCase) -> SwitchCase {
93027        <SwitchCase as FoldWith<Self>>::fold_children_with(node, self)
93028    }
93029    #[doc = "Visit a node of type `Vec < SwitchCase >`.\n\nBy default, this method calls [`Vec < \
93030             SwitchCase >::fold_children_with`]. If you want to recurse, you need to call it \
93031             manually."]
93032    #[inline]
93033    fn fold_switch_cases(&mut self, node: Vec<SwitchCase>) -> Vec<SwitchCase> {
93034        <Vec<SwitchCase> as FoldWith<Self>>::fold_children_with(node, self)
93035    }
93036    #[doc = "Visit a node of type `SwitchStmt`.\n\nBy default, this method calls \
93037             [`SwitchStmt::fold_children_with`]. If you want to recurse, you need to call it \
93038             manually."]
93039    #[inline]
93040    fn fold_switch_stmt(&mut self, node: SwitchStmt) -> SwitchStmt {
93041        <SwitchStmt as FoldWith<Self>>::fold_children_with(node, self)
93042    }
93043    #[doc = "Visit a node of type `swc_common :: SyntaxContext`.\n\nBy default, this method calls \
93044             [`swc_common :: SyntaxContext::fold_children_with`]. If you want to recurse, you need \
93045             to call it manually."]
93046    #[inline]
93047    fn fold_syntax_context(
93048        &mut self,
93049        node: swc_common::SyntaxContext,
93050    ) -> swc_common::SyntaxContext {
93051        <swc_common::SyntaxContext as FoldWith<Self>>::fold_children_with(node, self)
93052    }
93053    #[doc = "Visit a node of type `TaggedTpl`.\n\nBy default, this method calls \
93054             [`TaggedTpl::fold_children_with`]. If you want to recurse, you need to call it \
93055             manually."]
93056    #[inline]
93057    fn fold_tagged_tpl(&mut self, node: TaggedTpl) -> TaggedTpl {
93058        <TaggedTpl as FoldWith<Self>>::fold_children_with(node, self)
93059    }
93060    #[doc = "Visit a node of type `ThisExpr`.\n\nBy default, this method calls \
93061             [`ThisExpr::fold_children_with`]. If you want to recurse, you need to call it \
93062             manually."]
93063    #[inline]
93064    fn fold_this_expr(&mut self, node: ThisExpr) -> ThisExpr {
93065        <ThisExpr as FoldWith<Self>>::fold_children_with(node, self)
93066    }
93067    #[doc = "Visit a node of type `ThrowStmt`.\n\nBy default, this method calls \
93068             [`ThrowStmt::fold_children_with`]. If you want to recurse, you need to call it \
93069             manually."]
93070    #[inline]
93071    fn fold_throw_stmt(&mut self, node: ThrowStmt) -> ThrowStmt {
93072        <ThrowStmt as FoldWith<Self>>::fold_children_with(node, self)
93073    }
93074    #[doc = "Visit a node of type `Tpl`.\n\nBy default, this method calls \
93075             [`Tpl::fold_children_with`]. If you want to recurse, you need to call it manually."]
93076    #[inline]
93077    fn fold_tpl(&mut self, node: Tpl) -> Tpl {
93078        <Tpl as FoldWith<Self>>::fold_children_with(node, self)
93079    }
93080    #[doc = "Visit a node of type `TplElement`.\n\nBy default, this method calls \
93081             [`TplElement::fold_children_with`]. If you want to recurse, you need to call it \
93082             manually."]
93083    #[inline]
93084    fn fold_tpl_element(&mut self, node: TplElement) -> TplElement {
93085        <TplElement as FoldWith<Self>>::fold_children_with(node, self)
93086    }
93087    #[doc = "Visit a node of type `Vec < TplElement >`.\n\nBy default, this method calls [`Vec < \
93088             TplElement >::fold_children_with`]. If you want to recurse, you need to call it \
93089             manually."]
93090    #[inline]
93091    fn fold_tpl_elements(&mut self, node: Vec<TplElement>) -> Vec<TplElement> {
93092        <Vec<TplElement> as FoldWith<Self>>::fold_children_with(node, self)
93093    }
93094    #[doc = "Visit a node of type `TruePlusMinus`.\n\nBy default, this method calls \
93095             [`TruePlusMinus::fold_children_with`]. If you want to recurse, you need to call it \
93096             manually."]
93097    #[inline]
93098    fn fold_true_plus_minus(&mut self, node: TruePlusMinus) -> TruePlusMinus {
93099        <TruePlusMinus as FoldWith<Self>>::fold_children_with(node, self)
93100    }
93101    #[doc = "Visit a node of type `TryStmt`.\n\nBy default, this method calls \
93102             [`TryStmt::fold_children_with`]. If you want to recurse, you need to call it manually."]
93103    #[inline]
93104    fn fold_try_stmt(&mut self, node: TryStmt) -> TryStmt {
93105        <TryStmt as FoldWith<Self>>::fold_children_with(node, self)
93106    }
93107    #[doc = "Visit a node of type `TsArrayType`.\n\nBy default, this method calls \
93108             [`TsArrayType::fold_children_with`]. If you want to recurse, you need to call it \
93109             manually."]
93110    #[inline]
93111    fn fold_ts_array_type(&mut self, node: TsArrayType) -> TsArrayType {
93112        <TsArrayType as FoldWith<Self>>::fold_children_with(node, self)
93113    }
93114    #[doc = "Visit a node of type `TsAsExpr`.\n\nBy default, this method calls \
93115             [`TsAsExpr::fold_children_with`]. If you want to recurse, you need to call it \
93116             manually."]
93117    #[inline]
93118    fn fold_ts_as_expr(&mut self, node: TsAsExpr) -> TsAsExpr {
93119        <TsAsExpr as FoldWith<Self>>::fold_children_with(node, self)
93120    }
93121    #[doc = "Visit a node of type `TsCallSignatureDecl`.\n\nBy default, this method calls \
93122             [`TsCallSignatureDecl::fold_children_with`]. If you want to recurse, you need to call \
93123             it manually."]
93124    #[inline]
93125    fn fold_ts_call_signature_decl(&mut self, node: TsCallSignatureDecl) -> TsCallSignatureDecl {
93126        <TsCallSignatureDecl as FoldWith<Self>>::fold_children_with(node, self)
93127    }
93128    #[doc = "Visit a node of type `TsConditionalType`.\n\nBy default, this method calls \
93129             [`TsConditionalType::fold_children_with`]. If you want to recurse, you need to call \
93130             it manually."]
93131    #[inline]
93132    fn fold_ts_conditional_type(&mut self, node: TsConditionalType) -> TsConditionalType {
93133        <TsConditionalType as FoldWith<Self>>::fold_children_with(node, self)
93134    }
93135    #[doc = "Visit a node of type `TsConstAssertion`.\n\nBy default, this method calls \
93136             [`TsConstAssertion::fold_children_with`]. If you want to recurse, you need to call it \
93137             manually."]
93138    #[inline]
93139    fn fold_ts_const_assertion(&mut self, node: TsConstAssertion) -> TsConstAssertion {
93140        <TsConstAssertion as FoldWith<Self>>::fold_children_with(node, self)
93141    }
93142    #[doc = "Visit a node of type `TsConstructSignatureDecl`.\n\nBy default, this method calls \
93143             [`TsConstructSignatureDecl::fold_children_with`]. If you want to recurse, you need to \
93144             call it manually."]
93145    #[inline]
93146    fn fold_ts_construct_signature_decl(
93147        &mut self,
93148        node: TsConstructSignatureDecl,
93149    ) -> TsConstructSignatureDecl {
93150        <TsConstructSignatureDecl as FoldWith<Self>>::fold_children_with(node, self)
93151    }
93152    #[doc = "Visit a node of type `TsConstructorType`.\n\nBy default, this method calls \
93153             [`TsConstructorType::fold_children_with`]. If you want to recurse, you need to call \
93154             it manually."]
93155    #[inline]
93156    fn fold_ts_constructor_type(&mut self, node: TsConstructorType) -> TsConstructorType {
93157        <TsConstructorType as FoldWith<Self>>::fold_children_with(node, self)
93158    }
93159    #[doc = "Visit a node of type `TsEntityName`.\n\nBy default, this method calls \
93160             [`TsEntityName::fold_children_with`]. If you want to recurse, you need to call it \
93161             manually."]
93162    #[inline]
93163    fn fold_ts_entity_name(&mut self, node: TsEntityName) -> TsEntityName {
93164        <TsEntityName as FoldWith<Self>>::fold_children_with(node, self)
93165    }
93166    #[doc = "Visit a node of type `TsEnumDecl`.\n\nBy default, this method calls \
93167             [`TsEnumDecl::fold_children_with`]. If you want to recurse, you need to call it \
93168             manually."]
93169    #[inline]
93170    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl) -> TsEnumDecl {
93171        <TsEnumDecl as FoldWith<Self>>::fold_children_with(node, self)
93172    }
93173    #[doc = "Visit a node of type `TsEnumMember`.\n\nBy default, this method calls \
93174             [`TsEnumMember::fold_children_with`]. If you want to recurse, you need to call it \
93175             manually."]
93176    #[inline]
93177    fn fold_ts_enum_member(&mut self, node: TsEnumMember) -> TsEnumMember {
93178        <TsEnumMember as FoldWith<Self>>::fold_children_with(node, self)
93179    }
93180    #[doc = "Visit a node of type `TsEnumMemberId`.\n\nBy default, this method calls \
93181             [`TsEnumMemberId::fold_children_with`]. If you want to recurse, you need to call it \
93182             manually."]
93183    #[inline]
93184    fn fold_ts_enum_member_id(&mut self, node: TsEnumMemberId) -> TsEnumMemberId {
93185        <TsEnumMemberId as FoldWith<Self>>::fold_children_with(node, self)
93186    }
93187    #[doc = "Visit a node of type `Vec < TsEnumMember >`.\n\nBy default, this method calls [`Vec < \
93188             TsEnumMember >::fold_children_with`]. If you want to recurse, you need to call it \
93189             manually."]
93190    #[inline]
93191    fn fold_ts_enum_members(&mut self, node: Vec<TsEnumMember>) -> Vec<TsEnumMember> {
93192        <Vec<TsEnumMember> as FoldWith<Self>>::fold_children_with(node, self)
93193    }
93194    #[doc = "Visit a node of type `TsExportAssignment`.\n\nBy default, this method calls \
93195             [`TsExportAssignment::fold_children_with`]. If you want to recurse, you need to call \
93196             it manually."]
93197    #[inline]
93198    fn fold_ts_export_assignment(&mut self, node: TsExportAssignment) -> TsExportAssignment {
93199        <TsExportAssignment as FoldWith<Self>>::fold_children_with(node, self)
93200    }
93201    #[doc = "Visit a node of type `TsExprWithTypeArgs`.\n\nBy default, this method calls \
93202             [`TsExprWithTypeArgs::fold_children_with`]. If you want to recurse, you need to call \
93203             it manually."]
93204    #[inline]
93205    fn fold_ts_expr_with_type_args(&mut self, node: TsExprWithTypeArgs) -> TsExprWithTypeArgs {
93206        <TsExprWithTypeArgs as FoldWith<Self>>::fold_children_with(node, self)
93207    }
93208    #[doc = "Visit a node of type `Vec < TsExprWithTypeArgs >`.\n\nBy default, this method calls \
93209             [`Vec < TsExprWithTypeArgs >::fold_children_with`]. If you want to recurse, you need \
93210             to call it manually."]
93211    #[inline]
93212    fn fold_ts_expr_with_type_argss(
93213        &mut self,
93214        node: Vec<TsExprWithTypeArgs>,
93215    ) -> Vec<TsExprWithTypeArgs> {
93216        <Vec<TsExprWithTypeArgs> as FoldWith<Self>>::fold_children_with(node, self)
93217    }
93218    #[doc = "Visit a node of type `TsExternalModuleRef`.\n\nBy default, this method calls \
93219             [`TsExternalModuleRef::fold_children_with`]. If you want to recurse, you need to call \
93220             it manually."]
93221    #[inline]
93222    fn fold_ts_external_module_ref(&mut self, node: TsExternalModuleRef) -> TsExternalModuleRef {
93223        <TsExternalModuleRef as FoldWith<Self>>::fold_children_with(node, self)
93224    }
93225    #[doc = "Visit a node of type `TsFnOrConstructorType`.\n\nBy default, this method calls \
93226             [`TsFnOrConstructorType::fold_children_with`]. If you want to recurse, you need to \
93227             call it manually."]
93228    #[inline]
93229    fn fold_ts_fn_or_constructor_type(
93230        &mut self,
93231        node: TsFnOrConstructorType,
93232    ) -> TsFnOrConstructorType {
93233        <TsFnOrConstructorType as FoldWith<Self>>::fold_children_with(node, self)
93234    }
93235    #[doc = "Visit a node of type `TsFnParam`.\n\nBy default, this method calls \
93236             [`TsFnParam::fold_children_with`]. If you want to recurse, you need to call it \
93237             manually."]
93238    #[inline]
93239    fn fold_ts_fn_param(&mut self, node: TsFnParam) -> TsFnParam {
93240        <TsFnParam as FoldWith<Self>>::fold_children_with(node, self)
93241    }
93242    #[doc = "Visit a node of type `Vec < TsFnParam >`.\n\nBy default, this method calls [`Vec < \
93243             TsFnParam >::fold_children_with`]. If you want to recurse, you need to call it \
93244             manually."]
93245    #[inline]
93246    fn fold_ts_fn_params(&mut self, node: Vec<TsFnParam>) -> Vec<TsFnParam> {
93247        <Vec<TsFnParam> as FoldWith<Self>>::fold_children_with(node, self)
93248    }
93249    #[doc = "Visit a node of type `TsFnType`.\n\nBy default, this method calls \
93250             [`TsFnType::fold_children_with`]. If you want to recurse, you need to call it \
93251             manually."]
93252    #[inline]
93253    fn fold_ts_fn_type(&mut self, node: TsFnType) -> TsFnType {
93254        <TsFnType as FoldWith<Self>>::fold_children_with(node, self)
93255    }
93256    #[doc = "Visit a node of type `TsGetterSignature`.\n\nBy default, this method calls \
93257             [`TsGetterSignature::fold_children_with`]. If you want to recurse, you need to call \
93258             it manually."]
93259    #[inline]
93260    fn fold_ts_getter_signature(&mut self, node: TsGetterSignature) -> TsGetterSignature {
93261        <TsGetterSignature as FoldWith<Self>>::fold_children_with(node, self)
93262    }
93263    #[doc = "Visit a node of type `TsImportCallOptions`.\n\nBy default, this method calls \
93264             [`TsImportCallOptions::fold_children_with`]. If you want to recurse, you need to call \
93265             it manually."]
93266    #[inline]
93267    fn fold_ts_import_call_options(&mut self, node: TsImportCallOptions) -> TsImportCallOptions {
93268        <TsImportCallOptions as FoldWith<Self>>::fold_children_with(node, self)
93269    }
93270    #[doc = "Visit a node of type `TsImportEqualsDecl`.\n\nBy default, this method calls \
93271             [`TsImportEqualsDecl::fold_children_with`]. If you want to recurse, you need to call \
93272             it manually."]
93273    #[inline]
93274    fn fold_ts_import_equals_decl(&mut self, node: TsImportEqualsDecl) -> TsImportEqualsDecl {
93275        <TsImportEqualsDecl as FoldWith<Self>>::fold_children_with(node, self)
93276    }
93277    #[doc = "Visit a node of type `TsImportType`.\n\nBy default, this method calls \
93278             [`TsImportType::fold_children_with`]. If you want to recurse, you need to call it \
93279             manually."]
93280    #[inline]
93281    fn fold_ts_import_type(&mut self, node: TsImportType) -> TsImportType {
93282        <TsImportType as FoldWith<Self>>::fold_children_with(node, self)
93283    }
93284    #[doc = "Visit a node of type `TsIndexSignature`.\n\nBy default, this method calls \
93285             [`TsIndexSignature::fold_children_with`]. If you want to recurse, you need to call it \
93286             manually."]
93287    #[inline]
93288    fn fold_ts_index_signature(&mut self, node: TsIndexSignature) -> TsIndexSignature {
93289        <TsIndexSignature as FoldWith<Self>>::fold_children_with(node, self)
93290    }
93291    #[doc = "Visit a node of type `TsIndexedAccessType`.\n\nBy default, this method calls \
93292             [`TsIndexedAccessType::fold_children_with`]. If you want to recurse, you need to call \
93293             it manually."]
93294    #[inline]
93295    fn fold_ts_indexed_access_type(&mut self, node: TsIndexedAccessType) -> TsIndexedAccessType {
93296        <TsIndexedAccessType as FoldWith<Self>>::fold_children_with(node, self)
93297    }
93298    #[doc = "Visit a node of type `TsInferType`.\n\nBy default, this method calls \
93299             [`TsInferType::fold_children_with`]. If you want to recurse, you need to call it \
93300             manually."]
93301    #[inline]
93302    fn fold_ts_infer_type(&mut self, node: TsInferType) -> TsInferType {
93303        <TsInferType as FoldWith<Self>>::fold_children_with(node, self)
93304    }
93305    #[doc = "Visit a node of type `TsInstantiation`.\n\nBy default, this method calls \
93306             [`TsInstantiation::fold_children_with`]. If you want to recurse, you need to call it \
93307             manually."]
93308    #[inline]
93309    fn fold_ts_instantiation(&mut self, node: TsInstantiation) -> TsInstantiation {
93310        <TsInstantiation as FoldWith<Self>>::fold_children_with(node, self)
93311    }
93312    #[doc = "Visit a node of type `TsInterfaceBody`.\n\nBy default, this method calls \
93313             [`TsInterfaceBody::fold_children_with`]. If you want to recurse, you need to call it \
93314             manually."]
93315    #[inline]
93316    fn fold_ts_interface_body(&mut self, node: TsInterfaceBody) -> TsInterfaceBody {
93317        <TsInterfaceBody as FoldWith<Self>>::fold_children_with(node, self)
93318    }
93319    #[doc = "Visit a node of type `TsInterfaceDecl`.\n\nBy default, this method calls \
93320             [`TsInterfaceDecl::fold_children_with`]. If you want to recurse, you need to call it \
93321             manually."]
93322    #[inline]
93323    fn fold_ts_interface_decl(&mut self, node: TsInterfaceDecl) -> TsInterfaceDecl {
93324        <TsInterfaceDecl as FoldWith<Self>>::fold_children_with(node, self)
93325    }
93326    #[doc = "Visit a node of type `TsIntersectionType`.\n\nBy default, this method calls \
93327             [`TsIntersectionType::fold_children_with`]. If you want to recurse, you need to call \
93328             it manually."]
93329    #[inline]
93330    fn fold_ts_intersection_type(&mut self, node: TsIntersectionType) -> TsIntersectionType {
93331        <TsIntersectionType as FoldWith<Self>>::fold_children_with(node, self)
93332    }
93333    #[doc = "Visit a node of type `TsKeywordType`.\n\nBy default, this method calls \
93334             [`TsKeywordType::fold_children_with`]. If you want to recurse, you need to call it \
93335             manually."]
93336    #[inline]
93337    fn fold_ts_keyword_type(&mut self, node: TsKeywordType) -> TsKeywordType {
93338        <TsKeywordType as FoldWith<Self>>::fold_children_with(node, self)
93339    }
93340    #[doc = "Visit a node of type `TsKeywordTypeKind`.\n\nBy default, this method calls \
93341             [`TsKeywordTypeKind::fold_children_with`]. If you want to recurse, you need to call \
93342             it manually."]
93343    #[inline]
93344    fn fold_ts_keyword_type_kind(&mut self, node: TsKeywordTypeKind) -> TsKeywordTypeKind {
93345        <TsKeywordTypeKind as FoldWith<Self>>::fold_children_with(node, self)
93346    }
93347    #[doc = "Visit a node of type `TsLit`.\n\nBy default, this method calls \
93348             [`TsLit::fold_children_with`]. If you want to recurse, you need to call it manually."]
93349    #[inline]
93350    fn fold_ts_lit(&mut self, node: TsLit) -> TsLit {
93351        <TsLit as FoldWith<Self>>::fold_children_with(node, self)
93352    }
93353    #[doc = "Visit a node of type `TsLitType`.\n\nBy default, this method calls \
93354             [`TsLitType::fold_children_with`]. If you want to recurse, you need to call it \
93355             manually."]
93356    #[inline]
93357    fn fold_ts_lit_type(&mut self, node: TsLitType) -> TsLitType {
93358        <TsLitType as FoldWith<Self>>::fold_children_with(node, self)
93359    }
93360    #[doc = "Visit a node of type `TsMappedType`.\n\nBy default, this method calls \
93361             [`TsMappedType::fold_children_with`]. If you want to recurse, you need to call it \
93362             manually."]
93363    #[inline]
93364    fn fold_ts_mapped_type(&mut self, node: TsMappedType) -> TsMappedType {
93365        <TsMappedType as FoldWith<Self>>::fold_children_with(node, self)
93366    }
93367    #[doc = "Visit a node of type `TsMethodSignature`.\n\nBy default, this method calls \
93368             [`TsMethodSignature::fold_children_with`]. If you want to recurse, you need to call \
93369             it manually."]
93370    #[inline]
93371    fn fold_ts_method_signature(&mut self, node: TsMethodSignature) -> TsMethodSignature {
93372        <TsMethodSignature as FoldWith<Self>>::fold_children_with(node, self)
93373    }
93374    #[doc = "Visit a node of type `TsModuleBlock`.\n\nBy default, this method calls \
93375             [`TsModuleBlock::fold_children_with`]. If you want to recurse, you need to call it \
93376             manually."]
93377    #[inline]
93378    fn fold_ts_module_block(&mut self, node: TsModuleBlock) -> TsModuleBlock {
93379        <TsModuleBlock as FoldWith<Self>>::fold_children_with(node, self)
93380    }
93381    #[doc = "Visit a node of type `TsModuleDecl`.\n\nBy default, this method calls \
93382             [`TsModuleDecl::fold_children_with`]. If you want to recurse, you need to call it \
93383             manually."]
93384    #[inline]
93385    fn fold_ts_module_decl(&mut self, node: TsModuleDecl) -> TsModuleDecl {
93386        <TsModuleDecl as FoldWith<Self>>::fold_children_with(node, self)
93387    }
93388    #[doc = "Visit a node of type `TsModuleName`.\n\nBy default, this method calls \
93389             [`TsModuleName::fold_children_with`]. If you want to recurse, you need to call it \
93390             manually."]
93391    #[inline]
93392    fn fold_ts_module_name(&mut self, node: TsModuleName) -> TsModuleName {
93393        <TsModuleName as FoldWith<Self>>::fold_children_with(node, self)
93394    }
93395    #[doc = "Visit a node of type `TsModuleRef`.\n\nBy default, this method calls \
93396             [`TsModuleRef::fold_children_with`]. If you want to recurse, you need to call it \
93397             manually."]
93398    #[inline]
93399    fn fold_ts_module_ref(&mut self, node: TsModuleRef) -> TsModuleRef {
93400        <TsModuleRef as FoldWith<Self>>::fold_children_with(node, self)
93401    }
93402    #[doc = "Visit a node of type `TsNamespaceBody`.\n\nBy default, this method calls \
93403             [`TsNamespaceBody::fold_children_with`]. If you want to recurse, you need to call it \
93404             manually."]
93405    #[inline]
93406    fn fold_ts_namespace_body(&mut self, node: TsNamespaceBody) -> TsNamespaceBody {
93407        <TsNamespaceBody as FoldWith<Self>>::fold_children_with(node, self)
93408    }
93409    #[doc = "Visit a node of type `TsNamespaceDecl`.\n\nBy default, this method calls \
93410             [`TsNamespaceDecl::fold_children_with`]. If you want to recurse, you need to call it \
93411             manually."]
93412    #[inline]
93413    fn fold_ts_namespace_decl(&mut self, node: TsNamespaceDecl) -> TsNamespaceDecl {
93414        <TsNamespaceDecl as FoldWith<Self>>::fold_children_with(node, self)
93415    }
93416    #[doc = "Visit a node of type `TsNamespaceExportDecl`.\n\nBy default, this method calls \
93417             [`TsNamespaceExportDecl::fold_children_with`]. If you want to recurse, you need to \
93418             call it manually."]
93419    #[inline]
93420    fn fold_ts_namespace_export_decl(
93421        &mut self,
93422        node: TsNamespaceExportDecl,
93423    ) -> TsNamespaceExportDecl {
93424        <TsNamespaceExportDecl as FoldWith<Self>>::fold_children_with(node, self)
93425    }
93426    #[doc = "Visit a node of type `TsNonNullExpr`.\n\nBy default, this method calls \
93427             [`TsNonNullExpr::fold_children_with`]. If you want to recurse, you need to call it \
93428             manually."]
93429    #[inline]
93430    fn fold_ts_non_null_expr(&mut self, node: TsNonNullExpr) -> TsNonNullExpr {
93431        <TsNonNullExpr as FoldWith<Self>>::fold_children_with(node, self)
93432    }
93433    #[doc = "Visit a node of type `TsOptionalType`.\n\nBy default, this method calls \
93434             [`TsOptionalType::fold_children_with`]. If you want to recurse, you need to call it \
93435             manually."]
93436    #[inline]
93437    fn fold_ts_optional_type(&mut self, node: TsOptionalType) -> TsOptionalType {
93438        <TsOptionalType as FoldWith<Self>>::fold_children_with(node, self)
93439    }
93440    #[doc = "Visit a node of type `TsParamProp`.\n\nBy default, this method calls \
93441             [`TsParamProp::fold_children_with`]. If you want to recurse, you need to call it \
93442             manually."]
93443    #[inline]
93444    fn fold_ts_param_prop(&mut self, node: TsParamProp) -> TsParamProp {
93445        <TsParamProp as FoldWith<Self>>::fold_children_with(node, self)
93446    }
93447    #[doc = "Visit a node of type `TsParamPropParam`.\n\nBy default, this method calls \
93448             [`TsParamPropParam::fold_children_with`]. If you want to recurse, you need to call it \
93449             manually."]
93450    #[inline]
93451    fn fold_ts_param_prop_param(&mut self, node: TsParamPropParam) -> TsParamPropParam {
93452        <TsParamPropParam as FoldWith<Self>>::fold_children_with(node, self)
93453    }
93454    #[doc = "Visit a node of type `TsParenthesizedType`.\n\nBy default, this method calls \
93455             [`TsParenthesizedType::fold_children_with`]. If you want to recurse, you need to call \
93456             it manually."]
93457    #[inline]
93458    fn fold_ts_parenthesized_type(&mut self, node: TsParenthesizedType) -> TsParenthesizedType {
93459        <TsParenthesizedType as FoldWith<Self>>::fold_children_with(node, self)
93460    }
93461    #[doc = "Visit a node of type `TsPropertySignature`.\n\nBy default, this method calls \
93462             [`TsPropertySignature::fold_children_with`]. If you want to recurse, you need to call \
93463             it manually."]
93464    #[inline]
93465    fn fold_ts_property_signature(&mut self, node: TsPropertySignature) -> TsPropertySignature {
93466        <TsPropertySignature as FoldWith<Self>>::fold_children_with(node, self)
93467    }
93468    #[doc = "Visit a node of type `TsQualifiedName`.\n\nBy default, this method calls \
93469             [`TsQualifiedName::fold_children_with`]. If you want to recurse, you need to call it \
93470             manually."]
93471    #[inline]
93472    fn fold_ts_qualified_name(&mut self, node: TsQualifiedName) -> TsQualifiedName {
93473        <TsQualifiedName as FoldWith<Self>>::fold_children_with(node, self)
93474    }
93475    #[doc = "Visit a node of type `TsRestType`.\n\nBy default, this method calls \
93476             [`TsRestType::fold_children_with`]. If you want to recurse, you need to call it \
93477             manually."]
93478    #[inline]
93479    fn fold_ts_rest_type(&mut self, node: TsRestType) -> TsRestType {
93480        <TsRestType as FoldWith<Self>>::fold_children_with(node, self)
93481    }
93482    #[doc = "Visit a node of type `TsSatisfiesExpr`.\n\nBy default, this method calls \
93483             [`TsSatisfiesExpr::fold_children_with`]. If you want to recurse, you need to call it \
93484             manually."]
93485    #[inline]
93486    fn fold_ts_satisfies_expr(&mut self, node: TsSatisfiesExpr) -> TsSatisfiesExpr {
93487        <TsSatisfiesExpr as FoldWith<Self>>::fold_children_with(node, self)
93488    }
93489    #[doc = "Visit a node of type `TsSetterSignature`.\n\nBy default, this method calls \
93490             [`TsSetterSignature::fold_children_with`]. If you want to recurse, you need to call \
93491             it manually."]
93492    #[inline]
93493    fn fold_ts_setter_signature(&mut self, node: TsSetterSignature) -> TsSetterSignature {
93494        <TsSetterSignature as FoldWith<Self>>::fold_children_with(node, self)
93495    }
93496    #[doc = "Visit a node of type `TsThisType`.\n\nBy default, this method calls \
93497             [`TsThisType::fold_children_with`]. If you want to recurse, you need to call it \
93498             manually."]
93499    #[inline]
93500    fn fold_ts_this_type(&mut self, node: TsThisType) -> TsThisType {
93501        <TsThisType as FoldWith<Self>>::fold_children_with(node, self)
93502    }
93503    #[doc = "Visit a node of type `TsThisTypeOrIdent`.\n\nBy default, this method calls \
93504             [`TsThisTypeOrIdent::fold_children_with`]. If you want to recurse, you need to call \
93505             it manually."]
93506    #[inline]
93507    fn fold_ts_this_type_or_ident(&mut self, node: TsThisTypeOrIdent) -> TsThisTypeOrIdent {
93508        <TsThisTypeOrIdent as FoldWith<Self>>::fold_children_with(node, self)
93509    }
93510    #[doc = "Visit a node of type `TsTplLitType`.\n\nBy default, this method calls \
93511             [`TsTplLitType::fold_children_with`]. If you want to recurse, you need to call it \
93512             manually."]
93513    #[inline]
93514    fn fold_ts_tpl_lit_type(&mut self, node: TsTplLitType) -> TsTplLitType {
93515        <TsTplLitType as FoldWith<Self>>::fold_children_with(node, self)
93516    }
93517    #[doc = "Visit a node of type `TsTupleElement`.\n\nBy default, this method calls \
93518             [`TsTupleElement::fold_children_with`]. If you want to recurse, you need to call it \
93519             manually."]
93520    #[inline]
93521    fn fold_ts_tuple_element(&mut self, node: TsTupleElement) -> TsTupleElement {
93522        <TsTupleElement as FoldWith<Self>>::fold_children_with(node, self)
93523    }
93524    #[doc = "Visit a node of type `Vec < TsTupleElement >`.\n\nBy default, this method calls [`Vec \
93525             < TsTupleElement >::fold_children_with`]. If you want to recurse, you need to call it \
93526             manually."]
93527    #[inline]
93528    fn fold_ts_tuple_elements(&mut self, node: Vec<TsTupleElement>) -> Vec<TsTupleElement> {
93529        <Vec<TsTupleElement> as FoldWith<Self>>::fold_children_with(node, self)
93530    }
93531    #[doc = "Visit a node of type `TsTupleType`.\n\nBy default, this method calls \
93532             [`TsTupleType::fold_children_with`]. If you want to recurse, you need to call it \
93533             manually."]
93534    #[inline]
93535    fn fold_ts_tuple_type(&mut self, node: TsTupleType) -> TsTupleType {
93536        <TsTupleType as FoldWith<Self>>::fold_children_with(node, self)
93537    }
93538    #[doc = "Visit a node of type `TsType`.\n\nBy default, this method calls \
93539             [`TsType::fold_children_with`]. If you want to recurse, you need to call it manually."]
93540    #[inline]
93541    fn fold_ts_type(&mut self, node: TsType) -> TsType {
93542        <TsType as FoldWith<Self>>::fold_children_with(node, self)
93543    }
93544    #[doc = "Visit a node of type `TsTypeAliasDecl`.\n\nBy default, this method calls \
93545             [`TsTypeAliasDecl::fold_children_with`]. If you want to recurse, you need to call it \
93546             manually."]
93547    #[inline]
93548    fn fold_ts_type_alias_decl(&mut self, node: TsTypeAliasDecl) -> TsTypeAliasDecl {
93549        <TsTypeAliasDecl as FoldWith<Self>>::fold_children_with(node, self)
93550    }
93551    #[doc = "Visit a node of type `TsTypeAnn`.\n\nBy default, this method calls \
93552             [`TsTypeAnn::fold_children_with`]. If you want to recurse, you need to call it \
93553             manually."]
93554    #[inline]
93555    fn fold_ts_type_ann(&mut self, node: TsTypeAnn) -> TsTypeAnn {
93556        <TsTypeAnn as FoldWith<Self>>::fold_children_with(node, self)
93557    }
93558    #[doc = "Visit a node of type `TsTypeAssertion`.\n\nBy default, this method calls \
93559             [`TsTypeAssertion::fold_children_with`]. If you want to recurse, you need to call it \
93560             manually."]
93561    #[inline]
93562    fn fold_ts_type_assertion(&mut self, node: TsTypeAssertion) -> TsTypeAssertion {
93563        <TsTypeAssertion as FoldWith<Self>>::fold_children_with(node, self)
93564    }
93565    #[doc = "Visit a node of type `TsTypeElement`.\n\nBy default, this method calls \
93566             [`TsTypeElement::fold_children_with`]. If you want to recurse, you need to call it \
93567             manually."]
93568    #[inline]
93569    fn fold_ts_type_element(&mut self, node: TsTypeElement) -> TsTypeElement {
93570        <TsTypeElement as FoldWith<Self>>::fold_children_with(node, self)
93571    }
93572    #[doc = "Visit a node of type `Vec < TsTypeElement >`.\n\nBy default, this method calls [`Vec \
93573             < TsTypeElement >::fold_children_with`]. If you want to recurse, you need to call it \
93574             manually."]
93575    #[inline]
93576    fn fold_ts_type_elements(&mut self, node: Vec<TsTypeElement>) -> Vec<TsTypeElement> {
93577        <Vec<TsTypeElement> as FoldWith<Self>>::fold_children_with(node, self)
93578    }
93579    #[doc = "Visit a node of type `TsTypeLit`.\n\nBy default, this method calls \
93580             [`TsTypeLit::fold_children_with`]. If you want to recurse, you need to call it \
93581             manually."]
93582    #[inline]
93583    fn fold_ts_type_lit(&mut self, node: TsTypeLit) -> TsTypeLit {
93584        <TsTypeLit as FoldWith<Self>>::fold_children_with(node, self)
93585    }
93586    #[doc = "Visit a node of type `TsTypeOperator`.\n\nBy default, this method calls \
93587             [`TsTypeOperator::fold_children_with`]. If you want to recurse, you need to call it \
93588             manually."]
93589    #[inline]
93590    fn fold_ts_type_operator(&mut self, node: TsTypeOperator) -> TsTypeOperator {
93591        <TsTypeOperator as FoldWith<Self>>::fold_children_with(node, self)
93592    }
93593    #[doc = "Visit a node of type `TsTypeOperatorOp`.\n\nBy default, this method calls \
93594             [`TsTypeOperatorOp::fold_children_with`]. If you want to recurse, you need to call it \
93595             manually."]
93596    #[inline]
93597    fn fold_ts_type_operator_op(&mut self, node: TsTypeOperatorOp) -> TsTypeOperatorOp {
93598        <TsTypeOperatorOp as FoldWith<Self>>::fold_children_with(node, self)
93599    }
93600    #[doc = "Visit a node of type `TsTypeParam`.\n\nBy default, this method calls \
93601             [`TsTypeParam::fold_children_with`]. If you want to recurse, you need to call it \
93602             manually."]
93603    #[inline]
93604    fn fold_ts_type_param(&mut self, node: TsTypeParam) -> TsTypeParam {
93605        <TsTypeParam as FoldWith<Self>>::fold_children_with(node, self)
93606    }
93607    #[doc = "Visit a node of type `TsTypeParamDecl`.\n\nBy default, this method calls \
93608             [`TsTypeParamDecl::fold_children_with`]. If you want to recurse, you need to call it \
93609             manually."]
93610    #[inline]
93611    fn fold_ts_type_param_decl(&mut self, node: TsTypeParamDecl) -> TsTypeParamDecl {
93612        <TsTypeParamDecl as FoldWith<Self>>::fold_children_with(node, self)
93613    }
93614    #[doc = "Visit a node of type `TsTypeParamInstantiation`.\n\nBy default, this method calls \
93615             [`TsTypeParamInstantiation::fold_children_with`]. If you want to recurse, you need to \
93616             call it manually."]
93617    #[inline]
93618    fn fold_ts_type_param_instantiation(
93619        &mut self,
93620        node: TsTypeParamInstantiation,
93621    ) -> TsTypeParamInstantiation {
93622        <TsTypeParamInstantiation as FoldWith<Self>>::fold_children_with(node, self)
93623    }
93624    #[doc = "Visit a node of type `Vec < TsTypeParam >`.\n\nBy default, this method calls [`Vec < \
93625             TsTypeParam >::fold_children_with`]. If you want to recurse, you need to call it \
93626             manually."]
93627    #[inline]
93628    fn fold_ts_type_params(&mut self, node: Vec<TsTypeParam>) -> Vec<TsTypeParam> {
93629        <Vec<TsTypeParam> as FoldWith<Self>>::fold_children_with(node, self)
93630    }
93631    #[doc = "Visit a node of type `TsTypePredicate`.\n\nBy default, this method calls \
93632             [`TsTypePredicate::fold_children_with`]. If you want to recurse, you need to call it \
93633             manually."]
93634    #[inline]
93635    fn fold_ts_type_predicate(&mut self, node: TsTypePredicate) -> TsTypePredicate {
93636        <TsTypePredicate as FoldWith<Self>>::fold_children_with(node, self)
93637    }
93638    #[doc = "Visit a node of type `TsTypeQuery`.\n\nBy default, this method calls \
93639             [`TsTypeQuery::fold_children_with`]. If you want to recurse, you need to call it \
93640             manually."]
93641    #[inline]
93642    fn fold_ts_type_query(&mut self, node: TsTypeQuery) -> TsTypeQuery {
93643        <TsTypeQuery as FoldWith<Self>>::fold_children_with(node, self)
93644    }
93645    #[doc = "Visit a node of type `TsTypeQueryExpr`.\n\nBy default, this method calls \
93646             [`TsTypeQueryExpr::fold_children_with`]. If you want to recurse, you need to call it \
93647             manually."]
93648    #[inline]
93649    fn fold_ts_type_query_expr(&mut self, node: TsTypeQueryExpr) -> TsTypeQueryExpr {
93650        <TsTypeQueryExpr as FoldWith<Self>>::fold_children_with(node, self)
93651    }
93652    #[doc = "Visit a node of type `TsTypeRef`.\n\nBy default, this method calls \
93653             [`TsTypeRef::fold_children_with`]. If you want to recurse, you need to call it \
93654             manually."]
93655    #[inline]
93656    fn fold_ts_type_ref(&mut self, node: TsTypeRef) -> TsTypeRef {
93657        <TsTypeRef as FoldWith<Self>>::fold_children_with(node, self)
93658    }
93659    #[doc = "Visit a node of type `Vec < Box < TsType > >`.\n\nBy default, this method calls [`Vec \
93660             < Box < TsType > >::fold_children_with`]. If you want to recurse, you need to call it \
93661             manually."]
93662    #[inline]
93663    fn fold_ts_types(&mut self, node: Vec<Box<TsType>>) -> Vec<Box<TsType>> {
93664        <Vec<Box<TsType>> as FoldWith<Self>>::fold_children_with(node, self)
93665    }
93666    #[doc = "Visit a node of type `TsUnionOrIntersectionType`.\n\nBy default, this method calls \
93667             [`TsUnionOrIntersectionType::fold_children_with`]. If you want to recurse, you need \
93668             to call it manually."]
93669    #[inline]
93670    fn fold_ts_union_or_intersection_type(
93671        &mut self,
93672        node: TsUnionOrIntersectionType,
93673    ) -> TsUnionOrIntersectionType {
93674        <TsUnionOrIntersectionType as FoldWith<Self>>::fold_children_with(node, self)
93675    }
93676    #[doc = "Visit a node of type `TsUnionType`.\n\nBy default, this method calls \
93677             [`TsUnionType::fold_children_with`]. If you want to recurse, you need to call it \
93678             manually."]
93679    #[inline]
93680    fn fold_ts_union_type(&mut self, node: TsUnionType) -> TsUnionType {
93681        <TsUnionType as FoldWith<Self>>::fold_children_with(node, self)
93682    }
93683    #[doc = "Visit a node of type `UnaryExpr`.\n\nBy default, this method calls \
93684             [`UnaryExpr::fold_children_with`]. If you want to recurse, you need to call it \
93685             manually."]
93686    #[inline]
93687    fn fold_unary_expr(&mut self, node: UnaryExpr) -> UnaryExpr {
93688        <UnaryExpr as FoldWith<Self>>::fold_children_with(node, self)
93689    }
93690    #[doc = "Visit a node of type `UnaryOp`.\n\nBy default, this method calls \
93691             [`UnaryOp::fold_children_with`]. If you want to recurse, you need to call it manually."]
93692    #[inline]
93693    fn fold_unary_op(&mut self, node: UnaryOp) -> UnaryOp {
93694        <UnaryOp as FoldWith<Self>>::fold_children_with(node, self)
93695    }
93696    #[doc = "Visit a node of type `UpdateExpr`.\n\nBy default, this method calls \
93697             [`UpdateExpr::fold_children_with`]. If you want to recurse, you need to call it \
93698             manually."]
93699    #[inline]
93700    fn fold_update_expr(&mut self, node: UpdateExpr) -> UpdateExpr {
93701        <UpdateExpr as FoldWith<Self>>::fold_children_with(node, self)
93702    }
93703    #[doc = "Visit a node of type `UpdateOp`.\n\nBy default, this method calls \
93704             [`UpdateOp::fold_children_with`]. If you want to recurse, you need to call it \
93705             manually."]
93706    #[inline]
93707    fn fold_update_op(&mut self, node: UpdateOp) -> UpdateOp {
93708        <UpdateOp as FoldWith<Self>>::fold_children_with(node, self)
93709    }
93710    #[doc = "Visit a node of type `UsingDecl`.\n\nBy default, this method calls \
93711             [`UsingDecl::fold_children_with`]. If you want to recurse, you need to call it \
93712             manually."]
93713    #[inline]
93714    fn fold_using_decl(&mut self, node: UsingDecl) -> UsingDecl {
93715        <UsingDecl as FoldWith<Self>>::fold_children_with(node, self)
93716    }
93717    #[doc = "Visit a node of type `VarDecl`.\n\nBy default, this method calls \
93718             [`VarDecl::fold_children_with`]. If you want to recurse, you need to call it manually."]
93719    #[inline]
93720    fn fold_var_decl(&mut self, node: VarDecl) -> VarDecl {
93721        <VarDecl as FoldWith<Self>>::fold_children_with(node, self)
93722    }
93723    #[doc = "Visit a node of type `VarDeclKind`.\n\nBy default, this method calls \
93724             [`VarDeclKind::fold_children_with`]. If you want to recurse, you need to call it \
93725             manually."]
93726    #[inline]
93727    fn fold_var_decl_kind(&mut self, node: VarDeclKind) -> VarDeclKind {
93728        <VarDeclKind as FoldWith<Self>>::fold_children_with(node, self)
93729    }
93730    #[doc = "Visit a node of type `VarDeclOrExpr`.\n\nBy default, this method calls \
93731             [`VarDeclOrExpr::fold_children_with`]. If you want to recurse, you need to call it \
93732             manually."]
93733    #[inline]
93734    fn fold_var_decl_or_expr(&mut self, node: VarDeclOrExpr) -> VarDeclOrExpr {
93735        <VarDeclOrExpr as FoldWith<Self>>::fold_children_with(node, self)
93736    }
93737    #[doc = "Visit a node of type `VarDeclarator`.\n\nBy default, this method calls \
93738             [`VarDeclarator::fold_children_with`]. If you want to recurse, you need to call it \
93739             manually."]
93740    #[inline]
93741    fn fold_var_declarator(&mut self, node: VarDeclarator) -> VarDeclarator {
93742        <VarDeclarator as FoldWith<Self>>::fold_children_with(node, self)
93743    }
93744    #[doc = "Visit a node of type `Vec < VarDeclarator >`.\n\nBy default, this method calls [`Vec \
93745             < VarDeclarator >::fold_children_with`]. If you want to recurse, you need to call it \
93746             manually."]
93747    #[inline]
93748    fn fold_var_declarators(&mut self, node: Vec<VarDeclarator>) -> Vec<VarDeclarator> {
93749        <Vec<VarDeclarator> as FoldWith<Self>>::fold_children_with(node, self)
93750    }
93751    #[doc = "Visit a node of type `WhileStmt`.\n\nBy default, this method calls \
93752             [`WhileStmt::fold_children_with`]. If you want to recurse, you need to call it \
93753             manually."]
93754    #[inline]
93755    fn fold_while_stmt(&mut self, node: WhileStmt) -> WhileStmt {
93756        <WhileStmt as FoldWith<Self>>::fold_children_with(node, self)
93757    }
93758    #[doc = "Visit a node of type `WithStmt`.\n\nBy default, this method calls \
93759             [`WithStmt::fold_children_with`]. If you want to recurse, you need to call it \
93760             manually."]
93761    #[inline]
93762    fn fold_with_stmt(&mut self, node: WithStmt) -> WithStmt {
93763        <WithStmt as FoldWith<Self>>::fold_children_with(node, self)
93764    }
93765    #[doc = "Visit a node of type `YieldExpr`.\n\nBy default, this method calls \
93766             [`YieldExpr::fold_children_with`]. If you want to recurse, you need to call it \
93767             manually."]
93768    #[inline]
93769    fn fold_yield_expr(&mut self, node: YieldExpr) -> YieldExpr {
93770        <YieldExpr as FoldWith<Self>>::fold_children_with(node, self)
93771    }
93772}
93773impl<V> Fold for &mut V
93774where
93775    V: ?Sized + Fold,
93776{
93777    #[inline]
93778    fn fold_accessibility(&mut self, node: Accessibility) -> Accessibility {
93779        <V as Fold>::fold_accessibility(&mut **self, node)
93780    }
93781
93782    #[inline]
93783    fn fold_array_lit(&mut self, node: ArrayLit) -> ArrayLit {
93784        <V as Fold>::fold_array_lit(&mut **self, node)
93785    }
93786
93787    #[inline]
93788    fn fold_array_pat(&mut self, node: ArrayPat) -> ArrayPat {
93789        <V as Fold>::fold_array_pat(&mut **self, node)
93790    }
93791
93792    #[inline]
93793    fn fold_arrow_expr(&mut self, node: ArrowExpr) -> ArrowExpr {
93794        <V as Fold>::fold_arrow_expr(&mut **self, node)
93795    }
93796
93797    #[inline]
93798    fn fold_assign_expr(&mut self, node: AssignExpr) -> AssignExpr {
93799        <V as Fold>::fold_assign_expr(&mut **self, node)
93800    }
93801
93802    #[inline]
93803    fn fold_assign_op(&mut self, node: AssignOp) -> AssignOp {
93804        <V as Fold>::fold_assign_op(&mut **self, node)
93805    }
93806
93807    #[inline]
93808    fn fold_assign_pat(&mut self, node: AssignPat) -> AssignPat {
93809        <V as Fold>::fold_assign_pat(&mut **self, node)
93810    }
93811
93812    #[inline]
93813    fn fold_assign_pat_prop(&mut self, node: AssignPatProp) -> AssignPatProp {
93814        <V as Fold>::fold_assign_pat_prop(&mut **self, node)
93815    }
93816
93817    #[inline]
93818    fn fold_assign_prop(&mut self, node: AssignProp) -> AssignProp {
93819        <V as Fold>::fold_assign_prop(&mut **self, node)
93820    }
93821
93822    #[inline]
93823    fn fold_assign_target(&mut self, node: AssignTarget) -> AssignTarget {
93824        <V as Fold>::fold_assign_target(&mut **self, node)
93825    }
93826
93827    #[inline]
93828    fn fold_assign_target_pat(&mut self, node: AssignTargetPat) -> AssignTargetPat {
93829        <V as Fold>::fold_assign_target_pat(&mut **self, node)
93830    }
93831
93832    #[inline]
93833    fn fold_atom(&mut self, node: swc_atoms::Atom) -> swc_atoms::Atom {
93834        <V as Fold>::fold_atom(&mut **self, node)
93835    }
93836
93837    #[inline]
93838    fn fold_auto_accessor(&mut self, node: AutoAccessor) -> AutoAccessor {
93839        <V as Fold>::fold_auto_accessor(&mut **self, node)
93840    }
93841
93842    #[inline]
93843    fn fold_await_expr(&mut self, node: AwaitExpr) -> AwaitExpr {
93844        <V as Fold>::fold_await_expr(&mut **self, node)
93845    }
93846
93847    #[inline]
93848    fn fold_big_int(&mut self, node: BigInt) -> BigInt {
93849        <V as Fold>::fold_big_int(&mut **self, node)
93850    }
93851
93852    #[inline]
93853    fn fold_big_int_value(&mut self, node: BigIntValue) -> BigIntValue {
93854        <V as Fold>::fold_big_int_value(&mut **self, node)
93855    }
93856
93857    #[inline]
93858    fn fold_bin_expr(&mut self, node: BinExpr) -> BinExpr {
93859        <V as Fold>::fold_bin_expr(&mut **self, node)
93860    }
93861
93862    #[inline]
93863    fn fold_binary_op(&mut self, node: BinaryOp) -> BinaryOp {
93864        <V as Fold>::fold_binary_op(&mut **self, node)
93865    }
93866
93867    #[inline]
93868    fn fold_binding_ident(&mut self, node: BindingIdent) -> BindingIdent {
93869        <V as Fold>::fold_binding_ident(&mut **self, node)
93870    }
93871
93872    #[inline]
93873    fn fold_block_stmt(&mut self, node: BlockStmt) -> BlockStmt {
93874        <V as Fold>::fold_block_stmt(&mut **self, node)
93875    }
93876
93877    #[inline]
93878    fn fold_block_stmt_or_expr(&mut self, node: BlockStmtOrExpr) -> BlockStmtOrExpr {
93879        <V as Fold>::fold_block_stmt_or_expr(&mut **self, node)
93880    }
93881
93882    #[inline]
93883    fn fold_bool(&mut self, node: Bool) -> Bool {
93884        <V as Fold>::fold_bool(&mut **self, node)
93885    }
93886
93887    #[inline]
93888    fn fold_break_stmt(&mut self, node: BreakStmt) -> BreakStmt {
93889        <V as Fold>::fold_break_stmt(&mut **self, node)
93890    }
93891
93892    #[inline]
93893    fn fold_call_expr(&mut self, node: CallExpr) -> CallExpr {
93894        <V as Fold>::fold_call_expr(&mut **self, node)
93895    }
93896
93897    #[inline]
93898    fn fold_callee(&mut self, node: Callee) -> Callee {
93899        <V as Fold>::fold_callee(&mut **self, node)
93900    }
93901
93902    #[inline]
93903    fn fold_catch_clause(&mut self, node: CatchClause) -> CatchClause {
93904        <V as Fold>::fold_catch_clause(&mut **self, node)
93905    }
93906
93907    #[inline]
93908    fn fold_class(&mut self, node: Class) -> Class {
93909        <V as Fold>::fold_class(&mut **self, node)
93910    }
93911
93912    #[inline]
93913    fn fold_class_decl(&mut self, node: ClassDecl) -> ClassDecl {
93914        <V as Fold>::fold_class_decl(&mut **self, node)
93915    }
93916
93917    #[inline]
93918    fn fold_class_expr(&mut self, node: ClassExpr) -> ClassExpr {
93919        <V as Fold>::fold_class_expr(&mut **self, node)
93920    }
93921
93922    #[inline]
93923    fn fold_class_member(&mut self, node: ClassMember) -> ClassMember {
93924        <V as Fold>::fold_class_member(&mut **self, node)
93925    }
93926
93927    #[inline]
93928    fn fold_class_members(&mut self, node: Vec<ClassMember>) -> Vec<ClassMember> {
93929        <V as Fold>::fold_class_members(&mut **self, node)
93930    }
93931
93932    #[inline]
93933    fn fold_class_method(&mut self, node: ClassMethod) -> ClassMethod {
93934        <V as Fold>::fold_class_method(&mut **self, node)
93935    }
93936
93937    #[inline]
93938    fn fold_class_prop(&mut self, node: ClassProp) -> ClassProp {
93939        <V as Fold>::fold_class_prop(&mut **self, node)
93940    }
93941
93942    #[inline]
93943    fn fold_computed_prop_name(&mut self, node: ComputedPropName) -> ComputedPropName {
93944        <V as Fold>::fold_computed_prop_name(&mut **self, node)
93945    }
93946
93947    #[inline]
93948    fn fold_cond_expr(&mut self, node: CondExpr) -> CondExpr {
93949        <V as Fold>::fold_cond_expr(&mut **self, node)
93950    }
93951
93952    #[inline]
93953    fn fold_constructor(&mut self, node: Constructor) -> Constructor {
93954        <V as Fold>::fold_constructor(&mut **self, node)
93955    }
93956
93957    #[inline]
93958    fn fold_continue_stmt(&mut self, node: ContinueStmt) -> ContinueStmt {
93959        <V as Fold>::fold_continue_stmt(&mut **self, node)
93960    }
93961
93962    #[inline]
93963    fn fold_debugger_stmt(&mut self, node: DebuggerStmt) -> DebuggerStmt {
93964        <V as Fold>::fold_debugger_stmt(&mut **self, node)
93965    }
93966
93967    #[inline]
93968    fn fold_decl(&mut self, node: Decl) -> Decl {
93969        <V as Fold>::fold_decl(&mut **self, node)
93970    }
93971
93972    #[inline]
93973    fn fold_decorator(&mut self, node: Decorator) -> Decorator {
93974        <V as Fold>::fold_decorator(&mut **self, node)
93975    }
93976
93977    #[inline]
93978    fn fold_decorators(&mut self, node: Vec<Decorator>) -> Vec<Decorator> {
93979        <V as Fold>::fold_decorators(&mut **self, node)
93980    }
93981
93982    #[inline]
93983    fn fold_default_decl(&mut self, node: DefaultDecl) -> DefaultDecl {
93984        <V as Fold>::fold_default_decl(&mut **self, node)
93985    }
93986
93987    #[inline]
93988    fn fold_do_while_stmt(&mut self, node: DoWhileStmt) -> DoWhileStmt {
93989        <V as Fold>::fold_do_while_stmt(&mut **self, node)
93990    }
93991
93992    #[inline]
93993    fn fold_empty_stmt(&mut self, node: EmptyStmt) -> EmptyStmt {
93994        <V as Fold>::fold_empty_stmt(&mut **self, node)
93995    }
93996
93997    #[inline]
93998    fn fold_export_all(&mut self, node: ExportAll) -> ExportAll {
93999        <V as Fold>::fold_export_all(&mut **self, node)
94000    }
94001
94002    #[inline]
94003    fn fold_export_decl(&mut self, node: ExportDecl) -> ExportDecl {
94004        <V as Fold>::fold_export_decl(&mut **self, node)
94005    }
94006
94007    #[inline]
94008    fn fold_export_default_decl(&mut self, node: ExportDefaultDecl) -> ExportDefaultDecl {
94009        <V as Fold>::fold_export_default_decl(&mut **self, node)
94010    }
94011
94012    #[inline]
94013    fn fold_export_default_expr(&mut self, node: ExportDefaultExpr) -> ExportDefaultExpr {
94014        <V as Fold>::fold_export_default_expr(&mut **self, node)
94015    }
94016
94017    #[inline]
94018    fn fold_export_default_specifier(
94019        &mut self,
94020        node: ExportDefaultSpecifier,
94021    ) -> ExportDefaultSpecifier {
94022        <V as Fold>::fold_export_default_specifier(&mut **self, node)
94023    }
94024
94025    #[inline]
94026    fn fold_export_named_specifier(&mut self, node: ExportNamedSpecifier) -> ExportNamedSpecifier {
94027        <V as Fold>::fold_export_named_specifier(&mut **self, node)
94028    }
94029
94030    #[inline]
94031    fn fold_export_namespace_specifier(
94032        &mut self,
94033        node: ExportNamespaceSpecifier,
94034    ) -> ExportNamespaceSpecifier {
94035        <V as Fold>::fold_export_namespace_specifier(&mut **self, node)
94036    }
94037
94038    #[inline]
94039    fn fold_export_specifier(&mut self, node: ExportSpecifier) -> ExportSpecifier {
94040        <V as Fold>::fold_export_specifier(&mut **self, node)
94041    }
94042
94043    #[inline]
94044    fn fold_export_specifiers(&mut self, node: Vec<ExportSpecifier>) -> Vec<ExportSpecifier> {
94045        <V as Fold>::fold_export_specifiers(&mut **self, node)
94046    }
94047
94048    #[inline]
94049    fn fold_expr(&mut self, node: Expr) -> Expr {
94050        <V as Fold>::fold_expr(&mut **self, node)
94051    }
94052
94053    #[inline]
94054    fn fold_expr_or_spread(&mut self, node: ExprOrSpread) -> ExprOrSpread {
94055        <V as Fold>::fold_expr_or_spread(&mut **self, node)
94056    }
94057
94058    #[inline]
94059    fn fold_expr_or_spreads(&mut self, node: Vec<ExprOrSpread>) -> Vec<ExprOrSpread> {
94060        <V as Fold>::fold_expr_or_spreads(&mut **self, node)
94061    }
94062
94063    #[inline]
94064    fn fold_expr_stmt(&mut self, node: ExprStmt) -> ExprStmt {
94065        <V as Fold>::fold_expr_stmt(&mut **self, node)
94066    }
94067
94068    #[inline]
94069    fn fold_exprs(&mut self, node: Vec<Box<Expr>>) -> Vec<Box<Expr>> {
94070        <V as Fold>::fold_exprs(&mut **self, node)
94071    }
94072
94073    #[inline]
94074    fn fold_fn_decl(&mut self, node: FnDecl) -> FnDecl {
94075        <V as Fold>::fold_fn_decl(&mut **self, node)
94076    }
94077
94078    #[inline]
94079    fn fold_fn_expr(&mut self, node: FnExpr) -> FnExpr {
94080        <V as Fold>::fold_fn_expr(&mut **self, node)
94081    }
94082
94083    #[inline]
94084    fn fold_for_head(&mut self, node: ForHead) -> ForHead {
94085        <V as Fold>::fold_for_head(&mut **self, node)
94086    }
94087
94088    #[inline]
94089    fn fold_for_in_stmt(&mut self, node: ForInStmt) -> ForInStmt {
94090        <V as Fold>::fold_for_in_stmt(&mut **self, node)
94091    }
94092
94093    #[inline]
94094    fn fold_for_of_stmt(&mut self, node: ForOfStmt) -> ForOfStmt {
94095        <V as Fold>::fold_for_of_stmt(&mut **self, node)
94096    }
94097
94098    #[inline]
94099    fn fold_for_stmt(&mut self, node: ForStmt) -> ForStmt {
94100        <V as Fold>::fold_for_stmt(&mut **self, node)
94101    }
94102
94103    #[inline]
94104    fn fold_function(&mut self, node: Function) -> Function {
94105        <V as Fold>::fold_function(&mut **self, node)
94106    }
94107
94108    #[inline]
94109    fn fold_getter_prop(&mut self, node: GetterProp) -> GetterProp {
94110        <V as Fold>::fold_getter_prop(&mut **self, node)
94111    }
94112
94113    #[inline]
94114    fn fold_ident(&mut self, node: Ident) -> Ident {
94115        <V as Fold>::fold_ident(&mut **self, node)
94116    }
94117
94118    #[inline]
94119    fn fold_ident_name(&mut self, node: IdentName) -> IdentName {
94120        <V as Fold>::fold_ident_name(&mut **self, node)
94121    }
94122
94123    #[inline]
94124    fn fold_if_stmt(&mut self, node: IfStmt) -> IfStmt {
94125        <V as Fold>::fold_if_stmt(&mut **self, node)
94126    }
94127
94128    #[inline]
94129    fn fold_import(&mut self, node: Import) -> Import {
94130        <V as Fold>::fold_import(&mut **self, node)
94131    }
94132
94133    #[inline]
94134    fn fold_import_decl(&mut self, node: ImportDecl) -> ImportDecl {
94135        <V as Fold>::fold_import_decl(&mut **self, node)
94136    }
94137
94138    #[inline]
94139    fn fold_import_default_specifier(
94140        &mut self,
94141        node: ImportDefaultSpecifier,
94142    ) -> ImportDefaultSpecifier {
94143        <V as Fold>::fold_import_default_specifier(&mut **self, node)
94144    }
94145
94146    #[inline]
94147    fn fold_import_named_specifier(&mut self, node: ImportNamedSpecifier) -> ImportNamedSpecifier {
94148        <V as Fold>::fold_import_named_specifier(&mut **self, node)
94149    }
94150
94151    #[inline]
94152    fn fold_import_phase(&mut self, node: ImportPhase) -> ImportPhase {
94153        <V as Fold>::fold_import_phase(&mut **self, node)
94154    }
94155
94156    #[inline]
94157    fn fold_import_specifier(&mut self, node: ImportSpecifier) -> ImportSpecifier {
94158        <V as Fold>::fold_import_specifier(&mut **self, node)
94159    }
94160
94161    #[inline]
94162    fn fold_import_specifiers(&mut self, node: Vec<ImportSpecifier>) -> Vec<ImportSpecifier> {
94163        <V as Fold>::fold_import_specifiers(&mut **self, node)
94164    }
94165
94166    #[inline]
94167    fn fold_import_star_as_specifier(
94168        &mut self,
94169        node: ImportStarAsSpecifier,
94170    ) -> ImportStarAsSpecifier {
94171        <V as Fold>::fold_import_star_as_specifier(&mut **self, node)
94172    }
94173
94174    #[inline]
94175    fn fold_import_with(&mut self, node: ImportWith) -> ImportWith {
94176        <V as Fold>::fold_import_with(&mut **self, node)
94177    }
94178
94179    #[inline]
94180    fn fold_import_with_item(&mut self, node: ImportWithItem) -> ImportWithItem {
94181        <V as Fold>::fold_import_with_item(&mut **self, node)
94182    }
94183
94184    #[inline]
94185    fn fold_import_with_items(&mut self, node: Vec<ImportWithItem>) -> Vec<ImportWithItem> {
94186        <V as Fold>::fold_import_with_items(&mut **self, node)
94187    }
94188
94189    #[inline]
94190    fn fold_invalid(&mut self, node: Invalid) -> Invalid {
94191        <V as Fold>::fold_invalid(&mut **self, node)
94192    }
94193
94194    #[inline]
94195    fn fold_jsx_attr(&mut self, node: JSXAttr) -> JSXAttr {
94196        <V as Fold>::fold_jsx_attr(&mut **self, node)
94197    }
94198
94199    #[inline]
94200    fn fold_jsx_attr_name(&mut self, node: JSXAttrName) -> JSXAttrName {
94201        <V as Fold>::fold_jsx_attr_name(&mut **self, node)
94202    }
94203
94204    #[inline]
94205    fn fold_jsx_attr_or_spread(&mut self, node: JSXAttrOrSpread) -> JSXAttrOrSpread {
94206        <V as Fold>::fold_jsx_attr_or_spread(&mut **self, node)
94207    }
94208
94209    #[inline]
94210    fn fold_jsx_attr_or_spreads(&mut self, node: Vec<JSXAttrOrSpread>) -> Vec<JSXAttrOrSpread> {
94211        <V as Fold>::fold_jsx_attr_or_spreads(&mut **self, node)
94212    }
94213
94214    #[inline]
94215    fn fold_jsx_attr_value(&mut self, node: JSXAttrValue) -> JSXAttrValue {
94216        <V as Fold>::fold_jsx_attr_value(&mut **self, node)
94217    }
94218
94219    #[inline]
94220    fn fold_jsx_closing_element(&mut self, node: JSXClosingElement) -> JSXClosingElement {
94221        <V as Fold>::fold_jsx_closing_element(&mut **self, node)
94222    }
94223
94224    #[inline]
94225    fn fold_jsx_closing_fragment(&mut self, node: JSXClosingFragment) -> JSXClosingFragment {
94226        <V as Fold>::fold_jsx_closing_fragment(&mut **self, node)
94227    }
94228
94229    #[inline]
94230    fn fold_jsx_element(&mut self, node: JSXElement) -> JSXElement {
94231        <V as Fold>::fold_jsx_element(&mut **self, node)
94232    }
94233
94234    #[inline]
94235    fn fold_jsx_element_child(&mut self, node: JSXElementChild) -> JSXElementChild {
94236        <V as Fold>::fold_jsx_element_child(&mut **self, node)
94237    }
94238
94239    #[inline]
94240    fn fold_jsx_element_childs(&mut self, node: Vec<JSXElementChild>) -> Vec<JSXElementChild> {
94241        <V as Fold>::fold_jsx_element_childs(&mut **self, node)
94242    }
94243
94244    #[inline]
94245    fn fold_jsx_element_name(&mut self, node: JSXElementName) -> JSXElementName {
94246        <V as Fold>::fold_jsx_element_name(&mut **self, node)
94247    }
94248
94249    #[inline]
94250    fn fold_jsx_empty_expr(&mut self, node: JSXEmptyExpr) -> JSXEmptyExpr {
94251        <V as Fold>::fold_jsx_empty_expr(&mut **self, node)
94252    }
94253
94254    #[inline]
94255    fn fold_jsx_expr(&mut self, node: JSXExpr) -> JSXExpr {
94256        <V as Fold>::fold_jsx_expr(&mut **self, node)
94257    }
94258
94259    #[inline]
94260    fn fold_jsx_expr_container(&mut self, node: JSXExprContainer) -> JSXExprContainer {
94261        <V as Fold>::fold_jsx_expr_container(&mut **self, node)
94262    }
94263
94264    #[inline]
94265    fn fold_jsx_fragment(&mut self, node: JSXFragment) -> JSXFragment {
94266        <V as Fold>::fold_jsx_fragment(&mut **self, node)
94267    }
94268
94269    #[inline]
94270    fn fold_jsx_member_expr(&mut self, node: JSXMemberExpr) -> JSXMemberExpr {
94271        <V as Fold>::fold_jsx_member_expr(&mut **self, node)
94272    }
94273
94274    #[inline]
94275    fn fold_jsx_namespaced_name(&mut self, node: JSXNamespacedName) -> JSXNamespacedName {
94276        <V as Fold>::fold_jsx_namespaced_name(&mut **self, node)
94277    }
94278
94279    #[inline]
94280    fn fold_jsx_object(&mut self, node: JSXObject) -> JSXObject {
94281        <V as Fold>::fold_jsx_object(&mut **self, node)
94282    }
94283
94284    #[inline]
94285    fn fold_jsx_opening_element(&mut self, node: JSXOpeningElement) -> JSXOpeningElement {
94286        <V as Fold>::fold_jsx_opening_element(&mut **self, node)
94287    }
94288
94289    #[inline]
94290    fn fold_jsx_opening_fragment(&mut self, node: JSXOpeningFragment) -> JSXOpeningFragment {
94291        <V as Fold>::fold_jsx_opening_fragment(&mut **self, node)
94292    }
94293
94294    #[inline]
94295    fn fold_jsx_spread_child(&mut self, node: JSXSpreadChild) -> JSXSpreadChild {
94296        <V as Fold>::fold_jsx_spread_child(&mut **self, node)
94297    }
94298
94299    #[inline]
94300    fn fold_jsx_text(&mut self, node: JSXText) -> JSXText {
94301        <V as Fold>::fold_jsx_text(&mut **self, node)
94302    }
94303
94304    #[inline]
94305    fn fold_key(&mut self, node: Key) -> Key {
94306        <V as Fold>::fold_key(&mut **self, node)
94307    }
94308
94309    #[inline]
94310    fn fold_key_value_pat_prop(&mut self, node: KeyValuePatProp) -> KeyValuePatProp {
94311        <V as Fold>::fold_key_value_pat_prop(&mut **self, node)
94312    }
94313
94314    #[inline]
94315    fn fold_key_value_prop(&mut self, node: KeyValueProp) -> KeyValueProp {
94316        <V as Fold>::fold_key_value_prop(&mut **self, node)
94317    }
94318
94319    #[inline]
94320    fn fold_labeled_stmt(&mut self, node: LabeledStmt) -> LabeledStmt {
94321        <V as Fold>::fold_labeled_stmt(&mut **self, node)
94322    }
94323
94324    #[inline]
94325    fn fold_lit(&mut self, node: Lit) -> Lit {
94326        <V as Fold>::fold_lit(&mut **self, node)
94327    }
94328
94329    #[inline]
94330    fn fold_member_expr(&mut self, node: MemberExpr) -> MemberExpr {
94331        <V as Fold>::fold_member_expr(&mut **self, node)
94332    }
94333
94334    #[inline]
94335    fn fold_member_prop(&mut self, node: MemberProp) -> MemberProp {
94336        <V as Fold>::fold_member_prop(&mut **self, node)
94337    }
94338
94339    #[inline]
94340    fn fold_meta_prop_expr(&mut self, node: MetaPropExpr) -> MetaPropExpr {
94341        <V as Fold>::fold_meta_prop_expr(&mut **self, node)
94342    }
94343
94344    #[inline]
94345    fn fold_meta_prop_kind(&mut self, node: MetaPropKind) -> MetaPropKind {
94346        <V as Fold>::fold_meta_prop_kind(&mut **self, node)
94347    }
94348
94349    #[inline]
94350    fn fold_method_kind(&mut self, node: MethodKind) -> MethodKind {
94351        <V as Fold>::fold_method_kind(&mut **self, node)
94352    }
94353
94354    #[inline]
94355    fn fold_method_prop(&mut self, node: MethodProp) -> MethodProp {
94356        <V as Fold>::fold_method_prop(&mut **self, node)
94357    }
94358
94359    #[inline]
94360    fn fold_module(&mut self, node: Module) -> Module {
94361        <V as Fold>::fold_module(&mut **self, node)
94362    }
94363
94364    #[inline]
94365    fn fold_module_decl(&mut self, node: ModuleDecl) -> ModuleDecl {
94366        <V as Fold>::fold_module_decl(&mut **self, node)
94367    }
94368
94369    #[inline]
94370    fn fold_module_export_name(&mut self, node: ModuleExportName) -> ModuleExportName {
94371        <V as Fold>::fold_module_export_name(&mut **self, node)
94372    }
94373
94374    #[inline]
94375    fn fold_module_item(&mut self, node: ModuleItem) -> ModuleItem {
94376        <V as Fold>::fold_module_item(&mut **self, node)
94377    }
94378
94379    #[inline]
94380    fn fold_module_items(&mut self, node: Vec<ModuleItem>) -> Vec<ModuleItem> {
94381        <V as Fold>::fold_module_items(&mut **self, node)
94382    }
94383
94384    #[inline]
94385    fn fold_named_export(&mut self, node: NamedExport) -> NamedExport {
94386        <V as Fold>::fold_named_export(&mut **self, node)
94387    }
94388
94389    #[inline]
94390    fn fold_new_expr(&mut self, node: NewExpr) -> NewExpr {
94391        <V as Fold>::fold_new_expr(&mut **self, node)
94392    }
94393
94394    #[inline]
94395    fn fold_null(&mut self, node: Null) -> Null {
94396        <V as Fold>::fold_null(&mut **self, node)
94397    }
94398
94399    #[inline]
94400    fn fold_number(&mut self, node: Number) -> Number {
94401        <V as Fold>::fold_number(&mut **self, node)
94402    }
94403
94404    #[inline]
94405    fn fold_object_lit(&mut self, node: ObjectLit) -> ObjectLit {
94406        <V as Fold>::fold_object_lit(&mut **self, node)
94407    }
94408
94409    #[inline]
94410    fn fold_object_pat(&mut self, node: ObjectPat) -> ObjectPat {
94411        <V as Fold>::fold_object_pat(&mut **self, node)
94412    }
94413
94414    #[inline]
94415    fn fold_object_pat_prop(&mut self, node: ObjectPatProp) -> ObjectPatProp {
94416        <V as Fold>::fold_object_pat_prop(&mut **self, node)
94417    }
94418
94419    #[inline]
94420    fn fold_object_pat_props(&mut self, node: Vec<ObjectPatProp>) -> Vec<ObjectPatProp> {
94421        <V as Fold>::fold_object_pat_props(&mut **self, node)
94422    }
94423
94424    #[inline]
94425    fn fold_opt_accessibility(&mut self, node: Option<Accessibility>) -> Option<Accessibility> {
94426        <V as Fold>::fold_opt_accessibility(&mut **self, node)
94427    }
94428
94429    #[inline]
94430    fn fold_opt_atom(&mut self, node: Option<swc_atoms::Atom>) -> Option<swc_atoms::Atom> {
94431        <V as Fold>::fold_opt_atom(&mut **self, node)
94432    }
94433
94434    #[inline]
94435    fn fold_opt_block_stmt(&mut self, node: Option<BlockStmt>) -> Option<BlockStmt> {
94436        <V as Fold>::fold_opt_block_stmt(&mut **self, node)
94437    }
94438
94439    #[inline]
94440    fn fold_opt_call(&mut self, node: OptCall) -> OptCall {
94441        <V as Fold>::fold_opt_call(&mut **self, node)
94442    }
94443
94444    #[inline]
94445    fn fold_opt_catch_clause(&mut self, node: Option<CatchClause>) -> Option<CatchClause> {
94446        <V as Fold>::fold_opt_catch_clause(&mut **self, node)
94447    }
94448
94449    #[inline]
94450    fn fold_opt_chain_base(&mut self, node: OptChainBase) -> OptChainBase {
94451        <V as Fold>::fold_opt_chain_base(&mut **self, node)
94452    }
94453
94454    #[inline]
94455    fn fold_opt_chain_expr(&mut self, node: OptChainExpr) -> OptChainExpr {
94456        <V as Fold>::fold_opt_chain_expr(&mut **self, node)
94457    }
94458
94459    #[inline]
94460    fn fold_opt_expr(&mut self, node: Option<Box<Expr>>) -> Option<Box<Expr>> {
94461        <V as Fold>::fold_opt_expr(&mut **self, node)
94462    }
94463
94464    #[inline]
94465    fn fold_opt_expr_or_spread(&mut self, node: Option<ExprOrSpread>) -> Option<ExprOrSpread> {
94466        <V as Fold>::fold_opt_expr_or_spread(&mut **self, node)
94467    }
94468
94469    #[inline]
94470    fn fold_opt_expr_or_spreads(
94471        &mut self,
94472        node: Option<Vec<ExprOrSpread>>,
94473    ) -> Option<Vec<ExprOrSpread>> {
94474        <V as Fold>::fold_opt_expr_or_spreads(&mut **self, node)
94475    }
94476
94477    #[inline]
94478    fn fold_opt_ident(&mut self, node: Option<Ident>) -> Option<Ident> {
94479        <V as Fold>::fold_opt_ident(&mut **self, node)
94480    }
94481
94482    #[inline]
94483    fn fold_opt_jsx_attr_value(&mut self, node: Option<JSXAttrValue>) -> Option<JSXAttrValue> {
94484        <V as Fold>::fold_opt_jsx_attr_value(&mut **self, node)
94485    }
94486
94487    #[inline]
94488    fn fold_opt_jsx_closing_element(
94489        &mut self,
94490        node: Option<JSXClosingElement>,
94491    ) -> Option<JSXClosingElement> {
94492        <V as Fold>::fold_opt_jsx_closing_element(&mut **self, node)
94493    }
94494
94495    #[inline]
94496    fn fold_opt_module_export_name(
94497        &mut self,
94498        node: Option<ModuleExportName>,
94499    ) -> Option<ModuleExportName> {
94500        <V as Fold>::fold_opt_module_export_name(&mut **self, node)
94501    }
94502
94503    #[inline]
94504    fn fold_opt_object_lit(&mut self, node: Option<Box<ObjectLit>>) -> Option<Box<ObjectLit>> {
94505        <V as Fold>::fold_opt_object_lit(&mut **self, node)
94506    }
94507
94508    #[inline]
94509    fn fold_opt_pat(&mut self, node: Option<Pat>) -> Option<Pat> {
94510        <V as Fold>::fold_opt_pat(&mut **self, node)
94511    }
94512
94513    #[inline]
94514    fn fold_opt_span(&mut self, node: Option<swc_common::Span>) -> Option<swc_common::Span> {
94515        <V as Fold>::fold_opt_span(&mut **self, node)
94516    }
94517
94518    #[inline]
94519    fn fold_opt_stmt(&mut self, node: Option<Box<Stmt>>) -> Option<Box<Stmt>> {
94520        <V as Fold>::fold_opt_stmt(&mut **self, node)
94521    }
94522
94523    #[inline]
94524    fn fold_opt_str(&mut self, node: Option<Box<Str>>) -> Option<Box<Str>> {
94525        <V as Fold>::fold_opt_str(&mut **self, node)
94526    }
94527
94528    #[inline]
94529    fn fold_opt_true_plus_minus(&mut self, node: Option<TruePlusMinus>) -> Option<TruePlusMinus> {
94530        <V as Fold>::fold_opt_true_plus_minus(&mut **self, node)
94531    }
94532
94533    #[inline]
94534    fn fold_opt_ts_entity_name(&mut self, node: Option<TsEntityName>) -> Option<TsEntityName> {
94535        <V as Fold>::fold_opt_ts_entity_name(&mut **self, node)
94536    }
94537
94538    #[inline]
94539    fn fold_opt_ts_import_call_options(
94540        &mut self,
94541        node: Option<TsImportCallOptions>,
94542    ) -> Option<TsImportCallOptions> {
94543        <V as Fold>::fold_opt_ts_import_call_options(&mut **self, node)
94544    }
94545
94546    #[inline]
94547    fn fold_opt_ts_namespace_body(
94548        &mut self,
94549        node: Option<TsNamespaceBody>,
94550    ) -> Option<TsNamespaceBody> {
94551        <V as Fold>::fold_opt_ts_namespace_body(&mut **self, node)
94552    }
94553
94554    #[inline]
94555    fn fold_opt_ts_type(&mut self, node: Option<Box<TsType>>) -> Option<Box<TsType>> {
94556        <V as Fold>::fold_opt_ts_type(&mut **self, node)
94557    }
94558
94559    #[inline]
94560    fn fold_opt_ts_type_ann(&mut self, node: Option<Box<TsTypeAnn>>) -> Option<Box<TsTypeAnn>> {
94561        <V as Fold>::fold_opt_ts_type_ann(&mut **self, node)
94562    }
94563
94564    #[inline]
94565    fn fold_opt_ts_type_param_decl(
94566        &mut self,
94567        node: Option<Box<TsTypeParamDecl>>,
94568    ) -> Option<Box<TsTypeParamDecl>> {
94569        <V as Fold>::fold_opt_ts_type_param_decl(&mut **self, node)
94570    }
94571
94572    #[inline]
94573    fn fold_opt_ts_type_param_instantiation(
94574        &mut self,
94575        node: Option<Box<TsTypeParamInstantiation>>,
94576    ) -> Option<Box<TsTypeParamInstantiation>> {
94577        <V as Fold>::fold_opt_ts_type_param_instantiation(&mut **self, node)
94578    }
94579
94580    #[inline]
94581    fn fold_opt_var_decl_or_expr(&mut self, node: Option<VarDeclOrExpr>) -> Option<VarDeclOrExpr> {
94582        <V as Fold>::fold_opt_var_decl_or_expr(&mut **self, node)
94583    }
94584
94585    #[inline]
94586    fn fold_opt_vec_expr_or_spreads(
94587        &mut self,
94588        node: Vec<Option<ExprOrSpread>>,
94589    ) -> Vec<Option<ExprOrSpread>> {
94590        <V as Fold>::fold_opt_vec_expr_or_spreads(&mut **self, node)
94591    }
94592
94593    #[inline]
94594    fn fold_opt_vec_pats(&mut self, node: Vec<Option<Pat>>) -> Vec<Option<Pat>> {
94595        <V as Fold>::fold_opt_vec_pats(&mut **self, node)
94596    }
94597
94598    #[inline]
94599    fn fold_param(&mut self, node: Param) -> Param {
94600        <V as Fold>::fold_param(&mut **self, node)
94601    }
94602
94603    #[inline]
94604    fn fold_param_or_ts_param_prop(&mut self, node: ParamOrTsParamProp) -> ParamOrTsParamProp {
94605        <V as Fold>::fold_param_or_ts_param_prop(&mut **self, node)
94606    }
94607
94608    #[inline]
94609    fn fold_param_or_ts_param_props(
94610        &mut self,
94611        node: Vec<ParamOrTsParamProp>,
94612    ) -> Vec<ParamOrTsParamProp> {
94613        <V as Fold>::fold_param_or_ts_param_props(&mut **self, node)
94614    }
94615
94616    #[inline]
94617    fn fold_params(&mut self, node: Vec<Param>) -> Vec<Param> {
94618        <V as Fold>::fold_params(&mut **self, node)
94619    }
94620
94621    #[inline]
94622    fn fold_paren_expr(&mut self, node: ParenExpr) -> ParenExpr {
94623        <V as Fold>::fold_paren_expr(&mut **self, node)
94624    }
94625
94626    #[inline]
94627    fn fold_pat(&mut self, node: Pat) -> Pat {
94628        <V as Fold>::fold_pat(&mut **self, node)
94629    }
94630
94631    #[inline]
94632    fn fold_pats(&mut self, node: Vec<Pat>) -> Vec<Pat> {
94633        <V as Fold>::fold_pats(&mut **self, node)
94634    }
94635
94636    #[inline]
94637    fn fold_private_method(&mut self, node: PrivateMethod) -> PrivateMethod {
94638        <V as Fold>::fold_private_method(&mut **self, node)
94639    }
94640
94641    #[inline]
94642    fn fold_private_name(&mut self, node: PrivateName) -> PrivateName {
94643        <V as Fold>::fold_private_name(&mut **self, node)
94644    }
94645
94646    #[inline]
94647    fn fold_private_prop(&mut self, node: PrivateProp) -> PrivateProp {
94648        <V as Fold>::fold_private_prop(&mut **self, node)
94649    }
94650
94651    #[inline]
94652    fn fold_program(&mut self, node: Program) -> Program {
94653        <V as Fold>::fold_program(&mut **self, node)
94654    }
94655
94656    #[inline]
94657    fn fold_prop(&mut self, node: Prop) -> Prop {
94658        <V as Fold>::fold_prop(&mut **self, node)
94659    }
94660
94661    #[inline]
94662    fn fold_prop_name(&mut self, node: PropName) -> PropName {
94663        <V as Fold>::fold_prop_name(&mut **self, node)
94664    }
94665
94666    #[inline]
94667    fn fold_prop_or_spread(&mut self, node: PropOrSpread) -> PropOrSpread {
94668        <V as Fold>::fold_prop_or_spread(&mut **self, node)
94669    }
94670
94671    #[inline]
94672    fn fold_prop_or_spreads(&mut self, node: Vec<PropOrSpread>) -> Vec<PropOrSpread> {
94673        <V as Fold>::fold_prop_or_spreads(&mut **self, node)
94674    }
94675
94676    #[inline]
94677    fn fold_regex(&mut self, node: Regex) -> Regex {
94678        <V as Fold>::fold_regex(&mut **self, node)
94679    }
94680
94681    #[inline]
94682    fn fold_rest_pat(&mut self, node: RestPat) -> RestPat {
94683        <V as Fold>::fold_rest_pat(&mut **self, node)
94684    }
94685
94686    #[inline]
94687    fn fold_return_stmt(&mut self, node: ReturnStmt) -> ReturnStmt {
94688        <V as Fold>::fold_return_stmt(&mut **self, node)
94689    }
94690
94691    #[inline]
94692    fn fold_script(&mut self, node: Script) -> Script {
94693        <V as Fold>::fold_script(&mut **self, node)
94694    }
94695
94696    #[inline]
94697    fn fold_seq_expr(&mut self, node: SeqExpr) -> SeqExpr {
94698        <V as Fold>::fold_seq_expr(&mut **self, node)
94699    }
94700
94701    #[inline]
94702    fn fold_setter_prop(&mut self, node: SetterProp) -> SetterProp {
94703        <V as Fold>::fold_setter_prop(&mut **self, node)
94704    }
94705
94706    #[inline]
94707    fn fold_simple_assign_target(&mut self, node: SimpleAssignTarget) -> SimpleAssignTarget {
94708        <V as Fold>::fold_simple_assign_target(&mut **self, node)
94709    }
94710
94711    #[inline]
94712    fn fold_span(&mut self, node: swc_common::Span) -> swc_common::Span {
94713        <V as Fold>::fold_span(&mut **self, node)
94714    }
94715
94716    #[inline]
94717    fn fold_spread_element(&mut self, node: SpreadElement) -> SpreadElement {
94718        <V as Fold>::fold_spread_element(&mut **self, node)
94719    }
94720
94721    #[inline]
94722    fn fold_static_block(&mut self, node: StaticBlock) -> StaticBlock {
94723        <V as Fold>::fold_static_block(&mut **self, node)
94724    }
94725
94726    #[inline]
94727    fn fold_stmt(&mut self, node: Stmt) -> Stmt {
94728        <V as Fold>::fold_stmt(&mut **self, node)
94729    }
94730
94731    #[inline]
94732    fn fold_stmts(&mut self, node: Vec<Stmt>) -> Vec<Stmt> {
94733        <V as Fold>::fold_stmts(&mut **self, node)
94734    }
94735
94736    #[inline]
94737    fn fold_str(&mut self, node: Str) -> Str {
94738        <V as Fold>::fold_str(&mut **self, node)
94739    }
94740
94741    #[inline]
94742    fn fold_super(&mut self, node: Super) -> Super {
94743        <V as Fold>::fold_super(&mut **self, node)
94744    }
94745
94746    #[inline]
94747    fn fold_super_prop(&mut self, node: SuperProp) -> SuperProp {
94748        <V as Fold>::fold_super_prop(&mut **self, node)
94749    }
94750
94751    #[inline]
94752    fn fold_super_prop_expr(&mut self, node: SuperPropExpr) -> SuperPropExpr {
94753        <V as Fold>::fold_super_prop_expr(&mut **self, node)
94754    }
94755
94756    #[inline]
94757    fn fold_switch_case(&mut self, node: SwitchCase) -> SwitchCase {
94758        <V as Fold>::fold_switch_case(&mut **self, node)
94759    }
94760
94761    #[inline]
94762    fn fold_switch_cases(&mut self, node: Vec<SwitchCase>) -> Vec<SwitchCase> {
94763        <V as Fold>::fold_switch_cases(&mut **self, node)
94764    }
94765
94766    #[inline]
94767    fn fold_switch_stmt(&mut self, node: SwitchStmt) -> SwitchStmt {
94768        <V as Fold>::fold_switch_stmt(&mut **self, node)
94769    }
94770
94771    #[inline]
94772    fn fold_syntax_context(
94773        &mut self,
94774        node: swc_common::SyntaxContext,
94775    ) -> swc_common::SyntaxContext {
94776        <V as Fold>::fold_syntax_context(&mut **self, node)
94777    }
94778
94779    #[inline]
94780    fn fold_tagged_tpl(&mut self, node: TaggedTpl) -> TaggedTpl {
94781        <V as Fold>::fold_tagged_tpl(&mut **self, node)
94782    }
94783
94784    #[inline]
94785    fn fold_this_expr(&mut self, node: ThisExpr) -> ThisExpr {
94786        <V as Fold>::fold_this_expr(&mut **self, node)
94787    }
94788
94789    #[inline]
94790    fn fold_throw_stmt(&mut self, node: ThrowStmt) -> ThrowStmt {
94791        <V as Fold>::fold_throw_stmt(&mut **self, node)
94792    }
94793
94794    #[inline]
94795    fn fold_tpl(&mut self, node: Tpl) -> Tpl {
94796        <V as Fold>::fold_tpl(&mut **self, node)
94797    }
94798
94799    #[inline]
94800    fn fold_tpl_element(&mut self, node: TplElement) -> TplElement {
94801        <V as Fold>::fold_tpl_element(&mut **self, node)
94802    }
94803
94804    #[inline]
94805    fn fold_tpl_elements(&mut self, node: Vec<TplElement>) -> Vec<TplElement> {
94806        <V as Fold>::fold_tpl_elements(&mut **self, node)
94807    }
94808
94809    #[inline]
94810    fn fold_true_plus_minus(&mut self, node: TruePlusMinus) -> TruePlusMinus {
94811        <V as Fold>::fold_true_plus_minus(&mut **self, node)
94812    }
94813
94814    #[inline]
94815    fn fold_try_stmt(&mut self, node: TryStmt) -> TryStmt {
94816        <V as Fold>::fold_try_stmt(&mut **self, node)
94817    }
94818
94819    #[inline]
94820    fn fold_ts_array_type(&mut self, node: TsArrayType) -> TsArrayType {
94821        <V as Fold>::fold_ts_array_type(&mut **self, node)
94822    }
94823
94824    #[inline]
94825    fn fold_ts_as_expr(&mut self, node: TsAsExpr) -> TsAsExpr {
94826        <V as Fold>::fold_ts_as_expr(&mut **self, node)
94827    }
94828
94829    #[inline]
94830    fn fold_ts_call_signature_decl(&mut self, node: TsCallSignatureDecl) -> TsCallSignatureDecl {
94831        <V as Fold>::fold_ts_call_signature_decl(&mut **self, node)
94832    }
94833
94834    #[inline]
94835    fn fold_ts_conditional_type(&mut self, node: TsConditionalType) -> TsConditionalType {
94836        <V as Fold>::fold_ts_conditional_type(&mut **self, node)
94837    }
94838
94839    #[inline]
94840    fn fold_ts_const_assertion(&mut self, node: TsConstAssertion) -> TsConstAssertion {
94841        <V as Fold>::fold_ts_const_assertion(&mut **self, node)
94842    }
94843
94844    #[inline]
94845    fn fold_ts_construct_signature_decl(
94846        &mut self,
94847        node: TsConstructSignatureDecl,
94848    ) -> TsConstructSignatureDecl {
94849        <V as Fold>::fold_ts_construct_signature_decl(&mut **self, node)
94850    }
94851
94852    #[inline]
94853    fn fold_ts_constructor_type(&mut self, node: TsConstructorType) -> TsConstructorType {
94854        <V as Fold>::fold_ts_constructor_type(&mut **self, node)
94855    }
94856
94857    #[inline]
94858    fn fold_ts_entity_name(&mut self, node: TsEntityName) -> TsEntityName {
94859        <V as Fold>::fold_ts_entity_name(&mut **self, node)
94860    }
94861
94862    #[inline]
94863    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl) -> TsEnumDecl {
94864        <V as Fold>::fold_ts_enum_decl(&mut **self, node)
94865    }
94866
94867    #[inline]
94868    fn fold_ts_enum_member(&mut self, node: TsEnumMember) -> TsEnumMember {
94869        <V as Fold>::fold_ts_enum_member(&mut **self, node)
94870    }
94871
94872    #[inline]
94873    fn fold_ts_enum_member_id(&mut self, node: TsEnumMemberId) -> TsEnumMemberId {
94874        <V as Fold>::fold_ts_enum_member_id(&mut **self, node)
94875    }
94876
94877    #[inline]
94878    fn fold_ts_enum_members(&mut self, node: Vec<TsEnumMember>) -> Vec<TsEnumMember> {
94879        <V as Fold>::fold_ts_enum_members(&mut **self, node)
94880    }
94881
94882    #[inline]
94883    fn fold_ts_export_assignment(&mut self, node: TsExportAssignment) -> TsExportAssignment {
94884        <V as Fold>::fold_ts_export_assignment(&mut **self, node)
94885    }
94886
94887    #[inline]
94888    fn fold_ts_expr_with_type_args(&mut self, node: TsExprWithTypeArgs) -> TsExprWithTypeArgs {
94889        <V as Fold>::fold_ts_expr_with_type_args(&mut **self, node)
94890    }
94891
94892    #[inline]
94893    fn fold_ts_expr_with_type_argss(
94894        &mut self,
94895        node: Vec<TsExprWithTypeArgs>,
94896    ) -> Vec<TsExprWithTypeArgs> {
94897        <V as Fold>::fold_ts_expr_with_type_argss(&mut **self, node)
94898    }
94899
94900    #[inline]
94901    fn fold_ts_external_module_ref(&mut self, node: TsExternalModuleRef) -> TsExternalModuleRef {
94902        <V as Fold>::fold_ts_external_module_ref(&mut **self, node)
94903    }
94904
94905    #[inline]
94906    fn fold_ts_fn_or_constructor_type(
94907        &mut self,
94908        node: TsFnOrConstructorType,
94909    ) -> TsFnOrConstructorType {
94910        <V as Fold>::fold_ts_fn_or_constructor_type(&mut **self, node)
94911    }
94912
94913    #[inline]
94914    fn fold_ts_fn_param(&mut self, node: TsFnParam) -> TsFnParam {
94915        <V as Fold>::fold_ts_fn_param(&mut **self, node)
94916    }
94917
94918    #[inline]
94919    fn fold_ts_fn_params(&mut self, node: Vec<TsFnParam>) -> Vec<TsFnParam> {
94920        <V as Fold>::fold_ts_fn_params(&mut **self, node)
94921    }
94922
94923    #[inline]
94924    fn fold_ts_fn_type(&mut self, node: TsFnType) -> TsFnType {
94925        <V as Fold>::fold_ts_fn_type(&mut **self, node)
94926    }
94927
94928    #[inline]
94929    fn fold_ts_getter_signature(&mut self, node: TsGetterSignature) -> TsGetterSignature {
94930        <V as Fold>::fold_ts_getter_signature(&mut **self, node)
94931    }
94932
94933    #[inline]
94934    fn fold_ts_import_call_options(&mut self, node: TsImportCallOptions) -> TsImportCallOptions {
94935        <V as Fold>::fold_ts_import_call_options(&mut **self, node)
94936    }
94937
94938    #[inline]
94939    fn fold_ts_import_equals_decl(&mut self, node: TsImportEqualsDecl) -> TsImportEqualsDecl {
94940        <V as Fold>::fold_ts_import_equals_decl(&mut **self, node)
94941    }
94942
94943    #[inline]
94944    fn fold_ts_import_type(&mut self, node: TsImportType) -> TsImportType {
94945        <V as Fold>::fold_ts_import_type(&mut **self, node)
94946    }
94947
94948    #[inline]
94949    fn fold_ts_index_signature(&mut self, node: TsIndexSignature) -> TsIndexSignature {
94950        <V as Fold>::fold_ts_index_signature(&mut **self, node)
94951    }
94952
94953    #[inline]
94954    fn fold_ts_indexed_access_type(&mut self, node: TsIndexedAccessType) -> TsIndexedAccessType {
94955        <V as Fold>::fold_ts_indexed_access_type(&mut **self, node)
94956    }
94957
94958    #[inline]
94959    fn fold_ts_infer_type(&mut self, node: TsInferType) -> TsInferType {
94960        <V as Fold>::fold_ts_infer_type(&mut **self, node)
94961    }
94962
94963    #[inline]
94964    fn fold_ts_instantiation(&mut self, node: TsInstantiation) -> TsInstantiation {
94965        <V as Fold>::fold_ts_instantiation(&mut **self, node)
94966    }
94967
94968    #[inline]
94969    fn fold_ts_interface_body(&mut self, node: TsInterfaceBody) -> TsInterfaceBody {
94970        <V as Fold>::fold_ts_interface_body(&mut **self, node)
94971    }
94972
94973    #[inline]
94974    fn fold_ts_interface_decl(&mut self, node: TsInterfaceDecl) -> TsInterfaceDecl {
94975        <V as Fold>::fold_ts_interface_decl(&mut **self, node)
94976    }
94977
94978    #[inline]
94979    fn fold_ts_intersection_type(&mut self, node: TsIntersectionType) -> TsIntersectionType {
94980        <V as Fold>::fold_ts_intersection_type(&mut **self, node)
94981    }
94982
94983    #[inline]
94984    fn fold_ts_keyword_type(&mut self, node: TsKeywordType) -> TsKeywordType {
94985        <V as Fold>::fold_ts_keyword_type(&mut **self, node)
94986    }
94987
94988    #[inline]
94989    fn fold_ts_keyword_type_kind(&mut self, node: TsKeywordTypeKind) -> TsKeywordTypeKind {
94990        <V as Fold>::fold_ts_keyword_type_kind(&mut **self, node)
94991    }
94992
94993    #[inline]
94994    fn fold_ts_lit(&mut self, node: TsLit) -> TsLit {
94995        <V as Fold>::fold_ts_lit(&mut **self, node)
94996    }
94997
94998    #[inline]
94999    fn fold_ts_lit_type(&mut self, node: TsLitType) -> TsLitType {
95000        <V as Fold>::fold_ts_lit_type(&mut **self, node)
95001    }
95002
95003    #[inline]
95004    fn fold_ts_mapped_type(&mut self, node: TsMappedType) -> TsMappedType {
95005        <V as Fold>::fold_ts_mapped_type(&mut **self, node)
95006    }
95007
95008    #[inline]
95009    fn fold_ts_method_signature(&mut self, node: TsMethodSignature) -> TsMethodSignature {
95010        <V as Fold>::fold_ts_method_signature(&mut **self, node)
95011    }
95012
95013    #[inline]
95014    fn fold_ts_module_block(&mut self, node: TsModuleBlock) -> TsModuleBlock {
95015        <V as Fold>::fold_ts_module_block(&mut **self, node)
95016    }
95017
95018    #[inline]
95019    fn fold_ts_module_decl(&mut self, node: TsModuleDecl) -> TsModuleDecl {
95020        <V as Fold>::fold_ts_module_decl(&mut **self, node)
95021    }
95022
95023    #[inline]
95024    fn fold_ts_module_name(&mut self, node: TsModuleName) -> TsModuleName {
95025        <V as Fold>::fold_ts_module_name(&mut **self, node)
95026    }
95027
95028    #[inline]
95029    fn fold_ts_module_ref(&mut self, node: TsModuleRef) -> TsModuleRef {
95030        <V as Fold>::fold_ts_module_ref(&mut **self, node)
95031    }
95032
95033    #[inline]
95034    fn fold_ts_namespace_body(&mut self, node: TsNamespaceBody) -> TsNamespaceBody {
95035        <V as Fold>::fold_ts_namespace_body(&mut **self, node)
95036    }
95037
95038    #[inline]
95039    fn fold_ts_namespace_decl(&mut self, node: TsNamespaceDecl) -> TsNamespaceDecl {
95040        <V as Fold>::fold_ts_namespace_decl(&mut **self, node)
95041    }
95042
95043    #[inline]
95044    fn fold_ts_namespace_export_decl(
95045        &mut self,
95046        node: TsNamespaceExportDecl,
95047    ) -> TsNamespaceExportDecl {
95048        <V as Fold>::fold_ts_namespace_export_decl(&mut **self, node)
95049    }
95050
95051    #[inline]
95052    fn fold_ts_non_null_expr(&mut self, node: TsNonNullExpr) -> TsNonNullExpr {
95053        <V as Fold>::fold_ts_non_null_expr(&mut **self, node)
95054    }
95055
95056    #[inline]
95057    fn fold_ts_optional_type(&mut self, node: TsOptionalType) -> TsOptionalType {
95058        <V as Fold>::fold_ts_optional_type(&mut **self, node)
95059    }
95060
95061    #[inline]
95062    fn fold_ts_param_prop(&mut self, node: TsParamProp) -> TsParamProp {
95063        <V as Fold>::fold_ts_param_prop(&mut **self, node)
95064    }
95065
95066    #[inline]
95067    fn fold_ts_param_prop_param(&mut self, node: TsParamPropParam) -> TsParamPropParam {
95068        <V as Fold>::fold_ts_param_prop_param(&mut **self, node)
95069    }
95070
95071    #[inline]
95072    fn fold_ts_parenthesized_type(&mut self, node: TsParenthesizedType) -> TsParenthesizedType {
95073        <V as Fold>::fold_ts_parenthesized_type(&mut **self, node)
95074    }
95075
95076    #[inline]
95077    fn fold_ts_property_signature(&mut self, node: TsPropertySignature) -> TsPropertySignature {
95078        <V as Fold>::fold_ts_property_signature(&mut **self, node)
95079    }
95080
95081    #[inline]
95082    fn fold_ts_qualified_name(&mut self, node: TsQualifiedName) -> TsQualifiedName {
95083        <V as Fold>::fold_ts_qualified_name(&mut **self, node)
95084    }
95085
95086    #[inline]
95087    fn fold_ts_rest_type(&mut self, node: TsRestType) -> TsRestType {
95088        <V as Fold>::fold_ts_rest_type(&mut **self, node)
95089    }
95090
95091    #[inline]
95092    fn fold_ts_satisfies_expr(&mut self, node: TsSatisfiesExpr) -> TsSatisfiesExpr {
95093        <V as Fold>::fold_ts_satisfies_expr(&mut **self, node)
95094    }
95095
95096    #[inline]
95097    fn fold_ts_setter_signature(&mut self, node: TsSetterSignature) -> TsSetterSignature {
95098        <V as Fold>::fold_ts_setter_signature(&mut **self, node)
95099    }
95100
95101    #[inline]
95102    fn fold_ts_this_type(&mut self, node: TsThisType) -> TsThisType {
95103        <V as Fold>::fold_ts_this_type(&mut **self, node)
95104    }
95105
95106    #[inline]
95107    fn fold_ts_this_type_or_ident(&mut self, node: TsThisTypeOrIdent) -> TsThisTypeOrIdent {
95108        <V as Fold>::fold_ts_this_type_or_ident(&mut **self, node)
95109    }
95110
95111    #[inline]
95112    fn fold_ts_tpl_lit_type(&mut self, node: TsTplLitType) -> TsTplLitType {
95113        <V as Fold>::fold_ts_tpl_lit_type(&mut **self, node)
95114    }
95115
95116    #[inline]
95117    fn fold_ts_tuple_element(&mut self, node: TsTupleElement) -> TsTupleElement {
95118        <V as Fold>::fold_ts_tuple_element(&mut **self, node)
95119    }
95120
95121    #[inline]
95122    fn fold_ts_tuple_elements(&mut self, node: Vec<TsTupleElement>) -> Vec<TsTupleElement> {
95123        <V as Fold>::fold_ts_tuple_elements(&mut **self, node)
95124    }
95125
95126    #[inline]
95127    fn fold_ts_tuple_type(&mut self, node: TsTupleType) -> TsTupleType {
95128        <V as Fold>::fold_ts_tuple_type(&mut **self, node)
95129    }
95130
95131    #[inline]
95132    fn fold_ts_type(&mut self, node: TsType) -> TsType {
95133        <V as Fold>::fold_ts_type(&mut **self, node)
95134    }
95135
95136    #[inline]
95137    fn fold_ts_type_alias_decl(&mut self, node: TsTypeAliasDecl) -> TsTypeAliasDecl {
95138        <V as Fold>::fold_ts_type_alias_decl(&mut **self, node)
95139    }
95140
95141    #[inline]
95142    fn fold_ts_type_ann(&mut self, node: TsTypeAnn) -> TsTypeAnn {
95143        <V as Fold>::fold_ts_type_ann(&mut **self, node)
95144    }
95145
95146    #[inline]
95147    fn fold_ts_type_assertion(&mut self, node: TsTypeAssertion) -> TsTypeAssertion {
95148        <V as Fold>::fold_ts_type_assertion(&mut **self, node)
95149    }
95150
95151    #[inline]
95152    fn fold_ts_type_element(&mut self, node: TsTypeElement) -> TsTypeElement {
95153        <V as Fold>::fold_ts_type_element(&mut **self, node)
95154    }
95155
95156    #[inline]
95157    fn fold_ts_type_elements(&mut self, node: Vec<TsTypeElement>) -> Vec<TsTypeElement> {
95158        <V as Fold>::fold_ts_type_elements(&mut **self, node)
95159    }
95160
95161    #[inline]
95162    fn fold_ts_type_lit(&mut self, node: TsTypeLit) -> TsTypeLit {
95163        <V as Fold>::fold_ts_type_lit(&mut **self, node)
95164    }
95165
95166    #[inline]
95167    fn fold_ts_type_operator(&mut self, node: TsTypeOperator) -> TsTypeOperator {
95168        <V as Fold>::fold_ts_type_operator(&mut **self, node)
95169    }
95170
95171    #[inline]
95172    fn fold_ts_type_operator_op(&mut self, node: TsTypeOperatorOp) -> TsTypeOperatorOp {
95173        <V as Fold>::fold_ts_type_operator_op(&mut **self, node)
95174    }
95175
95176    #[inline]
95177    fn fold_ts_type_param(&mut self, node: TsTypeParam) -> TsTypeParam {
95178        <V as Fold>::fold_ts_type_param(&mut **self, node)
95179    }
95180
95181    #[inline]
95182    fn fold_ts_type_param_decl(&mut self, node: TsTypeParamDecl) -> TsTypeParamDecl {
95183        <V as Fold>::fold_ts_type_param_decl(&mut **self, node)
95184    }
95185
95186    #[inline]
95187    fn fold_ts_type_param_instantiation(
95188        &mut self,
95189        node: TsTypeParamInstantiation,
95190    ) -> TsTypeParamInstantiation {
95191        <V as Fold>::fold_ts_type_param_instantiation(&mut **self, node)
95192    }
95193
95194    #[inline]
95195    fn fold_ts_type_params(&mut self, node: Vec<TsTypeParam>) -> Vec<TsTypeParam> {
95196        <V as Fold>::fold_ts_type_params(&mut **self, node)
95197    }
95198
95199    #[inline]
95200    fn fold_ts_type_predicate(&mut self, node: TsTypePredicate) -> TsTypePredicate {
95201        <V as Fold>::fold_ts_type_predicate(&mut **self, node)
95202    }
95203
95204    #[inline]
95205    fn fold_ts_type_query(&mut self, node: TsTypeQuery) -> TsTypeQuery {
95206        <V as Fold>::fold_ts_type_query(&mut **self, node)
95207    }
95208
95209    #[inline]
95210    fn fold_ts_type_query_expr(&mut self, node: TsTypeQueryExpr) -> TsTypeQueryExpr {
95211        <V as Fold>::fold_ts_type_query_expr(&mut **self, node)
95212    }
95213
95214    #[inline]
95215    fn fold_ts_type_ref(&mut self, node: TsTypeRef) -> TsTypeRef {
95216        <V as Fold>::fold_ts_type_ref(&mut **self, node)
95217    }
95218
95219    #[inline]
95220    fn fold_ts_types(&mut self, node: Vec<Box<TsType>>) -> Vec<Box<TsType>> {
95221        <V as Fold>::fold_ts_types(&mut **self, node)
95222    }
95223
95224    #[inline]
95225    fn fold_ts_union_or_intersection_type(
95226        &mut self,
95227        node: TsUnionOrIntersectionType,
95228    ) -> TsUnionOrIntersectionType {
95229        <V as Fold>::fold_ts_union_or_intersection_type(&mut **self, node)
95230    }
95231
95232    #[inline]
95233    fn fold_ts_union_type(&mut self, node: TsUnionType) -> TsUnionType {
95234        <V as Fold>::fold_ts_union_type(&mut **self, node)
95235    }
95236
95237    #[inline]
95238    fn fold_unary_expr(&mut self, node: UnaryExpr) -> UnaryExpr {
95239        <V as Fold>::fold_unary_expr(&mut **self, node)
95240    }
95241
95242    #[inline]
95243    fn fold_unary_op(&mut self, node: UnaryOp) -> UnaryOp {
95244        <V as Fold>::fold_unary_op(&mut **self, node)
95245    }
95246
95247    #[inline]
95248    fn fold_update_expr(&mut self, node: UpdateExpr) -> UpdateExpr {
95249        <V as Fold>::fold_update_expr(&mut **self, node)
95250    }
95251
95252    #[inline]
95253    fn fold_update_op(&mut self, node: UpdateOp) -> UpdateOp {
95254        <V as Fold>::fold_update_op(&mut **self, node)
95255    }
95256
95257    #[inline]
95258    fn fold_using_decl(&mut self, node: UsingDecl) -> UsingDecl {
95259        <V as Fold>::fold_using_decl(&mut **self, node)
95260    }
95261
95262    #[inline]
95263    fn fold_var_decl(&mut self, node: VarDecl) -> VarDecl {
95264        <V as Fold>::fold_var_decl(&mut **self, node)
95265    }
95266
95267    #[inline]
95268    fn fold_var_decl_kind(&mut self, node: VarDeclKind) -> VarDeclKind {
95269        <V as Fold>::fold_var_decl_kind(&mut **self, node)
95270    }
95271
95272    #[inline]
95273    fn fold_var_decl_or_expr(&mut self, node: VarDeclOrExpr) -> VarDeclOrExpr {
95274        <V as Fold>::fold_var_decl_or_expr(&mut **self, node)
95275    }
95276
95277    #[inline]
95278    fn fold_var_declarator(&mut self, node: VarDeclarator) -> VarDeclarator {
95279        <V as Fold>::fold_var_declarator(&mut **self, node)
95280    }
95281
95282    #[inline]
95283    fn fold_var_declarators(&mut self, node: Vec<VarDeclarator>) -> Vec<VarDeclarator> {
95284        <V as Fold>::fold_var_declarators(&mut **self, node)
95285    }
95286
95287    #[inline]
95288    fn fold_while_stmt(&mut self, node: WhileStmt) -> WhileStmt {
95289        <V as Fold>::fold_while_stmt(&mut **self, node)
95290    }
95291
95292    #[inline]
95293    fn fold_with_stmt(&mut self, node: WithStmt) -> WithStmt {
95294        <V as Fold>::fold_with_stmt(&mut **self, node)
95295    }
95296
95297    #[inline]
95298    fn fold_yield_expr(&mut self, node: YieldExpr) -> YieldExpr {
95299        <V as Fold>::fold_yield_expr(&mut **self, node)
95300    }
95301}
95302impl<V> Fold for Box<V>
95303where
95304    V: ?Sized + Fold,
95305{
95306    #[inline]
95307    fn fold_accessibility(&mut self, node: Accessibility) -> Accessibility {
95308        <V as Fold>::fold_accessibility(&mut **self, node)
95309    }
95310
95311    #[inline]
95312    fn fold_array_lit(&mut self, node: ArrayLit) -> ArrayLit {
95313        <V as Fold>::fold_array_lit(&mut **self, node)
95314    }
95315
95316    #[inline]
95317    fn fold_array_pat(&mut self, node: ArrayPat) -> ArrayPat {
95318        <V as Fold>::fold_array_pat(&mut **self, node)
95319    }
95320
95321    #[inline]
95322    fn fold_arrow_expr(&mut self, node: ArrowExpr) -> ArrowExpr {
95323        <V as Fold>::fold_arrow_expr(&mut **self, node)
95324    }
95325
95326    #[inline]
95327    fn fold_assign_expr(&mut self, node: AssignExpr) -> AssignExpr {
95328        <V as Fold>::fold_assign_expr(&mut **self, node)
95329    }
95330
95331    #[inline]
95332    fn fold_assign_op(&mut self, node: AssignOp) -> AssignOp {
95333        <V as Fold>::fold_assign_op(&mut **self, node)
95334    }
95335
95336    #[inline]
95337    fn fold_assign_pat(&mut self, node: AssignPat) -> AssignPat {
95338        <V as Fold>::fold_assign_pat(&mut **self, node)
95339    }
95340
95341    #[inline]
95342    fn fold_assign_pat_prop(&mut self, node: AssignPatProp) -> AssignPatProp {
95343        <V as Fold>::fold_assign_pat_prop(&mut **self, node)
95344    }
95345
95346    #[inline]
95347    fn fold_assign_prop(&mut self, node: AssignProp) -> AssignProp {
95348        <V as Fold>::fold_assign_prop(&mut **self, node)
95349    }
95350
95351    #[inline]
95352    fn fold_assign_target(&mut self, node: AssignTarget) -> AssignTarget {
95353        <V as Fold>::fold_assign_target(&mut **self, node)
95354    }
95355
95356    #[inline]
95357    fn fold_assign_target_pat(&mut self, node: AssignTargetPat) -> AssignTargetPat {
95358        <V as Fold>::fold_assign_target_pat(&mut **self, node)
95359    }
95360
95361    #[inline]
95362    fn fold_atom(&mut self, node: swc_atoms::Atom) -> swc_atoms::Atom {
95363        <V as Fold>::fold_atom(&mut **self, node)
95364    }
95365
95366    #[inline]
95367    fn fold_auto_accessor(&mut self, node: AutoAccessor) -> AutoAccessor {
95368        <V as Fold>::fold_auto_accessor(&mut **self, node)
95369    }
95370
95371    #[inline]
95372    fn fold_await_expr(&mut self, node: AwaitExpr) -> AwaitExpr {
95373        <V as Fold>::fold_await_expr(&mut **self, node)
95374    }
95375
95376    #[inline]
95377    fn fold_big_int(&mut self, node: BigInt) -> BigInt {
95378        <V as Fold>::fold_big_int(&mut **self, node)
95379    }
95380
95381    #[inline]
95382    fn fold_big_int_value(&mut self, node: BigIntValue) -> BigIntValue {
95383        <V as Fold>::fold_big_int_value(&mut **self, node)
95384    }
95385
95386    #[inline]
95387    fn fold_bin_expr(&mut self, node: BinExpr) -> BinExpr {
95388        <V as Fold>::fold_bin_expr(&mut **self, node)
95389    }
95390
95391    #[inline]
95392    fn fold_binary_op(&mut self, node: BinaryOp) -> BinaryOp {
95393        <V as Fold>::fold_binary_op(&mut **self, node)
95394    }
95395
95396    #[inline]
95397    fn fold_binding_ident(&mut self, node: BindingIdent) -> BindingIdent {
95398        <V as Fold>::fold_binding_ident(&mut **self, node)
95399    }
95400
95401    #[inline]
95402    fn fold_block_stmt(&mut self, node: BlockStmt) -> BlockStmt {
95403        <V as Fold>::fold_block_stmt(&mut **self, node)
95404    }
95405
95406    #[inline]
95407    fn fold_block_stmt_or_expr(&mut self, node: BlockStmtOrExpr) -> BlockStmtOrExpr {
95408        <V as Fold>::fold_block_stmt_or_expr(&mut **self, node)
95409    }
95410
95411    #[inline]
95412    fn fold_bool(&mut self, node: Bool) -> Bool {
95413        <V as Fold>::fold_bool(&mut **self, node)
95414    }
95415
95416    #[inline]
95417    fn fold_break_stmt(&mut self, node: BreakStmt) -> BreakStmt {
95418        <V as Fold>::fold_break_stmt(&mut **self, node)
95419    }
95420
95421    #[inline]
95422    fn fold_call_expr(&mut self, node: CallExpr) -> CallExpr {
95423        <V as Fold>::fold_call_expr(&mut **self, node)
95424    }
95425
95426    #[inline]
95427    fn fold_callee(&mut self, node: Callee) -> Callee {
95428        <V as Fold>::fold_callee(&mut **self, node)
95429    }
95430
95431    #[inline]
95432    fn fold_catch_clause(&mut self, node: CatchClause) -> CatchClause {
95433        <V as Fold>::fold_catch_clause(&mut **self, node)
95434    }
95435
95436    #[inline]
95437    fn fold_class(&mut self, node: Class) -> Class {
95438        <V as Fold>::fold_class(&mut **self, node)
95439    }
95440
95441    #[inline]
95442    fn fold_class_decl(&mut self, node: ClassDecl) -> ClassDecl {
95443        <V as Fold>::fold_class_decl(&mut **self, node)
95444    }
95445
95446    #[inline]
95447    fn fold_class_expr(&mut self, node: ClassExpr) -> ClassExpr {
95448        <V as Fold>::fold_class_expr(&mut **self, node)
95449    }
95450
95451    #[inline]
95452    fn fold_class_member(&mut self, node: ClassMember) -> ClassMember {
95453        <V as Fold>::fold_class_member(&mut **self, node)
95454    }
95455
95456    #[inline]
95457    fn fold_class_members(&mut self, node: Vec<ClassMember>) -> Vec<ClassMember> {
95458        <V as Fold>::fold_class_members(&mut **self, node)
95459    }
95460
95461    #[inline]
95462    fn fold_class_method(&mut self, node: ClassMethod) -> ClassMethod {
95463        <V as Fold>::fold_class_method(&mut **self, node)
95464    }
95465
95466    #[inline]
95467    fn fold_class_prop(&mut self, node: ClassProp) -> ClassProp {
95468        <V as Fold>::fold_class_prop(&mut **self, node)
95469    }
95470
95471    #[inline]
95472    fn fold_computed_prop_name(&mut self, node: ComputedPropName) -> ComputedPropName {
95473        <V as Fold>::fold_computed_prop_name(&mut **self, node)
95474    }
95475
95476    #[inline]
95477    fn fold_cond_expr(&mut self, node: CondExpr) -> CondExpr {
95478        <V as Fold>::fold_cond_expr(&mut **self, node)
95479    }
95480
95481    #[inline]
95482    fn fold_constructor(&mut self, node: Constructor) -> Constructor {
95483        <V as Fold>::fold_constructor(&mut **self, node)
95484    }
95485
95486    #[inline]
95487    fn fold_continue_stmt(&mut self, node: ContinueStmt) -> ContinueStmt {
95488        <V as Fold>::fold_continue_stmt(&mut **self, node)
95489    }
95490
95491    #[inline]
95492    fn fold_debugger_stmt(&mut self, node: DebuggerStmt) -> DebuggerStmt {
95493        <V as Fold>::fold_debugger_stmt(&mut **self, node)
95494    }
95495
95496    #[inline]
95497    fn fold_decl(&mut self, node: Decl) -> Decl {
95498        <V as Fold>::fold_decl(&mut **self, node)
95499    }
95500
95501    #[inline]
95502    fn fold_decorator(&mut self, node: Decorator) -> Decorator {
95503        <V as Fold>::fold_decorator(&mut **self, node)
95504    }
95505
95506    #[inline]
95507    fn fold_decorators(&mut self, node: Vec<Decorator>) -> Vec<Decorator> {
95508        <V as Fold>::fold_decorators(&mut **self, node)
95509    }
95510
95511    #[inline]
95512    fn fold_default_decl(&mut self, node: DefaultDecl) -> DefaultDecl {
95513        <V as Fold>::fold_default_decl(&mut **self, node)
95514    }
95515
95516    #[inline]
95517    fn fold_do_while_stmt(&mut self, node: DoWhileStmt) -> DoWhileStmt {
95518        <V as Fold>::fold_do_while_stmt(&mut **self, node)
95519    }
95520
95521    #[inline]
95522    fn fold_empty_stmt(&mut self, node: EmptyStmt) -> EmptyStmt {
95523        <V as Fold>::fold_empty_stmt(&mut **self, node)
95524    }
95525
95526    #[inline]
95527    fn fold_export_all(&mut self, node: ExportAll) -> ExportAll {
95528        <V as Fold>::fold_export_all(&mut **self, node)
95529    }
95530
95531    #[inline]
95532    fn fold_export_decl(&mut self, node: ExportDecl) -> ExportDecl {
95533        <V as Fold>::fold_export_decl(&mut **self, node)
95534    }
95535
95536    #[inline]
95537    fn fold_export_default_decl(&mut self, node: ExportDefaultDecl) -> ExportDefaultDecl {
95538        <V as Fold>::fold_export_default_decl(&mut **self, node)
95539    }
95540
95541    #[inline]
95542    fn fold_export_default_expr(&mut self, node: ExportDefaultExpr) -> ExportDefaultExpr {
95543        <V as Fold>::fold_export_default_expr(&mut **self, node)
95544    }
95545
95546    #[inline]
95547    fn fold_export_default_specifier(
95548        &mut self,
95549        node: ExportDefaultSpecifier,
95550    ) -> ExportDefaultSpecifier {
95551        <V as Fold>::fold_export_default_specifier(&mut **self, node)
95552    }
95553
95554    #[inline]
95555    fn fold_export_named_specifier(&mut self, node: ExportNamedSpecifier) -> ExportNamedSpecifier {
95556        <V as Fold>::fold_export_named_specifier(&mut **self, node)
95557    }
95558
95559    #[inline]
95560    fn fold_export_namespace_specifier(
95561        &mut self,
95562        node: ExportNamespaceSpecifier,
95563    ) -> ExportNamespaceSpecifier {
95564        <V as Fold>::fold_export_namespace_specifier(&mut **self, node)
95565    }
95566
95567    #[inline]
95568    fn fold_export_specifier(&mut self, node: ExportSpecifier) -> ExportSpecifier {
95569        <V as Fold>::fold_export_specifier(&mut **self, node)
95570    }
95571
95572    #[inline]
95573    fn fold_export_specifiers(&mut self, node: Vec<ExportSpecifier>) -> Vec<ExportSpecifier> {
95574        <V as Fold>::fold_export_specifiers(&mut **self, node)
95575    }
95576
95577    #[inline]
95578    fn fold_expr(&mut self, node: Expr) -> Expr {
95579        <V as Fold>::fold_expr(&mut **self, node)
95580    }
95581
95582    #[inline]
95583    fn fold_expr_or_spread(&mut self, node: ExprOrSpread) -> ExprOrSpread {
95584        <V as Fold>::fold_expr_or_spread(&mut **self, node)
95585    }
95586
95587    #[inline]
95588    fn fold_expr_or_spreads(&mut self, node: Vec<ExprOrSpread>) -> Vec<ExprOrSpread> {
95589        <V as Fold>::fold_expr_or_spreads(&mut **self, node)
95590    }
95591
95592    #[inline]
95593    fn fold_expr_stmt(&mut self, node: ExprStmt) -> ExprStmt {
95594        <V as Fold>::fold_expr_stmt(&mut **self, node)
95595    }
95596
95597    #[inline]
95598    fn fold_exprs(&mut self, node: Vec<Box<Expr>>) -> Vec<Box<Expr>> {
95599        <V as Fold>::fold_exprs(&mut **self, node)
95600    }
95601
95602    #[inline]
95603    fn fold_fn_decl(&mut self, node: FnDecl) -> FnDecl {
95604        <V as Fold>::fold_fn_decl(&mut **self, node)
95605    }
95606
95607    #[inline]
95608    fn fold_fn_expr(&mut self, node: FnExpr) -> FnExpr {
95609        <V as Fold>::fold_fn_expr(&mut **self, node)
95610    }
95611
95612    #[inline]
95613    fn fold_for_head(&mut self, node: ForHead) -> ForHead {
95614        <V as Fold>::fold_for_head(&mut **self, node)
95615    }
95616
95617    #[inline]
95618    fn fold_for_in_stmt(&mut self, node: ForInStmt) -> ForInStmt {
95619        <V as Fold>::fold_for_in_stmt(&mut **self, node)
95620    }
95621
95622    #[inline]
95623    fn fold_for_of_stmt(&mut self, node: ForOfStmt) -> ForOfStmt {
95624        <V as Fold>::fold_for_of_stmt(&mut **self, node)
95625    }
95626
95627    #[inline]
95628    fn fold_for_stmt(&mut self, node: ForStmt) -> ForStmt {
95629        <V as Fold>::fold_for_stmt(&mut **self, node)
95630    }
95631
95632    #[inline]
95633    fn fold_function(&mut self, node: Function) -> Function {
95634        <V as Fold>::fold_function(&mut **self, node)
95635    }
95636
95637    #[inline]
95638    fn fold_getter_prop(&mut self, node: GetterProp) -> GetterProp {
95639        <V as Fold>::fold_getter_prop(&mut **self, node)
95640    }
95641
95642    #[inline]
95643    fn fold_ident(&mut self, node: Ident) -> Ident {
95644        <V as Fold>::fold_ident(&mut **self, node)
95645    }
95646
95647    #[inline]
95648    fn fold_ident_name(&mut self, node: IdentName) -> IdentName {
95649        <V as Fold>::fold_ident_name(&mut **self, node)
95650    }
95651
95652    #[inline]
95653    fn fold_if_stmt(&mut self, node: IfStmt) -> IfStmt {
95654        <V as Fold>::fold_if_stmt(&mut **self, node)
95655    }
95656
95657    #[inline]
95658    fn fold_import(&mut self, node: Import) -> Import {
95659        <V as Fold>::fold_import(&mut **self, node)
95660    }
95661
95662    #[inline]
95663    fn fold_import_decl(&mut self, node: ImportDecl) -> ImportDecl {
95664        <V as Fold>::fold_import_decl(&mut **self, node)
95665    }
95666
95667    #[inline]
95668    fn fold_import_default_specifier(
95669        &mut self,
95670        node: ImportDefaultSpecifier,
95671    ) -> ImportDefaultSpecifier {
95672        <V as Fold>::fold_import_default_specifier(&mut **self, node)
95673    }
95674
95675    #[inline]
95676    fn fold_import_named_specifier(&mut self, node: ImportNamedSpecifier) -> ImportNamedSpecifier {
95677        <V as Fold>::fold_import_named_specifier(&mut **self, node)
95678    }
95679
95680    #[inline]
95681    fn fold_import_phase(&mut self, node: ImportPhase) -> ImportPhase {
95682        <V as Fold>::fold_import_phase(&mut **self, node)
95683    }
95684
95685    #[inline]
95686    fn fold_import_specifier(&mut self, node: ImportSpecifier) -> ImportSpecifier {
95687        <V as Fold>::fold_import_specifier(&mut **self, node)
95688    }
95689
95690    #[inline]
95691    fn fold_import_specifiers(&mut self, node: Vec<ImportSpecifier>) -> Vec<ImportSpecifier> {
95692        <V as Fold>::fold_import_specifiers(&mut **self, node)
95693    }
95694
95695    #[inline]
95696    fn fold_import_star_as_specifier(
95697        &mut self,
95698        node: ImportStarAsSpecifier,
95699    ) -> ImportStarAsSpecifier {
95700        <V as Fold>::fold_import_star_as_specifier(&mut **self, node)
95701    }
95702
95703    #[inline]
95704    fn fold_import_with(&mut self, node: ImportWith) -> ImportWith {
95705        <V as Fold>::fold_import_with(&mut **self, node)
95706    }
95707
95708    #[inline]
95709    fn fold_import_with_item(&mut self, node: ImportWithItem) -> ImportWithItem {
95710        <V as Fold>::fold_import_with_item(&mut **self, node)
95711    }
95712
95713    #[inline]
95714    fn fold_import_with_items(&mut self, node: Vec<ImportWithItem>) -> Vec<ImportWithItem> {
95715        <V as Fold>::fold_import_with_items(&mut **self, node)
95716    }
95717
95718    #[inline]
95719    fn fold_invalid(&mut self, node: Invalid) -> Invalid {
95720        <V as Fold>::fold_invalid(&mut **self, node)
95721    }
95722
95723    #[inline]
95724    fn fold_jsx_attr(&mut self, node: JSXAttr) -> JSXAttr {
95725        <V as Fold>::fold_jsx_attr(&mut **self, node)
95726    }
95727
95728    #[inline]
95729    fn fold_jsx_attr_name(&mut self, node: JSXAttrName) -> JSXAttrName {
95730        <V as Fold>::fold_jsx_attr_name(&mut **self, node)
95731    }
95732
95733    #[inline]
95734    fn fold_jsx_attr_or_spread(&mut self, node: JSXAttrOrSpread) -> JSXAttrOrSpread {
95735        <V as Fold>::fold_jsx_attr_or_spread(&mut **self, node)
95736    }
95737
95738    #[inline]
95739    fn fold_jsx_attr_or_spreads(&mut self, node: Vec<JSXAttrOrSpread>) -> Vec<JSXAttrOrSpread> {
95740        <V as Fold>::fold_jsx_attr_or_spreads(&mut **self, node)
95741    }
95742
95743    #[inline]
95744    fn fold_jsx_attr_value(&mut self, node: JSXAttrValue) -> JSXAttrValue {
95745        <V as Fold>::fold_jsx_attr_value(&mut **self, node)
95746    }
95747
95748    #[inline]
95749    fn fold_jsx_closing_element(&mut self, node: JSXClosingElement) -> JSXClosingElement {
95750        <V as Fold>::fold_jsx_closing_element(&mut **self, node)
95751    }
95752
95753    #[inline]
95754    fn fold_jsx_closing_fragment(&mut self, node: JSXClosingFragment) -> JSXClosingFragment {
95755        <V as Fold>::fold_jsx_closing_fragment(&mut **self, node)
95756    }
95757
95758    #[inline]
95759    fn fold_jsx_element(&mut self, node: JSXElement) -> JSXElement {
95760        <V as Fold>::fold_jsx_element(&mut **self, node)
95761    }
95762
95763    #[inline]
95764    fn fold_jsx_element_child(&mut self, node: JSXElementChild) -> JSXElementChild {
95765        <V as Fold>::fold_jsx_element_child(&mut **self, node)
95766    }
95767
95768    #[inline]
95769    fn fold_jsx_element_childs(&mut self, node: Vec<JSXElementChild>) -> Vec<JSXElementChild> {
95770        <V as Fold>::fold_jsx_element_childs(&mut **self, node)
95771    }
95772
95773    #[inline]
95774    fn fold_jsx_element_name(&mut self, node: JSXElementName) -> JSXElementName {
95775        <V as Fold>::fold_jsx_element_name(&mut **self, node)
95776    }
95777
95778    #[inline]
95779    fn fold_jsx_empty_expr(&mut self, node: JSXEmptyExpr) -> JSXEmptyExpr {
95780        <V as Fold>::fold_jsx_empty_expr(&mut **self, node)
95781    }
95782
95783    #[inline]
95784    fn fold_jsx_expr(&mut self, node: JSXExpr) -> JSXExpr {
95785        <V as Fold>::fold_jsx_expr(&mut **self, node)
95786    }
95787
95788    #[inline]
95789    fn fold_jsx_expr_container(&mut self, node: JSXExprContainer) -> JSXExprContainer {
95790        <V as Fold>::fold_jsx_expr_container(&mut **self, node)
95791    }
95792
95793    #[inline]
95794    fn fold_jsx_fragment(&mut self, node: JSXFragment) -> JSXFragment {
95795        <V as Fold>::fold_jsx_fragment(&mut **self, node)
95796    }
95797
95798    #[inline]
95799    fn fold_jsx_member_expr(&mut self, node: JSXMemberExpr) -> JSXMemberExpr {
95800        <V as Fold>::fold_jsx_member_expr(&mut **self, node)
95801    }
95802
95803    #[inline]
95804    fn fold_jsx_namespaced_name(&mut self, node: JSXNamespacedName) -> JSXNamespacedName {
95805        <V as Fold>::fold_jsx_namespaced_name(&mut **self, node)
95806    }
95807
95808    #[inline]
95809    fn fold_jsx_object(&mut self, node: JSXObject) -> JSXObject {
95810        <V as Fold>::fold_jsx_object(&mut **self, node)
95811    }
95812
95813    #[inline]
95814    fn fold_jsx_opening_element(&mut self, node: JSXOpeningElement) -> JSXOpeningElement {
95815        <V as Fold>::fold_jsx_opening_element(&mut **self, node)
95816    }
95817
95818    #[inline]
95819    fn fold_jsx_opening_fragment(&mut self, node: JSXOpeningFragment) -> JSXOpeningFragment {
95820        <V as Fold>::fold_jsx_opening_fragment(&mut **self, node)
95821    }
95822
95823    #[inline]
95824    fn fold_jsx_spread_child(&mut self, node: JSXSpreadChild) -> JSXSpreadChild {
95825        <V as Fold>::fold_jsx_spread_child(&mut **self, node)
95826    }
95827
95828    #[inline]
95829    fn fold_jsx_text(&mut self, node: JSXText) -> JSXText {
95830        <V as Fold>::fold_jsx_text(&mut **self, node)
95831    }
95832
95833    #[inline]
95834    fn fold_key(&mut self, node: Key) -> Key {
95835        <V as Fold>::fold_key(&mut **self, node)
95836    }
95837
95838    #[inline]
95839    fn fold_key_value_pat_prop(&mut self, node: KeyValuePatProp) -> KeyValuePatProp {
95840        <V as Fold>::fold_key_value_pat_prop(&mut **self, node)
95841    }
95842
95843    #[inline]
95844    fn fold_key_value_prop(&mut self, node: KeyValueProp) -> KeyValueProp {
95845        <V as Fold>::fold_key_value_prop(&mut **self, node)
95846    }
95847
95848    #[inline]
95849    fn fold_labeled_stmt(&mut self, node: LabeledStmt) -> LabeledStmt {
95850        <V as Fold>::fold_labeled_stmt(&mut **self, node)
95851    }
95852
95853    #[inline]
95854    fn fold_lit(&mut self, node: Lit) -> Lit {
95855        <V as Fold>::fold_lit(&mut **self, node)
95856    }
95857
95858    #[inline]
95859    fn fold_member_expr(&mut self, node: MemberExpr) -> MemberExpr {
95860        <V as Fold>::fold_member_expr(&mut **self, node)
95861    }
95862
95863    #[inline]
95864    fn fold_member_prop(&mut self, node: MemberProp) -> MemberProp {
95865        <V as Fold>::fold_member_prop(&mut **self, node)
95866    }
95867
95868    #[inline]
95869    fn fold_meta_prop_expr(&mut self, node: MetaPropExpr) -> MetaPropExpr {
95870        <V as Fold>::fold_meta_prop_expr(&mut **self, node)
95871    }
95872
95873    #[inline]
95874    fn fold_meta_prop_kind(&mut self, node: MetaPropKind) -> MetaPropKind {
95875        <V as Fold>::fold_meta_prop_kind(&mut **self, node)
95876    }
95877
95878    #[inline]
95879    fn fold_method_kind(&mut self, node: MethodKind) -> MethodKind {
95880        <V as Fold>::fold_method_kind(&mut **self, node)
95881    }
95882
95883    #[inline]
95884    fn fold_method_prop(&mut self, node: MethodProp) -> MethodProp {
95885        <V as Fold>::fold_method_prop(&mut **self, node)
95886    }
95887
95888    #[inline]
95889    fn fold_module(&mut self, node: Module) -> Module {
95890        <V as Fold>::fold_module(&mut **self, node)
95891    }
95892
95893    #[inline]
95894    fn fold_module_decl(&mut self, node: ModuleDecl) -> ModuleDecl {
95895        <V as Fold>::fold_module_decl(&mut **self, node)
95896    }
95897
95898    #[inline]
95899    fn fold_module_export_name(&mut self, node: ModuleExportName) -> ModuleExportName {
95900        <V as Fold>::fold_module_export_name(&mut **self, node)
95901    }
95902
95903    #[inline]
95904    fn fold_module_item(&mut self, node: ModuleItem) -> ModuleItem {
95905        <V as Fold>::fold_module_item(&mut **self, node)
95906    }
95907
95908    #[inline]
95909    fn fold_module_items(&mut self, node: Vec<ModuleItem>) -> Vec<ModuleItem> {
95910        <V as Fold>::fold_module_items(&mut **self, node)
95911    }
95912
95913    #[inline]
95914    fn fold_named_export(&mut self, node: NamedExport) -> NamedExport {
95915        <V as Fold>::fold_named_export(&mut **self, node)
95916    }
95917
95918    #[inline]
95919    fn fold_new_expr(&mut self, node: NewExpr) -> NewExpr {
95920        <V as Fold>::fold_new_expr(&mut **self, node)
95921    }
95922
95923    #[inline]
95924    fn fold_null(&mut self, node: Null) -> Null {
95925        <V as Fold>::fold_null(&mut **self, node)
95926    }
95927
95928    #[inline]
95929    fn fold_number(&mut self, node: Number) -> Number {
95930        <V as Fold>::fold_number(&mut **self, node)
95931    }
95932
95933    #[inline]
95934    fn fold_object_lit(&mut self, node: ObjectLit) -> ObjectLit {
95935        <V as Fold>::fold_object_lit(&mut **self, node)
95936    }
95937
95938    #[inline]
95939    fn fold_object_pat(&mut self, node: ObjectPat) -> ObjectPat {
95940        <V as Fold>::fold_object_pat(&mut **self, node)
95941    }
95942
95943    #[inline]
95944    fn fold_object_pat_prop(&mut self, node: ObjectPatProp) -> ObjectPatProp {
95945        <V as Fold>::fold_object_pat_prop(&mut **self, node)
95946    }
95947
95948    #[inline]
95949    fn fold_object_pat_props(&mut self, node: Vec<ObjectPatProp>) -> Vec<ObjectPatProp> {
95950        <V as Fold>::fold_object_pat_props(&mut **self, node)
95951    }
95952
95953    #[inline]
95954    fn fold_opt_accessibility(&mut self, node: Option<Accessibility>) -> Option<Accessibility> {
95955        <V as Fold>::fold_opt_accessibility(&mut **self, node)
95956    }
95957
95958    #[inline]
95959    fn fold_opt_atom(&mut self, node: Option<swc_atoms::Atom>) -> Option<swc_atoms::Atom> {
95960        <V as Fold>::fold_opt_atom(&mut **self, node)
95961    }
95962
95963    #[inline]
95964    fn fold_opt_block_stmt(&mut self, node: Option<BlockStmt>) -> Option<BlockStmt> {
95965        <V as Fold>::fold_opt_block_stmt(&mut **self, node)
95966    }
95967
95968    #[inline]
95969    fn fold_opt_call(&mut self, node: OptCall) -> OptCall {
95970        <V as Fold>::fold_opt_call(&mut **self, node)
95971    }
95972
95973    #[inline]
95974    fn fold_opt_catch_clause(&mut self, node: Option<CatchClause>) -> Option<CatchClause> {
95975        <V as Fold>::fold_opt_catch_clause(&mut **self, node)
95976    }
95977
95978    #[inline]
95979    fn fold_opt_chain_base(&mut self, node: OptChainBase) -> OptChainBase {
95980        <V as Fold>::fold_opt_chain_base(&mut **self, node)
95981    }
95982
95983    #[inline]
95984    fn fold_opt_chain_expr(&mut self, node: OptChainExpr) -> OptChainExpr {
95985        <V as Fold>::fold_opt_chain_expr(&mut **self, node)
95986    }
95987
95988    #[inline]
95989    fn fold_opt_expr(&mut self, node: Option<Box<Expr>>) -> Option<Box<Expr>> {
95990        <V as Fold>::fold_opt_expr(&mut **self, node)
95991    }
95992
95993    #[inline]
95994    fn fold_opt_expr_or_spread(&mut self, node: Option<ExprOrSpread>) -> Option<ExprOrSpread> {
95995        <V as Fold>::fold_opt_expr_or_spread(&mut **self, node)
95996    }
95997
95998    #[inline]
95999    fn fold_opt_expr_or_spreads(
96000        &mut self,
96001        node: Option<Vec<ExprOrSpread>>,
96002    ) -> Option<Vec<ExprOrSpread>> {
96003        <V as Fold>::fold_opt_expr_or_spreads(&mut **self, node)
96004    }
96005
96006    #[inline]
96007    fn fold_opt_ident(&mut self, node: Option<Ident>) -> Option<Ident> {
96008        <V as Fold>::fold_opt_ident(&mut **self, node)
96009    }
96010
96011    #[inline]
96012    fn fold_opt_jsx_attr_value(&mut self, node: Option<JSXAttrValue>) -> Option<JSXAttrValue> {
96013        <V as Fold>::fold_opt_jsx_attr_value(&mut **self, node)
96014    }
96015
96016    #[inline]
96017    fn fold_opt_jsx_closing_element(
96018        &mut self,
96019        node: Option<JSXClosingElement>,
96020    ) -> Option<JSXClosingElement> {
96021        <V as Fold>::fold_opt_jsx_closing_element(&mut **self, node)
96022    }
96023
96024    #[inline]
96025    fn fold_opt_module_export_name(
96026        &mut self,
96027        node: Option<ModuleExportName>,
96028    ) -> Option<ModuleExportName> {
96029        <V as Fold>::fold_opt_module_export_name(&mut **self, node)
96030    }
96031
96032    #[inline]
96033    fn fold_opt_object_lit(&mut self, node: Option<Box<ObjectLit>>) -> Option<Box<ObjectLit>> {
96034        <V as Fold>::fold_opt_object_lit(&mut **self, node)
96035    }
96036
96037    #[inline]
96038    fn fold_opt_pat(&mut self, node: Option<Pat>) -> Option<Pat> {
96039        <V as Fold>::fold_opt_pat(&mut **self, node)
96040    }
96041
96042    #[inline]
96043    fn fold_opt_span(&mut self, node: Option<swc_common::Span>) -> Option<swc_common::Span> {
96044        <V as Fold>::fold_opt_span(&mut **self, node)
96045    }
96046
96047    #[inline]
96048    fn fold_opt_stmt(&mut self, node: Option<Box<Stmt>>) -> Option<Box<Stmt>> {
96049        <V as Fold>::fold_opt_stmt(&mut **self, node)
96050    }
96051
96052    #[inline]
96053    fn fold_opt_str(&mut self, node: Option<Box<Str>>) -> Option<Box<Str>> {
96054        <V as Fold>::fold_opt_str(&mut **self, node)
96055    }
96056
96057    #[inline]
96058    fn fold_opt_true_plus_minus(&mut self, node: Option<TruePlusMinus>) -> Option<TruePlusMinus> {
96059        <V as Fold>::fold_opt_true_plus_minus(&mut **self, node)
96060    }
96061
96062    #[inline]
96063    fn fold_opt_ts_entity_name(&mut self, node: Option<TsEntityName>) -> Option<TsEntityName> {
96064        <V as Fold>::fold_opt_ts_entity_name(&mut **self, node)
96065    }
96066
96067    #[inline]
96068    fn fold_opt_ts_import_call_options(
96069        &mut self,
96070        node: Option<TsImportCallOptions>,
96071    ) -> Option<TsImportCallOptions> {
96072        <V as Fold>::fold_opt_ts_import_call_options(&mut **self, node)
96073    }
96074
96075    #[inline]
96076    fn fold_opt_ts_namespace_body(
96077        &mut self,
96078        node: Option<TsNamespaceBody>,
96079    ) -> Option<TsNamespaceBody> {
96080        <V as Fold>::fold_opt_ts_namespace_body(&mut **self, node)
96081    }
96082
96083    #[inline]
96084    fn fold_opt_ts_type(&mut self, node: Option<Box<TsType>>) -> Option<Box<TsType>> {
96085        <V as Fold>::fold_opt_ts_type(&mut **self, node)
96086    }
96087
96088    #[inline]
96089    fn fold_opt_ts_type_ann(&mut self, node: Option<Box<TsTypeAnn>>) -> Option<Box<TsTypeAnn>> {
96090        <V as Fold>::fold_opt_ts_type_ann(&mut **self, node)
96091    }
96092
96093    #[inline]
96094    fn fold_opt_ts_type_param_decl(
96095        &mut self,
96096        node: Option<Box<TsTypeParamDecl>>,
96097    ) -> Option<Box<TsTypeParamDecl>> {
96098        <V as Fold>::fold_opt_ts_type_param_decl(&mut **self, node)
96099    }
96100
96101    #[inline]
96102    fn fold_opt_ts_type_param_instantiation(
96103        &mut self,
96104        node: Option<Box<TsTypeParamInstantiation>>,
96105    ) -> Option<Box<TsTypeParamInstantiation>> {
96106        <V as Fold>::fold_opt_ts_type_param_instantiation(&mut **self, node)
96107    }
96108
96109    #[inline]
96110    fn fold_opt_var_decl_or_expr(&mut self, node: Option<VarDeclOrExpr>) -> Option<VarDeclOrExpr> {
96111        <V as Fold>::fold_opt_var_decl_or_expr(&mut **self, node)
96112    }
96113
96114    #[inline]
96115    fn fold_opt_vec_expr_or_spreads(
96116        &mut self,
96117        node: Vec<Option<ExprOrSpread>>,
96118    ) -> Vec<Option<ExprOrSpread>> {
96119        <V as Fold>::fold_opt_vec_expr_or_spreads(&mut **self, node)
96120    }
96121
96122    #[inline]
96123    fn fold_opt_vec_pats(&mut self, node: Vec<Option<Pat>>) -> Vec<Option<Pat>> {
96124        <V as Fold>::fold_opt_vec_pats(&mut **self, node)
96125    }
96126
96127    #[inline]
96128    fn fold_param(&mut self, node: Param) -> Param {
96129        <V as Fold>::fold_param(&mut **self, node)
96130    }
96131
96132    #[inline]
96133    fn fold_param_or_ts_param_prop(&mut self, node: ParamOrTsParamProp) -> ParamOrTsParamProp {
96134        <V as Fold>::fold_param_or_ts_param_prop(&mut **self, node)
96135    }
96136
96137    #[inline]
96138    fn fold_param_or_ts_param_props(
96139        &mut self,
96140        node: Vec<ParamOrTsParamProp>,
96141    ) -> Vec<ParamOrTsParamProp> {
96142        <V as Fold>::fold_param_or_ts_param_props(&mut **self, node)
96143    }
96144
96145    #[inline]
96146    fn fold_params(&mut self, node: Vec<Param>) -> Vec<Param> {
96147        <V as Fold>::fold_params(&mut **self, node)
96148    }
96149
96150    #[inline]
96151    fn fold_paren_expr(&mut self, node: ParenExpr) -> ParenExpr {
96152        <V as Fold>::fold_paren_expr(&mut **self, node)
96153    }
96154
96155    #[inline]
96156    fn fold_pat(&mut self, node: Pat) -> Pat {
96157        <V as Fold>::fold_pat(&mut **self, node)
96158    }
96159
96160    #[inline]
96161    fn fold_pats(&mut self, node: Vec<Pat>) -> Vec<Pat> {
96162        <V as Fold>::fold_pats(&mut **self, node)
96163    }
96164
96165    #[inline]
96166    fn fold_private_method(&mut self, node: PrivateMethod) -> PrivateMethod {
96167        <V as Fold>::fold_private_method(&mut **self, node)
96168    }
96169
96170    #[inline]
96171    fn fold_private_name(&mut self, node: PrivateName) -> PrivateName {
96172        <V as Fold>::fold_private_name(&mut **self, node)
96173    }
96174
96175    #[inline]
96176    fn fold_private_prop(&mut self, node: PrivateProp) -> PrivateProp {
96177        <V as Fold>::fold_private_prop(&mut **self, node)
96178    }
96179
96180    #[inline]
96181    fn fold_program(&mut self, node: Program) -> Program {
96182        <V as Fold>::fold_program(&mut **self, node)
96183    }
96184
96185    #[inline]
96186    fn fold_prop(&mut self, node: Prop) -> Prop {
96187        <V as Fold>::fold_prop(&mut **self, node)
96188    }
96189
96190    #[inline]
96191    fn fold_prop_name(&mut self, node: PropName) -> PropName {
96192        <V as Fold>::fold_prop_name(&mut **self, node)
96193    }
96194
96195    #[inline]
96196    fn fold_prop_or_spread(&mut self, node: PropOrSpread) -> PropOrSpread {
96197        <V as Fold>::fold_prop_or_spread(&mut **self, node)
96198    }
96199
96200    #[inline]
96201    fn fold_prop_or_spreads(&mut self, node: Vec<PropOrSpread>) -> Vec<PropOrSpread> {
96202        <V as Fold>::fold_prop_or_spreads(&mut **self, node)
96203    }
96204
96205    #[inline]
96206    fn fold_regex(&mut self, node: Regex) -> Regex {
96207        <V as Fold>::fold_regex(&mut **self, node)
96208    }
96209
96210    #[inline]
96211    fn fold_rest_pat(&mut self, node: RestPat) -> RestPat {
96212        <V as Fold>::fold_rest_pat(&mut **self, node)
96213    }
96214
96215    #[inline]
96216    fn fold_return_stmt(&mut self, node: ReturnStmt) -> ReturnStmt {
96217        <V as Fold>::fold_return_stmt(&mut **self, node)
96218    }
96219
96220    #[inline]
96221    fn fold_script(&mut self, node: Script) -> Script {
96222        <V as Fold>::fold_script(&mut **self, node)
96223    }
96224
96225    #[inline]
96226    fn fold_seq_expr(&mut self, node: SeqExpr) -> SeqExpr {
96227        <V as Fold>::fold_seq_expr(&mut **self, node)
96228    }
96229
96230    #[inline]
96231    fn fold_setter_prop(&mut self, node: SetterProp) -> SetterProp {
96232        <V as Fold>::fold_setter_prop(&mut **self, node)
96233    }
96234
96235    #[inline]
96236    fn fold_simple_assign_target(&mut self, node: SimpleAssignTarget) -> SimpleAssignTarget {
96237        <V as Fold>::fold_simple_assign_target(&mut **self, node)
96238    }
96239
96240    #[inline]
96241    fn fold_span(&mut self, node: swc_common::Span) -> swc_common::Span {
96242        <V as Fold>::fold_span(&mut **self, node)
96243    }
96244
96245    #[inline]
96246    fn fold_spread_element(&mut self, node: SpreadElement) -> SpreadElement {
96247        <V as Fold>::fold_spread_element(&mut **self, node)
96248    }
96249
96250    #[inline]
96251    fn fold_static_block(&mut self, node: StaticBlock) -> StaticBlock {
96252        <V as Fold>::fold_static_block(&mut **self, node)
96253    }
96254
96255    #[inline]
96256    fn fold_stmt(&mut self, node: Stmt) -> Stmt {
96257        <V as Fold>::fold_stmt(&mut **self, node)
96258    }
96259
96260    #[inline]
96261    fn fold_stmts(&mut self, node: Vec<Stmt>) -> Vec<Stmt> {
96262        <V as Fold>::fold_stmts(&mut **self, node)
96263    }
96264
96265    #[inline]
96266    fn fold_str(&mut self, node: Str) -> Str {
96267        <V as Fold>::fold_str(&mut **self, node)
96268    }
96269
96270    #[inline]
96271    fn fold_super(&mut self, node: Super) -> Super {
96272        <V as Fold>::fold_super(&mut **self, node)
96273    }
96274
96275    #[inline]
96276    fn fold_super_prop(&mut self, node: SuperProp) -> SuperProp {
96277        <V as Fold>::fold_super_prop(&mut **self, node)
96278    }
96279
96280    #[inline]
96281    fn fold_super_prop_expr(&mut self, node: SuperPropExpr) -> SuperPropExpr {
96282        <V as Fold>::fold_super_prop_expr(&mut **self, node)
96283    }
96284
96285    #[inline]
96286    fn fold_switch_case(&mut self, node: SwitchCase) -> SwitchCase {
96287        <V as Fold>::fold_switch_case(&mut **self, node)
96288    }
96289
96290    #[inline]
96291    fn fold_switch_cases(&mut self, node: Vec<SwitchCase>) -> Vec<SwitchCase> {
96292        <V as Fold>::fold_switch_cases(&mut **self, node)
96293    }
96294
96295    #[inline]
96296    fn fold_switch_stmt(&mut self, node: SwitchStmt) -> SwitchStmt {
96297        <V as Fold>::fold_switch_stmt(&mut **self, node)
96298    }
96299
96300    #[inline]
96301    fn fold_syntax_context(
96302        &mut self,
96303        node: swc_common::SyntaxContext,
96304    ) -> swc_common::SyntaxContext {
96305        <V as Fold>::fold_syntax_context(&mut **self, node)
96306    }
96307
96308    #[inline]
96309    fn fold_tagged_tpl(&mut self, node: TaggedTpl) -> TaggedTpl {
96310        <V as Fold>::fold_tagged_tpl(&mut **self, node)
96311    }
96312
96313    #[inline]
96314    fn fold_this_expr(&mut self, node: ThisExpr) -> ThisExpr {
96315        <V as Fold>::fold_this_expr(&mut **self, node)
96316    }
96317
96318    #[inline]
96319    fn fold_throw_stmt(&mut self, node: ThrowStmt) -> ThrowStmt {
96320        <V as Fold>::fold_throw_stmt(&mut **self, node)
96321    }
96322
96323    #[inline]
96324    fn fold_tpl(&mut self, node: Tpl) -> Tpl {
96325        <V as Fold>::fold_tpl(&mut **self, node)
96326    }
96327
96328    #[inline]
96329    fn fold_tpl_element(&mut self, node: TplElement) -> TplElement {
96330        <V as Fold>::fold_tpl_element(&mut **self, node)
96331    }
96332
96333    #[inline]
96334    fn fold_tpl_elements(&mut self, node: Vec<TplElement>) -> Vec<TplElement> {
96335        <V as Fold>::fold_tpl_elements(&mut **self, node)
96336    }
96337
96338    #[inline]
96339    fn fold_true_plus_minus(&mut self, node: TruePlusMinus) -> TruePlusMinus {
96340        <V as Fold>::fold_true_plus_minus(&mut **self, node)
96341    }
96342
96343    #[inline]
96344    fn fold_try_stmt(&mut self, node: TryStmt) -> TryStmt {
96345        <V as Fold>::fold_try_stmt(&mut **self, node)
96346    }
96347
96348    #[inline]
96349    fn fold_ts_array_type(&mut self, node: TsArrayType) -> TsArrayType {
96350        <V as Fold>::fold_ts_array_type(&mut **self, node)
96351    }
96352
96353    #[inline]
96354    fn fold_ts_as_expr(&mut self, node: TsAsExpr) -> TsAsExpr {
96355        <V as Fold>::fold_ts_as_expr(&mut **self, node)
96356    }
96357
96358    #[inline]
96359    fn fold_ts_call_signature_decl(&mut self, node: TsCallSignatureDecl) -> TsCallSignatureDecl {
96360        <V as Fold>::fold_ts_call_signature_decl(&mut **self, node)
96361    }
96362
96363    #[inline]
96364    fn fold_ts_conditional_type(&mut self, node: TsConditionalType) -> TsConditionalType {
96365        <V as Fold>::fold_ts_conditional_type(&mut **self, node)
96366    }
96367
96368    #[inline]
96369    fn fold_ts_const_assertion(&mut self, node: TsConstAssertion) -> TsConstAssertion {
96370        <V as Fold>::fold_ts_const_assertion(&mut **self, node)
96371    }
96372
96373    #[inline]
96374    fn fold_ts_construct_signature_decl(
96375        &mut self,
96376        node: TsConstructSignatureDecl,
96377    ) -> TsConstructSignatureDecl {
96378        <V as Fold>::fold_ts_construct_signature_decl(&mut **self, node)
96379    }
96380
96381    #[inline]
96382    fn fold_ts_constructor_type(&mut self, node: TsConstructorType) -> TsConstructorType {
96383        <V as Fold>::fold_ts_constructor_type(&mut **self, node)
96384    }
96385
96386    #[inline]
96387    fn fold_ts_entity_name(&mut self, node: TsEntityName) -> TsEntityName {
96388        <V as Fold>::fold_ts_entity_name(&mut **self, node)
96389    }
96390
96391    #[inline]
96392    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl) -> TsEnumDecl {
96393        <V as Fold>::fold_ts_enum_decl(&mut **self, node)
96394    }
96395
96396    #[inline]
96397    fn fold_ts_enum_member(&mut self, node: TsEnumMember) -> TsEnumMember {
96398        <V as Fold>::fold_ts_enum_member(&mut **self, node)
96399    }
96400
96401    #[inline]
96402    fn fold_ts_enum_member_id(&mut self, node: TsEnumMemberId) -> TsEnumMemberId {
96403        <V as Fold>::fold_ts_enum_member_id(&mut **self, node)
96404    }
96405
96406    #[inline]
96407    fn fold_ts_enum_members(&mut self, node: Vec<TsEnumMember>) -> Vec<TsEnumMember> {
96408        <V as Fold>::fold_ts_enum_members(&mut **self, node)
96409    }
96410
96411    #[inline]
96412    fn fold_ts_export_assignment(&mut self, node: TsExportAssignment) -> TsExportAssignment {
96413        <V as Fold>::fold_ts_export_assignment(&mut **self, node)
96414    }
96415
96416    #[inline]
96417    fn fold_ts_expr_with_type_args(&mut self, node: TsExprWithTypeArgs) -> TsExprWithTypeArgs {
96418        <V as Fold>::fold_ts_expr_with_type_args(&mut **self, node)
96419    }
96420
96421    #[inline]
96422    fn fold_ts_expr_with_type_argss(
96423        &mut self,
96424        node: Vec<TsExprWithTypeArgs>,
96425    ) -> Vec<TsExprWithTypeArgs> {
96426        <V as Fold>::fold_ts_expr_with_type_argss(&mut **self, node)
96427    }
96428
96429    #[inline]
96430    fn fold_ts_external_module_ref(&mut self, node: TsExternalModuleRef) -> TsExternalModuleRef {
96431        <V as Fold>::fold_ts_external_module_ref(&mut **self, node)
96432    }
96433
96434    #[inline]
96435    fn fold_ts_fn_or_constructor_type(
96436        &mut self,
96437        node: TsFnOrConstructorType,
96438    ) -> TsFnOrConstructorType {
96439        <V as Fold>::fold_ts_fn_or_constructor_type(&mut **self, node)
96440    }
96441
96442    #[inline]
96443    fn fold_ts_fn_param(&mut self, node: TsFnParam) -> TsFnParam {
96444        <V as Fold>::fold_ts_fn_param(&mut **self, node)
96445    }
96446
96447    #[inline]
96448    fn fold_ts_fn_params(&mut self, node: Vec<TsFnParam>) -> Vec<TsFnParam> {
96449        <V as Fold>::fold_ts_fn_params(&mut **self, node)
96450    }
96451
96452    #[inline]
96453    fn fold_ts_fn_type(&mut self, node: TsFnType) -> TsFnType {
96454        <V as Fold>::fold_ts_fn_type(&mut **self, node)
96455    }
96456
96457    #[inline]
96458    fn fold_ts_getter_signature(&mut self, node: TsGetterSignature) -> TsGetterSignature {
96459        <V as Fold>::fold_ts_getter_signature(&mut **self, node)
96460    }
96461
96462    #[inline]
96463    fn fold_ts_import_call_options(&mut self, node: TsImportCallOptions) -> TsImportCallOptions {
96464        <V as Fold>::fold_ts_import_call_options(&mut **self, node)
96465    }
96466
96467    #[inline]
96468    fn fold_ts_import_equals_decl(&mut self, node: TsImportEqualsDecl) -> TsImportEqualsDecl {
96469        <V as Fold>::fold_ts_import_equals_decl(&mut **self, node)
96470    }
96471
96472    #[inline]
96473    fn fold_ts_import_type(&mut self, node: TsImportType) -> TsImportType {
96474        <V as Fold>::fold_ts_import_type(&mut **self, node)
96475    }
96476
96477    #[inline]
96478    fn fold_ts_index_signature(&mut self, node: TsIndexSignature) -> TsIndexSignature {
96479        <V as Fold>::fold_ts_index_signature(&mut **self, node)
96480    }
96481
96482    #[inline]
96483    fn fold_ts_indexed_access_type(&mut self, node: TsIndexedAccessType) -> TsIndexedAccessType {
96484        <V as Fold>::fold_ts_indexed_access_type(&mut **self, node)
96485    }
96486
96487    #[inline]
96488    fn fold_ts_infer_type(&mut self, node: TsInferType) -> TsInferType {
96489        <V as Fold>::fold_ts_infer_type(&mut **self, node)
96490    }
96491
96492    #[inline]
96493    fn fold_ts_instantiation(&mut self, node: TsInstantiation) -> TsInstantiation {
96494        <V as Fold>::fold_ts_instantiation(&mut **self, node)
96495    }
96496
96497    #[inline]
96498    fn fold_ts_interface_body(&mut self, node: TsInterfaceBody) -> TsInterfaceBody {
96499        <V as Fold>::fold_ts_interface_body(&mut **self, node)
96500    }
96501
96502    #[inline]
96503    fn fold_ts_interface_decl(&mut self, node: TsInterfaceDecl) -> TsInterfaceDecl {
96504        <V as Fold>::fold_ts_interface_decl(&mut **self, node)
96505    }
96506
96507    #[inline]
96508    fn fold_ts_intersection_type(&mut self, node: TsIntersectionType) -> TsIntersectionType {
96509        <V as Fold>::fold_ts_intersection_type(&mut **self, node)
96510    }
96511
96512    #[inline]
96513    fn fold_ts_keyword_type(&mut self, node: TsKeywordType) -> TsKeywordType {
96514        <V as Fold>::fold_ts_keyword_type(&mut **self, node)
96515    }
96516
96517    #[inline]
96518    fn fold_ts_keyword_type_kind(&mut self, node: TsKeywordTypeKind) -> TsKeywordTypeKind {
96519        <V as Fold>::fold_ts_keyword_type_kind(&mut **self, node)
96520    }
96521
96522    #[inline]
96523    fn fold_ts_lit(&mut self, node: TsLit) -> TsLit {
96524        <V as Fold>::fold_ts_lit(&mut **self, node)
96525    }
96526
96527    #[inline]
96528    fn fold_ts_lit_type(&mut self, node: TsLitType) -> TsLitType {
96529        <V as Fold>::fold_ts_lit_type(&mut **self, node)
96530    }
96531
96532    #[inline]
96533    fn fold_ts_mapped_type(&mut self, node: TsMappedType) -> TsMappedType {
96534        <V as Fold>::fold_ts_mapped_type(&mut **self, node)
96535    }
96536
96537    #[inline]
96538    fn fold_ts_method_signature(&mut self, node: TsMethodSignature) -> TsMethodSignature {
96539        <V as Fold>::fold_ts_method_signature(&mut **self, node)
96540    }
96541
96542    #[inline]
96543    fn fold_ts_module_block(&mut self, node: TsModuleBlock) -> TsModuleBlock {
96544        <V as Fold>::fold_ts_module_block(&mut **self, node)
96545    }
96546
96547    #[inline]
96548    fn fold_ts_module_decl(&mut self, node: TsModuleDecl) -> TsModuleDecl {
96549        <V as Fold>::fold_ts_module_decl(&mut **self, node)
96550    }
96551
96552    #[inline]
96553    fn fold_ts_module_name(&mut self, node: TsModuleName) -> TsModuleName {
96554        <V as Fold>::fold_ts_module_name(&mut **self, node)
96555    }
96556
96557    #[inline]
96558    fn fold_ts_module_ref(&mut self, node: TsModuleRef) -> TsModuleRef {
96559        <V as Fold>::fold_ts_module_ref(&mut **self, node)
96560    }
96561
96562    #[inline]
96563    fn fold_ts_namespace_body(&mut self, node: TsNamespaceBody) -> TsNamespaceBody {
96564        <V as Fold>::fold_ts_namespace_body(&mut **self, node)
96565    }
96566
96567    #[inline]
96568    fn fold_ts_namespace_decl(&mut self, node: TsNamespaceDecl) -> TsNamespaceDecl {
96569        <V as Fold>::fold_ts_namespace_decl(&mut **self, node)
96570    }
96571
96572    #[inline]
96573    fn fold_ts_namespace_export_decl(
96574        &mut self,
96575        node: TsNamespaceExportDecl,
96576    ) -> TsNamespaceExportDecl {
96577        <V as Fold>::fold_ts_namespace_export_decl(&mut **self, node)
96578    }
96579
96580    #[inline]
96581    fn fold_ts_non_null_expr(&mut self, node: TsNonNullExpr) -> TsNonNullExpr {
96582        <V as Fold>::fold_ts_non_null_expr(&mut **self, node)
96583    }
96584
96585    #[inline]
96586    fn fold_ts_optional_type(&mut self, node: TsOptionalType) -> TsOptionalType {
96587        <V as Fold>::fold_ts_optional_type(&mut **self, node)
96588    }
96589
96590    #[inline]
96591    fn fold_ts_param_prop(&mut self, node: TsParamProp) -> TsParamProp {
96592        <V as Fold>::fold_ts_param_prop(&mut **self, node)
96593    }
96594
96595    #[inline]
96596    fn fold_ts_param_prop_param(&mut self, node: TsParamPropParam) -> TsParamPropParam {
96597        <V as Fold>::fold_ts_param_prop_param(&mut **self, node)
96598    }
96599
96600    #[inline]
96601    fn fold_ts_parenthesized_type(&mut self, node: TsParenthesizedType) -> TsParenthesizedType {
96602        <V as Fold>::fold_ts_parenthesized_type(&mut **self, node)
96603    }
96604
96605    #[inline]
96606    fn fold_ts_property_signature(&mut self, node: TsPropertySignature) -> TsPropertySignature {
96607        <V as Fold>::fold_ts_property_signature(&mut **self, node)
96608    }
96609
96610    #[inline]
96611    fn fold_ts_qualified_name(&mut self, node: TsQualifiedName) -> TsQualifiedName {
96612        <V as Fold>::fold_ts_qualified_name(&mut **self, node)
96613    }
96614
96615    #[inline]
96616    fn fold_ts_rest_type(&mut self, node: TsRestType) -> TsRestType {
96617        <V as Fold>::fold_ts_rest_type(&mut **self, node)
96618    }
96619
96620    #[inline]
96621    fn fold_ts_satisfies_expr(&mut self, node: TsSatisfiesExpr) -> TsSatisfiesExpr {
96622        <V as Fold>::fold_ts_satisfies_expr(&mut **self, node)
96623    }
96624
96625    #[inline]
96626    fn fold_ts_setter_signature(&mut self, node: TsSetterSignature) -> TsSetterSignature {
96627        <V as Fold>::fold_ts_setter_signature(&mut **self, node)
96628    }
96629
96630    #[inline]
96631    fn fold_ts_this_type(&mut self, node: TsThisType) -> TsThisType {
96632        <V as Fold>::fold_ts_this_type(&mut **self, node)
96633    }
96634
96635    #[inline]
96636    fn fold_ts_this_type_or_ident(&mut self, node: TsThisTypeOrIdent) -> TsThisTypeOrIdent {
96637        <V as Fold>::fold_ts_this_type_or_ident(&mut **self, node)
96638    }
96639
96640    #[inline]
96641    fn fold_ts_tpl_lit_type(&mut self, node: TsTplLitType) -> TsTplLitType {
96642        <V as Fold>::fold_ts_tpl_lit_type(&mut **self, node)
96643    }
96644
96645    #[inline]
96646    fn fold_ts_tuple_element(&mut self, node: TsTupleElement) -> TsTupleElement {
96647        <V as Fold>::fold_ts_tuple_element(&mut **self, node)
96648    }
96649
96650    #[inline]
96651    fn fold_ts_tuple_elements(&mut self, node: Vec<TsTupleElement>) -> Vec<TsTupleElement> {
96652        <V as Fold>::fold_ts_tuple_elements(&mut **self, node)
96653    }
96654
96655    #[inline]
96656    fn fold_ts_tuple_type(&mut self, node: TsTupleType) -> TsTupleType {
96657        <V as Fold>::fold_ts_tuple_type(&mut **self, node)
96658    }
96659
96660    #[inline]
96661    fn fold_ts_type(&mut self, node: TsType) -> TsType {
96662        <V as Fold>::fold_ts_type(&mut **self, node)
96663    }
96664
96665    #[inline]
96666    fn fold_ts_type_alias_decl(&mut self, node: TsTypeAliasDecl) -> TsTypeAliasDecl {
96667        <V as Fold>::fold_ts_type_alias_decl(&mut **self, node)
96668    }
96669
96670    #[inline]
96671    fn fold_ts_type_ann(&mut self, node: TsTypeAnn) -> TsTypeAnn {
96672        <V as Fold>::fold_ts_type_ann(&mut **self, node)
96673    }
96674
96675    #[inline]
96676    fn fold_ts_type_assertion(&mut self, node: TsTypeAssertion) -> TsTypeAssertion {
96677        <V as Fold>::fold_ts_type_assertion(&mut **self, node)
96678    }
96679
96680    #[inline]
96681    fn fold_ts_type_element(&mut self, node: TsTypeElement) -> TsTypeElement {
96682        <V as Fold>::fold_ts_type_element(&mut **self, node)
96683    }
96684
96685    #[inline]
96686    fn fold_ts_type_elements(&mut self, node: Vec<TsTypeElement>) -> Vec<TsTypeElement> {
96687        <V as Fold>::fold_ts_type_elements(&mut **self, node)
96688    }
96689
96690    #[inline]
96691    fn fold_ts_type_lit(&mut self, node: TsTypeLit) -> TsTypeLit {
96692        <V as Fold>::fold_ts_type_lit(&mut **self, node)
96693    }
96694
96695    #[inline]
96696    fn fold_ts_type_operator(&mut self, node: TsTypeOperator) -> TsTypeOperator {
96697        <V as Fold>::fold_ts_type_operator(&mut **self, node)
96698    }
96699
96700    #[inline]
96701    fn fold_ts_type_operator_op(&mut self, node: TsTypeOperatorOp) -> TsTypeOperatorOp {
96702        <V as Fold>::fold_ts_type_operator_op(&mut **self, node)
96703    }
96704
96705    #[inline]
96706    fn fold_ts_type_param(&mut self, node: TsTypeParam) -> TsTypeParam {
96707        <V as Fold>::fold_ts_type_param(&mut **self, node)
96708    }
96709
96710    #[inline]
96711    fn fold_ts_type_param_decl(&mut self, node: TsTypeParamDecl) -> TsTypeParamDecl {
96712        <V as Fold>::fold_ts_type_param_decl(&mut **self, node)
96713    }
96714
96715    #[inline]
96716    fn fold_ts_type_param_instantiation(
96717        &mut self,
96718        node: TsTypeParamInstantiation,
96719    ) -> TsTypeParamInstantiation {
96720        <V as Fold>::fold_ts_type_param_instantiation(&mut **self, node)
96721    }
96722
96723    #[inline]
96724    fn fold_ts_type_params(&mut self, node: Vec<TsTypeParam>) -> Vec<TsTypeParam> {
96725        <V as Fold>::fold_ts_type_params(&mut **self, node)
96726    }
96727
96728    #[inline]
96729    fn fold_ts_type_predicate(&mut self, node: TsTypePredicate) -> TsTypePredicate {
96730        <V as Fold>::fold_ts_type_predicate(&mut **self, node)
96731    }
96732
96733    #[inline]
96734    fn fold_ts_type_query(&mut self, node: TsTypeQuery) -> TsTypeQuery {
96735        <V as Fold>::fold_ts_type_query(&mut **self, node)
96736    }
96737
96738    #[inline]
96739    fn fold_ts_type_query_expr(&mut self, node: TsTypeQueryExpr) -> TsTypeQueryExpr {
96740        <V as Fold>::fold_ts_type_query_expr(&mut **self, node)
96741    }
96742
96743    #[inline]
96744    fn fold_ts_type_ref(&mut self, node: TsTypeRef) -> TsTypeRef {
96745        <V as Fold>::fold_ts_type_ref(&mut **self, node)
96746    }
96747
96748    #[inline]
96749    fn fold_ts_types(&mut self, node: Vec<Box<TsType>>) -> Vec<Box<TsType>> {
96750        <V as Fold>::fold_ts_types(&mut **self, node)
96751    }
96752
96753    #[inline]
96754    fn fold_ts_union_or_intersection_type(
96755        &mut self,
96756        node: TsUnionOrIntersectionType,
96757    ) -> TsUnionOrIntersectionType {
96758        <V as Fold>::fold_ts_union_or_intersection_type(&mut **self, node)
96759    }
96760
96761    #[inline]
96762    fn fold_ts_union_type(&mut self, node: TsUnionType) -> TsUnionType {
96763        <V as Fold>::fold_ts_union_type(&mut **self, node)
96764    }
96765
96766    #[inline]
96767    fn fold_unary_expr(&mut self, node: UnaryExpr) -> UnaryExpr {
96768        <V as Fold>::fold_unary_expr(&mut **self, node)
96769    }
96770
96771    #[inline]
96772    fn fold_unary_op(&mut self, node: UnaryOp) -> UnaryOp {
96773        <V as Fold>::fold_unary_op(&mut **self, node)
96774    }
96775
96776    #[inline]
96777    fn fold_update_expr(&mut self, node: UpdateExpr) -> UpdateExpr {
96778        <V as Fold>::fold_update_expr(&mut **self, node)
96779    }
96780
96781    #[inline]
96782    fn fold_update_op(&mut self, node: UpdateOp) -> UpdateOp {
96783        <V as Fold>::fold_update_op(&mut **self, node)
96784    }
96785
96786    #[inline]
96787    fn fold_using_decl(&mut self, node: UsingDecl) -> UsingDecl {
96788        <V as Fold>::fold_using_decl(&mut **self, node)
96789    }
96790
96791    #[inline]
96792    fn fold_var_decl(&mut self, node: VarDecl) -> VarDecl {
96793        <V as Fold>::fold_var_decl(&mut **self, node)
96794    }
96795
96796    #[inline]
96797    fn fold_var_decl_kind(&mut self, node: VarDeclKind) -> VarDeclKind {
96798        <V as Fold>::fold_var_decl_kind(&mut **self, node)
96799    }
96800
96801    #[inline]
96802    fn fold_var_decl_or_expr(&mut self, node: VarDeclOrExpr) -> VarDeclOrExpr {
96803        <V as Fold>::fold_var_decl_or_expr(&mut **self, node)
96804    }
96805
96806    #[inline]
96807    fn fold_var_declarator(&mut self, node: VarDeclarator) -> VarDeclarator {
96808        <V as Fold>::fold_var_declarator(&mut **self, node)
96809    }
96810
96811    #[inline]
96812    fn fold_var_declarators(&mut self, node: Vec<VarDeclarator>) -> Vec<VarDeclarator> {
96813        <V as Fold>::fold_var_declarators(&mut **self, node)
96814    }
96815
96816    #[inline]
96817    fn fold_while_stmt(&mut self, node: WhileStmt) -> WhileStmt {
96818        <V as Fold>::fold_while_stmt(&mut **self, node)
96819    }
96820
96821    #[inline]
96822    fn fold_with_stmt(&mut self, node: WithStmt) -> WithStmt {
96823        <V as Fold>::fold_with_stmt(&mut **self, node)
96824    }
96825
96826    #[inline]
96827    fn fold_yield_expr(&mut self, node: YieldExpr) -> YieldExpr {
96828        <V as Fold>::fold_yield_expr(&mut **self, node)
96829    }
96830}
96831impl<A, B> Fold for ::swc_visit::Either<A, B>
96832where
96833    A: Fold,
96834    B: Fold,
96835{
96836    #[inline]
96837    fn fold_accessibility(&mut self, node: Accessibility) -> Accessibility {
96838        match self {
96839            swc_visit::Either::Left(visitor) => Fold::fold_accessibility(visitor, node),
96840            swc_visit::Either::Right(visitor) => Fold::fold_accessibility(visitor, node),
96841        }
96842    }
96843
96844    #[inline]
96845    fn fold_array_lit(&mut self, node: ArrayLit) -> ArrayLit {
96846        match self {
96847            swc_visit::Either::Left(visitor) => Fold::fold_array_lit(visitor, node),
96848            swc_visit::Either::Right(visitor) => Fold::fold_array_lit(visitor, node),
96849        }
96850    }
96851
96852    #[inline]
96853    fn fold_array_pat(&mut self, node: ArrayPat) -> ArrayPat {
96854        match self {
96855            swc_visit::Either::Left(visitor) => Fold::fold_array_pat(visitor, node),
96856            swc_visit::Either::Right(visitor) => Fold::fold_array_pat(visitor, node),
96857        }
96858    }
96859
96860    #[inline]
96861    fn fold_arrow_expr(&mut self, node: ArrowExpr) -> ArrowExpr {
96862        match self {
96863            swc_visit::Either::Left(visitor) => Fold::fold_arrow_expr(visitor, node),
96864            swc_visit::Either::Right(visitor) => Fold::fold_arrow_expr(visitor, node),
96865        }
96866    }
96867
96868    #[inline]
96869    fn fold_assign_expr(&mut self, node: AssignExpr) -> AssignExpr {
96870        match self {
96871            swc_visit::Either::Left(visitor) => Fold::fold_assign_expr(visitor, node),
96872            swc_visit::Either::Right(visitor) => Fold::fold_assign_expr(visitor, node),
96873        }
96874    }
96875
96876    #[inline]
96877    fn fold_assign_op(&mut self, node: AssignOp) -> AssignOp {
96878        match self {
96879            swc_visit::Either::Left(visitor) => Fold::fold_assign_op(visitor, node),
96880            swc_visit::Either::Right(visitor) => Fold::fold_assign_op(visitor, node),
96881        }
96882    }
96883
96884    #[inline]
96885    fn fold_assign_pat(&mut self, node: AssignPat) -> AssignPat {
96886        match self {
96887            swc_visit::Either::Left(visitor) => Fold::fold_assign_pat(visitor, node),
96888            swc_visit::Either::Right(visitor) => Fold::fold_assign_pat(visitor, node),
96889        }
96890    }
96891
96892    #[inline]
96893    fn fold_assign_pat_prop(&mut self, node: AssignPatProp) -> AssignPatProp {
96894        match self {
96895            swc_visit::Either::Left(visitor) => Fold::fold_assign_pat_prop(visitor, node),
96896            swc_visit::Either::Right(visitor) => Fold::fold_assign_pat_prop(visitor, node),
96897        }
96898    }
96899
96900    #[inline]
96901    fn fold_assign_prop(&mut self, node: AssignProp) -> AssignProp {
96902        match self {
96903            swc_visit::Either::Left(visitor) => Fold::fold_assign_prop(visitor, node),
96904            swc_visit::Either::Right(visitor) => Fold::fold_assign_prop(visitor, node),
96905        }
96906    }
96907
96908    #[inline]
96909    fn fold_assign_target(&mut self, node: AssignTarget) -> AssignTarget {
96910        match self {
96911            swc_visit::Either::Left(visitor) => Fold::fold_assign_target(visitor, node),
96912            swc_visit::Either::Right(visitor) => Fold::fold_assign_target(visitor, node),
96913        }
96914    }
96915
96916    #[inline]
96917    fn fold_assign_target_pat(&mut self, node: AssignTargetPat) -> AssignTargetPat {
96918        match self {
96919            swc_visit::Either::Left(visitor) => Fold::fold_assign_target_pat(visitor, node),
96920            swc_visit::Either::Right(visitor) => Fold::fold_assign_target_pat(visitor, node),
96921        }
96922    }
96923
96924    #[inline]
96925    fn fold_atom(&mut self, node: swc_atoms::Atom) -> swc_atoms::Atom {
96926        match self {
96927            swc_visit::Either::Left(visitor) => Fold::fold_atom(visitor, node),
96928            swc_visit::Either::Right(visitor) => Fold::fold_atom(visitor, node),
96929        }
96930    }
96931
96932    #[inline]
96933    fn fold_auto_accessor(&mut self, node: AutoAccessor) -> AutoAccessor {
96934        match self {
96935            swc_visit::Either::Left(visitor) => Fold::fold_auto_accessor(visitor, node),
96936            swc_visit::Either::Right(visitor) => Fold::fold_auto_accessor(visitor, node),
96937        }
96938    }
96939
96940    #[inline]
96941    fn fold_await_expr(&mut self, node: AwaitExpr) -> AwaitExpr {
96942        match self {
96943            swc_visit::Either::Left(visitor) => Fold::fold_await_expr(visitor, node),
96944            swc_visit::Either::Right(visitor) => Fold::fold_await_expr(visitor, node),
96945        }
96946    }
96947
96948    #[inline]
96949    fn fold_big_int(&mut self, node: BigInt) -> BigInt {
96950        match self {
96951            swc_visit::Either::Left(visitor) => Fold::fold_big_int(visitor, node),
96952            swc_visit::Either::Right(visitor) => Fold::fold_big_int(visitor, node),
96953        }
96954    }
96955
96956    #[inline]
96957    fn fold_big_int_value(&mut self, node: BigIntValue) -> BigIntValue {
96958        match self {
96959            swc_visit::Either::Left(visitor) => Fold::fold_big_int_value(visitor, node),
96960            swc_visit::Either::Right(visitor) => Fold::fold_big_int_value(visitor, node),
96961        }
96962    }
96963
96964    #[inline]
96965    fn fold_bin_expr(&mut self, node: BinExpr) -> BinExpr {
96966        match self {
96967            swc_visit::Either::Left(visitor) => Fold::fold_bin_expr(visitor, node),
96968            swc_visit::Either::Right(visitor) => Fold::fold_bin_expr(visitor, node),
96969        }
96970    }
96971
96972    #[inline]
96973    fn fold_binary_op(&mut self, node: BinaryOp) -> BinaryOp {
96974        match self {
96975            swc_visit::Either::Left(visitor) => Fold::fold_binary_op(visitor, node),
96976            swc_visit::Either::Right(visitor) => Fold::fold_binary_op(visitor, node),
96977        }
96978    }
96979
96980    #[inline]
96981    fn fold_binding_ident(&mut self, node: BindingIdent) -> BindingIdent {
96982        match self {
96983            swc_visit::Either::Left(visitor) => Fold::fold_binding_ident(visitor, node),
96984            swc_visit::Either::Right(visitor) => Fold::fold_binding_ident(visitor, node),
96985        }
96986    }
96987
96988    #[inline]
96989    fn fold_block_stmt(&mut self, node: BlockStmt) -> BlockStmt {
96990        match self {
96991            swc_visit::Either::Left(visitor) => Fold::fold_block_stmt(visitor, node),
96992            swc_visit::Either::Right(visitor) => Fold::fold_block_stmt(visitor, node),
96993        }
96994    }
96995
96996    #[inline]
96997    fn fold_block_stmt_or_expr(&mut self, node: BlockStmtOrExpr) -> BlockStmtOrExpr {
96998        match self {
96999            swc_visit::Either::Left(visitor) => Fold::fold_block_stmt_or_expr(visitor, node),
97000            swc_visit::Either::Right(visitor) => Fold::fold_block_stmt_or_expr(visitor, node),
97001        }
97002    }
97003
97004    #[inline]
97005    fn fold_bool(&mut self, node: Bool) -> Bool {
97006        match self {
97007            swc_visit::Either::Left(visitor) => Fold::fold_bool(visitor, node),
97008            swc_visit::Either::Right(visitor) => Fold::fold_bool(visitor, node),
97009        }
97010    }
97011
97012    #[inline]
97013    fn fold_break_stmt(&mut self, node: BreakStmt) -> BreakStmt {
97014        match self {
97015            swc_visit::Either::Left(visitor) => Fold::fold_break_stmt(visitor, node),
97016            swc_visit::Either::Right(visitor) => Fold::fold_break_stmt(visitor, node),
97017        }
97018    }
97019
97020    #[inline]
97021    fn fold_call_expr(&mut self, node: CallExpr) -> CallExpr {
97022        match self {
97023            swc_visit::Either::Left(visitor) => Fold::fold_call_expr(visitor, node),
97024            swc_visit::Either::Right(visitor) => Fold::fold_call_expr(visitor, node),
97025        }
97026    }
97027
97028    #[inline]
97029    fn fold_callee(&mut self, node: Callee) -> Callee {
97030        match self {
97031            swc_visit::Either::Left(visitor) => Fold::fold_callee(visitor, node),
97032            swc_visit::Either::Right(visitor) => Fold::fold_callee(visitor, node),
97033        }
97034    }
97035
97036    #[inline]
97037    fn fold_catch_clause(&mut self, node: CatchClause) -> CatchClause {
97038        match self {
97039            swc_visit::Either::Left(visitor) => Fold::fold_catch_clause(visitor, node),
97040            swc_visit::Either::Right(visitor) => Fold::fold_catch_clause(visitor, node),
97041        }
97042    }
97043
97044    #[inline]
97045    fn fold_class(&mut self, node: Class) -> Class {
97046        match self {
97047            swc_visit::Either::Left(visitor) => Fold::fold_class(visitor, node),
97048            swc_visit::Either::Right(visitor) => Fold::fold_class(visitor, node),
97049        }
97050    }
97051
97052    #[inline]
97053    fn fold_class_decl(&mut self, node: ClassDecl) -> ClassDecl {
97054        match self {
97055            swc_visit::Either::Left(visitor) => Fold::fold_class_decl(visitor, node),
97056            swc_visit::Either::Right(visitor) => Fold::fold_class_decl(visitor, node),
97057        }
97058    }
97059
97060    #[inline]
97061    fn fold_class_expr(&mut self, node: ClassExpr) -> ClassExpr {
97062        match self {
97063            swc_visit::Either::Left(visitor) => Fold::fold_class_expr(visitor, node),
97064            swc_visit::Either::Right(visitor) => Fold::fold_class_expr(visitor, node),
97065        }
97066    }
97067
97068    #[inline]
97069    fn fold_class_member(&mut self, node: ClassMember) -> ClassMember {
97070        match self {
97071            swc_visit::Either::Left(visitor) => Fold::fold_class_member(visitor, node),
97072            swc_visit::Either::Right(visitor) => Fold::fold_class_member(visitor, node),
97073        }
97074    }
97075
97076    #[inline]
97077    fn fold_class_members(&mut self, node: Vec<ClassMember>) -> Vec<ClassMember> {
97078        match self {
97079            swc_visit::Either::Left(visitor) => Fold::fold_class_members(visitor, node),
97080            swc_visit::Either::Right(visitor) => Fold::fold_class_members(visitor, node),
97081        }
97082    }
97083
97084    #[inline]
97085    fn fold_class_method(&mut self, node: ClassMethod) -> ClassMethod {
97086        match self {
97087            swc_visit::Either::Left(visitor) => Fold::fold_class_method(visitor, node),
97088            swc_visit::Either::Right(visitor) => Fold::fold_class_method(visitor, node),
97089        }
97090    }
97091
97092    #[inline]
97093    fn fold_class_prop(&mut self, node: ClassProp) -> ClassProp {
97094        match self {
97095            swc_visit::Either::Left(visitor) => Fold::fold_class_prop(visitor, node),
97096            swc_visit::Either::Right(visitor) => Fold::fold_class_prop(visitor, node),
97097        }
97098    }
97099
97100    #[inline]
97101    fn fold_computed_prop_name(&mut self, node: ComputedPropName) -> ComputedPropName {
97102        match self {
97103            swc_visit::Either::Left(visitor) => Fold::fold_computed_prop_name(visitor, node),
97104            swc_visit::Either::Right(visitor) => Fold::fold_computed_prop_name(visitor, node),
97105        }
97106    }
97107
97108    #[inline]
97109    fn fold_cond_expr(&mut self, node: CondExpr) -> CondExpr {
97110        match self {
97111            swc_visit::Either::Left(visitor) => Fold::fold_cond_expr(visitor, node),
97112            swc_visit::Either::Right(visitor) => Fold::fold_cond_expr(visitor, node),
97113        }
97114    }
97115
97116    #[inline]
97117    fn fold_constructor(&mut self, node: Constructor) -> Constructor {
97118        match self {
97119            swc_visit::Either::Left(visitor) => Fold::fold_constructor(visitor, node),
97120            swc_visit::Either::Right(visitor) => Fold::fold_constructor(visitor, node),
97121        }
97122    }
97123
97124    #[inline]
97125    fn fold_continue_stmt(&mut self, node: ContinueStmt) -> ContinueStmt {
97126        match self {
97127            swc_visit::Either::Left(visitor) => Fold::fold_continue_stmt(visitor, node),
97128            swc_visit::Either::Right(visitor) => Fold::fold_continue_stmt(visitor, node),
97129        }
97130    }
97131
97132    #[inline]
97133    fn fold_debugger_stmt(&mut self, node: DebuggerStmt) -> DebuggerStmt {
97134        match self {
97135            swc_visit::Either::Left(visitor) => Fold::fold_debugger_stmt(visitor, node),
97136            swc_visit::Either::Right(visitor) => Fold::fold_debugger_stmt(visitor, node),
97137        }
97138    }
97139
97140    #[inline]
97141    fn fold_decl(&mut self, node: Decl) -> Decl {
97142        match self {
97143            swc_visit::Either::Left(visitor) => Fold::fold_decl(visitor, node),
97144            swc_visit::Either::Right(visitor) => Fold::fold_decl(visitor, node),
97145        }
97146    }
97147
97148    #[inline]
97149    fn fold_decorator(&mut self, node: Decorator) -> Decorator {
97150        match self {
97151            swc_visit::Either::Left(visitor) => Fold::fold_decorator(visitor, node),
97152            swc_visit::Either::Right(visitor) => Fold::fold_decorator(visitor, node),
97153        }
97154    }
97155
97156    #[inline]
97157    fn fold_decorators(&mut self, node: Vec<Decorator>) -> Vec<Decorator> {
97158        match self {
97159            swc_visit::Either::Left(visitor) => Fold::fold_decorators(visitor, node),
97160            swc_visit::Either::Right(visitor) => Fold::fold_decorators(visitor, node),
97161        }
97162    }
97163
97164    #[inline]
97165    fn fold_default_decl(&mut self, node: DefaultDecl) -> DefaultDecl {
97166        match self {
97167            swc_visit::Either::Left(visitor) => Fold::fold_default_decl(visitor, node),
97168            swc_visit::Either::Right(visitor) => Fold::fold_default_decl(visitor, node),
97169        }
97170    }
97171
97172    #[inline]
97173    fn fold_do_while_stmt(&mut self, node: DoWhileStmt) -> DoWhileStmt {
97174        match self {
97175            swc_visit::Either::Left(visitor) => Fold::fold_do_while_stmt(visitor, node),
97176            swc_visit::Either::Right(visitor) => Fold::fold_do_while_stmt(visitor, node),
97177        }
97178    }
97179
97180    #[inline]
97181    fn fold_empty_stmt(&mut self, node: EmptyStmt) -> EmptyStmt {
97182        match self {
97183            swc_visit::Either::Left(visitor) => Fold::fold_empty_stmt(visitor, node),
97184            swc_visit::Either::Right(visitor) => Fold::fold_empty_stmt(visitor, node),
97185        }
97186    }
97187
97188    #[inline]
97189    fn fold_export_all(&mut self, node: ExportAll) -> ExportAll {
97190        match self {
97191            swc_visit::Either::Left(visitor) => Fold::fold_export_all(visitor, node),
97192            swc_visit::Either::Right(visitor) => Fold::fold_export_all(visitor, node),
97193        }
97194    }
97195
97196    #[inline]
97197    fn fold_export_decl(&mut self, node: ExportDecl) -> ExportDecl {
97198        match self {
97199            swc_visit::Either::Left(visitor) => Fold::fold_export_decl(visitor, node),
97200            swc_visit::Either::Right(visitor) => Fold::fold_export_decl(visitor, node),
97201        }
97202    }
97203
97204    #[inline]
97205    fn fold_export_default_decl(&mut self, node: ExportDefaultDecl) -> ExportDefaultDecl {
97206        match self {
97207            swc_visit::Either::Left(visitor) => Fold::fold_export_default_decl(visitor, node),
97208            swc_visit::Either::Right(visitor) => Fold::fold_export_default_decl(visitor, node),
97209        }
97210    }
97211
97212    #[inline]
97213    fn fold_export_default_expr(&mut self, node: ExportDefaultExpr) -> ExportDefaultExpr {
97214        match self {
97215            swc_visit::Either::Left(visitor) => Fold::fold_export_default_expr(visitor, node),
97216            swc_visit::Either::Right(visitor) => Fold::fold_export_default_expr(visitor, node),
97217        }
97218    }
97219
97220    #[inline]
97221    fn fold_export_default_specifier(
97222        &mut self,
97223        node: ExportDefaultSpecifier,
97224    ) -> ExportDefaultSpecifier {
97225        match self {
97226            swc_visit::Either::Left(visitor) => Fold::fold_export_default_specifier(visitor, node),
97227            swc_visit::Either::Right(visitor) => Fold::fold_export_default_specifier(visitor, node),
97228        }
97229    }
97230
97231    #[inline]
97232    fn fold_export_named_specifier(&mut self, node: ExportNamedSpecifier) -> ExportNamedSpecifier {
97233        match self {
97234            swc_visit::Either::Left(visitor) => Fold::fold_export_named_specifier(visitor, node),
97235            swc_visit::Either::Right(visitor) => Fold::fold_export_named_specifier(visitor, node),
97236        }
97237    }
97238
97239    #[inline]
97240    fn fold_export_namespace_specifier(
97241        &mut self,
97242        node: ExportNamespaceSpecifier,
97243    ) -> ExportNamespaceSpecifier {
97244        match self {
97245            swc_visit::Either::Left(visitor) => {
97246                Fold::fold_export_namespace_specifier(visitor, node)
97247            }
97248            swc_visit::Either::Right(visitor) => {
97249                Fold::fold_export_namespace_specifier(visitor, node)
97250            }
97251        }
97252    }
97253
97254    #[inline]
97255    fn fold_export_specifier(&mut self, node: ExportSpecifier) -> ExportSpecifier {
97256        match self {
97257            swc_visit::Either::Left(visitor) => Fold::fold_export_specifier(visitor, node),
97258            swc_visit::Either::Right(visitor) => Fold::fold_export_specifier(visitor, node),
97259        }
97260    }
97261
97262    #[inline]
97263    fn fold_export_specifiers(&mut self, node: Vec<ExportSpecifier>) -> Vec<ExportSpecifier> {
97264        match self {
97265            swc_visit::Either::Left(visitor) => Fold::fold_export_specifiers(visitor, node),
97266            swc_visit::Either::Right(visitor) => Fold::fold_export_specifiers(visitor, node),
97267        }
97268    }
97269
97270    #[inline]
97271    fn fold_expr(&mut self, node: Expr) -> Expr {
97272        match self {
97273            swc_visit::Either::Left(visitor) => Fold::fold_expr(visitor, node),
97274            swc_visit::Either::Right(visitor) => Fold::fold_expr(visitor, node),
97275        }
97276    }
97277
97278    #[inline]
97279    fn fold_expr_or_spread(&mut self, node: ExprOrSpread) -> ExprOrSpread {
97280        match self {
97281            swc_visit::Either::Left(visitor) => Fold::fold_expr_or_spread(visitor, node),
97282            swc_visit::Either::Right(visitor) => Fold::fold_expr_or_spread(visitor, node),
97283        }
97284    }
97285
97286    #[inline]
97287    fn fold_expr_or_spreads(&mut self, node: Vec<ExprOrSpread>) -> Vec<ExprOrSpread> {
97288        match self {
97289            swc_visit::Either::Left(visitor) => Fold::fold_expr_or_spreads(visitor, node),
97290            swc_visit::Either::Right(visitor) => Fold::fold_expr_or_spreads(visitor, node),
97291        }
97292    }
97293
97294    #[inline]
97295    fn fold_expr_stmt(&mut self, node: ExprStmt) -> ExprStmt {
97296        match self {
97297            swc_visit::Either::Left(visitor) => Fold::fold_expr_stmt(visitor, node),
97298            swc_visit::Either::Right(visitor) => Fold::fold_expr_stmt(visitor, node),
97299        }
97300    }
97301
97302    #[inline]
97303    fn fold_exprs(&mut self, node: Vec<Box<Expr>>) -> Vec<Box<Expr>> {
97304        match self {
97305            swc_visit::Either::Left(visitor) => Fold::fold_exprs(visitor, node),
97306            swc_visit::Either::Right(visitor) => Fold::fold_exprs(visitor, node),
97307        }
97308    }
97309
97310    #[inline]
97311    fn fold_fn_decl(&mut self, node: FnDecl) -> FnDecl {
97312        match self {
97313            swc_visit::Either::Left(visitor) => Fold::fold_fn_decl(visitor, node),
97314            swc_visit::Either::Right(visitor) => Fold::fold_fn_decl(visitor, node),
97315        }
97316    }
97317
97318    #[inline]
97319    fn fold_fn_expr(&mut self, node: FnExpr) -> FnExpr {
97320        match self {
97321            swc_visit::Either::Left(visitor) => Fold::fold_fn_expr(visitor, node),
97322            swc_visit::Either::Right(visitor) => Fold::fold_fn_expr(visitor, node),
97323        }
97324    }
97325
97326    #[inline]
97327    fn fold_for_head(&mut self, node: ForHead) -> ForHead {
97328        match self {
97329            swc_visit::Either::Left(visitor) => Fold::fold_for_head(visitor, node),
97330            swc_visit::Either::Right(visitor) => Fold::fold_for_head(visitor, node),
97331        }
97332    }
97333
97334    #[inline]
97335    fn fold_for_in_stmt(&mut self, node: ForInStmt) -> ForInStmt {
97336        match self {
97337            swc_visit::Either::Left(visitor) => Fold::fold_for_in_stmt(visitor, node),
97338            swc_visit::Either::Right(visitor) => Fold::fold_for_in_stmt(visitor, node),
97339        }
97340    }
97341
97342    #[inline]
97343    fn fold_for_of_stmt(&mut self, node: ForOfStmt) -> ForOfStmt {
97344        match self {
97345            swc_visit::Either::Left(visitor) => Fold::fold_for_of_stmt(visitor, node),
97346            swc_visit::Either::Right(visitor) => Fold::fold_for_of_stmt(visitor, node),
97347        }
97348    }
97349
97350    #[inline]
97351    fn fold_for_stmt(&mut self, node: ForStmt) -> ForStmt {
97352        match self {
97353            swc_visit::Either::Left(visitor) => Fold::fold_for_stmt(visitor, node),
97354            swc_visit::Either::Right(visitor) => Fold::fold_for_stmt(visitor, node),
97355        }
97356    }
97357
97358    #[inline]
97359    fn fold_function(&mut self, node: Function) -> Function {
97360        match self {
97361            swc_visit::Either::Left(visitor) => Fold::fold_function(visitor, node),
97362            swc_visit::Either::Right(visitor) => Fold::fold_function(visitor, node),
97363        }
97364    }
97365
97366    #[inline]
97367    fn fold_getter_prop(&mut self, node: GetterProp) -> GetterProp {
97368        match self {
97369            swc_visit::Either::Left(visitor) => Fold::fold_getter_prop(visitor, node),
97370            swc_visit::Either::Right(visitor) => Fold::fold_getter_prop(visitor, node),
97371        }
97372    }
97373
97374    #[inline]
97375    fn fold_ident(&mut self, node: Ident) -> Ident {
97376        match self {
97377            swc_visit::Either::Left(visitor) => Fold::fold_ident(visitor, node),
97378            swc_visit::Either::Right(visitor) => Fold::fold_ident(visitor, node),
97379        }
97380    }
97381
97382    #[inline]
97383    fn fold_ident_name(&mut self, node: IdentName) -> IdentName {
97384        match self {
97385            swc_visit::Either::Left(visitor) => Fold::fold_ident_name(visitor, node),
97386            swc_visit::Either::Right(visitor) => Fold::fold_ident_name(visitor, node),
97387        }
97388    }
97389
97390    #[inline]
97391    fn fold_if_stmt(&mut self, node: IfStmt) -> IfStmt {
97392        match self {
97393            swc_visit::Either::Left(visitor) => Fold::fold_if_stmt(visitor, node),
97394            swc_visit::Either::Right(visitor) => Fold::fold_if_stmt(visitor, node),
97395        }
97396    }
97397
97398    #[inline]
97399    fn fold_import(&mut self, node: Import) -> Import {
97400        match self {
97401            swc_visit::Either::Left(visitor) => Fold::fold_import(visitor, node),
97402            swc_visit::Either::Right(visitor) => Fold::fold_import(visitor, node),
97403        }
97404    }
97405
97406    #[inline]
97407    fn fold_import_decl(&mut self, node: ImportDecl) -> ImportDecl {
97408        match self {
97409            swc_visit::Either::Left(visitor) => Fold::fold_import_decl(visitor, node),
97410            swc_visit::Either::Right(visitor) => Fold::fold_import_decl(visitor, node),
97411        }
97412    }
97413
97414    #[inline]
97415    fn fold_import_default_specifier(
97416        &mut self,
97417        node: ImportDefaultSpecifier,
97418    ) -> ImportDefaultSpecifier {
97419        match self {
97420            swc_visit::Either::Left(visitor) => Fold::fold_import_default_specifier(visitor, node),
97421            swc_visit::Either::Right(visitor) => Fold::fold_import_default_specifier(visitor, node),
97422        }
97423    }
97424
97425    #[inline]
97426    fn fold_import_named_specifier(&mut self, node: ImportNamedSpecifier) -> ImportNamedSpecifier {
97427        match self {
97428            swc_visit::Either::Left(visitor) => Fold::fold_import_named_specifier(visitor, node),
97429            swc_visit::Either::Right(visitor) => Fold::fold_import_named_specifier(visitor, node),
97430        }
97431    }
97432
97433    #[inline]
97434    fn fold_import_phase(&mut self, node: ImportPhase) -> ImportPhase {
97435        match self {
97436            swc_visit::Either::Left(visitor) => Fold::fold_import_phase(visitor, node),
97437            swc_visit::Either::Right(visitor) => Fold::fold_import_phase(visitor, node),
97438        }
97439    }
97440
97441    #[inline]
97442    fn fold_import_specifier(&mut self, node: ImportSpecifier) -> ImportSpecifier {
97443        match self {
97444            swc_visit::Either::Left(visitor) => Fold::fold_import_specifier(visitor, node),
97445            swc_visit::Either::Right(visitor) => Fold::fold_import_specifier(visitor, node),
97446        }
97447    }
97448
97449    #[inline]
97450    fn fold_import_specifiers(&mut self, node: Vec<ImportSpecifier>) -> Vec<ImportSpecifier> {
97451        match self {
97452            swc_visit::Either::Left(visitor) => Fold::fold_import_specifiers(visitor, node),
97453            swc_visit::Either::Right(visitor) => Fold::fold_import_specifiers(visitor, node),
97454        }
97455    }
97456
97457    #[inline]
97458    fn fold_import_star_as_specifier(
97459        &mut self,
97460        node: ImportStarAsSpecifier,
97461    ) -> ImportStarAsSpecifier {
97462        match self {
97463            swc_visit::Either::Left(visitor) => Fold::fold_import_star_as_specifier(visitor, node),
97464            swc_visit::Either::Right(visitor) => Fold::fold_import_star_as_specifier(visitor, node),
97465        }
97466    }
97467
97468    #[inline]
97469    fn fold_import_with(&mut self, node: ImportWith) -> ImportWith {
97470        match self {
97471            swc_visit::Either::Left(visitor) => Fold::fold_import_with(visitor, node),
97472            swc_visit::Either::Right(visitor) => Fold::fold_import_with(visitor, node),
97473        }
97474    }
97475
97476    #[inline]
97477    fn fold_import_with_item(&mut self, node: ImportWithItem) -> ImportWithItem {
97478        match self {
97479            swc_visit::Either::Left(visitor) => Fold::fold_import_with_item(visitor, node),
97480            swc_visit::Either::Right(visitor) => Fold::fold_import_with_item(visitor, node),
97481        }
97482    }
97483
97484    #[inline]
97485    fn fold_import_with_items(&mut self, node: Vec<ImportWithItem>) -> Vec<ImportWithItem> {
97486        match self {
97487            swc_visit::Either::Left(visitor) => Fold::fold_import_with_items(visitor, node),
97488            swc_visit::Either::Right(visitor) => Fold::fold_import_with_items(visitor, node),
97489        }
97490    }
97491
97492    #[inline]
97493    fn fold_invalid(&mut self, node: Invalid) -> Invalid {
97494        match self {
97495            swc_visit::Either::Left(visitor) => Fold::fold_invalid(visitor, node),
97496            swc_visit::Either::Right(visitor) => Fold::fold_invalid(visitor, node),
97497        }
97498    }
97499
97500    #[inline]
97501    fn fold_jsx_attr(&mut self, node: JSXAttr) -> JSXAttr {
97502        match self {
97503            swc_visit::Either::Left(visitor) => Fold::fold_jsx_attr(visitor, node),
97504            swc_visit::Either::Right(visitor) => Fold::fold_jsx_attr(visitor, node),
97505        }
97506    }
97507
97508    #[inline]
97509    fn fold_jsx_attr_name(&mut self, node: JSXAttrName) -> JSXAttrName {
97510        match self {
97511            swc_visit::Either::Left(visitor) => Fold::fold_jsx_attr_name(visitor, node),
97512            swc_visit::Either::Right(visitor) => Fold::fold_jsx_attr_name(visitor, node),
97513        }
97514    }
97515
97516    #[inline]
97517    fn fold_jsx_attr_or_spread(&mut self, node: JSXAttrOrSpread) -> JSXAttrOrSpread {
97518        match self {
97519            swc_visit::Either::Left(visitor) => Fold::fold_jsx_attr_or_spread(visitor, node),
97520            swc_visit::Either::Right(visitor) => Fold::fold_jsx_attr_or_spread(visitor, node),
97521        }
97522    }
97523
97524    #[inline]
97525    fn fold_jsx_attr_or_spreads(&mut self, node: Vec<JSXAttrOrSpread>) -> Vec<JSXAttrOrSpread> {
97526        match self {
97527            swc_visit::Either::Left(visitor) => Fold::fold_jsx_attr_or_spreads(visitor, node),
97528            swc_visit::Either::Right(visitor) => Fold::fold_jsx_attr_or_spreads(visitor, node),
97529        }
97530    }
97531
97532    #[inline]
97533    fn fold_jsx_attr_value(&mut self, node: JSXAttrValue) -> JSXAttrValue {
97534        match self {
97535            swc_visit::Either::Left(visitor) => Fold::fold_jsx_attr_value(visitor, node),
97536            swc_visit::Either::Right(visitor) => Fold::fold_jsx_attr_value(visitor, node),
97537        }
97538    }
97539
97540    #[inline]
97541    fn fold_jsx_closing_element(&mut self, node: JSXClosingElement) -> JSXClosingElement {
97542        match self {
97543            swc_visit::Either::Left(visitor) => Fold::fold_jsx_closing_element(visitor, node),
97544            swc_visit::Either::Right(visitor) => Fold::fold_jsx_closing_element(visitor, node),
97545        }
97546    }
97547
97548    #[inline]
97549    fn fold_jsx_closing_fragment(&mut self, node: JSXClosingFragment) -> JSXClosingFragment {
97550        match self {
97551            swc_visit::Either::Left(visitor) => Fold::fold_jsx_closing_fragment(visitor, node),
97552            swc_visit::Either::Right(visitor) => Fold::fold_jsx_closing_fragment(visitor, node),
97553        }
97554    }
97555
97556    #[inline]
97557    fn fold_jsx_element(&mut self, node: JSXElement) -> JSXElement {
97558        match self {
97559            swc_visit::Either::Left(visitor) => Fold::fold_jsx_element(visitor, node),
97560            swc_visit::Either::Right(visitor) => Fold::fold_jsx_element(visitor, node),
97561        }
97562    }
97563
97564    #[inline]
97565    fn fold_jsx_element_child(&mut self, node: JSXElementChild) -> JSXElementChild {
97566        match self {
97567            swc_visit::Either::Left(visitor) => Fold::fold_jsx_element_child(visitor, node),
97568            swc_visit::Either::Right(visitor) => Fold::fold_jsx_element_child(visitor, node),
97569        }
97570    }
97571
97572    #[inline]
97573    fn fold_jsx_element_childs(&mut self, node: Vec<JSXElementChild>) -> Vec<JSXElementChild> {
97574        match self {
97575            swc_visit::Either::Left(visitor) => Fold::fold_jsx_element_childs(visitor, node),
97576            swc_visit::Either::Right(visitor) => Fold::fold_jsx_element_childs(visitor, node),
97577        }
97578    }
97579
97580    #[inline]
97581    fn fold_jsx_element_name(&mut self, node: JSXElementName) -> JSXElementName {
97582        match self {
97583            swc_visit::Either::Left(visitor) => Fold::fold_jsx_element_name(visitor, node),
97584            swc_visit::Either::Right(visitor) => Fold::fold_jsx_element_name(visitor, node),
97585        }
97586    }
97587
97588    #[inline]
97589    fn fold_jsx_empty_expr(&mut self, node: JSXEmptyExpr) -> JSXEmptyExpr {
97590        match self {
97591            swc_visit::Either::Left(visitor) => Fold::fold_jsx_empty_expr(visitor, node),
97592            swc_visit::Either::Right(visitor) => Fold::fold_jsx_empty_expr(visitor, node),
97593        }
97594    }
97595
97596    #[inline]
97597    fn fold_jsx_expr(&mut self, node: JSXExpr) -> JSXExpr {
97598        match self {
97599            swc_visit::Either::Left(visitor) => Fold::fold_jsx_expr(visitor, node),
97600            swc_visit::Either::Right(visitor) => Fold::fold_jsx_expr(visitor, node),
97601        }
97602    }
97603
97604    #[inline]
97605    fn fold_jsx_expr_container(&mut self, node: JSXExprContainer) -> JSXExprContainer {
97606        match self {
97607            swc_visit::Either::Left(visitor) => Fold::fold_jsx_expr_container(visitor, node),
97608            swc_visit::Either::Right(visitor) => Fold::fold_jsx_expr_container(visitor, node),
97609        }
97610    }
97611
97612    #[inline]
97613    fn fold_jsx_fragment(&mut self, node: JSXFragment) -> JSXFragment {
97614        match self {
97615            swc_visit::Either::Left(visitor) => Fold::fold_jsx_fragment(visitor, node),
97616            swc_visit::Either::Right(visitor) => Fold::fold_jsx_fragment(visitor, node),
97617        }
97618    }
97619
97620    #[inline]
97621    fn fold_jsx_member_expr(&mut self, node: JSXMemberExpr) -> JSXMemberExpr {
97622        match self {
97623            swc_visit::Either::Left(visitor) => Fold::fold_jsx_member_expr(visitor, node),
97624            swc_visit::Either::Right(visitor) => Fold::fold_jsx_member_expr(visitor, node),
97625        }
97626    }
97627
97628    #[inline]
97629    fn fold_jsx_namespaced_name(&mut self, node: JSXNamespacedName) -> JSXNamespacedName {
97630        match self {
97631            swc_visit::Either::Left(visitor) => Fold::fold_jsx_namespaced_name(visitor, node),
97632            swc_visit::Either::Right(visitor) => Fold::fold_jsx_namespaced_name(visitor, node),
97633        }
97634    }
97635
97636    #[inline]
97637    fn fold_jsx_object(&mut self, node: JSXObject) -> JSXObject {
97638        match self {
97639            swc_visit::Either::Left(visitor) => Fold::fold_jsx_object(visitor, node),
97640            swc_visit::Either::Right(visitor) => Fold::fold_jsx_object(visitor, node),
97641        }
97642    }
97643
97644    #[inline]
97645    fn fold_jsx_opening_element(&mut self, node: JSXOpeningElement) -> JSXOpeningElement {
97646        match self {
97647            swc_visit::Either::Left(visitor) => Fold::fold_jsx_opening_element(visitor, node),
97648            swc_visit::Either::Right(visitor) => Fold::fold_jsx_opening_element(visitor, node),
97649        }
97650    }
97651
97652    #[inline]
97653    fn fold_jsx_opening_fragment(&mut self, node: JSXOpeningFragment) -> JSXOpeningFragment {
97654        match self {
97655            swc_visit::Either::Left(visitor) => Fold::fold_jsx_opening_fragment(visitor, node),
97656            swc_visit::Either::Right(visitor) => Fold::fold_jsx_opening_fragment(visitor, node),
97657        }
97658    }
97659
97660    #[inline]
97661    fn fold_jsx_spread_child(&mut self, node: JSXSpreadChild) -> JSXSpreadChild {
97662        match self {
97663            swc_visit::Either::Left(visitor) => Fold::fold_jsx_spread_child(visitor, node),
97664            swc_visit::Either::Right(visitor) => Fold::fold_jsx_spread_child(visitor, node),
97665        }
97666    }
97667
97668    #[inline]
97669    fn fold_jsx_text(&mut self, node: JSXText) -> JSXText {
97670        match self {
97671            swc_visit::Either::Left(visitor) => Fold::fold_jsx_text(visitor, node),
97672            swc_visit::Either::Right(visitor) => Fold::fold_jsx_text(visitor, node),
97673        }
97674    }
97675
97676    #[inline]
97677    fn fold_key(&mut self, node: Key) -> Key {
97678        match self {
97679            swc_visit::Either::Left(visitor) => Fold::fold_key(visitor, node),
97680            swc_visit::Either::Right(visitor) => Fold::fold_key(visitor, node),
97681        }
97682    }
97683
97684    #[inline]
97685    fn fold_key_value_pat_prop(&mut self, node: KeyValuePatProp) -> KeyValuePatProp {
97686        match self {
97687            swc_visit::Either::Left(visitor) => Fold::fold_key_value_pat_prop(visitor, node),
97688            swc_visit::Either::Right(visitor) => Fold::fold_key_value_pat_prop(visitor, node),
97689        }
97690    }
97691
97692    #[inline]
97693    fn fold_key_value_prop(&mut self, node: KeyValueProp) -> KeyValueProp {
97694        match self {
97695            swc_visit::Either::Left(visitor) => Fold::fold_key_value_prop(visitor, node),
97696            swc_visit::Either::Right(visitor) => Fold::fold_key_value_prop(visitor, node),
97697        }
97698    }
97699
97700    #[inline]
97701    fn fold_labeled_stmt(&mut self, node: LabeledStmt) -> LabeledStmt {
97702        match self {
97703            swc_visit::Either::Left(visitor) => Fold::fold_labeled_stmt(visitor, node),
97704            swc_visit::Either::Right(visitor) => Fold::fold_labeled_stmt(visitor, node),
97705        }
97706    }
97707
97708    #[inline]
97709    fn fold_lit(&mut self, node: Lit) -> Lit {
97710        match self {
97711            swc_visit::Either::Left(visitor) => Fold::fold_lit(visitor, node),
97712            swc_visit::Either::Right(visitor) => Fold::fold_lit(visitor, node),
97713        }
97714    }
97715
97716    #[inline]
97717    fn fold_member_expr(&mut self, node: MemberExpr) -> MemberExpr {
97718        match self {
97719            swc_visit::Either::Left(visitor) => Fold::fold_member_expr(visitor, node),
97720            swc_visit::Either::Right(visitor) => Fold::fold_member_expr(visitor, node),
97721        }
97722    }
97723
97724    #[inline]
97725    fn fold_member_prop(&mut self, node: MemberProp) -> MemberProp {
97726        match self {
97727            swc_visit::Either::Left(visitor) => Fold::fold_member_prop(visitor, node),
97728            swc_visit::Either::Right(visitor) => Fold::fold_member_prop(visitor, node),
97729        }
97730    }
97731
97732    #[inline]
97733    fn fold_meta_prop_expr(&mut self, node: MetaPropExpr) -> MetaPropExpr {
97734        match self {
97735            swc_visit::Either::Left(visitor) => Fold::fold_meta_prop_expr(visitor, node),
97736            swc_visit::Either::Right(visitor) => Fold::fold_meta_prop_expr(visitor, node),
97737        }
97738    }
97739
97740    #[inline]
97741    fn fold_meta_prop_kind(&mut self, node: MetaPropKind) -> MetaPropKind {
97742        match self {
97743            swc_visit::Either::Left(visitor) => Fold::fold_meta_prop_kind(visitor, node),
97744            swc_visit::Either::Right(visitor) => Fold::fold_meta_prop_kind(visitor, node),
97745        }
97746    }
97747
97748    #[inline]
97749    fn fold_method_kind(&mut self, node: MethodKind) -> MethodKind {
97750        match self {
97751            swc_visit::Either::Left(visitor) => Fold::fold_method_kind(visitor, node),
97752            swc_visit::Either::Right(visitor) => Fold::fold_method_kind(visitor, node),
97753        }
97754    }
97755
97756    #[inline]
97757    fn fold_method_prop(&mut self, node: MethodProp) -> MethodProp {
97758        match self {
97759            swc_visit::Either::Left(visitor) => Fold::fold_method_prop(visitor, node),
97760            swc_visit::Either::Right(visitor) => Fold::fold_method_prop(visitor, node),
97761        }
97762    }
97763
97764    #[inline]
97765    fn fold_module(&mut self, node: Module) -> Module {
97766        match self {
97767            swc_visit::Either::Left(visitor) => Fold::fold_module(visitor, node),
97768            swc_visit::Either::Right(visitor) => Fold::fold_module(visitor, node),
97769        }
97770    }
97771
97772    #[inline]
97773    fn fold_module_decl(&mut self, node: ModuleDecl) -> ModuleDecl {
97774        match self {
97775            swc_visit::Either::Left(visitor) => Fold::fold_module_decl(visitor, node),
97776            swc_visit::Either::Right(visitor) => Fold::fold_module_decl(visitor, node),
97777        }
97778    }
97779
97780    #[inline]
97781    fn fold_module_export_name(&mut self, node: ModuleExportName) -> ModuleExportName {
97782        match self {
97783            swc_visit::Either::Left(visitor) => Fold::fold_module_export_name(visitor, node),
97784            swc_visit::Either::Right(visitor) => Fold::fold_module_export_name(visitor, node),
97785        }
97786    }
97787
97788    #[inline]
97789    fn fold_module_item(&mut self, node: ModuleItem) -> ModuleItem {
97790        match self {
97791            swc_visit::Either::Left(visitor) => Fold::fold_module_item(visitor, node),
97792            swc_visit::Either::Right(visitor) => Fold::fold_module_item(visitor, node),
97793        }
97794    }
97795
97796    #[inline]
97797    fn fold_module_items(&mut self, node: Vec<ModuleItem>) -> Vec<ModuleItem> {
97798        match self {
97799            swc_visit::Either::Left(visitor) => Fold::fold_module_items(visitor, node),
97800            swc_visit::Either::Right(visitor) => Fold::fold_module_items(visitor, node),
97801        }
97802    }
97803
97804    #[inline]
97805    fn fold_named_export(&mut self, node: NamedExport) -> NamedExport {
97806        match self {
97807            swc_visit::Either::Left(visitor) => Fold::fold_named_export(visitor, node),
97808            swc_visit::Either::Right(visitor) => Fold::fold_named_export(visitor, node),
97809        }
97810    }
97811
97812    #[inline]
97813    fn fold_new_expr(&mut self, node: NewExpr) -> NewExpr {
97814        match self {
97815            swc_visit::Either::Left(visitor) => Fold::fold_new_expr(visitor, node),
97816            swc_visit::Either::Right(visitor) => Fold::fold_new_expr(visitor, node),
97817        }
97818    }
97819
97820    #[inline]
97821    fn fold_null(&mut self, node: Null) -> Null {
97822        match self {
97823            swc_visit::Either::Left(visitor) => Fold::fold_null(visitor, node),
97824            swc_visit::Either::Right(visitor) => Fold::fold_null(visitor, node),
97825        }
97826    }
97827
97828    #[inline]
97829    fn fold_number(&mut self, node: Number) -> Number {
97830        match self {
97831            swc_visit::Either::Left(visitor) => Fold::fold_number(visitor, node),
97832            swc_visit::Either::Right(visitor) => Fold::fold_number(visitor, node),
97833        }
97834    }
97835
97836    #[inline]
97837    fn fold_object_lit(&mut self, node: ObjectLit) -> ObjectLit {
97838        match self {
97839            swc_visit::Either::Left(visitor) => Fold::fold_object_lit(visitor, node),
97840            swc_visit::Either::Right(visitor) => Fold::fold_object_lit(visitor, node),
97841        }
97842    }
97843
97844    #[inline]
97845    fn fold_object_pat(&mut self, node: ObjectPat) -> ObjectPat {
97846        match self {
97847            swc_visit::Either::Left(visitor) => Fold::fold_object_pat(visitor, node),
97848            swc_visit::Either::Right(visitor) => Fold::fold_object_pat(visitor, node),
97849        }
97850    }
97851
97852    #[inline]
97853    fn fold_object_pat_prop(&mut self, node: ObjectPatProp) -> ObjectPatProp {
97854        match self {
97855            swc_visit::Either::Left(visitor) => Fold::fold_object_pat_prop(visitor, node),
97856            swc_visit::Either::Right(visitor) => Fold::fold_object_pat_prop(visitor, node),
97857        }
97858    }
97859
97860    #[inline]
97861    fn fold_object_pat_props(&mut self, node: Vec<ObjectPatProp>) -> Vec<ObjectPatProp> {
97862        match self {
97863            swc_visit::Either::Left(visitor) => Fold::fold_object_pat_props(visitor, node),
97864            swc_visit::Either::Right(visitor) => Fold::fold_object_pat_props(visitor, node),
97865        }
97866    }
97867
97868    #[inline]
97869    fn fold_opt_accessibility(&mut self, node: Option<Accessibility>) -> Option<Accessibility> {
97870        match self {
97871            swc_visit::Either::Left(visitor) => Fold::fold_opt_accessibility(visitor, node),
97872            swc_visit::Either::Right(visitor) => Fold::fold_opt_accessibility(visitor, node),
97873        }
97874    }
97875
97876    #[inline]
97877    fn fold_opt_atom(&mut self, node: Option<swc_atoms::Atom>) -> Option<swc_atoms::Atom> {
97878        match self {
97879            swc_visit::Either::Left(visitor) => Fold::fold_opt_atom(visitor, node),
97880            swc_visit::Either::Right(visitor) => Fold::fold_opt_atom(visitor, node),
97881        }
97882    }
97883
97884    #[inline]
97885    fn fold_opt_block_stmt(&mut self, node: Option<BlockStmt>) -> Option<BlockStmt> {
97886        match self {
97887            swc_visit::Either::Left(visitor) => Fold::fold_opt_block_stmt(visitor, node),
97888            swc_visit::Either::Right(visitor) => Fold::fold_opt_block_stmt(visitor, node),
97889        }
97890    }
97891
97892    #[inline]
97893    fn fold_opt_call(&mut self, node: OptCall) -> OptCall {
97894        match self {
97895            swc_visit::Either::Left(visitor) => Fold::fold_opt_call(visitor, node),
97896            swc_visit::Either::Right(visitor) => Fold::fold_opt_call(visitor, node),
97897        }
97898    }
97899
97900    #[inline]
97901    fn fold_opt_catch_clause(&mut self, node: Option<CatchClause>) -> Option<CatchClause> {
97902        match self {
97903            swc_visit::Either::Left(visitor) => Fold::fold_opt_catch_clause(visitor, node),
97904            swc_visit::Either::Right(visitor) => Fold::fold_opt_catch_clause(visitor, node),
97905        }
97906    }
97907
97908    #[inline]
97909    fn fold_opt_chain_base(&mut self, node: OptChainBase) -> OptChainBase {
97910        match self {
97911            swc_visit::Either::Left(visitor) => Fold::fold_opt_chain_base(visitor, node),
97912            swc_visit::Either::Right(visitor) => Fold::fold_opt_chain_base(visitor, node),
97913        }
97914    }
97915
97916    #[inline]
97917    fn fold_opt_chain_expr(&mut self, node: OptChainExpr) -> OptChainExpr {
97918        match self {
97919            swc_visit::Either::Left(visitor) => Fold::fold_opt_chain_expr(visitor, node),
97920            swc_visit::Either::Right(visitor) => Fold::fold_opt_chain_expr(visitor, node),
97921        }
97922    }
97923
97924    #[inline]
97925    fn fold_opt_expr(&mut self, node: Option<Box<Expr>>) -> Option<Box<Expr>> {
97926        match self {
97927            swc_visit::Either::Left(visitor) => Fold::fold_opt_expr(visitor, node),
97928            swc_visit::Either::Right(visitor) => Fold::fold_opt_expr(visitor, node),
97929        }
97930    }
97931
97932    #[inline]
97933    fn fold_opt_expr_or_spread(&mut self, node: Option<ExprOrSpread>) -> Option<ExprOrSpread> {
97934        match self {
97935            swc_visit::Either::Left(visitor) => Fold::fold_opt_expr_or_spread(visitor, node),
97936            swc_visit::Either::Right(visitor) => Fold::fold_opt_expr_or_spread(visitor, node),
97937        }
97938    }
97939
97940    #[inline]
97941    fn fold_opt_expr_or_spreads(
97942        &mut self,
97943        node: Option<Vec<ExprOrSpread>>,
97944    ) -> Option<Vec<ExprOrSpread>> {
97945        match self {
97946            swc_visit::Either::Left(visitor) => Fold::fold_opt_expr_or_spreads(visitor, node),
97947            swc_visit::Either::Right(visitor) => Fold::fold_opt_expr_or_spreads(visitor, node),
97948        }
97949    }
97950
97951    #[inline]
97952    fn fold_opt_ident(&mut self, node: Option<Ident>) -> Option<Ident> {
97953        match self {
97954            swc_visit::Either::Left(visitor) => Fold::fold_opt_ident(visitor, node),
97955            swc_visit::Either::Right(visitor) => Fold::fold_opt_ident(visitor, node),
97956        }
97957    }
97958
97959    #[inline]
97960    fn fold_opt_jsx_attr_value(&mut self, node: Option<JSXAttrValue>) -> Option<JSXAttrValue> {
97961        match self {
97962            swc_visit::Either::Left(visitor) => Fold::fold_opt_jsx_attr_value(visitor, node),
97963            swc_visit::Either::Right(visitor) => Fold::fold_opt_jsx_attr_value(visitor, node),
97964        }
97965    }
97966
97967    #[inline]
97968    fn fold_opt_jsx_closing_element(
97969        &mut self,
97970        node: Option<JSXClosingElement>,
97971    ) -> Option<JSXClosingElement> {
97972        match self {
97973            swc_visit::Either::Left(visitor) => Fold::fold_opt_jsx_closing_element(visitor, node),
97974            swc_visit::Either::Right(visitor) => Fold::fold_opt_jsx_closing_element(visitor, node),
97975        }
97976    }
97977
97978    #[inline]
97979    fn fold_opt_module_export_name(
97980        &mut self,
97981        node: Option<ModuleExportName>,
97982    ) -> Option<ModuleExportName> {
97983        match self {
97984            swc_visit::Either::Left(visitor) => Fold::fold_opt_module_export_name(visitor, node),
97985            swc_visit::Either::Right(visitor) => Fold::fold_opt_module_export_name(visitor, node),
97986        }
97987    }
97988
97989    #[inline]
97990    fn fold_opt_object_lit(&mut self, node: Option<Box<ObjectLit>>) -> Option<Box<ObjectLit>> {
97991        match self {
97992            swc_visit::Either::Left(visitor) => Fold::fold_opt_object_lit(visitor, node),
97993            swc_visit::Either::Right(visitor) => Fold::fold_opt_object_lit(visitor, node),
97994        }
97995    }
97996
97997    #[inline]
97998    fn fold_opt_pat(&mut self, node: Option<Pat>) -> Option<Pat> {
97999        match self {
98000            swc_visit::Either::Left(visitor) => Fold::fold_opt_pat(visitor, node),
98001            swc_visit::Either::Right(visitor) => Fold::fold_opt_pat(visitor, node),
98002        }
98003    }
98004
98005    #[inline]
98006    fn fold_opt_span(&mut self, node: Option<swc_common::Span>) -> Option<swc_common::Span> {
98007        match self {
98008            swc_visit::Either::Left(visitor) => Fold::fold_opt_span(visitor, node),
98009            swc_visit::Either::Right(visitor) => Fold::fold_opt_span(visitor, node),
98010        }
98011    }
98012
98013    #[inline]
98014    fn fold_opt_stmt(&mut self, node: Option<Box<Stmt>>) -> Option<Box<Stmt>> {
98015        match self {
98016            swc_visit::Either::Left(visitor) => Fold::fold_opt_stmt(visitor, node),
98017            swc_visit::Either::Right(visitor) => Fold::fold_opt_stmt(visitor, node),
98018        }
98019    }
98020
98021    #[inline]
98022    fn fold_opt_str(&mut self, node: Option<Box<Str>>) -> Option<Box<Str>> {
98023        match self {
98024            swc_visit::Either::Left(visitor) => Fold::fold_opt_str(visitor, node),
98025            swc_visit::Either::Right(visitor) => Fold::fold_opt_str(visitor, node),
98026        }
98027    }
98028
98029    #[inline]
98030    fn fold_opt_true_plus_minus(&mut self, node: Option<TruePlusMinus>) -> Option<TruePlusMinus> {
98031        match self {
98032            swc_visit::Either::Left(visitor) => Fold::fold_opt_true_plus_minus(visitor, node),
98033            swc_visit::Either::Right(visitor) => Fold::fold_opt_true_plus_minus(visitor, node),
98034        }
98035    }
98036
98037    #[inline]
98038    fn fold_opt_ts_entity_name(&mut self, node: Option<TsEntityName>) -> Option<TsEntityName> {
98039        match self {
98040            swc_visit::Either::Left(visitor) => Fold::fold_opt_ts_entity_name(visitor, node),
98041            swc_visit::Either::Right(visitor) => Fold::fold_opt_ts_entity_name(visitor, node),
98042        }
98043    }
98044
98045    #[inline]
98046    fn fold_opt_ts_import_call_options(
98047        &mut self,
98048        node: Option<TsImportCallOptions>,
98049    ) -> Option<TsImportCallOptions> {
98050        match self {
98051            swc_visit::Either::Left(visitor) => {
98052                Fold::fold_opt_ts_import_call_options(visitor, node)
98053            }
98054            swc_visit::Either::Right(visitor) => {
98055                Fold::fold_opt_ts_import_call_options(visitor, node)
98056            }
98057        }
98058    }
98059
98060    #[inline]
98061    fn fold_opt_ts_namespace_body(
98062        &mut self,
98063        node: Option<TsNamespaceBody>,
98064    ) -> Option<TsNamespaceBody> {
98065        match self {
98066            swc_visit::Either::Left(visitor) => Fold::fold_opt_ts_namespace_body(visitor, node),
98067            swc_visit::Either::Right(visitor) => Fold::fold_opt_ts_namespace_body(visitor, node),
98068        }
98069    }
98070
98071    #[inline]
98072    fn fold_opt_ts_type(&mut self, node: Option<Box<TsType>>) -> Option<Box<TsType>> {
98073        match self {
98074            swc_visit::Either::Left(visitor) => Fold::fold_opt_ts_type(visitor, node),
98075            swc_visit::Either::Right(visitor) => Fold::fold_opt_ts_type(visitor, node),
98076        }
98077    }
98078
98079    #[inline]
98080    fn fold_opt_ts_type_ann(&mut self, node: Option<Box<TsTypeAnn>>) -> Option<Box<TsTypeAnn>> {
98081        match self {
98082            swc_visit::Either::Left(visitor) => Fold::fold_opt_ts_type_ann(visitor, node),
98083            swc_visit::Either::Right(visitor) => Fold::fold_opt_ts_type_ann(visitor, node),
98084        }
98085    }
98086
98087    #[inline]
98088    fn fold_opt_ts_type_param_decl(
98089        &mut self,
98090        node: Option<Box<TsTypeParamDecl>>,
98091    ) -> Option<Box<TsTypeParamDecl>> {
98092        match self {
98093            swc_visit::Either::Left(visitor) => Fold::fold_opt_ts_type_param_decl(visitor, node),
98094            swc_visit::Either::Right(visitor) => Fold::fold_opt_ts_type_param_decl(visitor, node),
98095        }
98096    }
98097
98098    #[inline]
98099    fn fold_opt_ts_type_param_instantiation(
98100        &mut self,
98101        node: Option<Box<TsTypeParamInstantiation>>,
98102    ) -> Option<Box<TsTypeParamInstantiation>> {
98103        match self {
98104            swc_visit::Either::Left(visitor) => {
98105                Fold::fold_opt_ts_type_param_instantiation(visitor, node)
98106            }
98107            swc_visit::Either::Right(visitor) => {
98108                Fold::fold_opt_ts_type_param_instantiation(visitor, node)
98109            }
98110        }
98111    }
98112
98113    #[inline]
98114    fn fold_opt_var_decl_or_expr(&mut self, node: Option<VarDeclOrExpr>) -> Option<VarDeclOrExpr> {
98115        match self {
98116            swc_visit::Either::Left(visitor) => Fold::fold_opt_var_decl_or_expr(visitor, node),
98117            swc_visit::Either::Right(visitor) => Fold::fold_opt_var_decl_or_expr(visitor, node),
98118        }
98119    }
98120
98121    #[inline]
98122    fn fold_opt_vec_expr_or_spreads(
98123        &mut self,
98124        node: Vec<Option<ExprOrSpread>>,
98125    ) -> Vec<Option<ExprOrSpread>> {
98126        match self {
98127            swc_visit::Either::Left(visitor) => Fold::fold_opt_vec_expr_or_spreads(visitor, node),
98128            swc_visit::Either::Right(visitor) => Fold::fold_opt_vec_expr_or_spreads(visitor, node),
98129        }
98130    }
98131
98132    #[inline]
98133    fn fold_opt_vec_pats(&mut self, node: Vec<Option<Pat>>) -> Vec<Option<Pat>> {
98134        match self {
98135            swc_visit::Either::Left(visitor) => Fold::fold_opt_vec_pats(visitor, node),
98136            swc_visit::Either::Right(visitor) => Fold::fold_opt_vec_pats(visitor, node),
98137        }
98138    }
98139
98140    #[inline]
98141    fn fold_param(&mut self, node: Param) -> Param {
98142        match self {
98143            swc_visit::Either::Left(visitor) => Fold::fold_param(visitor, node),
98144            swc_visit::Either::Right(visitor) => Fold::fold_param(visitor, node),
98145        }
98146    }
98147
98148    #[inline]
98149    fn fold_param_or_ts_param_prop(&mut self, node: ParamOrTsParamProp) -> ParamOrTsParamProp {
98150        match self {
98151            swc_visit::Either::Left(visitor) => Fold::fold_param_or_ts_param_prop(visitor, node),
98152            swc_visit::Either::Right(visitor) => Fold::fold_param_or_ts_param_prop(visitor, node),
98153        }
98154    }
98155
98156    #[inline]
98157    fn fold_param_or_ts_param_props(
98158        &mut self,
98159        node: Vec<ParamOrTsParamProp>,
98160    ) -> Vec<ParamOrTsParamProp> {
98161        match self {
98162            swc_visit::Either::Left(visitor) => Fold::fold_param_or_ts_param_props(visitor, node),
98163            swc_visit::Either::Right(visitor) => Fold::fold_param_or_ts_param_props(visitor, node),
98164        }
98165    }
98166
98167    #[inline]
98168    fn fold_params(&mut self, node: Vec<Param>) -> Vec<Param> {
98169        match self {
98170            swc_visit::Either::Left(visitor) => Fold::fold_params(visitor, node),
98171            swc_visit::Either::Right(visitor) => Fold::fold_params(visitor, node),
98172        }
98173    }
98174
98175    #[inline]
98176    fn fold_paren_expr(&mut self, node: ParenExpr) -> ParenExpr {
98177        match self {
98178            swc_visit::Either::Left(visitor) => Fold::fold_paren_expr(visitor, node),
98179            swc_visit::Either::Right(visitor) => Fold::fold_paren_expr(visitor, node),
98180        }
98181    }
98182
98183    #[inline]
98184    fn fold_pat(&mut self, node: Pat) -> Pat {
98185        match self {
98186            swc_visit::Either::Left(visitor) => Fold::fold_pat(visitor, node),
98187            swc_visit::Either::Right(visitor) => Fold::fold_pat(visitor, node),
98188        }
98189    }
98190
98191    #[inline]
98192    fn fold_pats(&mut self, node: Vec<Pat>) -> Vec<Pat> {
98193        match self {
98194            swc_visit::Either::Left(visitor) => Fold::fold_pats(visitor, node),
98195            swc_visit::Either::Right(visitor) => Fold::fold_pats(visitor, node),
98196        }
98197    }
98198
98199    #[inline]
98200    fn fold_private_method(&mut self, node: PrivateMethod) -> PrivateMethod {
98201        match self {
98202            swc_visit::Either::Left(visitor) => Fold::fold_private_method(visitor, node),
98203            swc_visit::Either::Right(visitor) => Fold::fold_private_method(visitor, node),
98204        }
98205    }
98206
98207    #[inline]
98208    fn fold_private_name(&mut self, node: PrivateName) -> PrivateName {
98209        match self {
98210            swc_visit::Either::Left(visitor) => Fold::fold_private_name(visitor, node),
98211            swc_visit::Either::Right(visitor) => Fold::fold_private_name(visitor, node),
98212        }
98213    }
98214
98215    #[inline]
98216    fn fold_private_prop(&mut self, node: PrivateProp) -> PrivateProp {
98217        match self {
98218            swc_visit::Either::Left(visitor) => Fold::fold_private_prop(visitor, node),
98219            swc_visit::Either::Right(visitor) => Fold::fold_private_prop(visitor, node),
98220        }
98221    }
98222
98223    #[inline]
98224    fn fold_program(&mut self, node: Program) -> Program {
98225        match self {
98226            swc_visit::Either::Left(visitor) => Fold::fold_program(visitor, node),
98227            swc_visit::Either::Right(visitor) => Fold::fold_program(visitor, node),
98228        }
98229    }
98230
98231    #[inline]
98232    fn fold_prop(&mut self, node: Prop) -> Prop {
98233        match self {
98234            swc_visit::Either::Left(visitor) => Fold::fold_prop(visitor, node),
98235            swc_visit::Either::Right(visitor) => Fold::fold_prop(visitor, node),
98236        }
98237    }
98238
98239    #[inline]
98240    fn fold_prop_name(&mut self, node: PropName) -> PropName {
98241        match self {
98242            swc_visit::Either::Left(visitor) => Fold::fold_prop_name(visitor, node),
98243            swc_visit::Either::Right(visitor) => Fold::fold_prop_name(visitor, node),
98244        }
98245    }
98246
98247    #[inline]
98248    fn fold_prop_or_spread(&mut self, node: PropOrSpread) -> PropOrSpread {
98249        match self {
98250            swc_visit::Either::Left(visitor) => Fold::fold_prop_or_spread(visitor, node),
98251            swc_visit::Either::Right(visitor) => Fold::fold_prop_or_spread(visitor, node),
98252        }
98253    }
98254
98255    #[inline]
98256    fn fold_prop_or_spreads(&mut self, node: Vec<PropOrSpread>) -> Vec<PropOrSpread> {
98257        match self {
98258            swc_visit::Either::Left(visitor) => Fold::fold_prop_or_spreads(visitor, node),
98259            swc_visit::Either::Right(visitor) => Fold::fold_prop_or_spreads(visitor, node),
98260        }
98261    }
98262
98263    #[inline]
98264    fn fold_regex(&mut self, node: Regex) -> Regex {
98265        match self {
98266            swc_visit::Either::Left(visitor) => Fold::fold_regex(visitor, node),
98267            swc_visit::Either::Right(visitor) => Fold::fold_regex(visitor, node),
98268        }
98269    }
98270
98271    #[inline]
98272    fn fold_rest_pat(&mut self, node: RestPat) -> RestPat {
98273        match self {
98274            swc_visit::Either::Left(visitor) => Fold::fold_rest_pat(visitor, node),
98275            swc_visit::Either::Right(visitor) => Fold::fold_rest_pat(visitor, node),
98276        }
98277    }
98278
98279    #[inline]
98280    fn fold_return_stmt(&mut self, node: ReturnStmt) -> ReturnStmt {
98281        match self {
98282            swc_visit::Either::Left(visitor) => Fold::fold_return_stmt(visitor, node),
98283            swc_visit::Either::Right(visitor) => Fold::fold_return_stmt(visitor, node),
98284        }
98285    }
98286
98287    #[inline]
98288    fn fold_script(&mut self, node: Script) -> Script {
98289        match self {
98290            swc_visit::Either::Left(visitor) => Fold::fold_script(visitor, node),
98291            swc_visit::Either::Right(visitor) => Fold::fold_script(visitor, node),
98292        }
98293    }
98294
98295    #[inline]
98296    fn fold_seq_expr(&mut self, node: SeqExpr) -> SeqExpr {
98297        match self {
98298            swc_visit::Either::Left(visitor) => Fold::fold_seq_expr(visitor, node),
98299            swc_visit::Either::Right(visitor) => Fold::fold_seq_expr(visitor, node),
98300        }
98301    }
98302
98303    #[inline]
98304    fn fold_setter_prop(&mut self, node: SetterProp) -> SetterProp {
98305        match self {
98306            swc_visit::Either::Left(visitor) => Fold::fold_setter_prop(visitor, node),
98307            swc_visit::Either::Right(visitor) => Fold::fold_setter_prop(visitor, node),
98308        }
98309    }
98310
98311    #[inline]
98312    fn fold_simple_assign_target(&mut self, node: SimpleAssignTarget) -> SimpleAssignTarget {
98313        match self {
98314            swc_visit::Either::Left(visitor) => Fold::fold_simple_assign_target(visitor, node),
98315            swc_visit::Either::Right(visitor) => Fold::fold_simple_assign_target(visitor, node),
98316        }
98317    }
98318
98319    #[inline]
98320    fn fold_span(&mut self, node: swc_common::Span) -> swc_common::Span {
98321        match self {
98322            swc_visit::Either::Left(visitor) => Fold::fold_span(visitor, node),
98323            swc_visit::Either::Right(visitor) => Fold::fold_span(visitor, node),
98324        }
98325    }
98326
98327    #[inline]
98328    fn fold_spread_element(&mut self, node: SpreadElement) -> SpreadElement {
98329        match self {
98330            swc_visit::Either::Left(visitor) => Fold::fold_spread_element(visitor, node),
98331            swc_visit::Either::Right(visitor) => Fold::fold_spread_element(visitor, node),
98332        }
98333    }
98334
98335    #[inline]
98336    fn fold_static_block(&mut self, node: StaticBlock) -> StaticBlock {
98337        match self {
98338            swc_visit::Either::Left(visitor) => Fold::fold_static_block(visitor, node),
98339            swc_visit::Either::Right(visitor) => Fold::fold_static_block(visitor, node),
98340        }
98341    }
98342
98343    #[inline]
98344    fn fold_stmt(&mut self, node: Stmt) -> Stmt {
98345        match self {
98346            swc_visit::Either::Left(visitor) => Fold::fold_stmt(visitor, node),
98347            swc_visit::Either::Right(visitor) => Fold::fold_stmt(visitor, node),
98348        }
98349    }
98350
98351    #[inline]
98352    fn fold_stmts(&mut self, node: Vec<Stmt>) -> Vec<Stmt> {
98353        match self {
98354            swc_visit::Either::Left(visitor) => Fold::fold_stmts(visitor, node),
98355            swc_visit::Either::Right(visitor) => Fold::fold_stmts(visitor, node),
98356        }
98357    }
98358
98359    #[inline]
98360    fn fold_str(&mut self, node: Str) -> Str {
98361        match self {
98362            swc_visit::Either::Left(visitor) => Fold::fold_str(visitor, node),
98363            swc_visit::Either::Right(visitor) => Fold::fold_str(visitor, node),
98364        }
98365    }
98366
98367    #[inline]
98368    fn fold_super(&mut self, node: Super) -> Super {
98369        match self {
98370            swc_visit::Either::Left(visitor) => Fold::fold_super(visitor, node),
98371            swc_visit::Either::Right(visitor) => Fold::fold_super(visitor, node),
98372        }
98373    }
98374
98375    #[inline]
98376    fn fold_super_prop(&mut self, node: SuperProp) -> SuperProp {
98377        match self {
98378            swc_visit::Either::Left(visitor) => Fold::fold_super_prop(visitor, node),
98379            swc_visit::Either::Right(visitor) => Fold::fold_super_prop(visitor, node),
98380        }
98381    }
98382
98383    #[inline]
98384    fn fold_super_prop_expr(&mut self, node: SuperPropExpr) -> SuperPropExpr {
98385        match self {
98386            swc_visit::Either::Left(visitor) => Fold::fold_super_prop_expr(visitor, node),
98387            swc_visit::Either::Right(visitor) => Fold::fold_super_prop_expr(visitor, node),
98388        }
98389    }
98390
98391    #[inline]
98392    fn fold_switch_case(&mut self, node: SwitchCase) -> SwitchCase {
98393        match self {
98394            swc_visit::Either::Left(visitor) => Fold::fold_switch_case(visitor, node),
98395            swc_visit::Either::Right(visitor) => Fold::fold_switch_case(visitor, node),
98396        }
98397    }
98398
98399    #[inline]
98400    fn fold_switch_cases(&mut self, node: Vec<SwitchCase>) -> Vec<SwitchCase> {
98401        match self {
98402            swc_visit::Either::Left(visitor) => Fold::fold_switch_cases(visitor, node),
98403            swc_visit::Either::Right(visitor) => Fold::fold_switch_cases(visitor, node),
98404        }
98405    }
98406
98407    #[inline]
98408    fn fold_switch_stmt(&mut self, node: SwitchStmt) -> SwitchStmt {
98409        match self {
98410            swc_visit::Either::Left(visitor) => Fold::fold_switch_stmt(visitor, node),
98411            swc_visit::Either::Right(visitor) => Fold::fold_switch_stmt(visitor, node),
98412        }
98413    }
98414
98415    #[inline]
98416    fn fold_syntax_context(
98417        &mut self,
98418        node: swc_common::SyntaxContext,
98419    ) -> swc_common::SyntaxContext {
98420        match self {
98421            swc_visit::Either::Left(visitor) => Fold::fold_syntax_context(visitor, node),
98422            swc_visit::Either::Right(visitor) => Fold::fold_syntax_context(visitor, node),
98423        }
98424    }
98425
98426    #[inline]
98427    fn fold_tagged_tpl(&mut self, node: TaggedTpl) -> TaggedTpl {
98428        match self {
98429            swc_visit::Either::Left(visitor) => Fold::fold_tagged_tpl(visitor, node),
98430            swc_visit::Either::Right(visitor) => Fold::fold_tagged_tpl(visitor, node),
98431        }
98432    }
98433
98434    #[inline]
98435    fn fold_this_expr(&mut self, node: ThisExpr) -> ThisExpr {
98436        match self {
98437            swc_visit::Either::Left(visitor) => Fold::fold_this_expr(visitor, node),
98438            swc_visit::Either::Right(visitor) => Fold::fold_this_expr(visitor, node),
98439        }
98440    }
98441
98442    #[inline]
98443    fn fold_throw_stmt(&mut self, node: ThrowStmt) -> ThrowStmt {
98444        match self {
98445            swc_visit::Either::Left(visitor) => Fold::fold_throw_stmt(visitor, node),
98446            swc_visit::Either::Right(visitor) => Fold::fold_throw_stmt(visitor, node),
98447        }
98448    }
98449
98450    #[inline]
98451    fn fold_tpl(&mut self, node: Tpl) -> Tpl {
98452        match self {
98453            swc_visit::Either::Left(visitor) => Fold::fold_tpl(visitor, node),
98454            swc_visit::Either::Right(visitor) => Fold::fold_tpl(visitor, node),
98455        }
98456    }
98457
98458    #[inline]
98459    fn fold_tpl_element(&mut self, node: TplElement) -> TplElement {
98460        match self {
98461            swc_visit::Either::Left(visitor) => Fold::fold_tpl_element(visitor, node),
98462            swc_visit::Either::Right(visitor) => Fold::fold_tpl_element(visitor, node),
98463        }
98464    }
98465
98466    #[inline]
98467    fn fold_tpl_elements(&mut self, node: Vec<TplElement>) -> Vec<TplElement> {
98468        match self {
98469            swc_visit::Either::Left(visitor) => Fold::fold_tpl_elements(visitor, node),
98470            swc_visit::Either::Right(visitor) => Fold::fold_tpl_elements(visitor, node),
98471        }
98472    }
98473
98474    #[inline]
98475    fn fold_true_plus_minus(&mut self, node: TruePlusMinus) -> TruePlusMinus {
98476        match self {
98477            swc_visit::Either::Left(visitor) => Fold::fold_true_plus_minus(visitor, node),
98478            swc_visit::Either::Right(visitor) => Fold::fold_true_plus_minus(visitor, node),
98479        }
98480    }
98481
98482    #[inline]
98483    fn fold_try_stmt(&mut self, node: TryStmt) -> TryStmt {
98484        match self {
98485            swc_visit::Either::Left(visitor) => Fold::fold_try_stmt(visitor, node),
98486            swc_visit::Either::Right(visitor) => Fold::fold_try_stmt(visitor, node),
98487        }
98488    }
98489
98490    #[inline]
98491    fn fold_ts_array_type(&mut self, node: TsArrayType) -> TsArrayType {
98492        match self {
98493            swc_visit::Either::Left(visitor) => Fold::fold_ts_array_type(visitor, node),
98494            swc_visit::Either::Right(visitor) => Fold::fold_ts_array_type(visitor, node),
98495        }
98496    }
98497
98498    #[inline]
98499    fn fold_ts_as_expr(&mut self, node: TsAsExpr) -> TsAsExpr {
98500        match self {
98501            swc_visit::Either::Left(visitor) => Fold::fold_ts_as_expr(visitor, node),
98502            swc_visit::Either::Right(visitor) => Fold::fold_ts_as_expr(visitor, node),
98503        }
98504    }
98505
98506    #[inline]
98507    fn fold_ts_call_signature_decl(&mut self, node: TsCallSignatureDecl) -> TsCallSignatureDecl {
98508        match self {
98509            swc_visit::Either::Left(visitor) => Fold::fold_ts_call_signature_decl(visitor, node),
98510            swc_visit::Either::Right(visitor) => Fold::fold_ts_call_signature_decl(visitor, node),
98511        }
98512    }
98513
98514    #[inline]
98515    fn fold_ts_conditional_type(&mut self, node: TsConditionalType) -> TsConditionalType {
98516        match self {
98517            swc_visit::Either::Left(visitor) => Fold::fold_ts_conditional_type(visitor, node),
98518            swc_visit::Either::Right(visitor) => Fold::fold_ts_conditional_type(visitor, node),
98519        }
98520    }
98521
98522    #[inline]
98523    fn fold_ts_const_assertion(&mut self, node: TsConstAssertion) -> TsConstAssertion {
98524        match self {
98525            swc_visit::Either::Left(visitor) => Fold::fold_ts_const_assertion(visitor, node),
98526            swc_visit::Either::Right(visitor) => Fold::fold_ts_const_assertion(visitor, node),
98527        }
98528    }
98529
98530    #[inline]
98531    fn fold_ts_construct_signature_decl(
98532        &mut self,
98533        node: TsConstructSignatureDecl,
98534    ) -> TsConstructSignatureDecl {
98535        match self {
98536            swc_visit::Either::Left(visitor) => {
98537                Fold::fold_ts_construct_signature_decl(visitor, node)
98538            }
98539            swc_visit::Either::Right(visitor) => {
98540                Fold::fold_ts_construct_signature_decl(visitor, node)
98541            }
98542        }
98543    }
98544
98545    #[inline]
98546    fn fold_ts_constructor_type(&mut self, node: TsConstructorType) -> TsConstructorType {
98547        match self {
98548            swc_visit::Either::Left(visitor) => Fold::fold_ts_constructor_type(visitor, node),
98549            swc_visit::Either::Right(visitor) => Fold::fold_ts_constructor_type(visitor, node),
98550        }
98551    }
98552
98553    #[inline]
98554    fn fold_ts_entity_name(&mut self, node: TsEntityName) -> TsEntityName {
98555        match self {
98556            swc_visit::Either::Left(visitor) => Fold::fold_ts_entity_name(visitor, node),
98557            swc_visit::Either::Right(visitor) => Fold::fold_ts_entity_name(visitor, node),
98558        }
98559    }
98560
98561    #[inline]
98562    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl) -> TsEnumDecl {
98563        match self {
98564            swc_visit::Either::Left(visitor) => Fold::fold_ts_enum_decl(visitor, node),
98565            swc_visit::Either::Right(visitor) => Fold::fold_ts_enum_decl(visitor, node),
98566        }
98567    }
98568
98569    #[inline]
98570    fn fold_ts_enum_member(&mut self, node: TsEnumMember) -> TsEnumMember {
98571        match self {
98572            swc_visit::Either::Left(visitor) => Fold::fold_ts_enum_member(visitor, node),
98573            swc_visit::Either::Right(visitor) => Fold::fold_ts_enum_member(visitor, node),
98574        }
98575    }
98576
98577    #[inline]
98578    fn fold_ts_enum_member_id(&mut self, node: TsEnumMemberId) -> TsEnumMemberId {
98579        match self {
98580            swc_visit::Either::Left(visitor) => Fold::fold_ts_enum_member_id(visitor, node),
98581            swc_visit::Either::Right(visitor) => Fold::fold_ts_enum_member_id(visitor, node),
98582        }
98583    }
98584
98585    #[inline]
98586    fn fold_ts_enum_members(&mut self, node: Vec<TsEnumMember>) -> Vec<TsEnumMember> {
98587        match self {
98588            swc_visit::Either::Left(visitor) => Fold::fold_ts_enum_members(visitor, node),
98589            swc_visit::Either::Right(visitor) => Fold::fold_ts_enum_members(visitor, node),
98590        }
98591    }
98592
98593    #[inline]
98594    fn fold_ts_export_assignment(&mut self, node: TsExportAssignment) -> TsExportAssignment {
98595        match self {
98596            swc_visit::Either::Left(visitor) => Fold::fold_ts_export_assignment(visitor, node),
98597            swc_visit::Either::Right(visitor) => Fold::fold_ts_export_assignment(visitor, node),
98598        }
98599    }
98600
98601    #[inline]
98602    fn fold_ts_expr_with_type_args(&mut self, node: TsExprWithTypeArgs) -> TsExprWithTypeArgs {
98603        match self {
98604            swc_visit::Either::Left(visitor) => Fold::fold_ts_expr_with_type_args(visitor, node),
98605            swc_visit::Either::Right(visitor) => Fold::fold_ts_expr_with_type_args(visitor, node),
98606        }
98607    }
98608
98609    #[inline]
98610    fn fold_ts_expr_with_type_argss(
98611        &mut self,
98612        node: Vec<TsExprWithTypeArgs>,
98613    ) -> Vec<TsExprWithTypeArgs> {
98614        match self {
98615            swc_visit::Either::Left(visitor) => Fold::fold_ts_expr_with_type_argss(visitor, node),
98616            swc_visit::Either::Right(visitor) => Fold::fold_ts_expr_with_type_argss(visitor, node),
98617        }
98618    }
98619
98620    #[inline]
98621    fn fold_ts_external_module_ref(&mut self, node: TsExternalModuleRef) -> TsExternalModuleRef {
98622        match self {
98623            swc_visit::Either::Left(visitor) => Fold::fold_ts_external_module_ref(visitor, node),
98624            swc_visit::Either::Right(visitor) => Fold::fold_ts_external_module_ref(visitor, node),
98625        }
98626    }
98627
98628    #[inline]
98629    fn fold_ts_fn_or_constructor_type(
98630        &mut self,
98631        node: TsFnOrConstructorType,
98632    ) -> TsFnOrConstructorType {
98633        match self {
98634            swc_visit::Either::Left(visitor) => Fold::fold_ts_fn_or_constructor_type(visitor, node),
98635            swc_visit::Either::Right(visitor) => {
98636                Fold::fold_ts_fn_or_constructor_type(visitor, node)
98637            }
98638        }
98639    }
98640
98641    #[inline]
98642    fn fold_ts_fn_param(&mut self, node: TsFnParam) -> TsFnParam {
98643        match self {
98644            swc_visit::Either::Left(visitor) => Fold::fold_ts_fn_param(visitor, node),
98645            swc_visit::Either::Right(visitor) => Fold::fold_ts_fn_param(visitor, node),
98646        }
98647    }
98648
98649    #[inline]
98650    fn fold_ts_fn_params(&mut self, node: Vec<TsFnParam>) -> Vec<TsFnParam> {
98651        match self {
98652            swc_visit::Either::Left(visitor) => Fold::fold_ts_fn_params(visitor, node),
98653            swc_visit::Either::Right(visitor) => Fold::fold_ts_fn_params(visitor, node),
98654        }
98655    }
98656
98657    #[inline]
98658    fn fold_ts_fn_type(&mut self, node: TsFnType) -> TsFnType {
98659        match self {
98660            swc_visit::Either::Left(visitor) => Fold::fold_ts_fn_type(visitor, node),
98661            swc_visit::Either::Right(visitor) => Fold::fold_ts_fn_type(visitor, node),
98662        }
98663    }
98664
98665    #[inline]
98666    fn fold_ts_getter_signature(&mut self, node: TsGetterSignature) -> TsGetterSignature {
98667        match self {
98668            swc_visit::Either::Left(visitor) => Fold::fold_ts_getter_signature(visitor, node),
98669            swc_visit::Either::Right(visitor) => Fold::fold_ts_getter_signature(visitor, node),
98670        }
98671    }
98672
98673    #[inline]
98674    fn fold_ts_import_call_options(&mut self, node: TsImportCallOptions) -> TsImportCallOptions {
98675        match self {
98676            swc_visit::Either::Left(visitor) => Fold::fold_ts_import_call_options(visitor, node),
98677            swc_visit::Either::Right(visitor) => Fold::fold_ts_import_call_options(visitor, node),
98678        }
98679    }
98680
98681    #[inline]
98682    fn fold_ts_import_equals_decl(&mut self, node: TsImportEqualsDecl) -> TsImportEqualsDecl {
98683        match self {
98684            swc_visit::Either::Left(visitor) => Fold::fold_ts_import_equals_decl(visitor, node),
98685            swc_visit::Either::Right(visitor) => Fold::fold_ts_import_equals_decl(visitor, node),
98686        }
98687    }
98688
98689    #[inline]
98690    fn fold_ts_import_type(&mut self, node: TsImportType) -> TsImportType {
98691        match self {
98692            swc_visit::Either::Left(visitor) => Fold::fold_ts_import_type(visitor, node),
98693            swc_visit::Either::Right(visitor) => Fold::fold_ts_import_type(visitor, node),
98694        }
98695    }
98696
98697    #[inline]
98698    fn fold_ts_index_signature(&mut self, node: TsIndexSignature) -> TsIndexSignature {
98699        match self {
98700            swc_visit::Either::Left(visitor) => Fold::fold_ts_index_signature(visitor, node),
98701            swc_visit::Either::Right(visitor) => Fold::fold_ts_index_signature(visitor, node),
98702        }
98703    }
98704
98705    #[inline]
98706    fn fold_ts_indexed_access_type(&mut self, node: TsIndexedAccessType) -> TsIndexedAccessType {
98707        match self {
98708            swc_visit::Either::Left(visitor) => Fold::fold_ts_indexed_access_type(visitor, node),
98709            swc_visit::Either::Right(visitor) => Fold::fold_ts_indexed_access_type(visitor, node),
98710        }
98711    }
98712
98713    #[inline]
98714    fn fold_ts_infer_type(&mut self, node: TsInferType) -> TsInferType {
98715        match self {
98716            swc_visit::Either::Left(visitor) => Fold::fold_ts_infer_type(visitor, node),
98717            swc_visit::Either::Right(visitor) => Fold::fold_ts_infer_type(visitor, node),
98718        }
98719    }
98720
98721    #[inline]
98722    fn fold_ts_instantiation(&mut self, node: TsInstantiation) -> TsInstantiation {
98723        match self {
98724            swc_visit::Either::Left(visitor) => Fold::fold_ts_instantiation(visitor, node),
98725            swc_visit::Either::Right(visitor) => Fold::fold_ts_instantiation(visitor, node),
98726        }
98727    }
98728
98729    #[inline]
98730    fn fold_ts_interface_body(&mut self, node: TsInterfaceBody) -> TsInterfaceBody {
98731        match self {
98732            swc_visit::Either::Left(visitor) => Fold::fold_ts_interface_body(visitor, node),
98733            swc_visit::Either::Right(visitor) => Fold::fold_ts_interface_body(visitor, node),
98734        }
98735    }
98736
98737    #[inline]
98738    fn fold_ts_interface_decl(&mut self, node: TsInterfaceDecl) -> TsInterfaceDecl {
98739        match self {
98740            swc_visit::Either::Left(visitor) => Fold::fold_ts_interface_decl(visitor, node),
98741            swc_visit::Either::Right(visitor) => Fold::fold_ts_interface_decl(visitor, node),
98742        }
98743    }
98744
98745    #[inline]
98746    fn fold_ts_intersection_type(&mut self, node: TsIntersectionType) -> TsIntersectionType {
98747        match self {
98748            swc_visit::Either::Left(visitor) => Fold::fold_ts_intersection_type(visitor, node),
98749            swc_visit::Either::Right(visitor) => Fold::fold_ts_intersection_type(visitor, node),
98750        }
98751    }
98752
98753    #[inline]
98754    fn fold_ts_keyword_type(&mut self, node: TsKeywordType) -> TsKeywordType {
98755        match self {
98756            swc_visit::Either::Left(visitor) => Fold::fold_ts_keyword_type(visitor, node),
98757            swc_visit::Either::Right(visitor) => Fold::fold_ts_keyword_type(visitor, node),
98758        }
98759    }
98760
98761    #[inline]
98762    fn fold_ts_keyword_type_kind(&mut self, node: TsKeywordTypeKind) -> TsKeywordTypeKind {
98763        match self {
98764            swc_visit::Either::Left(visitor) => Fold::fold_ts_keyword_type_kind(visitor, node),
98765            swc_visit::Either::Right(visitor) => Fold::fold_ts_keyword_type_kind(visitor, node),
98766        }
98767    }
98768
98769    #[inline]
98770    fn fold_ts_lit(&mut self, node: TsLit) -> TsLit {
98771        match self {
98772            swc_visit::Either::Left(visitor) => Fold::fold_ts_lit(visitor, node),
98773            swc_visit::Either::Right(visitor) => Fold::fold_ts_lit(visitor, node),
98774        }
98775    }
98776
98777    #[inline]
98778    fn fold_ts_lit_type(&mut self, node: TsLitType) -> TsLitType {
98779        match self {
98780            swc_visit::Either::Left(visitor) => Fold::fold_ts_lit_type(visitor, node),
98781            swc_visit::Either::Right(visitor) => Fold::fold_ts_lit_type(visitor, node),
98782        }
98783    }
98784
98785    #[inline]
98786    fn fold_ts_mapped_type(&mut self, node: TsMappedType) -> TsMappedType {
98787        match self {
98788            swc_visit::Either::Left(visitor) => Fold::fold_ts_mapped_type(visitor, node),
98789            swc_visit::Either::Right(visitor) => Fold::fold_ts_mapped_type(visitor, node),
98790        }
98791    }
98792
98793    #[inline]
98794    fn fold_ts_method_signature(&mut self, node: TsMethodSignature) -> TsMethodSignature {
98795        match self {
98796            swc_visit::Either::Left(visitor) => Fold::fold_ts_method_signature(visitor, node),
98797            swc_visit::Either::Right(visitor) => Fold::fold_ts_method_signature(visitor, node),
98798        }
98799    }
98800
98801    #[inline]
98802    fn fold_ts_module_block(&mut self, node: TsModuleBlock) -> TsModuleBlock {
98803        match self {
98804            swc_visit::Either::Left(visitor) => Fold::fold_ts_module_block(visitor, node),
98805            swc_visit::Either::Right(visitor) => Fold::fold_ts_module_block(visitor, node),
98806        }
98807    }
98808
98809    #[inline]
98810    fn fold_ts_module_decl(&mut self, node: TsModuleDecl) -> TsModuleDecl {
98811        match self {
98812            swc_visit::Either::Left(visitor) => Fold::fold_ts_module_decl(visitor, node),
98813            swc_visit::Either::Right(visitor) => Fold::fold_ts_module_decl(visitor, node),
98814        }
98815    }
98816
98817    #[inline]
98818    fn fold_ts_module_name(&mut self, node: TsModuleName) -> TsModuleName {
98819        match self {
98820            swc_visit::Either::Left(visitor) => Fold::fold_ts_module_name(visitor, node),
98821            swc_visit::Either::Right(visitor) => Fold::fold_ts_module_name(visitor, node),
98822        }
98823    }
98824
98825    #[inline]
98826    fn fold_ts_module_ref(&mut self, node: TsModuleRef) -> TsModuleRef {
98827        match self {
98828            swc_visit::Either::Left(visitor) => Fold::fold_ts_module_ref(visitor, node),
98829            swc_visit::Either::Right(visitor) => Fold::fold_ts_module_ref(visitor, node),
98830        }
98831    }
98832
98833    #[inline]
98834    fn fold_ts_namespace_body(&mut self, node: TsNamespaceBody) -> TsNamespaceBody {
98835        match self {
98836            swc_visit::Either::Left(visitor) => Fold::fold_ts_namespace_body(visitor, node),
98837            swc_visit::Either::Right(visitor) => Fold::fold_ts_namespace_body(visitor, node),
98838        }
98839    }
98840
98841    #[inline]
98842    fn fold_ts_namespace_decl(&mut self, node: TsNamespaceDecl) -> TsNamespaceDecl {
98843        match self {
98844            swc_visit::Either::Left(visitor) => Fold::fold_ts_namespace_decl(visitor, node),
98845            swc_visit::Either::Right(visitor) => Fold::fold_ts_namespace_decl(visitor, node),
98846        }
98847    }
98848
98849    #[inline]
98850    fn fold_ts_namespace_export_decl(
98851        &mut self,
98852        node: TsNamespaceExportDecl,
98853    ) -> TsNamespaceExportDecl {
98854        match self {
98855            swc_visit::Either::Left(visitor) => Fold::fold_ts_namespace_export_decl(visitor, node),
98856            swc_visit::Either::Right(visitor) => Fold::fold_ts_namespace_export_decl(visitor, node),
98857        }
98858    }
98859
98860    #[inline]
98861    fn fold_ts_non_null_expr(&mut self, node: TsNonNullExpr) -> TsNonNullExpr {
98862        match self {
98863            swc_visit::Either::Left(visitor) => Fold::fold_ts_non_null_expr(visitor, node),
98864            swc_visit::Either::Right(visitor) => Fold::fold_ts_non_null_expr(visitor, node),
98865        }
98866    }
98867
98868    #[inline]
98869    fn fold_ts_optional_type(&mut self, node: TsOptionalType) -> TsOptionalType {
98870        match self {
98871            swc_visit::Either::Left(visitor) => Fold::fold_ts_optional_type(visitor, node),
98872            swc_visit::Either::Right(visitor) => Fold::fold_ts_optional_type(visitor, node),
98873        }
98874    }
98875
98876    #[inline]
98877    fn fold_ts_param_prop(&mut self, node: TsParamProp) -> TsParamProp {
98878        match self {
98879            swc_visit::Either::Left(visitor) => Fold::fold_ts_param_prop(visitor, node),
98880            swc_visit::Either::Right(visitor) => Fold::fold_ts_param_prop(visitor, node),
98881        }
98882    }
98883
98884    #[inline]
98885    fn fold_ts_param_prop_param(&mut self, node: TsParamPropParam) -> TsParamPropParam {
98886        match self {
98887            swc_visit::Either::Left(visitor) => Fold::fold_ts_param_prop_param(visitor, node),
98888            swc_visit::Either::Right(visitor) => Fold::fold_ts_param_prop_param(visitor, node),
98889        }
98890    }
98891
98892    #[inline]
98893    fn fold_ts_parenthesized_type(&mut self, node: TsParenthesizedType) -> TsParenthesizedType {
98894        match self {
98895            swc_visit::Either::Left(visitor) => Fold::fold_ts_parenthesized_type(visitor, node),
98896            swc_visit::Either::Right(visitor) => Fold::fold_ts_parenthesized_type(visitor, node),
98897        }
98898    }
98899
98900    #[inline]
98901    fn fold_ts_property_signature(&mut self, node: TsPropertySignature) -> TsPropertySignature {
98902        match self {
98903            swc_visit::Either::Left(visitor) => Fold::fold_ts_property_signature(visitor, node),
98904            swc_visit::Either::Right(visitor) => Fold::fold_ts_property_signature(visitor, node),
98905        }
98906    }
98907
98908    #[inline]
98909    fn fold_ts_qualified_name(&mut self, node: TsQualifiedName) -> TsQualifiedName {
98910        match self {
98911            swc_visit::Either::Left(visitor) => Fold::fold_ts_qualified_name(visitor, node),
98912            swc_visit::Either::Right(visitor) => Fold::fold_ts_qualified_name(visitor, node),
98913        }
98914    }
98915
98916    #[inline]
98917    fn fold_ts_rest_type(&mut self, node: TsRestType) -> TsRestType {
98918        match self {
98919            swc_visit::Either::Left(visitor) => Fold::fold_ts_rest_type(visitor, node),
98920            swc_visit::Either::Right(visitor) => Fold::fold_ts_rest_type(visitor, node),
98921        }
98922    }
98923
98924    #[inline]
98925    fn fold_ts_satisfies_expr(&mut self, node: TsSatisfiesExpr) -> TsSatisfiesExpr {
98926        match self {
98927            swc_visit::Either::Left(visitor) => Fold::fold_ts_satisfies_expr(visitor, node),
98928            swc_visit::Either::Right(visitor) => Fold::fold_ts_satisfies_expr(visitor, node),
98929        }
98930    }
98931
98932    #[inline]
98933    fn fold_ts_setter_signature(&mut self, node: TsSetterSignature) -> TsSetterSignature {
98934        match self {
98935            swc_visit::Either::Left(visitor) => Fold::fold_ts_setter_signature(visitor, node),
98936            swc_visit::Either::Right(visitor) => Fold::fold_ts_setter_signature(visitor, node),
98937        }
98938    }
98939
98940    #[inline]
98941    fn fold_ts_this_type(&mut self, node: TsThisType) -> TsThisType {
98942        match self {
98943            swc_visit::Either::Left(visitor) => Fold::fold_ts_this_type(visitor, node),
98944            swc_visit::Either::Right(visitor) => Fold::fold_ts_this_type(visitor, node),
98945        }
98946    }
98947
98948    #[inline]
98949    fn fold_ts_this_type_or_ident(&mut self, node: TsThisTypeOrIdent) -> TsThisTypeOrIdent {
98950        match self {
98951            swc_visit::Either::Left(visitor) => Fold::fold_ts_this_type_or_ident(visitor, node),
98952            swc_visit::Either::Right(visitor) => Fold::fold_ts_this_type_or_ident(visitor, node),
98953        }
98954    }
98955
98956    #[inline]
98957    fn fold_ts_tpl_lit_type(&mut self, node: TsTplLitType) -> TsTplLitType {
98958        match self {
98959            swc_visit::Either::Left(visitor) => Fold::fold_ts_tpl_lit_type(visitor, node),
98960            swc_visit::Either::Right(visitor) => Fold::fold_ts_tpl_lit_type(visitor, node),
98961        }
98962    }
98963
98964    #[inline]
98965    fn fold_ts_tuple_element(&mut self, node: TsTupleElement) -> TsTupleElement {
98966        match self {
98967            swc_visit::Either::Left(visitor) => Fold::fold_ts_tuple_element(visitor, node),
98968            swc_visit::Either::Right(visitor) => Fold::fold_ts_tuple_element(visitor, node),
98969        }
98970    }
98971
98972    #[inline]
98973    fn fold_ts_tuple_elements(&mut self, node: Vec<TsTupleElement>) -> Vec<TsTupleElement> {
98974        match self {
98975            swc_visit::Either::Left(visitor) => Fold::fold_ts_tuple_elements(visitor, node),
98976            swc_visit::Either::Right(visitor) => Fold::fold_ts_tuple_elements(visitor, node),
98977        }
98978    }
98979
98980    #[inline]
98981    fn fold_ts_tuple_type(&mut self, node: TsTupleType) -> TsTupleType {
98982        match self {
98983            swc_visit::Either::Left(visitor) => Fold::fold_ts_tuple_type(visitor, node),
98984            swc_visit::Either::Right(visitor) => Fold::fold_ts_tuple_type(visitor, node),
98985        }
98986    }
98987
98988    #[inline]
98989    fn fold_ts_type(&mut self, node: TsType) -> TsType {
98990        match self {
98991            swc_visit::Either::Left(visitor) => Fold::fold_ts_type(visitor, node),
98992            swc_visit::Either::Right(visitor) => Fold::fold_ts_type(visitor, node),
98993        }
98994    }
98995
98996    #[inline]
98997    fn fold_ts_type_alias_decl(&mut self, node: TsTypeAliasDecl) -> TsTypeAliasDecl {
98998        match self {
98999            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_alias_decl(visitor, node),
99000            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_alias_decl(visitor, node),
99001        }
99002    }
99003
99004    #[inline]
99005    fn fold_ts_type_ann(&mut self, node: TsTypeAnn) -> TsTypeAnn {
99006        match self {
99007            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_ann(visitor, node),
99008            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_ann(visitor, node),
99009        }
99010    }
99011
99012    #[inline]
99013    fn fold_ts_type_assertion(&mut self, node: TsTypeAssertion) -> TsTypeAssertion {
99014        match self {
99015            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_assertion(visitor, node),
99016            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_assertion(visitor, node),
99017        }
99018    }
99019
99020    #[inline]
99021    fn fold_ts_type_element(&mut self, node: TsTypeElement) -> TsTypeElement {
99022        match self {
99023            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_element(visitor, node),
99024            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_element(visitor, node),
99025        }
99026    }
99027
99028    #[inline]
99029    fn fold_ts_type_elements(&mut self, node: Vec<TsTypeElement>) -> Vec<TsTypeElement> {
99030        match self {
99031            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_elements(visitor, node),
99032            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_elements(visitor, node),
99033        }
99034    }
99035
99036    #[inline]
99037    fn fold_ts_type_lit(&mut self, node: TsTypeLit) -> TsTypeLit {
99038        match self {
99039            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_lit(visitor, node),
99040            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_lit(visitor, node),
99041        }
99042    }
99043
99044    #[inline]
99045    fn fold_ts_type_operator(&mut self, node: TsTypeOperator) -> TsTypeOperator {
99046        match self {
99047            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_operator(visitor, node),
99048            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_operator(visitor, node),
99049        }
99050    }
99051
99052    #[inline]
99053    fn fold_ts_type_operator_op(&mut self, node: TsTypeOperatorOp) -> TsTypeOperatorOp {
99054        match self {
99055            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_operator_op(visitor, node),
99056            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_operator_op(visitor, node),
99057        }
99058    }
99059
99060    #[inline]
99061    fn fold_ts_type_param(&mut self, node: TsTypeParam) -> TsTypeParam {
99062        match self {
99063            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_param(visitor, node),
99064            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_param(visitor, node),
99065        }
99066    }
99067
99068    #[inline]
99069    fn fold_ts_type_param_decl(&mut self, node: TsTypeParamDecl) -> TsTypeParamDecl {
99070        match self {
99071            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_param_decl(visitor, node),
99072            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_param_decl(visitor, node),
99073        }
99074    }
99075
99076    #[inline]
99077    fn fold_ts_type_param_instantiation(
99078        &mut self,
99079        node: TsTypeParamInstantiation,
99080    ) -> TsTypeParamInstantiation {
99081        match self {
99082            swc_visit::Either::Left(visitor) => {
99083                Fold::fold_ts_type_param_instantiation(visitor, node)
99084            }
99085            swc_visit::Either::Right(visitor) => {
99086                Fold::fold_ts_type_param_instantiation(visitor, node)
99087            }
99088        }
99089    }
99090
99091    #[inline]
99092    fn fold_ts_type_params(&mut self, node: Vec<TsTypeParam>) -> Vec<TsTypeParam> {
99093        match self {
99094            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_params(visitor, node),
99095            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_params(visitor, node),
99096        }
99097    }
99098
99099    #[inline]
99100    fn fold_ts_type_predicate(&mut self, node: TsTypePredicate) -> TsTypePredicate {
99101        match self {
99102            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_predicate(visitor, node),
99103            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_predicate(visitor, node),
99104        }
99105    }
99106
99107    #[inline]
99108    fn fold_ts_type_query(&mut self, node: TsTypeQuery) -> TsTypeQuery {
99109        match self {
99110            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_query(visitor, node),
99111            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_query(visitor, node),
99112        }
99113    }
99114
99115    #[inline]
99116    fn fold_ts_type_query_expr(&mut self, node: TsTypeQueryExpr) -> TsTypeQueryExpr {
99117        match self {
99118            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_query_expr(visitor, node),
99119            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_query_expr(visitor, node),
99120        }
99121    }
99122
99123    #[inline]
99124    fn fold_ts_type_ref(&mut self, node: TsTypeRef) -> TsTypeRef {
99125        match self {
99126            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_ref(visitor, node),
99127            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_ref(visitor, node),
99128        }
99129    }
99130
99131    #[inline]
99132    fn fold_ts_types(&mut self, node: Vec<Box<TsType>>) -> Vec<Box<TsType>> {
99133        match self {
99134            swc_visit::Either::Left(visitor) => Fold::fold_ts_types(visitor, node),
99135            swc_visit::Either::Right(visitor) => Fold::fold_ts_types(visitor, node),
99136        }
99137    }
99138
99139    #[inline]
99140    fn fold_ts_union_or_intersection_type(
99141        &mut self,
99142        node: TsUnionOrIntersectionType,
99143    ) -> TsUnionOrIntersectionType {
99144        match self {
99145            swc_visit::Either::Left(visitor) => {
99146                Fold::fold_ts_union_or_intersection_type(visitor, node)
99147            }
99148            swc_visit::Either::Right(visitor) => {
99149                Fold::fold_ts_union_or_intersection_type(visitor, node)
99150            }
99151        }
99152    }
99153
99154    #[inline]
99155    fn fold_ts_union_type(&mut self, node: TsUnionType) -> TsUnionType {
99156        match self {
99157            swc_visit::Either::Left(visitor) => Fold::fold_ts_union_type(visitor, node),
99158            swc_visit::Either::Right(visitor) => Fold::fold_ts_union_type(visitor, node),
99159        }
99160    }
99161
99162    #[inline]
99163    fn fold_unary_expr(&mut self, node: UnaryExpr) -> UnaryExpr {
99164        match self {
99165            swc_visit::Either::Left(visitor) => Fold::fold_unary_expr(visitor, node),
99166            swc_visit::Either::Right(visitor) => Fold::fold_unary_expr(visitor, node),
99167        }
99168    }
99169
99170    #[inline]
99171    fn fold_unary_op(&mut self, node: UnaryOp) -> UnaryOp {
99172        match self {
99173            swc_visit::Either::Left(visitor) => Fold::fold_unary_op(visitor, node),
99174            swc_visit::Either::Right(visitor) => Fold::fold_unary_op(visitor, node),
99175        }
99176    }
99177
99178    #[inline]
99179    fn fold_update_expr(&mut self, node: UpdateExpr) -> UpdateExpr {
99180        match self {
99181            swc_visit::Either::Left(visitor) => Fold::fold_update_expr(visitor, node),
99182            swc_visit::Either::Right(visitor) => Fold::fold_update_expr(visitor, node),
99183        }
99184    }
99185
99186    #[inline]
99187    fn fold_update_op(&mut self, node: UpdateOp) -> UpdateOp {
99188        match self {
99189            swc_visit::Either::Left(visitor) => Fold::fold_update_op(visitor, node),
99190            swc_visit::Either::Right(visitor) => Fold::fold_update_op(visitor, node),
99191        }
99192    }
99193
99194    #[inline]
99195    fn fold_using_decl(&mut self, node: UsingDecl) -> UsingDecl {
99196        match self {
99197            swc_visit::Either::Left(visitor) => Fold::fold_using_decl(visitor, node),
99198            swc_visit::Either::Right(visitor) => Fold::fold_using_decl(visitor, node),
99199        }
99200    }
99201
99202    #[inline]
99203    fn fold_var_decl(&mut self, node: VarDecl) -> VarDecl {
99204        match self {
99205            swc_visit::Either::Left(visitor) => Fold::fold_var_decl(visitor, node),
99206            swc_visit::Either::Right(visitor) => Fold::fold_var_decl(visitor, node),
99207        }
99208    }
99209
99210    #[inline]
99211    fn fold_var_decl_kind(&mut self, node: VarDeclKind) -> VarDeclKind {
99212        match self {
99213            swc_visit::Either::Left(visitor) => Fold::fold_var_decl_kind(visitor, node),
99214            swc_visit::Either::Right(visitor) => Fold::fold_var_decl_kind(visitor, node),
99215        }
99216    }
99217
99218    #[inline]
99219    fn fold_var_decl_or_expr(&mut self, node: VarDeclOrExpr) -> VarDeclOrExpr {
99220        match self {
99221            swc_visit::Either::Left(visitor) => Fold::fold_var_decl_or_expr(visitor, node),
99222            swc_visit::Either::Right(visitor) => Fold::fold_var_decl_or_expr(visitor, node),
99223        }
99224    }
99225
99226    #[inline]
99227    fn fold_var_declarator(&mut self, node: VarDeclarator) -> VarDeclarator {
99228        match self {
99229            swc_visit::Either::Left(visitor) => Fold::fold_var_declarator(visitor, node),
99230            swc_visit::Either::Right(visitor) => Fold::fold_var_declarator(visitor, node),
99231        }
99232    }
99233
99234    #[inline]
99235    fn fold_var_declarators(&mut self, node: Vec<VarDeclarator>) -> Vec<VarDeclarator> {
99236        match self {
99237            swc_visit::Either::Left(visitor) => Fold::fold_var_declarators(visitor, node),
99238            swc_visit::Either::Right(visitor) => Fold::fold_var_declarators(visitor, node),
99239        }
99240    }
99241
99242    #[inline]
99243    fn fold_while_stmt(&mut self, node: WhileStmt) -> WhileStmt {
99244        match self {
99245            swc_visit::Either::Left(visitor) => Fold::fold_while_stmt(visitor, node),
99246            swc_visit::Either::Right(visitor) => Fold::fold_while_stmt(visitor, node),
99247        }
99248    }
99249
99250    #[inline]
99251    fn fold_with_stmt(&mut self, node: WithStmt) -> WithStmt {
99252        match self {
99253            swc_visit::Either::Left(visitor) => Fold::fold_with_stmt(visitor, node),
99254            swc_visit::Either::Right(visitor) => Fold::fold_with_stmt(visitor, node),
99255        }
99256    }
99257
99258    #[inline]
99259    fn fold_yield_expr(&mut self, node: YieldExpr) -> YieldExpr {
99260        match self {
99261            swc_visit::Either::Left(visitor) => Fold::fold_yield_expr(visitor, node),
99262            swc_visit::Either::Right(visitor) => Fold::fold_yield_expr(visitor, node),
99263        }
99264    }
99265}
99266impl<V> Fold for ::swc_visit::Optional<V>
99267where
99268    V: Fold,
99269{
99270    #[inline]
99271    fn fold_accessibility(&mut self, node: Accessibility) -> Accessibility {
99272        if self.enabled {
99273            <V as Fold>::fold_accessibility(&mut self.visitor, node)
99274        } else {
99275            node
99276        }
99277    }
99278
99279    #[inline]
99280    fn fold_array_lit(&mut self, node: ArrayLit) -> ArrayLit {
99281        if self.enabled {
99282            <V as Fold>::fold_array_lit(&mut self.visitor, node)
99283        } else {
99284            node
99285        }
99286    }
99287
99288    #[inline]
99289    fn fold_array_pat(&mut self, node: ArrayPat) -> ArrayPat {
99290        if self.enabled {
99291            <V as Fold>::fold_array_pat(&mut self.visitor, node)
99292        } else {
99293            node
99294        }
99295    }
99296
99297    #[inline]
99298    fn fold_arrow_expr(&mut self, node: ArrowExpr) -> ArrowExpr {
99299        if self.enabled {
99300            <V as Fold>::fold_arrow_expr(&mut self.visitor, node)
99301        } else {
99302            node
99303        }
99304    }
99305
99306    #[inline]
99307    fn fold_assign_expr(&mut self, node: AssignExpr) -> AssignExpr {
99308        if self.enabled {
99309            <V as Fold>::fold_assign_expr(&mut self.visitor, node)
99310        } else {
99311            node
99312        }
99313    }
99314
99315    #[inline]
99316    fn fold_assign_op(&mut self, node: AssignOp) -> AssignOp {
99317        if self.enabled {
99318            <V as Fold>::fold_assign_op(&mut self.visitor, node)
99319        } else {
99320            node
99321        }
99322    }
99323
99324    #[inline]
99325    fn fold_assign_pat(&mut self, node: AssignPat) -> AssignPat {
99326        if self.enabled {
99327            <V as Fold>::fold_assign_pat(&mut self.visitor, node)
99328        } else {
99329            node
99330        }
99331    }
99332
99333    #[inline]
99334    fn fold_assign_pat_prop(&mut self, node: AssignPatProp) -> AssignPatProp {
99335        if self.enabled {
99336            <V as Fold>::fold_assign_pat_prop(&mut self.visitor, node)
99337        } else {
99338            node
99339        }
99340    }
99341
99342    #[inline]
99343    fn fold_assign_prop(&mut self, node: AssignProp) -> AssignProp {
99344        if self.enabled {
99345            <V as Fold>::fold_assign_prop(&mut self.visitor, node)
99346        } else {
99347            node
99348        }
99349    }
99350
99351    #[inline]
99352    fn fold_assign_target(&mut self, node: AssignTarget) -> AssignTarget {
99353        if self.enabled {
99354            <V as Fold>::fold_assign_target(&mut self.visitor, node)
99355        } else {
99356            node
99357        }
99358    }
99359
99360    #[inline]
99361    fn fold_assign_target_pat(&mut self, node: AssignTargetPat) -> AssignTargetPat {
99362        if self.enabled {
99363            <V as Fold>::fold_assign_target_pat(&mut self.visitor, node)
99364        } else {
99365            node
99366        }
99367    }
99368
99369    #[inline]
99370    fn fold_atom(&mut self, node: swc_atoms::Atom) -> swc_atoms::Atom {
99371        if self.enabled {
99372            <V as Fold>::fold_atom(&mut self.visitor, node)
99373        } else {
99374            node
99375        }
99376    }
99377
99378    #[inline]
99379    fn fold_auto_accessor(&mut self, node: AutoAccessor) -> AutoAccessor {
99380        if self.enabled {
99381            <V as Fold>::fold_auto_accessor(&mut self.visitor, node)
99382        } else {
99383            node
99384        }
99385    }
99386
99387    #[inline]
99388    fn fold_await_expr(&mut self, node: AwaitExpr) -> AwaitExpr {
99389        if self.enabled {
99390            <V as Fold>::fold_await_expr(&mut self.visitor, node)
99391        } else {
99392            node
99393        }
99394    }
99395
99396    #[inline]
99397    fn fold_big_int(&mut self, node: BigInt) -> BigInt {
99398        if self.enabled {
99399            <V as Fold>::fold_big_int(&mut self.visitor, node)
99400        } else {
99401            node
99402        }
99403    }
99404
99405    #[inline]
99406    fn fold_big_int_value(&mut self, node: BigIntValue) -> BigIntValue {
99407        if self.enabled {
99408            <V as Fold>::fold_big_int_value(&mut self.visitor, node)
99409        } else {
99410            node
99411        }
99412    }
99413
99414    #[inline]
99415    fn fold_bin_expr(&mut self, node: BinExpr) -> BinExpr {
99416        if self.enabled {
99417            <V as Fold>::fold_bin_expr(&mut self.visitor, node)
99418        } else {
99419            node
99420        }
99421    }
99422
99423    #[inline]
99424    fn fold_binary_op(&mut self, node: BinaryOp) -> BinaryOp {
99425        if self.enabled {
99426            <V as Fold>::fold_binary_op(&mut self.visitor, node)
99427        } else {
99428            node
99429        }
99430    }
99431
99432    #[inline]
99433    fn fold_binding_ident(&mut self, node: BindingIdent) -> BindingIdent {
99434        if self.enabled {
99435            <V as Fold>::fold_binding_ident(&mut self.visitor, node)
99436        } else {
99437            node
99438        }
99439    }
99440
99441    #[inline]
99442    fn fold_block_stmt(&mut self, node: BlockStmt) -> BlockStmt {
99443        if self.enabled {
99444            <V as Fold>::fold_block_stmt(&mut self.visitor, node)
99445        } else {
99446            node
99447        }
99448    }
99449
99450    #[inline]
99451    fn fold_block_stmt_or_expr(&mut self, node: BlockStmtOrExpr) -> BlockStmtOrExpr {
99452        if self.enabled {
99453            <V as Fold>::fold_block_stmt_or_expr(&mut self.visitor, node)
99454        } else {
99455            node
99456        }
99457    }
99458
99459    #[inline]
99460    fn fold_bool(&mut self, node: Bool) -> Bool {
99461        if self.enabled {
99462            <V as Fold>::fold_bool(&mut self.visitor, node)
99463        } else {
99464            node
99465        }
99466    }
99467
99468    #[inline]
99469    fn fold_break_stmt(&mut self, node: BreakStmt) -> BreakStmt {
99470        if self.enabled {
99471            <V as Fold>::fold_break_stmt(&mut self.visitor, node)
99472        } else {
99473            node
99474        }
99475    }
99476
99477    #[inline]
99478    fn fold_call_expr(&mut self, node: CallExpr) -> CallExpr {
99479        if self.enabled {
99480            <V as Fold>::fold_call_expr(&mut self.visitor, node)
99481        } else {
99482            node
99483        }
99484    }
99485
99486    #[inline]
99487    fn fold_callee(&mut self, node: Callee) -> Callee {
99488        if self.enabled {
99489            <V as Fold>::fold_callee(&mut self.visitor, node)
99490        } else {
99491            node
99492        }
99493    }
99494
99495    #[inline]
99496    fn fold_catch_clause(&mut self, node: CatchClause) -> CatchClause {
99497        if self.enabled {
99498            <V as Fold>::fold_catch_clause(&mut self.visitor, node)
99499        } else {
99500            node
99501        }
99502    }
99503
99504    #[inline]
99505    fn fold_class(&mut self, node: Class) -> Class {
99506        if self.enabled {
99507            <V as Fold>::fold_class(&mut self.visitor, node)
99508        } else {
99509            node
99510        }
99511    }
99512
99513    #[inline]
99514    fn fold_class_decl(&mut self, node: ClassDecl) -> ClassDecl {
99515        if self.enabled {
99516            <V as Fold>::fold_class_decl(&mut self.visitor, node)
99517        } else {
99518            node
99519        }
99520    }
99521
99522    #[inline]
99523    fn fold_class_expr(&mut self, node: ClassExpr) -> ClassExpr {
99524        if self.enabled {
99525            <V as Fold>::fold_class_expr(&mut self.visitor, node)
99526        } else {
99527            node
99528        }
99529    }
99530
99531    #[inline]
99532    fn fold_class_member(&mut self, node: ClassMember) -> ClassMember {
99533        if self.enabled {
99534            <V as Fold>::fold_class_member(&mut self.visitor, node)
99535        } else {
99536            node
99537        }
99538    }
99539
99540    #[inline]
99541    fn fold_class_members(&mut self, node: Vec<ClassMember>) -> Vec<ClassMember> {
99542        if self.enabled {
99543            <V as Fold>::fold_class_members(&mut self.visitor, node)
99544        } else {
99545            node
99546        }
99547    }
99548
99549    #[inline]
99550    fn fold_class_method(&mut self, node: ClassMethod) -> ClassMethod {
99551        if self.enabled {
99552            <V as Fold>::fold_class_method(&mut self.visitor, node)
99553        } else {
99554            node
99555        }
99556    }
99557
99558    #[inline]
99559    fn fold_class_prop(&mut self, node: ClassProp) -> ClassProp {
99560        if self.enabled {
99561            <V as Fold>::fold_class_prop(&mut self.visitor, node)
99562        } else {
99563            node
99564        }
99565    }
99566
99567    #[inline]
99568    fn fold_computed_prop_name(&mut self, node: ComputedPropName) -> ComputedPropName {
99569        if self.enabled {
99570            <V as Fold>::fold_computed_prop_name(&mut self.visitor, node)
99571        } else {
99572            node
99573        }
99574    }
99575
99576    #[inline]
99577    fn fold_cond_expr(&mut self, node: CondExpr) -> CondExpr {
99578        if self.enabled {
99579            <V as Fold>::fold_cond_expr(&mut self.visitor, node)
99580        } else {
99581            node
99582        }
99583    }
99584
99585    #[inline]
99586    fn fold_constructor(&mut self, node: Constructor) -> Constructor {
99587        if self.enabled {
99588            <V as Fold>::fold_constructor(&mut self.visitor, node)
99589        } else {
99590            node
99591        }
99592    }
99593
99594    #[inline]
99595    fn fold_continue_stmt(&mut self, node: ContinueStmt) -> ContinueStmt {
99596        if self.enabled {
99597            <V as Fold>::fold_continue_stmt(&mut self.visitor, node)
99598        } else {
99599            node
99600        }
99601    }
99602
99603    #[inline]
99604    fn fold_debugger_stmt(&mut self, node: DebuggerStmt) -> DebuggerStmt {
99605        if self.enabled {
99606            <V as Fold>::fold_debugger_stmt(&mut self.visitor, node)
99607        } else {
99608            node
99609        }
99610    }
99611
99612    #[inline]
99613    fn fold_decl(&mut self, node: Decl) -> Decl {
99614        if self.enabled {
99615            <V as Fold>::fold_decl(&mut self.visitor, node)
99616        } else {
99617            node
99618        }
99619    }
99620
99621    #[inline]
99622    fn fold_decorator(&mut self, node: Decorator) -> Decorator {
99623        if self.enabled {
99624            <V as Fold>::fold_decorator(&mut self.visitor, node)
99625        } else {
99626            node
99627        }
99628    }
99629
99630    #[inline]
99631    fn fold_decorators(&mut self, node: Vec<Decorator>) -> Vec<Decorator> {
99632        if self.enabled {
99633            <V as Fold>::fold_decorators(&mut self.visitor, node)
99634        } else {
99635            node
99636        }
99637    }
99638
99639    #[inline]
99640    fn fold_default_decl(&mut self, node: DefaultDecl) -> DefaultDecl {
99641        if self.enabled {
99642            <V as Fold>::fold_default_decl(&mut self.visitor, node)
99643        } else {
99644            node
99645        }
99646    }
99647
99648    #[inline]
99649    fn fold_do_while_stmt(&mut self, node: DoWhileStmt) -> DoWhileStmt {
99650        if self.enabled {
99651            <V as Fold>::fold_do_while_stmt(&mut self.visitor, node)
99652        } else {
99653            node
99654        }
99655    }
99656
99657    #[inline]
99658    fn fold_empty_stmt(&mut self, node: EmptyStmt) -> EmptyStmt {
99659        if self.enabled {
99660            <V as Fold>::fold_empty_stmt(&mut self.visitor, node)
99661        } else {
99662            node
99663        }
99664    }
99665
99666    #[inline]
99667    fn fold_export_all(&mut self, node: ExportAll) -> ExportAll {
99668        if self.enabled {
99669            <V as Fold>::fold_export_all(&mut self.visitor, node)
99670        } else {
99671            node
99672        }
99673    }
99674
99675    #[inline]
99676    fn fold_export_decl(&mut self, node: ExportDecl) -> ExportDecl {
99677        if self.enabled {
99678            <V as Fold>::fold_export_decl(&mut self.visitor, node)
99679        } else {
99680            node
99681        }
99682    }
99683
99684    #[inline]
99685    fn fold_export_default_decl(&mut self, node: ExportDefaultDecl) -> ExportDefaultDecl {
99686        if self.enabled {
99687            <V as Fold>::fold_export_default_decl(&mut self.visitor, node)
99688        } else {
99689            node
99690        }
99691    }
99692
99693    #[inline]
99694    fn fold_export_default_expr(&mut self, node: ExportDefaultExpr) -> ExportDefaultExpr {
99695        if self.enabled {
99696            <V as Fold>::fold_export_default_expr(&mut self.visitor, node)
99697        } else {
99698            node
99699        }
99700    }
99701
99702    #[inline]
99703    fn fold_export_default_specifier(
99704        &mut self,
99705        node: ExportDefaultSpecifier,
99706    ) -> ExportDefaultSpecifier {
99707        if self.enabled {
99708            <V as Fold>::fold_export_default_specifier(&mut self.visitor, node)
99709        } else {
99710            node
99711        }
99712    }
99713
99714    #[inline]
99715    fn fold_export_named_specifier(&mut self, node: ExportNamedSpecifier) -> ExportNamedSpecifier {
99716        if self.enabled {
99717            <V as Fold>::fold_export_named_specifier(&mut self.visitor, node)
99718        } else {
99719            node
99720        }
99721    }
99722
99723    #[inline]
99724    fn fold_export_namespace_specifier(
99725        &mut self,
99726        node: ExportNamespaceSpecifier,
99727    ) -> ExportNamespaceSpecifier {
99728        if self.enabled {
99729            <V as Fold>::fold_export_namespace_specifier(&mut self.visitor, node)
99730        } else {
99731            node
99732        }
99733    }
99734
99735    #[inline]
99736    fn fold_export_specifier(&mut self, node: ExportSpecifier) -> ExportSpecifier {
99737        if self.enabled {
99738            <V as Fold>::fold_export_specifier(&mut self.visitor, node)
99739        } else {
99740            node
99741        }
99742    }
99743
99744    #[inline]
99745    fn fold_export_specifiers(&mut self, node: Vec<ExportSpecifier>) -> Vec<ExportSpecifier> {
99746        if self.enabled {
99747            <V as Fold>::fold_export_specifiers(&mut self.visitor, node)
99748        } else {
99749            node
99750        }
99751    }
99752
99753    #[inline]
99754    fn fold_expr(&mut self, node: Expr) -> Expr {
99755        if self.enabled {
99756            <V as Fold>::fold_expr(&mut self.visitor, node)
99757        } else {
99758            node
99759        }
99760    }
99761
99762    #[inline]
99763    fn fold_expr_or_spread(&mut self, node: ExprOrSpread) -> ExprOrSpread {
99764        if self.enabled {
99765            <V as Fold>::fold_expr_or_spread(&mut self.visitor, node)
99766        } else {
99767            node
99768        }
99769    }
99770
99771    #[inline]
99772    fn fold_expr_or_spreads(&mut self, node: Vec<ExprOrSpread>) -> Vec<ExprOrSpread> {
99773        if self.enabled {
99774            <V as Fold>::fold_expr_or_spreads(&mut self.visitor, node)
99775        } else {
99776            node
99777        }
99778    }
99779
99780    #[inline]
99781    fn fold_expr_stmt(&mut self, node: ExprStmt) -> ExprStmt {
99782        if self.enabled {
99783            <V as Fold>::fold_expr_stmt(&mut self.visitor, node)
99784        } else {
99785            node
99786        }
99787    }
99788
99789    #[inline]
99790    fn fold_exprs(&mut self, node: Vec<Box<Expr>>) -> Vec<Box<Expr>> {
99791        if self.enabled {
99792            <V as Fold>::fold_exprs(&mut self.visitor, node)
99793        } else {
99794            node
99795        }
99796    }
99797
99798    #[inline]
99799    fn fold_fn_decl(&mut self, node: FnDecl) -> FnDecl {
99800        if self.enabled {
99801            <V as Fold>::fold_fn_decl(&mut self.visitor, node)
99802        } else {
99803            node
99804        }
99805    }
99806
99807    #[inline]
99808    fn fold_fn_expr(&mut self, node: FnExpr) -> FnExpr {
99809        if self.enabled {
99810            <V as Fold>::fold_fn_expr(&mut self.visitor, node)
99811        } else {
99812            node
99813        }
99814    }
99815
99816    #[inline]
99817    fn fold_for_head(&mut self, node: ForHead) -> ForHead {
99818        if self.enabled {
99819            <V as Fold>::fold_for_head(&mut self.visitor, node)
99820        } else {
99821            node
99822        }
99823    }
99824
99825    #[inline]
99826    fn fold_for_in_stmt(&mut self, node: ForInStmt) -> ForInStmt {
99827        if self.enabled {
99828            <V as Fold>::fold_for_in_stmt(&mut self.visitor, node)
99829        } else {
99830            node
99831        }
99832    }
99833
99834    #[inline]
99835    fn fold_for_of_stmt(&mut self, node: ForOfStmt) -> ForOfStmt {
99836        if self.enabled {
99837            <V as Fold>::fold_for_of_stmt(&mut self.visitor, node)
99838        } else {
99839            node
99840        }
99841    }
99842
99843    #[inline]
99844    fn fold_for_stmt(&mut self, node: ForStmt) -> ForStmt {
99845        if self.enabled {
99846            <V as Fold>::fold_for_stmt(&mut self.visitor, node)
99847        } else {
99848            node
99849        }
99850    }
99851
99852    #[inline]
99853    fn fold_function(&mut self, node: Function) -> Function {
99854        if self.enabled {
99855            <V as Fold>::fold_function(&mut self.visitor, node)
99856        } else {
99857            node
99858        }
99859    }
99860
99861    #[inline]
99862    fn fold_getter_prop(&mut self, node: GetterProp) -> GetterProp {
99863        if self.enabled {
99864            <V as Fold>::fold_getter_prop(&mut self.visitor, node)
99865        } else {
99866            node
99867        }
99868    }
99869
99870    #[inline]
99871    fn fold_ident(&mut self, node: Ident) -> Ident {
99872        if self.enabled {
99873            <V as Fold>::fold_ident(&mut self.visitor, node)
99874        } else {
99875            node
99876        }
99877    }
99878
99879    #[inline]
99880    fn fold_ident_name(&mut self, node: IdentName) -> IdentName {
99881        if self.enabled {
99882            <V as Fold>::fold_ident_name(&mut self.visitor, node)
99883        } else {
99884            node
99885        }
99886    }
99887
99888    #[inline]
99889    fn fold_if_stmt(&mut self, node: IfStmt) -> IfStmt {
99890        if self.enabled {
99891            <V as Fold>::fold_if_stmt(&mut self.visitor, node)
99892        } else {
99893            node
99894        }
99895    }
99896
99897    #[inline]
99898    fn fold_import(&mut self, node: Import) -> Import {
99899        if self.enabled {
99900            <V as Fold>::fold_import(&mut self.visitor, node)
99901        } else {
99902            node
99903        }
99904    }
99905
99906    #[inline]
99907    fn fold_import_decl(&mut self, node: ImportDecl) -> ImportDecl {
99908        if self.enabled {
99909            <V as Fold>::fold_import_decl(&mut self.visitor, node)
99910        } else {
99911            node
99912        }
99913    }
99914
99915    #[inline]
99916    fn fold_import_default_specifier(
99917        &mut self,
99918        node: ImportDefaultSpecifier,
99919    ) -> ImportDefaultSpecifier {
99920        if self.enabled {
99921            <V as Fold>::fold_import_default_specifier(&mut self.visitor, node)
99922        } else {
99923            node
99924        }
99925    }
99926
99927    #[inline]
99928    fn fold_import_named_specifier(&mut self, node: ImportNamedSpecifier) -> ImportNamedSpecifier {
99929        if self.enabled {
99930            <V as Fold>::fold_import_named_specifier(&mut self.visitor, node)
99931        } else {
99932            node
99933        }
99934    }
99935
99936    #[inline]
99937    fn fold_import_phase(&mut self, node: ImportPhase) -> ImportPhase {
99938        if self.enabled {
99939            <V as Fold>::fold_import_phase(&mut self.visitor, node)
99940        } else {
99941            node
99942        }
99943    }
99944
99945    #[inline]
99946    fn fold_import_specifier(&mut self, node: ImportSpecifier) -> ImportSpecifier {
99947        if self.enabled {
99948            <V as Fold>::fold_import_specifier(&mut self.visitor, node)
99949        } else {
99950            node
99951        }
99952    }
99953
99954    #[inline]
99955    fn fold_import_specifiers(&mut self, node: Vec<ImportSpecifier>) -> Vec<ImportSpecifier> {
99956        if self.enabled {
99957            <V as Fold>::fold_import_specifiers(&mut self.visitor, node)
99958        } else {
99959            node
99960        }
99961    }
99962
99963    #[inline]
99964    fn fold_import_star_as_specifier(
99965        &mut self,
99966        node: ImportStarAsSpecifier,
99967    ) -> ImportStarAsSpecifier {
99968        if self.enabled {
99969            <V as Fold>::fold_import_star_as_specifier(&mut self.visitor, node)
99970        } else {
99971            node
99972        }
99973    }
99974
99975    #[inline]
99976    fn fold_import_with(&mut self, node: ImportWith) -> ImportWith {
99977        if self.enabled {
99978            <V as Fold>::fold_import_with(&mut self.visitor, node)
99979        } else {
99980            node
99981        }
99982    }
99983
99984    #[inline]
99985    fn fold_import_with_item(&mut self, node: ImportWithItem) -> ImportWithItem {
99986        if self.enabled {
99987            <V as Fold>::fold_import_with_item(&mut self.visitor, node)
99988        } else {
99989            node
99990        }
99991    }
99992
99993    #[inline]
99994    fn fold_import_with_items(&mut self, node: Vec<ImportWithItem>) -> Vec<ImportWithItem> {
99995        if self.enabled {
99996            <V as Fold>::fold_import_with_items(&mut self.visitor, node)
99997        } else {
99998            node
99999        }
100000    }
100001
100002    #[inline]
100003    fn fold_invalid(&mut self, node: Invalid) -> Invalid {
100004        if self.enabled {
100005            <V as Fold>::fold_invalid(&mut self.visitor, node)
100006        } else {
100007            node
100008        }
100009    }
100010
100011    #[inline]
100012    fn fold_jsx_attr(&mut self, node: JSXAttr) -> JSXAttr {
100013        if self.enabled {
100014            <V as Fold>::fold_jsx_attr(&mut self.visitor, node)
100015        } else {
100016            node
100017        }
100018    }
100019
100020    #[inline]
100021    fn fold_jsx_attr_name(&mut self, node: JSXAttrName) -> JSXAttrName {
100022        if self.enabled {
100023            <V as Fold>::fold_jsx_attr_name(&mut self.visitor, node)
100024        } else {
100025            node
100026        }
100027    }
100028
100029    #[inline]
100030    fn fold_jsx_attr_or_spread(&mut self, node: JSXAttrOrSpread) -> JSXAttrOrSpread {
100031        if self.enabled {
100032            <V as Fold>::fold_jsx_attr_or_spread(&mut self.visitor, node)
100033        } else {
100034            node
100035        }
100036    }
100037
100038    #[inline]
100039    fn fold_jsx_attr_or_spreads(&mut self, node: Vec<JSXAttrOrSpread>) -> Vec<JSXAttrOrSpread> {
100040        if self.enabled {
100041            <V as Fold>::fold_jsx_attr_or_spreads(&mut self.visitor, node)
100042        } else {
100043            node
100044        }
100045    }
100046
100047    #[inline]
100048    fn fold_jsx_attr_value(&mut self, node: JSXAttrValue) -> JSXAttrValue {
100049        if self.enabled {
100050            <V as Fold>::fold_jsx_attr_value(&mut self.visitor, node)
100051        } else {
100052            node
100053        }
100054    }
100055
100056    #[inline]
100057    fn fold_jsx_closing_element(&mut self, node: JSXClosingElement) -> JSXClosingElement {
100058        if self.enabled {
100059            <V as Fold>::fold_jsx_closing_element(&mut self.visitor, node)
100060        } else {
100061            node
100062        }
100063    }
100064
100065    #[inline]
100066    fn fold_jsx_closing_fragment(&mut self, node: JSXClosingFragment) -> JSXClosingFragment {
100067        if self.enabled {
100068            <V as Fold>::fold_jsx_closing_fragment(&mut self.visitor, node)
100069        } else {
100070            node
100071        }
100072    }
100073
100074    #[inline]
100075    fn fold_jsx_element(&mut self, node: JSXElement) -> JSXElement {
100076        if self.enabled {
100077            <V as Fold>::fold_jsx_element(&mut self.visitor, node)
100078        } else {
100079            node
100080        }
100081    }
100082
100083    #[inline]
100084    fn fold_jsx_element_child(&mut self, node: JSXElementChild) -> JSXElementChild {
100085        if self.enabled {
100086            <V as Fold>::fold_jsx_element_child(&mut self.visitor, node)
100087        } else {
100088            node
100089        }
100090    }
100091
100092    #[inline]
100093    fn fold_jsx_element_childs(&mut self, node: Vec<JSXElementChild>) -> Vec<JSXElementChild> {
100094        if self.enabled {
100095            <V as Fold>::fold_jsx_element_childs(&mut self.visitor, node)
100096        } else {
100097            node
100098        }
100099    }
100100
100101    #[inline]
100102    fn fold_jsx_element_name(&mut self, node: JSXElementName) -> JSXElementName {
100103        if self.enabled {
100104            <V as Fold>::fold_jsx_element_name(&mut self.visitor, node)
100105        } else {
100106            node
100107        }
100108    }
100109
100110    #[inline]
100111    fn fold_jsx_empty_expr(&mut self, node: JSXEmptyExpr) -> JSXEmptyExpr {
100112        if self.enabled {
100113            <V as Fold>::fold_jsx_empty_expr(&mut self.visitor, node)
100114        } else {
100115            node
100116        }
100117    }
100118
100119    #[inline]
100120    fn fold_jsx_expr(&mut self, node: JSXExpr) -> JSXExpr {
100121        if self.enabled {
100122            <V as Fold>::fold_jsx_expr(&mut self.visitor, node)
100123        } else {
100124            node
100125        }
100126    }
100127
100128    #[inline]
100129    fn fold_jsx_expr_container(&mut self, node: JSXExprContainer) -> JSXExprContainer {
100130        if self.enabled {
100131            <V as Fold>::fold_jsx_expr_container(&mut self.visitor, node)
100132        } else {
100133            node
100134        }
100135    }
100136
100137    #[inline]
100138    fn fold_jsx_fragment(&mut self, node: JSXFragment) -> JSXFragment {
100139        if self.enabled {
100140            <V as Fold>::fold_jsx_fragment(&mut self.visitor, node)
100141        } else {
100142            node
100143        }
100144    }
100145
100146    #[inline]
100147    fn fold_jsx_member_expr(&mut self, node: JSXMemberExpr) -> JSXMemberExpr {
100148        if self.enabled {
100149            <V as Fold>::fold_jsx_member_expr(&mut self.visitor, node)
100150        } else {
100151            node
100152        }
100153    }
100154
100155    #[inline]
100156    fn fold_jsx_namespaced_name(&mut self, node: JSXNamespacedName) -> JSXNamespacedName {
100157        if self.enabled {
100158            <V as Fold>::fold_jsx_namespaced_name(&mut self.visitor, node)
100159        } else {
100160            node
100161        }
100162    }
100163
100164    #[inline]
100165    fn fold_jsx_object(&mut self, node: JSXObject) -> JSXObject {
100166        if self.enabled {
100167            <V as Fold>::fold_jsx_object(&mut self.visitor, node)
100168        } else {
100169            node
100170        }
100171    }
100172
100173    #[inline]
100174    fn fold_jsx_opening_element(&mut self, node: JSXOpeningElement) -> JSXOpeningElement {
100175        if self.enabled {
100176            <V as Fold>::fold_jsx_opening_element(&mut self.visitor, node)
100177        } else {
100178            node
100179        }
100180    }
100181
100182    #[inline]
100183    fn fold_jsx_opening_fragment(&mut self, node: JSXOpeningFragment) -> JSXOpeningFragment {
100184        if self.enabled {
100185            <V as Fold>::fold_jsx_opening_fragment(&mut self.visitor, node)
100186        } else {
100187            node
100188        }
100189    }
100190
100191    #[inline]
100192    fn fold_jsx_spread_child(&mut self, node: JSXSpreadChild) -> JSXSpreadChild {
100193        if self.enabled {
100194            <V as Fold>::fold_jsx_spread_child(&mut self.visitor, node)
100195        } else {
100196            node
100197        }
100198    }
100199
100200    #[inline]
100201    fn fold_jsx_text(&mut self, node: JSXText) -> JSXText {
100202        if self.enabled {
100203            <V as Fold>::fold_jsx_text(&mut self.visitor, node)
100204        } else {
100205            node
100206        }
100207    }
100208
100209    #[inline]
100210    fn fold_key(&mut self, node: Key) -> Key {
100211        if self.enabled {
100212            <V as Fold>::fold_key(&mut self.visitor, node)
100213        } else {
100214            node
100215        }
100216    }
100217
100218    #[inline]
100219    fn fold_key_value_pat_prop(&mut self, node: KeyValuePatProp) -> KeyValuePatProp {
100220        if self.enabled {
100221            <V as Fold>::fold_key_value_pat_prop(&mut self.visitor, node)
100222        } else {
100223            node
100224        }
100225    }
100226
100227    #[inline]
100228    fn fold_key_value_prop(&mut self, node: KeyValueProp) -> KeyValueProp {
100229        if self.enabled {
100230            <V as Fold>::fold_key_value_prop(&mut self.visitor, node)
100231        } else {
100232            node
100233        }
100234    }
100235
100236    #[inline]
100237    fn fold_labeled_stmt(&mut self, node: LabeledStmt) -> LabeledStmt {
100238        if self.enabled {
100239            <V as Fold>::fold_labeled_stmt(&mut self.visitor, node)
100240        } else {
100241            node
100242        }
100243    }
100244
100245    #[inline]
100246    fn fold_lit(&mut self, node: Lit) -> Lit {
100247        if self.enabled {
100248            <V as Fold>::fold_lit(&mut self.visitor, node)
100249        } else {
100250            node
100251        }
100252    }
100253
100254    #[inline]
100255    fn fold_member_expr(&mut self, node: MemberExpr) -> MemberExpr {
100256        if self.enabled {
100257            <V as Fold>::fold_member_expr(&mut self.visitor, node)
100258        } else {
100259            node
100260        }
100261    }
100262
100263    #[inline]
100264    fn fold_member_prop(&mut self, node: MemberProp) -> MemberProp {
100265        if self.enabled {
100266            <V as Fold>::fold_member_prop(&mut self.visitor, node)
100267        } else {
100268            node
100269        }
100270    }
100271
100272    #[inline]
100273    fn fold_meta_prop_expr(&mut self, node: MetaPropExpr) -> MetaPropExpr {
100274        if self.enabled {
100275            <V as Fold>::fold_meta_prop_expr(&mut self.visitor, node)
100276        } else {
100277            node
100278        }
100279    }
100280
100281    #[inline]
100282    fn fold_meta_prop_kind(&mut self, node: MetaPropKind) -> MetaPropKind {
100283        if self.enabled {
100284            <V as Fold>::fold_meta_prop_kind(&mut self.visitor, node)
100285        } else {
100286            node
100287        }
100288    }
100289
100290    #[inline]
100291    fn fold_method_kind(&mut self, node: MethodKind) -> MethodKind {
100292        if self.enabled {
100293            <V as Fold>::fold_method_kind(&mut self.visitor, node)
100294        } else {
100295            node
100296        }
100297    }
100298
100299    #[inline]
100300    fn fold_method_prop(&mut self, node: MethodProp) -> MethodProp {
100301        if self.enabled {
100302            <V as Fold>::fold_method_prop(&mut self.visitor, node)
100303        } else {
100304            node
100305        }
100306    }
100307
100308    #[inline]
100309    fn fold_module(&mut self, node: Module) -> Module {
100310        if self.enabled {
100311            <V as Fold>::fold_module(&mut self.visitor, node)
100312        } else {
100313            node
100314        }
100315    }
100316
100317    #[inline]
100318    fn fold_module_decl(&mut self, node: ModuleDecl) -> ModuleDecl {
100319        if self.enabled {
100320            <V as Fold>::fold_module_decl(&mut self.visitor, node)
100321        } else {
100322            node
100323        }
100324    }
100325
100326    #[inline]
100327    fn fold_module_export_name(&mut self, node: ModuleExportName) -> ModuleExportName {
100328        if self.enabled {
100329            <V as Fold>::fold_module_export_name(&mut self.visitor, node)
100330        } else {
100331            node
100332        }
100333    }
100334
100335    #[inline]
100336    fn fold_module_item(&mut self, node: ModuleItem) -> ModuleItem {
100337        if self.enabled {
100338            <V as Fold>::fold_module_item(&mut self.visitor, node)
100339        } else {
100340            node
100341        }
100342    }
100343
100344    #[inline]
100345    fn fold_module_items(&mut self, node: Vec<ModuleItem>) -> Vec<ModuleItem> {
100346        if self.enabled {
100347            <V as Fold>::fold_module_items(&mut self.visitor, node)
100348        } else {
100349            node
100350        }
100351    }
100352
100353    #[inline]
100354    fn fold_named_export(&mut self, node: NamedExport) -> NamedExport {
100355        if self.enabled {
100356            <V as Fold>::fold_named_export(&mut self.visitor, node)
100357        } else {
100358            node
100359        }
100360    }
100361
100362    #[inline]
100363    fn fold_new_expr(&mut self, node: NewExpr) -> NewExpr {
100364        if self.enabled {
100365            <V as Fold>::fold_new_expr(&mut self.visitor, node)
100366        } else {
100367            node
100368        }
100369    }
100370
100371    #[inline]
100372    fn fold_null(&mut self, node: Null) -> Null {
100373        if self.enabled {
100374            <V as Fold>::fold_null(&mut self.visitor, node)
100375        } else {
100376            node
100377        }
100378    }
100379
100380    #[inline]
100381    fn fold_number(&mut self, node: Number) -> Number {
100382        if self.enabled {
100383            <V as Fold>::fold_number(&mut self.visitor, node)
100384        } else {
100385            node
100386        }
100387    }
100388
100389    #[inline]
100390    fn fold_object_lit(&mut self, node: ObjectLit) -> ObjectLit {
100391        if self.enabled {
100392            <V as Fold>::fold_object_lit(&mut self.visitor, node)
100393        } else {
100394            node
100395        }
100396    }
100397
100398    #[inline]
100399    fn fold_object_pat(&mut self, node: ObjectPat) -> ObjectPat {
100400        if self.enabled {
100401            <V as Fold>::fold_object_pat(&mut self.visitor, node)
100402        } else {
100403            node
100404        }
100405    }
100406
100407    #[inline]
100408    fn fold_object_pat_prop(&mut self, node: ObjectPatProp) -> ObjectPatProp {
100409        if self.enabled {
100410            <V as Fold>::fold_object_pat_prop(&mut self.visitor, node)
100411        } else {
100412            node
100413        }
100414    }
100415
100416    #[inline]
100417    fn fold_object_pat_props(&mut self, node: Vec<ObjectPatProp>) -> Vec<ObjectPatProp> {
100418        if self.enabled {
100419            <V as Fold>::fold_object_pat_props(&mut self.visitor, node)
100420        } else {
100421            node
100422        }
100423    }
100424
100425    #[inline]
100426    fn fold_opt_accessibility(&mut self, node: Option<Accessibility>) -> Option<Accessibility> {
100427        if self.enabled {
100428            <V as Fold>::fold_opt_accessibility(&mut self.visitor, node)
100429        } else {
100430            node
100431        }
100432    }
100433
100434    #[inline]
100435    fn fold_opt_atom(&mut self, node: Option<swc_atoms::Atom>) -> Option<swc_atoms::Atom> {
100436        if self.enabled {
100437            <V as Fold>::fold_opt_atom(&mut self.visitor, node)
100438        } else {
100439            node
100440        }
100441    }
100442
100443    #[inline]
100444    fn fold_opt_block_stmt(&mut self, node: Option<BlockStmt>) -> Option<BlockStmt> {
100445        if self.enabled {
100446            <V as Fold>::fold_opt_block_stmt(&mut self.visitor, node)
100447        } else {
100448            node
100449        }
100450    }
100451
100452    #[inline]
100453    fn fold_opt_call(&mut self, node: OptCall) -> OptCall {
100454        if self.enabled {
100455            <V as Fold>::fold_opt_call(&mut self.visitor, node)
100456        } else {
100457            node
100458        }
100459    }
100460
100461    #[inline]
100462    fn fold_opt_catch_clause(&mut self, node: Option<CatchClause>) -> Option<CatchClause> {
100463        if self.enabled {
100464            <V as Fold>::fold_opt_catch_clause(&mut self.visitor, node)
100465        } else {
100466            node
100467        }
100468    }
100469
100470    #[inline]
100471    fn fold_opt_chain_base(&mut self, node: OptChainBase) -> OptChainBase {
100472        if self.enabled {
100473            <V as Fold>::fold_opt_chain_base(&mut self.visitor, node)
100474        } else {
100475            node
100476        }
100477    }
100478
100479    #[inline]
100480    fn fold_opt_chain_expr(&mut self, node: OptChainExpr) -> OptChainExpr {
100481        if self.enabled {
100482            <V as Fold>::fold_opt_chain_expr(&mut self.visitor, node)
100483        } else {
100484            node
100485        }
100486    }
100487
100488    #[inline]
100489    fn fold_opt_expr(&mut self, node: Option<Box<Expr>>) -> Option<Box<Expr>> {
100490        if self.enabled {
100491            <V as Fold>::fold_opt_expr(&mut self.visitor, node)
100492        } else {
100493            node
100494        }
100495    }
100496
100497    #[inline]
100498    fn fold_opt_expr_or_spread(&mut self, node: Option<ExprOrSpread>) -> Option<ExprOrSpread> {
100499        if self.enabled {
100500            <V as Fold>::fold_opt_expr_or_spread(&mut self.visitor, node)
100501        } else {
100502            node
100503        }
100504    }
100505
100506    #[inline]
100507    fn fold_opt_expr_or_spreads(
100508        &mut self,
100509        node: Option<Vec<ExprOrSpread>>,
100510    ) -> Option<Vec<ExprOrSpread>> {
100511        if self.enabled {
100512            <V as Fold>::fold_opt_expr_or_spreads(&mut self.visitor, node)
100513        } else {
100514            node
100515        }
100516    }
100517
100518    #[inline]
100519    fn fold_opt_ident(&mut self, node: Option<Ident>) -> Option<Ident> {
100520        if self.enabled {
100521            <V as Fold>::fold_opt_ident(&mut self.visitor, node)
100522        } else {
100523            node
100524        }
100525    }
100526
100527    #[inline]
100528    fn fold_opt_jsx_attr_value(&mut self, node: Option<JSXAttrValue>) -> Option<JSXAttrValue> {
100529        if self.enabled {
100530            <V as Fold>::fold_opt_jsx_attr_value(&mut self.visitor, node)
100531        } else {
100532            node
100533        }
100534    }
100535
100536    #[inline]
100537    fn fold_opt_jsx_closing_element(
100538        &mut self,
100539        node: Option<JSXClosingElement>,
100540    ) -> Option<JSXClosingElement> {
100541        if self.enabled {
100542            <V as Fold>::fold_opt_jsx_closing_element(&mut self.visitor, node)
100543        } else {
100544            node
100545        }
100546    }
100547
100548    #[inline]
100549    fn fold_opt_module_export_name(
100550        &mut self,
100551        node: Option<ModuleExportName>,
100552    ) -> Option<ModuleExportName> {
100553        if self.enabled {
100554            <V as Fold>::fold_opt_module_export_name(&mut self.visitor, node)
100555        } else {
100556            node
100557        }
100558    }
100559
100560    #[inline]
100561    fn fold_opt_object_lit(&mut self, node: Option<Box<ObjectLit>>) -> Option<Box<ObjectLit>> {
100562        if self.enabled {
100563            <V as Fold>::fold_opt_object_lit(&mut self.visitor, node)
100564        } else {
100565            node
100566        }
100567    }
100568
100569    #[inline]
100570    fn fold_opt_pat(&mut self, node: Option<Pat>) -> Option<Pat> {
100571        if self.enabled {
100572            <V as Fold>::fold_opt_pat(&mut self.visitor, node)
100573        } else {
100574            node
100575        }
100576    }
100577
100578    #[inline]
100579    fn fold_opt_span(&mut self, node: Option<swc_common::Span>) -> Option<swc_common::Span> {
100580        if self.enabled {
100581            <V as Fold>::fold_opt_span(&mut self.visitor, node)
100582        } else {
100583            node
100584        }
100585    }
100586
100587    #[inline]
100588    fn fold_opt_stmt(&mut self, node: Option<Box<Stmt>>) -> Option<Box<Stmt>> {
100589        if self.enabled {
100590            <V as Fold>::fold_opt_stmt(&mut self.visitor, node)
100591        } else {
100592            node
100593        }
100594    }
100595
100596    #[inline]
100597    fn fold_opt_str(&mut self, node: Option<Box<Str>>) -> Option<Box<Str>> {
100598        if self.enabled {
100599            <V as Fold>::fold_opt_str(&mut self.visitor, node)
100600        } else {
100601            node
100602        }
100603    }
100604
100605    #[inline]
100606    fn fold_opt_true_plus_minus(&mut self, node: Option<TruePlusMinus>) -> Option<TruePlusMinus> {
100607        if self.enabled {
100608            <V as Fold>::fold_opt_true_plus_minus(&mut self.visitor, node)
100609        } else {
100610            node
100611        }
100612    }
100613
100614    #[inline]
100615    fn fold_opt_ts_entity_name(&mut self, node: Option<TsEntityName>) -> Option<TsEntityName> {
100616        if self.enabled {
100617            <V as Fold>::fold_opt_ts_entity_name(&mut self.visitor, node)
100618        } else {
100619            node
100620        }
100621    }
100622
100623    #[inline]
100624    fn fold_opt_ts_import_call_options(
100625        &mut self,
100626        node: Option<TsImportCallOptions>,
100627    ) -> Option<TsImportCallOptions> {
100628        if self.enabled {
100629            <V as Fold>::fold_opt_ts_import_call_options(&mut self.visitor, node)
100630        } else {
100631            node
100632        }
100633    }
100634
100635    #[inline]
100636    fn fold_opt_ts_namespace_body(
100637        &mut self,
100638        node: Option<TsNamespaceBody>,
100639    ) -> Option<TsNamespaceBody> {
100640        if self.enabled {
100641            <V as Fold>::fold_opt_ts_namespace_body(&mut self.visitor, node)
100642        } else {
100643            node
100644        }
100645    }
100646
100647    #[inline]
100648    fn fold_opt_ts_type(&mut self, node: Option<Box<TsType>>) -> Option<Box<TsType>> {
100649        if self.enabled {
100650            <V as Fold>::fold_opt_ts_type(&mut self.visitor, node)
100651        } else {
100652            node
100653        }
100654    }
100655
100656    #[inline]
100657    fn fold_opt_ts_type_ann(&mut self, node: Option<Box<TsTypeAnn>>) -> Option<Box<TsTypeAnn>> {
100658        if self.enabled {
100659            <V as Fold>::fold_opt_ts_type_ann(&mut self.visitor, node)
100660        } else {
100661            node
100662        }
100663    }
100664
100665    #[inline]
100666    fn fold_opt_ts_type_param_decl(
100667        &mut self,
100668        node: Option<Box<TsTypeParamDecl>>,
100669    ) -> Option<Box<TsTypeParamDecl>> {
100670        if self.enabled {
100671            <V as Fold>::fold_opt_ts_type_param_decl(&mut self.visitor, node)
100672        } else {
100673            node
100674        }
100675    }
100676
100677    #[inline]
100678    fn fold_opt_ts_type_param_instantiation(
100679        &mut self,
100680        node: Option<Box<TsTypeParamInstantiation>>,
100681    ) -> Option<Box<TsTypeParamInstantiation>> {
100682        if self.enabled {
100683            <V as Fold>::fold_opt_ts_type_param_instantiation(&mut self.visitor, node)
100684        } else {
100685            node
100686        }
100687    }
100688
100689    #[inline]
100690    fn fold_opt_var_decl_or_expr(&mut self, node: Option<VarDeclOrExpr>) -> Option<VarDeclOrExpr> {
100691        if self.enabled {
100692            <V as Fold>::fold_opt_var_decl_or_expr(&mut self.visitor, node)
100693        } else {
100694            node
100695        }
100696    }
100697
100698    #[inline]
100699    fn fold_opt_vec_expr_or_spreads(
100700        &mut self,
100701        node: Vec<Option<ExprOrSpread>>,
100702    ) -> Vec<Option<ExprOrSpread>> {
100703        if self.enabled {
100704            <V as Fold>::fold_opt_vec_expr_or_spreads(&mut self.visitor, node)
100705        } else {
100706            node
100707        }
100708    }
100709
100710    #[inline]
100711    fn fold_opt_vec_pats(&mut self, node: Vec<Option<Pat>>) -> Vec<Option<Pat>> {
100712        if self.enabled {
100713            <V as Fold>::fold_opt_vec_pats(&mut self.visitor, node)
100714        } else {
100715            node
100716        }
100717    }
100718
100719    #[inline]
100720    fn fold_param(&mut self, node: Param) -> Param {
100721        if self.enabled {
100722            <V as Fold>::fold_param(&mut self.visitor, node)
100723        } else {
100724            node
100725        }
100726    }
100727
100728    #[inline]
100729    fn fold_param_or_ts_param_prop(&mut self, node: ParamOrTsParamProp) -> ParamOrTsParamProp {
100730        if self.enabled {
100731            <V as Fold>::fold_param_or_ts_param_prop(&mut self.visitor, node)
100732        } else {
100733            node
100734        }
100735    }
100736
100737    #[inline]
100738    fn fold_param_or_ts_param_props(
100739        &mut self,
100740        node: Vec<ParamOrTsParamProp>,
100741    ) -> Vec<ParamOrTsParamProp> {
100742        if self.enabled {
100743            <V as Fold>::fold_param_or_ts_param_props(&mut self.visitor, node)
100744        } else {
100745            node
100746        }
100747    }
100748
100749    #[inline]
100750    fn fold_params(&mut self, node: Vec<Param>) -> Vec<Param> {
100751        if self.enabled {
100752            <V as Fold>::fold_params(&mut self.visitor, node)
100753        } else {
100754            node
100755        }
100756    }
100757
100758    #[inline]
100759    fn fold_paren_expr(&mut self, node: ParenExpr) -> ParenExpr {
100760        if self.enabled {
100761            <V as Fold>::fold_paren_expr(&mut self.visitor, node)
100762        } else {
100763            node
100764        }
100765    }
100766
100767    #[inline]
100768    fn fold_pat(&mut self, node: Pat) -> Pat {
100769        if self.enabled {
100770            <V as Fold>::fold_pat(&mut self.visitor, node)
100771        } else {
100772            node
100773        }
100774    }
100775
100776    #[inline]
100777    fn fold_pats(&mut self, node: Vec<Pat>) -> Vec<Pat> {
100778        if self.enabled {
100779            <V as Fold>::fold_pats(&mut self.visitor, node)
100780        } else {
100781            node
100782        }
100783    }
100784
100785    #[inline]
100786    fn fold_private_method(&mut self, node: PrivateMethod) -> PrivateMethod {
100787        if self.enabled {
100788            <V as Fold>::fold_private_method(&mut self.visitor, node)
100789        } else {
100790            node
100791        }
100792    }
100793
100794    #[inline]
100795    fn fold_private_name(&mut self, node: PrivateName) -> PrivateName {
100796        if self.enabled {
100797            <V as Fold>::fold_private_name(&mut self.visitor, node)
100798        } else {
100799            node
100800        }
100801    }
100802
100803    #[inline]
100804    fn fold_private_prop(&mut self, node: PrivateProp) -> PrivateProp {
100805        if self.enabled {
100806            <V as Fold>::fold_private_prop(&mut self.visitor, node)
100807        } else {
100808            node
100809        }
100810    }
100811
100812    #[inline]
100813    fn fold_program(&mut self, node: Program) -> Program {
100814        if self.enabled {
100815            <V as Fold>::fold_program(&mut self.visitor, node)
100816        } else {
100817            node
100818        }
100819    }
100820
100821    #[inline]
100822    fn fold_prop(&mut self, node: Prop) -> Prop {
100823        if self.enabled {
100824            <V as Fold>::fold_prop(&mut self.visitor, node)
100825        } else {
100826            node
100827        }
100828    }
100829
100830    #[inline]
100831    fn fold_prop_name(&mut self, node: PropName) -> PropName {
100832        if self.enabled {
100833            <V as Fold>::fold_prop_name(&mut self.visitor, node)
100834        } else {
100835            node
100836        }
100837    }
100838
100839    #[inline]
100840    fn fold_prop_or_spread(&mut self, node: PropOrSpread) -> PropOrSpread {
100841        if self.enabled {
100842            <V as Fold>::fold_prop_or_spread(&mut self.visitor, node)
100843        } else {
100844            node
100845        }
100846    }
100847
100848    #[inline]
100849    fn fold_prop_or_spreads(&mut self, node: Vec<PropOrSpread>) -> Vec<PropOrSpread> {
100850        if self.enabled {
100851            <V as Fold>::fold_prop_or_spreads(&mut self.visitor, node)
100852        } else {
100853            node
100854        }
100855    }
100856
100857    #[inline]
100858    fn fold_regex(&mut self, node: Regex) -> Regex {
100859        if self.enabled {
100860            <V as Fold>::fold_regex(&mut self.visitor, node)
100861        } else {
100862            node
100863        }
100864    }
100865
100866    #[inline]
100867    fn fold_rest_pat(&mut self, node: RestPat) -> RestPat {
100868        if self.enabled {
100869            <V as Fold>::fold_rest_pat(&mut self.visitor, node)
100870        } else {
100871            node
100872        }
100873    }
100874
100875    #[inline]
100876    fn fold_return_stmt(&mut self, node: ReturnStmt) -> ReturnStmt {
100877        if self.enabled {
100878            <V as Fold>::fold_return_stmt(&mut self.visitor, node)
100879        } else {
100880            node
100881        }
100882    }
100883
100884    #[inline]
100885    fn fold_script(&mut self, node: Script) -> Script {
100886        if self.enabled {
100887            <V as Fold>::fold_script(&mut self.visitor, node)
100888        } else {
100889            node
100890        }
100891    }
100892
100893    #[inline]
100894    fn fold_seq_expr(&mut self, node: SeqExpr) -> SeqExpr {
100895        if self.enabled {
100896            <V as Fold>::fold_seq_expr(&mut self.visitor, node)
100897        } else {
100898            node
100899        }
100900    }
100901
100902    #[inline]
100903    fn fold_setter_prop(&mut self, node: SetterProp) -> SetterProp {
100904        if self.enabled {
100905            <V as Fold>::fold_setter_prop(&mut self.visitor, node)
100906        } else {
100907            node
100908        }
100909    }
100910
100911    #[inline]
100912    fn fold_simple_assign_target(&mut self, node: SimpleAssignTarget) -> SimpleAssignTarget {
100913        if self.enabled {
100914            <V as Fold>::fold_simple_assign_target(&mut self.visitor, node)
100915        } else {
100916            node
100917        }
100918    }
100919
100920    #[inline]
100921    fn fold_span(&mut self, node: swc_common::Span) -> swc_common::Span {
100922        if self.enabled {
100923            <V as Fold>::fold_span(&mut self.visitor, node)
100924        } else {
100925            node
100926        }
100927    }
100928
100929    #[inline]
100930    fn fold_spread_element(&mut self, node: SpreadElement) -> SpreadElement {
100931        if self.enabled {
100932            <V as Fold>::fold_spread_element(&mut self.visitor, node)
100933        } else {
100934            node
100935        }
100936    }
100937
100938    #[inline]
100939    fn fold_static_block(&mut self, node: StaticBlock) -> StaticBlock {
100940        if self.enabled {
100941            <V as Fold>::fold_static_block(&mut self.visitor, node)
100942        } else {
100943            node
100944        }
100945    }
100946
100947    #[inline]
100948    fn fold_stmt(&mut self, node: Stmt) -> Stmt {
100949        if self.enabled {
100950            <V as Fold>::fold_stmt(&mut self.visitor, node)
100951        } else {
100952            node
100953        }
100954    }
100955
100956    #[inline]
100957    fn fold_stmts(&mut self, node: Vec<Stmt>) -> Vec<Stmt> {
100958        if self.enabled {
100959            <V as Fold>::fold_stmts(&mut self.visitor, node)
100960        } else {
100961            node
100962        }
100963    }
100964
100965    #[inline]
100966    fn fold_str(&mut self, node: Str) -> Str {
100967        if self.enabled {
100968            <V as Fold>::fold_str(&mut self.visitor, node)
100969        } else {
100970            node
100971        }
100972    }
100973
100974    #[inline]
100975    fn fold_super(&mut self, node: Super) -> Super {
100976        if self.enabled {
100977            <V as Fold>::fold_super(&mut self.visitor, node)
100978        } else {
100979            node
100980        }
100981    }
100982
100983    #[inline]
100984    fn fold_super_prop(&mut self, node: SuperProp) -> SuperProp {
100985        if self.enabled {
100986            <V as Fold>::fold_super_prop(&mut self.visitor, node)
100987        } else {
100988            node
100989        }
100990    }
100991
100992    #[inline]
100993    fn fold_super_prop_expr(&mut self, node: SuperPropExpr) -> SuperPropExpr {
100994        if self.enabled {
100995            <V as Fold>::fold_super_prop_expr(&mut self.visitor, node)
100996        } else {
100997            node
100998        }
100999    }
101000
101001    #[inline]
101002    fn fold_switch_case(&mut self, node: SwitchCase) -> SwitchCase {
101003        if self.enabled {
101004            <V as Fold>::fold_switch_case(&mut self.visitor, node)
101005        } else {
101006            node
101007        }
101008    }
101009
101010    #[inline]
101011    fn fold_switch_cases(&mut self, node: Vec<SwitchCase>) -> Vec<SwitchCase> {
101012        if self.enabled {
101013            <V as Fold>::fold_switch_cases(&mut self.visitor, node)
101014        } else {
101015            node
101016        }
101017    }
101018
101019    #[inline]
101020    fn fold_switch_stmt(&mut self, node: SwitchStmt) -> SwitchStmt {
101021        if self.enabled {
101022            <V as Fold>::fold_switch_stmt(&mut self.visitor, node)
101023        } else {
101024            node
101025        }
101026    }
101027
101028    #[inline]
101029    fn fold_syntax_context(
101030        &mut self,
101031        node: swc_common::SyntaxContext,
101032    ) -> swc_common::SyntaxContext {
101033        if self.enabled {
101034            <V as Fold>::fold_syntax_context(&mut self.visitor, node)
101035        } else {
101036            node
101037        }
101038    }
101039
101040    #[inline]
101041    fn fold_tagged_tpl(&mut self, node: TaggedTpl) -> TaggedTpl {
101042        if self.enabled {
101043            <V as Fold>::fold_tagged_tpl(&mut self.visitor, node)
101044        } else {
101045            node
101046        }
101047    }
101048
101049    #[inline]
101050    fn fold_this_expr(&mut self, node: ThisExpr) -> ThisExpr {
101051        if self.enabled {
101052            <V as Fold>::fold_this_expr(&mut self.visitor, node)
101053        } else {
101054            node
101055        }
101056    }
101057
101058    #[inline]
101059    fn fold_throw_stmt(&mut self, node: ThrowStmt) -> ThrowStmt {
101060        if self.enabled {
101061            <V as Fold>::fold_throw_stmt(&mut self.visitor, node)
101062        } else {
101063            node
101064        }
101065    }
101066
101067    #[inline]
101068    fn fold_tpl(&mut self, node: Tpl) -> Tpl {
101069        if self.enabled {
101070            <V as Fold>::fold_tpl(&mut self.visitor, node)
101071        } else {
101072            node
101073        }
101074    }
101075
101076    #[inline]
101077    fn fold_tpl_element(&mut self, node: TplElement) -> TplElement {
101078        if self.enabled {
101079            <V as Fold>::fold_tpl_element(&mut self.visitor, node)
101080        } else {
101081            node
101082        }
101083    }
101084
101085    #[inline]
101086    fn fold_tpl_elements(&mut self, node: Vec<TplElement>) -> Vec<TplElement> {
101087        if self.enabled {
101088            <V as Fold>::fold_tpl_elements(&mut self.visitor, node)
101089        } else {
101090            node
101091        }
101092    }
101093
101094    #[inline]
101095    fn fold_true_plus_minus(&mut self, node: TruePlusMinus) -> TruePlusMinus {
101096        if self.enabled {
101097            <V as Fold>::fold_true_plus_minus(&mut self.visitor, node)
101098        } else {
101099            node
101100        }
101101    }
101102
101103    #[inline]
101104    fn fold_try_stmt(&mut self, node: TryStmt) -> TryStmt {
101105        if self.enabled {
101106            <V as Fold>::fold_try_stmt(&mut self.visitor, node)
101107        } else {
101108            node
101109        }
101110    }
101111
101112    #[inline]
101113    fn fold_ts_array_type(&mut self, node: TsArrayType) -> TsArrayType {
101114        if self.enabled {
101115            <V as Fold>::fold_ts_array_type(&mut self.visitor, node)
101116        } else {
101117            node
101118        }
101119    }
101120
101121    #[inline]
101122    fn fold_ts_as_expr(&mut self, node: TsAsExpr) -> TsAsExpr {
101123        if self.enabled {
101124            <V as Fold>::fold_ts_as_expr(&mut self.visitor, node)
101125        } else {
101126            node
101127        }
101128    }
101129
101130    #[inline]
101131    fn fold_ts_call_signature_decl(&mut self, node: TsCallSignatureDecl) -> TsCallSignatureDecl {
101132        if self.enabled {
101133            <V as Fold>::fold_ts_call_signature_decl(&mut self.visitor, node)
101134        } else {
101135            node
101136        }
101137    }
101138
101139    #[inline]
101140    fn fold_ts_conditional_type(&mut self, node: TsConditionalType) -> TsConditionalType {
101141        if self.enabled {
101142            <V as Fold>::fold_ts_conditional_type(&mut self.visitor, node)
101143        } else {
101144            node
101145        }
101146    }
101147
101148    #[inline]
101149    fn fold_ts_const_assertion(&mut self, node: TsConstAssertion) -> TsConstAssertion {
101150        if self.enabled {
101151            <V as Fold>::fold_ts_const_assertion(&mut self.visitor, node)
101152        } else {
101153            node
101154        }
101155    }
101156
101157    #[inline]
101158    fn fold_ts_construct_signature_decl(
101159        &mut self,
101160        node: TsConstructSignatureDecl,
101161    ) -> TsConstructSignatureDecl {
101162        if self.enabled {
101163            <V as Fold>::fold_ts_construct_signature_decl(&mut self.visitor, node)
101164        } else {
101165            node
101166        }
101167    }
101168
101169    #[inline]
101170    fn fold_ts_constructor_type(&mut self, node: TsConstructorType) -> TsConstructorType {
101171        if self.enabled {
101172            <V as Fold>::fold_ts_constructor_type(&mut self.visitor, node)
101173        } else {
101174            node
101175        }
101176    }
101177
101178    #[inline]
101179    fn fold_ts_entity_name(&mut self, node: TsEntityName) -> TsEntityName {
101180        if self.enabled {
101181            <V as Fold>::fold_ts_entity_name(&mut self.visitor, node)
101182        } else {
101183            node
101184        }
101185    }
101186
101187    #[inline]
101188    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl) -> TsEnumDecl {
101189        if self.enabled {
101190            <V as Fold>::fold_ts_enum_decl(&mut self.visitor, node)
101191        } else {
101192            node
101193        }
101194    }
101195
101196    #[inline]
101197    fn fold_ts_enum_member(&mut self, node: TsEnumMember) -> TsEnumMember {
101198        if self.enabled {
101199            <V as Fold>::fold_ts_enum_member(&mut self.visitor, node)
101200        } else {
101201            node
101202        }
101203    }
101204
101205    #[inline]
101206    fn fold_ts_enum_member_id(&mut self, node: TsEnumMemberId) -> TsEnumMemberId {
101207        if self.enabled {
101208            <V as Fold>::fold_ts_enum_member_id(&mut self.visitor, node)
101209        } else {
101210            node
101211        }
101212    }
101213
101214    #[inline]
101215    fn fold_ts_enum_members(&mut self, node: Vec<TsEnumMember>) -> Vec<TsEnumMember> {
101216        if self.enabled {
101217            <V as Fold>::fold_ts_enum_members(&mut self.visitor, node)
101218        } else {
101219            node
101220        }
101221    }
101222
101223    #[inline]
101224    fn fold_ts_export_assignment(&mut self, node: TsExportAssignment) -> TsExportAssignment {
101225        if self.enabled {
101226            <V as Fold>::fold_ts_export_assignment(&mut self.visitor, node)
101227        } else {
101228            node
101229        }
101230    }
101231
101232    #[inline]
101233    fn fold_ts_expr_with_type_args(&mut self, node: TsExprWithTypeArgs) -> TsExprWithTypeArgs {
101234        if self.enabled {
101235            <V as Fold>::fold_ts_expr_with_type_args(&mut self.visitor, node)
101236        } else {
101237            node
101238        }
101239    }
101240
101241    #[inline]
101242    fn fold_ts_expr_with_type_argss(
101243        &mut self,
101244        node: Vec<TsExprWithTypeArgs>,
101245    ) -> Vec<TsExprWithTypeArgs> {
101246        if self.enabled {
101247            <V as Fold>::fold_ts_expr_with_type_argss(&mut self.visitor, node)
101248        } else {
101249            node
101250        }
101251    }
101252
101253    #[inline]
101254    fn fold_ts_external_module_ref(&mut self, node: TsExternalModuleRef) -> TsExternalModuleRef {
101255        if self.enabled {
101256            <V as Fold>::fold_ts_external_module_ref(&mut self.visitor, node)
101257        } else {
101258            node
101259        }
101260    }
101261
101262    #[inline]
101263    fn fold_ts_fn_or_constructor_type(
101264        &mut self,
101265        node: TsFnOrConstructorType,
101266    ) -> TsFnOrConstructorType {
101267        if self.enabled {
101268            <V as Fold>::fold_ts_fn_or_constructor_type(&mut self.visitor, node)
101269        } else {
101270            node
101271        }
101272    }
101273
101274    #[inline]
101275    fn fold_ts_fn_param(&mut self, node: TsFnParam) -> TsFnParam {
101276        if self.enabled {
101277            <V as Fold>::fold_ts_fn_param(&mut self.visitor, node)
101278        } else {
101279            node
101280        }
101281    }
101282
101283    #[inline]
101284    fn fold_ts_fn_params(&mut self, node: Vec<TsFnParam>) -> Vec<TsFnParam> {
101285        if self.enabled {
101286            <V as Fold>::fold_ts_fn_params(&mut self.visitor, node)
101287        } else {
101288            node
101289        }
101290    }
101291
101292    #[inline]
101293    fn fold_ts_fn_type(&mut self, node: TsFnType) -> TsFnType {
101294        if self.enabled {
101295            <V as Fold>::fold_ts_fn_type(&mut self.visitor, node)
101296        } else {
101297            node
101298        }
101299    }
101300
101301    #[inline]
101302    fn fold_ts_getter_signature(&mut self, node: TsGetterSignature) -> TsGetterSignature {
101303        if self.enabled {
101304            <V as Fold>::fold_ts_getter_signature(&mut self.visitor, node)
101305        } else {
101306            node
101307        }
101308    }
101309
101310    #[inline]
101311    fn fold_ts_import_call_options(&mut self, node: TsImportCallOptions) -> TsImportCallOptions {
101312        if self.enabled {
101313            <V as Fold>::fold_ts_import_call_options(&mut self.visitor, node)
101314        } else {
101315            node
101316        }
101317    }
101318
101319    #[inline]
101320    fn fold_ts_import_equals_decl(&mut self, node: TsImportEqualsDecl) -> TsImportEqualsDecl {
101321        if self.enabled {
101322            <V as Fold>::fold_ts_import_equals_decl(&mut self.visitor, node)
101323        } else {
101324            node
101325        }
101326    }
101327
101328    #[inline]
101329    fn fold_ts_import_type(&mut self, node: TsImportType) -> TsImportType {
101330        if self.enabled {
101331            <V as Fold>::fold_ts_import_type(&mut self.visitor, node)
101332        } else {
101333            node
101334        }
101335    }
101336
101337    #[inline]
101338    fn fold_ts_index_signature(&mut self, node: TsIndexSignature) -> TsIndexSignature {
101339        if self.enabled {
101340            <V as Fold>::fold_ts_index_signature(&mut self.visitor, node)
101341        } else {
101342            node
101343        }
101344    }
101345
101346    #[inline]
101347    fn fold_ts_indexed_access_type(&mut self, node: TsIndexedAccessType) -> TsIndexedAccessType {
101348        if self.enabled {
101349            <V as Fold>::fold_ts_indexed_access_type(&mut self.visitor, node)
101350        } else {
101351            node
101352        }
101353    }
101354
101355    #[inline]
101356    fn fold_ts_infer_type(&mut self, node: TsInferType) -> TsInferType {
101357        if self.enabled {
101358            <V as Fold>::fold_ts_infer_type(&mut self.visitor, node)
101359        } else {
101360            node
101361        }
101362    }
101363
101364    #[inline]
101365    fn fold_ts_instantiation(&mut self, node: TsInstantiation) -> TsInstantiation {
101366        if self.enabled {
101367            <V as Fold>::fold_ts_instantiation(&mut self.visitor, node)
101368        } else {
101369            node
101370        }
101371    }
101372
101373    #[inline]
101374    fn fold_ts_interface_body(&mut self, node: TsInterfaceBody) -> TsInterfaceBody {
101375        if self.enabled {
101376            <V as Fold>::fold_ts_interface_body(&mut self.visitor, node)
101377        } else {
101378            node
101379        }
101380    }
101381
101382    #[inline]
101383    fn fold_ts_interface_decl(&mut self, node: TsInterfaceDecl) -> TsInterfaceDecl {
101384        if self.enabled {
101385            <V as Fold>::fold_ts_interface_decl(&mut self.visitor, node)
101386        } else {
101387            node
101388        }
101389    }
101390
101391    #[inline]
101392    fn fold_ts_intersection_type(&mut self, node: TsIntersectionType) -> TsIntersectionType {
101393        if self.enabled {
101394            <V as Fold>::fold_ts_intersection_type(&mut self.visitor, node)
101395        } else {
101396            node
101397        }
101398    }
101399
101400    #[inline]
101401    fn fold_ts_keyword_type(&mut self, node: TsKeywordType) -> TsKeywordType {
101402        if self.enabled {
101403            <V as Fold>::fold_ts_keyword_type(&mut self.visitor, node)
101404        } else {
101405            node
101406        }
101407    }
101408
101409    #[inline]
101410    fn fold_ts_keyword_type_kind(&mut self, node: TsKeywordTypeKind) -> TsKeywordTypeKind {
101411        if self.enabled {
101412            <V as Fold>::fold_ts_keyword_type_kind(&mut self.visitor, node)
101413        } else {
101414            node
101415        }
101416    }
101417
101418    #[inline]
101419    fn fold_ts_lit(&mut self, node: TsLit) -> TsLit {
101420        if self.enabled {
101421            <V as Fold>::fold_ts_lit(&mut self.visitor, node)
101422        } else {
101423            node
101424        }
101425    }
101426
101427    #[inline]
101428    fn fold_ts_lit_type(&mut self, node: TsLitType) -> TsLitType {
101429        if self.enabled {
101430            <V as Fold>::fold_ts_lit_type(&mut self.visitor, node)
101431        } else {
101432            node
101433        }
101434    }
101435
101436    #[inline]
101437    fn fold_ts_mapped_type(&mut self, node: TsMappedType) -> TsMappedType {
101438        if self.enabled {
101439            <V as Fold>::fold_ts_mapped_type(&mut self.visitor, node)
101440        } else {
101441            node
101442        }
101443    }
101444
101445    #[inline]
101446    fn fold_ts_method_signature(&mut self, node: TsMethodSignature) -> TsMethodSignature {
101447        if self.enabled {
101448            <V as Fold>::fold_ts_method_signature(&mut self.visitor, node)
101449        } else {
101450            node
101451        }
101452    }
101453
101454    #[inline]
101455    fn fold_ts_module_block(&mut self, node: TsModuleBlock) -> TsModuleBlock {
101456        if self.enabled {
101457            <V as Fold>::fold_ts_module_block(&mut self.visitor, node)
101458        } else {
101459            node
101460        }
101461    }
101462
101463    #[inline]
101464    fn fold_ts_module_decl(&mut self, node: TsModuleDecl) -> TsModuleDecl {
101465        if self.enabled {
101466            <V as Fold>::fold_ts_module_decl(&mut self.visitor, node)
101467        } else {
101468            node
101469        }
101470    }
101471
101472    #[inline]
101473    fn fold_ts_module_name(&mut self, node: TsModuleName) -> TsModuleName {
101474        if self.enabled {
101475            <V as Fold>::fold_ts_module_name(&mut self.visitor, node)
101476        } else {
101477            node
101478        }
101479    }
101480
101481    #[inline]
101482    fn fold_ts_module_ref(&mut self, node: TsModuleRef) -> TsModuleRef {
101483        if self.enabled {
101484            <V as Fold>::fold_ts_module_ref(&mut self.visitor, node)
101485        } else {
101486            node
101487        }
101488    }
101489
101490    #[inline]
101491    fn fold_ts_namespace_body(&mut self, node: TsNamespaceBody) -> TsNamespaceBody {
101492        if self.enabled {
101493            <V as Fold>::fold_ts_namespace_body(&mut self.visitor, node)
101494        } else {
101495            node
101496        }
101497    }
101498
101499    #[inline]
101500    fn fold_ts_namespace_decl(&mut self, node: TsNamespaceDecl) -> TsNamespaceDecl {
101501        if self.enabled {
101502            <V as Fold>::fold_ts_namespace_decl(&mut self.visitor, node)
101503        } else {
101504            node
101505        }
101506    }
101507
101508    #[inline]
101509    fn fold_ts_namespace_export_decl(
101510        &mut self,
101511        node: TsNamespaceExportDecl,
101512    ) -> TsNamespaceExportDecl {
101513        if self.enabled {
101514            <V as Fold>::fold_ts_namespace_export_decl(&mut self.visitor, node)
101515        } else {
101516            node
101517        }
101518    }
101519
101520    #[inline]
101521    fn fold_ts_non_null_expr(&mut self, node: TsNonNullExpr) -> TsNonNullExpr {
101522        if self.enabled {
101523            <V as Fold>::fold_ts_non_null_expr(&mut self.visitor, node)
101524        } else {
101525            node
101526        }
101527    }
101528
101529    #[inline]
101530    fn fold_ts_optional_type(&mut self, node: TsOptionalType) -> TsOptionalType {
101531        if self.enabled {
101532            <V as Fold>::fold_ts_optional_type(&mut self.visitor, node)
101533        } else {
101534            node
101535        }
101536    }
101537
101538    #[inline]
101539    fn fold_ts_param_prop(&mut self, node: TsParamProp) -> TsParamProp {
101540        if self.enabled {
101541            <V as Fold>::fold_ts_param_prop(&mut self.visitor, node)
101542        } else {
101543            node
101544        }
101545    }
101546
101547    #[inline]
101548    fn fold_ts_param_prop_param(&mut self, node: TsParamPropParam) -> TsParamPropParam {
101549        if self.enabled {
101550            <V as Fold>::fold_ts_param_prop_param(&mut self.visitor, node)
101551        } else {
101552            node
101553        }
101554    }
101555
101556    #[inline]
101557    fn fold_ts_parenthesized_type(&mut self, node: TsParenthesizedType) -> TsParenthesizedType {
101558        if self.enabled {
101559            <V as Fold>::fold_ts_parenthesized_type(&mut self.visitor, node)
101560        } else {
101561            node
101562        }
101563    }
101564
101565    #[inline]
101566    fn fold_ts_property_signature(&mut self, node: TsPropertySignature) -> TsPropertySignature {
101567        if self.enabled {
101568            <V as Fold>::fold_ts_property_signature(&mut self.visitor, node)
101569        } else {
101570            node
101571        }
101572    }
101573
101574    #[inline]
101575    fn fold_ts_qualified_name(&mut self, node: TsQualifiedName) -> TsQualifiedName {
101576        if self.enabled {
101577            <V as Fold>::fold_ts_qualified_name(&mut self.visitor, node)
101578        } else {
101579            node
101580        }
101581    }
101582
101583    #[inline]
101584    fn fold_ts_rest_type(&mut self, node: TsRestType) -> TsRestType {
101585        if self.enabled {
101586            <V as Fold>::fold_ts_rest_type(&mut self.visitor, node)
101587        } else {
101588            node
101589        }
101590    }
101591
101592    #[inline]
101593    fn fold_ts_satisfies_expr(&mut self, node: TsSatisfiesExpr) -> TsSatisfiesExpr {
101594        if self.enabled {
101595            <V as Fold>::fold_ts_satisfies_expr(&mut self.visitor, node)
101596        } else {
101597            node
101598        }
101599    }
101600
101601    #[inline]
101602    fn fold_ts_setter_signature(&mut self, node: TsSetterSignature) -> TsSetterSignature {
101603        if self.enabled {
101604            <V as Fold>::fold_ts_setter_signature(&mut self.visitor, node)
101605        } else {
101606            node
101607        }
101608    }
101609
101610    #[inline]
101611    fn fold_ts_this_type(&mut self, node: TsThisType) -> TsThisType {
101612        if self.enabled {
101613            <V as Fold>::fold_ts_this_type(&mut self.visitor, node)
101614        } else {
101615            node
101616        }
101617    }
101618
101619    #[inline]
101620    fn fold_ts_this_type_or_ident(&mut self, node: TsThisTypeOrIdent) -> TsThisTypeOrIdent {
101621        if self.enabled {
101622            <V as Fold>::fold_ts_this_type_or_ident(&mut self.visitor, node)
101623        } else {
101624            node
101625        }
101626    }
101627
101628    #[inline]
101629    fn fold_ts_tpl_lit_type(&mut self, node: TsTplLitType) -> TsTplLitType {
101630        if self.enabled {
101631            <V as Fold>::fold_ts_tpl_lit_type(&mut self.visitor, node)
101632        } else {
101633            node
101634        }
101635    }
101636
101637    #[inline]
101638    fn fold_ts_tuple_element(&mut self, node: TsTupleElement) -> TsTupleElement {
101639        if self.enabled {
101640            <V as Fold>::fold_ts_tuple_element(&mut self.visitor, node)
101641        } else {
101642            node
101643        }
101644    }
101645
101646    #[inline]
101647    fn fold_ts_tuple_elements(&mut self, node: Vec<TsTupleElement>) -> Vec<TsTupleElement> {
101648        if self.enabled {
101649            <V as Fold>::fold_ts_tuple_elements(&mut self.visitor, node)
101650        } else {
101651            node
101652        }
101653    }
101654
101655    #[inline]
101656    fn fold_ts_tuple_type(&mut self, node: TsTupleType) -> TsTupleType {
101657        if self.enabled {
101658            <V as Fold>::fold_ts_tuple_type(&mut self.visitor, node)
101659        } else {
101660            node
101661        }
101662    }
101663
101664    #[inline]
101665    fn fold_ts_type(&mut self, node: TsType) -> TsType {
101666        if self.enabled {
101667            <V as Fold>::fold_ts_type(&mut self.visitor, node)
101668        } else {
101669            node
101670        }
101671    }
101672
101673    #[inline]
101674    fn fold_ts_type_alias_decl(&mut self, node: TsTypeAliasDecl) -> TsTypeAliasDecl {
101675        if self.enabled {
101676            <V as Fold>::fold_ts_type_alias_decl(&mut self.visitor, node)
101677        } else {
101678            node
101679        }
101680    }
101681
101682    #[inline]
101683    fn fold_ts_type_ann(&mut self, node: TsTypeAnn) -> TsTypeAnn {
101684        if self.enabled {
101685            <V as Fold>::fold_ts_type_ann(&mut self.visitor, node)
101686        } else {
101687            node
101688        }
101689    }
101690
101691    #[inline]
101692    fn fold_ts_type_assertion(&mut self, node: TsTypeAssertion) -> TsTypeAssertion {
101693        if self.enabled {
101694            <V as Fold>::fold_ts_type_assertion(&mut self.visitor, node)
101695        } else {
101696            node
101697        }
101698    }
101699
101700    #[inline]
101701    fn fold_ts_type_element(&mut self, node: TsTypeElement) -> TsTypeElement {
101702        if self.enabled {
101703            <V as Fold>::fold_ts_type_element(&mut self.visitor, node)
101704        } else {
101705            node
101706        }
101707    }
101708
101709    #[inline]
101710    fn fold_ts_type_elements(&mut self, node: Vec<TsTypeElement>) -> Vec<TsTypeElement> {
101711        if self.enabled {
101712            <V as Fold>::fold_ts_type_elements(&mut self.visitor, node)
101713        } else {
101714            node
101715        }
101716    }
101717
101718    #[inline]
101719    fn fold_ts_type_lit(&mut self, node: TsTypeLit) -> TsTypeLit {
101720        if self.enabled {
101721            <V as Fold>::fold_ts_type_lit(&mut self.visitor, node)
101722        } else {
101723            node
101724        }
101725    }
101726
101727    #[inline]
101728    fn fold_ts_type_operator(&mut self, node: TsTypeOperator) -> TsTypeOperator {
101729        if self.enabled {
101730            <V as Fold>::fold_ts_type_operator(&mut self.visitor, node)
101731        } else {
101732            node
101733        }
101734    }
101735
101736    #[inline]
101737    fn fold_ts_type_operator_op(&mut self, node: TsTypeOperatorOp) -> TsTypeOperatorOp {
101738        if self.enabled {
101739            <V as Fold>::fold_ts_type_operator_op(&mut self.visitor, node)
101740        } else {
101741            node
101742        }
101743    }
101744
101745    #[inline]
101746    fn fold_ts_type_param(&mut self, node: TsTypeParam) -> TsTypeParam {
101747        if self.enabled {
101748            <V as Fold>::fold_ts_type_param(&mut self.visitor, node)
101749        } else {
101750            node
101751        }
101752    }
101753
101754    #[inline]
101755    fn fold_ts_type_param_decl(&mut self, node: TsTypeParamDecl) -> TsTypeParamDecl {
101756        if self.enabled {
101757            <V as Fold>::fold_ts_type_param_decl(&mut self.visitor, node)
101758        } else {
101759            node
101760        }
101761    }
101762
101763    #[inline]
101764    fn fold_ts_type_param_instantiation(
101765        &mut self,
101766        node: TsTypeParamInstantiation,
101767    ) -> TsTypeParamInstantiation {
101768        if self.enabled {
101769            <V as Fold>::fold_ts_type_param_instantiation(&mut self.visitor, node)
101770        } else {
101771            node
101772        }
101773    }
101774
101775    #[inline]
101776    fn fold_ts_type_params(&mut self, node: Vec<TsTypeParam>) -> Vec<TsTypeParam> {
101777        if self.enabled {
101778            <V as Fold>::fold_ts_type_params(&mut self.visitor, node)
101779        } else {
101780            node
101781        }
101782    }
101783
101784    #[inline]
101785    fn fold_ts_type_predicate(&mut self, node: TsTypePredicate) -> TsTypePredicate {
101786        if self.enabled {
101787            <V as Fold>::fold_ts_type_predicate(&mut self.visitor, node)
101788        } else {
101789            node
101790        }
101791    }
101792
101793    #[inline]
101794    fn fold_ts_type_query(&mut self, node: TsTypeQuery) -> TsTypeQuery {
101795        if self.enabled {
101796            <V as Fold>::fold_ts_type_query(&mut self.visitor, node)
101797        } else {
101798            node
101799        }
101800    }
101801
101802    #[inline]
101803    fn fold_ts_type_query_expr(&mut self, node: TsTypeQueryExpr) -> TsTypeQueryExpr {
101804        if self.enabled {
101805            <V as Fold>::fold_ts_type_query_expr(&mut self.visitor, node)
101806        } else {
101807            node
101808        }
101809    }
101810
101811    #[inline]
101812    fn fold_ts_type_ref(&mut self, node: TsTypeRef) -> TsTypeRef {
101813        if self.enabled {
101814            <V as Fold>::fold_ts_type_ref(&mut self.visitor, node)
101815        } else {
101816            node
101817        }
101818    }
101819
101820    #[inline]
101821    fn fold_ts_types(&mut self, node: Vec<Box<TsType>>) -> Vec<Box<TsType>> {
101822        if self.enabled {
101823            <V as Fold>::fold_ts_types(&mut self.visitor, node)
101824        } else {
101825            node
101826        }
101827    }
101828
101829    #[inline]
101830    fn fold_ts_union_or_intersection_type(
101831        &mut self,
101832        node: TsUnionOrIntersectionType,
101833    ) -> TsUnionOrIntersectionType {
101834        if self.enabled {
101835            <V as Fold>::fold_ts_union_or_intersection_type(&mut self.visitor, node)
101836        } else {
101837            node
101838        }
101839    }
101840
101841    #[inline]
101842    fn fold_ts_union_type(&mut self, node: TsUnionType) -> TsUnionType {
101843        if self.enabled {
101844            <V as Fold>::fold_ts_union_type(&mut self.visitor, node)
101845        } else {
101846            node
101847        }
101848    }
101849
101850    #[inline]
101851    fn fold_unary_expr(&mut self, node: UnaryExpr) -> UnaryExpr {
101852        if self.enabled {
101853            <V as Fold>::fold_unary_expr(&mut self.visitor, node)
101854        } else {
101855            node
101856        }
101857    }
101858
101859    #[inline]
101860    fn fold_unary_op(&mut self, node: UnaryOp) -> UnaryOp {
101861        if self.enabled {
101862            <V as Fold>::fold_unary_op(&mut self.visitor, node)
101863        } else {
101864            node
101865        }
101866    }
101867
101868    #[inline]
101869    fn fold_update_expr(&mut self, node: UpdateExpr) -> UpdateExpr {
101870        if self.enabled {
101871            <V as Fold>::fold_update_expr(&mut self.visitor, node)
101872        } else {
101873            node
101874        }
101875    }
101876
101877    #[inline]
101878    fn fold_update_op(&mut self, node: UpdateOp) -> UpdateOp {
101879        if self.enabled {
101880            <V as Fold>::fold_update_op(&mut self.visitor, node)
101881        } else {
101882            node
101883        }
101884    }
101885
101886    #[inline]
101887    fn fold_using_decl(&mut self, node: UsingDecl) -> UsingDecl {
101888        if self.enabled {
101889            <V as Fold>::fold_using_decl(&mut self.visitor, node)
101890        } else {
101891            node
101892        }
101893    }
101894
101895    #[inline]
101896    fn fold_var_decl(&mut self, node: VarDecl) -> VarDecl {
101897        if self.enabled {
101898            <V as Fold>::fold_var_decl(&mut self.visitor, node)
101899        } else {
101900            node
101901        }
101902    }
101903
101904    #[inline]
101905    fn fold_var_decl_kind(&mut self, node: VarDeclKind) -> VarDeclKind {
101906        if self.enabled {
101907            <V as Fold>::fold_var_decl_kind(&mut self.visitor, node)
101908        } else {
101909            node
101910        }
101911    }
101912
101913    #[inline]
101914    fn fold_var_decl_or_expr(&mut self, node: VarDeclOrExpr) -> VarDeclOrExpr {
101915        if self.enabled {
101916            <V as Fold>::fold_var_decl_or_expr(&mut self.visitor, node)
101917        } else {
101918            node
101919        }
101920    }
101921
101922    #[inline]
101923    fn fold_var_declarator(&mut self, node: VarDeclarator) -> VarDeclarator {
101924        if self.enabled {
101925            <V as Fold>::fold_var_declarator(&mut self.visitor, node)
101926        } else {
101927            node
101928        }
101929    }
101930
101931    #[inline]
101932    fn fold_var_declarators(&mut self, node: Vec<VarDeclarator>) -> Vec<VarDeclarator> {
101933        if self.enabled {
101934            <V as Fold>::fold_var_declarators(&mut self.visitor, node)
101935        } else {
101936            node
101937        }
101938    }
101939
101940    #[inline]
101941    fn fold_while_stmt(&mut self, node: WhileStmt) -> WhileStmt {
101942        if self.enabled {
101943            <V as Fold>::fold_while_stmt(&mut self.visitor, node)
101944        } else {
101945            node
101946        }
101947    }
101948
101949    #[inline]
101950    fn fold_with_stmt(&mut self, node: WithStmt) -> WithStmt {
101951        if self.enabled {
101952            <V as Fold>::fold_with_stmt(&mut self.visitor, node)
101953        } else {
101954            node
101955        }
101956    }
101957
101958    #[inline]
101959    fn fold_yield_expr(&mut self, node: YieldExpr) -> YieldExpr {
101960        if self.enabled {
101961            <V as Fold>::fold_yield_expr(&mut self.visitor, node)
101962        } else {
101963            node
101964        }
101965    }
101966}
101967#[doc = r" A trait implemented for types that can be visited using a visitor."]
101968pub trait FoldWith<V: ?Sized + Fold> {
101969    #[doc = r" Calls a visitor method (visitor.fold_xxx) with self."]
101970    fn fold_with(self, visitor: &mut V) -> Self;
101971    #[doc = r" Visit children nodes of `self`` with `visitor`."]
101972    fn fold_children_with(self, visitor: &mut V) -> Self;
101973}
101974impl<V: ?Sized + Fold> FoldWith<V> for Accessibility {
101975    #[doc = "Calls [Fold`::fold_accessibility`] with `self`."]
101976    fn fold_with(self, visitor: &mut V) -> Self {
101977        <V as Fold>::fold_accessibility(visitor, self)
101978    }
101979
101980    fn fold_children_with(self, visitor: &mut V) -> Self {
101981        match self {
101982            Accessibility::Public => Accessibility::Public,
101983            Accessibility::Protected => Accessibility::Protected,
101984            Accessibility::Private => Accessibility::Private,
101985        }
101986    }
101987}
101988impl<V: ?Sized + Fold> FoldWith<V> for ArrayLit {
101989    #[doc = "Calls [Fold`::fold_array_lit`] with `self`."]
101990    fn fold_with(self, visitor: &mut V) -> Self {
101991        <V as Fold>::fold_array_lit(visitor, self)
101992    }
101993
101994    fn fold_children_with(self, visitor: &mut V) -> Self {
101995        match self {
101996            ArrayLit { span, elems } => {
101997                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101998                let elems =
101999                    { <Vec<Option<ExprOrSpread>> as FoldWith<V>>::fold_with(elems, visitor) };
102000                ArrayLit { span, elems }
102001            }
102002        }
102003    }
102004}
102005impl<V: ?Sized + Fold> FoldWith<V> for ArrayPat {
102006    #[doc = "Calls [Fold`::fold_array_pat`] with `self`."]
102007    fn fold_with(self, visitor: &mut V) -> Self {
102008        <V as Fold>::fold_array_pat(visitor, self)
102009    }
102010
102011    fn fold_children_with(self, visitor: &mut V) -> Self {
102012        match self {
102013            ArrayPat {
102014                span,
102015                elems,
102016                optional,
102017                type_ann,
102018            } => {
102019                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102020                let elems = { <Vec<Option<Pat>> as FoldWith<V>>::fold_with(elems, visitor) };
102021                let type_ann =
102022                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
102023                ArrayPat {
102024                    span,
102025                    elems,
102026                    optional,
102027                    type_ann,
102028                }
102029            }
102030        }
102031    }
102032}
102033impl<V: ?Sized + Fold> FoldWith<V> for ArrowExpr {
102034    #[doc = "Calls [Fold`::fold_arrow_expr`] with `self`."]
102035    fn fold_with(self, visitor: &mut V) -> Self {
102036        <V as Fold>::fold_arrow_expr(visitor, self)
102037    }
102038
102039    fn fold_children_with(self, visitor: &mut V) -> Self {
102040        match self {
102041            ArrowExpr {
102042                span,
102043                ctxt,
102044                params,
102045                body,
102046                is_async,
102047                is_generator,
102048                type_params,
102049                return_type,
102050            } => {
102051                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102052                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
102053                let params = { <Vec<Pat> as FoldWith<V>>::fold_with(params, visitor) };
102054                let body = { <Box<BlockStmtOrExpr> as FoldWith<V>>::fold_with(body, visitor) };
102055                let type_params = {
102056                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
102057                };
102058                let return_type =
102059                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(return_type, visitor) };
102060                ArrowExpr {
102061                    span,
102062                    ctxt,
102063                    params,
102064                    body,
102065                    is_async,
102066                    is_generator,
102067                    type_params,
102068                    return_type,
102069                }
102070            }
102071        }
102072    }
102073}
102074impl<V: ?Sized + Fold> FoldWith<V> for AssignExpr {
102075    #[doc = "Calls [Fold`::fold_assign_expr`] with `self`."]
102076    fn fold_with(self, visitor: &mut V) -> Self {
102077        <V as Fold>::fold_assign_expr(visitor, self)
102078    }
102079
102080    fn fold_children_with(self, visitor: &mut V) -> Self {
102081        match self {
102082            AssignExpr {
102083                span,
102084                op,
102085                left,
102086                right,
102087            } => {
102088                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102089                let op = { <AssignOp as FoldWith<V>>::fold_with(op, visitor) };
102090                let left = { <AssignTarget as FoldWith<V>>::fold_with(left, visitor) };
102091                let right = { <Box<Expr> as FoldWith<V>>::fold_with(right, visitor) };
102092                AssignExpr {
102093                    span,
102094                    op,
102095                    left,
102096                    right,
102097                }
102098            }
102099        }
102100    }
102101}
102102impl<V: ?Sized + Fold> FoldWith<V> for AssignOp {
102103    #[doc = "Calls [Fold`::fold_assign_op`] with `self`."]
102104    fn fold_with(self, visitor: &mut V) -> Self {
102105        <V as Fold>::fold_assign_op(visitor, self)
102106    }
102107
102108    fn fold_children_with(self, visitor: &mut V) -> Self {
102109        match self {
102110            AssignOp::Assign => AssignOp::Assign,
102111            AssignOp::AddAssign => AssignOp::AddAssign,
102112            AssignOp::SubAssign => AssignOp::SubAssign,
102113            AssignOp::MulAssign => AssignOp::MulAssign,
102114            AssignOp::DivAssign => AssignOp::DivAssign,
102115            AssignOp::ModAssign => AssignOp::ModAssign,
102116            AssignOp::LShiftAssign => AssignOp::LShiftAssign,
102117            AssignOp::RShiftAssign => AssignOp::RShiftAssign,
102118            AssignOp::ZeroFillRShiftAssign => AssignOp::ZeroFillRShiftAssign,
102119            AssignOp::BitOrAssign => AssignOp::BitOrAssign,
102120            AssignOp::BitXorAssign => AssignOp::BitXorAssign,
102121            AssignOp::BitAndAssign => AssignOp::BitAndAssign,
102122            AssignOp::ExpAssign => AssignOp::ExpAssign,
102123            AssignOp::AndAssign => AssignOp::AndAssign,
102124            AssignOp::OrAssign => AssignOp::OrAssign,
102125            AssignOp::NullishAssign => AssignOp::NullishAssign,
102126        }
102127    }
102128}
102129impl<V: ?Sized + Fold> FoldWith<V> for AssignPat {
102130    #[doc = "Calls [Fold`::fold_assign_pat`] with `self`."]
102131    fn fold_with(self, visitor: &mut V) -> Self {
102132        <V as Fold>::fold_assign_pat(visitor, self)
102133    }
102134
102135    fn fold_children_with(self, visitor: &mut V) -> Self {
102136        match self {
102137            AssignPat { span, left, right } => {
102138                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102139                let left = { <Box<Pat> as FoldWith<V>>::fold_with(left, visitor) };
102140                let right = { <Box<Expr> as FoldWith<V>>::fold_with(right, visitor) };
102141                AssignPat { span, left, right }
102142            }
102143        }
102144    }
102145}
102146impl<V: ?Sized + Fold> FoldWith<V> for AssignPatProp {
102147    #[doc = "Calls [Fold`::fold_assign_pat_prop`] with `self`."]
102148    fn fold_with(self, visitor: &mut V) -> Self {
102149        <V as Fold>::fold_assign_pat_prop(visitor, self)
102150    }
102151
102152    fn fold_children_with(self, visitor: &mut V) -> Self {
102153        match self {
102154            AssignPatProp { span, key, value } => {
102155                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102156                let key = { <BindingIdent as FoldWith<V>>::fold_with(key, visitor) };
102157                let value = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(value, visitor) };
102158                AssignPatProp { span, key, value }
102159            }
102160        }
102161    }
102162}
102163impl<V: ?Sized + Fold> FoldWith<V> for AssignProp {
102164    #[doc = "Calls [Fold`::fold_assign_prop`] with `self`."]
102165    fn fold_with(self, visitor: &mut V) -> Self {
102166        <V as Fold>::fold_assign_prop(visitor, self)
102167    }
102168
102169    fn fold_children_with(self, visitor: &mut V) -> Self {
102170        match self {
102171            AssignProp { span, key, value } => {
102172                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102173                let key = { <Ident as FoldWith<V>>::fold_with(key, visitor) };
102174                let value = { <Box<Expr> as FoldWith<V>>::fold_with(value, visitor) };
102175                AssignProp { span, key, value }
102176            }
102177        }
102178    }
102179}
102180impl<V: ?Sized + Fold> FoldWith<V> for AssignTarget {
102181    #[doc = "Calls [Fold`::fold_assign_target`] with `self`."]
102182    fn fold_with(self, visitor: &mut V) -> Self {
102183        <V as Fold>::fold_assign_target(visitor, self)
102184    }
102185
102186    fn fold_children_with(self, visitor: &mut V) -> Self {
102187        match self {
102188            AssignTarget::Simple { 0: _field_0 } => {
102189                let _field_0 = <SimpleAssignTarget as FoldWith<V>>::fold_with(_field_0, visitor);
102190                AssignTarget::Simple { 0: _field_0 }
102191            }
102192            AssignTarget::Pat { 0: _field_0 } => {
102193                let _field_0 = <AssignTargetPat as FoldWith<V>>::fold_with(_field_0, visitor);
102194                AssignTarget::Pat { 0: _field_0 }
102195            }
102196        }
102197    }
102198}
102199impl<V: ?Sized + Fold> FoldWith<V> for AssignTargetPat {
102200    #[doc = "Calls [Fold`::fold_assign_target_pat`] with `self`."]
102201    fn fold_with(self, visitor: &mut V) -> Self {
102202        <V as Fold>::fold_assign_target_pat(visitor, self)
102203    }
102204
102205    fn fold_children_with(self, visitor: &mut V) -> Self {
102206        match self {
102207            AssignTargetPat::Array { 0: _field_0 } => {
102208                let _field_0 = <ArrayPat as FoldWith<V>>::fold_with(_field_0, visitor);
102209                AssignTargetPat::Array { 0: _field_0 }
102210            }
102211            AssignTargetPat::Object { 0: _field_0 } => {
102212                let _field_0 = <ObjectPat as FoldWith<V>>::fold_with(_field_0, visitor);
102213                AssignTargetPat::Object { 0: _field_0 }
102214            }
102215            AssignTargetPat::Invalid { 0: _field_0 } => {
102216                let _field_0 = <Invalid as FoldWith<V>>::fold_with(_field_0, visitor);
102217                AssignTargetPat::Invalid { 0: _field_0 }
102218            }
102219        }
102220    }
102221}
102222impl<V: ?Sized + Fold> FoldWith<V> for AutoAccessor {
102223    #[doc = "Calls [Fold`::fold_auto_accessor`] with `self`."]
102224    fn fold_with(self, visitor: &mut V) -> Self {
102225        <V as Fold>::fold_auto_accessor(visitor, self)
102226    }
102227
102228    fn fold_children_with(self, visitor: &mut V) -> Self {
102229        match self {
102230            AutoAccessor {
102231                span,
102232                key,
102233                value,
102234                type_ann,
102235                is_static,
102236                decorators,
102237                accessibility,
102238                is_abstract,
102239                is_override,
102240                definite,
102241            } => {
102242                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102243                let key = { <Key as FoldWith<V>>::fold_with(key, visitor) };
102244                let value = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(value, visitor) };
102245                let type_ann =
102246                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
102247                let decorators =
102248                    { <Vec<Decorator> as FoldWith<V>>::fold_with(decorators, visitor) };
102249                let accessibility =
102250                    { <Option<Accessibility> as FoldWith<V>>::fold_with(accessibility, visitor) };
102251                AutoAccessor {
102252                    span,
102253                    key,
102254                    value,
102255                    type_ann,
102256                    is_static,
102257                    decorators,
102258                    accessibility,
102259                    is_abstract,
102260                    is_override,
102261                    definite,
102262                }
102263            }
102264        }
102265    }
102266}
102267impl<V: ?Sized + Fold> FoldWith<V> for AwaitExpr {
102268    #[doc = "Calls [Fold`::fold_await_expr`] with `self`."]
102269    fn fold_with(self, visitor: &mut V) -> Self {
102270        <V as Fold>::fold_await_expr(visitor, self)
102271    }
102272
102273    fn fold_children_with(self, visitor: &mut V) -> Self {
102274        match self {
102275            AwaitExpr { span, arg } => {
102276                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102277                let arg = { <Box<Expr> as FoldWith<V>>::fold_with(arg, visitor) };
102278                AwaitExpr { span, arg }
102279            }
102280        }
102281    }
102282}
102283impl<V: ?Sized + Fold> FoldWith<V> for BigInt {
102284    #[doc = "Calls [Fold`::fold_big_int`] with `self`."]
102285    fn fold_with(self, visitor: &mut V) -> Self {
102286        <V as Fold>::fold_big_int(visitor, self)
102287    }
102288
102289    fn fold_children_with(self, visitor: &mut V) -> Self {
102290        match self {
102291            BigInt { span, value, raw } => {
102292                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102293                let value = { <Box<BigIntValue> as FoldWith<V>>::fold_with(value, visitor) };
102294                let raw = { <Option<swc_atoms::Atom> as FoldWith<V>>::fold_with(raw, visitor) };
102295                BigInt { span, value, raw }
102296            }
102297        }
102298    }
102299}
102300impl<V: ?Sized + Fold> FoldWith<V> for BinExpr {
102301    #[doc = "Calls [Fold`::fold_bin_expr`] with `self`."]
102302    fn fold_with(self, visitor: &mut V) -> Self {
102303        <V as Fold>::fold_bin_expr(visitor, self)
102304    }
102305
102306    fn fold_children_with(self, visitor: &mut V) -> Self {
102307        match self {
102308            BinExpr {
102309                span,
102310                op,
102311                left,
102312                right,
102313            } => {
102314                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102315                let op = { <BinaryOp as FoldWith<V>>::fold_with(op, visitor) };
102316                let left = { <Box<Expr> as FoldWith<V>>::fold_with(left, visitor) };
102317                let right = { <Box<Expr> as FoldWith<V>>::fold_with(right, visitor) };
102318                BinExpr {
102319                    span,
102320                    op,
102321                    left,
102322                    right,
102323                }
102324            }
102325        }
102326    }
102327}
102328impl<V: ?Sized + Fold> FoldWith<V> for BinaryOp {
102329    #[doc = "Calls [Fold`::fold_binary_op`] with `self`."]
102330    fn fold_with(self, visitor: &mut V) -> Self {
102331        <V as Fold>::fold_binary_op(visitor, self)
102332    }
102333
102334    fn fold_children_with(self, visitor: &mut V) -> Self {
102335        match self {
102336            BinaryOp::EqEq => BinaryOp::EqEq,
102337            BinaryOp::NotEq => BinaryOp::NotEq,
102338            BinaryOp::EqEqEq => BinaryOp::EqEqEq,
102339            BinaryOp::NotEqEq => BinaryOp::NotEqEq,
102340            BinaryOp::Lt => BinaryOp::Lt,
102341            BinaryOp::LtEq => BinaryOp::LtEq,
102342            BinaryOp::Gt => BinaryOp::Gt,
102343            BinaryOp::GtEq => BinaryOp::GtEq,
102344            BinaryOp::LShift => BinaryOp::LShift,
102345            BinaryOp::RShift => BinaryOp::RShift,
102346            BinaryOp::ZeroFillRShift => BinaryOp::ZeroFillRShift,
102347            BinaryOp::Add => BinaryOp::Add,
102348            BinaryOp::Sub => BinaryOp::Sub,
102349            BinaryOp::Mul => BinaryOp::Mul,
102350            BinaryOp::Div => BinaryOp::Div,
102351            BinaryOp::Mod => BinaryOp::Mod,
102352            BinaryOp::BitOr => BinaryOp::BitOr,
102353            BinaryOp::BitXor => BinaryOp::BitXor,
102354            BinaryOp::BitAnd => BinaryOp::BitAnd,
102355            BinaryOp::LogicalOr => BinaryOp::LogicalOr,
102356            BinaryOp::LogicalAnd => BinaryOp::LogicalAnd,
102357            BinaryOp::In => BinaryOp::In,
102358            BinaryOp::InstanceOf => BinaryOp::InstanceOf,
102359            BinaryOp::Exp => BinaryOp::Exp,
102360            BinaryOp::NullishCoalescing => BinaryOp::NullishCoalescing,
102361        }
102362    }
102363}
102364impl<V: ?Sized + Fold> FoldWith<V> for BindingIdent {
102365    #[doc = "Calls [Fold`::fold_binding_ident`] with `self`."]
102366    fn fold_with(self, visitor: &mut V) -> Self {
102367        <V as Fold>::fold_binding_ident(visitor, self)
102368    }
102369
102370    fn fold_children_with(self, visitor: &mut V) -> Self {
102371        match self {
102372            BindingIdent { id, type_ann } => {
102373                let id = { <Ident as FoldWith<V>>::fold_with(id, visitor) };
102374                let type_ann =
102375                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
102376                BindingIdent { id, type_ann }
102377            }
102378        }
102379    }
102380}
102381impl<V: ?Sized + Fold> FoldWith<V> for BlockStmt {
102382    #[doc = "Calls [Fold`::fold_block_stmt`] with `self`."]
102383    fn fold_with(self, visitor: &mut V) -> Self {
102384        <V as Fold>::fold_block_stmt(visitor, self)
102385    }
102386
102387    fn fold_children_with(self, visitor: &mut V) -> Self {
102388        match self {
102389            BlockStmt { span, ctxt, stmts } => {
102390                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102391                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
102392                let stmts = { <Vec<Stmt> as FoldWith<V>>::fold_with(stmts, visitor) };
102393                BlockStmt { span, ctxt, stmts }
102394            }
102395        }
102396    }
102397}
102398impl<V: ?Sized + Fold> FoldWith<V> for BlockStmtOrExpr {
102399    #[doc = "Calls [Fold`::fold_block_stmt_or_expr`] with `self`."]
102400    fn fold_with(self, visitor: &mut V) -> Self {
102401        <V as Fold>::fold_block_stmt_or_expr(visitor, self)
102402    }
102403
102404    fn fold_children_with(self, visitor: &mut V) -> Self {
102405        match self {
102406            BlockStmtOrExpr::BlockStmt { 0: _field_0 } => {
102407                let _field_0 = <BlockStmt as FoldWith<V>>::fold_with(_field_0, visitor);
102408                BlockStmtOrExpr::BlockStmt { 0: _field_0 }
102409            }
102410            BlockStmtOrExpr::Expr { 0: _field_0 } => {
102411                let _field_0 = <Box<Expr> as FoldWith<V>>::fold_with(_field_0, visitor);
102412                BlockStmtOrExpr::Expr { 0: _field_0 }
102413            }
102414        }
102415    }
102416}
102417impl<V: ?Sized + Fold> FoldWith<V> for Bool {
102418    #[doc = "Calls [Fold`::fold_bool`] with `self`."]
102419    fn fold_with(self, visitor: &mut V) -> Self {
102420        <V as Fold>::fold_bool(visitor, self)
102421    }
102422
102423    fn fold_children_with(self, visitor: &mut V) -> Self {
102424        match self {
102425            Bool { span, value } => {
102426                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102427                Bool { span, value }
102428            }
102429        }
102430    }
102431}
102432impl<V: ?Sized + Fold> FoldWith<V> for BreakStmt {
102433    #[doc = "Calls [Fold`::fold_break_stmt`] with `self`."]
102434    fn fold_with(self, visitor: &mut V) -> Self {
102435        <V as Fold>::fold_break_stmt(visitor, self)
102436    }
102437
102438    fn fold_children_with(self, visitor: &mut V) -> Self {
102439        match self {
102440            BreakStmt { span, label } => {
102441                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102442                let label = { <Option<Ident> as FoldWith<V>>::fold_with(label, visitor) };
102443                BreakStmt { span, label }
102444            }
102445        }
102446    }
102447}
102448impl<V: ?Sized + Fold> FoldWith<V> for CallExpr {
102449    #[doc = "Calls [Fold`::fold_call_expr`] with `self`."]
102450    fn fold_with(self, visitor: &mut V) -> Self {
102451        <V as Fold>::fold_call_expr(visitor, self)
102452    }
102453
102454    fn fold_children_with(self, visitor: &mut V) -> Self {
102455        match self {
102456            CallExpr {
102457                span,
102458                ctxt,
102459                callee,
102460                args,
102461                type_args,
102462            } => {
102463                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102464                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
102465                let callee = { <Callee as FoldWith<V>>::fold_with(callee, visitor) };
102466                let args = { <Vec<ExprOrSpread> as FoldWith<V>>::fold_with(args, visitor) };
102467                let type_args = {
102468                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
102469                        type_args, visitor,
102470                    )
102471                };
102472                CallExpr {
102473                    span,
102474                    ctxt,
102475                    callee,
102476                    args,
102477                    type_args,
102478                }
102479            }
102480        }
102481    }
102482}
102483impl<V: ?Sized + Fold> FoldWith<V> for Callee {
102484    #[doc = "Calls [Fold`::fold_callee`] with `self`."]
102485    fn fold_with(self, visitor: &mut V) -> Self {
102486        <V as Fold>::fold_callee(visitor, self)
102487    }
102488
102489    fn fold_children_with(self, visitor: &mut V) -> Self {
102490        match self {
102491            Callee::Super { 0: _field_0 } => {
102492                let _field_0 = <Super as FoldWith<V>>::fold_with(_field_0, visitor);
102493                Callee::Super { 0: _field_0 }
102494            }
102495            Callee::Import { 0: _field_0 } => {
102496                let _field_0 = <Import as FoldWith<V>>::fold_with(_field_0, visitor);
102497                Callee::Import { 0: _field_0 }
102498            }
102499            Callee::Expr { 0: _field_0 } => {
102500                let _field_0 = <Box<Expr> as FoldWith<V>>::fold_with(_field_0, visitor);
102501                Callee::Expr { 0: _field_0 }
102502            }
102503        }
102504    }
102505}
102506impl<V: ?Sized + Fold> FoldWith<V> for CatchClause {
102507    #[doc = "Calls [Fold`::fold_catch_clause`] with `self`."]
102508    fn fold_with(self, visitor: &mut V) -> Self {
102509        <V as Fold>::fold_catch_clause(visitor, self)
102510    }
102511
102512    fn fold_children_with(self, visitor: &mut V) -> Self {
102513        match self {
102514            CatchClause { span, param, body } => {
102515                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102516                let param = { <Option<Pat> as FoldWith<V>>::fold_with(param, visitor) };
102517                let body = { <BlockStmt as FoldWith<V>>::fold_with(body, visitor) };
102518                CatchClause { span, param, body }
102519            }
102520        }
102521    }
102522}
102523impl<V: ?Sized + Fold> FoldWith<V> for Class {
102524    #[doc = "Calls [Fold`::fold_class`] with `self`."]
102525    fn fold_with(self, visitor: &mut V) -> Self {
102526        <V as Fold>::fold_class(visitor, self)
102527    }
102528
102529    fn fold_children_with(self, visitor: &mut V) -> Self {
102530        match self {
102531            Class {
102532                span,
102533                ctxt,
102534                decorators,
102535                body,
102536                super_class,
102537                is_abstract,
102538                type_params,
102539                super_type_params,
102540                implements,
102541            } => {
102542                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102543                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
102544                let decorators =
102545                    { <Vec<Decorator> as FoldWith<V>>::fold_with(decorators, visitor) };
102546                let body = { <Vec<ClassMember> as FoldWith<V>>::fold_with(body, visitor) };
102547                let super_class =
102548                    { <Option<Box<Expr>> as FoldWith<V>>::fold_with(super_class, visitor) };
102549                let type_params = {
102550                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
102551                };
102552                let super_type_params = {
102553                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
102554                        super_type_params,
102555                        visitor,
102556                    )
102557                };
102558                let implements =
102559                    { <Vec<TsExprWithTypeArgs> as FoldWith<V>>::fold_with(implements, visitor) };
102560                Class {
102561                    span,
102562                    ctxt,
102563                    decorators,
102564                    body,
102565                    super_class,
102566                    is_abstract,
102567                    type_params,
102568                    super_type_params,
102569                    implements,
102570                }
102571            }
102572        }
102573    }
102574}
102575impl<V: ?Sized + Fold> FoldWith<V> for ClassDecl {
102576    #[doc = "Calls [Fold`::fold_class_decl`] with `self`."]
102577    fn fold_with(self, visitor: &mut V) -> Self {
102578        <V as Fold>::fold_class_decl(visitor, self)
102579    }
102580
102581    fn fold_children_with(self, visitor: &mut V) -> Self {
102582        match self {
102583            ClassDecl {
102584                ident,
102585                declare,
102586                class,
102587            } => {
102588                let ident = { <Ident as FoldWith<V>>::fold_with(ident, visitor) };
102589                let class = { <Box<Class> as FoldWith<V>>::fold_with(class, visitor) };
102590                ClassDecl {
102591                    ident,
102592                    declare,
102593                    class,
102594                }
102595            }
102596        }
102597    }
102598}
102599impl<V: ?Sized + Fold> FoldWith<V> for ClassExpr {
102600    #[doc = "Calls [Fold`::fold_class_expr`] with `self`."]
102601    fn fold_with(self, visitor: &mut V) -> Self {
102602        <V as Fold>::fold_class_expr(visitor, self)
102603    }
102604
102605    fn fold_children_with(self, visitor: &mut V) -> Self {
102606        match self {
102607            ClassExpr { ident, class } => {
102608                let ident = { <Option<Ident> as FoldWith<V>>::fold_with(ident, visitor) };
102609                let class = { <Box<Class> as FoldWith<V>>::fold_with(class, visitor) };
102610                ClassExpr { ident, class }
102611            }
102612        }
102613    }
102614}
102615impl<V: ?Sized + Fold> FoldWith<V> for ClassMember {
102616    #[doc = "Calls [Fold`::fold_class_member`] with `self`."]
102617    fn fold_with(self, visitor: &mut V) -> Self {
102618        <V as Fold>::fold_class_member(visitor, self)
102619    }
102620
102621    fn fold_children_with(self, visitor: &mut V) -> Self {
102622        match self {
102623            ClassMember::Constructor { 0: _field_0 } => {
102624                let _field_0 = <Constructor as FoldWith<V>>::fold_with(_field_0, visitor);
102625                ClassMember::Constructor { 0: _field_0 }
102626            }
102627            ClassMember::Method { 0: _field_0 } => {
102628                let _field_0 = <ClassMethod as FoldWith<V>>::fold_with(_field_0, visitor);
102629                ClassMember::Method { 0: _field_0 }
102630            }
102631            ClassMember::PrivateMethod { 0: _field_0 } => {
102632                let _field_0 = <PrivateMethod as FoldWith<V>>::fold_with(_field_0, visitor);
102633                ClassMember::PrivateMethod { 0: _field_0 }
102634            }
102635            ClassMember::ClassProp { 0: _field_0 } => {
102636                let _field_0 = <ClassProp as FoldWith<V>>::fold_with(_field_0, visitor);
102637                ClassMember::ClassProp { 0: _field_0 }
102638            }
102639            ClassMember::PrivateProp { 0: _field_0 } => {
102640                let _field_0 = <PrivateProp as FoldWith<V>>::fold_with(_field_0, visitor);
102641                ClassMember::PrivateProp { 0: _field_0 }
102642            }
102643            ClassMember::TsIndexSignature { 0: _field_0 } => {
102644                let _field_0 = <TsIndexSignature as FoldWith<V>>::fold_with(_field_0, visitor);
102645                ClassMember::TsIndexSignature { 0: _field_0 }
102646            }
102647            ClassMember::Empty { 0: _field_0 } => {
102648                let _field_0 = <EmptyStmt as FoldWith<V>>::fold_with(_field_0, visitor);
102649                ClassMember::Empty { 0: _field_0 }
102650            }
102651            ClassMember::StaticBlock { 0: _field_0 } => {
102652                let _field_0 = <StaticBlock as FoldWith<V>>::fold_with(_field_0, visitor);
102653                ClassMember::StaticBlock { 0: _field_0 }
102654            }
102655            ClassMember::AutoAccessor { 0: _field_0 } => {
102656                let _field_0 = <AutoAccessor as FoldWith<V>>::fold_with(_field_0, visitor);
102657                ClassMember::AutoAccessor { 0: _field_0 }
102658            }
102659        }
102660    }
102661}
102662impl<V: ?Sized + Fold> FoldWith<V> for ClassMethod {
102663    #[doc = "Calls [Fold`::fold_class_method`] with `self`."]
102664    fn fold_with(self, visitor: &mut V) -> Self {
102665        <V as Fold>::fold_class_method(visitor, self)
102666    }
102667
102668    fn fold_children_with(self, visitor: &mut V) -> Self {
102669        match self {
102670            ClassMethod {
102671                span,
102672                key,
102673                function,
102674                kind,
102675                is_static,
102676                accessibility,
102677                is_abstract,
102678                is_optional,
102679                is_override,
102680            } => {
102681                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102682                let key = { <PropName as FoldWith<V>>::fold_with(key, visitor) };
102683                let function = { <Box<Function> as FoldWith<V>>::fold_with(function, visitor) };
102684                let kind = { <MethodKind as FoldWith<V>>::fold_with(kind, visitor) };
102685                let accessibility =
102686                    { <Option<Accessibility> as FoldWith<V>>::fold_with(accessibility, visitor) };
102687                ClassMethod {
102688                    span,
102689                    key,
102690                    function,
102691                    kind,
102692                    is_static,
102693                    accessibility,
102694                    is_abstract,
102695                    is_optional,
102696                    is_override,
102697                }
102698            }
102699        }
102700    }
102701}
102702impl<V: ?Sized + Fold> FoldWith<V> for ClassProp {
102703    #[doc = "Calls [Fold`::fold_class_prop`] with `self`."]
102704    fn fold_with(self, visitor: &mut V) -> Self {
102705        <V as Fold>::fold_class_prop(visitor, self)
102706    }
102707
102708    fn fold_children_with(self, visitor: &mut V) -> Self {
102709        match self {
102710            ClassProp {
102711                span,
102712                key,
102713                value,
102714                type_ann,
102715                is_static,
102716                decorators,
102717                accessibility,
102718                is_abstract,
102719                is_optional,
102720                is_override,
102721                readonly,
102722                declare,
102723                definite,
102724            } => {
102725                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102726                let key = { <PropName as FoldWith<V>>::fold_with(key, visitor) };
102727                let value = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(value, visitor) };
102728                let type_ann =
102729                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
102730                let decorators =
102731                    { <Vec<Decorator> as FoldWith<V>>::fold_with(decorators, visitor) };
102732                let accessibility =
102733                    { <Option<Accessibility> as FoldWith<V>>::fold_with(accessibility, visitor) };
102734                ClassProp {
102735                    span,
102736                    key,
102737                    value,
102738                    type_ann,
102739                    is_static,
102740                    decorators,
102741                    accessibility,
102742                    is_abstract,
102743                    is_optional,
102744                    is_override,
102745                    readonly,
102746                    declare,
102747                    definite,
102748                }
102749            }
102750        }
102751    }
102752}
102753impl<V: ?Sized + Fold> FoldWith<V> for ComputedPropName {
102754    #[doc = "Calls [Fold`::fold_computed_prop_name`] with `self`."]
102755    fn fold_with(self, visitor: &mut V) -> Self {
102756        <V as Fold>::fold_computed_prop_name(visitor, self)
102757    }
102758
102759    fn fold_children_with(self, visitor: &mut V) -> Self {
102760        match self {
102761            ComputedPropName { span, expr } => {
102762                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102763                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
102764                ComputedPropName { span, expr }
102765            }
102766        }
102767    }
102768}
102769impl<V: ?Sized + Fold> FoldWith<V> for CondExpr {
102770    #[doc = "Calls [Fold`::fold_cond_expr`] with `self`."]
102771    fn fold_with(self, visitor: &mut V) -> Self {
102772        <V as Fold>::fold_cond_expr(visitor, self)
102773    }
102774
102775    fn fold_children_with(self, visitor: &mut V) -> Self {
102776        match self {
102777            CondExpr {
102778                span,
102779                test,
102780                cons,
102781                alt,
102782            } => {
102783                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102784                let test = { <Box<Expr> as FoldWith<V>>::fold_with(test, visitor) };
102785                let cons = { <Box<Expr> as FoldWith<V>>::fold_with(cons, visitor) };
102786                let alt = { <Box<Expr> as FoldWith<V>>::fold_with(alt, visitor) };
102787                CondExpr {
102788                    span,
102789                    test,
102790                    cons,
102791                    alt,
102792                }
102793            }
102794        }
102795    }
102796}
102797impl<V: ?Sized + Fold> FoldWith<V> for Constructor {
102798    #[doc = "Calls [Fold`::fold_constructor`] with `self`."]
102799    fn fold_with(self, visitor: &mut V) -> Self {
102800        <V as Fold>::fold_constructor(visitor, self)
102801    }
102802
102803    fn fold_children_with(self, visitor: &mut V) -> Self {
102804        match self {
102805            Constructor {
102806                span,
102807                ctxt,
102808                key,
102809                params,
102810                body,
102811                accessibility,
102812                is_optional,
102813            } => {
102814                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102815                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
102816                let key = { <PropName as FoldWith<V>>::fold_with(key, visitor) };
102817                let params =
102818                    { <Vec<ParamOrTsParamProp> as FoldWith<V>>::fold_with(params, visitor) };
102819                let body = { <Option<BlockStmt> as FoldWith<V>>::fold_with(body, visitor) };
102820                let accessibility =
102821                    { <Option<Accessibility> as FoldWith<V>>::fold_with(accessibility, visitor) };
102822                Constructor {
102823                    span,
102824                    ctxt,
102825                    key,
102826                    params,
102827                    body,
102828                    accessibility,
102829                    is_optional,
102830                }
102831            }
102832        }
102833    }
102834}
102835impl<V: ?Sized + Fold> FoldWith<V> for ContinueStmt {
102836    #[doc = "Calls [Fold`::fold_continue_stmt`] with `self`."]
102837    fn fold_with(self, visitor: &mut V) -> Self {
102838        <V as Fold>::fold_continue_stmt(visitor, self)
102839    }
102840
102841    fn fold_children_with(self, visitor: &mut V) -> Self {
102842        match self {
102843            ContinueStmt { span, label } => {
102844                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102845                let label = { <Option<Ident> as FoldWith<V>>::fold_with(label, visitor) };
102846                ContinueStmt { span, label }
102847            }
102848        }
102849    }
102850}
102851impl<V: ?Sized + Fold> FoldWith<V> for DebuggerStmt {
102852    #[doc = "Calls [Fold`::fold_debugger_stmt`] with `self`."]
102853    fn fold_with(self, visitor: &mut V) -> Self {
102854        <V as Fold>::fold_debugger_stmt(visitor, self)
102855    }
102856
102857    fn fold_children_with(self, visitor: &mut V) -> Self {
102858        match self {
102859            DebuggerStmt { span } => {
102860                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102861                DebuggerStmt { span }
102862            }
102863        }
102864    }
102865}
102866impl<V: ?Sized + Fold> FoldWith<V> for Decl {
102867    #[doc = "Calls [Fold`::fold_decl`] with `self`."]
102868    fn fold_with(self, visitor: &mut V) -> Self {
102869        <V as Fold>::fold_decl(visitor, self)
102870    }
102871
102872    fn fold_children_with(self, visitor: &mut V) -> Self {
102873        match self {
102874            Decl::Class { 0: _field_0 } => {
102875                let _field_0 = <ClassDecl as FoldWith<V>>::fold_with(_field_0, visitor);
102876                Decl::Class { 0: _field_0 }
102877            }
102878            Decl::Fn { 0: _field_0 } => {
102879                let _field_0 = <FnDecl as FoldWith<V>>::fold_with(_field_0, visitor);
102880                Decl::Fn { 0: _field_0 }
102881            }
102882            Decl::Var { 0: _field_0 } => {
102883                let _field_0 = <Box<VarDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
102884                Decl::Var { 0: _field_0 }
102885            }
102886            Decl::Using { 0: _field_0 } => {
102887                let _field_0 = <Box<UsingDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
102888                Decl::Using { 0: _field_0 }
102889            }
102890            Decl::TsInterface { 0: _field_0 } => {
102891                let _field_0 = <Box<TsInterfaceDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
102892                Decl::TsInterface { 0: _field_0 }
102893            }
102894            Decl::TsTypeAlias { 0: _field_0 } => {
102895                let _field_0 = <Box<TsTypeAliasDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
102896                Decl::TsTypeAlias { 0: _field_0 }
102897            }
102898            Decl::TsEnum { 0: _field_0 } => {
102899                let _field_0 = <Box<TsEnumDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
102900                Decl::TsEnum { 0: _field_0 }
102901            }
102902            Decl::TsModule { 0: _field_0 } => {
102903                let _field_0 = <Box<TsModuleDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
102904                Decl::TsModule { 0: _field_0 }
102905            }
102906        }
102907    }
102908}
102909impl<V: ?Sized + Fold> FoldWith<V> for Decorator {
102910    #[doc = "Calls [Fold`::fold_decorator`] with `self`."]
102911    fn fold_with(self, visitor: &mut V) -> Self {
102912        <V as Fold>::fold_decorator(visitor, self)
102913    }
102914
102915    fn fold_children_with(self, visitor: &mut V) -> Self {
102916        match self {
102917            Decorator { span, expr } => {
102918                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102919                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
102920                Decorator { span, expr }
102921            }
102922        }
102923    }
102924}
102925impl<V: ?Sized + Fold> FoldWith<V> for DefaultDecl {
102926    #[doc = "Calls [Fold`::fold_default_decl`] with `self`."]
102927    fn fold_with(self, visitor: &mut V) -> Self {
102928        <V as Fold>::fold_default_decl(visitor, self)
102929    }
102930
102931    fn fold_children_with(self, visitor: &mut V) -> Self {
102932        match self {
102933            DefaultDecl::Class { 0: _field_0 } => {
102934                let _field_0 = <ClassExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102935                DefaultDecl::Class { 0: _field_0 }
102936            }
102937            DefaultDecl::Fn { 0: _field_0 } => {
102938                let _field_0 = <FnExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102939                DefaultDecl::Fn { 0: _field_0 }
102940            }
102941            DefaultDecl::TsInterfaceDecl { 0: _field_0 } => {
102942                let _field_0 = <Box<TsInterfaceDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
102943                DefaultDecl::TsInterfaceDecl { 0: _field_0 }
102944            }
102945        }
102946    }
102947}
102948impl<V: ?Sized + Fold> FoldWith<V> for DoWhileStmt {
102949    #[doc = "Calls [Fold`::fold_do_while_stmt`] with `self`."]
102950    fn fold_with(self, visitor: &mut V) -> Self {
102951        <V as Fold>::fold_do_while_stmt(visitor, self)
102952    }
102953
102954    fn fold_children_with(self, visitor: &mut V) -> Self {
102955        match self {
102956            DoWhileStmt { span, test, body } => {
102957                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102958                let test = { <Box<Expr> as FoldWith<V>>::fold_with(test, visitor) };
102959                let body = { <Box<Stmt> as FoldWith<V>>::fold_with(body, visitor) };
102960                DoWhileStmt { span, test, body }
102961            }
102962        }
102963    }
102964}
102965impl<V: ?Sized + Fold> FoldWith<V> for EmptyStmt {
102966    #[doc = "Calls [Fold`::fold_empty_stmt`] with `self`."]
102967    fn fold_with(self, visitor: &mut V) -> Self {
102968        <V as Fold>::fold_empty_stmt(visitor, self)
102969    }
102970
102971    fn fold_children_with(self, visitor: &mut V) -> Self {
102972        match self {
102973            EmptyStmt { span } => {
102974                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102975                EmptyStmt { span }
102976            }
102977        }
102978    }
102979}
102980impl<V: ?Sized + Fold> FoldWith<V> for ExportAll {
102981    #[doc = "Calls [Fold`::fold_export_all`] with `self`."]
102982    fn fold_with(self, visitor: &mut V) -> Self {
102983        <V as Fold>::fold_export_all(visitor, self)
102984    }
102985
102986    fn fold_children_with(self, visitor: &mut V) -> Self {
102987        match self {
102988            ExportAll {
102989                span,
102990                src,
102991                type_only,
102992                with,
102993            } => {
102994                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102995                let src = { <Box<Str> as FoldWith<V>>::fold_with(src, visitor) };
102996                let with = { <Option<Box<ObjectLit>> as FoldWith<V>>::fold_with(with, visitor) };
102997                ExportAll {
102998                    span,
102999                    src,
103000                    type_only,
103001                    with,
103002                }
103003            }
103004        }
103005    }
103006}
103007impl<V: ?Sized + Fold> FoldWith<V> for ExportDecl {
103008    #[doc = "Calls [Fold`::fold_export_decl`] with `self`."]
103009    fn fold_with(self, visitor: &mut V) -> Self {
103010        <V as Fold>::fold_export_decl(visitor, self)
103011    }
103012
103013    fn fold_children_with(self, visitor: &mut V) -> Self {
103014        match self {
103015            ExportDecl { span, decl } => {
103016                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103017                let decl = { <Decl as FoldWith<V>>::fold_with(decl, visitor) };
103018                ExportDecl { span, decl }
103019            }
103020        }
103021    }
103022}
103023impl<V: ?Sized + Fold> FoldWith<V> for ExportDefaultDecl {
103024    #[doc = "Calls [Fold`::fold_export_default_decl`] with `self`."]
103025    fn fold_with(self, visitor: &mut V) -> Self {
103026        <V as Fold>::fold_export_default_decl(visitor, self)
103027    }
103028
103029    fn fold_children_with(self, visitor: &mut V) -> Self {
103030        match self {
103031            ExportDefaultDecl { span, decl } => {
103032                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103033                let decl = { <DefaultDecl as FoldWith<V>>::fold_with(decl, visitor) };
103034                ExportDefaultDecl { span, decl }
103035            }
103036        }
103037    }
103038}
103039impl<V: ?Sized + Fold> FoldWith<V> for ExportDefaultExpr {
103040    #[doc = "Calls [Fold`::fold_export_default_expr`] with `self`."]
103041    fn fold_with(self, visitor: &mut V) -> Self {
103042        <V as Fold>::fold_export_default_expr(visitor, self)
103043    }
103044
103045    fn fold_children_with(self, visitor: &mut V) -> Self {
103046        match self {
103047            ExportDefaultExpr { span, expr } => {
103048                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103049                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
103050                ExportDefaultExpr { span, expr }
103051            }
103052        }
103053    }
103054}
103055impl<V: ?Sized + Fold> FoldWith<V> for ExportDefaultSpecifier {
103056    #[doc = "Calls [Fold`::fold_export_default_specifier`] with `self`."]
103057    fn fold_with(self, visitor: &mut V) -> Self {
103058        <V as Fold>::fold_export_default_specifier(visitor, self)
103059    }
103060
103061    fn fold_children_with(self, visitor: &mut V) -> Self {
103062        match self {
103063            ExportDefaultSpecifier { exported } => {
103064                let exported = { <Ident as FoldWith<V>>::fold_with(exported, visitor) };
103065                ExportDefaultSpecifier { exported }
103066            }
103067        }
103068    }
103069}
103070impl<V: ?Sized + Fold> FoldWith<V> for ExportNamedSpecifier {
103071    #[doc = "Calls [Fold`::fold_export_named_specifier`] with `self`."]
103072    fn fold_with(self, visitor: &mut V) -> Self {
103073        <V as Fold>::fold_export_named_specifier(visitor, self)
103074    }
103075
103076    fn fold_children_with(self, visitor: &mut V) -> Self {
103077        match self {
103078            ExportNamedSpecifier {
103079                span,
103080                orig,
103081                exported,
103082                is_type_only,
103083            } => {
103084                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103085                let orig = { <ModuleExportName as FoldWith<V>>::fold_with(orig, visitor) };
103086                let exported =
103087                    { <Option<ModuleExportName> as FoldWith<V>>::fold_with(exported, visitor) };
103088                ExportNamedSpecifier {
103089                    span,
103090                    orig,
103091                    exported,
103092                    is_type_only,
103093                }
103094            }
103095        }
103096    }
103097}
103098impl<V: ?Sized + Fold> FoldWith<V> for ExportNamespaceSpecifier {
103099    #[doc = "Calls [Fold`::fold_export_namespace_specifier`] with `self`."]
103100    fn fold_with(self, visitor: &mut V) -> Self {
103101        <V as Fold>::fold_export_namespace_specifier(visitor, self)
103102    }
103103
103104    fn fold_children_with(self, visitor: &mut V) -> Self {
103105        match self {
103106            ExportNamespaceSpecifier { span, name } => {
103107                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103108                let name = { <ModuleExportName as FoldWith<V>>::fold_with(name, visitor) };
103109                ExportNamespaceSpecifier { span, name }
103110            }
103111        }
103112    }
103113}
103114impl<V: ?Sized + Fold> FoldWith<V> for ExportSpecifier {
103115    #[doc = "Calls [Fold`::fold_export_specifier`] with `self`."]
103116    fn fold_with(self, visitor: &mut V) -> Self {
103117        <V as Fold>::fold_export_specifier(visitor, self)
103118    }
103119
103120    fn fold_children_with(self, visitor: &mut V) -> Self {
103121        match self {
103122            ExportSpecifier::Namespace { 0: _field_0 } => {
103123                let _field_0 =
103124                    <ExportNamespaceSpecifier as FoldWith<V>>::fold_with(_field_0, visitor);
103125                ExportSpecifier::Namespace { 0: _field_0 }
103126            }
103127            ExportSpecifier::Default { 0: _field_0 } => {
103128                let _field_0 =
103129                    <ExportDefaultSpecifier as FoldWith<V>>::fold_with(_field_0, visitor);
103130                ExportSpecifier::Default { 0: _field_0 }
103131            }
103132            ExportSpecifier::Named { 0: _field_0 } => {
103133                let _field_0 = <ExportNamedSpecifier as FoldWith<V>>::fold_with(_field_0, visitor);
103134                ExportSpecifier::Named { 0: _field_0 }
103135            }
103136        }
103137    }
103138}
103139impl<V: ?Sized + Fold> FoldWith<V> for Expr {
103140    #[doc = "Calls [Fold`::fold_expr`] with `self`."]
103141    fn fold_with(self, visitor: &mut V) -> Self {
103142        <V as Fold>::fold_expr(visitor, self)
103143    }
103144
103145    fn fold_children_with(self, visitor: &mut V) -> Self {
103146        match self {
103147            Expr::This { 0: _field_0 } => {
103148                let _field_0 = <ThisExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103149                Expr::This { 0: _field_0 }
103150            }
103151            Expr::Array { 0: _field_0 } => {
103152                let _field_0 = <ArrayLit as FoldWith<V>>::fold_with(_field_0, visitor);
103153                Expr::Array { 0: _field_0 }
103154            }
103155            Expr::Object { 0: _field_0 } => {
103156                let _field_0 = <ObjectLit as FoldWith<V>>::fold_with(_field_0, visitor);
103157                Expr::Object { 0: _field_0 }
103158            }
103159            Expr::Fn { 0: _field_0 } => {
103160                let _field_0 = <FnExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103161                Expr::Fn { 0: _field_0 }
103162            }
103163            Expr::Unary { 0: _field_0 } => {
103164                let _field_0 = <UnaryExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103165                Expr::Unary { 0: _field_0 }
103166            }
103167            Expr::Update { 0: _field_0 } => {
103168                let _field_0 = <UpdateExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103169                Expr::Update { 0: _field_0 }
103170            }
103171            Expr::Bin { 0: _field_0 } => {
103172                let _field_0 = <BinExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103173                Expr::Bin { 0: _field_0 }
103174            }
103175            Expr::Assign { 0: _field_0 } => {
103176                let _field_0 = <AssignExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103177                Expr::Assign { 0: _field_0 }
103178            }
103179            Expr::Member { 0: _field_0 } => {
103180                let _field_0 = <MemberExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103181                Expr::Member { 0: _field_0 }
103182            }
103183            Expr::SuperProp { 0: _field_0 } => {
103184                let _field_0 = <SuperPropExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103185                Expr::SuperProp { 0: _field_0 }
103186            }
103187            Expr::Cond { 0: _field_0 } => {
103188                let _field_0 = <CondExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103189                Expr::Cond { 0: _field_0 }
103190            }
103191            Expr::Call { 0: _field_0 } => {
103192                let _field_0 = <CallExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103193                Expr::Call { 0: _field_0 }
103194            }
103195            Expr::New { 0: _field_0 } => {
103196                let _field_0 = <NewExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103197                Expr::New { 0: _field_0 }
103198            }
103199            Expr::Seq { 0: _field_0 } => {
103200                let _field_0 = <SeqExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103201                Expr::Seq { 0: _field_0 }
103202            }
103203            Expr::Ident { 0: _field_0 } => {
103204                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
103205                Expr::Ident { 0: _field_0 }
103206            }
103207            Expr::Lit { 0: _field_0 } => {
103208                let _field_0 = <Lit as FoldWith<V>>::fold_with(_field_0, visitor);
103209                Expr::Lit { 0: _field_0 }
103210            }
103211            Expr::Tpl { 0: _field_0 } => {
103212                let _field_0 = <Tpl as FoldWith<V>>::fold_with(_field_0, visitor);
103213                Expr::Tpl { 0: _field_0 }
103214            }
103215            Expr::TaggedTpl { 0: _field_0 } => {
103216                let _field_0 = <TaggedTpl as FoldWith<V>>::fold_with(_field_0, visitor);
103217                Expr::TaggedTpl { 0: _field_0 }
103218            }
103219            Expr::Arrow { 0: _field_0 } => {
103220                let _field_0 = <ArrowExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103221                Expr::Arrow { 0: _field_0 }
103222            }
103223            Expr::Class { 0: _field_0 } => {
103224                let _field_0 = <ClassExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103225                Expr::Class { 0: _field_0 }
103226            }
103227            Expr::Yield { 0: _field_0 } => {
103228                let _field_0 = <YieldExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103229                Expr::Yield { 0: _field_0 }
103230            }
103231            Expr::MetaProp { 0: _field_0 } => {
103232                let _field_0 = <MetaPropExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103233                Expr::MetaProp { 0: _field_0 }
103234            }
103235            Expr::Await { 0: _field_0 } => {
103236                let _field_0 = <AwaitExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103237                Expr::Await { 0: _field_0 }
103238            }
103239            Expr::Paren { 0: _field_0 } => {
103240                let _field_0 = <ParenExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103241                Expr::Paren { 0: _field_0 }
103242            }
103243            Expr::JSXMember { 0: _field_0 } => {
103244                let _field_0 = <JSXMemberExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103245                Expr::JSXMember { 0: _field_0 }
103246            }
103247            Expr::JSXNamespacedName { 0: _field_0 } => {
103248                let _field_0 = <JSXNamespacedName as FoldWith<V>>::fold_with(_field_0, visitor);
103249                Expr::JSXNamespacedName { 0: _field_0 }
103250            }
103251            Expr::JSXEmpty { 0: _field_0 } => {
103252                let _field_0 = <JSXEmptyExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103253                Expr::JSXEmpty { 0: _field_0 }
103254            }
103255            Expr::JSXElement { 0: _field_0 } => {
103256                let _field_0 = <Box<JSXElement> as FoldWith<V>>::fold_with(_field_0, visitor);
103257                Expr::JSXElement { 0: _field_0 }
103258            }
103259            Expr::JSXFragment { 0: _field_0 } => {
103260                let _field_0 = <JSXFragment as FoldWith<V>>::fold_with(_field_0, visitor);
103261                Expr::JSXFragment { 0: _field_0 }
103262            }
103263            Expr::TsTypeAssertion { 0: _field_0 } => {
103264                let _field_0 = <TsTypeAssertion as FoldWith<V>>::fold_with(_field_0, visitor);
103265                Expr::TsTypeAssertion { 0: _field_0 }
103266            }
103267            Expr::TsConstAssertion { 0: _field_0 } => {
103268                let _field_0 = <TsConstAssertion as FoldWith<V>>::fold_with(_field_0, visitor);
103269                Expr::TsConstAssertion { 0: _field_0 }
103270            }
103271            Expr::TsNonNull { 0: _field_0 } => {
103272                let _field_0 = <TsNonNullExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103273                Expr::TsNonNull { 0: _field_0 }
103274            }
103275            Expr::TsAs { 0: _field_0 } => {
103276                let _field_0 = <TsAsExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103277                Expr::TsAs { 0: _field_0 }
103278            }
103279            Expr::TsInstantiation { 0: _field_0 } => {
103280                let _field_0 = <TsInstantiation as FoldWith<V>>::fold_with(_field_0, visitor);
103281                Expr::TsInstantiation { 0: _field_0 }
103282            }
103283            Expr::TsSatisfies { 0: _field_0 } => {
103284                let _field_0 = <TsSatisfiesExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103285                Expr::TsSatisfies { 0: _field_0 }
103286            }
103287            Expr::PrivateName { 0: _field_0 } => {
103288                let _field_0 = <PrivateName as FoldWith<V>>::fold_with(_field_0, visitor);
103289                Expr::PrivateName { 0: _field_0 }
103290            }
103291            Expr::OptChain { 0: _field_0 } => {
103292                let _field_0 = <OptChainExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103293                Expr::OptChain { 0: _field_0 }
103294            }
103295            Expr::Invalid { 0: _field_0 } => {
103296                let _field_0 = <Invalid as FoldWith<V>>::fold_with(_field_0, visitor);
103297                Expr::Invalid { 0: _field_0 }
103298            }
103299        }
103300    }
103301}
103302impl<V: ?Sized + Fold> FoldWith<V> for ExprOrSpread {
103303    #[doc = "Calls [Fold`::fold_expr_or_spread`] with `self`."]
103304    fn fold_with(self, visitor: &mut V) -> Self {
103305        <V as Fold>::fold_expr_or_spread(visitor, self)
103306    }
103307
103308    fn fold_children_with(self, visitor: &mut V) -> Self {
103309        match self {
103310            ExprOrSpread { spread, expr } => {
103311                let spread =
103312                    { <Option<swc_common::Span> as FoldWith<V>>::fold_with(spread, visitor) };
103313                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
103314                ExprOrSpread { spread, expr }
103315            }
103316        }
103317    }
103318}
103319impl<V: ?Sized + Fold> FoldWith<V> for ExprStmt {
103320    #[doc = "Calls [Fold`::fold_expr_stmt`] with `self`."]
103321    fn fold_with(self, visitor: &mut V) -> Self {
103322        <V as Fold>::fold_expr_stmt(visitor, self)
103323    }
103324
103325    fn fold_children_with(self, visitor: &mut V) -> Self {
103326        match self {
103327            ExprStmt { span, expr } => {
103328                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103329                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
103330                ExprStmt { span, expr }
103331            }
103332        }
103333    }
103334}
103335impl<V: ?Sized + Fold> FoldWith<V> for FnDecl {
103336    #[doc = "Calls [Fold`::fold_fn_decl`] with `self`."]
103337    fn fold_with(self, visitor: &mut V) -> Self {
103338        <V as Fold>::fold_fn_decl(visitor, self)
103339    }
103340
103341    fn fold_children_with(self, visitor: &mut V) -> Self {
103342        match self {
103343            FnDecl {
103344                ident,
103345                declare,
103346                function,
103347            } => {
103348                let ident = { <Ident as FoldWith<V>>::fold_with(ident, visitor) };
103349                let function = { <Box<Function> as FoldWith<V>>::fold_with(function, visitor) };
103350                FnDecl {
103351                    ident,
103352                    declare,
103353                    function,
103354                }
103355            }
103356        }
103357    }
103358}
103359impl<V: ?Sized + Fold> FoldWith<V> for FnExpr {
103360    #[doc = "Calls [Fold`::fold_fn_expr`] with `self`."]
103361    fn fold_with(self, visitor: &mut V) -> Self {
103362        <V as Fold>::fold_fn_expr(visitor, self)
103363    }
103364
103365    fn fold_children_with(self, visitor: &mut V) -> Self {
103366        match self {
103367            FnExpr { ident, function } => {
103368                let ident = { <Option<Ident> as FoldWith<V>>::fold_with(ident, visitor) };
103369                let function = { <Box<Function> as FoldWith<V>>::fold_with(function, visitor) };
103370                FnExpr { ident, function }
103371            }
103372        }
103373    }
103374}
103375impl<V: ?Sized + Fold> FoldWith<V> for ForHead {
103376    #[doc = "Calls [Fold`::fold_for_head`] with `self`."]
103377    fn fold_with(self, visitor: &mut V) -> Self {
103378        <V as Fold>::fold_for_head(visitor, self)
103379    }
103380
103381    fn fold_children_with(self, visitor: &mut V) -> Self {
103382        match self {
103383            ForHead::VarDecl { 0: _field_0 } => {
103384                let _field_0 = <Box<VarDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
103385                ForHead::VarDecl { 0: _field_0 }
103386            }
103387            ForHead::UsingDecl { 0: _field_0 } => {
103388                let _field_0 = <Box<UsingDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
103389                ForHead::UsingDecl { 0: _field_0 }
103390            }
103391            ForHead::Pat { 0: _field_0 } => {
103392                let _field_0 = <Box<Pat> as FoldWith<V>>::fold_with(_field_0, visitor);
103393                ForHead::Pat { 0: _field_0 }
103394            }
103395        }
103396    }
103397}
103398impl<V: ?Sized + Fold> FoldWith<V> for ForInStmt {
103399    #[doc = "Calls [Fold`::fold_for_in_stmt`] with `self`."]
103400    fn fold_with(self, visitor: &mut V) -> Self {
103401        <V as Fold>::fold_for_in_stmt(visitor, self)
103402    }
103403
103404    fn fold_children_with(self, visitor: &mut V) -> Self {
103405        match self {
103406            ForInStmt {
103407                span,
103408                left,
103409                right,
103410                body,
103411            } => {
103412                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103413                let left = { <ForHead as FoldWith<V>>::fold_with(left, visitor) };
103414                let right = { <Box<Expr> as FoldWith<V>>::fold_with(right, visitor) };
103415                let body = { <Box<Stmt> as FoldWith<V>>::fold_with(body, visitor) };
103416                ForInStmt {
103417                    span,
103418                    left,
103419                    right,
103420                    body,
103421                }
103422            }
103423        }
103424    }
103425}
103426impl<V: ?Sized + Fold> FoldWith<V> for ForOfStmt {
103427    #[doc = "Calls [Fold`::fold_for_of_stmt`] with `self`."]
103428    fn fold_with(self, visitor: &mut V) -> Self {
103429        <V as Fold>::fold_for_of_stmt(visitor, self)
103430    }
103431
103432    fn fold_children_with(self, visitor: &mut V) -> Self {
103433        match self {
103434            ForOfStmt {
103435                span,
103436                is_await,
103437                left,
103438                right,
103439                body,
103440            } => {
103441                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103442                let left = { <ForHead as FoldWith<V>>::fold_with(left, visitor) };
103443                let right = { <Box<Expr> as FoldWith<V>>::fold_with(right, visitor) };
103444                let body = { <Box<Stmt> as FoldWith<V>>::fold_with(body, visitor) };
103445                ForOfStmt {
103446                    span,
103447                    is_await,
103448                    left,
103449                    right,
103450                    body,
103451                }
103452            }
103453        }
103454    }
103455}
103456impl<V: ?Sized + Fold> FoldWith<V> for ForStmt {
103457    #[doc = "Calls [Fold`::fold_for_stmt`] with `self`."]
103458    fn fold_with(self, visitor: &mut V) -> Self {
103459        <V as Fold>::fold_for_stmt(visitor, self)
103460    }
103461
103462    fn fold_children_with(self, visitor: &mut V) -> Self {
103463        match self {
103464            ForStmt {
103465                span,
103466                init,
103467                test,
103468                update,
103469                body,
103470            } => {
103471                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103472                let init = { <Option<VarDeclOrExpr> as FoldWith<V>>::fold_with(init, visitor) };
103473                let test = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(test, visitor) };
103474                let update = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(update, visitor) };
103475                let body = { <Box<Stmt> as FoldWith<V>>::fold_with(body, visitor) };
103476                ForStmt {
103477                    span,
103478                    init,
103479                    test,
103480                    update,
103481                    body,
103482                }
103483            }
103484        }
103485    }
103486}
103487impl<V: ?Sized + Fold> FoldWith<V> for Function {
103488    #[doc = "Calls [Fold`::fold_function`] with `self`."]
103489    fn fold_with(self, visitor: &mut V) -> Self {
103490        <V as Fold>::fold_function(visitor, self)
103491    }
103492
103493    fn fold_children_with(self, visitor: &mut V) -> Self {
103494        match self {
103495            Function {
103496                params,
103497                decorators,
103498                span,
103499                ctxt,
103500                body,
103501                is_generator,
103502                is_async,
103503                type_params,
103504                return_type,
103505            } => {
103506                let params = { <Vec<Param> as FoldWith<V>>::fold_with(params, visitor) };
103507                let decorators =
103508                    { <Vec<Decorator> as FoldWith<V>>::fold_with(decorators, visitor) };
103509                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103510                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
103511                let body = { <Option<BlockStmt> as FoldWith<V>>::fold_with(body, visitor) };
103512                let type_params = {
103513                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
103514                };
103515                let return_type =
103516                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(return_type, visitor) };
103517                Function {
103518                    params,
103519                    decorators,
103520                    span,
103521                    ctxt,
103522                    body,
103523                    is_generator,
103524                    is_async,
103525                    type_params,
103526                    return_type,
103527                }
103528            }
103529        }
103530    }
103531}
103532impl<V: ?Sized + Fold> FoldWith<V> for GetterProp {
103533    #[doc = "Calls [Fold`::fold_getter_prop`] with `self`."]
103534    fn fold_with(self, visitor: &mut V) -> Self {
103535        <V as Fold>::fold_getter_prop(visitor, self)
103536    }
103537
103538    fn fold_children_with(self, visitor: &mut V) -> Self {
103539        match self {
103540            GetterProp {
103541                span,
103542                key,
103543                type_ann,
103544                body,
103545            } => {
103546                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103547                let key = { <PropName as FoldWith<V>>::fold_with(key, visitor) };
103548                let type_ann =
103549                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
103550                let body = { <Option<BlockStmt> as FoldWith<V>>::fold_with(body, visitor) };
103551                GetterProp {
103552                    span,
103553                    key,
103554                    type_ann,
103555                    body,
103556                }
103557            }
103558        }
103559    }
103560}
103561impl<V: ?Sized + Fold> FoldWith<V> for Ident {
103562    #[doc = "Calls [Fold`::fold_ident`] with `self`."]
103563    fn fold_with(self, visitor: &mut V) -> Self {
103564        <V as Fold>::fold_ident(visitor, self)
103565    }
103566
103567    fn fold_children_with(self, visitor: &mut V) -> Self {
103568        match self {
103569            Ident {
103570                span,
103571                ctxt,
103572                sym,
103573                optional,
103574            } => {
103575                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103576                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
103577                let sym = { <swc_atoms::Atom as FoldWith<V>>::fold_with(sym, visitor) };
103578                Ident {
103579                    span,
103580                    ctxt,
103581                    sym,
103582                    optional,
103583                }
103584            }
103585        }
103586    }
103587}
103588impl<V: ?Sized + Fold> FoldWith<V> for IdentName {
103589    #[doc = "Calls [Fold`::fold_ident_name`] with `self`."]
103590    fn fold_with(self, visitor: &mut V) -> Self {
103591        <V as Fold>::fold_ident_name(visitor, self)
103592    }
103593
103594    fn fold_children_with(self, visitor: &mut V) -> Self {
103595        match self {
103596            IdentName { span, sym } => {
103597                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103598                let sym = { <swc_atoms::Atom as FoldWith<V>>::fold_with(sym, visitor) };
103599                IdentName { span, sym }
103600            }
103601        }
103602    }
103603}
103604impl<V: ?Sized + Fold> FoldWith<V> for IfStmt {
103605    #[doc = "Calls [Fold`::fold_if_stmt`] with `self`."]
103606    fn fold_with(self, visitor: &mut V) -> Self {
103607        <V as Fold>::fold_if_stmt(visitor, self)
103608    }
103609
103610    fn fold_children_with(self, visitor: &mut V) -> Self {
103611        match self {
103612            IfStmt {
103613                span,
103614                test,
103615                cons,
103616                alt,
103617            } => {
103618                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103619                let test = { <Box<Expr> as FoldWith<V>>::fold_with(test, visitor) };
103620                let cons = { <Box<Stmt> as FoldWith<V>>::fold_with(cons, visitor) };
103621                let alt = { <Option<Box<Stmt>> as FoldWith<V>>::fold_with(alt, visitor) };
103622                IfStmt {
103623                    span,
103624                    test,
103625                    cons,
103626                    alt,
103627                }
103628            }
103629        }
103630    }
103631}
103632impl<V: ?Sized + Fold> FoldWith<V> for Import {
103633    #[doc = "Calls [Fold`::fold_import`] with `self`."]
103634    fn fold_with(self, visitor: &mut V) -> Self {
103635        <V as Fold>::fold_import(visitor, self)
103636    }
103637
103638    fn fold_children_with(self, visitor: &mut V) -> Self {
103639        match self {
103640            Import { span, phase } => {
103641                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103642                let phase = { <ImportPhase as FoldWith<V>>::fold_with(phase, visitor) };
103643                Import { span, phase }
103644            }
103645        }
103646    }
103647}
103648impl<V: ?Sized + Fold> FoldWith<V> for ImportDecl {
103649    #[doc = "Calls [Fold`::fold_import_decl`] with `self`."]
103650    fn fold_with(self, visitor: &mut V) -> Self {
103651        <V as Fold>::fold_import_decl(visitor, self)
103652    }
103653
103654    fn fold_children_with(self, visitor: &mut V) -> Self {
103655        match self {
103656            ImportDecl {
103657                span,
103658                specifiers,
103659                src,
103660                type_only,
103661                with,
103662                phase,
103663            } => {
103664                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103665                let specifiers =
103666                    { <Vec<ImportSpecifier> as FoldWith<V>>::fold_with(specifiers, visitor) };
103667                let src = { <Box<Str> as FoldWith<V>>::fold_with(src, visitor) };
103668                let with = { <Option<Box<ObjectLit>> as FoldWith<V>>::fold_with(with, visitor) };
103669                let phase = { <ImportPhase as FoldWith<V>>::fold_with(phase, visitor) };
103670                ImportDecl {
103671                    span,
103672                    specifiers,
103673                    src,
103674                    type_only,
103675                    with,
103676                    phase,
103677                }
103678            }
103679        }
103680    }
103681}
103682impl<V: ?Sized + Fold> FoldWith<V> for ImportDefaultSpecifier {
103683    #[doc = "Calls [Fold`::fold_import_default_specifier`] with `self`."]
103684    fn fold_with(self, visitor: &mut V) -> Self {
103685        <V as Fold>::fold_import_default_specifier(visitor, self)
103686    }
103687
103688    fn fold_children_with(self, visitor: &mut V) -> Self {
103689        match self {
103690            ImportDefaultSpecifier { span, local } => {
103691                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103692                let local = { <Ident as FoldWith<V>>::fold_with(local, visitor) };
103693                ImportDefaultSpecifier { span, local }
103694            }
103695        }
103696    }
103697}
103698impl<V: ?Sized + Fold> FoldWith<V> for ImportNamedSpecifier {
103699    #[doc = "Calls [Fold`::fold_import_named_specifier`] with `self`."]
103700    fn fold_with(self, visitor: &mut V) -> Self {
103701        <V as Fold>::fold_import_named_specifier(visitor, self)
103702    }
103703
103704    fn fold_children_with(self, visitor: &mut V) -> Self {
103705        match self {
103706            ImportNamedSpecifier {
103707                span,
103708                local,
103709                imported,
103710                is_type_only,
103711            } => {
103712                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103713                let local = { <Ident as FoldWith<V>>::fold_with(local, visitor) };
103714                let imported =
103715                    { <Option<ModuleExportName> as FoldWith<V>>::fold_with(imported, visitor) };
103716                ImportNamedSpecifier {
103717                    span,
103718                    local,
103719                    imported,
103720                    is_type_only,
103721                }
103722            }
103723        }
103724    }
103725}
103726impl<V: ?Sized + Fold> FoldWith<V> for ImportPhase {
103727    #[doc = "Calls [Fold`::fold_import_phase`] with `self`."]
103728    fn fold_with(self, visitor: &mut V) -> Self {
103729        <V as Fold>::fold_import_phase(visitor, self)
103730    }
103731
103732    fn fold_children_with(self, visitor: &mut V) -> Self {
103733        match self {
103734            ImportPhase::Evaluation => ImportPhase::Evaluation,
103735            ImportPhase::Source => ImportPhase::Source,
103736            ImportPhase::Defer => ImportPhase::Defer,
103737        }
103738    }
103739}
103740impl<V: ?Sized + Fold> FoldWith<V> for ImportSpecifier {
103741    #[doc = "Calls [Fold`::fold_import_specifier`] with `self`."]
103742    fn fold_with(self, visitor: &mut V) -> Self {
103743        <V as Fold>::fold_import_specifier(visitor, self)
103744    }
103745
103746    fn fold_children_with(self, visitor: &mut V) -> Self {
103747        match self {
103748            ImportSpecifier::Named { 0: _field_0 } => {
103749                let _field_0 = <ImportNamedSpecifier as FoldWith<V>>::fold_with(_field_0, visitor);
103750                ImportSpecifier::Named { 0: _field_0 }
103751            }
103752            ImportSpecifier::Default { 0: _field_0 } => {
103753                let _field_0 =
103754                    <ImportDefaultSpecifier as FoldWith<V>>::fold_with(_field_0, visitor);
103755                ImportSpecifier::Default { 0: _field_0 }
103756            }
103757            ImportSpecifier::Namespace { 0: _field_0 } => {
103758                let _field_0 = <ImportStarAsSpecifier as FoldWith<V>>::fold_with(_field_0, visitor);
103759                ImportSpecifier::Namespace { 0: _field_0 }
103760            }
103761        }
103762    }
103763}
103764impl<V: ?Sized + Fold> FoldWith<V> for ImportStarAsSpecifier {
103765    #[doc = "Calls [Fold`::fold_import_star_as_specifier`] with `self`."]
103766    fn fold_with(self, visitor: &mut V) -> Self {
103767        <V as Fold>::fold_import_star_as_specifier(visitor, self)
103768    }
103769
103770    fn fold_children_with(self, visitor: &mut V) -> Self {
103771        match self {
103772            ImportStarAsSpecifier { span, local } => {
103773                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103774                let local = { <Ident as FoldWith<V>>::fold_with(local, visitor) };
103775                ImportStarAsSpecifier { span, local }
103776            }
103777        }
103778    }
103779}
103780impl<V: ?Sized + Fold> FoldWith<V> for ImportWith {
103781    #[doc = "Calls [Fold`::fold_import_with`] with `self`."]
103782    fn fold_with(self, visitor: &mut V) -> Self {
103783        <V as Fold>::fold_import_with(visitor, self)
103784    }
103785
103786    fn fold_children_with(self, visitor: &mut V) -> Self {
103787        match self {
103788            ImportWith { span, values } => {
103789                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103790                let values = { <Vec<ImportWithItem> as FoldWith<V>>::fold_with(values, visitor) };
103791                ImportWith { span, values }
103792            }
103793        }
103794    }
103795}
103796impl<V: ?Sized + Fold> FoldWith<V> for ImportWithItem {
103797    #[doc = "Calls [Fold`::fold_import_with_item`] with `self`."]
103798    fn fold_with(self, visitor: &mut V) -> Self {
103799        <V as Fold>::fold_import_with_item(visitor, self)
103800    }
103801
103802    fn fold_children_with(self, visitor: &mut V) -> Self {
103803        match self {
103804            ImportWithItem { key, value } => {
103805                let key = { <IdentName as FoldWith<V>>::fold_with(key, visitor) };
103806                let value = { <Str as FoldWith<V>>::fold_with(value, visitor) };
103807                ImportWithItem { key, value }
103808            }
103809        }
103810    }
103811}
103812impl<V: ?Sized + Fold> FoldWith<V> for Invalid {
103813    #[doc = "Calls [Fold`::fold_invalid`] with `self`."]
103814    fn fold_with(self, visitor: &mut V) -> Self {
103815        <V as Fold>::fold_invalid(visitor, self)
103816    }
103817
103818    fn fold_children_with(self, visitor: &mut V) -> Self {
103819        match self {
103820            Invalid { span } => {
103821                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103822                Invalid { span }
103823            }
103824        }
103825    }
103826}
103827impl<V: ?Sized + Fold> FoldWith<V> for JSXAttr {
103828    #[doc = "Calls [Fold`::fold_jsx_attr`] with `self`."]
103829    fn fold_with(self, visitor: &mut V) -> Self {
103830        <V as Fold>::fold_jsx_attr(visitor, self)
103831    }
103832
103833    fn fold_children_with(self, visitor: &mut V) -> Self {
103834        match self {
103835            JSXAttr { span, name, value } => {
103836                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103837                let name = { <JSXAttrName as FoldWith<V>>::fold_with(name, visitor) };
103838                let value = { <Option<JSXAttrValue> as FoldWith<V>>::fold_with(value, visitor) };
103839                JSXAttr { span, name, value }
103840            }
103841        }
103842    }
103843}
103844impl<V: ?Sized + Fold> FoldWith<V> for JSXAttrName {
103845    #[doc = "Calls [Fold`::fold_jsx_attr_name`] with `self`."]
103846    fn fold_with(self, visitor: &mut V) -> Self {
103847        <V as Fold>::fold_jsx_attr_name(visitor, self)
103848    }
103849
103850    fn fold_children_with(self, visitor: &mut V) -> Self {
103851        match self {
103852            JSXAttrName::Ident { 0: _field_0 } => {
103853                let _field_0 = <IdentName as FoldWith<V>>::fold_with(_field_0, visitor);
103854                JSXAttrName::Ident { 0: _field_0 }
103855            }
103856            JSXAttrName::JSXNamespacedName { 0: _field_0 } => {
103857                let _field_0 = <JSXNamespacedName as FoldWith<V>>::fold_with(_field_0, visitor);
103858                JSXAttrName::JSXNamespacedName { 0: _field_0 }
103859            }
103860        }
103861    }
103862}
103863impl<V: ?Sized + Fold> FoldWith<V> for JSXAttrOrSpread {
103864    #[doc = "Calls [Fold`::fold_jsx_attr_or_spread`] with `self`."]
103865    fn fold_with(self, visitor: &mut V) -> Self {
103866        <V as Fold>::fold_jsx_attr_or_spread(visitor, self)
103867    }
103868
103869    fn fold_children_with(self, visitor: &mut V) -> Self {
103870        match self {
103871            JSXAttrOrSpread::JSXAttr { 0: _field_0 } => {
103872                let _field_0 = <JSXAttr as FoldWith<V>>::fold_with(_field_0, visitor);
103873                JSXAttrOrSpread::JSXAttr { 0: _field_0 }
103874            }
103875            JSXAttrOrSpread::SpreadElement { 0: _field_0 } => {
103876                let _field_0 = <SpreadElement as FoldWith<V>>::fold_with(_field_0, visitor);
103877                JSXAttrOrSpread::SpreadElement { 0: _field_0 }
103878            }
103879        }
103880    }
103881}
103882impl<V: ?Sized + Fold> FoldWith<V> for JSXAttrValue {
103883    #[doc = "Calls [Fold`::fold_jsx_attr_value`] with `self`."]
103884    fn fold_with(self, visitor: &mut V) -> Self {
103885        <V as Fold>::fold_jsx_attr_value(visitor, self)
103886    }
103887
103888    fn fold_children_with(self, visitor: &mut V) -> Self {
103889        match self {
103890            JSXAttrValue::Lit { 0: _field_0 } => {
103891                let _field_0 = <Lit as FoldWith<V>>::fold_with(_field_0, visitor);
103892                JSXAttrValue::Lit { 0: _field_0 }
103893            }
103894            JSXAttrValue::JSXExprContainer { 0: _field_0 } => {
103895                let _field_0 = <JSXExprContainer as FoldWith<V>>::fold_with(_field_0, visitor);
103896                JSXAttrValue::JSXExprContainer { 0: _field_0 }
103897            }
103898            JSXAttrValue::JSXElement { 0: _field_0 } => {
103899                let _field_0 = <Box<JSXElement> as FoldWith<V>>::fold_with(_field_0, visitor);
103900                JSXAttrValue::JSXElement { 0: _field_0 }
103901            }
103902            JSXAttrValue::JSXFragment { 0: _field_0 } => {
103903                let _field_0 = <JSXFragment as FoldWith<V>>::fold_with(_field_0, visitor);
103904                JSXAttrValue::JSXFragment { 0: _field_0 }
103905            }
103906        }
103907    }
103908}
103909impl<V: ?Sized + Fold> FoldWith<V> for JSXClosingElement {
103910    #[doc = "Calls [Fold`::fold_jsx_closing_element`] with `self`."]
103911    fn fold_with(self, visitor: &mut V) -> Self {
103912        <V as Fold>::fold_jsx_closing_element(visitor, self)
103913    }
103914
103915    fn fold_children_with(self, visitor: &mut V) -> Self {
103916        match self {
103917            JSXClosingElement { span, name } => {
103918                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103919                let name = { <JSXElementName as FoldWith<V>>::fold_with(name, visitor) };
103920                JSXClosingElement { span, name }
103921            }
103922        }
103923    }
103924}
103925impl<V: ?Sized + Fold> FoldWith<V> for JSXClosingFragment {
103926    #[doc = "Calls [Fold`::fold_jsx_closing_fragment`] with `self`."]
103927    fn fold_with(self, visitor: &mut V) -> Self {
103928        <V as Fold>::fold_jsx_closing_fragment(visitor, self)
103929    }
103930
103931    fn fold_children_with(self, visitor: &mut V) -> Self {
103932        match self {
103933            JSXClosingFragment { span } => {
103934                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103935                JSXClosingFragment { span }
103936            }
103937        }
103938    }
103939}
103940impl<V: ?Sized + Fold> FoldWith<V> for JSXElement {
103941    #[doc = "Calls [Fold`::fold_jsx_element`] with `self`."]
103942    fn fold_with(self, visitor: &mut V) -> Self {
103943        <V as Fold>::fold_jsx_element(visitor, self)
103944    }
103945
103946    fn fold_children_with(self, visitor: &mut V) -> Self {
103947        match self {
103948            JSXElement {
103949                span,
103950                opening,
103951                children,
103952                closing,
103953            } => {
103954                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103955                let opening = { <JSXOpeningElement as FoldWith<V>>::fold_with(opening, visitor) };
103956                let children =
103957                    { <Vec<JSXElementChild> as FoldWith<V>>::fold_with(children, visitor) };
103958                let closing =
103959                    { <Option<JSXClosingElement> as FoldWith<V>>::fold_with(closing, visitor) };
103960                JSXElement {
103961                    span,
103962                    opening,
103963                    children,
103964                    closing,
103965                }
103966            }
103967        }
103968    }
103969}
103970impl<V: ?Sized + Fold> FoldWith<V> for JSXElementChild {
103971    #[doc = "Calls [Fold`::fold_jsx_element_child`] with `self`."]
103972    fn fold_with(self, visitor: &mut V) -> Self {
103973        <V as Fold>::fold_jsx_element_child(visitor, self)
103974    }
103975
103976    fn fold_children_with(self, visitor: &mut V) -> Self {
103977        match self {
103978            JSXElementChild::JSXText { 0: _field_0 } => {
103979                let _field_0 = <JSXText as FoldWith<V>>::fold_with(_field_0, visitor);
103980                JSXElementChild::JSXText { 0: _field_0 }
103981            }
103982            JSXElementChild::JSXExprContainer { 0: _field_0 } => {
103983                let _field_0 = <JSXExprContainer as FoldWith<V>>::fold_with(_field_0, visitor);
103984                JSXElementChild::JSXExprContainer { 0: _field_0 }
103985            }
103986            JSXElementChild::JSXSpreadChild { 0: _field_0 } => {
103987                let _field_0 = <JSXSpreadChild as FoldWith<V>>::fold_with(_field_0, visitor);
103988                JSXElementChild::JSXSpreadChild { 0: _field_0 }
103989            }
103990            JSXElementChild::JSXElement { 0: _field_0 } => {
103991                let _field_0 = <Box<JSXElement> as FoldWith<V>>::fold_with(_field_0, visitor);
103992                JSXElementChild::JSXElement { 0: _field_0 }
103993            }
103994            JSXElementChild::JSXFragment { 0: _field_0 } => {
103995                let _field_0 = <JSXFragment as FoldWith<V>>::fold_with(_field_0, visitor);
103996                JSXElementChild::JSXFragment { 0: _field_0 }
103997            }
103998        }
103999    }
104000}
104001impl<V: ?Sized + Fold> FoldWith<V> for JSXElementName {
104002    #[doc = "Calls [Fold`::fold_jsx_element_name`] with `self`."]
104003    fn fold_with(self, visitor: &mut V) -> Self {
104004        <V as Fold>::fold_jsx_element_name(visitor, self)
104005    }
104006
104007    fn fold_children_with(self, visitor: &mut V) -> Self {
104008        match self {
104009            JSXElementName::Ident { 0: _field_0 } => {
104010                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
104011                JSXElementName::Ident { 0: _field_0 }
104012            }
104013            JSXElementName::JSXMemberExpr { 0: _field_0 } => {
104014                let _field_0 = <JSXMemberExpr as FoldWith<V>>::fold_with(_field_0, visitor);
104015                JSXElementName::JSXMemberExpr { 0: _field_0 }
104016            }
104017            JSXElementName::JSXNamespacedName { 0: _field_0 } => {
104018                let _field_0 = <JSXNamespacedName as FoldWith<V>>::fold_with(_field_0, visitor);
104019                JSXElementName::JSXNamespacedName { 0: _field_0 }
104020            }
104021        }
104022    }
104023}
104024impl<V: ?Sized + Fold> FoldWith<V> for JSXEmptyExpr {
104025    #[doc = "Calls [Fold`::fold_jsx_empty_expr`] with `self`."]
104026    fn fold_with(self, visitor: &mut V) -> Self {
104027        <V as Fold>::fold_jsx_empty_expr(visitor, self)
104028    }
104029
104030    fn fold_children_with(self, visitor: &mut V) -> Self {
104031        match self {
104032            JSXEmptyExpr { span } => {
104033                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104034                JSXEmptyExpr { span }
104035            }
104036        }
104037    }
104038}
104039impl<V: ?Sized + Fold> FoldWith<V> for JSXExpr {
104040    #[doc = "Calls [Fold`::fold_jsx_expr`] with `self`."]
104041    fn fold_with(self, visitor: &mut V) -> Self {
104042        <V as Fold>::fold_jsx_expr(visitor, self)
104043    }
104044
104045    fn fold_children_with(self, visitor: &mut V) -> Self {
104046        match self {
104047            JSXExpr::JSXEmptyExpr { 0: _field_0 } => {
104048                let _field_0 = <JSXEmptyExpr as FoldWith<V>>::fold_with(_field_0, visitor);
104049                JSXExpr::JSXEmptyExpr { 0: _field_0 }
104050            }
104051            JSXExpr::Expr { 0: _field_0 } => {
104052                let _field_0 = <Box<Expr> as FoldWith<V>>::fold_with(_field_0, visitor);
104053                JSXExpr::Expr { 0: _field_0 }
104054            }
104055        }
104056    }
104057}
104058impl<V: ?Sized + Fold> FoldWith<V> for JSXExprContainer {
104059    #[doc = "Calls [Fold`::fold_jsx_expr_container`] with `self`."]
104060    fn fold_with(self, visitor: &mut V) -> Self {
104061        <V as Fold>::fold_jsx_expr_container(visitor, self)
104062    }
104063
104064    fn fold_children_with(self, visitor: &mut V) -> Self {
104065        match self {
104066            JSXExprContainer { span, expr } => {
104067                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104068                let expr = { <JSXExpr as FoldWith<V>>::fold_with(expr, visitor) };
104069                JSXExprContainer { span, expr }
104070            }
104071        }
104072    }
104073}
104074impl<V: ?Sized + Fold> FoldWith<V> for JSXFragment {
104075    #[doc = "Calls [Fold`::fold_jsx_fragment`] with `self`."]
104076    fn fold_with(self, visitor: &mut V) -> Self {
104077        <V as Fold>::fold_jsx_fragment(visitor, self)
104078    }
104079
104080    fn fold_children_with(self, visitor: &mut V) -> Self {
104081        match self {
104082            JSXFragment {
104083                span,
104084                opening,
104085                children,
104086                closing,
104087            } => {
104088                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104089                let opening = { <JSXOpeningFragment as FoldWith<V>>::fold_with(opening, visitor) };
104090                let children =
104091                    { <Vec<JSXElementChild> as FoldWith<V>>::fold_with(children, visitor) };
104092                let closing = { <JSXClosingFragment as FoldWith<V>>::fold_with(closing, visitor) };
104093                JSXFragment {
104094                    span,
104095                    opening,
104096                    children,
104097                    closing,
104098                }
104099            }
104100        }
104101    }
104102}
104103impl<V: ?Sized + Fold> FoldWith<V> for JSXMemberExpr {
104104    #[doc = "Calls [Fold`::fold_jsx_member_expr`] with `self`."]
104105    fn fold_with(self, visitor: &mut V) -> Self {
104106        <V as Fold>::fold_jsx_member_expr(visitor, self)
104107    }
104108
104109    fn fold_children_with(self, visitor: &mut V) -> Self {
104110        match self {
104111            JSXMemberExpr { span, obj, prop } => {
104112                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104113                let obj = { <JSXObject as FoldWith<V>>::fold_with(obj, visitor) };
104114                let prop = { <IdentName as FoldWith<V>>::fold_with(prop, visitor) };
104115                JSXMemberExpr { span, obj, prop }
104116            }
104117        }
104118    }
104119}
104120impl<V: ?Sized + Fold> FoldWith<V> for JSXNamespacedName {
104121    #[doc = "Calls [Fold`::fold_jsx_namespaced_name`] with `self`."]
104122    fn fold_with(self, visitor: &mut V) -> Self {
104123        <V as Fold>::fold_jsx_namespaced_name(visitor, self)
104124    }
104125
104126    fn fold_children_with(self, visitor: &mut V) -> Self {
104127        match self {
104128            JSXNamespacedName { span, ns, name } => {
104129                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104130                let ns = { <IdentName as FoldWith<V>>::fold_with(ns, visitor) };
104131                let name = { <IdentName as FoldWith<V>>::fold_with(name, visitor) };
104132                JSXNamespacedName { span, ns, name }
104133            }
104134        }
104135    }
104136}
104137impl<V: ?Sized + Fold> FoldWith<V> for JSXObject {
104138    #[doc = "Calls [Fold`::fold_jsx_object`] with `self`."]
104139    fn fold_with(self, visitor: &mut V) -> Self {
104140        <V as Fold>::fold_jsx_object(visitor, self)
104141    }
104142
104143    fn fold_children_with(self, visitor: &mut V) -> Self {
104144        match self {
104145            JSXObject::JSXMemberExpr { 0: _field_0 } => {
104146                let _field_0 = <Box<JSXMemberExpr> as FoldWith<V>>::fold_with(_field_0, visitor);
104147                JSXObject::JSXMemberExpr { 0: _field_0 }
104148            }
104149            JSXObject::Ident { 0: _field_0 } => {
104150                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
104151                JSXObject::Ident { 0: _field_0 }
104152            }
104153        }
104154    }
104155}
104156impl<V: ?Sized + Fold> FoldWith<V> for JSXOpeningElement {
104157    #[doc = "Calls [Fold`::fold_jsx_opening_element`] with `self`."]
104158    fn fold_with(self, visitor: &mut V) -> Self {
104159        <V as Fold>::fold_jsx_opening_element(visitor, self)
104160    }
104161
104162    fn fold_children_with(self, visitor: &mut V) -> Self {
104163        match self {
104164            JSXOpeningElement {
104165                name,
104166                span,
104167                attrs,
104168                self_closing,
104169                type_args,
104170            } => {
104171                let name = { <JSXElementName as FoldWith<V>>::fold_with(name, visitor) };
104172                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104173                let attrs = { <Vec<JSXAttrOrSpread> as FoldWith<V>>::fold_with(attrs, visitor) };
104174                let type_args = {
104175                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
104176                        type_args, visitor,
104177                    )
104178                };
104179                JSXOpeningElement {
104180                    name,
104181                    span,
104182                    attrs,
104183                    self_closing,
104184                    type_args,
104185                }
104186            }
104187        }
104188    }
104189}
104190impl<V: ?Sized + Fold> FoldWith<V> for JSXOpeningFragment {
104191    #[doc = "Calls [Fold`::fold_jsx_opening_fragment`] with `self`."]
104192    fn fold_with(self, visitor: &mut V) -> Self {
104193        <V as Fold>::fold_jsx_opening_fragment(visitor, self)
104194    }
104195
104196    fn fold_children_with(self, visitor: &mut V) -> Self {
104197        match self {
104198            JSXOpeningFragment { span } => {
104199                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104200                JSXOpeningFragment { span }
104201            }
104202        }
104203    }
104204}
104205impl<V: ?Sized + Fold> FoldWith<V> for JSXSpreadChild {
104206    #[doc = "Calls [Fold`::fold_jsx_spread_child`] with `self`."]
104207    fn fold_with(self, visitor: &mut V) -> Self {
104208        <V as Fold>::fold_jsx_spread_child(visitor, self)
104209    }
104210
104211    fn fold_children_with(self, visitor: &mut V) -> Self {
104212        match self {
104213            JSXSpreadChild { span, expr } => {
104214                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104215                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
104216                JSXSpreadChild { span, expr }
104217            }
104218        }
104219    }
104220}
104221impl<V: ?Sized + Fold> FoldWith<V> for JSXText {
104222    #[doc = "Calls [Fold`::fold_jsx_text`] with `self`."]
104223    fn fold_with(self, visitor: &mut V) -> Self {
104224        <V as Fold>::fold_jsx_text(visitor, self)
104225    }
104226
104227    fn fold_children_with(self, visitor: &mut V) -> Self {
104228        match self {
104229            JSXText { span, value, raw } => {
104230                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104231                let value = { <swc_atoms::Atom as FoldWith<V>>::fold_with(value, visitor) };
104232                let raw = { <swc_atoms::Atom as FoldWith<V>>::fold_with(raw, visitor) };
104233                JSXText { span, value, raw }
104234            }
104235        }
104236    }
104237}
104238impl<V: ?Sized + Fold> FoldWith<V> for Key {
104239    #[doc = "Calls [Fold`::fold_key`] with `self`."]
104240    fn fold_with(self, visitor: &mut V) -> Self {
104241        <V as Fold>::fold_key(visitor, self)
104242    }
104243
104244    fn fold_children_with(self, visitor: &mut V) -> Self {
104245        match self {
104246            Key::Private { 0: _field_0 } => {
104247                let _field_0 = <PrivateName as FoldWith<V>>::fold_with(_field_0, visitor);
104248                Key::Private { 0: _field_0 }
104249            }
104250            Key::Public { 0: _field_0 } => {
104251                let _field_0 = <PropName as FoldWith<V>>::fold_with(_field_0, visitor);
104252                Key::Public { 0: _field_0 }
104253            }
104254        }
104255    }
104256}
104257impl<V: ?Sized + Fold> FoldWith<V> for KeyValuePatProp {
104258    #[doc = "Calls [Fold`::fold_key_value_pat_prop`] with `self`."]
104259    fn fold_with(self, visitor: &mut V) -> Self {
104260        <V as Fold>::fold_key_value_pat_prop(visitor, self)
104261    }
104262
104263    fn fold_children_with(self, visitor: &mut V) -> Self {
104264        match self {
104265            KeyValuePatProp { key, value } => {
104266                let key = { <PropName as FoldWith<V>>::fold_with(key, visitor) };
104267                let value = { <Box<Pat> as FoldWith<V>>::fold_with(value, visitor) };
104268                KeyValuePatProp { key, value }
104269            }
104270        }
104271    }
104272}
104273impl<V: ?Sized + Fold> FoldWith<V> for KeyValueProp {
104274    #[doc = "Calls [Fold`::fold_key_value_prop`] with `self`."]
104275    fn fold_with(self, visitor: &mut V) -> Self {
104276        <V as Fold>::fold_key_value_prop(visitor, self)
104277    }
104278
104279    fn fold_children_with(self, visitor: &mut V) -> Self {
104280        match self {
104281            KeyValueProp { key, value } => {
104282                let key = { <PropName as FoldWith<V>>::fold_with(key, visitor) };
104283                let value = { <Box<Expr> as FoldWith<V>>::fold_with(value, visitor) };
104284                KeyValueProp { key, value }
104285            }
104286        }
104287    }
104288}
104289impl<V: ?Sized + Fold> FoldWith<V> for LabeledStmt {
104290    #[doc = "Calls [Fold`::fold_labeled_stmt`] with `self`."]
104291    fn fold_with(self, visitor: &mut V) -> Self {
104292        <V as Fold>::fold_labeled_stmt(visitor, self)
104293    }
104294
104295    fn fold_children_with(self, visitor: &mut V) -> Self {
104296        match self {
104297            LabeledStmt { span, label, body } => {
104298                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104299                let label = { <Ident as FoldWith<V>>::fold_with(label, visitor) };
104300                let body = { <Box<Stmt> as FoldWith<V>>::fold_with(body, visitor) };
104301                LabeledStmt { span, label, body }
104302            }
104303        }
104304    }
104305}
104306impl<V: ?Sized + Fold> FoldWith<V> for Lit {
104307    #[doc = "Calls [Fold`::fold_lit`] with `self`."]
104308    fn fold_with(self, visitor: &mut V) -> Self {
104309        <V as Fold>::fold_lit(visitor, self)
104310    }
104311
104312    fn fold_children_with(self, visitor: &mut V) -> Self {
104313        match self {
104314            Lit::Str { 0: _field_0 } => {
104315                let _field_0 = <Str as FoldWith<V>>::fold_with(_field_0, visitor);
104316                Lit::Str { 0: _field_0 }
104317            }
104318            Lit::Bool { 0: _field_0 } => {
104319                let _field_0 = <Bool as FoldWith<V>>::fold_with(_field_0, visitor);
104320                Lit::Bool { 0: _field_0 }
104321            }
104322            Lit::Null { 0: _field_0 } => {
104323                let _field_0 = <Null as FoldWith<V>>::fold_with(_field_0, visitor);
104324                Lit::Null { 0: _field_0 }
104325            }
104326            Lit::Num { 0: _field_0 } => {
104327                let _field_0 = <Number as FoldWith<V>>::fold_with(_field_0, visitor);
104328                Lit::Num { 0: _field_0 }
104329            }
104330            Lit::BigInt { 0: _field_0 } => {
104331                let _field_0 = <BigInt as FoldWith<V>>::fold_with(_field_0, visitor);
104332                Lit::BigInt { 0: _field_0 }
104333            }
104334            Lit::Regex { 0: _field_0 } => {
104335                let _field_0 = <Regex as FoldWith<V>>::fold_with(_field_0, visitor);
104336                Lit::Regex { 0: _field_0 }
104337            }
104338            Lit::JSXText { 0: _field_0 } => {
104339                let _field_0 = <JSXText as FoldWith<V>>::fold_with(_field_0, visitor);
104340                Lit::JSXText { 0: _field_0 }
104341            }
104342        }
104343    }
104344}
104345impl<V: ?Sized + Fold> FoldWith<V> for MemberExpr {
104346    #[doc = "Calls [Fold`::fold_member_expr`] with `self`."]
104347    fn fold_with(self, visitor: &mut V) -> Self {
104348        <V as Fold>::fold_member_expr(visitor, self)
104349    }
104350
104351    fn fold_children_with(self, visitor: &mut V) -> Self {
104352        match self {
104353            MemberExpr { span, obj, prop } => {
104354                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104355                let obj = { <Box<Expr> as FoldWith<V>>::fold_with(obj, visitor) };
104356                let prop = { <MemberProp as FoldWith<V>>::fold_with(prop, visitor) };
104357                MemberExpr { span, obj, prop }
104358            }
104359        }
104360    }
104361}
104362impl<V: ?Sized + Fold> FoldWith<V> for MemberProp {
104363    #[doc = "Calls [Fold`::fold_member_prop`] with `self`."]
104364    fn fold_with(self, visitor: &mut V) -> Self {
104365        <V as Fold>::fold_member_prop(visitor, self)
104366    }
104367
104368    fn fold_children_with(self, visitor: &mut V) -> Self {
104369        match self {
104370            MemberProp::Ident { 0: _field_0 } => {
104371                let _field_0 = <IdentName as FoldWith<V>>::fold_with(_field_0, visitor);
104372                MemberProp::Ident { 0: _field_0 }
104373            }
104374            MemberProp::PrivateName { 0: _field_0 } => {
104375                let _field_0 = <PrivateName as FoldWith<V>>::fold_with(_field_0, visitor);
104376                MemberProp::PrivateName { 0: _field_0 }
104377            }
104378            MemberProp::Computed { 0: _field_0 } => {
104379                let _field_0 = <ComputedPropName as FoldWith<V>>::fold_with(_field_0, visitor);
104380                MemberProp::Computed { 0: _field_0 }
104381            }
104382        }
104383    }
104384}
104385impl<V: ?Sized + Fold> FoldWith<V> for MetaPropExpr {
104386    #[doc = "Calls [Fold`::fold_meta_prop_expr`] with `self`."]
104387    fn fold_with(self, visitor: &mut V) -> Self {
104388        <V as Fold>::fold_meta_prop_expr(visitor, self)
104389    }
104390
104391    fn fold_children_with(self, visitor: &mut V) -> Self {
104392        match self {
104393            MetaPropExpr { span, kind } => {
104394                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104395                let kind = { <MetaPropKind as FoldWith<V>>::fold_with(kind, visitor) };
104396                MetaPropExpr { span, kind }
104397            }
104398        }
104399    }
104400}
104401impl<V: ?Sized + Fold> FoldWith<V> for MetaPropKind {
104402    #[doc = "Calls [Fold`::fold_meta_prop_kind`] with `self`."]
104403    fn fold_with(self, visitor: &mut V) -> Self {
104404        <V as Fold>::fold_meta_prop_kind(visitor, self)
104405    }
104406
104407    fn fold_children_with(self, visitor: &mut V) -> Self {
104408        match self {
104409            MetaPropKind::NewTarget => MetaPropKind::NewTarget,
104410            MetaPropKind::ImportMeta => MetaPropKind::ImportMeta,
104411        }
104412    }
104413}
104414impl<V: ?Sized + Fold> FoldWith<V> for MethodKind {
104415    #[doc = "Calls [Fold`::fold_method_kind`] with `self`."]
104416    fn fold_with(self, visitor: &mut V) -> Self {
104417        <V as Fold>::fold_method_kind(visitor, self)
104418    }
104419
104420    fn fold_children_with(self, visitor: &mut V) -> Self {
104421        match self {
104422            MethodKind::Method => MethodKind::Method,
104423            MethodKind::Getter => MethodKind::Getter,
104424            MethodKind::Setter => MethodKind::Setter,
104425        }
104426    }
104427}
104428impl<V: ?Sized + Fold> FoldWith<V> for MethodProp {
104429    #[doc = "Calls [Fold`::fold_method_prop`] with `self`."]
104430    fn fold_with(self, visitor: &mut V) -> Self {
104431        <V as Fold>::fold_method_prop(visitor, self)
104432    }
104433
104434    fn fold_children_with(self, visitor: &mut V) -> Self {
104435        match self {
104436            MethodProp { key, function } => {
104437                let key = { <PropName as FoldWith<V>>::fold_with(key, visitor) };
104438                let function = { <Box<Function> as FoldWith<V>>::fold_with(function, visitor) };
104439                MethodProp { key, function }
104440            }
104441        }
104442    }
104443}
104444impl<V: ?Sized + Fold> FoldWith<V> for Module {
104445    #[doc = "Calls [Fold`::fold_module`] with `self`."]
104446    fn fold_with(self, visitor: &mut V) -> Self {
104447        <V as Fold>::fold_module(visitor, self)
104448    }
104449
104450    fn fold_children_with(self, visitor: &mut V) -> Self {
104451        match self {
104452            Module {
104453                span,
104454                body,
104455                shebang,
104456            } => {
104457                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104458                let body = { <Vec<ModuleItem> as FoldWith<V>>::fold_with(body, visitor) };
104459                let shebang =
104460                    { <Option<swc_atoms::Atom> as FoldWith<V>>::fold_with(shebang, visitor) };
104461                Module {
104462                    span,
104463                    body,
104464                    shebang,
104465                }
104466            }
104467        }
104468    }
104469}
104470impl<V: ?Sized + Fold> FoldWith<V> for ModuleDecl {
104471    #[doc = "Calls [Fold`::fold_module_decl`] with `self`."]
104472    fn fold_with(self, visitor: &mut V) -> Self {
104473        <V as Fold>::fold_module_decl(visitor, self)
104474    }
104475
104476    fn fold_children_with(self, visitor: &mut V) -> Self {
104477        match self {
104478            ModuleDecl::Import { 0: _field_0 } => {
104479                let _field_0 = <ImportDecl as FoldWith<V>>::fold_with(_field_0, visitor);
104480                ModuleDecl::Import { 0: _field_0 }
104481            }
104482            ModuleDecl::ExportDecl { 0: _field_0 } => {
104483                let _field_0 = <ExportDecl as FoldWith<V>>::fold_with(_field_0, visitor);
104484                ModuleDecl::ExportDecl { 0: _field_0 }
104485            }
104486            ModuleDecl::ExportNamed { 0: _field_0 } => {
104487                let _field_0 = <NamedExport as FoldWith<V>>::fold_with(_field_0, visitor);
104488                ModuleDecl::ExportNamed { 0: _field_0 }
104489            }
104490            ModuleDecl::ExportDefaultDecl { 0: _field_0 } => {
104491                let _field_0 = <ExportDefaultDecl as FoldWith<V>>::fold_with(_field_0, visitor);
104492                ModuleDecl::ExportDefaultDecl { 0: _field_0 }
104493            }
104494            ModuleDecl::ExportDefaultExpr { 0: _field_0 } => {
104495                let _field_0 = <ExportDefaultExpr as FoldWith<V>>::fold_with(_field_0, visitor);
104496                ModuleDecl::ExportDefaultExpr { 0: _field_0 }
104497            }
104498            ModuleDecl::ExportAll { 0: _field_0 } => {
104499                let _field_0 = <ExportAll as FoldWith<V>>::fold_with(_field_0, visitor);
104500                ModuleDecl::ExportAll { 0: _field_0 }
104501            }
104502            ModuleDecl::TsImportEquals { 0: _field_0 } => {
104503                let _field_0 =
104504                    <Box<TsImportEqualsDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
104505                ModuleDecl::TsImportEquals { 0: _field_0 }
104506            }
104507            ModuleDecl::TsExportAssignment { 0: _field_0 } => {
104508                let _field_0 = <TsExportAssignment as FoldWith<V>>::fold_with(_field_0, visitor);
104509                ModuleDecl::TsExportAssignment { 0: _field_0 }
104510            }
104511            ModuleDecl::TsNamespaceExport { 0: _field_0 } => {
104512                let _field_0 = <TsNamespaceExportDecl as FoldWith<V>>::fold_with(_field_0, visitor);
104513                ModuleDecl::TsNamespaceExport { 0: _field_0 }
104514            }
104515        }
104516    }
104517}
104518impl<V: ?Sized + Fold> FoldWith<V> for ModuleExportName {
104519    #[doc = "Calls [Fold`::fold_module_export_name`] with `self`."]
104520    fn fold_with(self, visitor: &mut V) -> Self {
104521        <V as Fold>::fold_module_export_name(visitor, self)
104522    }
104523
104524    fn fold_children_with(self, visitor: &mut V) -> Self {
104525        match self {
104526            ModuleExportName::Ident { 0: _field_0 } => {
104527                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
104528                ModuleExportName::Ident { 0: _field_0 }
104529            }
104530            ModuleExportName::Str { 0: _field_0 } => {
104531                let _field_0 = <Str as FoldWith<V>>::fold_with(_field_0, visitor);
104532                ModuleExportName::Str { 0: _field_0 }
104533            }
104534        }
104535    }
104536}
104537impl<V: ?Sized + Fold> FoldWith<V> for ModuleItem {
104538    #[doc = "Calls [Fold`::fold_module_item`] with `self`."]
104539    fn fold_with(self, visitor: &mut V) -> Self {
104540        <V as Fold>::fold_module_item(visitor, self)
104541    }
104542
104543    fn fold_children_with(self, visitor: &mut V) -> Self {
104544        match self {
104545            ModuleItem::ModuleDecl { 0: _field_0 } => {
104546                let _field_0 = <ModuleDecl as FoldWith<V>>::fold_with(_field_0, visitor);
104547                ModuleItem::ModuleDecl { 0: _field_0 }
104548            }
104549            ModuleItem::Stmt { 0: _field_0 } => {
104550                let _field_0 = <Stmt as FoldWith<V>>::fold_with(_field_0, visitor);
104551                ModuleItem::Stmt { 0: _field_0 }
104552            }
104553        }
104554    }
104555}
104556impl<V: ?Sized + Fold> FoldWith<V> for NamedExport {
104557    #[doc = "Calls [Fold`::fold_named_export`] with `self`."]
104558    fn fold_with(self, visitor: &mut V) -> Self {
104559        <V as Fold>::fold_named_export(visitor, self)
104560    }
104561
104562    fn fold_children_with(self, visitor: &mut V) -> Self {
104563        match self {
104564            NamedExport {
104565                span,
104566                specifiers,
104567                src,
104568                type_only,
104569                with,
104570            } => {
104571                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104572                let specifiers =
104573                    { <Vec<ExportSpecifier> as FoldWith<V>>::fold_with(specifiers, visitor) };
104574                let src = { <Option<Box<Str>> as FoldWith<V>>::fold_with(src, visitor) };
104575                let with = { <Option<Box<ObjectLit>> as FoldWith<V>>::fold_with(with, visitor) };
104576                NamedExport {
104577                    span,
104578                    specifiers,
104579                    src,
104580                    type_only,
104581                    with,
104582                }
104583            }
104584        }
104585    }
104586}
104587impl<V: ?Sized + Fold> FoldWith<V> for NewExpr {
104588    #[doc = "Calls [Fold`::fold_new_expr`] with `self`."]
104589    fn fold_with(self, visitor: &mut V) -> Self {
104590        <V as Fold>::fold_new_expr(visitor, self)
104591    }
104592
104593    fn fold_children_with(self, visitor: &mut V) -> Self {
104594        match self {
104595            NewExpr {
104596                span,
104597                ctxt,
104598                callee,
104599                args,
104600                type_args,
104601            } => {
104602                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104603                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
104604                let callee = { <Box<Expr> as FoldWith<V>>::fold_with(callee, visitor) };
104605                let args = { <Option<Vec<ExprOrSpread>> as FoldWith<V>>::fold_with(args, visitor) };
104606                let type_args = {
104607                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
104608                        type_args, visitor,
104609                    )
104610                };
104611                NewExpr {
104612                    span,
104613                    ctxt,
104614                    callee,
104615                    args,
104616                    type_args,
104617                }
104618            }
104619        }
104620    }
104621}
104622impl<V: ?Sized + Fold> FoldWith<V> for Null {
104623    #[doc = "Calls [Fold`::fold_null`] with `self`."]
104624    fn fold_with(self, visitor: &mut V) -> Self {
104625        <V as Fold>::fold_null(visitor, self)
104626    }
104627
104628    fn fold_children_with(self, visitor: &mut V) -> Self {
104629        match self {
104630            Null { span } => {
104631                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104632                Null { span }
104633            }
104634        }
104635    }
104636}
104637impl<V: ?Sized + Fold> FoldWith<V> for Number {
104638    #[doc = "Calls [Fold`::fold_number`] with `self`."]
104639    fn fold_with(self, visitor: &mut V) -> Self {
104640        <V as Fold>::fold_number(visitor, self)
104641    }
104642
104643    fn fold_children_with(self, visitor: &mut V) -> Self {
104644        match self {
104645            Number { span, value, raw } => {
104646                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104647                let raw = { <Option<swc_atoms::Atom> as FoldWith<V>>::fold_with(raw, visitor) };
104648                Number { span, value, raw }
104649            }
104650        }
104651    }
104652}
104653impl<V: ?Sized + Fold> FoldWith<V> for ObjectLit {
104654    #[doc = "Calls [Fold`::fold_object_lit`] with `self`."]
104655    fn fold_with(self, visitor: &mut V) -> Self {
104656        <V as Fold>::fold_object_lit(visitor, self)
104657    }
104658
104659    fn fold_children_with(self, visitor: &mut V) -> Self {
104660        match self {
104661            ObjectLit { span, props } => {
104662                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104663                let props = { <Vec<PropOrSpread> as FoldWith<V>>::fold_with(props, visitor) };
104664                ObjectLit { span, props }
104665            }
104666        }
104667    }
104668}
104669impl<V: ?Sized + Fold> FoldWith<V> for ObjectPat {
104670    #[doc = "Calls [Fold`::fold_object_pat`] with `self`."]
104671    fn fold_with(self, visitor: &mut V) -> Self {
104672        <V as Fold>::fold_object_pat(visitor, self)
104673    }
104674
104675    fn fold_children_with(self, visitor: &mut V) -> Self {
104676        match self {
104677            ObjectPat {
104678                span,
104679                props,
104680                optional,
104681                type_ann,
104682            } => {
104683                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104684                let props = { <Vec<ObjectPatProp> as FoldWith<V>>::fold_with(props, visitor) };
104685                let type_ann =
104686                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
104687                ObjectPat {
104688                    span,
104689                    props,
104690                    optional,
104691                    type_ann,
104692                }
104693            }
104694        }
104695    }
104696}
104697impl<V: ?Sized + Fold> FoldWith<V> for ObjectPatProp {
104698    #[doc = "Calls [Fold`::fold_object_pat_prop`] with `self`."]
104699    fn fold_with(self, visitor: &mut V) -> Self {
104700        <V as Fold>::fold_object_pat_prop(visitor, self)
104701    }
104702
104703    fn fold_children_with(self, visitor: &mut V) -> Self {
104704        match self {
104705            ObjectPatProp::KeyValue { 0: _field_0 } => {
104706                let _field_0 = <KeyValuePatProp as FoldWith<V>>::fold_with(_field_0, visitor);
104707                ObjectPatProp::KeyValue { 0: _field_0 }
104708            }
104709            ObjectPatProp::Assign { 0: _field_0 } => {
104710                let _field_0 = <AssignPatProp as FoldWith<V>>::fold_with(_field_0, visitor);
104711                ObjectPatProp::Assign { 0: _field_0 }
104712            }
104713            ObjectPatProp::Rest { 0: _field_0 } => {
104714                let _field_0 = <RestPat as FoldWith<V>>::fold_with(_field_0, visitor);
104715                ObjectPatProp::Rest { 0: _field_0 }
104716            }
104717        }
104718    }
104719}
104720impl<V: ?Sized + Fold> FoldWith<V> for OptCall {
104721    #[doc = "Calls [Fold`::fold_opt_call`] with `self`."]
104722    fn fold_with(self, visitor: &mut V) -> Self {
104723        <V as Fold>::fold_opt_call(visitor, self)
104724    }
104725
104726    fn fold_children_with(self, visitor: &mut V) -> Self {
104727        match self {
104728            OptCall {
104729                span,
104730                ctxt,
104731                callee,
104732                args,
104733                type_args,
104734            } => {
104735                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104736                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
104737                let callee = { <Box<Expr> as FoldWith<V>>::fold_with(callee, visitor) };
104738                let args = { <Vec<ExprOrSpread> as FoldWith<V>>::fold_with(args, visitor) };
104739                let type_args = {
104740                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
104741                        type_args, visitor,
104742                    )
104743                };
104744                OptCall {
104745                    span,
104746                    ctxt,
104747                    callee,
104748                    args,
104749                    type_args,
104750                }
104751            }
104752        }
104753    }
104754}
104755impl<V: ?Sized + Fold> FoldWith<V> for OptChainBase {
104756    #[doc = "Calls [Fold`::fold_opt_chain_base`] with `self`."]
104757    fn fold_with(self, visitor: &mut V) -> Self {
104758        <V as Fold>::fold_opt_chain_base(visitor, self)
104759    }
104760
104761    fn fold_children_with(self, visitor: &mut V) -> Self {
104762        match self {
104763            OptChainBase::Member { 0: _field_0 } => {
104764                let _field_0 = <MemberExpr as FoldWith<V>>::fold_with(_field_0, visitor);
104765                OptChainBase::Member { 0: _field_0 }
104766            }
104767            OptChainBase::Call { 0: _field_0 } => {
104768                let _field_0 = <OptCall as FoldWith<V>>::fold_with(_field_0, visitor);
104769                OptChainBase::Call { 0: _field_0 }
104770            }
104771        }
104772    }
104773}
104774impl<V: ?Sized + Fold> FoldWith<V> for OptChainExpr {
104775    #[doc = "Calls [Fold`::fold_opt_chain_expr`] with `self`."]
104776    fn fold_with(self, visitor: &mut V) -> Self {
104777        <V as Fold>::fold_opt_chain_expr(visitor, self)
104778    }
104779
104780    fn fold_children_with(self, visitor: &mut V) -> Self {
104781        match self {
104782            OptChainExpr {
104783                span,
104784                optional,
104785                base,
104786            } => {
104787                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104788                let base = { <Box<OptChainBase> as FoldWith<V>>::fold_with(base, visitor) };
104789                OptChainExpr {
104790                    span,
104791                    optional,
104792                    base,
104793                }
104794            }
104795        }
104796    }
104797}
104798impl<V: ?Sized + Fold> FoldWith<V> for Param {
104799    #[doc = "Calls [Fold`::fold_param`] with `self`."]
104800    fn fold_with(self, visitor: &mut V) -> Self {
104801        <V as Fold>::fold_param(visitor, self)
104802    }
104803
104804    fn fold_children_with(self, visitor: &mut V) -> Self {
104805        match self {
104806            Param {
104807                span,
104808                decorators,
104809                pat,
104810            } => {
104811                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104812                let decorators =
104813                    { <Vec<Decorator> as FoldWith<V>>::fold_with(decorators, visitor) };
104814                let pat = { <Pat as FoldWith<V>>::fold_with(pat, visitor) };
104815                Param {
104816                    span,
104817                    decorators,
104818                    pat,
104819                }
104820            }
104821        }
104822    }
104823}
104824impl<V: ?Sized + Fold> FoldWith<V> for ParamOrTsParamProp {
104825    #[doc = "Calls [Fold`::fold_param_or_ts_param_prop`] with `self`."]
104826    fn fold_with(self, visitor: &mut V) -> Self {
104827        <V as Fold>::fold_param_or_ts_param_prop(visitor, self)
104828    }
104829
104830    fn fold_children_with(self, visitor: &mut V) -> Self {
104831        match self {
104832            ParamOrTsParamProp::TsParamProp { 0: _field_0 } => {
104833                let _field_0 = <TsParamProp as FoldWith<V>>::fold_with(_field_0, visitor);
104834                ParamOrTsParamProp::TsParamProp { 0: _field_0 }
104835            }
104836            ParamOrTsParamProp::Param { 0: _field_0 } => {
104837                let _field_0 = <Param as FoldWith<V>>::fold_with(_field_0, visitor);
104838                ParamOrTsParamProp::Param { 0: _field_0 }
104839            }
104840        }
104841    }
104842}
104843impl<V: ?Sized + Fold> FoldWith<V> for ParenExpr {
104844    #[doc = "Calls [Fold`::fold_paren_expr`] with `self`."]
104845    fn fold_with(self, visitor: &mut V) -> Self {
104846        <V as Fold>::fold_paren_expr(visitor, self)
104847    }
104848
104849    fn fold_children_with(self, visitor: &mut V) -> Self {
104850        match self {
104851            ParenExpr { span, expr } => {
104852                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104853                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
104854                ParenExpr { span, expr }
104855            }
104856        }
104857    }
104858}
104859impl<V: ?Sized + Fold> FoldWith<V> for Pat {
104860    #[doc = "Calls [Fold`::fold_pat`] with `self`."]
104861    fn fold_with(self, visitor: &mut V) -> Self {
104862        <V as Fold>::fold_pat(visitor, self)
104863    }
104864
104865    fn fold_children_with(self, visitor: &mut V) -> Self {
104866        match self {
104867            Pat::Ident { 0: _field_0 } => {
104868                let _field_0 = <BindingIdent as FoldWith<V>>::fold_with(_field_0, visitor);
104869                Pat::Ident { 0: _field_0 }
104870            }
104871            Pat::Array { 0: _field_0 } => {
104872                let _field_0 = <ArrayPat as FoldWith<V>>::fold_with(_field_0, visitor);
104873                Pat::Array { 0: _field_0 }
104874            }
104875            Pat::Rest { 0: _field_0 } => {
104876                let _field_0 = <RestPat as FoldWith<V>>::fold_with(_field_0, visitor);
104877                Pat::Rest { 0: _field_0 }
104878            }
104879            Pat::Object { 0: _field_0 } => {
104880                let _field_0 = <ObjectPat as FoldWith<V>>::fold_with(_field_0, visitor);
104881                Pat::Object { 0: _field_0 }
104882            }
104883            Pat::Assign { 0: _field_0 } => {
104884                let _field_0 = <AssignPat as FoldWith<V>>::fold_with(_field_0, visitor);
104885                Pat::Assign { 0: _field_0 }
104886            }
104887            Pat::Invalid { 0: _field_0 } => {
104888                let _field_0 = <Invalid as FoldWith<V>>::fold_with(_field_0, visitor);
104889                Pat::Invalid { 0: _field_0 }
104890            }
104891            Pat::Expr { 0: _field_0 } => {
104892                let _field_0 = <Box<Expr> as FoldWith<V>>::fold_with(_field_0, visitor);
104893                Pat::Expr { 0: _field_0 }
104894            }
104895        }
104896    }
104897}
104898impl<V: ?Sized + Fold> FoldWith<V> for PrivateMethod {
104899    #[doc = "Calls [Fold`::fold_private_method`] with `self`."]
104900    fn fold_with(self, visitor: &mut V) -> Self {
104901        <V as Fold>::fold_private_method(visitor, self)
104902    }
104903
104904    fn fold_children_with(self, visitor: &mut V) -> Self {
104905        match self {
104906            PrivateMethod {
104907                span,
104908                key,
104909                function,
104910                kind,
104911                is_static,
104912                accessibility,
104913                is_abstract,
104914                is_optional,
104915                is_override,
104916            } => {
104917                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104918                let key = { <PrivateName as FoldWith<V>>::fold_with(key, visitor) };
104919                let function = { <Box<Function> as FoldWith<V>>::fold_with(function, visitor) };
104920                let kind = { <MethodKind as FoldWith<V>>::fold_with(kind, visitor) };
104921                let accessibility =
104922                    { <Option<Accessibility> as FoldWith<V>>::fold_with(accessibility, visitor) };
104923                PrivateMethod {
104924                    span,
104925                    key,
104926                    function,
104927                    kind,
104928                    is_static,
104929                    accessibility,
104930                    is_abstract,
104931                    is_optional,
104932                    is_override,
104933                }
104934            }
104935        }
104936    }
104937}
104938impl<V: ?Sized + Fold> FoldWith<V> for PrivateName {
104939    #[doc = "Calls [Fold`::fold_private_name`] with `self`."]
104940    fn fold_with(self, visitor: &mut V) -> Self {
104941        <V as Fold>::fold_private_name(visitor, self)
104942    }
104943
104944    fn fold_children_with(self, visitor: &mut V) -> Self {
104945        match self {
104946            PrivateName { span, name } => {
104947                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104948                let name = { <swc_atoms::Atom as FoldWith<V>>::fold_with(name, visitor) };
104949                PrivateName { span, name }
104950            }
104951        }
104952    }
104953}
104954impl<V: ?Sized + Fold> FoldWith<V> for PrivateProp {
104955    #[doc = "Calls [Fold`::fold_private_prop`] with `self`."]
104956    fn fold_with(self, visitor: &mut V) -> Self {
104957        <V as Fold>::fold_private_prop(visitor, self)
104958    }
104959
104960    fn fold_children_with(self, visitor: &mut V) -> Self {
104961        match self {
104962            PrivateProp {
104963                span,
104964                ctxt,
104965                key,
104966                value,
104967                type_ann,
104968                is_static,
104969                decorators,
104970                accessibility,
104971                is_optional,
104972                is_override,
104973                readonly,
104974                definite,
104975            } => {
104976                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104977                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
104978                let key = { <PrivateName as FoldWith<V>>::fold_with(key, visitor) };
104979                let value = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(value, visitor) };
104980                let type_ann =
104981                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
104982                let decorators =
104983                    { <Vec<Decorator> as FoldWith<V>>::fold_with(decorators, visitor) };
104984                let accessibility =
104985                    { <Option<Accessibility> as FoldWith<V>>::fold_with(accessibility, visitor) };
104986                PrivateProp {
104987                    span,
104988                    ctxt,
104989                    key,
104990                    value,
104991                    type_ann,
104992                    is_static,
104993                    decorators,
104994                    accessibility,
104995                    is_optional,
104996                    is_override,
104997                    readonly,
104998                    definite,
104999                }
105000            }
105001        }
105002    }
105003}
105004impl<V: ?Sized + Fold> FoldWith<V> for Program {
105005    #[doc = "Calls [Fold`::fold_program`] with `self`."]
105006    fn fold_with(self, visitor: &mut V) -> Self {
105007        <V as Fold>::fold_program(visitor, self)
105008    }
105009
105010    fn fold_children_with(self, visitor: &mut V) -> Self {
105011        match self {
105012            Program::Module { 0: _field_0 } => {
105013                let _field_0 = <Module as FoldWith<V>>::fold_with(_field_0, visitor);
105014                Program::Module { 0: _field_0 }
105015            }
105016            Program::Script { 0: _field_0 } => {
105017                let _field_0 = <Script as FoldWith<V>>::fold_with(_field_0, visitor);
105018                Program::Script { 0: _field_0 }
105019            }
105020        }
105021    }
105022}
105023impl<V: ?Sized + Fold> FoldWith<V> for Prop {
105024    #[doc = "Calls [Fold`::fold_prop`] with `self`."]
105025    fn fold_with(self, visitor: &mut V) -> Self {
105026        <V as Fold>::fold_prop(visitor, self)
105027    }
105028
105029    fn fold_children_with(self, visitor: &mut V) -> Self {
105030        match self {
105031            Prop::Shorthand { 0: _field_0 } => {
105032                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
105033                Prop::Shorthand { 0: _field_0 }
105034            }
105035            Prop::KeyValue { 0: _field_0 } => {
105036                let _field_0 = <KeyValueProp as FoldWith<V>>::fold_with(_field_0, visitor);
105037                Prop::KeyValue { 0: _field_0 }
105038            }
105039            Prop::Assign { 0: _field_0 } => {
105040                let _field_0 = <AssignProp as FoldWith<V>>::fold_with(_field_0, visitor);
105041                Prop::Assign { 0: _field_0 }
105042            }
105043            Prop::Getter { 0: _field_0 } => {
105044                let _field_0 = <GetterProp as FoldWith<V>>::fold_with(_field_0, visitor);
105045                Prop::Getter { 0: _field_0 }
105046            }
105047            Prop::Setter { 0: _field_0 } => {
105048                let _field_0 = <SetterProp as FoldWith<V>>::fold_with(_field_0, visitor);
105049                Prop::Setter { 0: _field_0 }
105050            }
105051            Prop::Method { 0: _field_0 } => {
105052                let _field_0 = <MethodProp as FoldWith<V>>::fold_with(_field_0, visitor);
105053                Prop::Method { 0: _field_0 }
105054            }
105055        }
105056    }
105057}
105058impl<V: ?Sized + Fold> FoldWith<V> for PropName {
105059    #[doc = "Calls [Fold`::fold_prop_name`] with `self`."]
105060    fn fold_with(self, visitor: &mut V) -> Self {
105061        <V as Fold>::fold_prop_name(visitor, self)
105062    }
105063
105064    fn fold_children_with(self, visitor: &mut V) -> Self {
105065        match self {
105066            PropName::Ident { 0: _field_0 } => {
105067                let _field_0 = <IdentName as FoldWith<V>>::fold_with(_field_0, visitor);
105068                PropName::Ident { 0: _field_0 }
105069            }
105070            PropName::Str { 0: _field_0 } => {
105071                let _field_0 = <Str as FoldWith<V>>::fold_with(_field_0, visitor);
105072                PropName::Str { 0: _field_0 }
105073            }
105074            PropName::Num { 0: _field_0 } => {
105075                let _field_0 = <Number as FoldWith<V>>::fold_with(_field_0, visitor);
105076                PropName::Num { 0: _field_0 }
105077            }
105078            PropName::Computed { 0: _field_0 } => {
105079                let _field_0 = <ComputedPropName as FoldWith<V>>::fold_with(_field_0, visitor);
105080                PropName::Computed { 0: _field_0 }
105081            }
105082            PropName::BigInt { 0: _field_0 } => {
105083                let _field_0 = <BigInt as FoldWith<V>>::fold_with(_field_0, visitor);
105084                PropName::BigInt { 0: _field_0 }
105085            }
105086        }
105087    }
105088}
105089impl<V: ?Sized + Fold> FoldWith<V> for PropOrSpread {
105090    #[doc = "Calls [Fold`::fold_prop_or_spread`] with `self`."]
105091    fn fold_with(self, visitor: &mut V) -> Self {
105092        <V as Fold>::fold_prop_or_spread(visitor, self)
105093    }
105094
105095    fn fold_children_with(self, visitor: &mut V) -> Self {
105096        match self {
105097            PropOrSpread::Spread { 0: _field_0 } => {
105098                let _field_0 = <SpreadElement as FoldWith<V>>::fold_with(_field_0, visitor);
105099                PropOrSpread::Spread { 0: _field_0 }
105100            }
105101            PropOrSpread::Prop { 0: _field_0 } => {
105102                let _field_0 = <Box<Prop> as FoldWith<V>>::fold_with(_field_0, visitor);
105103                PropOrSpread::Prop { 0: _field_0 }
105104            }
105105        }
105106    }
105107}
105108impl<V: ?Sized + Fold> FoldWith<V> for Regex {
105109    #[doc = "Calls [Fold`::fold_regex`] with `self`."]
105110    fn fold_with(self, visitor: &mut V) -> Self {
105111        <V as Fold>::fold_regex(visitor, self)
105112    }
105113
105114    fn fold_children_with(self, visitor: &mut V) -> Self {
105115        match self {
105116            Regex { span, exp, flags } => {
105117                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105118                let exp = { <swc_atoms::Atom as FoldWith<V>>::fold_with(exp, visitor) };
105119                let flags = { <swc_atoms::Atom as FoldWith<V>>::fold_with(flags, visitor) };
105120                Regex { span, exp, flags }
105121            }
105122        }
105123    }
105124}
105125impl<V: ?Sized + Fold> FoldWith<V> for RestPat {
105126    #[doc = "Calls [Fold`::fold_rest_pat`] with `self`."]
105127    fn fold_with(self, visitor: &mut V) -> Self {
105128        <V as Fold>::fold_rest_pat(visitor, self)
105129    }
105130
105131    fn fold_children_with(self, visitor: &mut V) -> Self {
105132        match self {
105133            RestPat {
105134                span,
105135                dot3_token,
105136                arg,
105137                type_ann,
105138            } => {
105139                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105140                let dot3_token =
105141                    { <swc_common::Span as FoldWith<V>>::fold_with(dot3_token, visitor) };
105142                let arg = { <Box<Pat> as FoldWith<V>>::fold_with(arg, visitor) };
105143                let type_ann =
105144                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
105145                RestPat {
105146                    span,
105147                    dot3_token,
105148                    arg,
105149                    type_ann,
105150                }
105151            }
105152        }
105153    }
105154}
105155impl<V: ?Sized + Fold> FoldWith<V> for ReturnStmt {
105156    #[doc = "Calls [Fold`::fold_return_stmt`] with `self`."]
105157    fn fold_with(self, visitor: &mut V) -> Self {
105158        <V as Fold>::fold_return_stmt(visitor, self)
105159    }
105160
105161    fn fold_children_with(self, visitor: &mut V) -> Self {
105162        match self {
105163            ReturnStmt { span, arg } => {
105164                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105165                let arg = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(arg, visitor) };
105166                ReturnStmt { span, arg }
105167            }
105168        }
105169    }
105170}
105171impl<V: ?Sized + Fold> FoldWith<V> for Script {
105172    #[doc = "Calls [Fold`::fold_script`] with `self`."]
105173    fn fold_with(self, visitor: &mut V) -> Self {
105174        <V as Fold>::fold_script(visitor, self)
105175    }
105176
105177    fn fold_children_with(self, visitor: &mut V) -> Self {
105178        match self {
105179            Script {
105180                span,
105181                body,
105182                shebang,
105183            } => {
105184                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105185                let body = { <Vec<Stmt> as FoldWith<V>>::fold_with(body, visitor) };
105186                let shebang =
105187                    { <Option<swc_atoms::Atom> as FoldWith<V>>::fold_with(shebang, visitor) };
105188                Script {
105189                    span,
105190                    body,
105191                    shebang,
105192                }
105193            }
105194        }
105195    }
105196}
105197impl<V: ?Sized + Fold> FoldWith<V> for SeqExpr {
105198    #[doc = "Calls [Fold`::fold_seq_expr`] with `self`."]
105199    fn fold_with(self, visitor: &mut V) -> Self {
105200        <V as Fold>::fold_seq_expr(visitor, self)
105201    }
105202
105203    fn fold_children_with(self, visitor: &mut V) -> Self {
105204        match self {
105205            SeqExpr { span, exprs } => {
105206                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105207                let exprs = { <Vec<Box<Expr>> as FoldWith<V>>::fold_with(exprs, visitor) };
105208                SeqExpr { span, exprs }
105209            }
105210        }
105211    }
105212}
105213impl<V: ?Sized + Fold> FoldWith<V> for SetterProp {
105214    #[doc = "Calls [Fold`::fold_setter_prop`] with `self`."]
105215    fn fold_with(self, visitor: &mut V) -> Self {
105216        <V as Fold>::fold_setter_prop(visitor, self)
105217    }
105218
105219    fn fold_children_with(self, visitor: &mut V) -> Self {
105220        match self {
105221            SetterProp {
105222                span,
105223                key,
105224                this_param,
105225                param,
105226                body,
105227            } => {
105228                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105229                let key = { <PropName as FoldWith<V>>::fold_with(key, visitor) };
105230                let this_param = { <Option<Pat> as FoldWith<V>>::fold_with(this_param, visitor) };
105231                let param = { <Box<Pat> as FoldWith<V>>::fold_with(param, visitor) };
105232                let body = { <Option<BlockStmt> as FoldWith<V>>::fold_with(body, visitor) };
105233                SetterProp {
105234                    span,
105235                    key,
105236                    this_param,
105237                    param,
105238                    body,
105239                }
105240            }
105241        }
105242    }
105243}
105244impl<V: ?Sized + Fold> FoldWith<V> for SimpleAssignTarget {
105245    #[doc = "Calls [Fold`::fold_simple_assign_target`] with `self`."]
105246    fn fold_with(self, visitor: &mut V) -> Self {
105247        <V as Fold>::fold_simple_assign_target(visitor, self)
105248    }
105249
105250    fn fold_children_with(self, visitor: &mut V) -> Self {
105251        match self {
105252            SimpleAssignTarget::Ident { 0: _field_0 } => {
105253                let _field_0 = <BindingIdent as FoldWith<V>>::fold_with(_field_0, visitor);
105254                SimpleAssignTarget::Ident { 0: _field_0 }
105255            }
105256            SimpleAssignTarget::Member { 0: _field_0 } => {
105257                let _field_0 = <MemberExpr as FoldWith<V>>::fold_with(_field_0, visitor);
105258                SimpleAssignTarget::Member { 0: _field_0 }
105259            }
105260            SimpleAssignTarget::SuperProp { 0: _field_0 } => {
105261                let _field_0 = <SuperPropExpr as FoldWith<V>>::fold_with(_field_0, visitor);
105262                SimpleAssignTarget::SuperProp { 0: _field_0 }
105263            }
105264            SimpleAssignTarget::Paren { 0: _field_0 } => {
105265                let _field_0 = <ParenExpr as FoldWith<V>>::fold_with(_field_0, visitor);
105266                SimpleAssignTarget::Paren { 0: _field_0 }
105267            }
105268            SimpleAssignTarget::OptChain { 0: _field_0 } => {
105269                let _field_0 = <OptChainExpr as FoldWith<V>>::fold_with(_field_0, visitor);
105270                SimpleAssignTarget::OptChain { 0: _field_0 }
105271            }
105272            SimpleAssignTarget::TsAs { 0: _field_0 } => {
105273                let _field_0 = <TsAsExpr as FoldWith<V>>::fold_with(_field_0, visitor);
105274                SimpleAssignTarget::TsAs { 0: _field_0 }
105275            }
105276            SimpleAssignTarget::TsSatisfies { 0: _field_0 } => {
105277                let _field_0 = <TsSatisfiesExpr as FoldWith<V>>::fold_with(_field_0, visitor);
105278                SimpleAssignTarget::TsSatisfies { 0: _field_0 }
105279            }
105280            SimpleAssignTarget::TsNonNull { 0: _field_0 } => {
105281                let _field_0 = <TsNonNullExpr as FoldWith<V>>::fold_with(_field_0, visitor);
105282                SimpleAssignTarget::TsNonNull { 0: _field_0 }
105283            }
105284            SimpleAssignTarget::TsTypeAssertion { 0: _field_0 } => {
105285                let _field_0 = <TsTypeAssertion as FoldWith<V>>::fold_with(_field_0, visitor);
105286                SimpleAssignTarget::TsTypeAssertion { 0: _field_0 }
105287            }
105288            SimpleAssignTarget::TsInstantiation { 0: _field_0 } => {
105289                let _field_0 = <TsInstantiation as FoldWith<V>>::fold_with(_field_0, visitor);
105290                SimpleAssignTarget::TsInstantiation { 0: _field_0 }
105291            }
105292            SimpleAssignTarget::Invalid { 0: _field_0 } => {
105293                let _field_0 = <Invalid as FoldWith<V>>::fold_with(_field_0, visitor);
105294                SimpleAssignTarget::Invalid { 0: _field_0 }
105295            }
105296        }
105297    }
105298}
105299impl<V: ?Sized + Fold> FoldWith<V> for SpreadElement {
105300    #[doc = "Calls [Fold`::fold_spread_element`] with `self`."]
105301    fn fold_with(self, visitor: &mut V) -> Self {
105302        <V as Fold>::fold_spread_element(visitor, self)
105303    }
105304
105305    fn fold_children_with(self, visitor: &mut V) -> Self {
105306        match self {
105307            SpreadElement { dot3_token, expr } => {
105308                let dot3_token =
105309                    { <swc_common::Span as FoldWith<V>>::fold_with(dot3_token, visitor) };
105310                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
105311                SpreadElement { dot3_token, expr }
105312            }
105313        }
105314    }
105315}
105316impl<V: ?Sized + Fold> FoldWith<V> for StaticBlock {
105317    #[doc = "Calls [Fold`::fold_static_block`] with `self`."]
105318    fn fold_with(self, visitor: &mut V) -> Self {
105319        <V as Fold>::fold_static_block(visitor, self)
105320    }
105321
105322    fn fold_children_with(self, visitor: &mut V) -> Self {
105323        match self {
105324            StaticBlock { span, body } => {
105325                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105326                let body = { <BlockStmt as FoldWith<V>>::fold_with(body, visitor) };
105327                StaticBlock { span, body }
105328            }
105329        }
105330    }
105331}
105332impl<V: ?Sized + Fold> FoldWith<V> for Stmt {
105333    #[doc = "Calls [Fold`::fold_stmt`] with `self`."]
105334    fn fold_with(self, visitor: &mut V) -> Self {
105335        <V as Fold>::fold_stmt(visitor, self)
105336    }
105337
105338    fn fold_children_with(self, visitor: &mut V) -> Self {
105339        match self {
105340            Stmt::Block { 0: _field_0 } => {
105341                let _field_0 = <BlockStmt as FoldWith<V>>::fold_with(_field_0, visitor);
105342                Stmt::Block { 0: _field_0 }
105343            }
105344            Stmt::Empty { 0: _field_0 } => {
105345                let _field_0 = <EmptyStmt as FoldWith<V>>::fold_with(_field_0, visitor);
105346                Stmt::Empty { 0: _field_0 }
105347            }
105348            Stmt::Debugger { 0: _field_0 } => {
105349                let _field_0 = <DebuggerStmt as FoldWith<V>>::fold_with(_field_0, visitor);
105350                Stmt::Debugger { 0: _field_0 }
105351            }
105352            Stmt::With { 0: _field_0 } => {
105353                let _field_0 = <WithStmt as FoldWith<V>>::fold_with(_field_0, visitor);
105354                Stmt::With { 0: _field_0 }
105355            }
105356            Stmt::Return { 0: _field_0 } => {
105357                let _field_0 = <ReturnStmt as FoldWith<V>>::fold_with(_field_0, visitor);
105358                Stmt::Return { 0: _field_0 }
105359            }
105360            Stmt::Labeled { 0: _field_0 } => {
105361                let _field_0 = <LabeledStmt as FoldWith<V>>::fold_with(_field_0, visitor);
105362                Stmt::Labeled { 0: _field_0 }
105363            }
105364            Stmt::Break { 0: _field_0 } => {
105365                let _field_0 = <BreakStmt as FoldWith<V>>::fold_with(_field_0, visitor);
105366                Stmt::Break { 0: _field_0 }
105367            }
105368            Stmt::Continue { 0: _field_0 } => {
105369                let _field_0 = <ContinueStmt as FoldWith<V>>::fold_with(_field_0, visitor);
105370                Stmt::Continue { 0: _field_0 }
105371            }
105372            Stmt::If { 0: _field_0 } => {
105373                let _field_0 = <IfStmt as FoldWith<V>>::fold_with(_field_0, visitor);
105374                Stmt::If { 0: _field_0 }
105375            }
105376            Stmt::Switch { 0: _field_0 } => {
105377                let _field_0 = <SwitchStmt as FoldWith<V>>::fold_with(_field_0, visitor);
105378                Stmt::Switch { 0: _field_0 }
105379            }
105380            Stmt::Throw { 0: _field_0 } => {
105381                let _field_0 = <ThrowStmt as FoldWith<V>>::fold_with(_field_0, visitor);
105382                Stmt::Throw { 0: _field_0 }
105383            }
105384            Stmt::Try { 0: _field_0 } => {
105385                let _field_0 = <Box<TryStmt> as FoldWith<V>>::fold_with(_field_0, visitor);
105386                Stmt::Try { 0: _field_0 }
105387            }
105388            Stmt::While { 0: _field_0 } => {
105389                let _field_0 = <WhileStmt as FoldWith<V>>::fold_with(_field_0, visitor);
105390                Stmt::While { 0: _field_0 }
105391            }
105392            Stmt::DoWhile { 0: _field_0 } => {
105393                let _field_0 = <DoWhileStmt as FoldWith<V>>::fold_with(_field_0, visitor);
105394                Stmt::DoWhile { 0: _field_0 }
105395            }
105396            Stmt::For { 0: _field_0 } => {
105397                let _field_0 = <ForStmt as FoldWith<V>>::fold_with(_field_0, visitor);
105398                Stmt::For { 0: _field_0 }
105399            }
105400            Stmt::ForIn { 0: _field_0 } => {
105401                let _field_0 = <ForInStmt as FoldWith<V>>::fold_with(_field_0, visitor);
105402                Stmt::ForIn { 0: _field_0 }
105403            }
105404            Stmt::ForOf { 0: _field_0 } => {
105405                let _field_0 = <ForOfStmt as FoldWith<V>>::fold_with(_field_0, visitor);
105406                Stmt::ForOf { 0: _field_0 }
105407            }
105408            Stmt::Decl { 0: _field_0 } => {
105409                let _field_0 = <Decl as FoldWith<V>>::fold_with(_field_0, visitor);
105410                Stmt::Decl { 0: _field_0 }
105411            }
105412            Stmt::Expr { 0: _field_0 } => {
105413                let _field_0 = <ExprStmt as FoldWith<V>>::fold_with(_field_0, visitor);
105414                Stmt::Expr { 0: _field_0 }
105415            }
105416        }
105417    }
105418}
105419impl<V: ?Sized + Fold> FoldWith<V> for Str {
105420    #[doc = "Calls [Fold`::fold_str`] with `self`."]
105421    fn fold_with(self, visitor: &mut V) -> Self {
105422        <V as Fold>::fold_str(visitor, self)
105423    }
105424
105425    fn fold_children_with(self, visitor: &mut V) -> Self {
105426        match self {
105427            Str { span, value, raw } => {
105428                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105429                let value = { <swc_atoms::Atom as FoldWith<V>>::fold_with(value, visitor) };
105430                let raw = { <Option<swc_atoms::Atom> as FoldWith<V>>::fold_with(raw, visitor) };
105431                Str { span, value, raw }
105432            }
105433        }
105434    }
105435}
105436impl<V: ?Sized + Fold> FoldWith<V> for Super {
105437    #[doc = "Calls [Fold`::fold_super`] with `self`."]
105438    fn fold_with(self, visitor: &mut V) -> Self {
105439        <V as Fold>::fold_super(visitor, self)
105440    }
105441
105442    fn fold_children_with(self, visitor: &mut V) -> Self {
105443        match self {
105444            Super { span } => {
105445                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105446                Super { span }
105447            }
105448        }
105449    }
105450}
105451impl<V: ?Sized + Fold> FoldWith<V> for SuperProp {
105452    #[doc = "Calls [Fold`::fold_super_prop`] with `self`."]
105453    fn fold_with(self, visitor: &mut V) -> Self {
105454        <V as Fold>::fold_super_prop(visitor, self)
105455    }
105456
105457    fn fold_children_with(self, visitor: &mut V) -> Self {
105458        match self {
105459            SuperProp::Ident { 0: _field_0 } => {
105460                let _field_0 = <IdentName as FoldWith<V>>::fold_with(_field_0, visitor);
105461                SuperProp::Ident { 0: _field_0 }
105462            }
105463            SuperProp::Computed { 0: _field_0 } => {
105464                let _field_0 = <ComputedPropName as FoldWith<V>>::fold_with(_field_0, visitor);
105465                SuperProp::Computed { 0: _field_0 }
105466            }
105467        }
105468    }
105469}
105470impl<V: ?Sized + Fold> FoldWith<V> for SuperPropExpr {
105471    #[doc = "Calls [Fold`::fold_super_prop_expr`] with `self`."]
105472    fn fold_with(self, visitor: &mut V) -> Self {
105473        <V as Fold>::fold_super_prop_expr(visitor, self)
105474    }
105475
105476    fn fold_children_with(self, visitor: &mut V) -> Self {
105477        match self {
105478            SuperPropExpr { span, obj, prop } => {
105479                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105480                let obj = { <Super as FoldWith<V>>::fold_with(obj, visitor) };
105481                let prop = { <SuperProp as FoldWith<V>>::fold_with(prop, visitor) };
105482                SuperPropExpr { span, obj, prop }
105483            }
105484        }
105485    }
105486}
105487impl<V: ?Sized + Fold> FoldWith<V> for SwitchCase {
105488    #[doc = "Calls [Fold`::fold_switch_case`] with `self`."]
105489    fn fold_with(self, visitor: &mut V) -> Self {
105490        <V as Fold>::fold_switch_case(visitor, self)
105491    }
105492
105493    fn fold_children_with(self, visitor: &mut V) -> Self {
105494        match self {
105495            SwitchCase { span, test, cons } => {
105496                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105497                let test = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(test, visitor) };
105498                let cons = { <Vec<Stmt> as FoldWith<V>>::fold_with(cons, visitor) };
105499                SwitchCase { span, test, cons }
105500            }
105501        }
105502    }
105503}
105504impl<V: ?Sized + Fold> FoldWith<V> for SwitchStmt {
105505    #[doc = "Calls [Fold`::fold_switch_stmt`] with `self`."]
105506    fn fold_with(self, visitor: &mut V) -> Self {
105507        <V as Fold>::fold_switch_stmt(visitor, self)
105508    }
105509
105510    fn fold_children_with(self, visitor: &mut V) -> Self {
105511        match self {
105512            SwitchStmt {
105513                span,
105514                discriminant,
105515                cases,
105516            } => {
105517                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105518                let discriminant = { <Box<Expr> as FoldWith<V>>::fold_with(discriminant, visitor) };
105519                let cases = { <Vec<SwitchCase> as FoldWith<V>>::fold_with(cases, visitor) };
105520                SwitchStmt {
105521                    span,
105522                    discriminant,
105523                    cases,
105524                }
105525            }
105526        }
105527    }
105528}
105529impl<V: ?Sized + Fold> FoldWith<V> for TaggedTpl {
105530    #[doc = "Calls [Fold`::fold_tagged_tpl`] with `self`."]
105531    fn fold_with(self, visitor: &mut V) -> Self {
105532        <V as Fold>::fold_tagged_tpl(visitor, self)
105533    }
105534
105535    fn fold_children_with(self, visitor: &mut V) -> Self {
105536        match self {
105537            TaggedTpl {
105538                span,
105539                ctxt,
105540                tag,
105541                type_params,
105542                tpl,
105543            } => {
105544                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105545                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
105546                let tag = { <Box<Expr> as FoldWith<V>>::fold_with(tag, visitor) };
105547                let type_params = {
105548                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
105549                        type_params,
105550                        visitor,
105551                    )
105552                };
105553                let tpl = { <Box<Tpl> as FoldWith<V>>::fold_with(tpl, visitor) };
105554                TaggedTpl {
105555                    span,
105556                    ctxt,
105557                    tag,
105558                    type_params,
105559                    tpl,
105560                }
105561            }
105562        }
105563    }
105564}
105565impl<V: ?Sized + Fold> FoldWith<V> for ThisExpr {
105566    #[doc = "Calls [Fold`::fold_this_expr`] with `self`."]
105567    fn fold_with(self, visitor: &mut V) -> Self {
105568        <V as Fold>::fold_this_expr(visitor, self)
105569    }
105570
105571    fn fold_children_with(self, visitor: &mut V) -> Self {
105572        match self {
105573            ThisExpr { span } => {
105574                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105575                ThisExpr { span }
105576            }
105577        }
105578    }
105579}
105580impl<V: ?Sized + Fold> FoldWith<V> for ThrowStmt {
105581    #[doc = "Calls [Fold`::fold_throw_stmt`] with `self`."]
105582    fn fold_with(self, visitor: &mut V) -> Self {
105583        <V as Fold>::fold_throw_stmt(visitor, self)
105584    }
105585
105586    fn fold_children_with(self, visitor: &mut V) -> Self {
105587        match self {
105588            ThrowStmt { span, arg } => {
105589                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105590                let arg = { <Box<Expr> as FoldWith<V>>::fold_with(arg, visitor) };
105591                ThrowStmt { span, arg }
105592            }
105593        }
105594    }
105595}
105596impl<V: ?Sized + Fold> FoldWith<V> for Tpl {
105597    #[doc = "Calls [Fold`::fold_tpl`] with `self`."]
105598    fn fold_with(self, visitor: &mut V) -> Self {
105599        <V as Fold>::fold_tpl(visitor, self)
105600    }
105601
105602    fn fold_children_with(self, visitor: &mut V) -> Self {
105603        match self {
105604            Tpl {
105605                span,
105606                exprs,
105607                quasis,
105608            } => {
105609                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105610                let exprs = { <Vec<Box<Expr>> as FoldWith<V>>::fold_with(exprs, visitor) };
105611                let quasis = { <Vec<TplElement> as FoldWith<V>>::fold_with(quasis, visitor) };
105612                Tpl {
105613                    span,
105614                    exprs,
105615                    quasis,
105616                }
105617            }
105618        }
105619    }
105620}
105621impl<V: ?Sized + Fold> FoldWith<V> for TplElement {
105622    #[doc = "Calls [Fold`::fold_tpl_element`] with `self`."]
105623    fn fold_with(self, visitor: &mut V) -> Self {
105624        <V as Fold>::fold_tpl_element(visitor, self)
105625    }
105626
105627    fn fold_children_with(self, visitor: &mut V) -> Self {
105628        match self {
105629            TplElement {
105630                span,
105631                tail,
105632                cooked,
105633                raw,
105634            } => {
105635                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105636                let cooked =
105637                    { <Option<swc_atoms::Atom> as FoldWith<V>>::fold_with(cooked, visitor) };
105638                let raw = { <swc_atoms::Atom as FoldWith<V>>::fold_with(raw, visitor) };
105639                TplElement {
105640                    span,
105641                    tail,
105642                    cooked,
105643                    raw,
105644                }
105645            }
105646        }
105647    }
105648}
105649impl<V: ?Sized + Fold> FoldWith<V> for TruePlusMinus {
105650    #[doc = "Calls [Fold`::fold_true_plus_minus`] with `self`."]
105651    fn fold_with(self, visitor: &mut V) -> Self {
105652        <V as Fold>::fold_true_plus_minus(visitor, self)
105653    }
105654
105655    fn fold_children_with(self, visitor: &mut V) -> Self {
105656        match self {
105657            TruePlusMinus::True => TruePlusMinus::True,
105658            TruePlusMinus::Plus => TruePlusMinus::Plus,
105659            TruePlusMinus::Minus => TruePlusMinus::Minus,
105660        }
105661    }
105662}
105663impl<V: ?Sized + Fold> FoldWith<V> for TryStmt {
105664    #[doc = "Calls [Fold`::fold_try_stmt`] with `self`."]
105665    fn fold_with(self, visitor: &mut V) -> Self {
105666        <V as Fold>::fold_try_stmt(visitor, self)
105667    }
105668
105669    fn fold_children_with(self, visitor: &mut V) -> Self {
105670        match self {
105671            TryStmt {
105672                span,
105673                block,
105674                handler,
105675                finalizer,
105676            } => {
105677                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105678                let block = { <BlockStmt as FoldWith<V>>::fold_with(block, visitor) };
105679                let handler = { <Option<CatchClause> as FoldWith<V>>::fold_with(handler, visitor) };
105680                let finalizer =
105681                    { <Option<BlockStmt> as FoldWith<V>>::fold_with(finalizer, visitor) };
105682                TryStmt {
105683                    span,
105684                    block,
105685                    handler,
105686                    finalizer,
105687                }
105688            }
105689        }
105690    }
105691}
105692impl<V: ?Sized + Fold> FoldWith<V> for TsArrayType {
105693    #[doc = "Calls [Fold`::fold_ts_array_type`] with `self`."]
105694    fn fold_with(self, visitor: &mut V) -> Self {
105695        <V as Fold>::fold_ts_array_type(visitor, self)
105696    }
105697
105698    fn fold_children_with(self, visitor: &mut V) -> Self {
105699        match self {
105700            TsArrayType { span, elem_type } => {
105701                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105702                let elem_type = { <Box<TsType> as FoldWith<V>>::fold_with(elem_type, visitor) };
105703                TsArrayType { span, elem_type }
105704            }
105705        }
105706    }
105707}
105708impl<V: ?Sized + Fold> FoldWith<V> for TsAsExpr {
105709    #[doc = "Calls [Fold`::fold_ts_as_expr`] with `self`."]
105710    fn fold_with(self, visitor: &mut V) -> Self {
105711        <V as Fold>::fold_ts_as_expr(visitor, self)
105712    }
105713
105714    fn fold_children_with(self, visitor: &mut V) -> Self {
105715        match self {
105716            TsAsExpr {
105717                span,
105718                expr,
105719                type_ann,
105720            } => {
105721                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105722                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
105723                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
105724                TsAsExpr {
105725                    span,
105726                    expr,
105727                    type_ann,
105728                }
105729            }
105730        }
105731    }
105732}
105733impl<V: ?Sized + Fold> FoldWith<V> for TsCallSignatureDecl {
105734    #[doc = "Calls [Fold`::fold_ts_call_signature_decl`] with `self`."]
105735    fn fold_with(self, visitor: &mut V) -> Self {
105736        <V as Fold>::fold_ts_call_signature_decl(visitor, self)
105737    }
105738
105739    fn fold_children_with(self, visitor: &mut V) -> Self {
105740        match self {
105741            TsCallSignatureDecl {
105742                span,
105743                params,
105744                type_ann,
105745                type_params,
105746            } => {
105747                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105748                let params = { <Vec<TsFnParam> as FoldWith<V>>::fold_with(params, visitor) };
105749                let type_ann =
105750                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
105751                let type_params = {
105752                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
105753                };
105754                TsCallSignatureDecl {
105755                    span,
105756                    params,
105757                    type_ann,
105758                    type_params,
105759                }
105760            }
105761        }
105762    }
105763}
105764impl<V: ?Sized + Fold> FoldWith<V> for TsConditionalType {
105765    #[doc = "Calls [Fold`::fold_ts_conditional_type`] with `self`."]
105766    fn fold_with(self, visitor: &mut V) -> Self {
105767        <V as Fold>::fold_ts_conditional_type(visitor, self)
105768    }
105769
105770    fn fold_children_with(self, visitor: &mut V) -> Self {
105771        match self {
105772            TsConditionalType {
105773                span,
105774                check_type,
105775                extends_type,
105776                true_type,
105777                false_type,
105778            } => {
105779                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105780                let check_type = { <Box<TsType> as FoldWith<V>>::fold_with(check_type, visitor) };
105781                let extends_type =
105782                    { <Box<TsType> as FoldWith<V>>::fold_with(extends_type, visitor) };
105783                let true_type = { <Box<TsType> as FoldWith<V>>::fold_with(true_type, visitor) };
105784                let false_type = { <Box<TsType> as FoldWith<V>>::fold_with(false_type, visitor) };
105785                TsConditionalType {
105786                    span,
105787                    check_type,
105788                    extends_type,
105789                    true_type,
105790                    false_type,
105791                }
105792            }
105793        }
105794    }
105795}
105796impl<V: ?Sized + Fold> FoldWith<V> for TsConstAssertion {
105797    #[doc = "Calls [Fold`::fold_ts_const_assertion`] with `self`."]
105798    fn fold_with(self, visitor: &mut V) -> Self {
105799        <V as Fold>::fold_ts_const_assertion(visitor, self)
105800    }
105801
105802    fn fold_children_with(self, visitor: &mut V) -> Self {
105803        match self {
105804            TsConstAssertion { span, expr } => {
105805                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105806                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
105807                TsConstAssertion { span, expr }
105808            }
105809        }
105810    }
105811}
105812impl<V: ?Sized + Fold> FoldWith<V> for TsConstructSignatureDecl {
105813    #[doc = "Calls [Fold`::fold_ts_construct_signature_decl`] with `self`."]
105814    fn fold_with(self, visitor: &mut V) -> Self {
105815        <V as Fold>::fold_ts_construct_signature_decl(visitor, self)
105816    }
105817
105818    fn fold_children_with(self, visitor: &mut V) -> Self {
105819        match self {
105820            TsConstructSignatureDecl {
105821                span,
105822                params,
105823                type_ann,
105824                type_params,
105825            } => {
105826                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105827                let params = { <Vec<TsFnParam> as FoldWith<V>>::fold_with(params, visitor) };
105828                let type_ann =
105829                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
105830                let type_params = {
105831                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
105832                };
105833                TsConstructSignatureDecl {
105834                    span,
105835                    params,
105836                    type_ann,
105837                    type_params,
105838                }
105839            }
105840        }
105841    }
105842}
105843impl<V: ?Sized + Fold> FoldWith<V> for TsConstructorType {
105844    #[doc = "Calls [Fold`::fold_ts_constructor_type`] with `self`."]
105845    fn fold_with(self, visitor: &mut V) -> Self {
105846        <V as Fold>::fold_ts_constructor_type(visitor, self)
105847    }
105848
105849    fn fold_children_with(self, visitor: &mut V) -> Self {
105850        match self {
105851            TsConstructorType {
105852                span,
105853                params,
105854                type_params,
105855                type_ann,
105856                is_abstract,
105857            } => {
105858                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105859                let params = { <Vec<TsFnParam> as FoldWith<V>>::fold_with(params, visitor) };
105860                let type_params = {
105861                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
105862                };
105863                let type_ann = { <Box<TsTypeAnn> as FoldWith<V>>::fold_with(type_ann, visitor) };
105864                TsConstructorType {
105865                    span,
105866                    params,
105867                    type_params,
105868                    type_ann,
105869                    is_abstract,
105870                }
105871            }
105872        }
105873    }
105874}
105875impl<V: ?Sized + Fold> FoldWith<V> for TsEntityName {
105876    #[doc = "Calls [Fold`::fold_ts_entity_name`] with `self`."]
105877    fn fold_with(self, visitor: &mut V) -> Self {
105878        <V as Fold>::fold_ts_entity_name(visitor, self)
105879    }
105880
105881    fn fold_children_with(self, visitor: &mut V) -> Self {
105882        match self {
105883            TsEntityName::TsQualifiedName { 0: _field_0 } => {
105884                let _field_0 = <Box<TsQualifiedName> as FoldWith<V>>::fold_with(_field_0, visitor);
105885                TsEntityName::TsQualifiedName { 0: _field_0 }
105886            }
105887            TsEntityName::Ident { 0: _field_0 } => {
105888                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
105889                TsEntityName::Ident { 0: _field_0 }
105890            }
105891        }
105892    }
105893}
105894impl<V: ?Sized + Fold> FoldWith<V> for TsEnumDecl {
105895    #[doc = "Calls [Fold`::fold_ts_enum_decl`] with `self`."]
105896    fn fold_with(self, visitor: &mut V) -> Self {
105897        <V as Fold>::fold_ts_enum_decl(visitor, self)
105898    }
105899
105900    fn fold_children_with(self, visitor: &mut V) -> Self {
105901        match self {
105902            TsEnumDecl {
105903                span,
105904                declare,
105905                is_const,
105906                id,
105907                members,
105908            } => {
105909                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105910                let id = { <Ident as FoldWith<V>>::fold_with(id, visitor) };
105911                let members = { <Vec<TsEnumMember> as FoldWith<V>>::fold_with(members, visitor) };
105912                TsEnumDecl {
105913                    span,
105914                    declare,
105915                    is_const,
105916                    id,
105917                    members,
105918                }
105919            }
105920        }
105921    }
105922}
105923impl<V: ?Sized + Fold> FoldWith<V> for TsEnumMember {
105924    #[doc = "Calls [Fold`::fold_ts_enum_member`] with `self`."]
105925    fn fold_with(self, visitor: &mut V) -> Self {
105926        <V as Fold>::fold_ts_enum_member(visitor, self)
105927    }
105928
105929    fn fold_children_with(self, visitor: &mut V) -> Self {
105930        match self {
105931            TsEnumMember { span, id, init } => {
105932                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105933                let id = { <TsEnumMemberId as FoldWith<V>>::fold_with(id, visitor) };
105934                let init = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(init, visitor) };
105935                TsEnumMember { span, id, init }
105936            }
105937        }
105938    }
105939}
105940impl<V: ?Sized + Fold> FoldWith<V> for TsEnumMemberId {
105941    #[doc = "Calls [Fold`::fold_ts_enum_member_id`] with `self`."]
105942    fn fold_with(self, visitor: &mut V) -> Self {
105943        <V as Fold>::fold_ts_enum_member_id(visitor, self)
105944    }
105945
105946    fn fold_children_with(self, visitor: &mut V) -> Self {
105947        match self {
105948            TsEnumMemberId::Ident { 0: _field_0 } => {
105949                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
105950                TsEnumMemberId::Ident { 0: _field_0 }
105951            }
105952            TsEnumMemberId::Str { 0: _field_0 } => {
105953                let _field_0 = <Str as FoldWith<V>>::fold_with(_field_0, visitor);
105954                TsEnumMemberId::Str { 0: _field_0 }
105955            }
105956        }
105957    }
105958}
105959impl<V: ?Sized + Fold> FoldWith<V> for TsExportAssignment {
105960    #[doc = "Calls [Fold`::fold_ts_export_assignment`] with `self`."]
105961    fn fold_with(self, visitor: &mut V) -> Self {
105962        <V as Fold>::fold_ts_export_assignment(visitor, self)
105963    }
105964
105965    fn fold_children_with(self, visitor: &mut V) -> Self {
105966        match self {
105967            TsExportAssignment { span, expr } => {
105968                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105969                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
105970                TsExportAssignment { span, expr }
105971            }
105972        }
105973    }
105974}
105975impl<V: ?Sized + Fold> FoldWith<V> for TsExprWithTypeArgs {
105976    #[doc = "Calls [Fold`::fold_ts_expr_with_type_args`] with `self`."]
105977    fn fold_with(self, visitor: &mut V) -> Self {
105978        <V as Fold>::fold_ts_expr_with_type_args(visitor, self)
105979    }
105980
105981    fn fold_children_with(self, visitor: &mut V) -> Self {
105982        match self {
105983            TsExprWithTypeArgs {
105984                span,
105985                expr,
105986                type_args,
105987            } => {
105988                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105989                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
105990                let type_args = {
105991                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
105992                        type_args, visitor,
105993                    )
105994                };
105995                TsExprWithTypeArgs {
105996                    span,
105997                    expr,
105998                    type_args,
105999                }
106000            }
106001        }
106002    }
106003}
106004impl<V: ?Sized + Fold> FoldWith<V> for TsExternalModuleRef {
106005    #[doc = "Calls [Fold`::fold_ts_external_module_ref`] with `self`."]
106006    fn fold_with(self, visitor: &mut V) -> Self {
106007        <V as Fold>::fold_ts_external_module_ref(visitor, self)
106008    }
106009
106010    fn fold_children_with(self, visitor: &mut V) -> Self {
106011        match self {
106012            TsExternalModuleRef { span, expr } => {
106013                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106014                let expr = { <Str as FoldWith<V>>::fold_with(expr, visitor) };
106015                TsExternalModuleRef { span, expr }
106016            }
106017        }
106018    }
106019}
106020impl<V: ?Sized + Fold> FoldWith<V> for TsFnOrConstructorType {
106021    #[doc = "Calls [Fold`::fold_ts_fn_or_constructor_type`] with `self`."]
106022    fn fold_with(self, visitor: &mut V) -> Self {
106023        <V as Fold>::fold_ts_fn_or_constructor_type(visitor, self)
106024    }
106025
106026    fn fold_children_with(self, visitor: &mut V) -> Self {
106027        match self {
106028            TsFnOrConstructorType::TsFnType { 0: _field_0 } => {
106029                let _field_0 = <TsFnType as FoldWith<V>>::fold_with(_field_0, visitor);
106030                TsFnOrConstructorType::TsFnType { 0: _field_0 }
106031            }
106032            TsFnOrConstructorType::TsConstructorType { 0: _field_0 } => {
106033                let _field_0 = <TsConstructorType as FoldWith<V>>::fold_with(_field_0, visitor);
106034                TsFnOrConstructorType::TsConstructorType { 0: _field_0 }
106035            }
106036        }
106037    }
106038}
106039impl<V: ?Sized + Fold> FoldWith<V> for TsFnParam {
106040    #[doc = "Calls [Fold`::fold_ts_fn_param`] with `self`."]
106041    fn fold_with(self, visitor: &mut V) -> Self {
106042        <V as Fold>::fold_ts_fn_param(visitor, self)
106043    }
106044
106045    fn fold_children_with(self, visitor: &mut V) -> Self {
106046        match self {
106047            TsFnParam::Ident { 0: _field_0 } => {
106048                let _field_0 = <BindingIdent as FoldWith<V>>::fold_with(_field_0, visitor);
106049                TsFnParam::Ident { 0: _field_0 }
106050            }
106051            TsFnParam::Array { 0: _field_0 } => {
106052                let _field_0 = <ArrayPat as FoldWith<V>>::fold_with(_field_0, visitor);
106053                TsFnParam::Array { 0: _field_0 }
106054            }
106055            TsFnParam::Rest { 0: _field_0 } => {
106056                let _field_0 = <RestPat as FoldWith<V>>::fold_with(_field_0, visitor);
106057                TsFnParam::Rest { 0: _field_0 }
106058            }
106059            TsFnParam::Object { 0: _field_0 } => {
106060                let _field_0 = <ObjectPat as FoldWith<V>>::fold_with(_field_0, visitor);
106061                TsFnParam::Object { 0: _field_0 }
106062            }
106063        }
106064    }
106065}
106066impl<V: ?Sized + Fold> FoldWith<V> for TsFnType {
106067    #[doc = "Calls [Fold`::fold_ts_fn_type`] with `self`."]
106068    fn fold_with(self, visitor: &mut V) -> Self {
106069        <V as Fold>::fold_ts_fn_type(visitor, self)
106070    }
106071
106072    fn fold_children_with(self, visitor: &mut V) -> Self {
106073        match self {
106074            TsFnType {
106075                span,
106076                params,
106077                type_params,
106078                type_ann,
106079            } => {
106080                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106081                let params = { <Vec<TsFnParam> as FoldWith<V>>::fold_with(params, visitor) };
106082                let type_params = {
106083                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
106084                };
106085                let type_ann = { <Box<TsTypeAnn> as FoldWith<V>>::fold_with(type_ann, visitor) };
106086                TsFnType {
106087                    span,
106088                    params,
106089                    type_params,
106090                    type_ann,
106091                }
106092            }
106093        }
106094    }
106095}
106096impl<V: ?Sized + Fold> FoldWith<V> for TsGetterSignature {
106097    #[doc = "Calls [Fold`::fold_ts_getter_signature`] with `self`."]
106098    fn fold_with(self, visitor: &mut V) -> Self {
106099        <V as Fold>::fold_ts_getter_signature(visitor, self)
106100    }
106101
106102    fn fold_children_with(self, visitor: &mut V) -> Self {
106103        match self {
106104            TsGetterSignature {
106105                span,
106106                key,
106107                computed,
106108                type_ann,
106109            } => {
106110                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106111                let key = { <Box<Expr> as FoldWith<V>>::fold_with(key, visitor) };
106112                let type_ann =
106113                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
106114                TsGetterSignature {
106115                    span,
106116                    key,
106117                    computed,
106118                    type_ann,
106119                }
106120            }
106121        }
106122    }
106123}
106124impl<V: ?Sized + Fold> FoldWith<V> for TsImportCallOptions {
106125    #[doc = "Calls [Fold`::fold_ts_import_call_options`] with `self`."]
106126    fn fold_with(self, visitor: &mut V) -> Self {
106127        <V as Fold>::fold_ts_import_call_options(visitor, self)
106128    }
106129
106130    fn fold_children_with(self, visitor: &mut V) -> Self {
106131        match self {
106132            TsImportCallOptions { span, with } => {
106133                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106134                let with = { <Box<ObjectLit> as FoldWith<V>>::fold_with(with, visitor) };
106135                TsImportCallOptions { span, with }
106136            }
106137        }
106138    }
106139}
106140impl<V: ?Sized + Fold> FoldWith<V> for TsImportEqualsDecl {
106141    #[doc = "Calls [Fold`::fold_ts_import_equals_decl`] with `self`."]
106142    fn fold_with(self, visitor: &mut V) -> Self {
106143        <V as Fold>::fold_ts_import_equals_decl(visitor, self)
106144    }
106145
106146    fn fold_children_with(self, visitor: &mut V) -> Self {
106147        match self {
106148            TsImportEqualsDecl {
106149                span,
106150                is_export,
106151                is_type_only,
106152                id,
106153                module_ref,
106154            } => {
106155                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106156                let id = { <Ident as FoldWith<V>>::fold_with(id, visitor) };
106157                let module_ref = { <TsModuleRef as FoldWith<V>>::fold_with(module_ref, visitor) };
106158                TsImportEqualsDecl {
106159                    span,
106160                    is_export,
106161                    is_type_only,
106162                    id,
106163                    module_ref,
106164                }
106165            }
106166        }
106167    }
106168}
106169impl<V: ?Sized + Fold> FoldWith<V> for TsImportType {
106170    #[doc = "Calls [Fold`::fold_ts_import_type`] with `self`."]
106171    fn fold_with(self, visitor: &mut V) -> Self {
106172        <V as Fold>::fold_ts_import_type(visitor, self)
106173    }
106174
106175    fn fold_children_with(self, visitor: &mut V) -> Self {
106176        match self {
106177            TsImportType {
106178                span,
106179                arg,
106180                qualifier,
106181                type_args,
106182                attributes,
106183            } => {
106184                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106185                let arg = { <Str as FoldWith<V>>::fold_with(arg, visitor) };
106186                let qualifier =
106187                    { <Option<TsEntityName> as FoldWith<V>>::fold_with(qualifier, visitor) };
106188                let type_args = {
106189                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
106190                        type_args, visitor,
106191                    )
106192                };
106193                let attributes = {
106194                    <Option<TsImportCallOptions> as FoldWith<V>>::fold_with(attributes, visitor)
106195                };
106196                TsImportType {
106197                    span,
106198                    arg,
106199                    qualifier,
106200                    type_args,
106201                    attributes,
106202                }
106203            }
106204        }
106205    }
106206}
106207impl<V: ?Sized + Fold> FoldWith<V> for TsIndexSignature {
106208    #[doc = "Calls [Fold`::fold_ts_index_signature`] with `self`."]
106209    fn fold_with(self, visitor: &mut V) -> Self {
106210        <V as Fold>::fold_ts_index_signature(visitor, self)
106211    }
106212
106213    fn fold_children_with(self, visitor: &mut V) -> Self {
106214        match self {
106215            TsIndexSignature {
106216                params,
106217                type_ann,
106218                readonly,
106219                is_static,
106220                span,
106221            } => {
106222                let params = { <Vec<TsFnParam> as FoldWith<V>>::fold_with(params, visitor) };
106223                let type_ann =
106224                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
106225                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106226                TsIndexSignature {
106227                    params,
106228                    type_ann,
106229                    readonly,
106230                    is_static,
106231                    span,
106232                }
106233            }
106234        }
106235    }
106236}
106237impl<V: ?Sized + Fold> FoldWith<V> for TsIndexedAccessType {
106238    #[doc = "Calls [Fold`::fold_ts_indexed_access_type`] with `self`."]
106239    fn fold_with(self, visitor: &mut V) -> Self {
106240        <V as Fold>::fold_ts_indexed_access_type(visitor, self)
106241    }
106242
106243    fn fold_children_with(self, visitor: &mut V) -> Self {
106244        match self {
106245            TsIndexedAccessType {
106246                span,
106247                readonly,
106248                obj_type,
106249                index_type,
106250            } => {
106251                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106252                let obj_type = { <Box<TsType> as FoldWith<V>>::fold_with(obj_type, visitor) };
106253                let index_type = { <Box<TsType> as FoldWith<V>>::fold_with(index_type, visitor) };
106254                TsIndexedAccessType {
106255                    span,
106256                    readonly,
106257                    obj_type,
106258                    index_type,
106259                }
106260            }
106261        }
106262    }
106263}
106264impl<V: ?Sized + Fold> FoldWith<V> for TsInferType {
106265    #[doc = "Calls [Fold`::fold_ts_infer_type`] with `self`."]
106266    fn fold_with(self, visitor: &mut V) -> Self {
106267        <V as Fold>::fold_ts_infer_type(visitor, self)
106268    }
106269
106270    fn fold_children_with(self, visitor: &mut V) -> Self {
106271        match self {
106272            TsInferType { span, type_param } => {
106273                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106274                let type_param = { <TsTypeParam as FoldWith<V>>::fold_with(type_param, visitor) };
106275                TsInferType { span, type_param }
106276            }
106277        }
106278    }
106279}
106280impl<V: ?Sized + Fold> FoldWith<V> for TsInstantiation {
106281    #[doc = "Calls [Fold`::fold_ts_instantiation`] with `self`."]
106282    fn fold_with(self, visitor: &mut V) -> Self {
106283        <V as Fold>::fold_ts_instantiation(visitor, self)
106284    }
106285
106286    fn fold_children_with(self, visitor: &mut V) -> Self {
106287        match self {
106288            TsInstantiation {
106289                span,
106290                expr,
106291                type_args,
106292            } => {
106293                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106294                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
106295                let type_args = {
106296                    <Box<TsTypeParamInstantiation> as FoldWith<V>>::fold_with(type_args, visitor)
106297                };
106298                TsInstantiation {
106299                    span,
106300                    expr,
106301                    type_args,
106302                }
106303            }
106304        }
106305    }
106306}
106307impl<V: ?Sized + Fold> FoldWith<V> for TsInterfaceBody {
106308    #[doc = "Calls [Fold`::fold_ts_interface_body`] with `self`."]
106309    fn fold_with(self, visitor: &mut V) -> Self {
106310        <V as Fold>::fold_ts_interface_body(visitor, self)
106311    }
106312
106313    fn fold_children_with(self, visitor: &mut V) -> Self {
106314        match self {
106315            TsInterfaceBody { span, body } => {
106316                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106317                let body = { <Vec<TsTypeElement> as FoldWith<V>>::fold_with(body, visitor) };
106318                TsInterfaceBody { span, body }
106319            }
106320        }
106321    }
106322}
106323impl<V: ?Sized + Fold> FoldWith<V> for TsInterfaceDecl {
106324    #[doc = "Calls [Fold`::fold_ts_interface_decl`] with `self`."]
106325    fn fold_with(self, visitor: &mut V) -> Self {
106326        <V as Fold>::fold_ts_interface_decl(visitor, self)
106327    }
106328
106329    fn fold_children_with(self, visitor: &mut V) -> Self {
106330        match self {
106331            TsInterfaceDecl {
106332                span,
106333                id,
106334                declare,
106335                type_params,
106336                extends,
106337                body,
106338            } => {
106339                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106340                let id = { <Ident as FoldWith<V>>::fold_with(id, visitor) };
106341                let type_params = {
106342                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
106343                };
106344                let extends =
106345                    { <Vec<TsExprWithTypeArgs> as FoldWith<V>>::fold_with(extends, visitor) };
106346                let body = { <TsInterfaceBody as FoldWith<V>>::fold_with(body, visitor) };
106347                TsInterfaceDecl {
106348                    span,
106349                    id,
106350                    declare,
106351                    type_params,
106352                    extends,
106353                    body,
106354                }
106355            }
106356        }
106357    }
106358}
106359impl<V: ?Sized + Fold> FoldWith<V> for TsIntersectionType {
106360    #[doc = "Calls [Fold`::fold_ts_intersection_type`] with `self`."]
106361    fn fold_with(self, visitor: &mut V) -> Self {
106362        <V as Fold>::fold_ts_intersection_type(visitor, self)
106363    }
106364
106365    fn fold_children_with(self, visitor: &mut V) -> Self {
106366        match self {
106367            TsIntersectionType { span, types } => {
106368                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106369                let types = { <Vec<Box<TsType>> as FoldWith<V>>::fold_with(types, visitor) };
106370                TsIntersectionType { span, types }
106371            }
106372        }
106373    }
106374}
106375impl<V: ?Sized + Fold> FoldWith<V> for TsKeywordType {
106376    #[doc = "Calls [Fold`::fold_ts_keyword_type`] with `self`."]
106377    fn fold_with(self, visitor: &mut V) -> Self {
106378        <V as Fold>::fold_ts_keyword_type(visitor, self)
106379    }
106380
106381    fn fold_children_with(self, visitor: &mut V) -> Self {
106382        match self {
106383            TsKeywordType { span, kind } => {
106384                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106385                let kind = { <TsKeywordTypeKind as FoldWith<V>>::fold_with(kind, visitor) };
106386                TsKeywordType { span, kind }
106387            }
106388        }
106389    }
106390}
106391impl<V: ?Sized + Fold> FoldWith<V> for TsKeywordTypeKind {
106392    #[doc = "Calls [Fold`::fold_ts_keyword_type_kind`] with `self`."]
106393    fn fold_with(self, visitor: &mut V) -> Self {
106394        <V as Fold>::fold_ts_keyword_type_kind(visitor, self)
106395    }
106396
106397    fn fold_children_with(self, visitor: &mut V) -> Self {
106398        match self {
106399            TsKeywordTypeKind::TsAnyKeyword => TsKeywordTypeKind::TsAnyKeyword,
106400            TsKeywordTypeKind::TsUnknownKeyword => TsKeywordTypeKind::TsUnknownKeyword,
106401            TsKeywordTypeKind::TsNumberKeyword => TsKeywordTypeKind::TsNumberKeyword,
106402            TsKeywordTypeKind::TsObjectKeyword => TsKeywordTypeKind::TsObjectKeyword,
106403            TsKeywordTypeKind::TsBooleanKeyword => TsKeywordTypeKind::TsBooleanKeyword,
106404            TsKeywordTypeKind::TsBigIntKeyword => TsKeywordTypeKind::TsBigIntKeyword,
106405            TsKeywordTypeKind::TsStringKeyword => TsKeywordTypeKind::TsStringKeyword,
106406            TsKeywordTypeKind::TsSymbolKeyword => TsKeywordTypeKind::TsSymbolKeyword,
106407            TsKeywordTypeKind::TsVoidKeyword => TsKeywordTypeKind::TsVoidKeyword,
106408            TsKeywordTypeKind::TsUndefinedKeyword => TsKeywordTypeKind::TsUndefinedKeyword,
106409            TsKeywordTypeKind::TsNullKeyword => TsKeywordTypeKind::TsNullKeyword,
106410            TsKeywordTypeKind::TsNeverKeyword => TsKeywordTypeKind::TsNeverKeyword,
106411            TsKeywordTypeKind::TsIntrinsicKeyword => TsKeywordTypeKind::TsIntrinsicKeyword,
106412        }
106413    }
106414}
106415impl<V: ?Sized + Fold> FoldWith<V> for TsLit {
106416    #[doc = "Calls [Fold`::fold_ts_lit`] with `self`."]
106417    fn fold_with(self, visitor: &mut V) -> Self {
106418        <V as Fold>::fold_ts_lit(visitor, self)
106419    }
106420
106421    fn fold_children_with(self, visitor: &mut V) -> Self {
106422        match self {
106423            TsLit::Number { 0: _field_0 } => {
106424                let _field_0 = <Number as FoldWith<V>>::fold_with(_field_0, visitor);
106425                TsLit::Number { 0: _field_0 }
106426            }
106427            TsLit::Str { 0: _field_0 } => {
106428                let _field_0 = <Str as FoldWith<V>>::fold_with(_field_0, visitor);
106429                TsLit::Str { 0: _field_0 }
106430            }
106431            TsLit::Bool { 0: _field_0 } => {
106432                let _field_0 = <Bool as FoldWith<V>>::fold_with(_field_0, visitor);
106433                TsLit::Bool { 0: _field_0 }
106434            }
106435            TsLit::BigInt { 0: _field_0 } => {
106436                let _field_0 = <BigInt as FoldWith<V>>::fold_with(_field_0, visitor);
106437                TsLit::BigInt { 0: _field_0 }
106438            }
106439            TsLit::Tpl { 0: _field_0 } => {
106440                let _field_0 = <TsTplLitType as FoldWith<V>>::fold_with(_field_0, visitor);
106441                TsLit::Tpl { 0: _field_0 }
106442            }
106443        }
106444    }
106445}
106446impl<V: ?Sized + Fold> FoldWith<V> for TsLitType {
106447    #[doc = "Calls [Fold`::fold_ts_lit_type`] with `self`."]
106448    fn fold_with(self, visitor: &mut V) -> Self {
106449        <V as Fold>::fold_ts_lit_type(visitor, self)
106450    }
106451
106452    fn fold_children_with(self, visitor: &mut V) -> Self {
106453        match self {
106454            TsLitType { span, lit } => {
106455                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106456                let lit = { <TsLit as FoldWith<V>>::fold_with(lit, visitor) };
106457                TsLitType { span, lit }
106458            }
106459        }
106460    }
106461}
106462impl<V: ?Sized + Fold> FoldWith<V> for TsMappedType {
106463    #[doc = "Calls [Fold`::fold_ts_mapped_type`] with `self`."]
106464    fn fold_with(self, visitor: &mut V) -> Self {
106465        <V as Fold>::fold_ts_mapped_type(visitor, self)
106466    }
106467
106468    fn fold_children_with(self, visitor: &mut V) -> Self {
106469        match self {
106470            TsMappedType {
106471                span,
106472                readonly,
106473                type_param,
106474                name_type,
106475                optional,
106476                type_ann,
106477            } => {
106478                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106479                let readonly =
106480                    { <Option<TruePlusMinus> as FoldWith<V>>::fold_with(readonly, visitor) };
106481                let type_param = { <TsTypeParam as FoldWith<V>>::fold_with(type_param, visitor) };
106482                let name_type =
106483                    { <Option<Box<TsType>> as FoldWith<V>>::fold_with(name_type, visitor) };
106484                let optional =
106485                    { <Option<TruePlusMinus> as FoldWith<V>>::fold_with(optional, visitor) };
106486                let type_ann =
106487                    { <Option<Box<TsType>> as FoldWith<V>>::fold_with(type_ann, visitor) };
106488                TsMappedType {
106489                    span,
106490                    readonly,
106491                    type_param,
106492                    name_type,
106493                    optional,
106494                    type_ann,
106495                }
106496            }
106497        }
106498    }
106499}
106500impl<V: ?Sized + Fold> FoldWith<V> for TsMethodSignature {
106501    #[doc = "Calls [Fold`::fold_ts_method_signature`] with `self`."]
106502    fn fold_with(self, visitor: &mut V) -> Self {
106503        <V as Fold>::fold_ts_method_signature(visitor, self)
106504    }
106505
106506    fn fold_children_with(self, visitor: &mut V) -> Self {
106507        match self {
106508            TsMethodSignature {
106509                span,
106510                key,
106511                computed,
106512                optional,
106513                params,
106514                type_ann,
106515                type_params,
106516            } => {
106517                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106518                let key = { <Box<Expr> as FoldWith<V>>::fold_with(key, visitor) };
106519                let params = { <Vec<TsFnParam> as FoldWith<V>>::fold_with(params, visitor) };
106520                let type_ann =
106521                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
106522                let type_params = {
106523                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
106524                };
106525                TsMethodSignature {
106526                    span,
106527                    key,
106528                    computed,
106529                    optional,
106530                    params,
106531                    type_ann,
106532                    type_params,
106533                }
106534            }
106535        }
106536    }
106537}
106538impl<V: ?Sized + Fold> FoldWith<V> for TsModuleBlock {
106539    #[doc = "Calls [Fold`::fold_ts_module_block`] with `self`."]
106540    fn fold_with(self, visitor: &mut V) -> Self {
106541        <V as Fold>::fold_ts_module_block(visitor, self)
106542    }
106543
106544    fn fold_children_with(self, visitor: &mut V) -> Self {
106545        match self {
106546            TsModuleBlock { span, body } => {
106547                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106548                let body = { <Vec<ModuleItem> as FoldWith<V>>::fold_with(body, visitor) };
106549                TsModuleBlock { span, body }
106550            }
106551        }
106552    }
106553}
106554impl<V: ?Sized + Fold> FoldWith<V> for TsModuleDecl {
106555    #[doc = "Calls [Fold`::fold_ts_module_decl`] with `self`."]
106556    fn fold_with(self, visitor: &mut V) -> Self {
106557        <V as Fold>::fold_ts_module_decl(visitor, self)
106558    }
106559
106560    fn fold_children_with(self, visitor: &mut V) -> Self {
106561        match self {
106562            TsModuleDecl {
106563                span,
106564                declare,
106565                global,
106566                namespace,
106567                id,
106568                body,
106569            } => {
106570                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106571                let id = { <TsModuleName as FoldWith<V>>::fold_with(id, visitor) };
106572                let body = { <Option<TsNamespaceBody> as FoldWith<V>>::fold_with(body, visitor) };
106573                TsModuleDecl {
106574                    span,
106575                    declare,
106576                    global,
106577                    namespace,
106578                    id,
106579                    body,
106580                }
106581            }
106582        }
106583    }
106584}
106585impl<V: ?Sized + Fold> FoldWith<V> for TsModuleName {
106586    #[doc = "Calls [Fold`::fold_ts_module_name`] with `self`."]
106587    fn fold_with(self, visitor: &mut V) -> Self {
106588        <V as Fold>::fold_ts_module_name(visitor, self)
106589    }
106590
106591    fn fold_children_with(self, visitor: &mut V) -> Self {
106592        match self {
106593            TsModuleName::Ident { 0: _field_0 } => {
106594                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
106595                TsModuleName::Ident { 0: _field_0 }
106596            }
106597            TsModuleName::Str { 0: _field_0 } => {
106598                let _field_0 = <Str as FoldWith<V>>::fold_with(_field_0, visitor);
106599                TsModuleName::Str { 0: _field_0 }
106600            }
106601        }
106602    }
106603}
106604impl<V: ?Sized + Fold> FoldWith<V> for TsModuleRef {
106605    #[doc = "Calls [Fold`::fold_ts_module_ref`] with `self`."]
106606    fn fold_with(self, visitor: &mut V) -> Self {
106607        <V as Fold>::fold_ts_module_ref(visitor, self)
106608    }
106609
106610    fn fold_children_with(self, visitor: &mut V) -> Self {
106611        match self {
106612            TsModuleRef::TsEntityName { 0: _field_0 } => {
106613                let _field_0 = <TsEntityName as FoldWith<V>>::fold_with(_field_0, visitor);
106614                TsModuleRef::TsEntityName { 0: _field_0 }
106615            }
106616            TsModuleRef::TsExternalModuleRef { 0: _field_0 } => {
106617                let _field_0 = <TsExternalModuleRef as FoldWith<V>>::fold_with(_field_0, visitor);
106618                TsModuleRef::TsExternalModuleRef { 0: _field_0 }
106619            }
106620        }
106621    }
106622}
106623impl<V: ?Sized + Fold> FoldWith<V> for TsNamespaceBody {
106624    #[doc = "Calls [Fold`::fold_ts_namespace_body`] with `self`."]
106625    fn fold_with(self, visitor: &mut V) -> Self {
106626        <V as Fold>::fold_ts_namespace_body(visitor, self)
106627    }
106628
106629    fn fold_children_with(self, visitor: &mut V) -> Self {
106630        match self {
106631            TsNamespaceBody::TsModuleBlock { 0: _field_0 } => {
106632                let _field_0 = <TsModuleBlock as FoldWith<V>>::fold_with(_field_0, visitor);
106633                TsNamespaceBody::TsModuleBlock { 0: _field_0 }
106634            }
106635            TsNamespaceBody::TsNamespaceDecl { 0: _field_0 } => {
106636                let _field_0 = <TsNamespaceDecl as FoldWith<V>>::fold_with(_field_0, visitor);
106637                TsNamespaceBody::TsNamespaceDecl { 0: _field_0 }
106638            }
106639        }
106640    }
106641}
106642impl<V: ?Sized + Fold> FoldWith<V> for TsNamespaceDecl {
106643    #[doc = "Calls [Fold`::fold_ts_namespace_decl`] with `self`."]
106644    fn fold_with(self, visitor: &mut V) -> Self {
106645        <V as Fold>::fold_ts_namespace_decl(visitor, self)
106646    }
106647
106648    fn fold_children_with(self, visitor: &mut V) -> Self {
106649        match self {
106650            TsNamespaceDecl {
106651                span,
106652                declare,
106653                global,
106654                id,
106655                body,
106656            } => {
106657                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106658                let id = { <Ident as FoldWith<V>>::fold_with(id, visitor) };
106659                let body = { <Box<TsNamespaceBody> as FoldWith<V>>::fold_with(body, visitor) };
106660                TsNamespaceDecl {
106661                    span,
106662                    declare,
106663                    global,
106664                    id,
106665                    body,
106666                }
106667            }
106668        }
106669    }
106670}
106671impl<V: ?Sized + Fold> FoldWith<V> for TsNamespaceExportDecl {
106672    #[doc = "Calls [Fold`::fold_ts_namespace_export_decl`] with `self`."]
106673    fn fold_with(self, visitor: &mut V) -> Self {
106674        <V as Fold>::fold_ts_namespace_export_decl(visitor, self)
106675    }
106676
106677    fn fold_children_with(self, visitor: &mut V) -> Self {
106678        match self {
106679            TsNamespaceExportDecl { span, id } => {
106680                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106681                let id = { <Ident as FoldWith<V>>::fold_with(id, visitor) };
106682                TsNamespaceExportDecl { span, id }
106683            }
106684        }
106685    }
106686}
106687impl<V: ?Sized + Fold> FoldWith<V> for TsNonNullExpr {
106688    #[doc = "Calls [Fold`::fold_ts_non_null_expr`] with `self`."]
106689    fn fold_with(self, visitor: &mut V) -> Self {
106690        <V as Fold>::fold_ts_non_null_expr(visitor, self)
106691    }
106692
106693    fn fold_children_with(self, visitor: &mut V) -> Self {
106694        match self {
106695            TsNonNullExpr { span, expr } => {
106696                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106697                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
106698                TsNonNullExpr { span, expr }
106699            }
106700        }
106701    }
106702}
106703impl<V: ?Sized + Fold> FoldWith<V> for TsOptionalType {
106704    #[doc = "Calls [Fold`::fold_ts_optional_type`] with `self`."]
106705    fn fold_with(self, visitor: &mut V) -> Self {
106706        <V as Fold>::fold_ts_optional_type(visitor, self)
106707    }
106708
106709    fn fold_children_with(self, visitor: &mut V) -> Self {
106710        match self {
106711            TsOptionalType { span, type_ann } => {
106712                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106713                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
106714                TsOptionalType { span, type_ann }
106715            }
106716        }
106717    }
106718}
106719impl<V: ?Sized + Fold> FoldWith<V> for TsParamProp {
106720    #[doc = "Calls [Fold`::fold_ts_param_prop`] with `self`."]
106721    fn fold_with(self, visitor: &mut V) -> Self {
106722        <V as Fold>::fold_ts_param_prop(visitor, self)
106723    }
106724
106725    fn fold_children_with(self, visitor: &mut V) -> Self {
106726        match self {
106727            TsParamProp {
106728                span,
106729                decorators,
106730                accessibility,
106731                is_override,
106732                readonly,
106733                param,
106734            } => {
106735                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106736                let decorators =
106737                    { <Vec<Decorator> as FoldWith<V>>::fold_with(decorators, visitor) };
106738                let accessibility =
106739                    { <Option<Accessibility> as FoldWith<V>>::fold_with(accessibility, visitor) };
106740                let param = { <TsParamPropParam as FoldWith<V>>::fold_with(param, visitor) };
106741                TsParamProp {
106742                    span,
106743                    decorators,
106744                    accessibility,
106745                    is_override,
106746                    readonly,
106747                    param,
106748                }
106749            }
106750        }
106751    }
106752}
106753impl<V: ?Sized + Fold> FoldWith<V> for TsParamPropParam {
106754    #[doc = "Calls [Fold`::fold_ts_param_prop_param`] with `self`."]
106755    fn fold_with(self, visitor: &mut V) -> Self {
106756        <V as Fold>::fold_ts_param_prop_param(visitor, self)
106757    }
106758
106759    fn fold_children_with(self, visitor: &mut V) -> Self {
106760        match self {
106761            TsParamPropParam::Ident { 0: _field_0 } => {
106762                let _field_0 = <BindingIdent as FoldWith<V>>::fold_with(_field_0, visitor);
106763                TsParamPropParam::Ident { 0: _field_0 }
106764            }
106765            TsParamPropParam::Assign { 0: _field_0 } => {
106766                let _field_0 = <AssignPat as FoldWith<V>>::fold_with(_field_0, visitor);
106767                TsParamPropParam::Assign { 0: _field_0 }
106768            }
106769        }
106770    }
106771}
106772impl<V: ?Sized + Fold> FoldWith<V> for TsParenthesizedType {
106773    #[doc = "Calls [Fold`::fold_ts_parenthesized_type`] with `self`."]
106774    fn fold_with(self, visitor: &mut V) -> Self {
106775        <V as Fold>::fold_ts_parenthesized_type(visitor, self)
106776    }
106777
106778    fn fold_children_with(self, visitor: &mut V) -> Self {
106779        match self {
106780            TsParenthesizedType { span, type_ann } => {
106781                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106782                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
106783                TsParenthesizedType { span, type_ann }
106784            }
106785        }
106786    }
106787}
106788impl<V: ?Sized + Fold> FoldWith<V> for TsPropertySignature {
106789    #[doc = "Calls [Fold`::fold_ts_property_signature`] with `self`."]
106790    fn fold_with(self, visitor: &mut V) -> Self {
106791        <V as Fold>::fold_ts_property_signature(visitor, self)
106792    }
106793
106794    fn fold_children_with(self, visitor: &mut V) -> Self {
106795        match self {
106796            TsPropertySignature {
106797                span,
106798                readonly,
106799                key,
106800                computed,
106801                optional,
106802                type_ann,
106803            } => {
106804                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106805                let key = { <Box<Expr> as FoldWith<V>>::fold_with(key, visitor) };
106806                let type_ann =
106807                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
106808                TsPropertySignature {
106809                    span,
106810                    readonly,
106811                    key,
106812                    computed,
106813                    optional,
106814                    type_ann,
106815                }
106816            }
106817        }
106818    }
106819}
106820impl<V: ?Sized + Fold> FoldWith<V> for TsQualifiedName {
106821    #[doc = "Calls [Fold`::fold_ts_qualified_name`] with `self`."]
106822    fn fold_with(self, visitor: &mut V) -> Self {
106823        <V as Fold>::fold_ts_qualified_name(visitor, self)
106824    }
106825
106826    fn fold_children_with(self, visitor: &mut V) -> Self {
106827        match self {
106828            TsQualifiedName { span, left, right } => {
106829                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106830                let left = { <TsEntityName as FoldWith<V>>::fold_with(left, visitor) };
106831                let right = { <IdentName as FoldWith<V>>::fold_with(right, visitor) };
106832                TsQualifiedName { span, left, right }
106833            }
106834        }
106835    }
106836}
106837impl<V: ?Sized + Fold> FoldWith<V> for TsRestType {
106838    #[doc = "Calls [Fold`::fold_ts_rest_type`] with `self`."]
106839    fn fold_with(self, visitor: &mut V) -> Self {
106840        <V as Fold>::fold_ts_rest_type(visitor, self)
106841    }
106842
106843    fn fold_children_with(self, visitor: &mut V) -> Self {
106844        match self {
106845            TsRestType { span, type_ann } => {
106846                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106847                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
106848                TsRestType { span, type_ann }
106849            }
106850        }
106851    }
106852}
106853impl<V: ?Sized + Fold> FoldWith<V> for TsSatisfiesExpr {
106854    #[doc = "Calls [Fold`::fold_ts_satisfies_expr`] with `self`."]
106855    fn fold_with(self, visitor: &mut V) -> Self {
106856        <V as Fold>::fold_ts_satisfies_expr(visitor, self)
106857    }
106858
106859    fn fold_children_with(self, visitor: &mut V) -> Self {
106860        match self {
106861            TsSatisfiesExpr {
106862                span,
106863                expr,
106864                type_ann,
106865            } => {
106866                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106867                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
106868                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
106869                TsSatisfiesExpr {
106870                    span,
106871                    expr,
106872                    type_ann,
106873                }
106874            }
106875        }
106876    }
106877}
106878impl<V: ?Sized + Fold> FoldWith<V> for TsSetterSignature {
106879    #[doc = "Calls [Fold`::fold_ts_setter_signature`] with `self`."]
106880    fn fold_with(self, visitor: &mut V) -> Self {
106881        <V as Fold>::fold_ts_setter_signature(visitor, self)
106882    }
106883
106884    fn fold_children_with(self, visitor: &mut V) -> Self {
106885        match self {
106886            TsSetterSignature {
106887                span,
106888                key,
106889                computed,
106890                param,
106891            } => {
106892                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106893                let key = { <Box<Expr> as FoldWith<V>>::fold_with(key, visitor) };
106894                let param = { <TsFnParam as FoldWith<V>>::fold_with(param, visitor) };
106895                TsSetterSignature {
106896                    span,
106897                    key,
106898                    computed,
106899                    param,
106900                }
106901            }
106902        }
106903    }
106904}
106905impl<V: ?Sized + Fold> FoldWith<V> for TsThisType {
106906    #[doc = "Calls [Fold`::fold_ts_this_type`] with `self`."]
106907    fn fold_with(self, visitor: &mut V) -> Self {
106908        <V as Fold>::fold_ts_this_type(visitor, self)
106909    }
106910
106911    fn fold_children_with(self, visitor: &mut V) -> Self {
106912        match self {
106913            TsThisType { span } => {
106914                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106915                TsThisType { span }
106916            }
106917        }
106918    }
106919}
106920impl<V: ?Sized + Fold> FoldWith<V> for TsThisTypeOrIdent {
106921    #[doc = "Calls [Fold`::fold_ts_this_type_or_ident`] with `self`."]
106922    fn fold_with(self, visitor: &mut V) -> Self {
106923        <V as Fold>::fold_ts_this_type_or_ident(visitor, self)
106924    }
106925
106926    fn fold_children_with(self, visitor: &mut V) -> Self {
106927        match self {
106928            TsThisTypeOrIdent::TsThisType { 0: _field_0 } => {
106929                let _field_0 = <TsThisType as FoldWith<V>>::fold_with(_field_0, visitor);
106930                TsThisTypeOrIdent::TsThisType { 0: _field_0 }
106931            }
106932            TsThisTypeOrIdent::Ident { 0: _field_0 } => {
106933                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
106934                TsThisTypeOrIdent::Ident { 0: _field_0 }
106935            }
106936        }
106937    }
106938}
106939impl<V: ?Sized + Fold> FoldWith<V> for TsTplLitType {
106940    #[doc = "Calls [Fold`::fold_ts_tpl_lit_type`] with `self`."]
106941    fn fold_with(self, visitor: &mut V) -> Self {
106942        <V as Fold>::fold_ts_tpl_lit_type(visitor, self)
106943    }
106944
106945    fn fold_children_with(self, visitor: &mut V) -> Self {
106946        match self {
106947            TsTplLitType {
106948                span,
106949                types,
106950                quasis,
106951            } => {
106952                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106953                let types = { <Vec<Box<TsType>> as FoldWith<V>>::fold_with(types, visitor) };
106954                let quasis = { <Vec<TplElement> as FoldWith<V>>::fold_with(quasis, visitor) };
106955                TsTplLitType {
106956                    span,
106957                    types,
106958                    quasis,
106959                }
106960            }
106961        }
106962    }
106963}
106964impl<V: ?Sized + Fold> FoldWith<V> for TsTupleElement {
106965    #[doc = "Calls [Fold`::fold_ts_tuple_element`] with `self`."]
106966    fn fold_with(self, visitor: &mut V) -> Self {
106967        <V as Fold>::fold_ts_tuple_element(visitor, self)
106968    }
106969
106970    fn fold_children_with(self, visitor: &mut V) -> Self {
106971        match self {
106972            TsTupleElement { span, label, ty } => {
106973                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106974                let label = { <Option<Pat> as FoldWith<V>>::fold_with(label, visitor) };
106975                let ty = { <Box<TsType> as FoldWith<V>>::fold_with(ty, visitor) };
106976                TsTupleElement { span, label, ty }
106977            }
106978        }
106979    }
106980}
106981impl<V: ?Sized + Fold> FoldWith<V> for TsTupleType {
106982    #[doc = "Calls [Fold`::fold_ts_tuple_type`] with `self`."]
106983    fn fold_with(self, visitor: &mut V) -> Self {
106984        <V as Fold>::fold_ts_tuple_type(visitor, self)
106985    }
106986
106987    fn fold_children_with(self, visitor: &mut V) -> Self {
106988        match self {
106989            TsTupleType { span, elem_types } => {
106990                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106991                let elem_types =
106992                    { <Vec<TsTupleElement> as FoldWith<V>>::fold_with(elem_types, visitor) };
106993                TsTupleType { span, elem_types }
106994            }
106995        }
106996    }
106997}
106998impl<V: ?Sized + Fold> FoldWith<V> for TsType {
106999    #[doc = "Calls [Fold`::fold_ts_type`] with `self`."]
107000    fn fold_with(self, visitor: &mut V) -> Self {
107001        <V as Fold>::fold_ts_type(visitor, self)
107002    }
107003
107004    fn fold_children_with(self, visitor: &mut V) -> Self {
107005        match self {
107006            TsType::TsKeywordType { 0: _field_0 } => {
107007                let _field_0 = <TsKeywordType as FoldWith<V>>::fold_with(_field_0, visitor);
107008                TsType::TsKeywordType { 0: _field_0 }
107009            }
107010            TsType::TsThisType { 0: _field_0 } => {
107011                let _field_0 = <TsThisType as FoldWith<V>>::fold_with(_field_0, visitor);
107012                TsType::TsThisType { 0: _field_0 }
107013            }
107014            TsType::TsFnOrConstructorType { 0: _field_0 } => {
107015                let _field_0 = <TsFnOrConstructorType as FoldWith<V>>::fold_with(_field_0, visitor);
107016                TsType::TsFnOrConstructorType { 0: _field_0 }
107017            }
107018            TsType::TsTypeRef { 0: _field_0 } => {
107019                let _field_0 = <TsTypeRef as FoldWith<V>>::fold_with(_field_0, visitor);
107020                TsType::TsTypeRef { 0: _field_0 }
107021            }
107022            TsType::TsTypeQuery { 0: _field_0 } => {
107023                let _field_0 = <TsTypeQuery as FoldWith<V>>::fold_with(_field_0, visitor);
107024                TsType::TsTypeQuery { 0: _field_0 }
107025            }
107026            TsType::TsTypeLit { 0: _field_0 } => {
107027                let _field_0 = <TsTypeLit as FoldWith<V>>::fold_with(_field_0, visitor);
107028                TsType::TsTypeLit { 0: _field_0 }
107029            }
107030            TsType::TsArrayType { 0: _field_0 } => {
107031                let _field_0 = <TsArrayType as FoldWith<V>>::fold_with(_field_0, visitor);
107032                TsType::TsArrayType { 0: _field_0 }
107033            }
107034            TsType::TsTupleType { 0: _field_0 } => {
107035                let _field_0 = <TsTupleType as FoldWith<V>>::fold_with(_field_0, visitor);
107036                TsType::TsTupleType { 0: _field_0 }
107037            }
107038            TsType::TsOptionalType { 0: _field_0 } => {
107039                let _field_0 = <TsOptionalType as FoldWith<V>>::fold_with(_field_0, visitor);
107040                TsType::TsOptionalType { 0: _field_0 }
107041            }
107042            TsType::TsRestType { 0: _field_0 } => {
107043                let _field_0 = <TsRestType as FoldWith<V>>::fold_with(_field_0, visitor);
107044                TsType::TsRestType { 0: _field_0 }
107045            }
107046            TsType::TsUnionOrIntersectionType { 0: _field_0 } => {
107047                let _field_0 =
107048                    <TsUnionOrIntersectionType as FoldWith<V>>::fold_with(_field_0, visitor);
107049                TsType::TsUnionOrIntersectionType { 0: _field_0 }
107050            }
107051            TsType::TsConditionalType { 0: _field_0 } => {
107052                let _field_0 = <TsConditionalType as FoldWith<V>>::fold_with(_field_0, visitor);
107053                TsType::TsConditionalType { 0: _field_0 }
107054            }
107055            TsType::TsInferType { 0: _field_0 } => {
107056                let _field_0 = <TsInferType as FoldWith<V>>::fold_with(_field_0, visitor);
107057                TsType::TsInferType { 0: _field_0 }
107058            }
107059            TsType::TsParenthesizedType { 0: _field_0 } => {
107060                let _field_0 = <TsParenthesizedType as FoldWith<V>>::fold_with(_field_0, visitor);
107061                TsType::TsParenthesizedType { 0: _field_0 }
107062            }
107063            TsType::TsTypeOperator { 0: _field_0 } => {
107064                let _field_0 = <TsTypeOperator as FoldWith<V>>::fold_with(_field_0, visitor);
107065                TsType::TsTypeOperator { 0: _field_0 }
107066            }
107067            TsType::TsIndexedAccessType { 0: _field_0 } => {
107068                let _field_0 = <TsIndexedAccessType as FoldWith<V>>::fold_with(_field_0, visitor);
107069                TsType::TsIndexedAccessType { 0: _field_0 }
107070            }
107071            TsType::TsMappedType { 0: _field_0 } => {
107072                let _field_0 = <TsMappedType as FoldWith<V>>::fold_with(_field_0, visitor);
107073                TsType::TsMappedType { 0: _field_0 }
107074            }
107075            TsType::TsLitType { 0: _field_0 } => {
107076                let _field_0 = <TsLitType as FoldWith<V>>::fold_with(_field_0, visitor);
107077                TsType::TsLitType { 0: _field_0 }
107078            }
107079            TsType::TsTypePredicate { 0: _field_0 } => {
107080                let _field_0 = <TsTypePredicate as FoldWith<V>>::fold_with(_field_0, visitor);
107081                TsType::TsTypePredicate { 0: _field_0 }
107082            }
107083            TsType::TsImportType { 0: _field_0 } => {
107084                let _field_0 = <TsImportType as FoldWith<V>>::fold_with(_field_0, visitor);
107085                TsType::TsImportType { 0: _field_0 }
107086            }
107087        }
107088    }
107089}
107090impl<V: ?Sized + Fold> FoldWith<V> for TsTypeAliasDecl {
107091    #[doc = "Calls [Fold`::fold_ts_type_alias_decl`] with `self`."]
107092    fn fold_with(self, visitor: &mut V) -> Self {
107093        <V as Fold>::fold_ts_type_alias_decl(visitor, self)
107094    }
107095
107096    fn fold_children_with(self, visitor: &mut V) -> Self {
107097        match self {
107098            TsTypeAliasDecl {
107099                span,
107100                declare,
107101                id,
107102                type_params,
107103                type_ann,
107104            } => {
107105                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107106                let id = { <Ident as FoldWith<V>>::fold_with(id, visitor) };
107107                let type_params = {
107108                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
107109                };
107110                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
107111                TsTypeAliasDecl {
107112                    span,
107113                    declare,
107114                    id,
107115                    type_params,
107116                    type_ann,
107117                }
107118            }
107119        }
107120    }
107121}
107122impl<V: ?Sized + Fold> FoldWith<V> for TsTypeAnn {
107123    #[doc = "Calls [Fold`::fold_ts_type_ann`] with `self`."]
107124    fn fold_with(self, visitor: &mut V) -> Self {
107125        <V as Fold>::fold_ts_type_ann(visitor, self)
107126    }
107127
107128    fn fold_children_with(self, visitor: &mut V) -> Self {
107129        match self {
107130            TsTypeAnn { span, type_ann } => {
107131                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107132                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
107133                TsTypeAnn { span, type_ann }
107134            }
107135        }
107136    }
107137}
107138impl<V: ?Sized + Fold> FoldWith<V> for TsTypeAssertion {
107139    #[doc = "Calls [Fold`::fold_ts_type_assertion`] with `self`."]
107140    fn fold_with(self, visitor: &mut V) -> Self {
107141        <V as Fold>::fold_ts_type_assertion(visitor, self)
107142    }
107143
107144    fn fold_children_with(self, visitor: &mut V) -> Self {
107145        match self {
107146            TsTypeAssertion {
107147                span,
107148                expr,
107149                type_ann,
107150            } => {
107151                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107152                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
107153                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
107154                TsTypeAssertion {
107155                    span,
107156                    expr,
107157                    type_ann,
107158                }
107159            }
107160        }
107161    }
107162}
107163impl<V: ?Sized + Fold> FoldWith<V> for TsTypeElement {
107164    #[doc = "Calls [Fold`::fold_ts_type_element`] with `self`."]
107165    fn fold_with(self, visitor: &mut V) -> Self {
107166        <V as Fold>::fold_ts_type_element(visitor, self)
107167    }
107168
107169    fn fold_children_with(self, visitor: &mut V) -> Self {
107170        match self {
107171            TsTypeElement::TsCallSignatureDecl { 0: _field_0 } => {
107172                let _field_0 = <TsCallSignatureDecl as FoldWith<V>>::fold_with(_field_0, visitor);
107173                TsTypeElement::TsCallSignatureDecl { 0: _field_0 }
107174            }
107175            TsTypeElement::TsConstructSignatureDecl { 0: _field_0 } => {
107176                let _field_0 =
107177                    <TsConstructSignatureDecl as FoldWith<V>>::fold_with(_field_0, visitor);
107178                TsTypeElement::TsConstructSignatureDecl { 0: _field_0 }
107179            }
107180            TsTypeElement::TsPropertySignature { 0: _field_0 } => {
107181                let _field_0 = <TsPropertySignature as FoldWith<V>>::fold_with(_field_0, visitor);
107182                TsTypeElement::TsPropertySignature { 0: _field_0 }
107183            }
107184            TsTypeElement::TsGetterSignature { 0: _field_0 } => {
107185                let _field_0 = <TsGetterSignature as FoldWith<V>>::fold_with(_field_0, visitor);
107186                TsTypeElement::TsGetterSignature { 0: _field_0 }
107187            }
107188            TsTypeElement::TsSetterSignature { 0: _field_0 } => {
107189                let _field_0 = <TsSetterSignature as FoldWith<V>>::fold_with(_field_0, visitor);
107190                TsTypeElement::TsSetterSignature { 0: _field_0 }
107191            }
107192            TsTypeElement::TsMethodSignature { 0: _field_0 } => {
107193                let _field_0 = <TsMethodSignature as FoldWith<V>>::fold_with(_field_0, visitor);
107194                TsTypeElement::TsMethodSignature { 0: _field_0 }
107195            }
107196            TsTypeElement::TsIndexSignature { 0: _field_0 } => {
107197                let _field_0 = <TsIndexSignature as FoldWith<V>>::fold_with(_field_0, visitor);
107198                TsTypeElement::TsIndexSignature { 0: _field_0 }
107199            }
107200        }
107201    }
107202}
107203impl<V: ?Sized + Fold> FoldWith<V> for TsTypeLit {
107204    #[doc = "Calls [Fold`::fold_ts_type_lit`] with `self`."]
107205    fn fold_with(self, visitor: &mut V) -> Self {
107206        <V as Fold>::fold_ts_type_lit(visitor, self)
107207    }
107208
107209    fn fold_children_with(self, visitor: &mut V) -> Self {
107210        match self {
107211            TsTypeLit { span, members } => {
107212                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107213                let members = { <Vec<TsTypeElement> as FoldWith<V>>::fold_with(members, visitor) };
107214                TsTypeLit { span, members }
107215            }
107216        }
107217    }
107218}
107219impl<V: ?Sized + Fold> FoldWith<V> for TsTypeOperator {
107220    #[doc = "Calls [Fold`::fold_ts_type_operator`] with `self`."]
107221    fn fold_with(self, visitor: &mut V) -> Self {
107222        <V as Fold>::fold_ts_type_operator(visitor, self)
107223    }
107224
107225    fn fold_children_with(self, visitor: &mut V) -> Self {
107226        match self {
107227            TsTypeOperator { span, op, type_ann } => {
107228                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107229                let op = { <TsTypeOperatorOp as FoldWith<V>>::fold_with(op, visitor) };
107230                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
107231                TsTypeOperator { span, op, type_ann }
107232            }
107233        }
107234    }
107235}
107236impl<V: ?Sized + Fold> FoldWith<V> for TsTypeOperatorOp {
107237    #[doc = "Calls [Fold`::fold_ts_type_operator_op`] with `self`."]
107238    fn fold_with(self, visitor: &mut V) -> Self {
107239        <V as Fold>::fold_ts_type_operator_op(visitor, self)
107240    }
107241
107242    fn fold_children_with(self, visitor: &mut V) -> Self {
107243        match self {
107244            TsTypeOperatorOp::KeyOf => TsTypeOperatorOp::KeyOf,
107245            TsTypeOperatorOp::Unique => TsTypeOperatorOp::Unique,
107246            TsTypeOperatorOp::ReadOnly => TsTypeOperatorOp::ReadOnly,
107247        }
107248    }
107249}
107250impl<V: ?Sized + Fold> FoldWith<V> for TsTypeParam {
107251    #[doc = "Calls [Fold`::fold_ts_type_param`] with `self`."]
107252    fn fold_with(self, visitor: &mut V) -> Self {
107253        <V as Fold>::fold_ts_type_param(visitor, self)
107254    }
107255
107256    fn fold_children_with(self, visitor: &mut V) -> Self {
107257        match self {
107258            TsTypeParam {
107259                span,
107260                name,
107261                is_in,
107262                is_out,
107263                is_const,
107264                constraint,
107265                default,
107266            } => {
107267                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107268                let name = { <Ident as FoldWith<V>>::fold_with(name, visitor) };
107269                let constraint =
107270                    { <Option<Box<TsType>> as FoldWith<V>>::fold_with(constraint, visitor) };
107271                let default = { <Option<Box<TsType>> as FoldWith<V>>::fold_with(default, visitor) };
107272                TsTypeParam {
107273                    span,
107274                    name,
107275                    is_in,
107276                    is_out,
107277                    is_const,
107278                    constraint,
107279                    default,
107280                }
107281            }
107282        }
107283    }
107284}
107285impl<V: ?Sized + Fold> FoldWith<V> for TsTypeParamDecl {
107286    #[doc = "Calls [Fold`::fold_ts_type_param_decl`] with `self`."]
107287    fn fold_with(self, visitor: &mut V) -> Self {
107288        <V as Fold>::fold_ts_type_param_decl(visitor, self)
107289    }
107290
107291    fn fold_children_with(self, visitor: &mut V) -> Self {
107292        match self {
107293            TsTypeParamDecl { span, params } => {
107294                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107295                let params = { <Vec<TsTypeParam> as FoldWith<V>>::fold_with(params, visitor) };
107296                TsTypeParamDecl { span, params }
107297            }
107298        }
107299    }
107300}
107301impl<V: ?Sized + Fold> FoldWith<V> for TsTypeParamInstantiation {
107302    #[doc = "Calls [Fold`::fold_ts_type_param_instantiation`] with `self`."]
107303    fn fold_with(self, visitor: &mut V) -> Self {
107304        <V as Fold>::fold_ts_type_param_instantiation(visitor, self)
107305    }
107306
107307    fn fold_children_with(self, visitor: &mut V) -> Self {
107308        match self {
107309            TsTypeParamInstantiation { span, params } => {
107310                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107311                let params = { <Vec<Box<TsType>> as FoldWith<V>>::fold_with(params, visitor) };
107312                TsTypeParamInstantiation { span, params }
107313            }
107314        }
107315    }
107316}
107317impl<V: ?Sized + Fold> FoldWith<V> for TsTypePredicate {
107318    #[doc = "Calls [Fold`::fold_ts_type_predicate`] with `self`."]
107319    fn fold_with(self, visitor: &mut V) -> Self {
107320        <V as Fold>::fold_ts_type_predicate(visitor, self)
107321    }
107322
107323    fn fold_children_with(self, visitor: &mut V) -> Self {
107324        match self {
107325            TsTypePredicate {
107326                span,
107327                asserts,
107328                param_name,
107329                type_ann,
107330            } => {
107331                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107332                let param_name =
107333                    { <TsThisTypeOrIdent as FoldWith<V>>::fold_with(param_name, visitor) };
107334                let type_ann =
107335                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
107336                TsTypePredicate {
107337                    span,
107338                    asserts,
107339                    param_name,
107340                    type_ann,
107341                }
107342            }
107343        }
107344    }
107345}
107346impl<V: ?Sized + Fold> FoldWith<V> for TsTypeQuery {
107347    #[doc = "Calls [Fold`::fold_ts_type_query`] with `self`."]
107348    fn fold_with(self, visitor: &mut V) -> Self {
107349        <V as Fold>::fold_ts_type_query(visitor, self)
107350    }
107351
107352    fn fold_children_with(self, visitor: &mut V) -> Self {
107353        match self {
107354            TsTypeQuery {
107355                span,
107356                expr_name,
107357                type_args,
107358            } => {
107359                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107360                let expr_name = { <TsTypeQueryExpr as FoldWith<V>>::fold_with(expr_name, visitor) };
107361                let type_args = {
107362                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
107363                        type_args, visitor,
107364                    )
107365                };
107366                TsTypeQuery {
107367                    span,
107368                    expr_name,
107369                    type_args,
107370                }
107371            }
107372        }
107373    }
107374}
107375impl<V: ?Sized + Fold> FoldWith<V> for TsTypeQueryExpr {
107376    #[doc = "Calls [Fold`::fold_ts_type_query_expr`] with `self`."]
107377    fn fold_with(self, visitor: &mut V) -> Self {
107378        <V as Fold>::fold_ts_type_query_expr(visitor, self)
107379    }
107380
107381    fn fold_children_with(self, visitor: &mut V) -> Self {
107382        match self {
107383            TsTypeQueryExpr::TsEntityName { 0: _field_0 } => {
107384                let _field_0 = <TsEntityName as FoldWith<V>>::fold_with(_field_0, visitor);
107385                TsTypeQueryExpr::TsEntityName { 0: _field_0 }
107386            }
107387            TsTypeQueryExpr::Import { 0: _field_0 } => {
107388                let _field_0 = <TsImportType as FoldWith<V>>::fold_with(_field_0, visitor);
107389                TsTypeQueryExpr::Import { 0: _field_0 }
107390            }
107391        }
107392    }
107393}
107394impl<V: ?Sized + Fold> FoldWith<V> for TsTypeRef {
107395    #[doc = "Calls [Fold`::fold_ts_type_ref`] with `self`."]
107396    fn fold_with(self, visitor: &mut V) -> Self {
107397        <V as Fold>::fold_ts_type_ref(visitor, self)
107398    }
107399
107400    fn fold_children_with(self, visitor: &mut V) -> Self {
107401        match self {
107402            TsTypeRef {
107403                span,
107404                type_name,
107405                type_params,
107406            } => {
107407                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107408                let type_name = { <TsEntityName as FoldWith<V>>::fold_with(type_name, visitor) };
107409                let type_params = {
107410                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
107411                        type_params,
107412                        visitor,
107413                    )
107414                };
107415                TsTypeRef {
107416                    span,
107417                    type_name,
107418                    type_params,
107419                }
107420            }
107421        }
107422    }
107423}
107424impl<V: ?Sized + Fold> FoldWith<V> for TsUnionOrIntersectionType {
107425    #[doc = "Calls [Fold`::fold_ts_union_or_intersection_type`] with `self`."]
107426    fn fold_with(self, visitor: &mut V) -> Self {
107427        <V as Fold>::fold_ts_union_or_intersection_type(visitor, self)
107428    }
107429
107430    fn fold_children_with(self, visitor: &mut V) -> Self {
107431        match self {
107432            TsUnionOrIntersectionType::TsUnionType { 0: _field_0 } => {
107433                let _field_0 = <TsUnionType as FoldWith<V>>::fold_with(_field_0, visitor);
107434                TsUnionOrIntersectionType::TsUnionType { 0: _field_0 }
107435            }
107436            TsUnionOrIntersectionType::TsIntersectionType { 0: _field_0 } => {
107437                let _field_0 = <TsIntersectionType as FoldWith<V>>::fold_with(_field_0, visitor);
107438                TsUnionOrIntersectionType::TsIntersectionType { 0: _field_0 }
107439            }
107440        }
107441    }
107442}
107443impl<V: ?Sized + Fold> FoldWith<V> for TsUnionType {
107444    #[doc = "Calls [Fold`::fold_ts_union_type`] with `self`."]
107445    fn fold_with(self, visitor: &mut V) -> Self {
107446        <V as Fold>::fold_ts_union_type(visitor, self)
107447    }
107448
107449    fn fold_children_with(self, visitor: &mut V) -> Self {
107450        match self {
107451            TsUnionType { span, types } => {
107452                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107453                let types = { <Vec<Box<TsType>> as FoldWith<V>>::fold_with(types, visitor) };
107454                TsUnionType { span, types }
107455            }
107456        }
107457    }
107458}
107459impl<V: ?Sized + Fold> FoldWith<V> for UnaryExpr {
107460    #[doc = "Calls [Fold`::fold_unary_expr`] with `self`."]
107461    fn fold_with(self, visitor: &mut V) -> Self {
107462        <V as Fold>::fold_unary_expr(visitor, self)
107463    }
107464
107465    fn fold_children_with(self, visitor: &mut V) -> Self {
107466        match self {
107467            UnaryExpr { span, op, arg } => {
107468                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107469                let op = { <UnaryOp as FoldWith<V>>::fold_with(op, visitor) };
107470                let arg = { <Box<Expr> as FoldWith<V>>::fold_with(arg, visitor) };
107471                UnaryExpr { span, op, arg }
107472            }
107473        }
107474    }
107475}
107476impl<V: ?Sized + Fold> FoldWith<V> for UnaryOp {
107477    #[doc = "Calls [Fold`::fold_unary_op`] with `self`."]
107478    fn fold_with(self, visitor: &mut V) -> Self {
107479        <V as Fold>::fold_unary_op(visitor, self)
107480    }
107481
107482    fn fold_children_with(self, visitor: &mut V) -> Self {
107483        match self {
107484            UnaryOp::Minus => UnaryOp::Minus,
107485            UnaryOp::Plus => UnaryOp::Plus,
107486            UnaryOp::Bang => UnaryOp::Bang,
107487            UnaryOp::Tilde => UnaryOp::Tilde,
107488            UnaryOp::TypeOf => UnaryOp::TypeOf,
107489            UnaryOp::Void => UnaryOp::Void,
107490            UnaryOp::Delete => UnaryOp::Delete,
107491        }
107492    }
107493}
107494impl<V: ?Sized + Fold> FoldWith<V> for UpdateExpr {
107495    #[doc = "Calls [Fold`::fold_update_expr`] with `self`."]
107496    fn fold_with(self, visitor: &mut V) -> Self {
107497        <V as Fold>::fold_update_expr(visitor, self)
107498    }
107499
107500    fn fold_children_with(self, visitor: &mut V) -> Self {
107501        match self {
107502            UpdateExpr {
107503                span,
107504                op,
107505                prefix,
107506                arg,
107507            } => {
107508                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107509                let op = { <UpdateOp as FoldWith<V>>::fold_with(op, visitor) };
107510                let arg = { <Box<Expr> as FoldWith<V>>::fold_with(arg, visitor) };
107511                UpdateExpr {
107512                    span,
107513                    op,
107514                    prefix,
107515                    arg,
107516                }
107517            }
107518        }
107519    }
107520}
107521impl<V: ?Sized + Fold> FoldWith<V> for UpdateOp {
107522    #[doc = "Calls [Fold`::fold_update_op`] with `self`."]
107523    fn fold_with(self, visitor: &mut V) -> Self {
107524        <V as Fold>::fold_update_op(visitor, self)
107525    }
107526
107527    fn fold_children_with(self, visitor: &mut V) -> Self {
107528        match self {
107529            UpdateOp::PlusPlus => UpdateOp::PlusPlus,
107530            UpdateOp::MinusMinus => UpdateOp::MinusMinus,
107531        }
107532    }
107533}
107534impl<V: ?Sized + Fold> FoldWith<V> for UsingDecl {
107535    #[doc = "Calls [Fold`::fold_using_decl`] with `self`."]
107536    fn fold_with(self, visitor: &mut V) -> Self {
107537        <V as Fold>::fold_using_decl(visitor, self)
107538    }
107539
107540    fn fold_children_with(self, visitor: &mut V) -> Self {
107541        match self {
107542            UsingDecl {
107543                span,
107544                is_await,
107545                decls,
107546            } => {
107547                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107548                let decls = { <Vec<VarDeclarator> as FoldWith<V>>::fold_with(decls, visitor) };
107549                UsingDecl {
107550                    span,
107551                    is_await,
107552                    decls,
107553                }
107554            }
107555        }
107556    }
107557}
107558impl<V: ?Sized + Fold> FoldWith<V> for VarDecl {
107559    #[doc = "Calls [Fold`::fold_var_decl`] with `self`."]
107560    fn fold_with(self, visitor: &mut V) -> Self {
107561        <V as Fold>::fold_var_decl(visitor, self)
107562    }
107563
107564    fn fold_children_with(self, visitor: &mut V) -> Self {
107565        match self {
107566            VarDecl {
107567                span,
107568                ctxt,
107569                kind,
107570                declare,
107571                decls,
107572            } => {
107573                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107574                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
107575                let kind = { <VarDeclKind as FoldWith<V>>::fold_with(kind, visitor) };
107576                let decls = { <Vec<VarDeclarator> as FoldWith<V>>::fold_with(decls, visitor) };
107577                VarDecl {
107578                    span,
107579                    ctxt,
107580                    kind,
107581                    declare,
107582                    decls,
107583                }
107584            }
107585        }
107586    }
107587}
107588impl<V: ?Sized + Fold> FoldWith<V> for VarDeclKind {
107589    #[doc = "Calls [Fold`::fold_var_decl_kind`] with `self`."]
107590    fn fold_with(self, visitor: &mut V) -> Self {
107591        <V as Fold>::fold_var_decl_kind(visitor, self)
107592    }
107593
107594    fn fold_children_with(self, visitor: &mut V) -> Self {
107595        match self {
107596            VarDeclKind::Var => VarDeclKind::Var,
107597            VarDeclKind::Let => VarDeclKind::Let,
107598            VarDeclKind::Const => VarDeclKind::Const,
107599        }
107600    }
107601}
107602impl<V: ?Sized + Fold> FoldWith<V> for VarDeclOrExpr {
107603    #[doc = "Calls [Fold`::fold_var_decl_or_expr`] with `self`."]
107604    fn fold_with(self, visitor: &mut V) -> Self {
107605        <V as Fold>::fold_var_decl_or_expr(visitor, self)
107606    }
107607
107608    fn fold_children_with(self, visitor: &mut V) -> Self {
107609        match self {
107610            VarDeclOrExpr::VarDecl { 0: _field_0 } => {
107611                let _field_0 = <Box<VarDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
107612                VarDeclOrExpr::VarDecl { 0: _field_0 }
107613            }
107614            VarDeclOrExpr::Expr { 0: _field_0 } => {
107615                let _field_0 = <Box<Expr> as FoldWith<V>>::fold_with(_field_0, visitor);
107616                VarDeclOrExpr::Expr { 0: _field_0 }
107617            }
107618        }
107619    }
107620}
107621impl<V: ?Sized + Fold> FoldWith<V> for VarDeclarator {
107622    #[doc = "Calls [Fold`::fold_var_declarator`] with `self`."]
107623    fn fold_with(self, visitor: &mut V) -> Self {
107624        <V as Fold>::fold_var_declarator(visitor, self)
107625    }
107626
107627    fn fold_children_with(self, visitor: &mut V) -> Self {
107628        match self {
107629            VarDeclarator {
107630                span,
107631                name,
107632                init,
107633                definite,
107634            } => {
107635                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107636                let name = { <Pat as FoldWith<V>>::fold_with(name, visitor) };
107637                let init = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(init, visitor) };
107638                VarDeclarator {
107639                    span,
107640                    name,
107641                    init,
107642                    definite,
107643                }
107644            }
107645        }
107646    }
107647}
107648impl<V: ?Sized + Fold> FoldWith<V> for WhileStmt {
107649    #[doc = "Calls [Fold`::fold_while_stmt`] with `self`."]
107650    fn fold_with(self, visitor: &mut V) -> Self {
107651        <V as Fold>::fold_while_stmt(visitor, self)
107652    }
107653
107654    fn fold_children_with(self, visitor: &mut V) -> Self {
107655        match self {
107656            WhileStmt { span, test, body } => {
107657                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107658                let test = { <Box<Expr> as FoldWith<V>>::fold_with(test, visitor) };
107659                let body = { <Box<Stmt> as FoldWith<V>>::fold_with(body, visitor) };
107660                WhileStmt { span, test, body }
107661            }
107662        }
107663    }
107664}
107665impl<V: ?Sized + Fold> FoldWith<V> for WithStmt {
107666    #[doc = "Calls [Fold`::fold_with_stmt`] with `self`."]
107667    fn fold_with(self, visitor: &mut V) -> Self {
107668        <V as Fold>::fold_with_stmt(visitor, self)
107669    }
107670
107671    fn fold_children_with(self, visitor: &mut V) -> Self {
107672        match self {
107673            WithStmt { span, obj, body } => {
107674                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107675                let obj = { <Box<Expr> as FoldWith<V>>::fold_with(obj, visitor) };
107676                let body = { <Box<Stmt> as FoldWith<V>>::fold_with(body, visitor) };
107677                WithStmt { span, obj, body }
107678            }
107679        }
107680    }
107681}
107682impl<V: ?Sized + Fold> FoldWith<V> for YieldExpr {
107683    #[doc = "Calls [Fold`::fold_yield_expr`] with `self`."]
107684    fn fold_with(self, visitor: &mut V) -> Self {
107685        <V as Fold>::fold_yield_expr(visitor, self)
107686    }
107687
107688    fn fold_children_with(self, visitor: &mut V) -> Self {
107689        match self {
107690            YieldExpr {
107691                span,
107692                arg,
107693                delegate,
107694            } => {
107695                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
107696                let arg = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(arg, visitor) };
107697                YieldExpr {
107698                    span,
107699                    arg,
107700                    delegate,
107701                }
107702            }
107703        }
107704    }
107705}
107706impl<V: ?Sized + Fold> FoldWith<V> for swc_atoms::Atom {
107707    #[doc = "Calls [Fold`::fold_atom`] with `self`. (Extra impl)"]
107708    #[inline]
107709    fn fold_with(self, visitor: &mut V) -> Self {
107710        <V as Fold>::fold_atom(visitor, self)
107711    }
107712
107713    #[inline]
107714    fn fold_children_with(self, visitor: &mut V) -> Self {
107715        self
107716    }
107717}
107718impl<V: ?Sized + Fold> FoldWith<V> for BigIntValue {
107719    #[doc = "Calls [Fold`::fold_big_int_value`] with `self`. (Extra impl)"]
107720    #[inline]
107721    fn fold_with(self, visitor: &mut V) -> Self {
107722        <V as Fold>::fold_big_int_value(visitor, self)
107723    }
107724
107725    #[inline]
107726    fn fold_children_with(self, visitor: &mut V) -> Self {
107727        self
107728    }
107729}
107730impl<V: ?Sized + Fold> FoldWith<V> for Vec<ClassMember> {
107731    #[doc = "Calls [Fold`::fold_class_members`] with `self`. (Extra impl)"]
107732    #[inline]
107733    fn fold_with(self, visitor: &mut V) -> Self {
107734        <V as Fold>::fold_class_members(visitor, self)
107735    }
107736
107737    #[inline]
107738    fn fold_children_with(self, visitor: &mut V) -> Self {
107739        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107740            <ClassMember as FoldWith<V>>::fold_with(item, visitor)
107741        })
107742    }
107743}
107744impl<V: ?Sized + Fold> FoldWith<V> for Vec<Decorator> {
107745    #[doc = "Calls [Fold`::fold_decorators`] with `self`. (Extra impl)"]
107746    #[inline]
107747    fn fold_with(self, visitor: &mut V) -> Self {
107748        <V as Fold>::fold_decorators(visitor, self)
107749    }
107750
107751    #[inline]
107752    fn fold_children_with(self, visitor: &mut V) -> Self {
107753        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107754            <Decorator as FoldWith<V>>::fold_with(item, visitor)
107755        })
107756    }
107757}
107758impl<V: ?Sized + Fold> FoldWith<V> for Vec<ExportSpecifier> {
107759    #[doc = "Calls [Fold`::fold_export_specifiers`] with `self`. (Extra impl)"]
107760    #[inline]
107761    fn fold_with(self, visitor: &mut V) -> Self {
107762        <V as Fold>::fold_export_specifiers(visitor, self)
107763    }
107764
107765    #[inline]
107766    fn fold_children_with(self, visitor: &mut V) -> Self {
107767        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107768            <ExportSpecifier as FoldWith<V>>::fold_with(item, visitor)
107769        })
107770    }
107771}
107772impl<V: ?Sized + Fold> FoldWith<V> for Vec<ExprOrSpread> {
107773    #[doc = "Calls [Fold`::fold_expr_or_spreads`] with `self`. (Extra impl)"]
107774    #[inline]
107775    fn fold_with(self, visitor: &mut V) -> Self {
107776        <V as Fold>::fold_expr_or_spreads(visitor, self)
107777    }
107778
107779    #[inline]
107780    fn fold_children_with(self, visitor: &mut V) -> Self {
107781        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107782            <ExprOrSpread as FoldWith<V>>::fold_with(item, visitor)
107783        })
107784    }
107785}
107786impl<V: ?Sized + Fold> FoldWith<V> for Vec<Box<Expr>> {
107787    #[doc = "Calls [Fold`::fold_exprs`] with `self`. (Extra impl)"]
107788    #[inline]
107789    fn fold_with(self, visitor: &mut V) -> Self {
107790        <V as Fold>::fold_exprs(visitor, self)
107791    }
107792
107793    #[inline]
107794    fn fold_children_with(self, visitor: &mut V) -> Self {
107795        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107796            <Box<Expr> as FoldWith<V>>::fold_with(item, visitor)
107797        })
107798    }
107799}
107800impl<V: ?Sized + Fold> FoldWith<V> for Vec<ImportSpecifier> {
107801    #[doc = "Calls [Fold`::fold_import_specifiers`] with `self`. (Extra impl)"]
107802    #[inline]
107803    fn fold_with(self, visitor: &mut V) -> Self {
107804        <V as Fold>::fold_import_specifiers(visitor, self)
107805    }
107806
107807    #[inline]
107808    fn fold_children_with(self, visitor: &mut V) -> Self {
107809        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107810            <ImportSpecifier as FoldWith<V>>::fold_with(item, visitor)
107811        })
107812    }
107813}
107814impl<V: ?Sized + Fold> FoldWith<V> for Vec<ImportWithItem> {
107815    #[doc = "Calls [Fold`::fold_import_with_items`] with `self`. (Extra impl)"]
107816    #[inline]
107817    fn fold_with(self, visitor: &mut V) -> Self {
107818        <V as Fold>::fold_import_with_items(visitor, self)
107819    }
107820
107821    #[inline]
107822    fn fold_children_with(self, visitor: &mut V) -> Self {
107823        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107824            <ImportWithItem as FoldWith<V>>::fold_with(item, visitor)
107825        })
107826    }
107827}
107828impl<V: ?Sized + Fold> FoldWith<V> for Vec<JSXAttrOrSpread> {
107829    #[doc = "Calls [Fold`::fold_jsx_attr_or_spreads`] with `self`. (Extra impl)"]
107830    #[inline]
107831    fn fold_with(self, visitor: &mut V) -> Self {
107832        <V as Fold>::fold_jsx_attr_or_spreads(visitor, self)
107833    }
107834
107835    #[inline]
107836    fn fold_children_with(self, visitor: &mut V) -> Self {
107837        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107838            <JSXAttrOrSpread as FoldWith<V>>::fold_with(item, visitor)
107839        })
107840    }
107841}
107842impl<V: ?Sized + Fold> FoldWith<V> for Vec<JSXElementChild> {
107843    #[doc = "Calls [Fold`::fold_jsx_element_childs`] with `self`. (Extra impl)"]
107844    #[inline]
107845    fn fold_with(self, visitor: &mut V) -> Self {
107846        <V as Fold>::fold_jsx_element_childs(visitor, self)
107847    }
107848
107849    #[inline]
107850    fn fold_children_with(self, visitor: &mut V) -> Self {
107851        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107852            <JSXElementChild as FoldWith<V>>::fold_with(item, visitor)
107853        })
107854    }
107855}
107856impl<V: ?Sized + Fold> FoldWith<V> for Vec<ModuleItem> {
107857    #[doc = "Calls [Fold`::fold_module_items`] with `self`. (Extra impl)"]
107858    #[inline]
107859    fn fold_with(self, visitor: &mut V) -> Self {
107860        <V as Fold>::fold_module_items(visitor, self)
107861    }
107862
107863    #[inline]
107864    fn fold_children_with(self, visitor: &mut V) -> Self {
107865        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107866            <ModuleItem as FoldWith<V>>::fold_with(item, visitor)
107867        })
107868    }
107869}
107870impl<V: ?Sized + Fold> FoldWith<V> for Vec<ObjectPatProp> {
107871    #[doc = "Calls [Fold`::fold_object_pat_props`] with `self`. (Extra impl)"]
107872    #[inline]
107873    fn fold_with(self, visitor: &mut V) -> Self {
107874        <V as Fold>::fold_object_pat_props(visitor, self)
107875    }
107876
107877    #[inline]
107878    fn fold_children_with(self, visitor: &mut V) -> Self {
107879        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107880            <ObjectPatProp as FoldWith<V>>::fold_with(item, visitor)
107881        })
107882    }
107883}
107884impl<V: ?Sized + Fold> FoldWith<V> for Option<Accessibility> {
107885    #[doc = "Calls [Fold`::fold_opt_accessibility`] with `self`. (Extra impl)"]
107886    #[inline]
107887    fn fold_with(self, visitor: &mut V) -> Self {
107888        <V as Fold>::fold_opt_accessibility(visitor, self)
107889    }
107890
107891    #[inline]
107892    fn fold_children_with(self, visitor: &mut V) -> Self {
107893        self.map(|inner| <Accessibility as FoldWith<V>>::fold_with(inner, visitor))
107894    }
107895}
107896impl<V: ?Sized + Fold> FoldWith<V> for Option<swc_atoms::Atom> {
107897    #[doc = "Calls [Fold`::fold_opt_atom`] with `self`. (Extra impl)"]
107898    #[inline]
107899    fn fold_with(self, visitor: &mut V) -> Self {
107900        <V as Fold>::fold_opt_atom(visitor, self)
107901    }
107902
107903    #[inline]
107904    fn fold_children_with(self, visitor: &mut V) -> Self {
107905        self.map(|inner| <swc_atoms::Atom as FoldWith<V>>::fold_with(inner, visitor))
107906    }
107907}
107908impl<V: ?Sized + Fold> FoldWith<V> for Option<BlockStmt> {
107909    #[doc = "Calls [Fold`::fold_opt_block_stmt`] with `self`. (Extra impl)"]
107910    #[inline]
107911    fn fold_with(self, visitor: &mut V) -> Self {
107912        <V as Fold>::fold_opt_block_stmt(visitor, self)
107913    }
107914
107915    #[inline]
107916    fn fold_children_with(self, visitor: &mut V) -> Self {
107917        self.map(|inner| <BlockStmt as FoldWith<V>>::fold_with(inner, visitor))
107918    }
107919}
107920impl<V: ?Sized + Fold> FoldWith<V> for Option<CatchClause> {
107921    #[doc = "Calls [Fold`::fold_opt_catch_clause`] with `self`. (Extra impl)"]
107922    #[inline]
107923    fn fold_with(self, visitor: &mut V) -> Self {
107924        <V as Fold>::fold_opt_catch_clause(visitor, self)
107925    }
107926
107927    #[inline]
107928    fn fold_children_with(self, visitor: &mut V) -> Self {
107929        self.map(|inner| <CatchClause as FoldWith<V>>::fold_with(inner, visitor))
107930    }
107931}
107932impl<V: ?Sized + Fold> FoldWith<V> for Option<Box<Expr>> {
107933    #[doc = "Calls [Fold`::fold_opt_expr`] with `self`. (Extra impl)"]
107934    #[inline]
107935    fn fold_with(self, visitor: &mut V) -> Self {
107936        <V as Fold>::fold_opt_expr(visitor, self)
107937    }
107938
107939    #[inline]
107940    fn fold_children_with(self, visitor: &mut V) -> Self {
107941        self.map(|inner| <Box<Expr> as FoldWith<V>>::fold_with(inner, visitor))
107942    }
107943}
107944impl<V: ?Sized + Fold> FoldWith<V> for Option<ExprOrSpread> {
107945    #[doc = "Calls [Fold`::fold_opt_expr_or_spread`] with `self`. (Extra impl)"]
107946    #[inline]
107947    fn fold_with(self, visitor: &mut V) -> Self {
107948        <V as Fold>::fold_opt_expr_or_spread(visitor, self)
107949    }
107950
107951    #[inline]
107952    fn fold_children_with(self, visitor: &mut V) -> Self {
107953        self.map(|inner| <ExprOrSpread as FoldWith<V>>::fold_with(inner, visitor))
107954    }
107955}
107956impl<V: ?Sized + Fold> FoldWith<V> for Option<Vec<ExprOrSpread>> {
107957    #[doc = "Calls [Fold`::fold_opt_expr_or_spreads`] with `self`. (Extra impl)"]
107958    #[inline]
107959    fn fold_with(self, visitor: &mut V) -> Self {
107960        <V as Fold>::fold_opt_expr_or_spreads(visitor, self)
107961    }
107962
107963    #[inline]
107964    fn fold_children_with(self, visitor: &mut V) -> Self {
107965        self.map(|inner| <Vec<ExprOrSpread> as FoldWith<V>>::fold_with(inner, visitor))
107966    }
107967}
107968impl<V: ?Sized + Fold> FoldWith<V> for Option<Ident> {
107969    #[doc = "Calls [Fold`::fold_opt_ident`] with `self`. (Extra impl)"]
107970    #[inline]
107971    fn fold_with(self, visitor: &mut V) -> Self {
107972        <V as Fold>::fold_opt_ident(visitor, self)
107973    }
107974
107975    #[inline]
107976    fn fold_children_with(self, visitor: &mut V) -> Self {
107977        self.map(|inner| <Ident as FoldWith<V>>::fold_with(inner, visitor))
107978    }
107979}
107980impl<V: ?Sized + Fold> FoldWith<V> for Option<JSXAttrValue> {
107981    #[doc = "Calls [Fold`::fold_opt_jsx_attr_value`] with `self`. (Extra impl)"]
107982    #[inline]
107983    fn fold_with(self, visitor: &mut V) -> Self {
107984        <V as Fold>::fold_opt_jsx_attr_value(visitor, self)
107985    }
107986
107987    #[inline]
107988    fn fold_children_with(self, visitor: &mut V) -> Self {
107989        self.map(|inner| <JSXAttrValue as FoldWith<V>>::fold_with(inner, visitor))
107990    }
107991}
107992impl<V: ?Sized + Fold> FoldWith<V> for Option<JSXClosingElement> {
107993    #[doc = "Calls [Fold`::fold_opt_jsx_closing_element`] with `self`. (Extra impl)"]
107994    #[inline]
107995    fn fold_with(self, visitor: &mut V) -> Self {
107996        <V as Fold>::fold_opt_jsx_closing_element(visitor, self)
107997    }
107998
107999    #[inline]
108000    fn fold_children_with(self, visitor: &mut V) -> Self {
108001        self.map(|inner| <JSXClosingElement as FoldWith<V>>::fold_with(inner, visitor))
108002    }
108003}
108004impl<V: ?Sized + Fold> FoldWith<V> for Option<ModuleExportName> {
108005    #[doc = "Calls [Fold`::fold_opt_module_export_name`] with `self`. (Extra impl)"]
108006    #[inline]
108007    fn fold_with(self, visitor: &mut V) -> Self {
108008        <V as Fold>::fold_opt_module_export_name(visitor, self)
108009    }
108010
108011    #[inline]
108012    fn fold_children_with(self, visitor: &mut V) -> Self {
108013        self.map(|inner| <ModuleExportName as FoldWith<V>>::fold_with(inner, visitor))
108014    }
108015}
108016impl<V: ?Sized + Fold> FoldWith<V> for Option<Box<ObjectLit>> {
108017    #[doc = "Calls [Fold`::fold_opt_object_lit`] with `self`. (Extra impl)"]
108018    #[inline]
108019    fn fold_with(self, visitor: &mut V) -> Self {
108020        <V as Fold>::fold_opt_object_lit(visitor, self)
108021    }
108022
108023    #[inline]
108024    fn fold_children_with(self, visitor: &mut V) -> Self {
108025        self.map(|inner| <Box<ObjectLit> as FoldWith<V>>::fold_with(inner, visitor))
108026    }
108027}
108028impl<V: ?Sized + Fold> FoldWith<V> for Option<Pat> {
108029    #[doc = "Calls [Fold`::fold_opt_pat`] with `self`. (Extra impl)"]
108030    #[inline]
108031    fn fold_with(self, visitor: &mut V) -> Self {
108032        <V as Fold>::fold_opt_pat(visitor, self)
108033    }
108034
108035    #[inline]
108036    fn fold_children_with(self, visitor: &mut V) -> Self {
108037        self.map(|inner| <Pat as FoldWith<V>>::fold_with(inner, visitor))
108038    }
108039}
108040impl<V: ?Sized + Fold> FoldWith<V> for Option<swc_common::Span> {
108041    #[doc = "Calls [Fold`::fold_opt_span`] with `self`. (Extra impl)"]
108042    #[inline]
108043    fn fold_with(self, visitor: &mut V) -> Self {
108044        <V as Fold>::fold_opt_span(visitor, self)
108045    }
108046
108047    #[inline]
108048    fn fold_children_with(self, visitor: &mut V) -> Self {
108049        self.map(|inner| <swc_common::Span as FoldWith<V>>::fold_with(inner, visitor))
108050    }
108051}
108052impl<V: ?Sized + Fold> FoldWith<V> for Option<Box<Stmt>> {
108053    #[doc = "Calls [Fold`::fold_opt_stmt`] with `self`. (Extra impl)"]
108054    #[inline]
108055    fn fold_with(self, visitor: &mut V) -> Self {
108056        <V as Fold>::fold_opt_stmt(visitor, self)
108057    }
108058
108059    #[inline]
108060    fn fold_children_with(self, visitor: &mut V) -> Self {
108061        self.map(|inner| <Box<Stmt> as FoldWith<V>>::fold_with(inner, visitor))
108062    }
108063}
108064impl<V: ?Sized + Fold> FoldWith<V> for Option<Box<Str>> {
108065    #[doc = "Calls [Fold`::fold_opt_str`] with `self`. (Extra impl)"]
108066    #[inline]
108067    fn fold_with(self, visitor: &mut V) -> Self {
108068        <V as Fold>::fold_opt_str(visitor, self)
108069    }
108070
108071    #[inline]
108072    fn fold_children_with(self, visitor: &mut V) -> Self {
108073        self.map(|inner| <Box<Str> as FoldWith<V>>::fold_with(inner, visitor))
108074    }
108075}
108076impl<V: ?Sized + Fold> FoldWith<V> for Option<TruePlusMinus> {
108077    #[doc = "Calls [Fold`::fold_opt_true_plus_minus`] with `self`. (Extra impl)"]
108078    #[inline]
108079    fn fold_with(self, visitor: &mut V) -> Self {
108080        <V as Fold>::fold_opt_true_plus_minus(visitor, self)
108081    }
108082
108083    #[inline]
108084    fn fold_children_with(self, visitor: &mut V) -> Self {
108085        self.map(|inner| <TruePlusMinus as FoldWith<V>>::fold_with(inner, visitor))
108086    }
108087}
108088impl<V: ?Sized + Fold> FoldWith<V> for Option<TsEntityName> {
108089    #[doc = "Calls [Fold`::fold_opt_ts_entity_name`] with `self`. (Extra impl)"]
108090    #[inline]
108091    fn fold_with(self, visitor: &mut V) -> Self {
108092        <V as Fold>::fold_opt_ts_entity_name(visitor, self)
108093    }
108094
108095    #[inline]
108096    fn fold_children_with(self, visitor: &mut V) -> Self {
108097        self.map(|inner| <TsEntityName as FoldWith<V>>::fold_with(inner, visitor))
108098    }
108099}
108100impl<V: ?Sized + Fold> FoldWith<V> for Option<TsImportCallOptions> {
108101    #[doc = "Calls [Fold`::fold_opt_ts_import_call_options`] with `self`. (Extra impl)"]
108102    #[inline]
108103    fn fold_with(self, visitor: &mut V) -> Self {
108104        <V as Fold>::fold_opt_ts_import_call_options(visitor, self)
108105    }
108106
108107    #[inline]
108108    fn fold_children_with(self, visitor: &mut V) -> Self {
108109        self.map(|inner| <TsImportCallOptions as FoldWith<V>>::fold_with(inner, visitor))
108110    }
108111}
108112impl<V: ?Sized + Fold> FoldWith<V> for Option<TsNamespaceBody> {
108113    #[doc = "Calls [Fold`::fold_opt_ts_namespace_body`] with `self`. (Extra impl)"]
108114    #[inline]
108115    fn fold_with(self, visitor: &mut V) -> Self {
108116        <V as Fold>::fold_opt_ts_namespace_body(visitor, self)
108117    }
108118
108119    #[inline]
108120    fn fold_children_with(self, visitor: &mut V) -> Self {
108121        self.map(|inner| <TsNamespaceBody as FoldWith<V>>::fold_with(inner, visitor))
108122    }
108123}
108124impl<V: ?Sized + Fold> FoldWith<V> for Option<Box<TsType>> {
108125    #[doc = "Calls [Fold`::fold_opt_ts_type`] with `self`. (Extra impl)"]
108126    #[inline]
108127    fn fold_with(self, visitor: &mut V) -> Self {
108128        <V as Fold>::fold_opt_ts_type(visitor, self)
108129    }
108130
108131    #[inline]
108132    fn fold_children_with(self, visitor: &mut V) -> Self {
108133        self.map(|inner| <Box<TsType> as FoldWith<V>>::fold_with(inner, visitor))
108134    }
108135}
108136impl<V: ?Sized + Fold> FoldWith<V> for Option<Box<TsTypeAnn>> {
108137    #[doc = "Calls [Fold`::fold_opt_ts_type_ann`] with `self`. (Extra impl)"]
108138    #[inline]
108139    fn fold_with(self, visitor: &mut V) -> Self {
108140        <V as Fold>::fold_opt_ts_type_ann(visitor, self)
108141    }
108142
108143    #[inline]
108144    fn fold_children_with(self, visitor: &mut V) -> Self {
108145        self.map(|inner| <Box<TsTypeAnn> as FoldWith<V>>::fold_with(inner, visitor))
108146    }
108147}
108148impl<V: ?Sized + Fold> FoldWith<V> for Option<Box<TsTypeParamDecl>> {
108149    #[doc = "Calls [Fold`::fold_opt_ts_type_param_decl`] with `self`. (Extra impl)"]
108150    #[inline]
108151    fn fold_with(self, visitor: &mut V) -> Self {
108152        <V as Fold>::fold_opt_ts_type_param_decl(visitor, self)
108153    }
108154
108155    #[inline]
108156    fn fold_children_with(self, visitor: &mut V) -> Self {
108157        self.map(|inner| <Box<TsTypeParamDecl> as FoldWith<V>>::fold_with(inner, visitor))
108158    }
108159}
108160impl<V: ?Sized + Fold> FoldWith<V> for Option<Box<TsTypeParamInstantiation>> {
108161    #[doc = "Calls [Fold`::fold_opt_ts_type_param_instantiation`] with `self`. (Extra impl)"]
108162    #[inline]
108163    fn fold_with(self, visitor: &mut V) -> Self {
108164        <V as Fold>::fold_opt_ts_type_param_instantiation(visitor, self)
108165    }
108166
108167    #[inline]
108168    fn fold_children_with(self, visitor: &mut V) -> Self {
108169        self.map(|inner| <Box<TsTypeParamInstantiation> as FoldWith<V>>::fold_with(inner, visitor))
108170    }
108171}
108172impl<V: ?Sized + Fold> FoldWith<V> for Option<VarDeclOrExpr> {
108173    #[doc = "Calls [Fold`::fold_opt_var_decl_or_expr`] with `self`. (Extra impl)"]
108174    #[inline]
108175    fn fold_with(self, visitor: &mut V) -> Self {
108176        <V as Fold>::fold_opt_var_decl_or_expr(visitor, self)
108177    }
108178
108179    #[inline]
108180    fn fold_children_with(self, visitor: &mut V) -> Self {
108181        self.map(|inner| <VarDeclOrExpr as FoldWith<V>>::fold_with(inner, visitor))
108182    }
108183}
108184impl<V: ?Sized + Fold> FoldWith<V> for Vec<Option<ExprOrSpread>> {
108185    #[doc = "Calls [Fold`::fold_opt_vec_expr_or_spreads`] with `self`. (Extra impl)"]
108186    #[inline]
108187    fn fold_with(self, visitor: &mut V) -> Self {
108188        <V as Fold>::fold_opt_vec_expr_or_spreads(visitor, self)
108189    }
108190
108191    #[inline]
108192    fn fold_children_with(self, visitor: &mut V) -> Self {
108193        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
108194            <Option<ExprOrSpread> as FoldWith<V>>::fold_with(item, visitor)
108195        })
108196    }
108197}
108198impl<V: ?Sized + Fold> FoldWith<V> for Vec<Option<Pat>> {
108199    #[doc = "Calls [Fold`::fold_opt_vec_pats`] with `self`. (Extra impl)"]
108200    #[inline]
108201    fn fold_with(self, visitor: &mut V) -> Self {
108202        <V as Fold>::fold_opt_vec_pats(visitor, self)
108203    }
108204
108205    #[inline]
108206    fn fold_children_with(self, visitor: &mut V) -> Self {
108207        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
108208            <Option<Pat> as FoldWith<V>>::fold_with(item, visitor)
108209        })
108210    }
108211}
108212impl<V: ?Sized + Fold> FoldWith<V> for Vec<ParamOrTsParamProp> {
108213    #[doc = "Calls [Fold`::fold_param_or_ts_param_props`] with `self`. (Extra impl)"]
108214    #[inline]
108215    fn fold_with(self, visitor: &mut V) -> Self {
108216        <V as Fold>::fold_param_or_ts_param_props(visitor, self)
108217    }
108218
108219    #[inline]
108220    fn fold_children_with(self, visitor: &mut V) -> Self {
108221        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
108222            <ParamOrTsParamProp as FoldWith<V>>::fold_with(item, visitor)
108223        })
108224    }
108225}
108226impl<V: ?Sized + Fold> FoldWith<V> for Vec<Param> {
108227    #[doc = "Calls [Fold`::fold_params`] with `self`. (Extra impl)"]
108228    #[inline]
108229    fn fold_with(self, visitor: &mut V) -> Self {
108230        <V as Fold>::fold_params(visitor, self)
108231    }
108232
108233    #[inline]
108234    fn fold_children_with(self, visitor: &mut V) -> Self {
108235        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
108236            <Param as FoldWith<V>>::fold_with(item, visitor)
108237        })
108238    }
108239}
108240impl<V: ?Sized + Fold> FoldWith<V> for Vec<Pat> {
108241    #[doc = "Calls [Fold`::fold_pats`] with `self`. (Extra impl)"]
108242    #[inline]
108243    fn fold_with(self, visitor: &mut V) -> Self {
108244        <V as Fold>::fold_pats(visitor, self)
108245    }
108246
108247    #[inline]
108248    fn fold_children_with(self, visitor: &mut V) -> Self {
108249        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
108250            <Pat as FoldWith<V>>::fold_with(item, visitor)
108251        })
108252    }
108253}
108254impl<V: ?Sized + Fold> FoldWith<V> for Vec<PropOrSpread> {
108255    #[doc = "Calls [Fold`::fold_prop_or_spreads`] with `self`. (Extra impl)"]
108256    #[inline]
108257    fn fold_with(self, visitor: &mut V) -> Self {
108258        <V as Fold>::fold_prop_or_spreads(visitor, self)
108259    }
108260
108261    #[inline]
108262    fn fold_children_with(self, visitor: &mut V) -> Self {
108263        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
108264            <PropOrSpread as FoldWith<V>>::fold_with(item, visitor)
108265        })
108266    }
108267}
108268impl<V: ?Sized + Fold> FoldWith<V> for swc_common::Span {
108269    #[doc = "Calls [Fold`::fold_span`] with `self`. (Extra impl)"]
108270    #[inline]
108271    fn fold_with(self, visitor: &mut V) -> Self {
108272        <V as Fold>::fold_span(visitor, self)
108273    }
108274
108275    #[inline]
108276    fn fold_children_with(self, visitor: &mut V) -> Self {
108277        self
108278    }
108279}
108280impl<V: ?Sized + Fold> FoldWith<V> for Vec<Stmt> {
108281    #[doc = "Calls [Fold`::fold_stmts`] with `self`. (Extra impl)"]
108282    #[inline]
108283    fn fold_with(self, visitor: &mut V) -> Self {
108284        <V as Fold>::fold_stmts(visitor, self)
108285    }
108286
108287    #[inline]
108288    fn fold_children_with(self, visitor: &mut V) -> Self {
108289        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
108290            <Stmt as FoldWith<V>>::fold_with(item, visitor)
108291        })
108292    }
108293}
108294impl<V: ?Sized + Fold> FoldWith<V> for Vec<SwitchCase> {
108295    #[doc = "Calls [Fold`::fold_switch_cases`] with `self`. (Extra impl)"]
108296    #[inline]
108297    fn fold_with(self, visitor: &mut V) -> Self {
108298        <V as Fold>::fold_switch_cases(visitor, self)
108299    }
108300
108301    #[inline]
108302    fn fold_children_with(self, visitor: &mut V) -> Self {
108303        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
108304            <SwitchCase as FoldWith<V>>::fold_with(item, visitor)
108305        })
108306    }
108307}
108308impl<V: ?Sized + Fold> FoldWith<V> for swc_common::SyntaxContext {
108309    #[doc = "Calls [Fold`::fold_syntax_context`] with `self`. (Extra impl)"]
108310    #[inline]
108311    fn fold_with(self, visitor: &mut V) -> Self {
108312        <V as Fold>::fold_syntax_context(visitor, self)
108313    }
108314
108315    #[inline]
108316    fn fold_children_with(self, visitor: &mut V) -> Self {
108317        self
108318    }
108319}
108320impl<V: ?Sized + Fold> FoldWith<V> for Vec<TplElement> {
108321    #[doc = "Calls [Fold`::fold_tpl_elements`] with `self`. (Extra impl)"]
108322    #[inline]
108323    fn fold_with(self, visitor: &mut V) -> Self {
108324        <V as Fold>::fold_tpl_elements(visitor, self)
108325    }
108326
108327    #[inline]
108328    fn fold_children_with(self, visitor: &mut V) -> Self {
108329        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
108330            <TplElement as FoldWith<V>>::fold_with(item, visitor)
108331        })
108332    }
108333}
108334impl<V: ?Sized + Fold> FoldWith<V> for Vec<TsEnumMember> {
108335    #[doc = "Calls [Fold`::fold_ts_enum_members`] with `self`. (Extra impl)"]
108336    #[inline]
108337    fn fold_with(self, visitor: &mut V) -> Self {
108338        <V as Fold>::fold_ts_enum_members(visitor, self)
108339    }
108340
108341    #[inline]
108342    fn fold_children_with(self, visitor: &mut V) -> Self {
108343        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
108344            <TsEnumMember as FoldWith<V>>::fold_with(item, visitor)
108345        })
108346    }
108347}
108348impl<V: ?Sized + Fold> FoldWith<V> for Vec<TsExprWithTypeArgs> {
108349    #[doc = "Calls [Fold`::fold_ts_expr_with_type_argss`] with `self`. (Extra impl)"]
108350    #[inline]
108351    fn fold_with(self, visitor: &mut V) -> Self {
108352        <V as Fold>::fold_ts_expr_with_type_argss(visitor, self)
108353    }
108354
108355    #[inline]
108356    fn fold_children_with(self, visitor: &mut V) -> Self {
108357        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
108358            <TsExprWithTypeArgs as FoldWith<V>>::fold_with(item, visitor)
108359        })
108360    }
108361}
108362impl<V: ?Sized + Fold> FoldWith<V> for Vec<TsFnParam> {
108363    #[doc = "Calls [Fold`::fold_ts_fn_params`] with `self`. (Extra impl)"]
108364    #[inline]
108365    fn fold_with(self, visitor: &mut V) -> Self {
108366        <V as Fold>::fold_ts_fn_params(visitor, self)
108367    }
108368
108369    #[inline]
108370    fn fold_children_with(self, visitor: &mut V) -> Self {
108371        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
108372            <TsFnParam as FoldWith<V>>::fold_with(item, visitor)
108373        })
108374    }
108375}
108376impl<V: ?Sized + Fold> FoldWith<V> for Vec<TsTupleElement> {
108377    #[doc = "Calls [Fold`::fold_ts_tuple_elements`] with `self`. (Extra impl)"]
108378    #[inline]
108379    fn fold_with(self, visitor: &mut V) -> Self {
108380        <V as Fold>::fold_ts_tuple_elements(visitor, self)
108381    }
108382
108383    #[inline]
108384    fn fold_children_with(self, visitor: &mut V) -> Self {
108385        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
108386            <TsTupleElement as FoldWith<V>>::fold_with(item, visitor)
108387        })
108388    }
108389}
108390impl<V: ?Sized + Fold> FoldWith<V> for Vec<TsTypeElement> {
108391    #[doc = "Calls [Fold`::fold_ts_type_elements`] with `self`. (Extra impl)"]
108392    #[inline]
108393    fn fold_with(self, visitor: &mut V) -> Self {
108394        <V as Fold>::fold_ts_type_elements(visitor, self)
108395    }
108396
108397    #[inline]
108398    fn fold_children_with(self, visitor: &mut V) -> Self {
108399        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
108400            <TsTypeElement as FoldWith<V>>::fold_with(item, visitor)
108401        })
108402    }
108403}
108404impl<V: ?Sized + Fold> FoldWith<V> for Vec<TsTypeParam> {
108405    #[doc = "Calls [Fold`::fold_ts_type_params`] with `self`. (Extra impl)"]
108406    #[inline]
108407    fn fold_with(self, visitor: &mut V) -> Self {
108408        <V as Fold>::fold_ts_type_params(visitor, self)
108409    }
108410
108411    #[inline]
108412    fn fold_children_with(self, visitor: &mut V) -> Self {
108413        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
108414            <TsTypeParam as FoldWith<V>>::fold_with(item, visitor)
108415        })
108416    }
108417}
108418impl<V: ?Sized + Fold> FoldWith<V> for Vec<Box<TsType>> {
108419    #[doc = "Calls [Fold`::fold_ts_types`] with `self`. (Extra impl)"]
108420    #[inline]
108421    fn fold_with(self, visitor: &mut V) -> Self {
108422        <V as Fold>::fold_ts_types(visitor, self)
108423    }
108424
108425    #[inline]
108426    fn fold_children_with(self, visitor: &mut V) -> Self {
108427        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
108428            <Box<TsType> as FoldWith<V>>::fold_with(item, visitor)
108429        })
108430    }
108431}
108432impl<V: ?Sized + Fold> FoldWith<V> for Vec<VarDeclarator> {
108433    #[doc = "Calls [Fold`::fold_var_declarators`] with `self`. (Extra impl)"]
108434    #[inline]
108435    fn fold_with(self, visitor: &mut V) -> Self {
108436        <V as Fold>::fold_var_declarators(visitor, self)
108437    }
108438
108439    #[inline]
108440    fn fold_children_with(self, visitor: &mut V) -> Self {
108441        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
108442            <VarDeclarator as FoldWith<V>>::fold_with(item, visitor)
108443        })
108444    }
108445}
108446impl<V, T> FoldWith<V> for std::boxed::Box<T>
108447where
108448    V: ?Sized + Fold,
108449    T: FoldWith<V>,
108450{
108451    #[inline]
108452    fn fold_with(self, visitor: &mut V) -> Self {
108453        swc_visit::util::map::Map::map(self, |inner| <T as FoldWith<V>>::fold_with(inner, visitor))
108454    }
108455
108456    #[inline]
108457    fn fold_children_with(self, visitor: &mut V) -> Self {
108458        swc_visit::util::map::Map::map(self, |inner| {
108459            <T as FoldWith<V>>::fold_children_with(inner, visitor)
108460        })
108461    }
108462}
108463#[doc = r" A visitor trait for traversing the AST."]
108464#[cfg(any(docsrs, feature = "path"))]
108465#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
108466pub trait FoldAstPath {
108467    #[doc = "Visit a node of type `Accessibility`.\n\nBy default, this method calls \
108468             [`Accessibility::fold_children_with_ast_path`]. If you want to recurse, you need to \
108469             call it manually."]
108470    #[inline]
108471    fn fold_accessibility(
108472        &mut self,
108473        node: Accessibility,
108474        __ast_path: &mut AstKindPath,
108475    ) -> Accessibility {
108476        <Accessibility as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108477            node, self, __ast_path,
108478        )
108479    }
108480    #[doc = "Visit a node of type `ArrayLit`.\n\nBy default, this method calls \
108481             [`ArrayLit::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108482             it manually."]
108483    #[inline]
108484    fn fold_array_lit(&mut self, node: ArrayLit, __ast_path: &mut AstKindPath) -> ArrayLit {
108485        <ArrayLit as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108486    }
108487    #[doc = "Visit a node of type `ArrayPat`.\n\nBy default, this method calls \
108488             [`ArrayPat::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108489             it manually."]
108490    #[inline]
108491    fn fold_array_pat(&mut self, node: ArrayPat, __ast_path: &mut AstKindPath) -> ArrayPat {
108492        <ArrayPat as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108493    }
108494    #[doc = "Visit a node of type `ArrowExpr`.\n\nBy default, this method calls \
108495             [`ArrowExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108496             it manually."]
108497    #[inline]
108498    fn fold_arrow_expr(&mut self, node: ArrowExpr, __ast_path: &mut AstKindPath) -> ArrowExpr {
108499        <ArrowExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108500    }
108501    #[doc = "Visit a node of type `AssignExpr`.\n\nBy default, this method calls \
108502             [`AssignExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108503             it manually."]
108504    #[inline]
108505    fn fold_assign_expr(&mut self, node: AssignExpr, __ast_path: &mut AstKindPath) -> AssignExpr {
108506        <AssignExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108507    }
108508    #[doc = "Visit a node of type `AssignOp`.\n\nBy default, this method calls \
108509             [`AssignOp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108510             it manually."]
108511    #[inline]
108512    fn fold_assign_op(&mut self, node: AssignOp, __ast_path: &mut AstKindPath) -> AssignOp {
108513        <AssignOp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108514    }
108515    #[doc = "Visit a node of type `AssignPat`.\n\nBy default, this method calls \
108516             [`AssignPat::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108517             it manually."]
108518    #[inline]
108519    fn fold_assign_pat(&mut self, node: AssignPat, __ast_path: &mut AstKindPath) -> AssignPat {
108520        <AssignPat as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108521    }
108522    #[doc = "Visit a node of type `AssignPatProp`.\n\nBy default, this method calls \
108523             [`AssignPatProp::fold_children_with_ast_path`]. If you want to recurse, you need to \
108524             call it manually."]
108525    #[inline]
108526    fn fold_assign_pat_prop(
108527        &mut self,
108528        node: AssignPatProp,
108529        __ast_path: &mut AstKindPath,
108530    ) -> AssignPatProp {
108531        <AssignPatProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108532            node, self, __ast_path,
108533        )
108534    }
108535    #[doc = "Visit a node of type `AssignProp`.\n\nBy default, this method calls \
108536             [`AssignProp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108537             it manually."]
108538    #[inline]
108539    fn fold_assign_prop(&mut self, node: AssignProp, __ast_path: &mut AstKindPath) -> AssignProp {
108540        <AssignProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108541    }
108542    #[doc = "Visit a node of type `AssignTarget`.\n\nBy default, this method calls \
108543             [`AssignTarget::fold_children_with_ast_path`]. If you want to recurse, you need to \
108544             call it manually."]
108545    #[inline]
108546    fn fold_assign_target(
108547        &mut self,
108548        node: AssignTarget,
108549        __ast_path: &mut AstKindPath,
108550    ) -> AssignTarget {
108551        <AssignTarget as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108552    }
108553    #[doc = "Visit a node of type `AssignTargetPat`.\n\nBy default, this method calls \
108554             [`AssignTargetPat::fold_children_with_ast_path`]. If you want to recurse, you need to \
108555             call it manually."]
108556    #[inline]
108557    fn fold_assign_target_pat(
108558        &mut self,
108559        node: AssignTargetPat,
108560        __ast_path: &mut AstKindPath,
108561    ) -> AssignTargetPat {
108562        <AssignTargetPat as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108563            node, self, __ast_path,
108564        )
108565    }
108566    #[doc = "Visit a node of type `swc_atoms :: Atom`.\n\nBy default, this method calls \
108567             [`swc_atoms :: Atom::fold_children_with_ast_path`]. If you want to recurse, you need \
108568             to call it manually."]
108569    #[inline]
108570    fn fold_atom(
108571        &mut self,
108572        node: swc_atoms::Atom,
108573        __ast_path: &mut AstKindPath,
108574    ) -> swc_atoms::Atom {
108575        <swc_atoms::Atom as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108576            node, self, __ast_path,
108577        )
108578    }
108579    #[doc = "Visit a node of type `AutoAccessor`.\n\nBy default, this method calls \
108580             [`AutoAccessor::fold_children_with_ast_path`]. If you want to recurse, you need to \
108581             call it manually."]
108582    #[inline]
108583    fn fold_auto_accessor(
108584        &mut self,
108585        node: AutoAccessor,
108586        __ast_path: &mut AstKindPath,
108587    ) -> AutoAccessor {
108588        <AutoAccessor as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108589    }
108590    #[doc = "Visit a node of type `AwaitExpr`.\n\nBy default, this method calls \
108591             [`AwaitExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108592             it manually."]
108593    #[inline]
108594    fn fold_await_expr(&mut self, node: AwaitExpr, __ast_path: &mut AstKindPath) -> AwaitExpr {
108595        <AwaitExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108596    }
108597    #[doc = "Visit a node of type `BigInt`.\n\nBy default, this method calls \
108598             [`BigInt::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108599             manually."]
108600    #[inline]
108601    fn fold_big_int(&mut self, node: BigInt, __ast_path: &mut AstKindPath) -> BigInt {
108602        <BigInt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108603    }
108604    #[doc = "Visit a node of type `BigIntValue`.\n\nBy default, this method calls \
108605             [`BigIntValue::fold_children_with_ast_path`]. If you want to recurse, you need to \
108606             call it manually."]
108607    #[inline]
108608    fn fold_big_int_value(
108609        &mut self,
108610        node: BigIntValue,
108611        __ast_path: &mut AstKindPath,
108612    ) -> BigIntValue {
108613        <BigIntValue as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108614    }
108615    #[doc = "Visit a node of type `BinExpr`.\n\nBy default, this method calls \
108616             [`BinExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108617             manually."]
108618    #[inline]
108619    fn fold_bin_expr(&mut self, node: BinExpr, __ast_path: &mut AstKindPath) -> BinExpr {
108620        <BinExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108621    }
108622    #[doc = "Visit a node of type `BinaryOp`.\n\nBy default, this method calls \
108623             [`BinaryOp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108624             it manually."]
108625    #[inline]
108626    fn fold_binary_op(&mut self, node: BinaryOp, __ast_path: &mut AstKindPath) -> BinaryOp {
108627        <BinaryOp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108628    }
108629    #[doc = "Visit a node of type `BindingIdent`.\n\nBy default, this method calls \
108630             [`BindingIdent::fold_children_with_ast_path`]. If you want to recurse, you need to \
108631             call it manually."]
108632    #[inline]
108633    fn fold_binding_ident(
108634        &mut self,
108635        node: BindingIdent,
108636        __ast_path: &mut AstKindPath,
108637    ) -> BindingIdent {
108638        <BindingIdent as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108639    }
108640    #[doc = "Visit a node of type `BlockStmt`.\n\nBy default, this method calls \
108641             [`BlockStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108642             it manually."]
108643    #[inline]
108644    fn fold_block_stmt(&mut self, node: BlockStmt, __ast_path: &mut AstKindPath) -> BlockStmt {
108645        <BlockStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108646    }
108647    #[doc = "Visit a node of type `BlockStmtOrExpr`.\n\nBy default, this method calls \
108648             [`BlockStmtOrExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
108649             call it manually."]
108650    #[inline]
108651    fn fold_block_stmt_or_expr(
108652        &mut self,
108653        node: BlockStmtOrExpr,
108654        __ast_path: &mut AstKindPath,
108655    ) -> BlockStmtOrExpr {
108656        <BlockStmtOrExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108657            node, self, __ast_path,
108658        )
108659    }
108660    #[doc = "Visit a node of type `Bool`.\n\nBy default, this method calls \
108661             [`Bool::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108662             manually."]
108663    #[inline]
108664    fn fold_bool(&mut self, node: Bool, __ast_path: &mut AstKindPath) -> Bool {
108665        <Bool as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108666    }
108667    #[doc = "Visit a node of type `BreakStmt`.\n\nBy default, this method calls \
108668             [`BreakStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108669             it manually."]
108670    #[inline]
108671    fn fold_break_stmt(&mut self, node: BreakStmt, __ast_path: &mut AstKindPath) -> BreakStmt {
108672        <BreakStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108673    }
108674    #[doc = "Visit a node of type `CallExpr`.\n\nBy default, this method calls \
108675             [`CallExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108676             it manually."]
108677    #[inline]
108678    fn fold_call_expr(&mut self, node: CallExpr, __ast_path: &mut AstKindPath) -> CallExpr {
108679        <CallExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108680    }
108681    #[doc = "Visit a node of type `Callee`.\n\nBy default, this method calls \
108682             [`Callee::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108683             manually."]
108684    #[inline]
108685    fn fold_callee(&mut self, node: Callee, __ast_path: &mut AstKindPath) -> Callee {
108686        <Callee as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108687    }
108688    #[doc = "Visit a node of type `CatchClause`.\n\nBy default, this method calls \
108689             [`CatchClause::fold_children_with_ast_path`]. If you want to recurse, you need to \
108690             call it manually."]
108691    #[inline]
108692    fn fold_catch_clause(
108693        &mut self,
108694        node: CatchClause,
108695        __ast_path: &mut AstKindPath,
108696    ) -> CatchClause {
108697        <CatchClause as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108698    }
108699    #[doc = "Visit a node of type `Class`.\n\nBy default, this method calls \
108700             [`Class::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108701             manually."]
108702    #[inline]
108703    fn fold_class(&mut self, node: Class, __ast_path: &mut AstKindPath) -> Class {
108704        <Class as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108705    }
108706    #[doc = "Visit a node of type `ClassDecl`.\n\nBy default, this method calls \
108707             [`ClassDecl::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108708             it manually."]
108709    #[inline]
108710    fn fold_class_decl(&mut self, node: ClassDecl, __ast_path: &mut AstKindPath) -> ClassDecl {
108711        <ClassDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108712    }
108713    #[doc = "Visit a node of type `ClassExpr`.\n\nBy default, this method calls \
108714             [`ClassExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108715             it manually."]
108716    #[inline]
108717    fn fold_class_expr(&mut self, node: ClassExpr, __ast_path: &mut AstKindPath) -> ClassExpr {
108718        <ClassExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108719    }
108720    #[doc = "Visit a node of type `ClassMember`.\n\nBy default, this method calls \
108721             [`ClassMember::fold_children_with_ast_path`]. If you want to recurse, you need to \
108722             call it manually."]
108723    #[inline]
108724    fn fold_class_member(
108725        &mut self,
108726        node: ClassMember,
108727        __ast_path: &mut AstKindPath,
108728    ) -> ClassMember {
108729        <ClassMember as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108730    }
108731    #[doc = "Visit a node of type `Vec < ClassMember >`.\n\nBy default, this method calls [`Vec < \
108732             ClassMember >::fold_children_with_ast_path`]. If you want to recurse, you need to \
108733             call it manually."]
108734    #[inline]
108735    fn fold_class_members(
108736        &mut self,
108737        node: Vec<ClassMember>,
108738        __ast_path: &mut AstKindPath,
108739    ) -> Vec<ClassMember> {
108740        <Vec<ClassMember> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108741            node, self, __ast_path,
108742        )
108743    }
108744    #[doc = "Visit a node of type `ClassMethod`.\n\nBy default, this method calls \
108745             [`ClassMethod::fold_children_with_ast_path`]. If you want to recurse, you need to \
108746             call it manually."]
108747    #[inline]
108748    fn fold_class_method(
108749        &mut self,
108750        node: ClassMethod,
108751        __ast_path: &mut AstKindPath,
108752    ) -> ClassMethod {
108753        <ClassMethod as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108754    }
108755    #[doc = "Visit a node of type `ClassProp`.\n\nBy default, this method calls \
108756             [`ClassProp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108757             it manually."]
108758    #[inline]
108759    fn fold_class_prop(&mut self, node: ClassProp, __ast_path: &mut AstKindPath) -> ClassProp {
108760        <ClassProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108761    }
108762    #[doc = "Visit a node of type `ComputedPropName`.\n\nBy default, this method calls \
108763             [`ComputedPropName::fold_children_with_ast_path`]. If you want to recurse, you need \
108764             to call it manually."]
108765    #[inline]
108766    fn fold_computed_prop_name(
108767        &mut self,
108768        node: ComputedPropName,
108769        __ast_path: &mut AstKindPath,
108770    ) -> ComputedPropName {
108771        <ComputedPropName as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108772            node, self, __ast_path,
108773        )
108774    }
108775    #[doc = "Visit a node of type `CondExpr`.\n\nBy default, this method calls \
108776             [`CondExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108777             it manually."]
108778    #[inline]
108779    fn fold_cond_expr(&mut self, node: CondExpr, __ast_path: &mut AstKindPath) -> CondExpr {
108780        <CondExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108781    }
108782    #[doc = "Visit a node of type `Constructor`.\n\nBy default, this method calls \
108783             [`Constructor::fold_children_with_ast_path`]. If you want to recurse, you need to \
108784             call it manually."]
108785    #[inline]
108786    fn fold_constructor(&mut self, node: Constructor, __ast_path: &mut AstKindPath) -> Constructor {
108787        <Constructor as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108788    }
108789    #[doc = "Visit a node of type `ContinueStmt`.\n\nBy default, this method calls \
108790             [`ContinueStmt::fold_children_with_ast_path`]. If you want to recurse, you need to \
108791             call it manually."]
108792    #[inline]
108793    fn fold_continue_stmt(
108794        &mut self,
108795        node: ContinueStmt,
108796        __ast_path: &mut AstKindPath,
108797    ) -> ContinueStmt {
108798        <ContinueStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108799    }
108800    #[doc = "Visit a node of type `DebuggerStmt`.\n\nBy default, this method calls \
108801             [`DebuggerStmt::fold_children_with_ast_path`]. If you want to recurse, you need to \
108802             call it manually."]
108803    #[inline]
108804    fn fold_debugger_stmt(
108805        &mut self,
108806        node: DebuggerStmt,
108807        __ast_path: &mut AstKindPath,
108808    ) -> DebuggerStmt {
108809        <DebuggerStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108810    }
108811    #[doc = "Visit a node of type `Decl`.\n\nBy default, this method calls \
108812             [`Decl::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108813             manually."]
108814    #[inline]
108815    fn fold_decl(&mut self, node: Decl, __ast_path: &mut AstKindPath) -> Decl {
108816        <Decl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108817    }
108818    #[doc = "Visit a node of type `Decorator`.\n\nBy default, this method calls \
108819             [`Decorator::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108820             it manually."]
108821    #[inline]
108822    fn fold_decorator(&mut self, node: Decorator, __ast_path: &mut AstKindPath) -> Decorator {
108823        <Decorator as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108824    }
108825    #[doc = "Visit a node of type `Vec < Decorator >`.\n\nBy default, this method calls [`Vec < \
108826             Decorator >::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108827             it manually."]
108828    #[inline]
108829    fn fold_decorators(
108830        &mut self,
108831        node: Vec<Decorator>,
108832        __ast_path: &mut AstKindPath,
108833    ) -> Vec<Decorator> {
108834        <Vec<Decorator> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108835            node, self, __ast_path,
108836        )
108837    }
108838    #[doc = "Visit a node of type `DefaultDecl`.\n\nBy default, this method calls \
108839             [`DefaultDecl::fold_children_with_ast_path`]. If you want to recurse, you need to \
108840             call it manually."]
108841    #[inline]
108842    fn fold_default_decl(
108843        &mut self,
108844        node: DefaultDecl,
108845        __ast_path: &mut AstKindPath,
108846    ) -> DefaultDecl {
108847        <DefaultDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108848    }
108849    #[doc = "Visit a node of type `DoWhileStmt`.\n\nBy default, this method calls \
108850             [`DoWhileStmt::fold_children_with_ast_path`]. If you want to recurse, you need to \
108851             call it manually."]
108852    #[inline]
108853    fn fold_do_while_stmt(
108854        &mut self,
108855        node: DoWhileStmt,
108856        __ast_path: &mut AstKindPath,
108857    ) -> DoWhileStmt {
108858        <DoWhileStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108859    }
108860    #[doc = "Visit a node of type `EmptyStmt`.\n\nBy default, this method calls \
108861             [`EmptyStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108862             it manually."]
108863    #[inline]
108864    fn fold_empty_stmt(&mut self, node: EmptyStmt, __ast_path: &mut AstKindPath) -> EmptyStmt {
108865        <EmptyStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108866    }
108867    #[doc = "Visit a node of type `ExportAll`.\n\nBy default, this method calls \
108868             [`ExportAll::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108869             it manually."]
108870    #[inline]
108871    fn fold_export_all(&mut self, node: ExportAll, __ast_path: &mut AstKindPath) -> ExportAll {
108872        <ExportAll as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108873    }
108874    #[doc = "Visit a node of type `ExportDecl`.\n\nBy default, this method calls \
108875             [`ExportDecl::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108876             it manually."]
108877    #[inline]
108878    fn fold_export_decl(&mut self, node: ExportDecl, __ast_path: &mut AstKindPath) -> ExportDecl {
108879        <ExportDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108880    }
108881    #[doc = "Visit a node of type `ExportDefaultDecl`.\n\nBy default, this method calls \
108882             [`ExportDefaultDecl::fold_children_with_ast_path`]. If you want to recurse, you need \
108883             to call it manually."]
108884    #[inline]
108885    fn fold_export_default_decl(
108886        &mut self,
108887        node: ExportDefaultDecl,
108888        __ast_path: &mut AstKindPath,
108889    ) -> ExportDefaultDecl {
108890        <ExportDefaultDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108891            node, self, __ast_path,
108892        )
108893    }
108894    #[doc = "Visit a node of type `ExportDefaultExpr`.\n\nBy default, this method calls \
108895             [`ExportDefaultExpr::fold_children_with_ast_path`]. If you want to recurse, you need \
108896             to call it manually."]
108897    #[inline]
108898    fn fold_export_default_expr(
108899        &mut self,
108900        node: ExportDefaultExpr,
108901        __ast_path: &mut AstKindPath,
108902    ) -> ExportDefaultExpr {
108903        <ExportDefaultExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108904            node, self, __ast_path,
108905        )
108906    }
108907    #[doc = "Visit a node of type `ExportDefaultSpecifier`.\n\nBy default, this method calls \
108908             [`ExportDefaultSpecifier::fold_children_with_ast_path`]. If you want to recurse, you \
108909             need to call it manually."]
108910    #[inline]
108911    fn fold_export_default_specifier(
108912        &mut self,
108913        node: ExportDefaultSpecifier,
108914        __ast_path: &mut AstKindPath,
108915    ) -> ExportDefaultSpecifier {
108916        <ExportDefaultSpecifier as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108917            node, self, __ast_path,
108918        )
108919    }
108920    #[doc = "Visit a node of type `ExportNamedSpecifier`.\n\nBy default, this method calls \
108921             [`ExportNamedSpecifier::fold_children_with_ast_path`]. If you want to recurse, you \
108922             need to call it manually."]
108923    #[inline]
108924    fn fold_export_named_specifier(
108925        &mut self,
108926        node: ExportNamedSpecifier,
108927        __ast_path: &mut AstKindPath,
108928    ) -> ExportNamedSpecifier {
108929        <ExportNamedSpecifier as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108930            node, self, __ast_path,
108931        )
108932    }
108933    #[doc = "Visit a node of type `ExportNamespaceSpecifier`.\n\nBy default, this method calls \
108934             [`ExportNamespaceSpecifier::fold_children_with_ast_path`]. If you want to recurse, \
108935             you need to call it manually."]
108936    #[inline]
108937    fn fold_export_namespace_specifier(
108938        &mut self,
108939        node: ExportNamespaceSpecifier,
108940        __ast_path: &mut AstKindPath,
108941    ) -> ExportNamespaceSpecifier {
108942        <ExportNamespaceSpecifier as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108943            node, self, __ast_path,
108944        )
108945    }
108946    #[doc = "Visit a node of type `ExportSpecifier`.\n\nBy default, this method calls \
108947             [`ExportSpecifier::fold_children_with_ast_path`]. If you want to recurse, you need to \
108948             call it manually."]
108949    #[inline]
108950    fn fold_export_specifier(
108951        &mut self,
108952        node: ExportSpecifier,
108953        __ast_path: &mut AstKindPath,
108954    ) -> ExportSpecifier {
108955        <ExportSpecifier as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108956            node, self, __ast_path,
108957        )
108958    }
108959    #[doc = "Visit a node of type `Vec < ExportSpecifier >`.\n\nBy default, this method calls \
108960             [`Vec < ExportSpecifier >::fold_children_with_ast_path`]. If you want to recurse, you \
108961             need to call it manually."]
108962    #[inline]
108963    fn fold_export_specifiers(
108964        &mut self,
108965        node: Vec<ExportSpecifier>,
108966        __ast_path: &mut AstKindPath,
108967    ) -> Vec<ExportSpecifier> {
108968        <Vec<ExportSpecifier> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108969            node, self, __ast_path,
108970        )
108971    }
108972    #[doc = "Visit a node of type `Expr`.\n\nBy default, this method calls \
108973             [`Expr::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108974             manually."]
108975    #[inline]
108976    fn fold_expr(&mut self, node: Expr, __ast_path: &mut AstKindPath) -> Expr {
108977        <Expr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108978    }
108979    #[doc = "Visit a node of type `ExprOrSpread`.\n\nBy default, this method calls \
108980             [`ExprOrSpread::fold_children_with_ast_path`]. If you want to recurse, you need to \
108981             call it manually."]
108982    #[inline]
108983    fn fold_expr_or_spread(
108984        &mut self,
108985        node: ExprOrSpread,
108986        __ast_path: &mut AstKindPath,
108987    ) -> ExprOrSpread {
108988        <ExprOrSpread as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108989    }
108990    #[doc = "Visit a node of type `Vec < ExprOrSpread >`.\n\nBy default, this method calls [`Vec < \
108991             ExprOrSpread >::fold_children_with_ast_path`]. If you want to recurse, you need to \
108992             call it manually."]
108993    #[inline]
108994    fn fold_expr_or_spreads(
108995        &mut self,
108996        node: Vec<ExprOrSpread>,
108997        __ast_path: &mut AstKindPath,
108998    ) -> Vec<ExprOrSpread> {
108999        <Vec<ExprOrSpread> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109000            node, self, __ast_path,
109001        )
109002    }
109003    #[doc = "Visit a node of type `ExprStmt`.\n\nBy default, this method calls \
109004             [`ExprStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109005             it manually."]
109006    #[inline]
109007    fn fold_expr_stmt(&mut self, node: ExprStmt, __ast_path: &mut AstKindPath) -> ExprStmt {
109008        <ExprStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109009    }
109010    #[doc = "Visit a node of type `Vec < Box < Expr > >`.\n\nBy default, this method calls [`Vec < \
109011             Box < Expr > >::fold_children_with_ast_path`]. If you want to recurse, you need to \
109012             call it manually."]
109013    #[inline]
109014    fn fold_exprs(&mut self, node: Vec<Box<Expr>>, __ast_path: &mut AstKindPath) -> Vec<Box<Expr>> {
109015        <Vec<Box<Expr>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109016            node, self, __ast_path,
109017        )
109018    }
109019    #[doc = "Visit a node of type `FnDecl`.\n\nBy default, this method calls \
109020             [`FnDecl::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109021             manually."]
109022    #[inline]
109023    fn fold_fn_decl(&mut self, node: FnDecl, __ast_path: &mut AstKindPath) -> FnDecl {
109024        <FnDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109025    }
109026    #[doc = "Visit a node of type `FnExpr`.\n\nBy default, this method calls \
109027             [`FnExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109028             manually."]
109029    #[inline]
109030    fn fold_fn_expr(&mut self, node: FnExpr, __ast_path: &mut AstKindPath) -> FnExpr {
109031        <FnExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109032    }
109033    #[doc = "Visit a node of type `ForHead`.\n\nBy default, this method calls \
109034             [`ForHead::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109035             manually."]
109036    #[inline]
109037    fn fold_for_head(&mut self, node: ForHead, __ast_path: &mut AstKindPath) -> ForHead {
109038        <ForHead as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109039    }
109040    #[doc = "Visit a node of type `ForInStmt`.\n\nBy default, this method calls \
109041             [`ForInStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109042             it manually."]
109043    #[inline]
109044    fn fold_for_in_stmt(&mut self, node: ForInStmt, __ast_path: &mut AstKindPath) -> ForInStmt {
109045        <ForInStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109046    }
109047    #[doc = "Visit a node of type `ForOfStmt`.\n\nBy default, this method calls \
109048             [`ForOfStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109049             it manually."]
109050    #[inline]
109051    fn fold_for_of_stmt(&mut self, node: ForOfStmt, __ast_path: &mut AstKindPath) -> ForOfStmt {
109052        <ForOfStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109053    }
109054    #[doc = "Visit a node of type `ForStmt`.\n\nBy default, this method calls \
109055             [`ForStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109056             manually."]
109057    #[inline]
109058    fn fold_for_stmt(&mut self, node: ForStmt, __ast_path: &mut AstKindPath) -> ForStmt {
109059        <ForStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109060    }
109061    #[doc = "Visit a node of type `Function`.\n\nBy default, this method calls \
109062             [`Function::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109063             it manually."]
109064    #[inline]
109065    fn fold_function(&mut self, node: Function, __ast_path: &mut AstKindPath) -> Function {
109066        <Function as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109067    }
109068    #[doc = "Visit a node of type `GetterProp`.\n\nBy default, this method calls \
109069             [`GetterProp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109070             it manually."]
109071    #[inline]
109072    fn fold_getter_prop(&mut self, node: GetterProp, __ast_path: &mut AstKindPath) -> GetterProp {
109073        <GetterProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109074    }
109075    #[doc = "Visit a node of type `Ident`.\n\nBy default, this method calls \
109076             [`Ident::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109077             manually."]
109078    #[inline]
109079    fn fold_ident(&mut self, node: Ident, __ast_path: &mut AstKindPath) -> Ident {
109080        <Ident as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109081    }
109082    #[doc = "Visit a node of type `IdentName`.\n\nBy default, this method calls \
109083             [`IdentName::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109084             it manually."]
109085    #[inline]
109086    fn fold_ident_name(&mut self, node: IdentName, __ast_path: &mut AstKindPath) -> IdentName {
109087        <IdentName as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109088    }
109089    #[doc = "Visit a node of type `IfStmt`.\n\nBy default, this method calls \
109090             [`IfStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109091             manually."]
109092    #[inline]
109093    fn fold_if_stmt(&mut self, node: IfStmt, __ast_path: &mut AstKindPath) -> IfStmt {
109094        <IfStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109095    }
109096    #[doc = "Visit a node of type `Import`.\n\nBy default, this method calls \
109097             [`Import::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109098             manually."]
109099    #[inline]
109100    fn fold_import(&mut self, node: Import, __ast_path: &mut AstKindPath) -> Import {
109101        <Import as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109102    }
109103    #[doc = "Visit a node of type `ImportDecl`.\n\nBy default, this method calls \
109104             [`ImportDecl::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109105             it manually."]
109106    #[inline]
109107    fn fold_import_decl(&mut self, node: ImportDecl, __ast_path: &mut AstKindPath) -> ImportDecl {
109108        <ImportDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109109    }
109110    #[doc = "Visit a node of type `ImportDefaultSpecifier`.\n\nBy default, this method calls \
109111             [`ImportDefaultSpecifier::fold_children_with_ast_path`]. If you want to recurse, you \
109112             need to call it manually."]
109113    #[inline]
109114    fn fold_import_default_specifier(
109115        &mut self,
109116        node: ImportDefaultSpecifier,
109117        __ast_path: &mut AstKindPath,
109118    ) -> ImportDefaultSpecifier {
109119        <ImportDefaultSpecifier as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109120            node, self, __ast_path,
109121        )
109122    }
109123    #[doc = "Visit a node of type `ImportNamedSpecifier`.\n\nBy default, this method calls \
109124             [`ImportNamedSpecifier::fold_children_with_ast_path`]. If you want to recurse, you \
109125             need to call it manually."]
109126    #[inline]
109127    fn fold_import_named_specifier(
109128        &mut self,
109129        node: ImportNamedSpecifier,
109130        __ast_path: &mut AstKindPath,
109131    ) -> ImportNamedSpecifier {
109132        <ImportNamedSpecifier as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109133            node, self, __ast_path,
109134        )
109135    }
109136    #[doc = "Visit a node of type `ImportPhase`.\n\nBy default, this method calls \
109137             [`ImportPhase::fold_children_with_ast_path`]. If you want to recurse, you need to \
109138             call it manually."]
109139    #[inline]
109140    fn fold_import_phase(
109141        &mut self,
109142        node: ImportPhase,
109143        __ast_path: &mut AstKindPath,
109144    ) -> ImportPhase {
109145        <ImportPhase as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109146    }
109147    #[doc = "Visit a node of type `ImportSpecifier`.\n\nBy default, this method calls \
109148             [`ImportSpecifier::fold_children_with_ast_path`]. If you want to recurse, you need to \
109149             call it manually."]
109150    #[inline]
109151    fn fold_import_specifier(
109152        &mut self,
109153        node: ImportSpecifier,
109154        __ast_path: &mut AstKindPath,
109155    ) -> ImportSpecifier {
109156        <ImportSpecifier as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109157            node, self, __ast_path,
109158        )
109159    }
109160    #[doc = "Visit a node of type `Vec < ImportSpecifier >`.\n\nBy default, this method calls \
109161             [`Vec < ImportSpecifier >::fold_children_with_ast_path`]. If you want to recurse, you \
109162             need to call it manually."]
109163    #[inline]
109164    fn fold_import_specifiers(
109165        &mut self,
109166        node: Vec<ImportSpecifier>,
109167        __ast_path: &mut AstKindPath,
109168    ) -> Vec<ImportSpecifier> {
109169        <Vec<ImportSpecifier> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109170            node, self, __ast_path,
109171        )
109172    }
109173    #[doc = "Visit a node of type `ImportStarAsSpecifier`.\n\nBy default, this method calls \
109174             [`ImportStarAsSpecifier::fold_children_with_ast_path`]. If you want to recurse, you \
109175             need to call it manually."]
109176    #[inline]
109177    fn fold_import_star_as_specifier(
109178        &mut self,
109179        node: ImportStarAsSpecifier,
109180        __ast_path: &mut AstKindPath,
109181    ) -> ImportStarAsSpecifier {
109182        <ImportStarAsSpecifier as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109183            node, self, __ast_path,
109184        )
109185    }
109186    #[doc = "Visit a node of type `ImportWith`.\n\nBy default, this method calls \
109187             [`ImportWith::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109188             it manually."]
109189    #[inline]
109190    fn fold_import_with(&mut self, node: ImportWith, __ast_path: &mut AstKindPath) -> ImportWith {
109191        <ImportWith as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109192    }
109193    #[doc = "Visit a node of type `ImportWithItem`.\n\nBy default, this method calls \
109194             [`ImportWithItem::fold_children_with_ast_path`]. If you want to recurse, you need to \
109195             call it manually."]
109196    #[inline]
109197    fn fold_import_with_item(
109198        &mut self,
109199        node: ImportWithItem,
109200        __ast_path: &mut AstKindPath,
109201    ) -> ImportWithItem {
109202        <ImportWithItem as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109203            node, self, __ast_path,
109204        )
109205    }
109206    #[doc = "Visit a node of type `Vec < ImportWithItem >`.\n\nBy default, this method calls [`Vec \
109207             < ImportWithItem >::fold_children_with_ast_path`]. If you want to recurse, you need \
109208             to call it manually."]
109209    #[inline]
109210    fn fold_import_with_items(
109211        &mut self,
109212        node: Vec<ImportWithItem>,
109213        __ast_path: &mut AstKindPath,
109214    ) -> Vec<ImportWithItem> {
109215        <Vec<ImportWithItem> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109216            node, self, __ast_path,
109217        )
109218    }
109219    #[doc = "Visit a node of type `Invalid`.\n\nBy default, this method calls \
109220             [`Invalid::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109221             manually."]
109222    #[inline]
109223    fn fold_invalid(&mut self, node: Invalid, __ast_path: &mut AstKindPath) -> Invalid {
109224        <Invalid as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109225    }
109226    #[doc = "Visit a node of type `JSXAttr`.\n\nBy default, this method calls \
109227             [`JSXAttr::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109228             manually."]
109229    #[inline]
109230    fn fold_jsx_attr(&mut self, node: JSXAttr, __ast_path: &mut AstKindPath) -> JSXAttr {
109231        <JSXAttr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109232    }
109233    #[doc = "Visit a node of type `JSXAttrName`.\n\nBy default, this method calls \
109234             [`JSXAttrName::fold_children_with_ast_path`]. If you want to recurse, you need to \
109235             call it manually."]
109236    #[inline]
109237    fn fold_jsx_attr_name(
109238        &mut self,
109239        node: JSXAttrName,
109240        __ast_path: &mut AstKindPath,
109241    ) -> JSXAttrName {
109242        <JSXAttrName as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109243    }
109244    #[doc = "Visit a node of type `JSXAttrOrSpread`.\n\nBy default, this method calls \
109245             [`JSXAttrOrSpread::fold_children_with_ast_path`]. If you want to recurse, you need to \
109246             call it manually."]
109247    #[inline]
109248    fn fold_jsx_attr_or_spread(
109249        &mut self,
109250        node: JSXAttrOrSpread,
109251        __ast_path: &mut AstKindPath,
109252    ) -> JSXAttrOrSpread {
109253        <JSXAttrOrSpread as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109254            node, self, __ast_path,
109255        )
109256    }
109257    #[doc = "Visit a node of type `Vec < JSXAttrOrSpread >`.\n\nBy default, this method calls \
109258             [`Vec < JSXAttrOrSpread >::fold_children_with_ast_path`]. If you want to recurse, you \
109259             need to call it manually."]
109260    #[inline]
109261    fn fold_jsx_attr_or_spreads(
109262        &mut self,
109263        node: Vec<JSXAttrOrSpread>,
109264        __ast_path: &mut AstKindPath,
109265    ) -> Vec<JSXAttrOrSpread> {
109266        <Vec<JSXAttrOrSpread> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109267            node, self, __ast_path,
109268        )
109269    }
109270    #[doc = "Visit a node of type `JSXAttrValue`.\n\nBy default, this method calls \
109271             [`JSXAttrValue::fold_children_with_ast_path`]. If you want to recurse, you need to \
109272             call it manually."]
109273    #[inline]
109274    fn fold_jsx_attr_value(
109275        &mut self,
109276        node: JSXAttrValue,
109277        __ast_path: &mut AstKindPath,
109278    ) -> JSXAttrValue {
109279        <JSXAttrValue as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109280    }
109281    #[doc = "Visit a node of type `JSXClosingElement`.\n\nBy default, this method calls \
109282             [`JSXClosingElement::fold_children_with_ast_path`]. If you want to recurse, you need \
109283             to call it manually."]
109284    #[inline]
109285    fn fold_jsx_closing_element(
109286        &mut self,
109287        node: JSXClosingElement,
109288        __ast_path: &mut AstKindPath,
109289    ) -> JSXClosingElement {
109290        <JSXClosingElement as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109291            node, self, __ast_path,
109292        )
109293    }
109294    #[doc = "Visit a node of type `JSXClosingFragment`.\n\nBy default, this method calls \
109295             [`JSXClosingFragment::fold_children_with_ast_path`]. If you want to recurse, you need \
109296             to call it manually."]
109297    #[inline]
109298    fn fold_jsx_closing_fragment(
109299        &mut self,
109300        node: JSXClosingFragment,
109301        __ast_path: &mut AstKindPath,
109302    ) -> JSXClosingFragment {
109303        <JSXClosingFragment as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109304            node, self, __ast_path,
109305        )
109306    }
109307    #[doc = "Visit a node of type `JSXElement`.\n\nBy default, this method calls \
109308             [`JSXElement::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109309             it manually."]
109310    #[inline]
109311    fn fold_jsx_element(&mut self, node: JSXElement, __ast_path: &mut AstKindPath) -> JSXElement {
109312        <JSXElement as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109313    }
109314    #[doc = "Visit a node of type `JSXElementChild`.\n\nBy default, this method calls \
109315             [`JSXElementChild::fold_children_with_ast_path`]. If you want to recurse, you need to \
109316             call it manually."]
109317    #[inline]
109318    fn fold_jsx_element_child(
109319        &mut self,
109320        node: JSXElementChild,
109321        __ast_path: &mut AstKindPath,
109322    ) -> JSXElementChild {
109323        <JSXElementChild as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109324            node, self, __ast_path,
109325        )
109326    }
109327    #[doc = "Visit a node of type `Vec < JSXElementChild >`.\n\nBy default, this method calls \
109328             [`Vec < JSXElementChild >::fold_children_with_ast_path`]. If you want to recurse, you \
109329             need to call it manually."]
109330    #[inline]
109331    fn fold_jsx_element_childs(
109332        &mut self,
109333        node: Vec<JSXElementChild>,
109334        __ast_path: &mut AstKindPath,
109335    ) -> Vec<JSXElementChild> {
109336        <Vec<JSXElementChild> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109337            node, self, __ast_path,
109338        )
109339    }
109340    #[doc = "Visit a node of type `JSXElementName`.\n\nBy default, this method calls \
109341             [`JSXElementName::fold_children_with_ast_path`]. If you want to recurse, you need to \
109342             call it manually."]
109343    #[inline]
109344    fn fold_jsx_element_name(
109345        &mut self,
109346        node: JSXElementName,
109347        __ast_path: &mut AstKindPath,
109348    ) -> JSXElementName {
109349        <JSXElementName as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109350            node, self, __ast_path,
109351        )
109352    }
109353    #[doc = "Visit a node of type `JSXEmptyExpr`.\n\nBy default, this method calls \
109354             [`JSXEmptyExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
109355             call it manually."]
109356    #[inline]
109357    fn fold_jsx_empty_expr(
109358        &mut self,
109359        node: JSXEmptyExpr,
109360        __ast_path: &mut AstKindPath,
109361    ) -> JSXEmptyExpr {
109362        <JSXEmptyExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109363    }
109364    #[doc = "Visit a node of type `JSXExpr`.\n\nBy default, this method calls \
109365             [`JSXExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109366             manually."]
109367    #[inline]
109368    fn fold_jsx_expr(&mut self, node: JSXExpr, __ast_path: &mut AstKindPath) -> JSXExpr {
109369        <JSXExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109370    }
109371    #[doc = "Visit a node of type `JSXExprContainer`.\n\nBy default, this method calls \
109372             [`JSXExprContainer::fold_children_with_ast_path`]. If you want to recurse, you need \
109373             to call it manually."]
109374    #[inline]
109375    fn fold_jsx_expr_container(
109376        &mut self,
109377        node: JSXExprContainer,
109378        __ast_path: &mut AstKindPath,
109379    ) -> JSXExprContainer {
109380        <JSXExprContainer as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109381            node, self, __ast_path,
109382        )
109383    }
109384    #[doc = "Visit a node of type `JSXFragment`.\n\nBy default, this method calls \
109385             [`JSXFragment::fold_children_with_ast_path`]. If you want to recurse, you need to \
109386             call it manually."]
109387    #[inline]
109388    fn fold_jsx_fragment(
109389        &mut self,
109390        node: JSXFragment,
109391        __ast_path: &mut AstKindPath,
109392    ) -> JSXFragment {
109393        <JSXFragment as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109394    }
109395    #[doc = "Visit a node of type `JSXMemberExpr`.\n\nBy default, this method calls \
109396             [`JSXMemberExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
109397             call it manually."]
109398    #[inline]
109399    fn fold_jsx_member_expr(
109400        &mut self,
109401        node: JSXMemberExpr,
109402        __ast_path: &mut AstKindPath,
109403    ) -> JSXMemberExpr {
109404        <JSXMemberExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109405            node, self, __ast_path,
109406        )
109407    }
109408    #[doc = "Visit a node of type `JSXNamespacedName`.\n\nBy default, this method calls \
109409             [`JSXNamespacedName::fold_children_with_ast_path`]. If you want to recurse, you need \
109410             to call it manually."]
109411    #[inline]
109412    fn fold_jsx_namespaced_name(
109413        &mut self,
109414        node: JSXNamespacedName,
109415        __ast_path: &mut AstKindPath,
109416    ) -> JSXNamespacedName {
109417        <JSXNamespacedName as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109418            node, self, __ast_path,
109419        )
109420    }
109421    #[doc = "Visit a node of type `JSXObject`.\n\nBy default, this method calls \
109422             [`JSXObject::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109423             it manually."]
109424    #[inline]
109425    fn fold_jsx_object(&mut self, node: JSXObject, __ast_path: &mut AstKindPath) -> JSXObject {
109426        <JSXObject as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109427    }
109428    #[doc = "Visit a node of type `JSXOpeningElement`.\n\nBy default, this method calls \
109429             [`JSXOpeningElement::fold_children_with_ast_path`]. If you want to recurse, you need \
109430             to call it manually."]
109431    #[inline]
109432    fn fold_jsx_opening_element(
109433        &mut self,
109434        node: JSXOpeningElement,
109435        __ast_path: &mut AstKindPath,
109436    ) -> JSXOpeningElement {
109437        <JSXOpeningElement as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109438            node, self, __ast_path,
109439        )
109440    }
109441    #[doc = "Visit a node of type `JSXOpeningFragment`.\n\nBy default, this method calls \
109442             [`JSXOpeningFragment::fold_children_with_ast_path`]. If you want to recurse, you need \
109443             to call it manually."]
109444    #[inline]
109445    fn fold_jsx_opening_fragment(
109446        &mut self,
109447        node: JSXOpeningFragment,
109448        __ast_path: &mut AstKindPath,
109449    ) -> JSXOpeningFragment {
109450        <JSXOpeningFragment as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109451            node, self, __ast_path,
109452        )
109453    }
109454    #[doc = "Visit a node of type `JSXSpreadChild`.\n\nBy default, this method calls \
109455             [`JSXSpreadChild::fold_children_with_ast_path`]. If you want to recurse, you need to \
109456             call it manually."]
109457    #[inline]
109458    fn fold_jsx_spread_child(
109459        &mut self,
109460        node: JSXSpreadChild,
109461        __ast_path: &mut AstKindPath,
109462    ) -> JSXSpreadChild {
109463        <JSXSpreadChild as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109464            node, self, __ast_path,
109465        )
109466    }
109467    #[doc = "Visit a node of type `JSXText`.\n\nBy default, this method calls \
109468             [`JSXText::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109469             manually."]
109470    #[inline]
109471    fn fold_jsx_text(&mut self, node: JSXText, __ast_path: &mut AstKindPath) -> JSXText {
109472        <JSXText as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109473    }
109474    #[doc = "Visit a node of type `Key`.\n\nBy default, this method calls \
109475             [`Key::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109476             manually."]
109477    #[inline]
109478    fn fold_key(&mut self, node: Key, __ast_path: &mut AstKindPath) -> Key {
109479        <Key as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109480    }
109481    #[doc = "Visit a node of type `KeyValuePatProp`.\n\nBy default, this method calls \
109482             [`KeyValuePatProp::fold_children_with_ast_path`]. If you want to recurse, you need to \
109483             call it manually."]
109484    #[inline]
109485    fn fold_key_value_pat_prop(
109486        &mut self,
109487        node: KeyValuePatProp,
109488        __ast_path: &mut AstKindPath,
109489    ) -> KeyValuePatProp {
109490        <KeyValuePatProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109491            node, self, __ast_path,
109492        )
109493    }
109494    #[doc = "Visit a node of type `KeyValueProp`.\n\nBy default, this method calls \
109495             [`KeyValueProp::fold_children_with_ast_path`]. If you want to recurse, you need to \
109496             call it manually."]
109497    #[inline]
109498    fn fold_key_value_prop(
109499        &mut self,
109500        node: KeyValueProp,
109501        __ast_path: &mut AstKindPath,
109502    ) -> KeyValueProp {
109503        <KeyValueProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109504    }
109505    #[doc = "Visit a node of type `LabeledStmt`.\n\nBy default, this method calls \
109506             [`LabeledStmt::fold_children_with_ast_path`]. If you want to recurse, you need to \
109507             call it manually."]
109508    #[inline]
109509    fn fold_labeled_stmt(
109510        &mut self,
109511        node: LabeledStmt,
109512        __ast_path: &mut AstKindPath,
109513    ) -> LabeledStmt {
109514        <LabeledStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109515    }
109516    #[doc = "Visit a node of type `Lit`.\n\nBy default, this method calls \
109517             [`Lit::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109518             manually."]
109519    #[inline]
109520    fn fold_lit(&mut self, node: Lit, __ast_path: &mut AstKindPath) -> Lit {
109521        <Lit as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109522    }
109523    #[doc = "Visit a node of type `MemberExpr`.\n\nBy default, this method calls \
109524             [`MemberExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109525             it manually."]
109526    #[inline]
109527    fn fold_member_expr(&mut self, node: MemberExpr, __ast_path: &mut AstKindPath) -> MemberExpr {
109528        <MemberExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109529    }
109530    #[doc = "Visit a node of type `MemberProp`.\n\nBy default, this method calls \
109531             [`MemberProp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109532             it manually."]
109533    #[inline]
109534    fn fold_member_prop(&mut self, node: MemberProp, __ast_path: &mut AstKindPath) -> MemberProp {
109535        <MemberProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109536    }
109537    #[doc = "Visit a node of type `MetaPropExpr`.\n\nBy default, this method calls \
109538             [`MetaPropExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
109539             call it manually."]
109540    #[inline]
109541    fn fold_meta_prop_expr(
109542        &mut self,
109543        node: MetaPropExpr,
109544        __ast_path: &mut AstKindPath,
109545    ) -> MetaPropExpr {
109546        <MetaPropExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109547    }
109548    #[doc = "Visit a node of type `MetaPropKind`.\n\nBy default, this method calls \
109549             [`MetaPropKind::fold_children_with_ast_path`]. If you want to recurse, you need to \
109550             call it manually."]
109551    #[inline]
109552    fn fold_meta_prop_kind(
109553        &mut self,
109554        node: MetaPropKind,
109555        __ast_path: &mut AstKindPath,
109556    ) -> MetaPropKind {
109557        <MetaPropKind as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109558    }
109559    #[doc = "Visit a node of type `MethodKind`.\n\nBy default, this method calls \
109560             [`MethodKind::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109561             it manually."]
109562    #[inline]
109563    fn fold_method_kind(&mut self, node: MethodKind, __ast_path: &mut AstKindPath) -> MethodKind {
109564        <MethodKind as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109565    }
109566    #[doc = "Visit a node of type `MethodProp`.\n\nBy default, this method calls \
109567             [`MethodProp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109568             it manually."]
109569    #[inline]
109570    fn fold_method_prop(&mut self, node: MethodProp, __ast_path: &mut AstKindPath) -> MethodProp {
109571        <MethodProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109572    }
109573    #[doc = "Visit a node of type `Module`.\n\nBy default, this method calls \
109574             [`Module::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109575             manually."]
109576    #[inline]
109577    fn fold_module(&mut self, node: Module, __ast_path: &mut AstKindPath) -> Module {
109578        <Module as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109579    }
109580    #[doc = "Visit a node of type `ModuleDecl`.\n\nBy default, this method calls \
109581             [`ModuleDecl::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109582             it manually."]
109583    #[inline]
109584    fn fold_module_decl(&mut self, node: ModuleDecl, __ast_path: &mut AstKindPath) -> ModuleDecl {
109585        <ModuleDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109586    }
109587    #[doc = "Visit a node of type `ModuleExportName`.\n\nBy default, this method calls \
109588             [`ModuleExportName::fold_children_with_ast_path`]. If you want to recurse, you need \
109589             to call it manually."]
109590    #[inline]
109591    fn fold_module_export_name(
109592        &mut self,
109593        node: ModuleExportName,
109594        __ast_path: &mut AstKindPath,
109595    ) -> ModuleExportName {
109596        <ModuleExportName as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109597            node, self, __ast_path,
109598        )
109599    }
109600    #[doc = "Visit a node of type `ModuleItem`.\n\nBy default, this method calls \
109601             [`ModuleItem::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109602             it manually."]
109603    #[inline]
109604    fn fold_module_item(&mut self, node: ModuleItem, __ast_path: &mut AstKindPath) -> ModuleItem {
109605        <ModuleItem as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109606    }
109607    #[doc = "Visit a node of type `Vec < ModuleItem >`.\n\nBy default, this method calls [`Vec < \
109608             ModuleItem >::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109609             it manually."]
109610    #[inline]
109611    fn fold_module_items(
109612        &mut self,
109613        node: Vec<ModuleItem>,
109614        __ast_path: &mut AstKindPath,
109615    ) -> Vec<ModuleItem> {
109616        <Vec<ModuleItem> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109617            node, self, __ast_path,
109618        )
109619    }
109620    #[doc = "Visit a node of type `NamedExport`.\n\nBy default, this method calls \
109621             [`NamedExport::fold_children_with_ast_path`]. If you want to recurse, you need to \
109622             call it manually."]
109623    #[inline]
109624    fn fold_named_export(
109625        &mut self,
109626        node: NamedExport,
109627        __ast_path: &mut AstKindPath,
109628    ) -> NamedExport {
109629        <NamedExport as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109630    }
109631    #[doc = "Visit a node of type `NewExpr`.\n\nBy default, this method calls \
109632             [`NewExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109633             manually."]
109634    #[inline]
109635    fn fold_new_expr(&mut self, node: NewExpr, __ast_path: &mut AstKindPath) -> NewExpr {
109636        <NewExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109637    }
109638    #[doc = "Visit a node of type `Null`.\n\nBy default, this method calls \
109639             [`Null::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109640             manually."]
109641    #[inline]
109642    fn fold_null(&mut self, node: Null, __ast_path: &mut AstKindPath) -> Null {
109643        <Null as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109644    }
109645    #[doc = "Visit a node of type `Number`.\n\nBy default, this method calls \
109646             [`Number::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109647             manually."]
109648    #[inline]
109649    fn fold_number(&mut self, node: Number, __ast_path: &mut AstKindPath) -> Number {
109650        <Number as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109651    }
109652    #[doc = "Visit a node of type `ObjectLit`.\n\nBy default, this method calls \
109653             [`ObjectLit::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109654             it manually."]
109655    #[inline]
109656    fn fold_object_lit(&mut self, node: ObjectLit, __ast_path: &mut AstKindPath) -> ObjectLit {
109657        <ObjectLit as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109658    }
109659    #[doc = "Visit a node of type `ObjectPat`.\n\nBy default, this method calls \
109660             [`ObjectPat::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109661             it manually."]
109662    #[inline]
109663    fn fold_object_pat(&mut self, node: ObjectPat, __ast_path: &mut AstKindPath) -> ObjectPat {
109664        <ObjectPat as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109665    }
109666    #[doc = "Visit a node of type `ObjectPatProp`.\n\nBy default, this method calls \
109667             [`ObjectPatProp::fold_children_with_ast_path`]. If you want to recurse, you need to \
109668             call it manually."]
109669    #[inline]
109670    fn fold_object_pat_prop(
109671        &mut self,
109672        node: ObjectPatProp,
109673        __ast_path: &mut AstKindPath,
109674    ) -> ObjectPatProp {
109675        <ObjectPatProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109676            node, self, __ast_path,
109677        )
109678    }
109679    #[doc = "Visit a node of type `Vec < ObjectPatProp >`.\n\nBy default, this method calls [`Vec \
109680             < ObjectPatProp >::fold_children_with_ast_path`]. If you want to recurse, you need to \
109681             call it manually."]
109682    #[inline]
109683    fn fold_object_pat_props(
109684        &mut self,
109685        node: Vec<ObjectPatProp>,
109686        __ast_path: &mut AstKindPath,
109687    ) -> Vec<ObjectPatProp> {
109688        <Vec<ObjectPatProp> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109689            node, self, __ast_path,
109690        )
109691    }
109692    #[doc = "Visit a node of type `Option < Accessibility >`.\n\nBy default, this method calls \
109693             [`Option < Accessibility >::fold_children_with_ast_path`]. If you want to recurse, \
109694             you need to call it manually."]
109695    #[inline]
109696    fn fold_opt_accessibility(
109697        &mut self,
109698        node: Option<Accessibility>,
109699        __ast_path: &mut AstKindPath,
109700    ) -> Option<Accessibility> {
109701        <Option<Accessibility> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109702            node, self, __ast_path,
109703        )
109704    }
109705    #[doc = "Visit a node of type `Option < swc_atoms :: Atom >`.\n\nBy default, this method calls \
109706             [`Option < swc_atoms :: Atom >::fold_children_with_ast_path`]. If you want to \
109707             recurse, you need to call it manually."]
109708    #[inline]
109709    fn fold_opt_atom(
109710        &mut self,
109711        node: Option<swc_atoms::Atom>,
109712        __ast_path: &mut AstKindPath,
109713    ) -> Option<swc_atoms::Atom> {
109714        <Option<swc_atoms::Atom> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109715            node, self, __ast_path,
109716        )
109717    }
109718    #[doc = "Visit a node of type `Option < BlockStmt >`.\n\nBy default, this method calls \
109719             [`Option < BlockStmt >::fold_children_with_ast_path`]. If you want to recurse, you \
109720             need to call it manually."]
109721    #[inline]
109722    fn fold_opt_block_stmt(
109723        &mut self,
109724        node: Option<BlockStmt>,
109725        __ast_path: &mut AstKindPath,
109726    ) -> Option<BlockStmt> {
109727        <Option<BlockStmt> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109728            node, self, __ast_path,
109729        )
109730    }
109731    #[doc = "Visit a node of type `OptCall`.\n\nBy default, this method calls \
109732             [`OptCall::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109733             manually."]
109734    #[inline]
109735    fn fold_opt_call(&mut self, node: OptCall, __ast_path: &mut AstKindPath) -> OptCall {
109736        <OptCall as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109737    }
109738    #[doc = "Visit a node of type `Option < CatchClause >`.\n\nBy default, this method calls \
109739             [`Option < CatchClause >::fold_children_with_ast_path`]. If you want to recurse, you \
109740             need to call it manually."]
109741    #[inline]
109742    fn fold_opt_catch_clause(
109743        &mut self,
109744        node: Option<CatchClause>,
109745        __ast_path: &mut AstKindPath,
109746    ) -> Option<CatchClause> {
109747        <Option<CatchClause> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109748            node, self, __ast_path,
109749        )
109750    }
109751    #[doc = "Visit a node of type `OptChainBase`.\n\nBy default, this method calls \
109752             [`OptChainBase::fold_children_with_ast_path`]. If you want to recurse, you need to \
109753             call it manually."]
109754    #[inline]
109755    fn fold_opt_chain_base(
109756        &mut self,
109757        node: OptChainBase,
109758        __ast_path: &mut AstKindPath,
109759    ) -> OptChainBase {
109760        <OptChainBase as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109761    }
109762    #[doc = "Visit a node of type `OptChainExpr`.\n\nBy default, this method calls \
109763             [`OptChainExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
109764             call it manually."]
109765    #[inline]
109766    fn fold_opt_chain_expr(
109767        &mut self,
109768        node: OptChainExpr,
109769        __ast_path: &mut AstKindPath,
109770    ) -> OptChainExpr {
109771        <OptChainExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109772    }
109773    #[doc = "Visit a node of type `Option < Box < Expr > >`.\n\nBy default, this method calls \
109774             [`Option < Box < Expr > >::fold_children_with_ast_path`]. If you want to recurse, you \
109775             need to call it manually."]
109776    #[inline]
109777    fn fold_opt_expr(
109778        &mut self,
109779        node: Option<Box<Expr>>,
109780        __ast_path: &mut AstKindPath,
109781    ) -> Option<Box<Expr>> {
109782        <Option<Box<Expr>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109783            node, self, __ast_path,
109784        )
109785    }
109786    #[doc = "Visit a node of type `Option < ExprOrSpread >`.\n\nBy default, this method calls \
109787             [`Option < ExprOrSpread >::fold_children_with_ast_path`]. If you want to recurse, you \
109788             need to call it manually."]
109789    #[inline]
109790    fn fold_opt_expr_or_spread(
109791        &mut self,
109792        node: Option<ExprOrSpread>,
109793        __ast_path: &mut AstKindPath,
109794    ) -> Option<ExprOrSpread> {
109795        <Option<ExprOrSpread> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109796            node, self, __ast_path,
109797        )
109798    }
109799    #[doc = "Visit a node of type `Option < Vec < ExprOrSpread > >`.\n\nBy default, this method \
109800             calls [`Option < Vec < ExprOrSpread > >::fold_children_with_ast_path`]. If you want \
109801             to recurse, you need to call it manually."]
109802    #[inline]
109803    fn fold_opt_expr_or_spreads(
109804        &mut self,
109805        node: Option<Vec<ExprOrSpread>>,
109806        __ast_path: &mut AstKindPath,
109807    ) -> Option<Vec<ExprOrSpread>> {
109808        <Option<Vec<ExprOrSpread>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109809            node, self, __ast_path,
109810        )
109811    }
109812    #[doc = "Visit a node of type `Option < Ident >`.\n\nBy default, this method calls [`Option < \
109813             Ident >::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109814             manually."]
109815    #[inline]
109816    fn fold_opt_ident(
109817        &mut self,
109818        node: Option<Ident>,
109819        __ast_path: &mut AstKindPath,
109820    ) -> Option<Ident> {
109821        <Option<Ident> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109822            node, self, __ast_path,
109823        )
109824    }
109825    #[doc = "Visit a node of type `Option < JSXAttrValue >`.\n\nBy default, this method calls \
109826             [`Option < JSXAttrValue >::fold_children_with_ast_path`]. If you want to recurse, you \
109827             need to call it manually."]
109828    #[inline]
109829    fn fold_opt_jsx_attr_value(
109830        &mut self,
109831        node: Option<JSXAttrValue>,
109832        __ast_path: &mut AstKindPath,
109833    ) -> Option<JSXAttrValue> {
109834        <Option<JSXAttrValue> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109835            node, self, __ast_path,
109836        )
109837    }
109838    #[doc = "Visit a node of type `Option < JSXClosingElement >`.\n\nBy default, this method calls \
109839             [`Option < JSXClosingElement >::fold_children_with_ast_path`]. If you want to \
109840             recurse, you need to call it manually."]
109841    #[inline]
109842    fn fold_opt_jsx_closing_element(
109843        &mut self,
109844        node: Option<JSXClosingElement>,
109845        __ast_path: &mut AstKindPath,
109846    ) -> Option<JSXClosingElement> {
109847        <Option<JSXClosingElement> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109848            node, self, __ast_path,
109849        )
109850    }
109851    #[doc = "Visit a node of type `Option < ModuleExportName >`.\n\nBy default, this method calls \
109852             [`Option < ModuleExportName >::fold_children_with_ast_path`]. If you want to recurse, \
109853             you need to call it manually."]
109854    #[inline]
109855    fn fold_opt_module_export_name(
109856        &mut self,
109857        node: Option<ModuleExportName>,
109858        __ast_path: &mut AstKindPath,
109859    ) -> Option<ModuleExportName> {
109860        <Option<ModuleExportName> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109861            node, self, __ast_path,
109862        )
109863    }
109864    #[doc = "Visit a node of type `Option < Box < ObjectLit > >`.\n\nBy default, this method calls \
109865             [`Option < Box < ObjectLit > >::fold_children_with_ast_path`]. If you want to \
109866             recurse, you need to call it manually."]
109867    #[inline]
109868    fn fold_opt_object_lit(
109869        &mut self,
109870        node: Option<Box<ObjectLit>>,
109871        __ast_path: &mut AstKindPath,
109872    ) -> Option<Box<ObjectLit>> {
109873        <Option<Box<ObjectLit>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109874            node, self, __ast_path,
109875        )
109876    }
109877    #[doc = "Visit a node of type `Option < Pat >`.\n\nBy default, this method calls [`Option < \
109878             Pat >::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109879             manually."]
109880    #[inline]
109881    fn fold_opt_pat(&mut self, node: Option<Pat>, __ast_path: &mut AstKindPath) -> Option<Pat> {
109882        <Option<Pat> as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109883    }
109884    #[doc = "Visit a node of type `Option < swc_common :: Span >`.\n\nBy default, this method \
109885             calls [`Option < swc_common :: Span >::fold_children_with_ast_path`]. If you want to \
109886             recurse, you need to call it manually."]
109887    #[inline]
109888    fn fold_opt_span(
109889        &mut self,
109890        node: Option<swc_common::Span>,
109891        __ast_path: &mut AstKindPath,
109892    ) -> Option<swc_common::Span> {
109893        <Option<swc_common::Span> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109894            node, self, __ast_path,
109895        )
109896    }
109897    #[doc = "Visit a node of type `Option < Box < Stmt > >`.\n\nBy default, this method calls \
109898             [`Option < Box < Stmt > >::fold_children_with_ast_path`]. If you want to recurse, you \
109899             need to call it manually."]
109900    #[inline]
109901    fn fold_opt_stmt(
109902        &mut self,
109903        node: Option<Box<Stmt>>,
109904        __ast_path: &mut AstKindPath,
109905    ) -> Option<Box<Stmt>> {
109906        <Option<Box<Stmt>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109907            node, self, __ast_path,
109908        )
109909    }
109910    #[doc = "Visit a node of type `Option < Box < Str > >`.\n\nBy default, this method calls \
109911             [`Option < Box < Str > >::fold_children_with_ast_path`]. If you want to recurse, you \
109912             need to call it manually."]
109913    #[inline]
109914    fn fold_opt_str(
109915        &mut self,
109916        node: Option<Box<Str>>,
109917        __ast_path: &mut AstKindPath,
109918    ) -> Option<Box<Str>> {
109919        <Option<Box<Str>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109920            node, self, __ast_path,
109921        )
109922    }
109923    #[doc = "Visit a node of type `Option < TruePlusMinus >`.\n\nBy default, this method calls \
109924             [`Option < TruePlusMinus >::fold_children_with_ast_path`]. If you want to recurse, \
109925             you need to call it manually."]
109926    #[inline]
109927    fn fold_opt_true_plus_minus(
109928        &mut self,
109929        node: Option<TruePlusMinus>,
109930        __ast_path: &mut AstKindPath,
109931    ) -> Option<TruePlusMinus> {
109932        <Option<TruePlusMinus> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109933            node, self, __ast_path,
109934        )
109935    }
109936    #[doc = "Visit a node of type `Option < TsEntityName >`.\n\nBy default, this method calls \
109937             [`Option < TsEntityName >::fold_children_with_ast_path`]. If you want to recurse, you \
109938             need to call it manually."]
109939    #[inline]
109940    fn fold_opt_ts_entity_name(
109941        &mut self,
109942        node: Option<TsEntityName>,
109943        __ast_path: &mut AstKindPath,
109944    ) -> Option<TsEntityName> {
109945        <Option<TsEntityName> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109946            node, self, __ast_path,
109947        )
109948    }
109949    #[doc = "Visit a node of type `Option < TsImportCallOptions >`.\n\nBy default, this method \
109950             calls [`Option < TsImportCallOptions >::fold_children_with_ast_path`]. If you want to \
109951             recurse, you need to call it manually."]
109952    #[inline]
109953    fn fold_opt_ts_import_call_options(
109954        &mut self,
109955        node: Option<TsImportCallOptions>,
109956        __ast_path: &mut AstKindPath,
109957    ) -> Option<TsImportCallOptions> {
109958        <Option<TsImportCallOptions> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109959            node, self, __ast_path,
109960        )
109961    }
109962    #[doc = "Visit a node of type `Option < TsNamespaceBody >`.\n\nBy default, this method calls \
109963             [`Option < TsNamespaceBody >::fold_children_with_ast_path`]. If you want to recurse, \
109964             you need to call it manually."]
109965    #[inline]
109966    fn fold_opt_ts_namespace_body(
109967        &mut self,
109968        node: Option<TsNamespaceBody>,
109969        __ast_path: &mut AstKindPath,
109970    ) -> Option<TsNamespaceBody> {
109971        <Option<TsNamespaceBody> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109972            node, self, __ast_path,
109973        )
109974    }
109975    #[doc = "Visit a node of type `Option < Box < TsType > >`.\n\nBy default, this method calls \
109976             [`Option < Box < TsType > >::fold_children_with_ast_path`]. If you want to recurse, \
109977             you need to call it manually."]
109978    #[inline]
109979    fn fold_opt_ts_type(
109980        &mut self,
109981        node: Option<Box<TsType>>,
109982        __ast_path: &mut AstKindPath,
109983    ) -> Option<Box<TsType>> {
109984        <Option<Box<TsType>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109985            node, self, __ast_path,
109986        )
109987    }
109988    #[doc = "Visit a node of type `Option < Box < TsTypeAnn > >`.\n\nBy default, this method calls \
109989             [`Option < Box < TsTypeAnn > >::fold_children_with_ast_path`]. If you want to \
109990             recurse, you need to call it manually."]
109991    #[inline]
109992    fn fold_opt_ts_type_ann(
109993        &mut self,
109994        node: Option<Box<TsTypeAnn>>,
109995        __ast_path: &mut AstKindPath,
109996    ) -> Option<Box<TsTypeAnn>> {
109997        <Option<Box<TsTypeAnn>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109998            node, self, __ast_path,
109999        )
110000    }
110001    #[doc = "Visit a node of type `Option < Box < TsTypeParamDecl > >`.\n\nBy default, this method \
110002             calls [`Option < Box < TsTypeParamDecl > >::fold_children_with_ast_path`]. If you \
110003             want to recurse, you need to call it manually."]
110004    #[inline]
110005    fn fold_opt_ts_type_param_decl(
110006        &mut self,
110007        node: Option<Box<TsTypeParamDecl>>,
110008        __ast_path: &mut AstKindPath,
110009    ) -> Option<Box<TsTypeParamDecl>> {
110010        <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110011            node, self, __ast_path,
110012        )
110013    }
110014    #[doc = "Visit a node of type `Option < Box < TsTypeParamInstantiation > >`.\n\nBy default, \
110015             this method calls [`Option < Box < TsTypeParamInstantiation > \
110016             >::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110017             manually."]
110018    #[inline]
110019    fn fold_opt_ts_type_param_instantiation(
110020        &mut self,
110021        node: Option<Box<TsTypeParamInstantiation>>,
110022        __ast_path: &mut AstKindPath,
110023    ) -> Option<Box<TsTypeParamInstantiation>> {
110024        < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < Self > > :: fold_children_with_ast_path (node , self , __ast_path)
110025    }
110026    #[doc = "Visit a node of type `Option < VarDeclOrExpr >`.\n\nBy default, this method calls \
110027             [`Option < VarDeclOrExpr >::fold_children_with_ast_path`]. If you want to recurse, \
110028             you need to call it manually."]
110029    #[inline]
110030    fn fold_opt_var_decl_or_expr(
110031        &mut self,
110032        node: Option<VarDeclOrExpr>,
110033        __ast_path: &mut AstKindPath,
110034    ) -> Option<VarDeclOrExpr> {
110035        <Option<VarDeclOrExpr> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110036            node, self, __ast_path,
110037        )
110038    }
110039    #[doc = "Visit a node of type `Vec < Option < ExprOrSpread > >`.\n\nBy default, this method \
110040             calls [`Vec < Option < ExprOrSpread > >::fold_children_with_ast_path`]. If you want \
110041             to recurse, you need to call it manually."]
110042    #[inline]
110043    fn fold_opt_vec_expr_or_spreads(
110044        &mut self,
110045        node: Vec<Option<ExprOrSpread>>,
110046        __ast_path: &mut AstKindPath,
110047    ) -> Vec<Option<ExprOrSpread>> {
110048        <Vec<Option<ExprOrSpread>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110049            node, self, __ast_path,
110050        )
110051    }
110052    #[doc = "Visit a node of type `Vec < Option < Pat > >`.\n\nBy default, this method calls [`Vec \
110053             < Option < Pat > >::fold_children_with_ast_path`]. If you want to recurse, you need \
110054             to call it manually."]
110055    #[inline]
110056    fn fold_opt_vec_pats(
110057        &mut self,
110058        node: Vec<Option<Pat>>,
110059        __ast_path: &mut AstKindPath,
110060    ) -> Vec<Option<Pat>> {
110061        <Vec<Option<Pat>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110062            node, self, __ast_path,
110063        )
110064    }
110065    #[doc = "Visit a node of type `Param`.\n\nBy default, this method calls \
110066             [`Param::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110067             manually."]
110068    #[inline]
110069    fn fold_param(&mut self, node: Param, __ast_path: &mut AstKindPath) -> Param {
110070        <Param as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110071    }
110072    #[doc = "Visit a node of type `ParamOrTsParamProp`.\n\nBy default, this method calls \
110073             [`ParamOrTsParamProp::fold_children_with_ast_path`]. If you want to recurse, you need \
110074             to call it manually."]
110075    #[inline]
110076    fn fold_param_or_ts_param_prop(
110077        &mut self,
110078        node: ParamOrTsParamProp,
110079        __ast_path: &mut AstKindPath,
110080    ) -> ParamOrTsParamProp {
110081        <ParamOrTsParamProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110082            node, self, __ast_path,
110083        )
110084    }
110085    #[doc = "Visit a node of type `Vec < ParamOrTsParamProp >`.\n\nBy default, this method calls \
110086             [`Vec < ParamOrTsParamProp >::fold_children_with_ast_path`]. If you want to recurse, \
110087             you need to call it manually."]
110088    #[inline]
110089    fn fold_param_or_ts_param_props(
110090        &mut self,
110091        node: Vec<ParamOrTsParamProp>,
110092        __ast_path: &mut AstKindPath,
110093    ) -> Vec<ParamOrTsParamProp> {
110094        <Vec<ParamOrTsParamProp> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110095            node, self, __ast_path,
110096        )
110097    }
110098    #[doc = "Visit a node of type `Vec < Param >`.\n\nBy default, this method calls [`Vec < Param \
110099             >::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110100             manually."]
110101    #[inline]
110102    fn fold_params(&mut self, node: Vec<Param>, __ast_path: &mut AstKindPath) -> Vec<Param> {
110103        <Vec<Param> as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110104    }
110105    #[doc = "Visit a node of type `ParenExpr`.\n\nBy default, this method calls \
110106             [`ParenExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110107             it manually."]
110108    #[inline]
110109    fn fold_paren_expr(&mut self, node: ParenExpr, __ast_path: &mut AstKindPath) -> ParenExpr {
110110        <ParenExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110111    }
110112    #[doc = "Visit a node of type `Pat`.\n\nBy default, this method calls \
110113             [`Pat::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110114             manually."]
110115    #[inline]
110116    fn fold_pat(&mut self, node: Pat, __ast_path: &mut AstKindPath) -> Pat {
110117        <Pat as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110118    }
110119    #[doc = "Visit a node of type `Vec < Pat >`.\n\nBy default, this method calls [`Vec < Pat \
110120             >::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110121             manually."]
110122    #[inline]
110123    fn fold_pats(&mut self, node: Vec<Pat>, __ast_path: &mut AstKindPath) -> Vec<Pat> {
110124        <Vec<Pat> as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110125    }
110126    #[doc = "Visit a node of type `PrivateMethod`.\n\nBy default, this method calls \
110127             [`PrivateMethod::fold_children_with_ast_path`]. If you want to recurse, you need to \
110128             call it manually."]
110129    #[inline]
110130    fn fold_private_method(
110131        &mut self,
110132        node: PrivateMethod,
110133        __ast_path: &mut AstKindPath,
110134    ) -> PrivateMethod {
110135        <PrivateMethod as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110136            node, self, __ast_path,
110137        )
110138    }
110139    #[doc = "Visit a node of type `PrivateName`.\n\nBy default, this method calls \
110140             [`PrivateName::fold_children_with_ast_path`]. If you want to recurse, you need to \
110141             call it manually."]
110142    #[inline]
110143    fn fold_private_name(
110144        &mut self,
110145        node: PrivateName,
110146        __ast_path: &mut AstKindPath,
110147    ) -> PrivateName {
110148        <PrivateName as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110149    }
110150    #[doc = "Visit a node of type `PrivateProp`.\n\nBy default, this method calls \
110151             [`PrivateProp::fold_children_with_ast_path`]. If you want to recurse, you need to \
110152             call it manually."]
110153    #[inline]
110154    fn fold_private_prop(
110155        &mut self,
110156        node: PrivateProp,
110157        __ast_path: &mut AstKindPath,
110158    ) -> PrivateProp {
110159        <PrivateProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110160    }
110161    #[doc = "Visit a node of type `Program`.\n\nBy default, this method calls \
110162             [`Program::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110163             manually."]
110164    #[inline]
110165    fn fold_program(&mut self, node: Program, __ast_path: &mut AstKindPath) -> Program {
110166        <Program as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110167    }
110168    #[doc = "Visit a node of type `Prop`.\n\nBy default, this method calls \
110169             [`Prop::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110170             manually."]
110171    #[inline]
110172    fn fold_prop(&mut self, node: Prop, __ast_path: &mut AstKindPath) -> Prop {
110173        <Prop as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110174    }
110175    #[doc = "Visit a node of type `PropName`.\n\nBy default, this method calls \
110176             [`PropName::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110177             it manually."]
110178    #[inline]
110179    fn fold_prop_name(&mut self, node: PropName, __ast_path: &mut AstKindPath) -> PropName {
110180        <PropName as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110181    }
110182    #[doc = "Visit a node of type `PropOrSpread`.\n\nBy default, this method calls \
110183             [`PropOrSpread::fold_children_with_ast_path`]. If you want to recurse, you need to \
110184             call it manually."]
110185    #[inline]
110186    fn fold_prop_or_spread(
110187        &mut self,
110188        node: PropOrSpread,
110189        __ast_path: &mut AstKindPath,
110190    ) -> PropOrSpread {
110191        <PropOrSpread as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110192    }
110193    #[doc = "Visit a node of type `Vec < PropOrSpread >`.\n\nBy default, this method calls [`Vec < \
110194             PropOrSpread >::fold_children_with_ast_path`]. If you want to recurse, you need to \
110195             call it manually."]
110196    #[inline]
110197    fn fold_prop_or_spreads(
110198        &mut self,
110199        node: Vec<PropOrSpread>,
110200        __ast_path: &mut AstKindPath,
110201    ) -> Vec<PropOrSpread> {
110202        <Vec<PropOrSpread> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110203            node, self, __ast_path,
110204        )
110205    }
110206    #[doc = "Visit a node of type `Regex`.\n\nBy default, this method calls \
110207             [`Regex::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110208             manually."]
110209    #[inline]
110210    fn fold_regex(&mut self, node: Regex, __ast_path: &mut AstKindPath) -> Regex {
110211        <Regex as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110212    }
110213    #[doc = "Visit a node of type `RestPat`.\n\nBy default, this method calls \
110214             [`RestPat::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110215             manually."]
110216    #[inline]
110217    fn fold_rest_pat(&mut self, node: RestPat, __ast_path: &mut AstKindPath) -> RestPat {
110218        <RestPat as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110219    }
110220    #[doc = "Visit a node of type `ReturnStmt`.\n\nBy default, this method calls \
110221             [`ReturnStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110222             it manually."]
110223    #[inline]
110224    fn fold_return_stmt(&mut self, node: ReturnStmt, __ast_path: &mut AstKindPath) -> ReturnStmt {
110225        <ReturnStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110226    }
110227    #[doc = "Visit a node of type `Script`.\n\nBy default, this method calls \
110228             [`Script::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110229             manually."]
110230    #[inline]
110231    fn fold_script(&mut self, node: Script, __ast_path: &mut AstKindPath) -> Script {
110232        <Script as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110233    }
110234    #[doc = "Visit a node of type `SeqExpr`.\n\nBy default, this method calls \
110235             [`SeqExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110236             manually."]
110237    #[inline]
110238    fn fold_seq_expr(&mut self, node: SeqExpr, __ast_path: &mut AstKindPath) -> SeqExpr {
110239        <SeqExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110240    }
110241    #[doc = "Visit a node of type `SetterProp`.\n\nBy default, this method calls \
110242             [`SetterProp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110243             it manually."]
110244    #[inline]
110245    fn fold_setter_prop(&mut self, node: SetterProp, __ast_path: &mut AstKindPath) -> SetterProp {
110246        <SetterProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110247    }
110248    #[doc = "Visit a node of type `SimpleAssignTarget`.\n\nBy default, this method calls \
110249             [`SimpleAssignTarget::fold_children_with_ast_path`]. If you want to recurse, you need \
110250             to call it manually."]
110251    #[inline]
110252    fn fold_simple_assign_target(
110253        &mut self,
110254        node: SimpleAssignTarget,
110255        __ast_path: &mut AstKindPath,
110256    ) -> SimpleAssignTarget {
110257        <SimpleAssignTarget as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110258            node, self, __ast_path,
110259        )
110260    }
110261    #[doc = "Visit a node of type `swc_common :: Span`.\n\nBy default, this method calls \
110262             [`swc_common :: Span::fold_children_with_ast_path`]. If you want to recurse, you need \
110263             to call it manually."]
110264    #[inline]
110265    fn fold_span(
110266        &mut self,
110267        node: swc_common::Span,
110268        __ast_path: &mut AstKindPath,
110269    ) -> swc_common::Span {
110270        <swc_common::Span as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110271            node, self, __ast_path,
110272        )
110273    }
110274    #[doc = "Visit a node of type `SpreadElement`.\n\nBy default, this method calls \
110275             [`SpreadElement::fold_children_with_ast_path`]. If you want to recurse, you need to \
110276             call it manually."]
110277    #[inline]
110278    fn fold_spread_element(
110279        &mut self,
110280        node: SpreadElement,
110281        __ast_path: &mut AstKindPath,
110282    ) -> SpreadElement {
110283        <SpreadElement as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110284            node, self, __ast_path,
110285        )
110286    }
110287    #[doc = "Visit a node of type `StaticBlock`.\n\nBy default, this method calls \
110288             [`StaticBlock::fold_children_with_ast_path`]. If you want to recurse, you need to \
110289             call it manually."]
110290    #[inline]
110291    fn fold_static_block(
110292        &mut self,
110293        node: StaticBlock,
110294        __ast_path: &mut AstKindPath,
110295    ) -> StaticBlock {
110296        <StaticBlock as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110297    }
110298    #[doc = "Visit a node of type `Stmt`.\n\nBy default, this method calls \
110299             [`Stmt::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110300             manually."]
110301    #[inline]
110302    fn fold_stmt(&mut self, node: Stmt, __ast_path: &mut AstKindPath) -> Stmt {
110303        <Stmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110304    }
110305    #[doc = "Visit a node of type `Vec < Stmt >`.\n\nBy default, this method calls [`Vec < Stmt \
110306             >::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110307             manually."]
110308    #[inline]
110309    fn fold_stmts(&mut self, node: Vec<Stmt>, __ast_path: &mut AstKindPath) -> Vec<Stmt> {
110310        <Vec<Stmt> as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110311    }
110312    #[doc = "Visit a node of type `Str`.\n\nBy default, this method calls \
110313             [`Str::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110314             manually."]
110315    #[inline]
110316    fn fold_str(&mut self, node: Str, __ast_path: &mut AstKindPath) -> Str {
110317        <Str as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110318    }
110319    #[doc = "Visit a node of type `Super`.\n\nBy default, this method calls \
110320             [`Super::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110321             manually."]
110322    #[inline]
110323    fn fold_super(&mut self, node: Super, __ast_path: &mut AstKindPath) -> Super {
110324        <Super as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110325    }
110326    #[doc = "Visit a node of type `SuperProp`.\n\nBy default, this method calls \
110327             [`SuperProp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110328             it manually."]
110329    #[inline]
110330    fn fold_super_prop(&mut self, node: SuperProp, __ast_path: &mut AstKindPath) -> SuperProp {
110331        <SuperProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110332    }
110333    #[doc = "Visit a node of type `SuperPropExpr`.\n\nBy default, this method calls \
110334             [`SuperPropExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
110335             call it manually."]
110336    #[inline]
110337    fn fold_super_prop_expr(
110338        &mut self,
110339        node: SuperPropExpr,
110340        __ast_path: &mut AstKindPath,
110341    ) -> SuperPropExpr {
110342        <SuperPropExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110343            node, self, __ast_path,
110344        )
110345    }
110346    #[doc = "Visit a node of type `SwitchCase`.\n\nBy default, this method calls \
110347             [`SwitchCase::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110348             it manually."]
110349    #[inline]
110350    fn fold_switch_case(&mut self, node: SwitchCase, __ast_path: &mut AstKindPath) -> SwitchCase {
110351        <SwitchCase as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110352    }
110353    #[doc = "Visit a node of type `Vec < SwitchCase >`.\n\nBy default, this method calls [`Vec < \
110354             SwitchCase >::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110355             it manually."]
110356    #[inline]
110357    fn fold_switch_cases(
110358        &mut self,
110359        node: Vec<SwitchCase>,
110360        __ast_path: &mut AstKindPath,
110361    ) -> Vec<SwitchCase> {
110362        <Vec<SwitchCase> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110363            node, self, __ast_path,
110364        )
110365    }
110366    #[doc = "Visit a node of type `SwitchStmt`.\n\nBy default, this method calls \
110367             [`SwitchStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110368             it manually."]
110369    #[inline]
110370    fn fold_switch_stmt(&mut self, node: SwitchStmt, __ast_path: &mut AstKindPath) -> SwitchStmt {
110371        <SwitchStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110372    }
110373    #[doc = "Visit a node of type `swc_common :: SyntaxContext`.\n\nBy default, this method calls \
110374             [`swc_common :: SyntaxContext::fold_children_with_ast_path`]. If you want to recurse, \
110375             you need to call it manually."]
110376    #[inline]
110377    fn fold_syntax_context(
110378        &mut self,
110379        node: swc_common::SyntaxContext,
110380        __ast_path: &mut AstKindPath,
110381    ) -> swc_common::SyntaxContext {
110382        <swc_common::SyntaxContext as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110383            node, self, __ast_path,
110384        )
110385    }
110386    #[doc = "Visit a node of type `TaggedTpl`.\n\nBy default, this method calls \
110387             [`TaggedTpl::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110388             it manually."]
110389    #[inline]
110390    fn fold_tagged_tpl(&mut self, node: TaggedTpl, __ast_path: &mut AstKindPath) -> TaggedTpl {
110391        <TaggedTpl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110392    }
110393    #[doc = "Visit a node of type `ThisExpr`.\n\nBy default, this method calls \
110394             [`ThisExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110395             it manually."]
110396    #[inline]
110397    fn fold_this_expr(&mut self, node: ThisExpr, __ast_path: &mut AstKindPath) -> ThisExpr {
110398        <ThisExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110399    }
110400    #[doc = "Visit a node of type `ThrowStmt`.\n\nBy default, this method calls \
110401             [`ThrowStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110402             it manually."]
110403    #[inline]
110404    fn fold_throw_stmt(&mut self, node: ThrowStmt, __ast_path: &mut AstKindPath) -> ThrowStmt {
110405        <ThrowStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110406    }
110407    #[doc = "Visit a node of type `Tpl`.\n\nBy default, this method calls \
110408             [`Tpl::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110409             manually."]
110410    #[inline]
110411    fn fold_tpl(&mut self, node: Tpl, __ast_path: &mut AstKindPath) -> Tpl {
110412        <Tpl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110413    }
110414    #[doc = "Visit a node of type `TplElement`.\n\nBy default, this method calls \
110415             [`TplElement::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110416             it manually."]
110417    #[inline]
110418    fn fold_tpl_element(&mut self, node: TplElement, __ast_path: &mut AstKindPath) -> TplElement {
110419        <TplElement as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110420    }
110421    #[doc = "Visit a node of type `Vec < TplElement >`.\n\nBy default, this method calls [`Vec < \
110422             TplElement >::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110423             it manually."]
110424    #[inline]
110425    fn fold_tpl_elements(
110426        &mut self,
110427        node: Vec<TplElement>,
110428        __ast_path: &mut AstKindPath,
110429    ) -> Vec<TplElement> {
110430        <Vec<TplElement> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110431            node, self, __ast_path,
110432        )
110433    }
110434    #[doc = "Visit a node of type `TruePlusMinus`.\n\nBy default, this method calls \
110435             [`TruePlusMinus::fold_children_with_ast_path`]. If you want to recurse, you need to \
110436             call it manually."]
110437    #[inline]
110438    fn fold_true_plus_minus(
110439        &mut self,
110440        node: TruePlusMinus,
110441        __ast_path: &mut AstKindPath,
110442    ) -> TruePlusMinus {
110443        <TruePlusMinus as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110444            node, self, __ast_path,
110445        )
110446    }
110447    #[doc = "Visit a node of type `TryStmt`.\n\nBy default, this method calls \
110448             [`TryStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110449             manually."]
110450    #[inline]
110451    fn fold_try_stmt(&mut self, node: TryStmt, __ast_path: &mut AstKindPath) -> TryStmt {
110452        <TryStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110453    }
110454    #[doc = "Visit a node of type `TsArrayType`.\n\nBy default, this method calls \
110455             [`TsArrayType::fold_children_with_ast_path`]. If you want to recurse, you need to \
110456             call it manually."]
110457    #[inline]
110458    fn fold_ts_array_type(
110459        &mut self,
110460        node: TsArrayType,
110461        __ast_path: &mut AstKindPath,
110462    ) -> TsArrayType {
110463        <TsArrayType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110464    }
110465    #[doc = "Visit a node of type `TsAsExpr`.\n\nBy default, this method calls \
110466             [`TsAsExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110467             it manually."]
110468    #[inline]
110469    fn fold_ts_as_expr(&mut self, node: TsAsExpr, __ast_path: &mut AstKindPath) -> TsAsExpr {
110470        <TsAsExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110471    }
110472    #[doc = "Visit a node of type `TsCallSignatureDecl`.\n\nBy default, this method calls \
110473             [`TsCallSignatureDecl::fold_children_with_ast_path`]. If you want to recurse, you \
110474             need to call it manually."]
110475    #[inline]
110476    fn fold_ts_call_signature_decl(
110477        &mut self,
110478        node: TsCallSignatureDecl,
110479        __ast_path: &mut AstKindPath,
110480    ) -> TsCallSignatureDecl {
110481        <TsCallSignatureDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110482            node, self, __ast_path,
110483        )
110484    }
110485    #[doc = "Visit a node of type `TsConditionalType`.\n\nBy default, this method calls \
110486             [`TsConditionalType::fold_children_with_ast_path`]. If you want to recurse, you need \
110487             to call it manually."]
110488    #[inline]
110489    fn fold_ts_conditional_type(
110490        &mut self,
110491        node: TsConditionalType,
110492        __ast_path: &mut AstKindPath,
110493    ) -> TsConditionalType {
110494        <TsConditionalType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110495            node, self, __ast_path,
110496        )
110497    }
110498    #[doc = "Visit a node of type `TsConstAssertion`.\n\nBy default, this method calls \
110499             [`TsConstAssertion::fold_children_with_ast_path`]. If you want to recurse, you need \
110500             to call it manually."]
110501    #[inline]
110502    fn fold_ts_const_assertion(
110503        &mut self,
110504        node: TsConstAssertion,
110505        __ast_path: &mut AstKindPath,
110506    ) -> TsConstAssertion {
110507        <TsConstAssertion as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110508            node, self, __ast_path,
110509        )
110510    }
110511    #[doc = "Visit a node of type `TsConstructSignatureDecl`.\n\nBy default, this method calls \
110512             [`TsConstructSignatureDecl::fold_children_with_ast_path`]. If you want to recurse, \
110513             you need to call it manually."]
110514    #[inline]
110515    fn fold_ts_construct_signature_decl(
110516        &mut self,
110517        node: TsConstructSignatureDecl,
110518        __ast_path: &mut AstKindPath,
110519    ) -> TsConstructSignatureDecl {
110520        <TsConstructSignatureDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110521            node, self, __ast_path,
110522        )
110523    }
110524    #[doc = "Visit a node of type `TsConstructorType`.\n\nBy default, this method calls \
110525             [`TsConstructorType::fold_children_with_ast_path`]. If you want to recurse, you need \
110526             to call it manually."]
110527    #[inline]
110528    fn fold_ts_constructor_type(
110529        &mut self,
110530        node: TsConstructorType,
110531        __ast_path: &mut AstKindPath,
110532    ) -> TsConstructorType {
110533        <TsConstructorType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110534            node, self, __ast_path,
110535        )
110536    }
110537    #[doc = "Visit a node of type `TsEntityName`.\n\nBy default, this method calls \
110538             [`TsEntityName::fold_children_with_ast_path`]. If you want to recurse, you need to \
110539             call it manually."]
110540    #[inline]
110541    fn fold_ts_entity_name(
110542        &mut self,
110543        node: TsEntityName,
110544        __ast_path: &mut AstKindPath,
110545    ) -> TsEntityName {
110546        <TsEntityName as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110547    }
110548    #[doc = "Visit a node of type `TsEnumDecl`.\n\nBy default, this method calls \
110549             [`TsEnumDecl::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110550             it manually."]
110551    #[inline]
110552    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl, __ast_path: &mut AstKindPath) -> TsEnumDecl {
110553        <TsEnumDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110554    }
110555    #[doc = "Visit a node of type `TsEnumMember`.\n\nBy default, this method calls \
110556             [`TsEnumMember::fold_children_with_ast_path`]. If you want to recurse, you need to \
110557             call it manually."]
110558    #[inline]
110559    fn fold_ts_enum_member(
110560        &mut self,
110561        node: TsEnumMember,
110562        __ast_path: &mut AstKindPath,
110563    ) -> TsEnumMember {
110564        <TsEnumMember as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110565    }
110566    #[doc = "Visit a node of type `TsEnumMemberId`.\n\nBy default, this method calls \
110567             [`TsEnumMemberId::fold_children_with_ast_path`]. If you want to recurse, you need to \
110568             call it manually."]
110569    #[inline]
110570    fn fold_ts_enum_member_id(
110571        &mut self,
110572        node: TsEnumMemberId,
110573        __ast_path: &mut AstKindPath,
110574    ) -> TsEnumMemberId {
110575        <TsEnumMemberId as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110576            node, self, __ast_path,
110577        )
110578    }
110579    #[doc = "Visit a node of type `Vec < TsEnumMember >`.\n\nBy default, this method calls [`Vec < \
110580             TsEnumMember >::fold_children_with_ast_path`]. If you want to recurse, you need to \
110581             call it manually."]
110582    #[inline]
110583    fn fold_ts_enum_members(
110584        &mut self,
110585        node: Vec<TsEnumMember>,
110586        __ast_path: &mut AstKindPath,
110587    ) -> Vec<TsEnumMember> {
110588        <Vec<TsEnumMember> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110589            node, self, __ast_path,
110590        )
110591    }
110592    #[doc = "Visit a node of type `TsExportAssignment`.\n\nBy default, this method calls \
110593             [`TsExportAssignment::fold_children_with_ast_path`]. If you want to recurse, you need \
110594             to call it manually."]
110595    #[inline]
110596    fn fold_ts_export_assignment(
110597        &mut self,
110598        node: TsExportAssignment,
110599        __ast_path: &mut AstKindPath,
110600    ) -> TsExportAssignment {
110601        <TsExportAssignment as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110602            node, self, __ast_path,
110603        )
110604    }
110605    #[doc = "Visit a node of type `TsExprWithTypeArgs`.\n\nBy default, this method calls \
110606             [`TsExprWithTypeArgs::fold_children_with_ast_path`]. If you want to recurse, you need \
110607             to call it manually."]
110608    #[inline]
110609    fn fold_ts_expr_with_type_args(
110610        &mut self,
110611        node: TsExprWithTypeArgs,
110612        __ast_path: &mut AstKindPath,
110613    ) -> TsExprWithTypeArgs {
110614        <TsExprWithTypeArgs as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110615            node, self, __ast_path,
110616        )
110617    }
110618    #[doc = "Visit a node of type `Vec < TsExprWithTypeArgs >`.\n\nBy default, this method calls \
110619             [`Vec < TsExprWithTypeArgs >::fold_children_with_ast_path`]. If you want to recurse, \
110620             you need to call it manually."]
110621    #[inline]
110622    fn fold_ts_expr_with_type_argss(
110623        &mut self,
110624        node: Vec<TsExprWithTypeArgs>,
110625        __ast_path: &mut AstKindPath,
110626    ) -> Vec<TsExprWithTypeArgs> {
110627        <Vec<TsExprWithTypeArgs> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110628            node, self, __ast_path,
110629        )
110630    }
110631    #[doc = "Visit a node of type `TsExternalModuleRef`.\n\nBy default, this method calls \
110632             [`TsExternalModuleRef::fold_children_with_ast_path`]. If you want to recurse, you \
110633             need to call it manually."]
110634    #[inline]
110635    fn fold_ts_external_module_ref(
110636        &mut self,
110637        node: TsExternalModuleRef,
110638        __ast_path: &mut AstKindPath,
110639    ) -> TsExternalModuleRef {
110640        <TsExternalModuleRef as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110641            node, self, __ast_path,
110642        )
110643    }
110644    #[doc = "Visit a node of type `TsFnOrConstructorType`.\n\nBy default, this method calls \
110645             [`TsFnOrConstructorType::fold_children_with_ast_path`]. If you want to recurse, you \
110646             need to call it manually."]
110647    #[inline]
110648    fn fold_ts_fn_or_constructor_type(
110649        &mut self,
110650        node: TsFnOrConstructorType,
110651        __ast_path: &mut AstKindPath,
110652    ) -> TsFnOrConstructorType {
110653        <TsFnOrConstructorType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110654            node, self, __ast_path,
110655        )
110656    }
110657    #[doc = "Visit a node of type `TsFnParam`.\n\nBy default, this method calls \
110658             [`TsFnParam::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110659             it manually."]
110660    #[inline]
110661    fn fold_ts_fn_param(&mut self, node: TsFnParam, __ast_path: &mut AstKindPath) -> TsFnParam {
110662        <TsFnParam as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110663    }
110664    #[doc = "Visit a node of type `Vec < TsFnParam >`.\n\nBy default, this method calls [`Vec < \
110665             TsFnParam >::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110666             it manually."]
110667    #[inline]
110668    fn fold_ts_fn_params(
110669        &mut self,
110670        node: Vec<TsFnParam>,
110671        __ast_path: &mut AstKindPath,
110672    ) -> Vec<TsFnParam> {
110673        <Vec<TsFnParam> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110674            node, self, __ast_path,
110675        )
110676    }
110677    #[doc = "Visit a node of type `TsFnType`.\n\nBy default, this method calls \
110678             [`TsFnType::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110679             it manually."]
110680    #[inline]
110681    fn fold_ts_fn_type(&mut self, node: TsFnType, __ast_path: &mut AstKindPath) -> TsFnType {
110682        <TsFnType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110683    }
110684    #[doc = "Visit a node of type `TsGetterSignature`.\n\nBy default, this method calls \
110685             [`TsGetterSignature::fold_children_with_ast_path`]. If you want to recurse, you need \
110686             to call it manually."]
110687    #[inline]
110688    fn fold_ts_getter_signature(
110689        &mut self,
110690        node: TsGetterSignature,
110691        __ast_path: &mut AstKindPath,
110692    ) -> TsGetterSignature {
110693        <TsGetterSignature as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110694            node, self, __ast_path,
110695        )
110696    }
110697    #[doc = "Visit a node of type `TsImportCallOptions`.\n\nBy default, this method calls \
110698             [`TsImportCallOptions::fold_children_with_ast_path`]. If you want to recurse, you \
110699             need to call it manually."]
110700    #[inline]
110701    fn fold_ts_import_call_options(
110702        &mut self,
110703        node: TsImportCallOptions,
110704        __ast_path: &mut AstKindPath,
110705    ) -> TsImportCallOptions {
110706        <TsImportCallOptions as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110707            node, self, __ast_path,
110708        )
110709    }
110710    #[doc = "Visit a node of type `TsImportEqualsDecl`.\n\nBy default, this method calls \
110711             [`TsImportEqualsDecl::fold_children_with_ast_path`]. If you want to recurse, you need \
110712             to call it manually."]
110713    #[inline]
110714    fn fold_ts_import_equals_decl(
110715        &mut self,
110716        node: TsImportEqualsDecl,
110717        __ast_path: &mut AstKindPath,
110718    ) -> TsImportEqualsDecl {
110719        <TsImportEqualsDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110720            node, self, __ast_path,
110721        )
110722    }
110723    #[doc = "Visit a node of type `TsImportType`.\n\nBy default, this method calls \
110724             [`TsImportType::fold_children_with_ast_path`]. If you want to recurse, you need to \
110725             call it manually."]
110726    #[inline]
110727    fn fold_ts_import_type(
110728        &mut self,
110729        node: TsImportType,
110730        __ast_path: &mut AstKindPath,
110731    ) -> TsImportType {
110732        <TsImportType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110733    }
110734    #[doc = "Visit a node of type `TsIndexSignature`.\n\nBy default, this method calls \
110735             [`TsIndexSignature::fold_children_with_ast_path`]. If you want to recurse, you need \
110736             to call it manually."]
110737    #[inline]
110738    fn fold_ts_index_signature(
110739        &mut self,
110740        node: TsIndexSignature,
110741        __ast_path: &mut AstKindPath,
110742    ) -> TsIndexSignature {
110743        <TsIndexSignature as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110744            node, self, __ast_path,
110745        )
110746    }
110747    #[doc = "Visit a node of type `TsIndexedAccessType`.\n\nBy default, this method calls \
110748             [`TsIndexedAccessType::fold_children_with_ast_path`]. If you want to recurse, you \
110749             need to call it manually."]
110750    #[inline]
110751    fn fold_ts_indexed_access_type(
110752        &mut self,
110753        node: TsIndexedAccessType,
110754        __ast_path: &mut AstKindPath,
110755    ) -> TsIndexedAccessType {
110756        <TsIndexedAccessType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110757            node, self, __ast_path,
110758        )
110759    }
110760    #[doc = "Visit a node of type `TsInferType`.\n\nBy default, this method calls \
110761             [`TsInferType::fold_children_with_ast_path`]. If you want to recurse, you need to \
110762             call it manually."]
110763    #[inline]
110764    fn fold_ts_infer_type(
110765        &mut self,
110766        node: TsInferType,
110767        __ast_path: &mut AstKindPath,
110768    ) -> TsInferType {
110769        <TsInferType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110770    }
110771    #[doc = "Visit a node of type `TsInstantiation`.\n\nBy default, this method calls \
110772             [`TsInstantiation::fold_children_with_ast_path`]. If you want to recurse, you need to \
110773             call it manually."]
110774    #[inline]
110775    fn fold_ts_instantiation(
110776        &mut self,
110777        node: TsInstantiation,
110778        __ast_path: &mut AstKindPath,
110779    ) -> TsInstantiation {
110780        <TsInstantiation as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110781            node, self, __ast_path,
110782        )
110783    }
110784    #[doc = "Visit a node of type `TsInterfaceBody`.\n\nBy default, this method calls \
110785             [`TsInterfaceBody::fold_children_with_ast_path`]. If you want to recurse, you need to \
110786             call it manually."]
110787    #[inline]
110788    fn fold_ts_interface_body(
110789        &mut self,
110790        node: TsInterfaceBody,
110791        __ast_path: &mut AstKindPath,
110792    ) -> TsInterfaceBody {
110793        <TsInterfaceBody as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110794            node, self, __ast_path,
110795        )
110796    }
110797    #[doc = "Visit a node of type `TsInterfaceDecl`.\n\nBy default, this method calls \
110798             [`TsInterfaceDecl::fold_children_with_ast_path`]. If you want to recurse, you need to \
110799             call it manually."]
110800    #[inline]
110801    fn fold_ts_interface_decl(
110802        &mut self,
110803        node: TsInterfaceDecl,
110804        __ast_path: &mut AstKindPath,
110805    ) -> TsInterfaceDecl {
110806        <TsInterfaceDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110807            node, self, __ast_path,
110808        )
110809    }
110810    #[doc = "Visit a node of type `TsIntersectionType`.\n\nBy default, this method calls \
110811             [`TsIntersectionType::fold_children_with_ast_path`]. If you want to recurse, you need \
110812             to call it manually."]
110813    #[inline]
110814    fn fold_ts_intersection_type(
110815        &mut self,
110816        node: TsIntersectionType,
110817        __ast_path: &mut AstKindPath,
110818    ) -> TsIntersectionType {
110819        <TsIntersectionType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110820            node, self, __ast_path,
110821        )
110822    }
110823    #[doc = "Visit a node of type `TsKeywordType`.\n\nBy default, this method calls \
110824             [`TsKeywordType::fold_children_with_ast_path`]. If you want to recurse, you need to \
110825             call it manually."]
110826    #[inline]
110827    fn fold_ts_keyword_type(
110828        &mut self,
110829        node: TsKeywordType,
110830        __ast_path: &mut AstKindPath,
110831    ) -> TsKeywordType {
110832        <TsKeywordType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110833            node, self, __ast_path,
110834        )
110835    }
110836    #[doc = "Visit a node of type `TsKeywordTypeKind`.\n\nBy default, this method calls \
110837             [`TsKeywordTypeKind::fold_children_with_ast_path`]. If you want to recurse, you need \
110838             to call it manually."]
110839    #[inline]
110840    fn fold_ts_keyword_type_kind(
110841        &mut self,
110842        node: TsKeywordTypeKind,
110843        __ast_path: &mut AstKindPath,
110844    ) -> TsKeywordTypeKind {
110845        <TsKeywordTypeKind as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110846            node, self, __ast_path,
110847        )
110848    }
110849    #[doc = "Visit a node of type `TsLit`.\n\nBy default, this method calls \
110850             [`TsLit::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110851             manually."]
110852    #[inline]
110853    fn fold_ts_lit(&mut self, node: TsLit, __ast_path: &mut AstKindPath) -> TsLit {
110854        <TsLit as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110855    }
110856    #[doc = "Visit a node of type `TsLitType`.\n\nBy default, this method calls \
110857             [`TsLitType::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110858             it manually."]
110859    #[inline]
110860    fn fold_ts_lit_type(&mut self, node: TsLitType, __ast_path: &mut AstKindPath) -> TsLitType {
110861        <TsLitType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110862    }
110863    #[doc = "Visit a node of type `TsMappedType`.\n\nBy default, this method calls \
110864             [`TsMappedType::fold_children_with_ast_path`]. If you want to recurse, you need to \
110865             call it manually."]
110866    #[inline]
110867    fn fold_ts_mapped_type(
110868        &mut self,
110869        node: TsMappedType,
110870        __ast_path: &mut AstKindPath,
110871    ) -> TsMappedType {
110872        <TsMappedType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110873    }
110874    #[doc = "Visit a node of type `TsMethodSignature`.\n\nBy default, this method calls \
110875             [`TsMethodSignature::fold_children_with_ast_path`]. If you want to recurse, you need \
110876             to call it manually."]
110877    #[inline]
110878    fn fold_ts_method_signature(
110879        &mut self,
110880        node: TsMethodSignature,
110881        __ast_path: &mut AstKindPath,
110882    ) -> TsMethodSignature {
110883        <TsMethodSignature as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110884            node, self, __ast_path,
110885        )
110886    }
110887    #[doc = "Visit a node of type `TsModuleBlock`.\n\nBy default, this method calls \
110888             [`TsModuleBlock::fold_children_with_ast_path`]. If you want to recurse, you need to \
110889             call it manually."]
110890    #[inline]
110891    fn fold_ts_module_block(
110892        &mut self,
110893        node: TsModuleBlock,
110894        __ast_path: &mut AstKindPath,
110895    ) -> TsModuleBlock {
110896        <TsModuleBlock as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110897            node, self, __ast_path,
110898        )
110899    }
110900    #[doc = "Visit a node of type `TsModuleDecl`.\n\nBy default, this method calls \
110901             [`TsModuleDecl::fold_children_with_ast_path`]. If you want to recurse, you need to \
110902             call it manually."]
110903    #[inline]
110904    fn fold_ts_module_decl(
110905        &mut self,
110906        node: TsModuleDecl,
110907        __ast_path: &mut AstKindPath,
110908    ) -> TsModuleDecl {
110909        <TsModuleDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110910    }
110911    #[doc = "Visit a node of type `TsModuleName`.\n\nBy default, this method calls \
110912             [`TsModuleName::fold_children_with_ast_path`]. If you want to recurse, you need to \
110913             call it manually."]
110914    #[inline]
110915    fn fold_ts_module_name(
110916        &mut self,
110917        node: TsModuleName,
110918        __ast_path: &mut AstKindPath,
110919    ) -> TsModuleName {
110920        <TsModuleName as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110921    }
110922    #[doc = "Visit a node of type `TsModuleRef`.\n\nBy default, this method calls \
110923             [`TsModuleRef::fold_children_with_ast_path`]. If you want to recurse, you need to \
110924             call it manually."]
110925    #[inline]
110926    fn fold_ts_module_ref(
110927        &mut self,
110928        node: TsModuleRef,
110929        __ast_path: &mut AstKindPath,
110930    ) -> TsModuleRef {
110931        <TsModuleRef as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110932    }
110933    #[doc = "Visit a node of type `TsNamespaceBody`.\n\nBy default, this method calls \
110934             [`TsNamespaceBody::fold_children_with_ast_path`]. If you want to recurse, you need to \
110935             call it manually."]
110936    #[inline]
110937    fn fold_ts_namespace_body(
110938        &mut self,
110939        node: TsNamespaceBody,
110940        __ast_path: &mut AstKindPath,
110941    ) -> TsNamespaceBody {
110942        <TsNamespaceBody as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110943            node, self, __ast_path,
110944        )
110945    }
110946    #[doc = "Visit a node of type `TsNamespaceDecl`.\n\nBy default, this method calls \
110947             [`TsNamespaceDecl::fold_children_with_ast_path`]. If you want to recurse, you need to \
110948             call it manually."]
110949    #[inline]
110950    fn fold_ts_namespace_decl(
110951        &mut self,
110952        node: TsNamespaceDecl,
110953        __ast_path: &mut AstKindPath,
110954    ) -> TsNamespaceDecl {
110955        <TsNamespaceDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110956            node, self, __ast_path,
110957        )
110958    }
110959    #[doc = "Visit a node of type `TsNamespaceExportDecl`.\n\nBy default, this method calls \
110960             [`TsNamespaceExportDecl::fold_children_with_ast_path`]. If you want to recurse, you \
110961             need to call it manually."]
110962    #[inline]
110963    fn fold_ts_namespace_export_decl(
110964        &mut self,
110965        node: TsNamespaceExportDecl,
110966        __ast_path: &mut AstKindPath,
110967    ) -> TsNamespaceExportDecl {
110968        <TsNamespaceExportDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110969            node, self, __ast_path,
110970        )
110971    }
110972    #[doc = "Visit a node of type `TsNonNullExpr`.\n\nBy default, this method calls \
110973             [`TsNonNullExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
110974             call it manually."]
110975    #[inline]
110976    fn fold_ts_non_null_expr(
110977        &mut self,
110978        node: TsNonNullExpr,
110979        __ast_path: &mut AstKindPath,
110980    ) -> TsNonNullExpr {
110981        <TsNonNullExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110982            node, self, __ast_path,
110983        )
110984    }
110985    #[doc = "Visit a node of type `TsOptionalType`.\n\nBy default, this method calls \
110986             [`TsOptionalType::fold_children_with_ast_path`]. If you want to recurse, you need to \
110987             call it manually."]
110988    #[inline]
110989    fn fold_ts_optional_type(
110990        &mut self,
110991        node: TsOptionalType,
110992        __ast_path: &mut AstKindPath,
110993    ) -> TsOptionalType {
110994        <TsOptionalType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110995            node, self, __ast_path,
110996        )
110997    }
110998    #[doc = "Visit a node of type `TsParamProp`.\n\nBy default, this method calls \
110999             [`TsParamProp::fold_children_with_ast_path`]. If you want to recurse, you need to \
111000             call it manually."]
111001    #[inline]
111002    fn fold_ts_param_prop(
111003        &mut self,
111004        node: TsParamProp,
111005        __ast_path: &mut AstKindPath,
111006    ) -> TsParamProp {
111007        <TsParamProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111008    }
111009    #[doc = "Visit a node of type `TsParamPropParam`.\n\nBy default, this method calls \
111010             [`TsParamPropParam::fold_children_with_ast_path`]. If you want to recurse, you need \
111011             to call it manually."]
111012    #[inline]
111013    fn fold_ts_param_prop_param(
111014        &mut self,
111015        node: TsParamPropParam,
111016        __ast_path: &mut AstKindPath,
111017    ) -> TsParamPropParam {
111018        <TsParamPropParam as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111019            node, self, __ast_path,
111020        )
111021    }
111022    #[doc = "Visit a node of type `TsParenthesizedType`.\n\nBy default, this method calls \
111023             [`TsParenthesizedType::fold_children_with_ast_path`]. If you want to recurse, you \
111024             need to call it manually."]
111025    #[inline]
111026    fn fold_ts_parenthesized_type(
111027        &mut self,
111028        node: TsParenthesizedType,
111029        __ast_path: &mut AstKindPath,
111030    ) -> TsParenthesizedType {
111031        <TsParenthesizedType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111032            node, self, __ast_path,
111033        )
111034    }
111035    #[doc = "Visit a node of type `TsPropertySignature`.\n\nBy default, this method calls \
111036             [`TsPropertySignature::fold_children_with_ast_path`]. If you want to recurse, you \
111037             need to call it manually."]
111038    #[inline]
111039    fn fold_ts_property_signature(
111040        &mut self,
111041        node: TsPropertySignature,
111042        __ast_path: &mut AstKindPath,
111043    ) -> TsPropertySignature {
111044        <TsPropertySignature as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111045            node, self, __ast_path,
111046        )
111047    }
111048    #[doc = "Visit a node of type `TsQualifiedName`.\n\nBy default, this method calls \
111049             [`TsQualifiedName::fold_children_with_ast_path`]. If you want to recurse, you need to \
111050             call it manually."]
111051    #[inline]
111052    fn fold_ts_qualified_name(
111053        &mut self,
111054        node: TsQualifiedName,
111055        __ast_path: &mut AstKindPath,
111056    ) -> TsQualifiedName {
111057        <TsQualifiedName as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111058            node, self, __ast_path,
111059        )
111060    }
111061    #[doc = "Visit a node of type `TsRestType`.\n\nBy default, this method calls \
111062             [`TsRestType::fold_children_with_ast_path`]. If you want to recurse, you need to call \
111063             it manually."]
111064    #[inline]
111065    fn fold_ts_rest_type(&mut self, node: TsRestType, __ast_path: &mut AstKindPath) -> TsRestType {
111066        <TsRestType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111067    }
111068    #[doc = "Visit a node of type `TsSatisfiesExpr`.\n\nBy default, this method calls \
111069             [`TsSatisfiesExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
111070             call it manually."]
111071    #[inline]
111072    fn fold_ts_satisfies_expr(
111073        &mut self,
111074        node: TsSatisfiesExpr,
111075        __ast_path: &mut AstKindPath,
111076    ) -> TsSatisfiesExpr {
111077        <TsSatisfiesExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111078            node, self, __ast_path,
111079        )
111080    }
111081    #[doc = "Visit a node of type `TsSetterSignature`.\n\nBy default, this method calls \
111082             [`TsSetterSignature::fold_children_with_ast_path`]. If you want to recurse, you need \
111083             to call it manually."]
111084    #[inline]
111085    fn fold_ts_setter_signature(
111086        &mut self,
111087        node: TsSetterSignature,
111088        __ast_path: &mut AstKindPath,
111089    ) -> TsSetterSignature {
111090        <TsSetterSignature as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111091            node, self, __ast_path,
111092        )
111093    }
111094    #[doc = "Visit a node of type `TsThisType`.\n\nBy default, this method calls \
111095             [`TsThisType::fold_children_with_ast_path`]. If you want to recurse, you need to call \
111096             it manually."]
111097    #[inline]
111098    fn fold_ts_this_type(&mut self, node: TsThisType, __ast_path: &mut AstKindPath) -> TsThisType {
111099        <TsThisType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111100    }
111101    #[doc = "Visit a node of type `TsThisTypeOrIdent`.\n\nBy default, this method calls \
111102             [`TsThisTypeOrIdent::fold_children_with_ast_path`]. If you want to recurse, you need \
111103             to call it manually."]
111104    #[inline]
111105    fn fold_ts_this_type_or_ident(
111106        &mut self,
111107        node: TsThisTypeOrIdent,
111108        __ast_path: &mut AstKindPath,
111109    ) -> TsThisTypeOrIdent {
111110        <TsThisTypeOrIdent as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111111            node, self, __ast_path,
111112        )
111113    }
111114    #[doc = "Visit a node of type `TsTplLitType`.\n\nBy default, this method calls \
111115             [`TsTplLitType::fold_children_with_ast_path`]. If you want to recurse, you need to \
111116             call it manually."]
111117    #[inline]
111118    fn fold_ts_tpl_lit_type(
111119        &mut self,
111120        node: TsTplLitType,
111121        __ast_path: &mut AstKindPath,
111122    ) -> TsTplLitType {
111123        <TsTplLitType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111124    }
111125    #[doc = "Visit a node of type `TsTupleElement`.\n\nBy default, this method calls \
111126             [`TsTupleElement::fold_children_with_ast_path`]. If you want to recurse, you need to \
111127             call it manually."]
111128    #[inline]
111129    fn fold_ts_tuple_element(
111130        &mut self,
111131        node: TsTupleElement,
111132        __ast_path: &mut AstKindPath,
111133    ) -> TsTupleElement {
111134        <TsTupleElement as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111135            node, self, __ast_path,
111136        )
111137    }
111138    #[doc = "Visit a node of type `Vec < TsTupleElement >`.\n\nBy default, this method calls [`Vec \
111139             < TsTupleElement >::fold_children_with_ast_path`]. If you want to recurse, you need \
111140             to call it manually."]
111141    #[inline]
111142    fn fold_ts_tuple_elements(
111143        &mut self,
111144        node: Vec<TsTupleElement>,
111145        __ast_path: &mut AstKindPath,
111146    ) -> Vec<TsTupleElement> {
111147        <Vec<TsTupleElement> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111148            node, self, __ast_path,
111149        )
111150    }
111151    #[doc = "Visit a node of type `TsTupleType`.\n\nBy default, this method calls \
111152             [`TsTupleType::fold_children_with_ast_path`]. If you want to recurse, you need to \
111153             call it manually."]
111154    #[inline]
111155    fn fold_ts_tuple_type(
111156        &mut self,
111157        node: TsTupleType,
111158        __ast_path: &mut AstKindPath,
111159    ) -> TsTupleType {
111160        <TsTupleType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111161    }
111162    #[doc = "Visit a node of type `TsType`.\n\nBy default, this method calls \
111163             [`TsType::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
111164             manually."]
111165    #[inline]
111166    fn fold_ts_type(&mut self, node: TsType, __ast_path: &mut AstKindPath) -> TsType {
111167        <TsType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111168    }
111169    #[doc = "Visit a node of type `TsTypeAliasDecl`.\n\nBy default, this method calls \
111170             [`TsTypeAliasDecl::fold_children_with_ast_path`]. If you want to recurse, you need to \
111171             call it manually."]
111172    #[inline]
111173    fn fold_ts_type_alias_decl(
111174        &mut self,
111175        node: TsTypeAliasDecl,
111176        __ast_path: &mut AstKindPath,
111177    ) -> TsTypeAliasDecl {
111178        <TsTypeAliasDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111179            node, self, __ast_path,
111180        )
111181    }
111182    #[doc = "Visit a node of type `TsTypeAnn`.\n\nBy default, this method calls \
111183             [`TsTypeAnn::fold_children_with_ast_path`]. If you want to recurse, you need to call \
111184             it manually."]
111185    #[inline]
111186    fn fold_ts_type_ann(&mut self, node: TsTypeAnn, __ast_path: &mut AstKindPath) -> TsTypeAnn {
111187        <TsTypeAnn as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111188    }
111189    #[doc = "Visit a node of type `TsTypeAssertion`.\n\nBy default, this method calls \
111190             [`TsTypeAssertion::fold_children_with_ast_path`]. If you want to recurse, you need to \
111191             call it manually."]
111192    #[inline]
111193    fn fold_ts_type_assertion(
111194        &mut self,
111195        node: TsTypeAssertion,
111196        __ast_path: &mut AstKindPath,
111197    ) -> TsTypeAssertion {
111198        <TsTypeAssertion as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111199            node, self, __ast_path,
111200        )
111201    }
111202    #[doc = "Visit a node of type `TsTypeElement`.\n\nBy default, this method calls \
111203             [`TsTypeElement::fold_children_with_ast_path`]. If you want to recurse, you need to \
111204             call it manually."]
111205    #[inline]
111206    fn fold_ts_type_element(
111207        &mut self,
111208        node: TsTypeElement,
111209        __ast_path: &mut AstKindPath,
111210    ) -> TsTypeElement {
111211        <TsTypeElement as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111212            node, self, __ast_path,
111213        )
111214    }
111215    #[doc = "Visit a node of type `Vec < TsTypeElement >`.\n\nBy default, this method calls [`Vec \
111216             < TsTypeElement >::fold_children_with_ast_path`]. If you want to recurse, you need to \
111217             call it manually."]
111218    #[inline]
111219    fn fold_ts_type_elements(
111220        &mut self,
111221        node: Vec<TsTypeElement>,
111222        __ast_path: &mut AstKindPath,
111223    ) -> Vec<TsTypeElement> {
111224        <Vec<TsTypeElement> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111225            node, self, __ast_path,
111226        )
111227    }
111228    #[doc = "Visit a node of type `TsTypeLit`.\n\nBy default, this method calls \
111229             [`TsTypeLit::fold_children_with_ast_path`]. If you want to recurse, you need to call \
111230             it manually."]
111231    #[inline]
111232    fn fold_ts_type_lit(&mut self, node: TsTypeLit, __ast_path: &mut AstKindPath) -> TsTypeLit {
111233        <TsTypeLit as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111234    }
111235    #[doc = "Visit a node of type `TsTypeOperator`.\n\nBy default, this method calls \
111236             [`TsTypeOperator::fold_children_with_ast_path`]. If you want to recurse, you need to \
111237             call it manually."]
111238    #[inline]
111239    fn fold_ts_type_operator(
111240        &mut self,
111241        node: TsTypeOperator,
111242        __ast_path: &mut AstKindPath,
111243    ) -> TsTypeOperator {
111244        <TsTypeOperator as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111245            node, self, __ast_path,
111246        )
111247    }
111248    #[doc = "Visit a node of type `TsTypeOperatorOp`.\n\nBy default, this method calls \
111249             [`TsTypeOperatorOp::fold_children_with_ast_path`]. If you want to recurse, you need \
111250             to call it manually."]
111251    #[inline]
111252    fn fold_ts_type_operator_op(
111253        &mut self,
111254        node: TsTypeOperatorOp,
111255        __ast_path: &mut AstKindPath,
111256    ) -> TsTypeOperatorOp {
111257        <TsTypeOperatorOp as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111258            node, self, __ast_path,
111259        )
111260    }
111261    #[doc = "Visit a node of type `TsTypeParam`.\n\nBy default, this method calls \
111262             [`TsTypeParam::fold_children_with_ast_path`]. If you want to recurse, you need to \
111263             call it manually."]
111264    #[inline]
111265    fn fold_ts_type_param(
111266        &mut self,
111267        node: TsTypeParam,
111268        __ast_path: &mut AstKindPath,
111269    ) -> TsTypeParam {
111270        <TsTypeParam as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111271    }
111272    #[doc = "Visit a node of type `TsTypeParamDecl`.\n\nBy default, this method calls \
111273             [`TsTypeParamDecl::fold_children_with_ast_path`]. If you want to recurse, you need to \
111274             call it manually."]
111275    #[inline]
111276    fn fold_ts_type_param_decl(
111277        &mut self,
111278        node: TsTypeParamDecl,
111279        __ast_path: &mut AstKindPath,
111280    ) -> TsTypeParamDecl {
111281        <TsTypeParamDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111282            node, self, __ast_path,
111283        )
111284    }
111285    #[doc = "Visit a node of type `TsTypeParamInstantiation`.\n\nBy default, this method calls \
111286             [`TsTypeParamInstantiation::fold_children_with_ast_path`]. If you want to recurse, \
111287             you need to call it manually."]
111288    #[inline]
111289    fn fold_ts_type_param_instantiation(
111290        &mut self,
111291        node: TsTypeParamInstantiation,
111292        __ast_path: &mut AstKindPath,
111293    ) -> TsTypeParamInstantiation {
111294        <TsTypeParamInstantiation as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111295            node, self, __ast_path,
111296        )
111297    }
111298    #[doc = "Visit a node of type `Vec < TsTypeParam >`.\n\nBy default, this method calls [`Vec < \
111299             TsTypeParam >::fold_children_with_ast_path`]. If you want to recurse, you need to \
111300             call it manually."]
111301    #[inline]
111302    fn fold_ts_type_params(
111303        &mut self,
111304        node: Vec<TsTypeParam>,
111305        __ast_path: &mut AstKindPath,
111306    ) -> Vec<TsTypeParam> {
111307        <Vec<TsTypeParam> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111308            node, self, __ast_path,
111309        )
111310    }
111311    #[doc = "Visit a node of type `TsTypePredicate`.\n\nBy default, this method calls \
111312             [`TsTypePredicate::fold_children_with_ast_path`]. If you want to recurse, you need to \
111313             call it manually."]
111314    #[inline]
111315    fn fold_ts_type_predicate(
111316        &mut self,
111317        node: TsTypePredicate,
111318        __ast_path: &mut AstKindPath,
111319    ) -> TsTypePredicate {
111320        <TsTypePredicate as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111321            node, self, __ast_path,
111322        )
111323    }
111324    #[doc = "Visit a node of type `TsTypeQuery`.\n\nBy default, this method calls \
111325             [`TsTypeQuery::fold_children_with_ast_path`]. If you want to recurse, you need to \
111326             call it manually."]
111327    #[inline]
111328    fn fold_ts_type_query(
111329        &mut self,
111330        node: TsTypeQuery,
111331        __ast_path: &mut AstKindPath,
111332    ) -> TsTypeQuery {
111333        <TsTypeQuery as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111334    }
111335    #[doc = "Visit a node of type `TsTypeQueryExpr`.\n\nBy default, this method calls \
111336             [`TsTypeQueryExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
111337             call it manually."]
111338    #[inline]
111339    fn fold_ts_type_query_expr(
111340        &mut self,
111341        node: TsTypeQueryExpr,
111342        __ast_path: &mut AstKindPath,
111343    ) -> TsTypeQueryExpr {
111344        <TsTypeQueryExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111345            node, self, __ast_path,
111346        )
111347    }
111348    #[doc = "Visit a node of type `TsTypeRef`.\n\nBy default, this method calls \
111349             [`TsTypeRef::fold_children_with_ast_path`]. If you want to recurse, you need to call \
111350             it manually."]
111351    #[inline]
111352    fn fold_ts_type_ref(&mut self, node: TsTypeRef, __ast_path: &mut AstKindPath) -> TsTypeRef {
111353        <TsTypeRef as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111354    }
111355    #[doc = "Visit a node of type `Vec < Box < TsType > >`.\n\nBy default, this method calls [`Vec \
111356             < Box < TsType > >::fold_children_with_ast_path`]. If you want to recurse, you need \
111357             to call it manually."]
111358    #[inline]
111359    fn fold_ts_types(
111360        &mut self,
111361        node: Vec<Box<TsType>>,
111362        __ast_path: &mut AstKindPath,
111363    ) -> Vec<Box<TsType>> {
111364        <Vec<Box<TsType>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111365            node, self, __ast_path,
111366        )
111367    }
111368    #[doc = "Visit a node of type `TsUnionOrIntersectionType`.\n\nBy default, this method calls \
111369             [`TsUnionOrIntersectionType::fold_children_with_ast_path`]. If you want to recurse, \
111370             you need to call it manually."]
111371    #[inline]
111372    fn fold_ts_union_or_intersection_type(
111373        &mut self,
111374        node: TsUnionOrIntersectionType,
111375        __ast_path: &mut AstKindPath,
111376    ) -> TsUnionOrIntersectionType {
111377        <TsUnionOrIntersectionType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111378            node, self, __ast_path,
111379        )
111380    }
111381    #[doc = "Visit a node of type `TsUnionType`.\n\nBy default, this method calls \
111382             [`TsUnionType::fold_children_with_ast_path`]. If you want to recurse, you need to \
111383             call it manually."]
111384    #[inline]
111385    fn fold_ts_union_type(
111386        &mut self,
111387        node: TsUnionType,
111388        __ast_path: &mut AstKindPath,
111389    ) -> TsUnionType {
111390        <TsUnionType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111391    }
111392    #[doc = "Visit a node of type `UnaryExpr`.\n\nBy default, this method calls \
111393             [`UnaryExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
111394             it manually."]
111395    #[inline]
111396    fn fold_unary_expr(&mut self, node: UnaryExpr, __ast_path: &mut AstKindPath) -> UnaryExpr {
111397        <UnaryExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111398    }
111399    #[doc = "Visit a node of type `UnaryOp`.\n\nBy default, this method calls \
111400             [`UnaryOp::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
111401             manually."]
111402    #[inline]
111403    fn fold_unary_op(&mut self, node: UnaryOp, __ast_path: &mut AstKindPath) -> UnaryOp {
111404        <UnaryOp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111405    }
111406    #[doc = "Visit a node of type `UpdateExpr`.\n\nBy default, this method calls \
111407             [`UpdateExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
111408             it manually."]
111409    #[inline]
111410    fn fold_update_expr(&mut self, node: UpdateExpr, __ast_path: &mut AstKindPath) -> UpdateExpr {
111411        <UpdateExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111412    }
111413    #[doc = "Visit a node of type `UpdateOp`.\n\nBy default, this method calls \
111414             [`UpdateOp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
111415             it manually."]
111416    #[inline]
111417    fn fold_update_op(&mut self, node: UpdateOp, __ast_path: &mut AstKindPath) -> UpdateOp {
111418        <UpdateOp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111419    }
111420    #[doc = "Visit a node of type `UsingDecl`.\n\nBy default, this method calls \
111421             [`UsingDecl::fold_children_with_ast_path`]. If you want to recurse, you need to call \
111422             it manually."]
111423    #[inline]
111424    fn fold_using_decl(&mut self, node: UsingDecl, __ast_path: &mut AstKindPath) -> UsingDecl {
111425        <UsingDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111426    }
111427    #[doc = "Visit a node of type `VarDecl`.\n\nBy default, this method calls \
111428             [`VarDecl::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
111429             manually."]
111430    #[inline]
111431    fn fold_var_decl(&mut self, node: VarDecl, __ast_path: &mut AstKindPath) -> VarDecl {
111432        <VarDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111433    }
111434    #[doc = "Visit a node of type `VarDeclKind`.\n\nBy default, this method calls \
111435             [`VarDeclKind::fold_children_with_ast_path`]. If you want to recurse, you need to \
111436             call it manually."]
111437    #[inline]
111438    fn fold_var_decl_kind(
111439        &mut self,
111440        node: VarDeclKind,
111441        __ast_path: &mut AstKindPath,
111442    ) -> VarDeclKind {
111443        <VarDeclKind as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111444    }
111445    #[doc = "Visit a node of type `VarDeclOrExpr`.\n\nBy default, this method calls \
111446             [`VarDeclOrExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
111447             call it manually."]
111448    #[inline]
111449    fn fold_var_decl_or_expr(
111450        &mut self,
111451        node: VarDeclOrExpr,
111452        __ast_path: &mut AstKindPath,
111453    ) -> VarDeclOrExpr {
111454        <VarDeclOrExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111455            node, self, __ast_path,
111456        )
111457    }
111458    #[doc = "Visit a node of type `VarDeclarator`.\n\nBy default, this method calls \
111459             [`VarDeclarator::fold_children_with_ast_path`]. If you want to recurse, you need to \
111460             call it manually."]
111461    #[inline]
111462    fn fold_var_declarator(
111463        &mut self,
111464        node: VarDeclarator,
111465        __ast_path: &mut AstKindPath,
111466    ) -> VarDeclarator {
111467        <VarDeclarator as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111468            node, self, __ast_path,
111469        )
111470    }
111471    #[doc = "Visit a node of type `Vec < VarDeclarator >`.\n\nBy default, this method calls [`Vec \
111472             < VarDeclarator >::fold_children_with_ast_path`]. If you want to recurse, you need to \
111473             call it manually."]
111474    #[inline]
111475    fn fold_var_declarators(
111476        &mut self,
111477        node: Vec<VarDeclarator>,
111478        __ast_path: &mut AstKindPath,
111479    ) -> Vec<VarDeclarator> {
111480        <Vec<VarDeclarator> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
111481            node, self, __ast_path,
111482        )
111483    }
111484    #[doc = "Visit a node of type `WhileStmt`.\n\nBy default, this method calls \
111485             [`WhileStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
111486             it manually."]
111487    #[inline]
111488    fn fold_while_stmt(&mut self, node: WhileStmt, __ast_path: &mut AstKindPath) -> WhileStmt {
111489        <WhileStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111490    }
111491    #[doc = "Visit a node of type `WithStmt`.\n\nBy default, this method calls \
111492             [`WithStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
111493             it manually."]
111494    #[inline]
111495    fn fold_with_stmt(&mut self, node: WithStmt, __ast_path: &mut AstKindPath) -> WithStmt {
111496        <WithStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111497    }
111498    #[doc = "Visit a node of type `YieldExpr`.\n\nBy default, this method calls \
111499             [`YieldExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
111500             it manually."]
111501    #[inline]
111502    fn fold_yield_expr(&mut self, node: YieldExpr, __ast_path: &mut AstKindPath) -> YieldExpr {
111503        <YieldExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
111504    }
111505}
111506#[cfg(any(docsrs, feature = "path"))]
111507#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
111508impl<V> FoldAstPath for &mut V
111509where
111510    V: ?Sized + FoldAstPath,
111511{
111512    #[inline]
111513    fn fold_accessibility(
111514        &mut self,
111515        node: Accessibility,
111516        __ast_path: &mut AstKindPath,
111517    ) -> Accessibility {
111518        <V as FoldAstPath>::fold_accessibility(&mut **self, node, __ast_path)
111519    }
111520
111521    #[inline]
111522    fn fold_array_lit(&mut self, node: ArrayLit, __ast_path: &mut AstKindPath) -> ArrayLit {
111523        <V as FoldAstPath>::fold_array_lit(&mut **self, node, __ast_path)
111524    }
111525
111526    #[inline]
111527    fn fold_array_pat(&mut self, node: ArrayPat, __ast_path: &mut AstKindPath) -> ArrayPat {
111528        <V as FoldAstPath>::fold_array_pat(&mut **self, node, __ast_path)
111529    }
111530
111531    #[inline]
111532    fn fold_arrow_expr(&mut self, node: ArrowExpr, __ast_path: &mut AstKindPath) -> ArrowExpr {
111533        <V as FoldAstPath>::fold_arrow_expr(&mut **self, node, __ast_path)
111534    }
111535
111536    #[inline]
111537    fn fold_assign_expr(&mut self, node: AssignExpr, __ast_path: &mut AstKindPath) -> AssignExpr {
111538        <V as FoldAstPath>::fold_assign_expr(&mut **self, node, __ast_path)
111539    }
111540
111541    #[inline]
111542    fn fold_assign_op(&mut self, node: AssignOp, __ast_path: &mut AstKindPath) -> AssignOp {
111543        <V as FoldAstPath>::fold_assign_op(&mut **self, node, __ast_path)
111544    }
111545
111546    #[inline]
111547    fn fold_assign_pat(&mut self, node: AssignPat, __ast_path: &mut AstKindPath) -> AssignPat {
111548        <V as FoldAstPath>::fold_assign_pat(&mut **self, node, __ast_path)
111549    }
111550
111551    #[inline]
111552    fn fold_assign_pat_prop(
111553        &mut self,
111554        node: AssignPatProp,
111555        __ast_path: &mut AstKindPath,
111556    ) -> AssignPatProp {
111557        <V as FoldAstPath>::fold_assign_pat_prop(&mut **self, node, __ast_path)
111558    }
111559
111560    #[inline]
111561    fn fold_assign_prop(&mut self, node: AssignProp, __ast_path: &mut AstKindPath) -> AssignProp {
111562        <V as FoldAstPath>::fold_assign_prop(&mut **self, node, __ast_path)
111563    }
111564
111565    #[inline]
111566    fn fold_assign_target(
111567        &mut self,
111568        node: AssignTarget,
111569        __ast_path: &mut AstKindPath,
111570    ) -> AssignTarget {
111571        <V as FoldAstPath>::fold_assign_target(&mut **self, node, __ast_path)
111572    }
111573
111574    #[inline]
111575    fn fold_assign_target_pat(
111576        &mut self,
111577        node: AssignTargetPat,
111578        __ast_path: &mut AstKindPath,
111579    ) -> AssignTargetPat {
111580        <V as FoldAstPath>::fold_assign_target_pat(&mut **self, node, __ast_path)
111581    }
111582
111583    #[inline]
111584    fn fold_atom(
111585        &mut self,
111586        node: swc_atoms::Atom,
111587        __ast_path: &mut AstKindPath,
111588    ) -> swc_atoms::Atom {
111589        <V as FoldAstPath>::fold_atom(&mut **self, node, __ast_path)
111590    }
111591
111592    #[inline]
111593    fn fold_auto_accessor(
111594        &mut self,
111595        node: AutoAccessor,
111596        __ast_path: &mut AstKindPath,
111597    ) -> AutoAccessor {
111598        <V as FoldAstPath>::fold_auto_accessor(&mut **self, node, __ast_path)
111599    }
111600
111601    #[inline]
111602    fn fold_await_expr(&mut self, node: AwaitExpr, __ast_path: &mut AstKindPath) -> AwaitExpr {
111603        <V as FoldAstPath>::fold_await_expr(&mut **self, node, __ast_path)
111604    }
111605
111606    #[inline]
111607    fn fold_big_int(&mut self, node: BigInt, __ast_path: &mut AstKindPath) -> BigInt {
111608        <V as FoldAstPath>::fold_big_int(&mut **self, node, __ast_path)
111609    }
111610
111611    #[inline]
111612    fn fold_big_int_value(
111613        &mut self,
111614        node: BigIntValue,
111615        __ast_path: &mut AstKindPath,
111616    ) -> BigIntValue {
111617        <V as FoldAstPath>::fold_big_int_value(&mut **self, node, __ast_path)
111618    }
111619
111620    #[inline]
111621    fn fold_bin_expr(&mut self, node: BinExpr, __ast_path: &mut AstKindPath) -> BinExpr {
111622        <V as FoldAstPath>::fold_bin_expr(&mut **self, node, __ast_path)
111623    }
111624
111625    #[inline]
111626    fn fold_binary_op(&mut self, node: BinaryOp, __ast_path: &mut AstKindPath) -> BinaryOp {
111627        <V as FoldAstPath>::fold_binary_op(&mut **self, node, __ast_path)
111628    }
111629
111630    #[inline]
111631    fn fold_binding_ident(
111632        &mut self,
111633        node: BindingIdent,
111634        __ast_path: &mut AstKindPath,
111635    ) -> BindingIdent {
111636        <V as FoldAstPath>::fold_binding_ident(&mut **self, node, __ast_path)
111637    }
111638
111639    #[inline]
111640    fn fold_block_stmt(&mut self, node: BlockStmt, __ast_path: &mut AstKindPath) -> BlockStmt {
111641        <V as FoldAstPath>::fold_block_stmt(&mut **self, node, __ast_path)
111642    }
111643
111644    #[inline]
111645    fn fold_block_stmt_or_expr(
111646        &mut self,
111647        node: BlockStmtOrExpr,
111648        __ast_path: &mut AstKindPath,
111649    ) -> BlockStmtOrExpr {
111650        <V as FoldAstPath>::fold_block_stmt_or_expr(&mut **self, node, __ast_path)
111651    }
111652
111653    #[inline]
111654    fn fold_bool(&mut self, node: Bool, __ast_path: &mut AstKindPath) -> Bool {
111655        <V as FoldAstPath>::fold_bool(&mut **self, node, __ast_path)
111656    }
111657
111658    #[inline]
111659    fn fold_break_stmt(&mut self, node: BreakStmt, __ast_path: &mut AstKindPath) -> BreakStmt {
111660        <V as FoldAstPath>::fold_break_stmt(&mut **self, node, __ast_path)
111661    }
111662
111663    #[inline]
111664    fn fold_call_expr(&mut self, node: CallExpr, __ast_path: &mut AstKindPath) -> CallExpr {
111665        <V as FoldAstPath>::fold_call_expr(&mut **self, node, __ast_path)
111666    }
111667
111668    #[inline]
111669    fn fold_callee(&mut self, node: Callee, __ast_path: &mut AstKindPath) -> Callee {
111670        <V as FoldAstPath>::fold_callee(&mut **self, node, __ast_path)
111671    }
111672
111673    #[inline]
111674    fn fold_catch_clause(
111675        &mut self,
111676        node: CatchClause,
111677        __ast_path: &mut AstKindPath,
111678    ) -> CatchClause {
111679        <V as FoldAstPath>::fold_catch_clause(&mut **self, node, __ast_path)
111680    }
111681
111682    #[inline]
111683    fn fold_class(&mut self, node: Class, __ast_path: &mut AstKindPath) -> Class {
111684        <V as FoldAstPath>::fold_class(&mut **self, node, __ast_path)
111685    }
111686
111687    #[inline]
111688    fn fold_class_decl(&mut self, node: ClassDecl, __ast_path: &mut AstKindPath) -> ClassDecl {
111689        <V as FoldAstPath>::fold_class_decl(&mut **self, node, __ast_path)
111690    }
111691
111692    #[inline]
111693    fn fold_class_expr(&mut self, node: ClassExpr, __ast_path: &mut AstKindPath) -> ClassExpr {
111694        <V as FoldAstPath>::fold_class_expr(&mut **self, node, __ast_path)
111695    }
111696
111697    #[inline]
111698    fn fold_class_member(
111699        &mut self,
111700        node: ClassMember,
111701        __ast_path: &mut AstKindPath,
111702    ) -> ClassMember {
111703        <V as FoldAstPath>::fold_class_member(&mut **self, node, __ast_path)
111704    }
111705
111706    #[inline]
111707    fn fold_class_members(
111708        &mut self,
111709        node: Vec<ClassMember>,
111710        __ast_path: &mut AstKindPath,
111711    ) -> Vec<ClassMember> {
111712        <V as FoldAstPath>::fold_class_members(&mut **self, node, __ast_path)
111713    }
111714
111715    #[inline]
111716    fn fold_class_method(
111717        &mut self,
111718        node: ClassMethod,
111719        __ast_path: &mut AstKindPath,
111720    ) -> ClassMethod {
111721        <V as FoldAstPath>::fold_class_method(&mut **self, node, __ast_path)
111722    }
111723
111724    #[inline]
111725    fn fold_class_prop(&mut self, node: ClassProp, __ast_path: &mut AstKindPath) -> ClassProp {
111726        <V as FoldAstPath>::fold_class_prop(&mut **self, node, __ast_path)
111727    }
111728
111729    #[inline]
111730    fn fold_computed_prop_name(
111731        &mut self,
111732        node: ComputedPropName,
111733        __ast_path: &mut AstKindPath,
111734    ) -> ComputedPropName {
111735        <V as FoldAstPath>::fold_computed_prop_name(&mut **self, node, __ast_path)
111736    }
111737
111738    #[inline]
111739    fn fold_cond_expr(&mut self, node: CondExpr, __ast_path: &mut AstKindPath) -> CondExpr {
111740        <V as FoldAstPath>::fold_cond_expr(&mut **self, node, __ast_path)
111741    }
111742
111743    #[inline]
111744    fn fold_constructor(&mut self, node: Constructor, __ast_path: &mut AstKindPath) -> Constructor {
111745        <V as FoldAstPath>::fold_constructor(&mut **self, node, __ast_path)
111746    }
111747
111748    #[inline]
111749    fn fold_continue_stmt(
111750        &mut self,
111751        node: ContinueStmt,
111752        __ast_path: &mut AstKindPath,
111753    ) -> ContinueStmt {
111754        <V as FoldAstPath>::fold_continue_stmt(&mut **self, node, __ast_path)
111755    }
111756
111757    #[inline]
111758    fn fold_debugger_stmt(
111759        &mut self,
111760        node: DebuggerStmt,
111761        __ast_path: &mut AstKindPath,
111762    ) -> DebuggerStmt {
111763        <V as FoldAstPath>::fold_debugger_stmt(&mut **self, node, __ast_path)
111764    }
111765
111766    #[inline]
111767    fn fold_decl(&mut self, node: Decl, __ast_path: &mut AstKindPath) -> Decl {
111768        <V as FoldAstPath>::fold_decl(&mut **self, node, __ast_path)
111769    }
111770
111771    #[inline]
111772    fn fold_decorator(&mut self, node: Decorator, __ast_path: &mut AstKindPath) -> Decorator {
111773        <V as FoldAstPath>::fold_decorator(&mut **self, node, __ast_path)
111774    }
111775
111776    #[inline]
111777    fn fold_decorators(
111778        &mut self,
111779        node: Vec<Decorator>,
111780        __ast_path: &mut AstKindPath,
111781    ) -> Vec<Decorator> {
111782        <V as FoldAstPath>::fold_decorators(&mut **self, node, __ast_path)
111783    }
111784
111785    #[inline]
111786    fn fold_default_decl(
111787        &mut self,
111788        node: DefaultDecl,
111789        __ast_path: &mut AstKindPath,
111790    ) -> DefaultDecl {
111791        <V as FoldAstPath>::fold_default_decl(&mut **self, node, __ast_path)
111792    }
111793
111794    #[inline]
111795    fn fold_do_while_stmt(
111796        &mut self,
111797        node: DoWhileStmt,
111798        __ast_path: &mut AstKindPath,
111799    ) -> DoWhileStmt {
111800        <V as FoldAstPath>::fold_do_while_stmt(&mut **self, node, __ast_path)
111801    }
111802
111803    #[inline]
111804    fn fold_empty_stmt(&mut self, node: EmptyStmt, __ast_path: &mut AstKindPath) -> EmptyStmt {
111805        <V as FoldAstPath>::fold_empty_stmt(&mut **self, node, __ast_path)
111806    }
111807
111808    #[inline]
111809    fn fold_export_all(&mut self, node: ExportAll, __ast_path: &mut AstKindPath) -> ExportAll {
111810        <V as FoldAstPath>::fold_export_all(&mut **self, node, __ast_path)
111811    }
111812
111813    #[inline]
111814    fn fold_export_decl(&mut self, node: ExportDecl, __ast_path: &mut AstKindPath) -> ExportDecl {
111815        <V as FoldAstPath>::fold_export_decl(&mut **self, node, __ast_path)
111816    }
111817
111818    #[inline]
111819    fn fold_export_default_decl(
111820        &mut self,
111821        node: ExportDefaultDecl,
111822        __ast_path: &mut AstKindPath,
111823    ) -> ExportDefaultDecl {
111824        <V as FoldAstPath>::fold_export_default_decl(&mut **self, node, __ast_path)
111825    }
111826
111827    #[inline]
111828    fn fold_export_default_expr(
111829        &mut self,
111830        node: ExportDefaultExpr,
111831        __ast_path: &mut AstKindPath,
111832    ) -> ExportDefaultExpr {
111833        <V as FoldAstPath>::fold_export_default_expr(&mut **self, node, __ast_path)
111834    }
111835
111836    #[inline]
111837    fn fold_export_default_specifier(
111838        &mut self,
111839        node: ExportDefaultSpecifier,
111840        __ast_path: &mut AstKindPath,
111841    ) -> ExportDefaultSpecifier {
111842        <V as FoldAstPath>::fold_export_default_specifier(&mut **self, node, __ast_path)
111843    }
111844
111845    #[inline]
111846    fn fold_export_named_specifier(
111847        &mut self,
111848        node: ExportNamedSpecifier,
111849        __ast_path: &mut AstKindPath,
111850    ) -> ExportNamedSpecifier {
111851        <V as FoldAstPath>::fold_export_named_specifier(&mut **self, node, __ast_path)
111852    }
111853
111854    #[inline]
111855    fn fold_export_namespace_specifier(
111856        &mut self,
111857        node: ExportNamespaceSpecifier,
111858        __ast_path: &mut AstKindPath,
111859    ) -> ExportNamespaceSpecifier {
111860        <V as FoldAstPath>::fold_export_namespace_specifier(&mut **self, node, __ast_path)
111861    }
111862
111863    #[inline]
111864    fn fold_export_specifier(
111865        &mut self,
111866        node: ExportSpecifier,
111867        __ast_path: &mut AstKindPath,
111868    ) -> ExportSpecifier {
111869        <V as FoldAstPath>::fold_export_specifier(&mut **self, node, __ast_path)
111870    }
111871
111872    #[inline]
111873    fn fold_export_specifiers(
111874        &mut self,
111875        node: Vec<ExportSpecifier>,
111876        __ast_path: &mut AstKindPath,
111877    ) -> Vec<ExportSpecifier> {
111878        <V as FoldAstPath>::fold_export_specifiers(&mut **self, node, __ast_path)
111879    }
111880
111881    #[inline]
111882    fn fold_expr(&mut self, node: Expr, __ast_path: &mut AstKindPath) -> Expr {
111883        <V as FoldAstPath>::fold_expr(&mut **self, node, __ast_path)
111884    }
111885
111886    #[inline]
111887    fn fold_expr_or_spread(
111888        &mut self,
111889        node: ExprOrSpread,
111890        __ast_path: &mut AstKindPath,
111891    ) -> ExprOrSpread {
111892        <V as FoldAstPath>::fold_expr_or_spread(&mut **self, node, __ast_path)
111893    }
111894
111895    #[inline]
111896    fn fold_expr_or_spreads(
111897        &mut self,
111898        node: Vec<ExprOrSpread>,
111899        __ast_path: &mut AstKindPath,
111900    ) -> Vec<ExprOrSpread> {
111901        <V as FoldAstPath>::fold_expr_or_spreads(&mut **self, node, __ast_path)
111902    }
111903
111904    #[inline]
111905    fn fold_expr_stmt(&mut self, node: ExprStmt, __ast_path: &mut AstKindPath) -> ExprStmt {
111906        <V as FoldAstPath>::fold_expr_stmt(&mut **self, node, __ast_path)
111907    }
111908
111909    #[inline]
111910    fn fold_exprs(&mut self, node: Vec<Box<Expr>>, __ast_path: &mut AstKindPath) -> Vec<Box<Expr>> {
111911        <V as FoldAstPath>::fold_exprs(&mut **self, node, __ast_path)
111912    }
111913
111914    #[inline]
111915    fn fold_fn_decl(&mut self, node: FnDecl, __ast_path: &mut AstKindPath) -> FnDecl {
111916        <V as FoldAstPath>::fold_fn_decl(&mut **self, node, __ast_path)
111917    }
111918
111919    #[inline]
111920    fn fold_fn_expr(&mut self, node: FnExpr, __ast_path: &mut AstKindPath) -> FnExpr {
111921        <V as FoldAstPath>::fold_fn_expr(&mut **self, node, __ast_path)
111922    }
111923
111924    #[inline]
111925    fn fold_for_head(&mut self, node: ForHead, __ast_path: &mut AstKindPath) -> ForHead {
111926        <V as FoldAstPath>::fold_for_head(&mut **self, node, __ast_path)
111927    }
111928
111929    #[inline]
111930    fn fold_for_in_stmt(&mut self, node: ForInStmt, __ast_path: &mut AstKindPath) -> ForInStmt {
111931        <V as FoldAstPath>::fold_for_in_stmt(&mut **self, node, __ast_path)
111932    }
111933
111934    #[inline]
111935    fn fold_for_of_stmt(&mut self, node: ForOfStmt, __ast_path: &mut AstKindPath) -> ForOfStmt {
111936        <V as FoldAstPath>::fold_for_of_stmt(&mut **self, node, __ast_path)
111937    }
111938
111939    #[inline]
111940    fn fold_for_stmt(&mut self, node: ForStmt, __ast_path: &mut AstKindPath) -> ForStmt {
111941        <V as FoldAstPath>::fold_for_stmt(&mut **self, node, __ast_path)
111942    }
111943
111944    #[inline]
111945    fn fold_function(&mut self, node: Function, __ast_path: &mut AstKindPath) -> Function {
111946        <V as FoldAstPath>::fold_function(&mut **self, node, __ast_path)
111947    }
111948
111949    #[inline]
111950    fn fold_getter_prop(&mut self, node: GetterProp, __ast_path: &mut AstKindPath) -> GetterProp {
111951        <V as FoldAstPath>::fold_getter_prop(&mut **self, node, __ast_path)
111952    }
111953
111954    #[inline]
111955    fn fold_ident(&mut self, node: Ident, __ast_path: &mut AstKindPath) -> Ident {
111956        <V as FoldAstPath>::fold_ident(&mut **self, node, __ast_path)
111957    }
111958
111959    #[inline]
111960    fn fold_ident_name(&mut self, node: IdentName, __ast_path: &mut AstKindPath) -> IdentName {
111961        <V as FoldAstPath>::fold_ident_name(&mut **self, node, __ast_path)
111962    }
111963
111964    #[inline]
111965    fn fold_if_stmt(&mut self, node: IfStmt, __ast_path: &mut AstKindPath) -> IfStmt {
111966        <V as FoldAstPath>::fold_if_stmt(&mut **self, node, __ast_path)
111967    }
111968
111969    #[inline]
111970    fn fold_import(&mut self, node: Import, __ast_path: &mut AstKindPath) -> Import {
111971        <V as FoldAstPath>::fold_import(&mut **self, node, __ast_path)
111972    }
111973
111974    #[inline]
111975    fn fold_import_decl(&mut self, node: ImportDecl, __ast_path: &mut AstKindPath) -> ImportDecl {
111976        <V as FoldAstPath>::fold_import_decl(&mut **self, node, __ast_path)
111977    }
111978
111979    #[inline]
111980    fn fold_import_default_specifier(
111981        &mut self,
111982        node: ImportDefaultSpecifier,
111983        __ast_path: &mut AstKindPath,
111984    ) -> ImportDefaultSpecifier {
111985        <V as FoldAstPath>::fold_import_default_specifier(&mut **self, node, __ast_path)
111986    }
111987
111988    #[inline]
111989    fn fold_import_named_specifier(
111990        &mut self,
111991        node: ImportNamedSpecifier,
111992        __ast_path: &mut AstKindPath,
111993    ) -> ImportNamedSpecifier {
111994        <V as FoldAstPath>::fold_import_named_specifier(&mut **self, node, __ast_path)
111995    }
111996
111997    #[inline]
111998    fn fold_import_phase(
111999        &mut self,
112000        node: ImportPhase,
112001        __ast_path: &mut AstKindPath,
112002    ) -> ImportPhase {
112003        <V as FoldAstPath>::fold_import_phase(&mut **self, node, __ast_path)
112004    }
112005
112006    #[inline]
112007    fn fold_import_specifier(
112008        &mut self,
112009        node: ImportSpecifier,
112010        __ast_path: &mut AstKindPath,
112011    ) -> ImportSpecifier {
112012        <V as FoldAstPath>::fold_import_specifier(&mut **self, node, __ast_path)
112013    }
112014
112015    #[inline]
112016    fn fold_import_specifiers(
112017        &mut self,
112018        node: Vec<ImportSpecifier>,
112019        __ast_path: &mut AstKindPath,
112020    ) -> Vec<ImportSpecifier> {
112021        <V as FoldAstPath>::fold_import_specifiers(&mut **self, node, __ast_path)
112022    }
112023
112024    #[inline]
112025    fn fold_import_star_as_specifier(
112026        &mut self,
112027        node: ImportStarAsSpecifier,
112028        __ast_path: &mut AstKindPath,
112029    ) -> ImportStarAsSpecifier {
112030        <V as FoldAstPath>::fold_import_star_as_specifier(&mut **self, node, __ast_path)
112031    }
112032
112033    #[inline]
112034    fn fold_import_with(&mut self, node: ImportWith, __ast_path: &mut AstKindPath) -> ImportWith {
112035        <V as FoldAstPath>::fold_import_with(&mut **self, node, __ast_path)
112036    }
112037
112038    #[inline]
112039    fn fold_import_with_item(
112040        &mut self,
112041        node: ImportWithItem,
112042        __ast_path: &mut AstKindPath,
112043    ) -> ImportWithItem {
112044        <V as FoldAstPath>::fold_import_with_item(&mut **self, node, __ast_path)
112045    }
112046
112047    #[inline]
112048    fn fold_import_with_items(
112049        &mut self,
112050        node: Vec<ImportWithItem>,
112051        __ast_path: &mut AstKindPath,
112052    ) -> Vec<ImportWithItem> {
112053        <V as FoldAstPath>::fold_import_with_items(&mut **self, node, __ast_path)
112054    }
112055
112056    #[inline]
112057    fn fold_invalid(&mut self, node: Invalid, __ast_path: &mut AstKindPath) -> Invalid {
112058        <V as FoldAstPath>::fold_invalid(&mut **self, node, __ast_path)
112059    }
112060
112061    #[inline]
112062    fn fold_jsx_attr(&mut self, node: JSXAttr, __ast_path: &mut AstKindPath) -> JSXAttr {
112063        <V as FoldAstPath>::fold_jsx_attr(&mut **self, node, __ast_path)
112064    }
112065
112066    #[inline]
112067    fn fold_jsx_attr_name(
112068        &mut self,
112069        node: JSXAttrName,
112070        __ast_path: &mut AstKindPath,
112071    ) -> JSXAttrName {
112072        <V as FoldAstPath>::fold_jsx_attr_name(&mut **self, node, __ast_path)
112073    }
112074
112075    #[inline]
112076    fn fold_jsx_attr_or_spread(
112077        &mut self,
112078        node: JSXAttrOrSpread,
112079        __ast_path: &mut AstKindPath,
112080    ) -> JSXAttrOrSpread {
112081        <V as FoldAstPath>::fold_jsx_attr_or_spread(&mut **self, node, __ast_path)
112082    }
112083
112084    #[inline]
112085    fn fold_jsx_attr_or_spreads(
112086        &mut self,
112087        node: Vec<JSXAttrOrSpread>,
112088        __ast_path: &mut AstKindPath,
112089    ) -> Vec<JSXAttrOrSpread> {
112090        <V as FoldAstPath>::fold_jsx_attr_or_spreads(&mut **self, node, __ast_path)
112091    }
112092
112093    #[inline]
112094    fn fold_jsx_attr_value(
112095        &mut self,
112096        node: JSXAttrValue,
112097        __ast_path: &mut AstKindPath,
112098    ) -> JSXAttrValue {
112099        <V as FoldAstPath>::fold_jsx_attr_value(&mut **self, node, __ast_path)
112100    }
112101
112102    #[inline]
112103    fn fold_jsx_closing_element(
112104        &mut self,
112105        node: JSXClosingElement,
112106        __ast_path: &mut AstKindPath,
112107    ) -> JSXClosingElement {
112108        <V as FoldAstPath>::fold_jsx_closing_element(&mut **self, node, __ast_path)
112109    }
112110
112111    #[inline]
112112    fn fold_jsx_closing_fragment(
112113        &mut self,
112114        node: JSXClosingFragment,
112115        __ast_path: &mut AstKindPath,
112116    ) -> JSXClosingFragment {
112117        <V as FoldAstPath>::fold_jsx_closing_fragment(&mut **self, node, __ast_path)
112118    }
112119
112120    #[inline]
112121    fn fold_jsx_element(&mut self, node: JSXElement, __ast_path: &mut AstKindPath) -> JSXElement {
112122        <V as FoldAstPath>::fold_jsx_element(&mut **self, node, __ast_path)
112123    }
112124
112125    #[inline]
112126    fn fold_jsx_element_child(
112127        &mut self,
112128        node: JSXElementChild,
112129        __ast_path: &mut AstKindPath,
112130    ) -> JSXElementChild {
112131        <V as FoldAstPath>::fold_jsx_element_child(&mut **self, node, __ast_path)
112132    }
112133
112134    #[inline]
112135    fn fold_jsx_element_childs(
112136        &mut self,
112137        node: Vec<JSXElementChild>,
112138        __ast_path: &mut AstKindPath,
112139    ) -> Vec<JSXElementChild> {
112140        <V as FoldAstPath>::fold_jsx_element_childs(&mut **self, node, __ast_path)
112141    }
112142
112143    #[inline]
112144    fn fold_jsx_element_name(
112145        &mut self,
112146        node: JSXElementName,
112147        __ast_path: &mut AstKindPath,
112148    ) -> JSXElementName {
112149        <V as FoldAstPath>::fold_jsx_element_name(&mut **self, node, __ast_path)
112150    }
112151
112152    #[inline]
112153    fn fold_jsx_empty_expr(
112154        &mut self,
112155        node: JSXEmptyExpr,
112156        __ast_path: &mut AstKindPath,
112157    ) -> JSXEmptyExpr {
112158        <V as FoldAstPath>::fold_jsx_empty_expr(&mut **self, node, __ast_path)
112159    }
112160
112161    #[inline]
112162    fn fold_jsx_expr(&mut self, node: JSXExpr, __ast_path: &mut AstKindPath) -> JSXExpr {
112163        <V as FoldAstPath>::fold_jsx_expr(&mut **self, node, __ast_path)
112164    }
112165
112166    #[inline]
112167    fn fold_jsx_expr_container(
112168        &mut self,
112169        node: JSXExprContainer,
112170        __ast_path: &mut AstKindPath,
112171    ) -> JSXExprContainer {
112172        <V as FoldAstPath>::fold_jsx_expr_container(&mut **self, node, __ast_path)
112173    }
112174
112175    #[inline]
112176    fn fold_jsx_fragment(
112177        &mut self,
112178        node: JSXFragment,
112179        __ast_path: &mut AstKindPath,
112180    ) -> JSXFragment {
112181        <V as FoldAstPath>::fold_jsx_fragment(&mut **self, node, __ast_path)
112182    }
112183
112184    #[inline]
112185    fn fold_jsx_member_expr(
112186        &mut self,
112187        node: JSXMemberExpr,
112188        __ast_path: &mut AstKindPath,
112189    ) -> JSXMemberExpr {
112190        <V as FoldAstPath>::fold_jsx_member_expr(&mut **self, node, __ast_path)
112191    }
112192
112193    #[inline]
112194    fn fold_jsx_namespaced_name(
112195        &mut self,
112196        node: JSXNamespacedName,
112197        __ast_path: &mut AstKindPath,
112198    ) -> JSXNamespacedName {
112199        <V as FoldAstPath>::fold_jsx_namespaced_name(&mut **self, node, __ast_path)
112200    }
112201
112202    #[inline]
112203    fn fold_jsx_object(&mut self, node: JSXObject, __ast_path: &mut AstKindPath) -> JSXObject {
112204        <V as FoldAstPath>::fold_jsx_object(&mut **self, node, __ast_path)
112205    }
112206
112207    #[inline]
112208    fn fold_jsx_opening_element(
112209        &mut self,
112210        node: JSXOpeningElement,
112211        __ast_path: &mut AstKindPath,
112212    ) -> JSXOpeningElement {
112213        <V as FoldAstPath>::fold_jsx_opening_element(&mut **self, node, __ast_path)
112214    }
112215
112216    #[inline]
112217    fn fold_jsx_opening_fragment(
112218        &mut self,
112219        node: JSXOpeningFragment,
112220        __ast_path: &mut AstKindPath,
112221    ) -> JSXOpeningFragment {
112222        <V as FoldAstPath>::fold_jsx_opening_fragment(&mut **self, node, __ast_path)
112223    }
112224
112225    #[inline]
112226    fn fold_jsx_spread_child(
112227        &mut self,
112228        node: JSXSpreadChild,
112229        __ast_path: &mut AstKindPath,
112230    ) -> JSXSpreadChild {
112231        <V as FoldAstPath>::fold_jsx_spread_child(&mut **self, node, __ast_path)
112232    }
112233
112234    #[inline]
112235    fn fold_jsx_text(&mut self, node: JSXText, __ast_path: &mut AstKindPath) -> JSXText {
112236        <V as FoldAstPath>::fold_jsx_text(&mut **self, node, __ast_path)
112237    }
112238
112239    #[inline]
112240    fn fold_key(&mut self, node: Key, __ast_path: &mut AstKindPath) -> Key {
112241        <V as FoldAstPath>::fold_key(&mut **self, node, __ast_path)
112242    }
112243
112244    #[inline]
112245    fn fold_key_value_pat_prop(
112246        &mut self,
112247        node: KeyValuePatProp,
112248        __ast_path: &mut AstKindPath,
112249    ) -> KeyValuePatProp {
112250        <V as FoldAstPath>::fold_key_value_pat_prop(&mut **self, node, __ast_path)
112251    }
112252
112253    #[inline]
112254    fn fold_key_value_prop(
112255        &mut self,
112256        node: KeyValueProp,
112257        __ast_path: &mut AstKindPath,
112258    ) -> KeyValueProp {
112259        <V as FoldAstPath>::fold_key_value_prop(&mut **self, node, __ast_path)
112260    }
112261
112262    #[inline]
112263    fn fold_labeled_stmt(
112264        &mut self,
112265        node: LabeledStmt,
112266        __ast_path: &mut AstKindPath,
112267    ) -> LabeledStmt {
112268        <V as FoldAstPath>::fold_labeled_stmt(&mut **self, node, __ast_path)
112269    }
112270
112271    #[inline]
112272    fn fold_lit(&mut self, node: Lit, __ast_path: &mut AstKindPath) -> Lit {
112273        <V as FoldAstPath>::fold_lit(&mut **self, node, __ast_path)
112274    }
112275
112276    #[inline]
112277    fn fold_member_expr(&mut self, node: MemberExpr, __ast_path: &mut AstKindPath) -> MemberExpr {
112278        <V as FoldAstPath>::fold_member_expr(&mut **self, node, __ast_path)
112279    }
112280
112281    #[inline]
112282    fn fold_member_prop(&mut self, node: MemberProp, __ast_path: &mut AstKindPath) -> MemberProp {
112283        <V as FoldAstPath>::fold_member_prop(&mut **self, node, __ast_path)
112284    }
112285
112286    #[inline]
112287    fn fold_meta_prop_expr(
112288        &mut self,
112289        node: MetaPropExpr,
112290        __ast_path: &mut AstKindPath,
112291    ) -> MetaPropExpr {
112292        <V as FoldAstPath>::fold_meta_prop_expr(&mut **self, node, __ast_path)
112293    }
112294
112295    #[inline]
112296    fn fold_meta_prop_kind(
112297        &mut self,
112298        node: MetaPropKind,
112299        __ast_path: &mut AstKindPath,
112300    ) -> MetaPropKind {
112301        <V as FoldAstPath>::fold_meta_prop_kind(&mut **self, node, __ast_path)
112302    }
112303
112304    #[inline]
112305    fn fold_method_kind(&mut self, node: MethodKind, __ast_path: &mut AstKindPath) -> MethodKind {
112306        <V as FoldAstPath>::fold_method_kind(&mut **self, node, __ast_path)
112307    }
112308
112309    #[inline]
112310    fn fold_method_prop(&mut self, node: MethodProp, __ast_path: &mut AstKindPath) -> MethodProp {
112311        <V as FoldAstPath>::fold_method_prop(&mut **self, node, __ast_path)
112312    }
112313
112314    #[inline]
112315    fn fold_module(&mut self, node: Module, __ast_path: &mut AstKindPath) -> Module {
112316        <V as FoldAstPath>::fold_module(&mut **self, node, __ast_path)
112317    }
112318
112319    #[inline]
112320    fn fold_module_decl(&mut self, node: ModuleDecl, __ast_path: &mut AstKindPath) -> ModuleDecl {
112321        <V as FoldAstPath>::fold_module_decl(&mut **self, node, __ast_path)
112322    }
112323
112324    #[inline]
112325    fn fold_module_export_name(
112326        &mut self,
112327        node: ModuleExportName,
112328        __ast_path: &mut AstKindPath,
112329    ) -> ModuleExportName {
112330        <V as FoldAstPath>::fold_module_export_name(&mut **self, node, __ast_path)
112331    }
112332
112333    #[inline]
112334    fn fold_module_item(&mut self, node: ModuleItem, __ast_path: &mut AstKindPath) -> ModuleItem {
112335        <V as FoldAstPath>::fold_module_item(&mut **self, node, __ast_path)
112336    }
112337
112338    #[inline]
112339    fn fold_module_items(
112340        &mut self,
112341        node: Vec<ModuleItem>,
112342        __ast_path: &mut AstKindPath,
112343    ) -> Vec<ModuleItem> {
112344        <V as FoldAstPath>::fold_module_items(&mut **self, node, __ast_path)
112345    }
112346
112347    #[inline]
112348    fn fold_named_export(
112349        &mut self,
112350        node: NamedExport,
112351        __ast_path: &mut AstKindPath,
112352    ) -> NamedExport {
112353        <V as FoldAstPath>::fold_named_export(&mut **self, node, __ast_path)
112354    }
112355
112356    #[inline]
112357    fn fold_new_expr(&mut self, node: NewExpr, __ast_path: &mut AstKindPath) -> NewExpr {
112358        <V as FoldAstPath>::fold_new_expr(&mut **self, node, __ast_path)
112359    }
112360
112361    #[inline]
112362    fn fold_null(&mut self, node: Null, __ast_path: &mut AstKindPath) -> Null {
112363        <V as FoldAstPath>::fold_null(&mut **self, node, __ast_path)
112364    }
112365
112366    #[inline]
112367    fn fold_number(&mut self, node: Number, __ast_path: &mut AstKindPath) -> Number {
112368        <V as FoldAstPath>::fold_number(&mut **self, node, __ast_path)
112369    }
112370
112371    #[inline]
112372    fn fold_object_lit(&mut self, node: ObjectLit, __ast_path: &mut AstKindPath) -> ObjectLit {
112373        <V as FoldAstPath>::fold_object_lit(&mut **self, node, __ast_path)
112374    }
112375
112376    #[inline]
112377    fn fold_object_pat(&mut self, node: ObjectPat, __ast_path: &mut AstKindPath) -> ObjectPat {
112378        <V as FoldAstPath>::fold_object_pat(&mut **self, node, __ast_path)
112379    }
112380
112381    #[inline]
112382    fn fold_object_pat_prop(
112383        &mut self,
112384        node: ObjectPatProp,
112385        __ast_path: &mut AstKindPath,
112386    ) -> ObjectPatProp {
112387        <V as FoldAstPath>::fold_object_pat_prop(&mut **self, node, __ast_path)
112388    }
112389
112390    #[inline]
112391    fn fold_object_pat_props(
112392        &mut self,
112393        node: Vec<ObjectPatProp>,
112394        __ast_path: &mut AstKindPath,
112395    ) -> Vec<ObjectPatProp> {
112396        <V as FoldAstPath>::fold_object_pat_props(&mut **self, node, __ast_path)
112397    }
112398
112399    #[inline]
112400    fn fold_opt_accessibility(
112401        &mut self,
112402        node: Option<Accessibility>,
112403        __ast_path: &mut AstKindPath,
112404    ) -> Option<Accessibility> {
112405        <V as FoldAstPath>::fold_opt_accessibility(&mut **self, node, __ast_path)
112406    }
112407
112408    #[inline]
112409    fn fold_opt_atom(
112410        &mut self,
112411        node: Option<swc_atoms::Atom>,
112412        __ast_path: &mut AstKindPath,
112413    ) -> Option<swc_atoms::Atom> {
112414        <V as FoldAstPath>::fold_opt_atom(&mut **self, node, __ast_path)
112415    }
112416
112417    #[inline]
112418    fn fold_opt_block_stmt(
112419        &mut self,
112420        node: Option<BlockStmt>,
112421        __ast_path: &mut AstKindPath,
112422    ) -> Option<BlockStmt> {
112423        <V as FoldAstPath>::fold_opt_block_stmt(&mut **self, node, __ast_path)
112424    }
112425
112426    #[inline]
112427    fn fold_opt_call(&mut self, node: OptCall, __ast_path: &mut AstKindPath) -> OptCall {
112428        <V as FoldAstPath>::fold_opt_call(&mut **self, node, __ast_path)
112429    }
112430
112431    #[inline]
112432    fn fold_opt_catch_clause(
112433        &mut self,
112434        node: Option<CatchClause>,
112435        __ast_path: &mut AstKindPath,
112436    ) -> Option<CatchClause> {
112437        <V as FoldAstPath>::fold_opt_catch_clause(&mut **self, node, __ast_path)
112438    }
112439
112440    #[inline]
112441    fn fold_opt_chain_base(
112442        &mut self,
112443        node: OptChainBase,
112444        __ast_path: &mut AstKindPath,
112445    ) -> OptChainBase {
112446        <V as FoldAstPath>::fold_opt_chain_base(&mut **self, node, __ast_path)
112447    }
112448
112449    #[inline]
112450    fn fold_opt_chain_expr(
112451        &mut self,
112452        node: OptChainExpr,
112453        __ast_path: &mut AstKindPath,
112454    ) -> OptChainExpr {
112455        <V as FoldAstPath>::fold_opt_chain_expr(&mut **self, node, __ast_path)
112456    }
112457
112458    #[inline]
112459    fn fold_opt_expr(
112460        &mut self,
112461        node: Option<Box<Expr>>,
112462        __ast_path: &mut AstKindPath,
112463    ) -> Option<Box<Expr>> {
112464        <V as FoldAstPath>::fold_opt_expr(&mut **self, node, __ast_path)
112465    }
112466
112467    #[inline]
112468    fn fold_opt_expr_or_spread(
112469        &mut self,
112470        node: Option<ExprOrSpread>,
112471        __ast_path: &mut AstKindPath,
112472    ) -> Option<ExprOrSpread> {
112473        <V as FoldAstPath>::fold_opt_expr_or_spread(&mut **self, node, __ast_path)
112474    }
112475
112476    #[inline]
112477    fn fold_opt_expr_or_spreads(
112478        &mut self,
112479        node: Option<Vec<ExprOrSpread>>,
112480        __ast_path: &mut AstKindPath,
112481    ) -> Option<Vec<ExprOrSpread>> {
112482        <V as FoldAstPath>::fold_opt_expr_or_spreads(&mut **self, node, __ast_path)
112483    }
112484
112485    #[inline]
112486    fn fold_opt_ident(
112487        &mut self,
112488        node: Option<Ident>,
112489        __ast_path: &mut AstKindPath,
112490    ) -> Option<Ident> {
112491        <V as FoldAstPath>::fold_opt_ident(&mut **self, node, __ast_path)
112492    }
112493
112494    #[inline]
112495    fn fold_opt_jsx_attr_value(
112496        &mut self,
112497        node: Option<JSXAttrValue>,
112498        __ast_path: &mut AstKindPath,
112499    ) -> Option<JSXAttrValue> {
112500        <V as FoldAstPath>::fold_opt_jsx_attr_value(&mut **self, node, __ast_path)
112501    }
112502
112503    #[inline]
112504    fn fold_opt_jsx_closing_element(
112505        &mut self,
112506        node: Option<JSXClosingElement>,
112507        __ast_path: &mut AstKindPath,
112508    ) -> Option<JSXClosingElement> {
112509        <V as FoldAstPath>::fold_opt_jsx_closing_element(&mut **self, node, __ast_path)
112510    }
112511
112512    #[inline]
112513    fn fold_opt_module_export_name(
112514        &mut self,
112515        node: Option<ModuleExportName>,
112516        __ast_path: &mut AstKindPath,
112517    ) -> Option<ModuleExportName> {
112518        <V as FoldAstPath>::fold_opt_module_export_name(&mut **self, node, __ast_path)
112519    }
112520
112521    #[inline]
112522    fn fold_opt_object_lit(
112523        &mut self,
112524        node: Option<Box<ObjectLit>>,
112525        __ast_path: &mut AstKindPath,
112526    ) -> Option<Box<ObjectLit>> {
112527        <V as FoldAstPath>::fold_opt_object_lit(&mut **self, node, __ast_path)
112528    }
112529
112530    #[inline]
112531    fn fold_opt_pat(&mut self, node: Option<Pat>, __ast_path: &mut AstKindPath) -> Option<Pat> {
112532        <V as FoldAstPath>::fold_opt_pat(&mut **self, node, __ast_path)
112533    }
112534
112535    #[inline]
112536    fn fold_opt_span(
112537        &mut self,
112538        node: Option<swc_common::Span>,
112539        __ast_path: &mut AstKindPath,
112540    ) -> Option<swc_common::Span> {
112541        <V as FoldAstPath>::fold_opt_span(&mut **self, node, __ast_path)
112542    }
112543
112544    #[inline]
112545    fn fold_opt_stmt(
112546        &mut self,
112547        node: Option<Box<Stmt>>,
112548        __ast_path: &mut AstKindPath,
112549    ) -> Option<Box<Stmt>> {
112550        <V as FoldAstPath>::fold_opt_stmt(&mut **self, node, __ast_path)
112551    }
112552
112553    #[inline]
112554    fn fold_opt_str(
112555        &mut self,
112556        node: Option<Box<Str>>,
112557        __ast_path: &mut AstKindPath,
112558    ) -> Option<Box<Str>> {
112559        <V as FoldAstPath>::fold_opt_str(&mut **self, node, __ast_path)
112560    }
112561
112562    #[inline]
112563    fn fold_opt_true_plus_minus(
112564        &mut self,
112565        node: Option<TruePlusMinus>,
112566        __ast_path: &mut AstKindPath,
112567    ) -> Option<TruePlusMinus> {
112568        <V as FoldAstPath>::fold_opt_true_plus_minus(&mut **self, node, __ast_path)
112569    }
112570
112571    #[inline]
112572    fn fold_opt_ts_entity_name(
112573        &mut self,
112574        node: Option<TsEntityName>,
112575        __ast_path: &mut AstKindPath,
112576    ) -> Option<TsEntityName> {
112577        <V as FoldAstPath>::fold_opt_ts_entity_name(&mut **self, node, __ast_path)
112578    }
112579
112580    #[inline]
112581    fn fold_opt_ts_import_call_options(
112582        &mut self,
112583        node: Option<TsImportCallOptions>,
112584        __ast_path: &mut AstKindPath,
112585    ) -> Option<TsImportCallOptions> {
112586        <V as FoldAstPath>::fold_opt_ts_import_call_options(&mut **self, node, __ast_path)
112587    }
112588
112589    #[inline]
112590    fn fold_opt_ts_namespace_body(
112591        &mut self,
112592        node: Option<TsNamespaceBody>,
112593        __ast_path: &mut AstKindPath,
112594    ) -> Option<TsNamespaceBody> {
112595        <V as FoldAstPath>::fold_opt_ts_namespace_body(&mut **self, node, __ast_path)
112596    }
112597
112598    #[inline]
112599    fn fold_opt_ts_type(
112600        &mut self,
112601        node: Option<Box<TsType>>,
112602        __ast_path: &mut AstKindPath,
112603    ) -> Option<Box<TsType>> {
112604        <V as FoldAstPath>::fold_opt_ts_type(&mut **self, node, __ast_path)
112605    }
112606
112607    #[inline]
112608    fn fold_opt_ts_type_ann(
112609        &mut self,
112610        node: Option<Box<TsTypeAnn>>,
112611        __ast_path: &mut AstKindPath,
112612    ) -> Option<Box<TsTypeAnn>> {
112613        <V as FoldAstPath>::fold_opt_ts_type_ann(&mut **self, node, __ast_path)
112614    }
112615
112616    #[inline]
112617    fn fold_opt_ts_type_param_decl(
112618        &mut self,
112619        node: Option<Box<TsTypeParamDecl>>,
112620        __ast_path: &mut AstKindPath,
112621    ) -> Option<Box<TsTypeParamDecl>> {
112622        <V as FoldAstPath>::fold_opt_ts_type_param_decl(&mut **self, node, __ast_path)
112623    }
112624
112625    #[inline]
112626    fn fold_opt_ts_type_param_instantiation(
112627        &mut self,
112628        node: Option<Box<TsTypeParamInstantiation>>,
112629        __ast_path: &mut AstKindPath,
112630    ) -> Option<Box<TsTypeParamInstantiation>> {
112631        <V as FoldAstPath>::fold_opt_ts_type_param_instantiation(&mut **self, node, __ast_path)
112632    }
112633
112634    #[inline]
112635    fn fold_opt_var_decl_or_expr(
112636        &mut self,
112637        node: Option<VarDeclOrExpr>,
112638        __ast_path: &mut AstKindPath,
112639    ) -> Option<VarDeclOrExpr> {
112640        <V as FoldAstPath>::fold_opt_var_decl_or_expr(&mut **self, node, __ast_path)
112641    }
112642
112643    #[inline]
112644    fn fold_opt_vec_expr_or_spreads(
112645        &mut self,
112646        node: Vec<Option<ExprOrSpread>>,
112647        __ast_path: &mut AstKindPath,
112648    ) -> Vec<Option<ExprOrSpread>> {
112649        <V as FoldAstPath>::fold_opt_vec_expr_or_spreads(&mut **self, node, __ast_path)
112650    }
112651
112652    #[inline]
112653    fn fold_opt_vec_pats(
112654        &mut self,
112655        node: Vec<Option<Pat>>,
112656        __ast_path: &mut AstKindPath,
112657    ) -> Vec<Option<Pat>> {
112658        <V as FoldAstPath>::fold_opt_vec_pats(&mut **self, node, __ast_path)
112659    }
112660
112661    #[inline]
112662    fn fold_param(&mut self, node: Param, __ast_path: &mut AstKindPath) -> Param {
112663        <V as FoldAstPath>::fold_param(&mut **self, node, __ast_path)
112664    }
112665
112666    #[inline]
112667    fn fold_param_or_ts_param_prop(
112668        &mut self,
112669        node: ParamOrTsParamProp,
112670        __ast_path: &mut AstKindPath,
112671    ) -> ParamOrTsParamProp {
112672        <V as FoldAstPath>::fold_param_or_ts_param_prop(&mut **self, node, __ast_path)
112673    }
112674
112675    #[inline]
112676    fn fold_param_or_ts_param_props(
112677        &mut self,
112678        node: Vec<ParamOrTsParamProp>,
112679        __ast_path: &mut AstKindPath,
112680    ) -> Vec<ParamOrTsParamProp> {
112681        <V as FoldAstPath>::fold_param_or_ts_param_props(&mut **self, node, __ast_path)
112682    }
112683
112684    #[inline]
112685    fn fold_params(&mut self, node: Vec<Param>, __ast_path: &mut AstKindPath) -> Vec<Param> {
112686        <V as FoldAstPath>::fold_params(&mut **self, node, __ast_path)
112687    }
112688
112689    #[inline]
112690    fn fold_paren_expr(&mut self, node: ParenExpr, __ast_path: &mut AstKindPath) -> ParenExpr {
112691        <V as FoldAstPath>::fold_paren_expr(&mut **self, node, __ast_path)
112692    }
112693
112694    #[inline]
112695    fn fold_pat(&mut self, node: Pat, __ast_path: &mut AstKindPath) -> Pat {
112696        <V as FoldAstPath>::fold_pat(&mut **self, node, __ast_path)
112697    }
112698
112699    #[inline]
112700    fn fold_pats(&mut self, node: Vec<Pat>, __ast_path: &mut AstKindPath) -> Vec<Pat> {
112701        <V as FoldAstPath>::fold_pats(&mut **self, node, __ast_path)
112702    }
112703
112704    #[inline]
112705    fn fold_private_method(
112706        &mut self,
112707        node: PrivateMethod,
112708        __ast_path: &mut AstKindPath,
112709    ) -> PrivateMethod {
112710        <V as FoldAstPath>::fold_private_method(&mut **self, node, __ast_path)
112711    }
112712
112713    #[inline]
112714    fn fold_private_name(
112715        &mut self,
112716        node: PrivateName,
112717        __ast_path: &mut AstKindPath,
112718    ) -> PrivateName {
112719        <V as FoldAstPath>::fold_private_name(&mut **self, node, __ast_path)
112720    }
112721
112722    #[inline]
112723    fn fold_private_prop(
112724        &mut self,
112725        node: PrivateProp,
112726        __ast_path: &mut AstKindPath,
112727    ) -> PrivateProp {
112728        <V as FoldAstPath>::fold_private_prop(&mut **self, node, __ast_path)
112729    }
112730
112731    #[inline]
112732    fn fold_program(&mut self, node: Program, __ast_path: &mut AstKindPath) -> Program {
112733        <V as FoldAstPath>::fold_program(&mut **self, node, __ast_path)
112734    }
112735
112736    #[inline]
112737    fn fold_prop(&mut self, node: Prop, __ast_path: &mut AstKindPath) -> Prop {
112738        <V as FoldAstPath>::fold_prop(&mut **self, node, __ast_path)
112739    }
112740
112741    #[inline]
112742    fn fold_prop_name(&mut self, node: PropName, __ast_path: &mut AstKindPath) -> PropName {
112743        <V as FoldAstPath>::fold_prop_name(&mut **self, node, __ast_path)
112744    }
112745
112746    #[inline]
112747    fn fold_prop_or_spread(
112748        &mut self,
112749        node: PropOrSpread,
112750        __ast_path: &mut AstKindPath,
112751    ) -> PropOrSpread {
112752        <V as FoldAstPath>::fold_prop_or_spread(&mut **self, node, __ast_path)
112753    }
112754
112755    #[inline]
112756    fn fold_prop_or_spreads(
112757        &mut self,
112758        node: Vec<PropOrSpread>,
112759        __ast_path: &mut AstKindPath,
112760    ) -> Vec<PropOrSpread> {
112761        <V as FoldAstPath>::fold_prop_or_spreads(&mut **self, node, __ast_path)
112762    }
112763
112764    #[inline]
112765    fn fold_regex(&mut self, node: Regex, __ast_path: &mut AstKindPath) -> Regex {
112766        <V as FoldAstPath>::fold_regex(&mut **self, node, __ast_path)
112767    }
112768
112769    #[inline]
112770    fn fold_rest_pat(&mut self, node: RestPat, __ast_path: &mut AstKindPath) -> RestPat {
112771        <V as FoldAstPath>::fold_rest_pat(&mut **self, node, __ast_path)
112772    }
112773
112774    #[inline]
112775    fn fold_return_stmt(&mut self, node: ReturnStmt, __ast_path: &mut AstKindPath) -> ReturnStmt {
112776        <V as FoldAstPath>::fold_return_stmt(&mut **self, node, __ast_path)
112777    }
112778
112779    #[inline]
112780    fn fold_script(&mut self, node: Script, __ast_path: &mut AstKindPath) -> Script {
112781        <V as FoldAstPath>::fold_script(&mut **self, node, __ast_path)
112782    }
112783
112784    #[inline]
112785    fn fold_seq_expr(&mut self, node: SeqExpr, __ast_path: &mut AstKindPath) -> SeqExpr {
112786        <V as FoldAstPath>::fold_seq_expr(&mut **self, node, __ast_path)
112787    }
112788
112789    #[inline]
112790    fn fold_setter_prop(&mut self, node: SetterProp, __ast_path: &mut AstKindPath) -> SetterProp {
112791        <V as FoldAstPath>::fold_setter_prop(&mut **self, node, __ast_path)
112792    }
112793
112794    #[inline]
112795    fn fold_simple_assign_target(
112796        &mut self,
112797        node: SimpleAssignTarget,
112798        __ast_path: &mut AstKindPath,
112799    ) -> SimpleAssignTarget {
112800        <V as FoldAstPath>::fold_simple_assign_target(&mut **self, node, __ast_path)
112801    }
112802
112803    #[inline]
112804    fn fold_span(
112805        &mut self,
112806        node: swc_common::Span,
112807        __ast_path: &mut AstKindPath,
112808    ) -> swc_common::Span {
112809        <V as FoldAstPath>::fold_span(&mut **self, node, __ast_path)
112810    }
112811
112812    #[inline]
112813    fn fold_spread_element(
112814        &mut self,
112815        node: SpreadElement,
112816        __ast_path: &mut AstKindPath,
112817    ) -> SpreadElement {
112818        <V as FoldAstPath>::fold_spread_element(&mut **self, node, __ast_path)
112819    }
112820
112821    #[inline]
112822    fn fold_static_block(
112823        &mut self,
112824        node: StaticBlock,
112825        __ast_path: &mut AstKindPath,
112826    ) -> StaticBlock {
112827        <V as FoldAstPath>::fold_static_block(&mut **self, node, __ast_path)
112828    }
112829
112830    #[inline]
112831    fn fold_stmt(&mut self, node: Stmt, __ast_path: &mut AstKindPath) -> Stmt {
112832        <V as FoldAstPath>::fold_stmt(&mut **self, node, __ast_path)
112833    }
112834
112835    #[inline]
112836    fn fold_stmts(&mut self, node: Vec<Stmt>, __ast_path: &mut AstKindPath) -> Vec<Stmt> {
112837        <V as FoldAstPath>::fold_stmts(&mut **self, node, __ast_path)
112838    }
112839
112840    #[inline]
112841    fn fold_str(&mut self, node: Str, __ast_path: &mut AstKindPath) -> Str {
112842        <V as FoldAstPath>::fold_str(&mut **self, node, __ast_path)
112843    }
112844
112845    #[inline]
112846    fn fold_super(&mut self, node: Super, __ast_path: &mut AstKindPath) -> Super {
112847        <V as FoldAstPath>::fold_super(&mut **self, node, __ast_path)
112848    }
112849
112850    #[inline]
112851    fn fold_super_prop(&mut self, node: SuperProp, __ast_path: &mut AstKindPath) -> SuperProp {
112852        <V as FoldAstPath>::fold_super_prop(&mut **self, node, __ast_path)
112853    }
112854
112855    #[inline]
112856    fn fold_super_prop_expr(
112857        &mut self,
112858        node: SuperPropExpr,
112859        __ast_path: &mut AstKindPath,
112860    ) -> SuperPropExpr {
112861        <V as FoldAstPath>::fold_super_prop_expr(&mut **self, node, __ast_path)
112862    }
112863
112864    #[inline]
112865    fn fold_switch_case(&mut self, node: SwitchCase, __ast_path: &mut AstKindPath) -> SwitchCase {
112866        <V as FoldAstPath>::fold_switch_case(&mut **self, node, __ast_path)
112867    }
112868
112869    #[inline]
112870    fn fold_switch_cases(
112871        &mut self,
112872        node: Vec<SwitchCase>,
112873        __ast_path: &mut AstKindPath,
112874    ) -> Vec<SwitchCase> {
112875        <V as FoldAstPath>::fold_switch_cases(&mut **self, node, __ast_path)
112876    }
112877
112878    #[inline]
112879    fn fold_switch_stmt(&mut self, node: SwitchStmt, __ast_path: &mut AstKindPath) -> SwitchStmt {
112880        <V as FoldAstPath>::fold_switch_stmt(&mut **self, node, __ast_path)
112881    }
112882
112883    #[inline]
112884    fn fold_syntax_context(
112885        &mut self,
112886        node: swc_common::SyntaxContext,
112887        __ast_path: &mut AstKindPath,
112888    ) -> swc_common::SyntaxContext {
112889        <V as FoldAstPath>::fold_syntax_context(&mut **self, node, __ast_path)
112890    }
112891
112892    #[inline]
112893    fn fold_tagged_tpl(&mut self, node: TaggedTpl, __ast_path: &mut AstKindPath) -> TaggedTpl {
112894        <V as FoldAstPath>::fold_tagged_tpl(&mut **self, node, __ast_path)
112895    }
112896
112897    #[inline]
112898    fn fold_this_expr(&mut self, node: ThisExpr, __ast_path: &mut AstKindPath) -> ThisExpr {
112899        <V as FoldAstPath>::fold_this_expr(&mut **self, node, __ast_path)
112900    }
112901
112902    #[inline]
112903    fn fold_throw_stmt(&mut self, node: ThrowStmt, __ast_path: &mut AstKindPath) -> ThrowStmt {
112904        <V as FoldAstPath>::fold_throw_stmt(&mut **self, node, __ast_path)
112905    }
112906
112907    #[inline]
112908    fn fold_tpl(&mut self, node: Tpl, __ast_path: &mut AstKindPath) -> Tpl {
112909        <V as FoldAstPath>::fold_tpl(&mut **self, node, __ast_path)
112910    }
112911
112912    #[inline]
112913    fn fold_tpl_element(&mut self, node: TplElement, __ast_path: &mut AstKindPath) -> TplElement {
112914        <V as FoldAstPath>::fold_tpl_element(&mut **self, node, __ast_path)
112915    }
112916
112917    #[inline]
112918    fn fold_tpl_elements(
112919        &mut self,
112920        node: Vec<TplElement>,
112921        __ast_path: &mut AstKindPath,
112922    ) -> Vec<TplElement> {
112923        <V as FoldAstPath>::fold_tpl_elements(&mut **self, node, __ast_path)
112924    }
112925
112926    #[inline]
112927    fn fold_true_plus_minus(
112928        &mut self,
112929        node: TruePlusMinus,
112930        __ast_path: &mut AstKindPath,
112931    ) -> TruePlusMinus {
112932        <V as FoldAstPath>::fold_true_plus_minus(&mut **self, node, __ast_path)
112933    }
112934
112935    #[inline]
112936    fn fold_try_stmt(&mut self, node: TryStmt, __ast_path: &mut AstKindPath) -> TryStmt {
112937        <V as FoldAstPath>::fold_try_stmt(&mut **self, node, __ast_path)
112938    }
112939
112940    #[inline]
112941    fn fold_ts_array_type(
112942        &mut self,
112943        node: TsArrayType,
112944        __ast_path: &mut AstKindPath,
112945    ) -> TsArrayType {
112946        <V as FoldAstPath>::fold_ts_array_type(&mut **self, node, __ast_path)
112947    }
112948
112949    #[inline]
112950    fn fold_ts_as_expr(&mut self, node: TsAsExpr, __ast_path: &mut AstKindPath) -> TsAsExpr {
112951        <V as FoldAstPath>::fold_ts_as_expr(&mut **self, node, __ast_path)
112952    }
112953
112954    #[inline]
112955    fn fold_ts_call_signature_decl(
112956        &mut self,
112957        node: TsCallSignatureDecl,
112958        __ast_path: &mut AstKindPath,
112959    ) -> TsCallSignatureDecl {
112960        <V as FoldAstPath>::fold_ts_call_signature_decl(&mut **self, node, __ast_path)
112961    }
112962
112963    #[inline]
112964    fn fold_ts_conditional_type(
112965        &mut self,
112966        node: TsConditionalType,
112967        __ast_path: &mut AstKindPath,
112968    ) -> TsConditionalType {
112969        <V as FoldAstPath>::fold_ts_conditional_type(&mut **self, node, __ast_path)
112970    }
112971
112972    #[inline]
112973    fn fold_ts_const_assertion(
112974        &mut self,
112975        node: TsConstAssertion,
112976        __ast_path: &mut AstKindPath,
112977    ) -> TsConstAssertion {
112978        <V as FoldAstPath>::fold_ts_const_assertion(&mut **self, node, __ast_path)
112979    }
112980
112981    #[inline]
112982    fn fold_ts_construct_signature_decl(
112983        &mut self,
112984        node: TsConstructSignatureDecl,
112985        __ast_path: &mut AstKindPath,
112986    ) -> TsConstructSignatureDecl {
112987        <V as FoldAstPath>::fold_ts_construct_signature_decl(&mut **self, node, __ast_path)
112988    }
112989
112990    #[inline]
112991    fn fold_ts_constructor_type(
112992        &mut self,
112993        node: TsConstructorType,
112994        __ast_path: &mut AstKindPath,
112995    ) -> TsConstructorType {
112996        <V as FoldAstPath>::fold_ts_constructor_type(&mut **self, node, __ast_path)
112997    }
112998
112999    #[inline]
113000    fn fold_ts_entity_name(
113001        &mut self,
113002        node: TsEntityName,
113003        __ast_path: &mut AstKindPath,
113004    ) -> TsEntityName {
113005        <V as FoldAstPath>::fold_ts_entity_name(&mut **self, node, __ast_path)
113006    }
113007
113008    #[inline]
113009    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl, __ast_path: &mut AstKindPath) -> TsEnumDecl {
113010        <V as FoldAstPath>::fold_ts_enum_decl(&mut **self, node, __ast_path)
113011    }
113012
113013    #[inline]
113014    fn fold_ts_enum_member(
113015        &mut self,
113016        node: TsEnumMember,
113017        __ast_path: &mut AstKindPath,
113018    ) -> TsEnumMember {
113019        <V as FoldAstPath>::fold_ts_enum_member(&mut **self, node, __ast_path)
113020    }
113021
113022    #[inline]
113023    fn fold_ts_enum_member_id(
113024        &mut self,
113025        node: TsEnumMemberId,
113026        __ast_path: &mut AstKindPath,
113027    ) -> TsEnumMemberId {
113028        <V as FoldAstPath>::fold_ts_enum_member_id(&mut **self, node, __ast_path)
113029    }
113030
113031    #[inline]
113032    fn fold_ts_enum_members(
113033        &mut self,
113034        node: Vec<TsEnumMember>,
113035        __ast_path: &mut AstKindPath,
113036    ) -> Vec<TsEnumMember> {
113037        <V as FoldAstPath>::fold_ts_enum_members(&mut **self, node, __ast_path)
113038    }
113039
113040    #[inline]
113041    fn fold_ts_export_assignment(
113042        &mut self,
113043        node: TsExportAssignment,
113044        __ast_path: &mut AstKindPath,
113045    ) -> TsExportAssignment {
113046        <V as FoldAstPath>::fold_ts_export_assignment(&mut **self, node, __ast_path)
113047    }
113048
113049    #[inline]
113050    fn fold_ts_expr_with_type_args(
113051        &mut self,
113052        node: TsExprWithTypeArgs,
113053        __ast_path: &mut AstKindPath,
113054    ) -> TsExprWithTypeArgs {
113055        <V as FoldAstPath>::fold_ts_expr_with_type_args(&mut **self, node, __ast_path)
113056    }
113057
113058    #[inline]
113059    fn fold_ts_expr_with_type_argss(
113060        &mut self,
113061        node: Vec<TsExprWithTypeArgs>,
113062        __ast_path: &mut AstKindPath,
113063    ) -> Vec<TsExprWithTypeArgs> {
113064        <V as FoldAstPath>::fold_ts_expr_with_type_argss(&mut **self, node, __ast_path)
113065    }
113066
113067    #[inline]
113068    fn fold_ts_external_module_ref(
113069        &mut self,
113070        node: TsExternalModuleRef,
113071        __ast_path: &mut AstKindPath,
113072    ) -> TsExternalModuleRef {
113073        <V as FoldAstPath>::fold_ts_external_module_ref(&mut **self, node, __ast_path)
113074    }
113075
113076    #[inline]
113077    fn fold_ts_fn_or_constructor_type(
113078        &mut self,
113079        node: TsFnOrConstructorType,
113080        __ast_path: &mut AstKindPath,
113081    ) -> TsFnOrConstructorType {
113082        <V as FoldAstPath>::fold_ts_fn_or_constructor_type(&mut **self, node, __ast_path)
113083    }
113084
113085    #[inline]
113086    fn fold_ts_fn_param(&mut self, node: TsFnParam, __ast_path: &mut AstKindPath) -> TsFnParam {
113087        <V as FoldAstPath>::fold_ts_fn_param(&mut **self, node, __ast_path)
113088    }
113089
113090    #[inline]
113091    fn fold_ts_fn_params(
113092        &mut self,
113093        node: Vec<TsFnParam>,
113094        __ast_path: &mut AstKindPath,
113095    ) -> Vec<TsFnParam> {
113096        <V as FoldAstPath>::fold_ts_fn_params(&mut **self, node, __ast_path)
113097    }
113098
113099    #[inline]
113100    fn fold_ts_fn_type(&mut self, node: TsFnType, __ast_path: &mut AstKindPath) -> TsFnType {
113101        <V as FoldAstPath>::fold_ts_fn_type(&mut **self, node, __ast_path)
113102    }
113103
113104    #[inline]
113105    fn fold_ts_getter_signature(
113106        &mut self,
113107        node: TsGetterSignature,
113108        __ast_path: &mut AstKindPath,
113109    ) -> TsGetterSignature {
113110        <V as FoldAstPath>::fold_ts_getter_signature(&mut **self, node, __ast_path)
113111    }
113112
113113    #[inline]
113114    fn fold_ts_import_call_options(
113115        &mut self,
113116        node: TsImportCallOptions,
113117        __ast_path: &mut AstKindPath,
113118    ) -> TsImportCallOptions {
113119        <V as FoldAstPath>::fold_ts_import_call_options(&mut **self, node, __ast_path)
113120    }
113121
113122    #[inline]
113123    fn fold_ts_import_equals_decl(
113124        &mut self,
113125        node: TsImportEqualsDecl,
113126        __ast_path: &mut AstKindPath,
113127    ) -> TsImportEqualsDecl {
113128        <V as FoldAstPath>::fold_ts_import_equals_decl(&mut **self, node, __ast_path)
113129    }
113130
113131    #[inline]
113132    fn fold_ts_import_type(
113133        &mut self,
113134        node: TsImportType,
113135        __ast_path: &mut AstKindPath,
113136    ) -> TsImportType {
113137        <V as FoldAstPath>::fold_ts_import_type(&mut **self, node, __ast_path)
113138    }
113139
113140    #[inline]
113141    fn fold_ts_index_signature(
113142        &mut self,
113143        node: TsIndexSignature,
113144        __ast_path: &mut AstKindPath,
113145    ) -> TsIndexSignature {
113146        <V as FoldAstPath>::fold_ts_index_signature(&mut **self, node, __ast_path)
113147    }
113148
113149    #[inline]
113150    fn fold_ts_indexed_access_type(
113151        &mut self,
113152        node: TsIndexedAccessType,
113153        __ast_path: &mut AstKindPath,
113154    ) -> TsIndexedAccessType {
113155        <V as FoldAstPath>::fold_ts_indexed_access_type(&mut **self, node, __ast_path)
113156    }
113157
113158    #[inline]
113159    fn fold_ts_infer_type(
113160        &mut self,
113161        node: TsInferType,
113162        __ast_path: &mut AstKindPath,
113163    ) -> TsInferType {
113164        <V as FoldAstPath>::fold_ts_infer_type(&mut **self, node, __ast_path)
113165    }
113166
113167    #[inline]
113168    fn fold_ts_instantiation(
113169        &mut self,
113170        node: TsInstantiation,
113171        __ast_path: &mut AstKindPath,
113172    ) -> TsInstantiation {
113173        <V as FoldAstPath>::fold_ts_instantiation(&mut **self, node, __ast_path)
113174    }
113175
113176    #[inline]
113177    fn fold_ts_interface_body(
113178        &mut self,
113179        node: TsInterfaceBody,
113180        __ast_path: &mut AstKindPath,
113181    ) -> TsInterfaceBody {
113182        <V as FoldAstPath>::fold_ts_interface_body(&mut **self, node, __ast_path)
113183    }
113184
113185    #[inline]
113186    fn fold_ts_interface_decl(
113187        &mut self,
113188        node: TsInterfaceDecl,
113189        __ast_path: &mut AstKindPath,
113190    ) -> TsInterfaceDecl {
113191        <V as FoldAstPath>::fold_ts_interface_decl(&mut **self, node, __ast_path)
113192    }
113193
113194    #[inline]
113195    fn fold_ts_intersection_type(
113196        &mut self,
113197        node: TsIntersectionType,
113198        __ast_path: &mut AstKindPath,
113199    ) -> TsIntersectionType {
113200        <V as FoldAstPath>::fold_ts_intersection_type(&mut **self, node, __ast_path)
113201    }
113202
113203    #[inline]
113204    fn fold_ts_keyword_type(
113205        &mut self,
113206        node: TsKeywordType,
113207        __ast_path: &mut AstKindPath,
113208    ) -> TsKeywordType {
113209        <V as FoldAstPath>::fold_ts_keyword_type(&mut **self, node, __ast_path)
113210    }
113211
113212    #[inline]
113213    fn fold_ts_keyword_type_kind(
113214        &mut self,
113215        node: TsKeywordTypeKind,
113216        __ast_path: &mut AstKindPath,
113217    ) -> TsKeywordTypeKind {
113218        <V as FoldAstPath>::fold_ts_keyword_type_kind(&mut **self, node, __ast_path)
113219    }
113220
113221    #[inline]
113222    fn fold_ts_lit(&mut self, node: TsLit, __ast_path: &mut AstKindPath) -> TsLit {
113223        <V as FoldAstPath>::fold_ts_lit(&mut **self, node, __ast_path)
113224    }
113225
113226    #[inline]
113227    fn fold_ts_lit_type(&mut self, node: TsLitType, __ast_path: &mut AstKindPath) -> TsLitType {
113228        <V as FoldAstPath>::fold_ts_lit_type(&mut **self, node, __ast_path)
113229    }
113230
113231    #[inline]
113232    fn fold_ts_mapped_type(
113233        &mut self,
113234        node: TsMappedType,
113235        __ast_path: &mut AstKindPath,
113236    ) -> TsMappedType {
113237        <V as FoldAstPath>::fold_ts_mapped_type(&mut **self, node, __ast_path)
113238    }
113239
113240    #[inline]
113241    fn fold_ts_method_signature(
113242        &mut self,
113243        node: TsMethodSignature,
113244        __ast_path: &mut AstKindPath,
113245    ) -> TsMethodSignature {
113246        <V as FoldAstPath>::fold_ts_method_signature(&mut **self, node, __ast_path)
113247    }
113248
113249    #[inline]
113250    fn fold_ts_module_block(
113251        &mut self,
113252        node: TsModuleBlock,
113253        __ast_path: &mut AstKindPath,
113254    ) -> TsModuleBlock {
113255        <V as FoldAstPath>::fold_ts_module_block(&mut **self, node, __ast_path)
113256    }
113257
113258    #[inline]
113259    fn fold_ts_module_decl(
113260        &mut self,
113261        node: TsModuleDecl,
113262        __ast_path: &mut AstKindPath,
113263    ) -> TsModuleDecl {
113264        <V as FoldAstPath>::fold_ts_module_decl(&mut **self, node, __ast_path)
113265    }
113266
113267    #[inline]
113268    fn fold_ts_module_name(
113269        &mut self,
113270        node: TsModuleName,
113271        __ast_path: &mut AstKindPath,
113272    ) -> TsModuleName {
113273        <V as FoldAstPath>::fold_ts_module_name(&mut **self, node, __ast_path)
113274    }
113275
113276    #[inline]
113277    fn fold_ts_module_ref(
113278        &mut self,
113279        node: TsModuleRef,
113280        __ast_path: &mut AstKindPath,
113281    ) -> TsModuleRef {
113282        <V as FoldAstPath>::fold_ts_module_ref(&mut **self, node, __ast_path)
113283    }
113284
113285    #[inline]
113286    fn fold_ts_namespace_body(
113287        &mut self,
113288        node: TsNamespaceBody,
113289        __ast_path: &mut AstKindPath,
113290    ) -> TsNamespaceBody {
113291        <V as FoldAstPath>::fold_ts_namespace_body(&mut **self, node, __ast_path)
113292    }
113293
113294    #[inline]
113295    fn fold_ts_namespace_decl(
113296        &mut self,
113297        node: TsNamespaceDecl,
113298        __ast_path: &mut AstKindPath,
113299    ) -> TsNamespaceDecl {
113300        <V as FoldAstPath>::fold_ts_namespace_decl(&mut **self, node, __ast_path)
113301    }
113302
113303    #[inline]
113304    fn fold_ts_namespace_export_decl(
113305        &mut self,
113306        node: TsNamespaceExportDecl,
113307        __ast_path: &mut AstKindPath,
113308    ) -> TsNamespaceExportDecl {
113309        <V as FoldAstPath>::fold_ts_namespace_export_decl(&mut **self, node, __ast_path)
113310    }
113311
113312    #[inline]
113313    fn fold_ts_non_null_expr(
113314        &mut self,
113315        node: TsNonNullExpr,
113316        __ast_path: &mut AstKindPath,
113317    ) -> TsNonNullExpr {
113318        <V as FoldAstPath>::fold_ts_non_null_expr(&mut **self, node, __ast_path)
113319    }
113320
113321    #[inline]
113322    fn fold_ts_optional_type(
113323        &mut self,
113324        node: TsOptionalType,
113325        __ast_path: &mut AstKindPath,
113326    ) -> TsOptionalType {
113327        <V as FoldAstPath>::fold_ts_optional_type(&mut **self, node, __ast_path)
113328    }
113329
113330    #[inline]
113331    fn fold_ts_param_prop(
113332        &mut self,
113333        node: TsParamProp,
113334        __ast_path: &mut AstKindPath,
113335    ) -> TsParamProp {
113336        <V as FoldAstPath>::fold_ts_param_prop(&mut **self, node, __ast_path)
113337    }
113338
113339    #[inline]
113340    fn fold_ts_param_prop_param(
113341        &mut self,
113342        node: TsParamPropParam,
113343        __ast_path: &mut AstKindPath,
113344    ) -> TsParamPropParam {
113345        <V as FoldAstPath>::fold_ts_param_prop_param(&mut **self, node, __ast_path)
113346    }
113347
113348    #[inline]
113349    fn fold_ts_parenthesized_type(
113350        &mut self,
113351        node: TsParenthesizedType,
113352        __ast_path: &mut AstKindPath,
113353    ) -> TsParenthesizedType {
113354        <V as FoldAstPath>::fold_ts_parenthesized_type(&mut **self, node, __ast_path)
113355    }
113356
113357    #[inline]
113358    fn fold_ts_property_signature(
113359        &mut self,
113360        node: TsPropertySignature,
113361        __ast_path: &mut AstKindPath,
113362    ) -> TsPropertySignature {
113363        <V as FoldAstPath>::fold_ts_property_signature(&mut **self, node, __ast_path)
113364    }
113365
113366    #[inline]
113367    fn fold_ts_qualified_name(
113368        &mut self,
113369        node: TsQualifiedName,
113370        __ast_path: &mut AstKindPath,
113371    ) -> TsQualifiedName {
113372        <V as FoldAstPath>::fold_ts_qualified_name(&mut **self, node, __ast_path)
113373    }
113374
113375    #[inline]
113376    fn fold_ts_rest_type(&mut self, node: TsRestType, __ast_path: &mut AstKindPath) -> TsRestType {
113377        <V as FoldAstPath>::fold_ts_rest_type(&mut **self, node, __ast_path)
113378    }
113379
113380    #[inline]
113381    fn fold_ts_satisfies_expr(
113382        &mut self,
113383        node: TsSatisfiesExpr,
113384        __ast_path: &mut AstKindPath,
113385    ) -> TsSatisfiesExpr {
113386        <V as FoldAstPath>::fold_ts_satisfies_expr(&mut **self, node, __ast_path)
113387    }
113388
113389    #[inline]
113390    fn fold_ts_setter_signature(
113391        &mut self,
113392        node: TsSetterSignature,
113393        __ast_path: &mut AstKindPath,
113394    ) -> TsSetterSignature {
113395        <V as FoldAstPath>::fold_ts_setter_signature(&mut **self, node, __ast_path)
113396    }
113397
113398    #[inline]
113399    fn fold_ts_this_type(&mut self, node: TsThisType, __ast_path: &mut AstKindPath) -> TsThisType {
113400        <V as FoldAstPath>::fold_ts_this_type(&mut **self, node, __ast_path)
113401    }
113402
113403    #[inline]
113404    fn fold_ts_this_type_or_ident(
113405        &mut self,
113406        node: TsThisTypeOrIdent,
113407        __ast_path: &mut AstKindPath,
113408    ) -> TsThisTypeOrIdent {
113409        <V as FoldAstPath>::fold_ts_this_type_or_ident(&mut **self, node, __ast_path)
113410    }
113411
113412    #[inline]
113413    fn fold_ts_tpl_lit_type(
113414        &mut self,
113415        node: TsTplLitType,
113416        __ast_path: &mut AstKindPath,
113417    ) -> TsTplLitType {
113418        <V as FoldAstPath>::fold_ts_tpl_lit_type(&mut **self, node, __ast_path)
113419    }
113420
113421    #[inline]
113422    fn fold_ts_tuple_element(
113423        &mut self,
113424        node: TsTupleElement,
113425        __ast_path: &mut AstKindPath,
113426    ) -> TsTupleElement {
113427        <V as FoldAstPath>::fold_ts_tuple_element(&mut **self, node, __ast_path)
113428    }
113429
113430    #[inline]
113431    fn fold_ts_tuple_elements(
113432        &mut self,
113433        node: Vec<TsTupleElement>,
113434        __ast_path: &mut AstKindPath,
113435    ) -> Vec<TsTupleElement> {
113436        <V as FoldAstPath>::fold_ts_tuple_elements(&mut **self, node, __ast_path)
113437    }
113438
113439    #[inline]
113440    fn fold_ts_tuple_type(
113441        &mut self,
113442        node: TsTupleType,
113443        __ast_path: &mut AstKindPath,
113444    ) -> TsTupleType {
113445        <V as FoldAstPath>::fold_ts_tuple_type(&mut **self, node, __ast_path)
113446    }
113447
113448    #[inline]
113449    fn fold_ts_type(&mut self, node: TsType, __ast_path: &mut AstKindPath) -> TsType {
113450        <V as FoldAstPath>::fold_ts_type(&mut **self, node, __ast_path)
113451    }
113452
113453    #[inline]
113454    fn fold_ts_type_alias_decl(
113455        &mut self,
113456        node: TsTypeAliasDecl,
113457        __ast_path: &mut AstKindPath,
113458    ) -> TsTypeAliasDecl {
113459        <V as FoldAstPath>::fold_ts_type_alias_decl(&mut **self, node, __ast_path)
113460    }
113461
113462    #[inline]
113463    fn fold_ts_type_ann(&mut self, node: TsTypeAnn, __ast_path: &mut AstKindPath) -> TsTypeAnn {
113464        <V as FoldAstPath>::fold_ts_type_ann(&mut **self, node, __ast_path)
113465    }
113466
113467    #[inline]
113468    fn fold_ts_type_assertion(
113469        &mut self,
113470        node: TsTypeAssertion,
113471        __ast_path: &mut AstKindPath,
113472    ) -> TsTypeAssertion {
113473        <V as FoldAstPath>::fold_ts_type_assertion(&mut **self, node, __ast_path)
113474    }
113475
113476    #[inline]
113477    fn fold_ts_type_element(
113478        &mut self,
113479        node: TsTypeElement,
113480        __ast_path: &mut AstKindPath,
113481    ) -> TsTypeElement {
113482        <V as FoldAstPath>::fold_ts_type_element(&mut **self, node, __ast_path)
113483    }
113484
113485    #[inline]
113486    fn fold_ts_type_elements(
113487        &mut self,
113488        node: Vec<TsTypeElement>,
113489        __ast_path: &mut AstKindPath,
113490    ) -> Vec<TsTypeElement> {
113491        <V as FoldAstPath>::fold_ts_type_elements(&mut **self, node, __ast_path)
113492    }
113493
113494    #[inline]
113495    fn fold_ts_type_lit(&mut self, node: TsTypeLit, __ast_path: &mut AstKindPath) -> TsTypeLit {
113496        <V as FoldAstPath>::fold_ts_type_lit(&mut **self, node, __ast_path)
113497    }
113498
113499    #[inline]
113500    fn fold_ts_type_operator(
113501        &mut self,
113502        node: TsTypeOperator,
113503        __ast_path: &mut AstKindPath,
113504    ) -> TsTypeOperator {
113505        <V as FoldAstPath>::fold_ts_type_operator(&mut **self, node, __ast_path)
113506    }
113507
113508    #[inline]
113509    fn fold_ts_type_operator_op(
113510        &mut self,
113511        node: TsTypeOperatorOp,
113512        __ast_path: &mut AstKindPath,
113513    ) -> TsTypeOperatorOp {
113514        <V as FoldAstPath>::fold_ts_type_operator_op(&mut **self, node, __ast_path)
113515    }
113516
113517    #[inline]
113518    fn fold_ts_type_param(
113519        &mut self,
113520        node: TsTypeParam,
113521        __ast_path: &mut AstKindPath,
113522    ) -> TsTypeParam {
113523        <V as FoldAstPath>::fold_ts_type_param(&mut **self, node, __ast_path)
113524    }
113525
113526    #[inline]
113527    fn fold_ts_type_param_decl(
113528        &mut self,
113529        node: TsTypeParamDecl,
113530        __ast_path: &mut AstKindPath,
113531    ) -> TsTypeParamDecl {
113532        <V as FoldAstPath>::fold_ts_type_param_decl(&mut **self, node, __ast_path)
113533    }
113534
113535    #[inline]
113536    fn fold_ts_type_param_instantiation(
113537        &mut self,
113538        node: TsTypeParamInstantiation,
113539        __ast_path: &mut AstKindPath,
113540    ) -> TsTypeParamInstantiation {
113541        <V as FoldAstPath>::fold_ts_type_param_instantiation(&mut **self, node, __ast_path)
113542    }
113543
113544    #[inline]
113545    fn fold_ts_type_params(
113546        &mut self,
113547        node: Vec<TsTypeParam>,
113548        __ast_path: &mut AstKindPath,
113549    ) -> Vec<TsTypeParam> {
113550        <V as FoldAstPath>::fold_ts_type_params(&mut **self, node, __ast_path)
113551    }
113552
113553    #[inline]
113554    fn fold_ts_type_predicate(
113555        &mut self,
113556        node: TsTypePredicate,
113557        __ast_path: &mut AstKindPath,
113558    ) -> TsTypePredicate {
113559        <V as FoldAstPath>::fold_ts_type_predicate(&mut **self, node, __ast_path)
113560    }
113561
113562    #[inline]
113563    fn fold_ts_type_query(
113564        &mut self,
113565        node: TsTypeQuery,
113566        __ast_path: &mut AstKindPath,
113567    ) -> TsTypeQuery {
113568        <V as FoldAstPath>::fold_ts_type_query(&mut **self, node, __ast_path)
113569    }
113570
113571    #[inline]
113572    fn fold_ts_type_query_expr(
113573        &mut self,
113574        node: TsTypeQueryExpr,
113575        __ast_path: &mut AstKindPath,
113576    ) -> TsTypeQueryExpr {
113577        <V as FoldAstPath>::fold_ts_type_query_expr(&mut **self, node, __ast_path)
113578    }
113579
113580    #[inline]
113581    fn fold_ts_type_ref(&mut self, node: TsTypeRef, __ast_path: &mut AstKindPath) -> TsTypeRef {
113582        <V as FoldAstPath>::fold_ts_type_ref(&mut **self, node, __ast_path)
113583    }
113584
113585    #[inline]
113586    fn fold_ts_types(
113587        &mut self,
113588        node: Vec<Box<TsType>>,
113589        __ast_path: &mut AstKindPath,
113590    ) -> Vec<Box<TsType>> {
113591        <V as FoldAstPath>::fold_ts_types(&mut **self, node, __ast_path)
113592    }
113593
113594    #[inline]
113595    fn fold_ts_union_or_intersection_type(
113596        &mut self,
113597        node: TsUnionOrIntersectionType,
113598        __ast_path: &mut AstKindPath,
113599    ) -> TsUnionOrIntersectionType {
113600        <V as FoldAstPath>::fold_ts_union_or_intersection_type(&mut **self, node, __ast_path)
113601    }
113602
113603    #[inline]
113604    fn fold_ts_union_type(
113605        &mut self,
113606        node: TsUnionType,
113607        __ast_path: &mut AstKindPath,
113608    ) -> TsUnionType {
113609        <V as FoldAstPath>::fold_ts_union_type(&mut **self, node, __ast_path)
113610    }
113611
113612    #[inline]
113613    fn fold_unary_expr(&mut self, node: UnaryExpr, __ast_path: &mut AstKindPath) -> UnaryExpr {
113614        <V as FoldAstPath>::fold_unary_expr(&mut **self, node, __ast_path)
113615    }
113616
113617    #[inline]
113618    fn fold_unary_op(&mut self, node: UnaryOp, __ast_path: &mut AstKindPath) -> UnaryOp {
113619        <V as FoldAstPath>::fold_unary_op(&mut **self, node, __ast_path)
113620    }
113621
113622    #[inline]
113623    fn fold_update_expr(&mut self, node: UpdateExpr, __ast_path: &mut AstKindPath) -> UpdateExpr {
113624        <V as FoldAstPath>::fold_update_expr(&mut **self, node, __ast_path)
113625    }
113626
113627    #[inline]
113628    fn fold_update_op(&mut self, node: UpdateOp, __ast_path: &mut AstKindPath) -> UpdateOp {
113629        <V as FoldAstPath>::fold_update_op(&mut **self, node, __ast_path)
113630    }
113631
113632    #[inline]
113633    fn fold_using_decl(&mut self, node: UsingDecl, __ast_path: &mut AstKindPath) -> UsingDecl {
113634        <V as FoldAstPath>::fold_using_decl(&mut **self, node, __ast_path)
113635    }
113636
113637    #[inline]
113638    fn fold_var_decl(&mut self, node: VarDecl, __ast_path: &mut AstKindPath) -> VarDecl {
113639        <V as FoldAstPath>::fold_var_decl(&mut **self, node, __ast_path)
113640    }
113641
113642    #[inline]
113643    fn fold_var_decl_kind(
113644        &mut self,
113645        node: VarDeclKind,
113646        __ast_path: &mut AstKindPath,
113647    ) -> VarDeclKind {
113648        <V as FoldAstPath>::fold_var_decl_kind(&mut **self, node, __ast_path)
113649    }
113650
113651    #[inline]
113652    fn fold_var_decl_or_expr(
113653        &mut self,
113654        node: VarDeclOrExpr,
113655        __ast_path: &mut AstKindPath,
113656    ) -> VarDeclOrExpr {
113657        <V as FoldAstPath>::fold_var_decl_or_expr(&mut **self, node, __ast_path)
113658    }
113659
113660    #[inline]
113661    fn fold_var_declarator(
113662        &mut self,
113663        node: VarDeclarator,
113664        __ast_path: &mut AstKindPath,
113665    ) -> VarDeclarator {
113666        <V as FoldAstPath>::fold_var_declarator(&mut **self, node, __ast_path)
113667    }
113668
113669    #[inline]
113670    fn fold_var_declarators(
113671        &mut self,
113672        node: Vec<VarDeclarator>,
113673        __ast_path: &mut AstKindPath,
113674    ) -> Vec<VarDeclarator> {
113675        <V as FoldAstPath>::fold_var_declarators(&mut **self, node, __ast_path)
113676    }
113677
113678    #[inline]
113679    fn fold_while_stmt(&mut self, node: WhileStmt, __ast_path: &mut AstKindPath) -> WhileStmt {
113680        <V as FoldAstPath>::fold_while_stmt(&mut **self, node, __ast_path)
113681    }
113682
113683    #[inline]
113684    fn fold_with_stmt(&mut self, node: WithStmt, __ast_path: &mut AstKindPath) -> WithStmt {
113685        <V as FoldAstPath>::fold_with_stmt(&mut **self, node, __ast_path)
113686    }
113687
113688    #[inline]
113689    fn fold_yield_expr(&mut self, node: YieldExpr, __ast_path: &mut AstKindPath) -> YieldExpr {
113690        <V as FoldAstPath>::fold_yield_expr(&mut **self, node, __ast_path)
113691    }
113692}
113693#[cfg(any(docsrs, feature = "path"))]
113694#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
113695impl<V> FoldAstPath for Box<V>
113696where
113697    V: ?Sized + FoldAstPath,
113698{
113699    #[inline]
113700    fn fold_accessibility(
113701        &mut self,
113702        node: Accessibility,
113703        __ast_path: &mut AstKindPath,
113704    ) -> Accessibility {
113705        <V as FoldAstPath>::fold_accessibility(&mut **self, node, __ast_path)
113706    }
113707
113708    #[inline]
113709    fn fold_array_lit(&mut self, node: ArrayLit, __ast_path: &mut AstKindPath) -> ArrayLit {
113710        <V as FoldAstPath>::fold_array_lit(&mut **self, node, __ast_path)
113711    }
113712
113713    #[inline]
113714    fn fold_array_pat(&mut self, node: ArrayPat, __ast_path: &mut AstKindPath) -> ArrayPat {
113715        <V as FoldAstPath>::fold_array_pat(&mut **self, node, __ast_path)
113716    }
113717
113718    #[inline]
113719    fn fold_arrow_expr(&mut self, node: ArrowExpr, __ast_path: &mut AstKindPath) -> ArrowExpr {
113720        <V as FoldAstPath>::fold_arrow_expr(&mut **self, node, __ast_path)
113721    }
113722
113723    #[inline]
113724    fn fold_assign_expr(&mut self, node: AssignExpr, __ast_path: &mut AstKindPath) -> AssignExpr {
113725        <V as FoldAstPath>::fold_assign_expr(&mut **self, node, __ast_path)
113726    }
113727
113728    #[inline]
113729    fn fold_assign_op(&mut self, node: AssignOp, __ast_path: &mut AstKindPath) -> AssignOp {
113730        <V as FoldAstPath>::fold_assign_op(&mut **self, node, __ast_path)
113731    }
113732
113733    #[inline]
113734    fn fold_assign_pat(&mut self, node: AssignPat, __ast_path: &mut AstKindPath) -> AssignPat {
113735        <V as FoldAstPath>::fold_assign_pat(&mut **self, node, __ast_path)
113736    }
113737
113738    #[inline]
113739    fn fold_assign_pat_prop(
113740        &mut self,
113741        node: AssignPatProp,
113742        __ast_path: &mut AstKindPath,
113743    ) -> AssignPatProp {
113744        <V as FoldAstPath>::fold_assign_pat_prop(&mut **self, node, __ast_path)
113745    }
113746
113747    #[inline]
113748    fn fold_assign_prop(&mut self, node: AssignProp, __ast_path: &mut AstKindPath) -> AssignProp {
113749        <V as FoldAstPath>::fold_assign_prop(&mut **self, node, __ast_path)
113750    }
113751
113752    #[inline]
113753    fn fold_assign_target(
113754        &mut self,
113755        node: AssignTarget,
113756        __ast_path: &mut AstKindPath,
113757    ) -> AssignTarget {
113758        <V as FoldAstPath>::fold_assign_target(&mut **self, node, __ast_path)
113759    }
113760
113761    #[inline]
113762    fn fold_assign_target_pat(
113763        &mut self,
113764        node: AssignTargetPat,
113765        __ast_path: &mut AstKindPath,
113766    ) -> AssignTargetPat {
113767        <V as FoldAstPath>::fold_assign_target_pat(&mut **self, node, __ast_path)
113768    }
113769
113770    #[inline]
113771    fn fold_atom(
113772        &mut self,
113773        node: swc_atoms::Atom,
113774        __ast_path: &mut AstKindPath,
113775    ) -> swc_atoms::Atom {
113776        <V as FoldAstPath>::fold_atom(&mut **self, node, __ast_path)
113777    }
113778
113779    #[inline]
113780    fn fold_auto_accessor(
113781        &mut self,
113782        node: AutoAccessor,
113783        __ast_path: &mut AstKindPath,
113784    ) -> AutoAccessor {
113785        <V as FoldAstPath>::fold_auto_accessor(&mut **self, node, __ast_path)
113786    }
113787
113788    #[inline]
113789    fn fold_await_expr(&mut self, node: AwaitExpr, __ast_path: &mut AstKindPath) -> AwaitExpr {
113790        <V as FoldAstPath>::fold_await_expr(&mut **self, node, __ast_path)
113791    }
113792
113793    #[inline]
113794    fn fold_big_int(&mut self, node: BigInt, __ast_path: &mut AstKindPath) -> BigInt {
113795        <V as FoldAstPath>::fold_big_int(&mut **self, node, __ast_path)
113796    }
113797
113798    #[inline]
113799    fn fold_big_int_value(
113800        &mut self,
113801        node: BigIntValue,
113802        __ast_path: &mut AstKindPath,
113803    ) -> BigIntValue {
113804        <V as FoldAstPath>::fold_big_int_value(&mut **self, node, __ast_path)
113805    }
113806
113807    #[inline]
113808    fn fold_bin_expr(&mut self, node: BinExpr, __ast_path: &mut AstKindPath) -> BinExpr {
113809        <V as FoldAstPath>::fold_bin_expr(&mut **self, node, __ast_path)
113810    }
113811
113812    #[inline]
113813    fn fold_binary_op(&mut self, node: BinaryOp, __ast_path: &mut AstKindPath) -> BinaryOp {
113814        <V as FoldAstPath>::fold_binary_op(&mut **self, node, __ast_path)
113815    }
113816
113817    #[inline]
113818    fn fold_binding_ident(
113819        &mut self,
113820        node: BindingIdent,
113821        __ast_path: &mut AstKindPath,
113822    ) -> BindingIdent {
113823        <V as FoldAstPath>::fold_binding_ident(&mut **self, node, __ast_path)
113824    }
113825
113826    #[inline]
113827    fn fold_block_stmt(&mut self, node: BlockStmt, __ast_path: &mut AstKindPath) -> BlockStmt {
113828        <V as FoldAstPath>::fold_block_stmt(&mut **self, node, __ast_path)
113829    }
113830
113831    #[inline]
113832    fn fold_block_stmt_or_expr(
113833        &mut self,
113834        node: BlockStmtOrExpr,
113835        __ast_path: &mut AstKindPath,
113836    ) -> BlockStmtOrExpr {
113837        <V as FoldAstPath>::fold_block_stmt_or_expr(&mut **self, node, __ast_path)
113838    }
113839
113840    #[inline]
113841    fn fold_bool(&mut self, node: Bool, __ast_path: &mut AstKindPath) -> Bool {
113842        <V as FoldAstPath>::fold_bool(&mut **self, node, __ast_path)
113843    }
113844
113845    #[inline]
113846    fn fold_break_stmt(&mut self, node: BreakStmt, __ast_path: &mut AstKindPath) -> BreakStmt {
113847        <V as FoldAstPath>::fold_break_stmt(&mut **self, node, __ast_path)
113848    }
113849
113850    #[inline]
113851    fn fold_call_expr(&mut self, node: CallExpr, __ast_path: &mut AstKindPath) -> CallExpr {
113852        <V as FoldAstPath>::fold_call_expr(&mut **self, node, __ast_path)
113853    }
113854
113855    #[inline]
113856    fn fold_callee(&mut self, node: Callee, __ast_path: &mut AstKindPath) -> Callee {
113857        <V as FoldAstPath>::fold_callee(&mut **self, node, __ast_path)
113858    }
113859
113860    #[inline]
113861    fn fold_catch_clause(
113862        &mut self,
113863        node: CatchClause,
113864        __ast_path: &mut AstKindPath,
113865    ) -> CatchClause {
113866        <V as FoldAstPath>::fold_catch_clause(&mut **self, node, __ast_path)
113867    }
113868
113869    #[inline]
113870    fn fold_class(&mut self, node: Class, __ast_path: &mut AstKindPath) -> Class {
113871        <V as FoldAstPath>::fold_class(&mut **self, node, __ast_path)
113872    }
113873
113874    #[inline]
113875    fn fold_class_decl(&mut self, node: ClassDecl, __ast_path: &mut AstKindPath) -> ClassDecl {
113876        <V as FoldAstPath>::fold_class_decl(&mut **self, node, __ast_path)
113877    }
113878
113879    #[inline]
113880    fn fold_class_expr(&mut self, node: ClassExpr, __ast_path: &mut AstKindPath) -> ClassExpr {
113881        <V as FoldAstPath>::fold_class_expr(&mut **self, node, __ast_path)
113882    }
113883
113884    #[inline]
113885    fn fold_class_member(
113886        &mut self,
113887        node: ClassMember,
113888        __ast_path: &mut AstKindPath,
113889    ) -> ClassMember {
113890        <V as FoldAstPath>::fold_class_member(&mut **self, node, __ast_path)
113891    }
113892
113893    #[inline]
113894    fn fold_class_members(
113895        &mut self,
113896        node: Vec<ClassMember>,
113897        __ast_path: &mut AstKindPath,
113898    ) -> Vec<ClassMember> {
113899        <V as FoldAstPath>::fold_class_members(&mut **self, node, __ast_path)
113900    }
113901
113902    #[inline]
113903    fn fold_class_method(
113904        &mut self,
113905        node: ClassMethod,
113906        __ast_path: &mut AstKindPath,
113907    ) -> ClassMethod {
113908        <V as FoldAstPath>::fold_class_method(&mut **self, node, __ast_path)
113909    }
113910
113911    #[inline]
113912    fn fold_class_prop(&mut self, node: ClassProp, __ast_path: &mut AstKindPath) -> ClassProp {
113913        <V as FoldAstPath>::fold_class_prop(&mut **self, node, __ast_path)
113914    }
113915
113916    #[inline]
113917    fn fold_computed_prop_name(
113918        &mut self,
113919        node: ComputedPropName,
113920        __ast_path: &mut AstKindPath,
113921    ) -> ComputedPropName {
113922        <V as FoldAstPath>::fold_computed_prop_name(&mut **self, node, __ast_path)
113923    }
113924
113925    #[inline]
113926    fn fold_cond_expr(&mut self, node: CondExpr, __ast_path: &mut AstKindPath) -> CondExpr {
113927        <V as FoldAstPath>::fold_cond_expr(&mut **self, node, __ast_path)
113928    }
113929
113930    #[inline]
113931    fn fold_constructor(&mut self, node: Constructor, __ast_path: &mut AstKindPath) -> Constructor {
113932        <V as FoldAstPath>::fold_constructor(&mut **self, node, __ast_path)
113933    }
113934
113935    #[inline]
113936    fn fold_continue_stmt(
113937        &mut self,
113938        node: ContinueStmt,
113939        __ast_path: &mut AstKindPath,
113940    ) -> ContinueStmt {
113941        <V as FoldAstPath>::fold_continue_stmt(&mut **self, node, __ast_path)
113942    }
113943
113944    #[inline]
113945    fn fold_debugger_stmt(
113946        &mut self,
113947        node: DebuggerStmt,
113948        __ast_path: &mut AstKindPath,
113949    ) -> DebuggerStmt {
113950        <V as FoldAstPath>::fold_debugger_stmt(&mut **self, node, __ast_path)
113951    }
113952
113953    #[inline]
113954    fn fold_decl(&mut self, node: Decl, __ast_path: &mut AstKindPath) -> Decl {
113955        <V as FoldAstPath>::fold_decl(&mut **self, node, __ast_path)
113956    }
113957
113958    #[inline]
113959    fn fold_decorator(&mut self, node: Decorator, __ast_path: &mut AstKindPath) -> Decorator {
113960        <V as FoldAstPath>::fold_decorator(&mut **self, node, __ast_path)
113961    }
113962
113963    #[inline]
113964    fn fold_decorators(
113965        &mut self,
113966        node: Vec<Decorator>,
113967        __ast_path: &mut AstKindPath,
113968    ) -> Vec<Decorator> {
113969        <V as FoldAstPath>::fold_decorators(&mut **self, node, __ast_path)
113970    }
113971
113972    #[inline]
113973    fn fold_default_decl(
113974        &mut self,
113975        node: DefaultDecl,
113976        __ast_path: &mut AstKindPath,
113977    ) -> DefaultDecl {
113978        <V as FoldAstPath>::fold_default_decl(&mut **self, node, __ast_path)
113979    }
113980
113981    #[inline]
113982    fn fold_do_while_stmt(
113983        &mut self,
113984        node: DoWhileStmt,
113985        __ast_path: &mut AstKindPath,
113986    ) -> DoWhileStmt {
113987        <V as FoldAstPath>::fold_do_while_stmt(&mut **self, node, __ast_path)
113988    }
113989
113990    #[inline]
113991    fn fold_empty_stmt(&mut self, node: EmptyStmt, __ast_path: &mut AstKindPath) -> EmptyStmt {
113992        <V as FoldAstPath>::fold_empty_stmt(&mut **self, node, __ast_path)
113993    }
113994
113995    #[inline]
113996    fn fold_export_all(&mut self, node: ExportAll, __ast_path: &mut AstKindPath) -> ExportAll {
113997        <V as FoldAstPath>::fold_export_all(&mut **self, node, __ast_path)
113998    }
113999
114000    #[inline]
114001    fn fold_export_decl(&mut self, node: ExportDecl, __ast_path: &mut AstKindPath) -> ExportDecl {
114002        <V as FoldAstPath>::fold_export_decl(&mut **self, node, __ast_path)
114003    }
114004
114005    #[inline]
114006    fn fold_export_default_decl(
114007        &mut self,
114008        node: ExportDefaultDecl,
114009        __ast_path: &mut AstKindPath,
114010    ) -> ExportDefaultDecl {
114011        <V as FoldAstPath>::fold_export_default_decl(&mut **self, node, __ast_path)
114012    }
114013
114014    #[inline]
114015    fn fold_export_default_expr(
114016        &mut self,
114017        node: ExportDefaultExpr,
114018        __ast_path: &mut AstKindPath,
114019    ) -> ExportDefaultExpr {
114020        <V as FoldAstPath>::fold_export_default_expr(&mut **self, node, __ast_path)
114021    }
114022
114023    #[inline]
114024    fn fold_export_default_specifier(
114025        &mut self,
114026        node: ExportDefaultSpecifier,
114027        __ast_path: &mut AstKindPath,
114028    ) -> ExportDefaultSpecifier {
114029        <V as FoldAstPath>::fold_export_default_specifier(&mut **self, node, __ast_path)
114030    }
114031
114032    #[inline]
114033    fn fold_export_named_specifier(
114034        &mut self,
114035        node: ExportNamedSpecifier,
114036        __ast_path: &mut AstKindPath,
114037    ) -> ExportNamedSpecifier {
114038        <V as FoldAstPath>::fold_export_named_specifier(&mut **self, node, __ast_path)
114039    }
114040
114041    #[inline]
114042    fn fold_export_namespace_specifier(
114043        &mut self,
114044        node: ExportNamespaceSpecifier,
114045        __ast_path: &mut AstKindPath,
114046    ) -> ExportNamespaceSpecifier {
114047        <V as FoldAstPath>::fold_export_namespace_specifier(&mut **self, node, __ast_path)
114048    }
114049
114050    #[inline]
114051    fn fold_export_specifier(
114052        &mut self,
114053        node: ExportSpecifier,
114054        __ast_path: &mut AstKindPath,
114055    ) -> ExportSpecifier {
114056        <V as FoldAstPath>::fold_export_specifier(&mut **self, node, __ast_path)
114057    }
114058
114059    #[inline]
114060    fn fold_export_specifiers(
114061        &mut self,
114062        node: Vec<ExportSpecifier>,
114063        __ast_path: &mut AstKindPath,
114064    ) -> Vec<ExportSpecifier> {
114065        <V as FoldAstPath>::fold_export_specifiers(&mut **self, node, __ast_path)
114066    }
114067
114068    #[inline]
114069    fn fold_expr(&mut self, node: Expr, __ast_path: &mut AstKindPath) -> Expr {
114070        <V as FoldAstPath>::fold_expr(&mut **self, node, __ast_path)
114071    }
114072
114073    #[inline]
114074    fn fold_expr_or_spread(
114075        &mut self,
114076        node: ExprOrSpread,
114077        __ast_path: &mut AstKindPath,
114078    ) -> ExprOrSpread {
114079        <V as FoldAstPath>::fold_expr_or_spread(&mut **self, node, __ast_path)
114080    }
114081
114082    #[inline]
114083    fn fold_expr_or_spreads(
114084        &mut self,
114085        node: Vec<ExprOrSpread>,
114086        __ast_path: &mut AstKindPath,
114087    ) -> Vec<ExprOrSpread> {
114088        <V as FoldAstPath>::fold_expr_or_spreads(&mut **self, node, __ast_path)
114089    }
114090
114091    #[inline]
114092    fn fold_expr_stmt(&mut self, node: ExprStmt, __ast_path: &mut AstKindPath) -> ExprStmt {
114093        <V as FoldAstPath>::fold_expr_stmt(&mut **self, node, __ast_path)
114094    }
114095
114096    #[inline]
114097    fn fold_exprs(&mut self, node: Vec<Box<Expr>>, __ast_path: &mut AstKindPath) -> Vec<Box<Expr>> {
114098        <V as FoldAstPath>::fold_exprs(&mut **self, node, __ast_path)
114099    }
114100
114101    #[inline]
114102    fn fold_fn_decl(&mut self, node: FnDecl, __ast_path: &mut AstKindPath) -> FnDecl {
114103        <V as FoldAstPath>::fold_fn_decl(&mut **self, node, __ast_path)
114104    }
114105
114106    #[inline]
114107    fn fold_fn_expr(&mut self, node: FnExpr, __ast_path: &mut AstKindPath) -> FnExpr {
114108        <V as FoldAstPath>::fold_fn_expr(&mut **self, node, __ast_path)
114109    }
114110
114111    #[inline]
114112    fn fold_for_head(&mut self, node: ForHead, __ast_path: &mut AstKindPath) -> ForHead {
114113        <V as FoldAstPath>::fold_for_head(&mut **self, node, __ast_path)
114114    }
114115
114116    #[inline]
114117    fn fold_for_in_stmt(&mut self, node: ForInStmt, __ast_path: &mut AstKindPath) -> ForInStmt {
114118        <V as FoldAstPath>::fold_for_in_stmt(&mut **self, node, __ast_path)
114119    }
114120
114121    #[inline]
114122    fn fold_for_of_stmt(&mut self, node: ForOfStmt, __ast_path: &mut AstKindPath) -> ForOfStmt {
114123        <V as FoldAstPath>::fold_for_of_stmt(&mut **self, node, __ast_path)
114124    }
114125
114126    #[inline]
114127    fn fold_for_stmt(&mut self, node: ForStmt, __ast_path: &mut AstKindPath) -> ForStmt {
114128        <V as FoldAstPath>::fold_for_stmt(&mut **self, node, __ast_path)
114129    }
114130
114131    #[inline]
114132    fn fold_function(&mut self, node: Function, __ast_path: &mut AstKindPath) -> Function {
114133        <V as FoldAstPath>::fold_function(&mut **self, node, __ast_path)
114134    }
114135
114136    #[inline]
114137    fn fold_getter_prop(&mut self, node: GetterProp, __ast_path: &mut AstKindPath) -> GetterProp {
114138        <V as FoldAstPath>::fold_getter_prop(&mut **self, node, __ast_path)
114139    }
114140
114141    #[inline]
114142    fn fold_ident(&mut self, node: Ident, __ast_path: &mut AstKindPath) -> Ident {
114143        <V as FoldAstPath>::fold_ident(&mut **self, node, __ast_path)
114144    }
114145
114146    #[inline]
114147    fn fold_ident_name(&mut self, node: IdentName, __ast_path: &mut AstKindPath) -> IdentName {
114148        <V as FoldAstPath>::fold_ident_name(&mut **self, node, __ast_path)
114149    }
114150
114151    #[inline]
114152    fn fold_if_stmt(&mut self, node: IfStmt, __ast_path: &mut AstKindPath) -> IfStmt {
114153        <V as FoldAstPath>::fold_if_stmt(&mut **self, node, __ast_path)
114154    }
114155
114156    #[inline]
114157    fn fold_import(&mut self, node: Import, __ast_path: &mut AstKindPath) -> Import {
114158        <V as FoldAstPath>::fold_import(&mut **self, node, __ast_path)
114159    }
114160
114161    #[inline]
114162    fn fold_import_decl(&mut self, node: ImportDecl, __ast_path: &mut AstKindPath) -> ImportDecl {
114163        <V as FoldAstPath>::fold_import_decl(&mut **self, node, __ast_path)
114164    }
114165
114166    #[inline]
114167    fn fold_import_default_specifier(
114168        &mut self,
114169        node: ImportDefaultSpecifier,
114170        __ast_path: &mut AstKindPath,
114171    ) -> ImportDefaultSpecifier {
114172        <V as FoldAstPath>::fold_import_default_specifier(&mut **self, node, __ast_path)
114173    }
114174
114175    #[inline]
114176    fn fold_import_named_specifier(
114177        &mut self,
114178        node: ImportNamedSpecifier,
114179        __ast_path: &mut AstKindPath,
114180    ) -> ImportNamedSpecifier {
114181        <V as FoldAstPath>::fold_import_named_specifier(&mut **self, node, __ast_path)
114182    }
114183
114184    #[inline]
114185    fn fold_import_phase(
114186        &mut self,
114187        node: ImportPhase,
114188        __ast_path: &mut AstKindPath,
114189    ) -> ImportPhase {
114190        <V as FoldAstPath>::fold_import_phase(&mut **self, node, __ast_path)
114191    }
114192
114193    #[inline]
114194    fn fold_import_specifier(
114195        &mut self,
114196        node: ImportSpecifier,
114197        __ast_path: &mut AstKindPath,
114198    ) -> ImportSpecifier {
114199        <V as FoldAstPath>::fold_import_specifier(&mut **self, node, __ast_path)
114200    }
114201
114202    #[inline]
114203    fn fold_import_specifiers(
114204        &mut self,
114205        node: Vec<ImportSpecifier>,
114206        __ast_path: &mut AstKindPath,
114207    ) -> Vec<ImportSpecifier> {
114208        <V as FoldAstPath>::fold_import_specifiers(&mut **self, node, __ast_path)
114209    }
114210
114211    #[inline]
114212    fn fold_import_star_as_specifier(
114213        &mut self,
114214        node: ImportStarAsSpecifier,
114215        __ast_path: &mut AstKindPath,
114216    ) -> ImportStarAsSpecifier {
114217        <V as FoldAstPath>::fold_import_star_as_specifier(&mut **self, node, __ast_path)
114218    }
114219
114220    #[inline]
114221    fn fold_import_with(&mut self, node: ImportWith, __ast_path: &mut AstKindPath) -> ImportWith {
114222        <V as FoldAstPath>::fold_import_with(&mut **self, node, __ast_path)
114223    }
114224
114225    #[inline]
114226    fn fold_import_with_item(
114227        &mut self,
114228        node: ImportWithItem,
114229        __ast_path: &mut AstKindPath,
114230    ) -> ImportWithItem {
114231        <V as FoldAstPath>::fold_import_with_item(&mut **self, node, __ast_path)
114232    }
114233
114234    #[inline]
114235    fn fold_import_with_items(
114236        &mut self,
114237        node: Vec<ImportWithItem>,
114238        __ast_path: &mut AstKindPath,
114239    ) -> Vec<ImportWithItem> {
114240        <V as FoldAstPath>::fold_import_with_items(&mut **self, node, __ast_path)
114241    }
114242
114243    #[inline]
114244    fn fold_invalid(&mut self, node: Invalid, __ast_path: &mut AstKindPath) -> Invalid {
114245        <V as FoldAstPath>::fold_invalid(&mut **self, node, __ast_path)
114246    }
114247
114248    #[inline]
114249    fn fold_jsx_attr(&mut self, node: JSXAttr, __ast_path: &mut AstKindPath) -> JSXAttr {
114250        <V as FoldAstPath>::fold_jsx_attr(&mut **self, node, __ast_path)
114251    }
114252
114253    #[inline]
114254    fn fold_jsx_attr_name(
114255        &mut self,
114256        node: JSXAttrName,
114257        __ast_path: &mut AstKindPath,
114258    ) -> JSXAttrName {
114259        <V as FoldAstPath>::fold_jsx_attr_name(&mut **self, node, __ast_path)
114260    }
114261
114262    #[inline]
114263    fn fold_jsx_attr_or_spread(
114264        &mut self,
114265        node: JSXAttrOrSpread,
114266        __ast_path: &mut AstKindPath,
114267    ) -> JSXAttrOrSpread {
114268        <V as FoldAstPath>::fold_jsx_attr_or_spread(&mut **self, node, __ast_path)
114269    }
114270
114271    #[inline]
114272    fn fold_jsx_attr_or_spreads(
114273        &mut self,
114274        node: Vec<JSXAttrOrSpread>,
114275        __ast_path: &mut AstKindPath,
114276    ) -> Vec<JSXAttrOrSpread> {
114277        <V as FoldAstPath>::fold_jsx_attr_or_spreads(&mut **self, node, __ast_path)
114278    }
114279
114280    #[inline]
114281    fn fold_jsx_attr_value(
114282        &mut self,
114283        node: JSXAttrValue,
114284        __ast_path: &mut AstKindPath,
114285    ) -> JSXAttrValue {
114286        <V as FoldAstPath>::fold_jsx_attr_value(&mut **self, node, __ast_path)
114287    }
114288
114289    #[inline]
114290    fn fold_jsx_closing_element(
114291        &mut self,
114292        node: JSXClosingElement,
114293        __ast_path: &mut AstKindPath,
114294    ) -> JSXClosingElement {
114295        <V as FoldAstPath>::fold_jsx_closing_element(&mut **self, node, __ast_path)
114296    }
114297
114298    #[inline]
114299    fn fold_jsx_closing_fragment(
114300        &mut self,
114301        node: JSXClosingFragment,
114302        __ast_path: &mut AstKindPath,
114303    ) -> JSXClosingFragment {
114304        <V as FoldAstPath>::fold_jsx_closing_fragment(&mut **self, node, __ast_path)
114305    }
114306
114307    #[inline]
114308    fn fold_jsx_element(&mut self, node: JSXElement, __ast_path: &mut AstKindPath) -> JSXElement {
114309        <V as FoldAstPath>::fold_jsx_element(&mut **self, node, __ast_path)
114310    }
114311
114312    #[inline]
114313    fn fold_jsx_element_child(
114314        &mut self,
114315        node: JSXElementChild,
114316        __ast_path: &mut AstKindPath,
114317    ) -> JSXElementChild {
114318        <V as FoldAstPath>::fold_jsx_element_child(&mut **self, node, __ast_path)
114319    }
114320
114321    #[inline]
114322    fn fold_jsx_element_childs(
114323        &mut self,
114324        node: Vec<JSXElementChild>,
114325        __ast_path: &mut AstKindPath,
114326    ) -> Vec<JSXElementChild> {
114327        <V as FoldAstPath>::fold_jsx_element_childs(&mut **self, node, __ast_path)
114328    }
114329
114330    #[inline]
114331    fn fold_jsx_element_name(
114332        &mut self,
114333        node: JSXElementName,
114334        __ast_path: &mut AstKindPath,
114335    ) -> JSXElementName {
114336        <V as FoldAstPath>::fold_jsx_element_name(&mut **self, node, __ast_path)
114337    }
114338
114339    #[inline]
114340    fn fold_jsx_empty_expr(
114341        &mut self,
114342        node: JSXEmptyExpr,
114343        __ast_path: &mut AstKindPath,
114344    ) -> JSXEmptyExpr {
114345        <V as FoldAstPath>::fold_jsx_empty_expr(&mut **self, node, __ast_path)
114346    }
114347
114348    #[inline]
114349    fn fold_jsx_expr(&mut self, node: JSXExpr, __ast_path: &mut AstKindPath) -> JSXExpr {
114350        <V as FoldAstPath>::fold_jsx_expr(&mut **self, node, __ast_path)
114351    }
114352
114353    #[inline]
114354    fn fold_jsx_expr_container(
114355        &mut self,
114356        node: JSXExprContainer,
114357        __ast_path: &mut AstKindPath,
114358    ) -> JSXExprContainer {
114359        <V as FoldAstPath>::fold_jsx_expr_container(&mut **self, node, __ast_path)
114360    }
114361
114362    #[inline]
114363    fn fold_jsx_fragment(
114364        &mut self,
114365        node: JSXFragment,
114366        __ast_path: &mut AstKindPath,
114367    ) -> JSXFragment {
114368        <V as FoldAstPath>::fold_jsx_fragment(&mut **self, node, __ast_path)
114369    }
114370
114371    #[inline]
114372    fn fold_jsx_member_expr(
114373        &mut self,
114374        node: JSXMemberExpr,
114375        __ast_path: &mut AstKindPath,
114376    ) -> JSXMemberExpr {
114377        <V as FoldAstPath>::fold_jsx_member_expr(&mut **self, node, __ast_path)
114378    }
114379
114380    #[inline]
114381    fn fold_jsx_namespaced_name(
114382        &mut self,
114383        node: JSXNamespacedName,
114384        __ast_path: &mut AstKindPath,
114385    ) -> JSXNamespacedName {
114386        <V as FoldAstPath>::fold_jsx_namespaced_name(&mut **self, node, __ast_path)
114387    }
114388
114389    #[inline]
114390    fn fold_jsx_object(&mut self, node: JSXObject, __ast_path: &mut AstKindPath) -> JSXObject {
114391        <V as FoldAstPath>::fold_jsx_object(&mut **self, node, __ast_path)
114392    }
114393
114394    #[inline]
114395    fn fold_jsx_opening_element(
114396        &mut self,
114397        node: JSXOpeningElement,
114398        __ast_path: &mut AstKindPath,
114399    ) -> JSXOpeningElement {
114400        <V as FoldAstPath>::fold_jsx_opening_element(&mut **self, node, __ast_path)
114401    }
114402
114403    #[inline]
114404    fn fold_jsx_opening_fragment(
114405        &mut self,
114406        node: JSXOpeningFragment,
114407        __ast_path: &mut AstKindPath,
114408    ) -> JSXOpeningFragment {
114409        <V as FoldAstPath>::fold_jsx_opening_fragment(&mut **self, node, __ast_path)
114410    }
114411
114412    #[inline]
114413    fn fold_jsx_spread_child(
114414        &mut self,
114415        node: JSXSpreadChild,
114416        __ast_path: &mut AstKindPath,
114417    ) -> JSXSpreadChild {
114418        <V as FoldAstPath>::fold_jsx_spread_child(&mut **self, node, __ast_path)
114419    }
114420
114421    #[inline]
114422    fn fold_jsx_text(&mut self, node: JSXText, __ast_path: &mut AstKindPath) -> JSXText {
114423        <V as FoldAstPath>::fold_jsx_text(&mut **self, node, __ast_path)
114424    }
114425
114426    #[inline]
114427    fn fold_key(&mut self, node: Key, __ast_path: &mut AstKindPath) -> Key {
114428        <V as FoldAstPath>::fold_key(&mut **self, node, __ast_path)
114429    }
114430
114431    #[inline]
114432    fn fold_key_value_pat_prop(
114433        &mut self,
114434        node: KeyValuePatProp,
114435        __ast_path: &mut AstKindPath,
114436    ) -> KeyValuePatProp {
114437        <V as FoldAstPath>::fold_key_value_pat_prop(&mut **self, node, __ast_path)
114438    }
114439
114440    #[inline]
114441    fn fold_key_value_prop(
114442        &mut self,
114443        node: KeyValueProp,
114444        __ast_path: &mut AstKindPath,
114445    ) -> KeyValueProp {
114446        <V as FoldAstPath>::fold_key_value_prop(&mut **self, node, __ast_path)
114447    }
114448
114449    #[inline]
114450    fn fold_labeled_stmt(
114451        &mut self,
114452        node: LabeledStmt,
114453        __ast_path: &mut AstKindPath,
114454    ) -> LabeledStmt {
114455        <V as FoldAstPath>::fold_labeled_stmt(&mut **self, node, __ast_path)
114456    }
114457
114458    #[inline]
114459    fn fold_lit(&mut self, node: Lit, __ast_path: &mut AstKindPath) -> Lit {
114460        <V as FoldAstPath>::fold_lit(&mut **self, node, __ast_path)
114461    }
114462
114463    #[inline]
114464    fn fold_member_expr(&mut self, node: MemberExpr, __ast_path: &mut AstKindPath) -> MemberExpr {
114465        <V as FoldAstPath>::fold_member_expr(&mut **self, node, __ast_path)
114466    }
114467
114468    #[inline]
114469    fn fold_member_prop(&mut self, node: MemberProp, __ast_path: &mut AstKindPath) -> MemberProp {
114470        <V as FoldAstPath>::fold_member_prop(&mut **self, node, __ast_path)
114471    }
114472
114473    #[inline]
114474    fn fold_meta_prop_expr(
114475        &mut self,
114476        node: MetaPropExpr,
114477        __ast_path: &mut AstKindPath,
114478    ) -> MetaPropExpr {
114479        <V as FoldAstPath>::fold_meta_prop_expr(&mut **self, node, __ast_path)
114480    }
114481
114482    #[inline]
114483    fn fold_meta_prop_kind(
114484        &mut self,
114485        node: MetaPropKind,
114486        __ast_path: &mut AstKindPath,
114487    ) -> MetaPropKind {
114488        <V as FoldAstPath>::fold_meta_prop_kind(&mut **self, node, __ast_path)
114489    }
114490
114491    #[inline]
114492    fn fold_method_kind(&mut self, node: MethodKind, __ast_path: &mut AstKindPath) -> MethodKind {
114493        <V as FoldAstPath>::fold_method_kind(&mut **self, node, __ast_path)
114494    }
114495
114496    #[inline]
114497    fn fold_method_prop(&mut self, node: MethodProp, __ast_path: &mut AstKindPath) -> MethodProp {
114498        <V as FoldAstPath>::fold_method_prop(&mut **self, node, __ast_path)
114499    }
114500
114501    #[inline]
114502    fn fold_module(&mut self, node: Module, __ast_path: &mut AstKindPath) -> Module {
114503        <V as FoldAstPath>::fold_module(&mut **self, node, __ast_path)
114504    }
114505
114506    #[inline]
114507    fn fold_module_decl(&mut self, node: ModuleDecl, __ast_path: &mut AstKindPath) -> ModuleDecl {
114508        <V as FoldAstPath>::fold_module_decl(&mut **self, node, __ast_path)
114509    }
114510
114511    #[inline]
114512    fn fold_module_export_name(
114513        &mut self,
114514        node: ModuleExportName,
114515        __ast_path: &mut AstKindPath,
114516    ) -> ModuleExportName {
114517        <V as FoldAstPath>::fold_module_export_name(&mut **self, node, __ast_path)
114518    }
114519
114520    #[inline]
114521    fn fold_module_item(&mut self, node: ModuleItem, __ast_path: &mut AstKindPath) -> ModuleItem {
114522        <V as FoldAstPath>::fold_module_item(&mut **self, node, __ast_path)
114523    }
114524
114525    #[inline]
114526    fn fold_module_items(
114527        &mut self,
114528        node: Vec<ModuleItem>,
114529        __ast_path: &mut AstKindPath,
114530    ) -> Vec<ModuleItem> {
114531        <V as FoldAstPath>::fold_module_items(&mut **self, node, __ast_path)
114532    }
114533
114534    #[inline]
114535    fn fold_named_export(
114536        &mut self,
114537        node: NamedExport,
114538        __ast_path: &mut AstKindPath,
114539    ) -> NamedExport {
114540        <V as FoldAstPath>::fold_named_export(&mut **self, node, __ast_path)
114541    }
114542
114543    #[inline]
114544    fn fold_new_expr(&mut self, node: NewExpr, __ast_path: &mut AstKindPath) -> NewExpr {
114545        <V as FoldAstPath>::fold_new_expr(&mut **self, node, __ast_path)
114546    }
114547
114548    #[inline]
114549    fn fold_null(&mut self, node: Null, __ast_path: &mut AstKindPath) -> Null {
114550        <V as FoldAstPath>::fold_null(&mut **self, node, __ast_path)
114551    }
114552
114553    #[inline]
114554    fn fold_number(&mut self, node: Number, __ast_path: &mut AstKindPath) -> Number {
114555        <V as FoldAstPath>::fold_number(&mut **self, node, __ast_path)
114556    }
114557
114558    #[inline]
114559    fn fold_object_lit(&mut self, node: ObjectLit, __ast_path: &mut AstKindPath) -> ObjectLit {
114560        <V as FoldAstPath>::fold_object_lit(&mut **self, node, __ast_path)
114561    }
114562
114563    #[inline]
114564    fn fold_object_pat(&mut self, node: ObjectPat, __ast_path: &mut AstKindPath) -> ObjectPat {
114565        <V as FoldAstPath>::fold_object_pat(&mut **self, node, __ast_path)
114566    }
114567
114568    #[inline]
114569    fn fold_object_pat_prop(
114570        &mut self,
114571        node: ObjectPatProp,
114572        __ast_path: &mut AstKindPath,
114573    ) -> ObjectPatProp {
114574        <V as FoldAstPath>::fold_object_pat_prop(&mut **self, node, __ast_path)
114575    }
114576
114577    #[inline]
114578    fn fold_object_pat_props(
114579        &mut self,
114580        node: Vec<ObjectPatProp>,
114581        __ast_path: &mut AstKindPath,
114582    ) -> Vec<ObjectPatProp> {
114583        <V as FoldAstPath>::fold_object_pat_props(&mut **self, node, __ast_path)
114584    }
114585
114586    #[inline]
114587    fn fold_opt_accessibility(
114588        &mut self,
114589        node: Option<Accessibility>,
114590        __ast_path: &mut AstKindPath,
114591    ) -> Option<Accessibility> {
114592        <V as FoldAstPath>::fold_opt_accessibility(&mut **self, node, __ast_path)
114593    }
114594
114595    #[inline]
114596    fn fold_opt_atom(
114597        &mut self,
114598        node: Option<swc_atoms::Atom>,
114599        __ast_path: &mut AstKindPath,
114600    ) -> Option<swc_atoms::Atom> {
114601        <V as FoldAstPath>::fold_opt_atom(&mut **self, node, __ast_path)
114602    }
114603
114604    #[inline]
114605    fn fold_opt_block_stmt(
114606        &mut self,
114607        node: Option<BlockStmt>,
114608        __ast_path: &mut AstKindPath,
114609    ) -> Option<BlockStmt> {
114610        <V as FoldAstPath>::fold_opt_block_stmt(&mut **self, node, __ast_path)
114611    }
114612
114613    #[inline]
114614    fn fold_opt_call(&mut self, node: OptCall, __ast_path: &mut AstKindPath) -> OptCall {
114615        <V as FoldAstPath>::fold_opt_call(&mut **self, node, __ast_path)
114616    }
114617
114618    #[inline]
114619    fn fold_opt_catch_clause(
114620        &mut self,
114621        node: Option<CatchClause>,
114622        __ast_path: &mut AstKindPath,
114623    ) -> Option<CatchClause> {
114624        <V as FoldAstPath>::fold_opt_catch_clause(&mut **self, node, __ast_path)
114625    }
114626
114627    #[inline]
114628    fn fold_opt_chain_base(
114629        &mut self,
114630        node: OptChainBase,
114631        __ast_path: &mut AstKindPath,
114632    ) -> OptChainBase {
114633        <V as FoldAstPath>::fold_opt_chain_base(&mut **self, node, __ast_path)
114634    }
114635
114636    #[inline]
114637    fn fold_opt_chain_expr(
114638        &mut self,
114639        node: OptChainExpr,
114640        __ast_path: &mut AstKindPath,
114641    ) -> OptChainExpr {
114642        <V as FoldAstPath>::fold_opt_chain_expr(&mut **self, node, __ast_path)
114643    }
114644
114645    #[inline]
114646    fn fold_opt_expr(
114647        &mut self,
114648        node: Option<Box<Expr>>,
114649        __ast_path: &mut AstKindPath,
114650    ) -> Option<Box<Expr>> {
114651        <V as FoldAstPath>::fold_opt_expr(&mut **self, node, __ast_path)
114652    }
114653
114654    #[inline]
114655    fn fold_opt_expr_or_spread(
114656        &mut self,
114657        node: Option<ExprOrSpread>,
114658        __ast_path: &mut AstKindPath,
114659    ) -> Option<ExprOrSpread> {
114660        <V as FoldAstPath>::fold_opt_expr_or_spread(&mut **self, node, __ast_path)
114661    }
114662
114663    #[inline]
114664    fn fold_opt_expr_or_spreads(
114665        &mut self,
114666        node: Option<Vec<ExprOrSpread>>,
114667        __ast_path: &mut AstKindPath,
114668    ) -> Option<Vec<ExprOrSpread>> {
114669        <V as FoldAstPath>::fold_opt_expr_or_spreads(&mut **self, node, __ast_path)
114670    }
114671
114672    #[inline]
114673    fn fold_opt_ident(
114674        &mut self,
114675        node: Option<Ident>,
114676        __ast_path: &mut AstKindPath,
114677    ) -> Option<Ident> {
114678        <V as FoldAstPath>::fold_opt_ident(&mut **self, node, __ast_path)
114679    }
114680
114681    #[inline]
114682    fn fold_opt_jsx_attr_value(
114683        &mut self,
114684        node: Option<JSXAttrValue>,
114685        __ast_path: &mut AstKindPath,
114686    ) -> Option<JSXAttrValue> {
114687        <V as FoldAstPath>::fold_opt_jsx_attr_value(&mut **self, node, __ast_path)
114688    }
114689
114690    #[inline]
114691    fn fold_opt_jsx_closing_element(
114692        &mut self,
114693        node: Option<JSXClosingElement>,
114694        __ast_path: &mut AstKindPath,
114695    ) -> Option<JSXClosingElement> {
114696        <V as FoldAstPath>::fold_opt_jsx_closing_element(&mut **self, node, __ast_path)
114697    }
114698
114699    #[inline]
114700    fn fold_opt_module_export_name(
114701        &mut self,
114702        node: Option<ModuleExportName>,
114703        __ast_path: &mut AstKindPath,
114704    ) -> Option<ModuleExportName> {
114705        <V as FoldAstPath>::fold_opt_module_export_name(&mut **self, node, __ast_path)
114706    }
114707
114708    #[inline]
114709    fn fold_opt_object_lit(
114710        &mut self,
114711        node: Option<Box<ObjectLit>>,
114712        __ast_path: &mut AstKindPath,
114713    ) -> Option<Box<ObjectLit>> {
114714        <V as FoldAstPath>::fold_opt_object_lit(&mut **self, node, __ast_path)
114715    }
114716
114717    #[inline]
114718    fn fold_opt_pat(&mut self, node: Option<Pat>, __ast_path: &mut AstKindPath) -> Option<Pat> {
114719        <V as FoldAstPath>::fold_opt_pat(&mut **self, node, __ast_path)
114720    }
114721
114722    #[inline]
114723    fn fold_opt_span(
114724        &mut self,
114725        node: Option<swc_common::Span>,
114726        __ast_path: &mut AstKindPath,
114727    ) -> Option<swc_common::Span> {
114728        <V as FoldAstPath>::fold_opt_span(&mut **self, node, __ast_path)
114729    }
114730
114731    #[inline]
114732    fn fold_opt_stmt(
114733        &mut self,
114734        node: Option<Box<Stmt>>,
114735        __ast_path: &mut AstKindPath,
114736    ) -> Option<Box<Stmt>> {
114737        <V as FoldAstPath>::fold_opt_stmt(&mut **self, node, __ast_path)
114738    }
114739
114740    #[inline]
114741    fn fold_opt_str(
114742        &mut self,
114743        node: Option<Box<Str>>,
114744        __ast_path: &mut AstKindPath,
114745    ) -> Option<Box<Str>> {
114746        <V as FoldAstPath>::fold_opt_str(&mut **self, node, __ast_path)
114747    }
114748
114749    #[inline]
114750    fn fold_opt_true_plus_minus(
114751        &mut self,
114752        node: Option<TruePlusMinus>,
114753        __ast_path: &mut AstKindPath,
114754    ) -> Option<TruePlusMinus> {
114755        <V as FoldAstPath>::fold_opt_true_plus_minus(&mut **self, node, __ast_path)
114756    }
114757
114758    #[inline]
114759    fn fold_opt_ts_entity_name(
114760        &mut self,
114761        node: Option<TsEntityName>,
114762        __ast_path: &mut AstKindPath,
114763    ) -> Option<TsEntityName> {
114764        <V as FoldAstPath>::fold_opt_ts_entity_name(&mut **self, node, __ast_path)
114765    }
114766
114767    #[inline]
114768    fn fold_opt_ts_import_call_options(
114769        &mut self,
114770        node: Option<TsImportCallOptions>,
114771        __ast_path: &mut AstKindPath,
114772    ) -> Option<TsImportCallOptions> {
114773        <V as FoldAstPath>::fold_opt_ts_import_call_options(&mut **self, node, __ast_path)
114774    }
114775
114776    #[inline]
114777    fn fold_opt_ts_namespace_body(
114778        &mut self,
114779        node: Option<TsNamespaceBody>,
114780        __ast_path: &mut AstKindPath,
114781    ) -> Option<TsNamespaceBody> {
114782        <V as FoldAstPath>::fold_opt_ts_namespace_body(&mut **self, node, __ast_path)
114783    }
114784
114785    #[inline]
114786    fn fold_opt_ts_type(
114787        &mut self,
114788        node: Option<Box<TsType>>,
114789        __ast_path: &mut AstKindPath,
114790    ) -> Option<Box<TsType>> {
114791        <V as FoldAstPath>::fold_opt_ts_type(&mut **self, node, __ast_path)
114792    }
114793
114794    #[inline]
114795    fn fold_opt_ts_type_ann(
114796        &mut self,
114797        node: Option<Box<TsTypeAnn>>,
114798        __ast_path: &mut AstKindPath,
114799    ) -> Option<Box<TsTypeAnn>> {
114800        <V as FoldAstPath>::fold_opt_ts_type_ann(&mut **self, node, __ast_path)
114801    }
114802
114803    #[inline]
114804    fn fold_opt_ts_type_param_decl(
114805        &mut self,
114806        node: Option<Box<TsTypeParamDecl>>,
114807        __ast_path: &mut AstKindPath,
114808    ) -> Option<Box<TsTypeParamDecl>> {
114809        <V as FoldAstPath>::fold_opt_ts_type_param_decl(&mut **self, node, __ast_path)
114810    }
114811
114812    #[inline]
114813    fn fold_opt_ts_type_param_instantiation(
114814        &mut self,
114815        node: Option<Box<TsTypeParamInstantiation>>,
114816        __ast_path: &mut AstKindPath,
114817    ) -> Option<Box<TsTypeParamInstantiation>> {
114818        <V as FoldAstPath>::fold_opt_ts_type_param_instantiation(&mut **self, node, __ast_path)
114819    }
114820
114821    #[inline]
114822    fn fold_opt_var_decl_or_expr(
114823        &mut self,
114824        node: Option<VarDeclOrExpr>,
114825        __ast_path: &mut AstKindPath,
114826    ) -> Option<VarDeclOrExpr> {
114827        <V as FoldAstPath>::fold_opt_var_decl_or_expr(&mut **self, node, __ast_path)
114828    }
114829
114830    #[inline]
114831    fn fold_opt_vec_expr_or_spreads(
114832        &mut self,
114833        node: Vec<Option<ExprOrSpread>>,
114834        __ast_path: &mut AstKindPath,
114835    ) -> Vec<Option<ExprOrSpread>> {
114836        <V as FoldAstPath>::fold_opt_vec_expr_or_spreads(&mut **self, node, __ast_path)
114837    }
114838
114839    #[inline]
114840    fn fold_opt_vec_pats(
114841        &mut self,
114842        node: Vec<Option<Pat>>,
114843        __ast_path: &mut AstKindPath,
114844    ) -> Vec<Option<Pat>> {
114845        <V as FoldAstPath>::fold_opt_vec_pats(&mut **self, node, __ast_path)
114846    }
114847
114848    #[inline]
114849    fn fold_param(&mut self, node: Param, __ast_path: &mut AstKindPath) -> Param {
114850        <V as FoldAstPath>::fold_param(&mut **self, node, __ast_path)
114851    }
114852
114853    #[inline]
114854    fn fold_param_or_ts_param_prop(
114855        &mut self,
114856        node: ParamOrTsParamProp,
114857        __ast_path: &mut AstKindPath,
114858    ) -> ParamOrTsParamProp {
114859        <V as FoldAstPath>::fold_param_or_ts_param_prop(&mut **self, node, __ast_path)
114860    }
114861
114862    #[inline]
114863    fn fold_param_or_ts_param_props(
114864        &mut self,
114865        node: Vec<ParamOrTsParamProp>,
114866        __ast_path: &mut AstKindPath,
114867    ) -> Vec<ParamOrTsParamProp> {
114868        <V as FoldAstPath>::fold_param_or_ts_param_props(&mut **self, node, __ast_path)
114869    }
114870
114871    #[inline]
114872    fn fold_params(&mut self, node: Vec<Param>, __ast_path: &mut AstKindPath) -> Vec<Param> {
114873        <V as FoldAstPath>::fold_params(&mut **self, node, __ast_path)
114874    }
114875
114876    #[inline]
114877    fn fold_paren_expr(&mut self, node: ParenExpr, __ast_path: &mut AstKindPath) -> ParenExpr {
114878        <V as FoldAstPath>::fold_paren_expr(&mut **self, node, __ast_path)
114879    }
114880
114881    #[inline]
114882    fn fold_pat(&mut self, node: Pat, __ast_path: &mut AstKindPath) -> Pat {
114883        <V as FoldAstPath>::fold_pat(&mut **self, node, __ast_path)
114884    }
114885
114886    #[inline]
114887    fn fold_pats(&mut self, node: Vec<Pat>, __ast_path: &mut AstKindPath) -> Vec<Pat> {
114888        <V as FoldAstPath>::fold_pats(&mut **self, node, __ast_path)
114889    }
114890
114891    #[inline]
114892    fn fold_private_method(
114893        &mut self,
114894        node: PrivateMethod,
114895        __ast_path: &mut AstKindPath,
114896    ) -> PrivateMethod {
114897        <V as FoldAstPath>::fold_private_method(&mut **self, node, __ast_path)
114898    }
114899
114900    #[inline]
114901    fn fold_private_name(
114902        &mut self,
114903        node: PrivateName,
114904        __ast_path: &mut AstKindPath,
114905    ) -> PrivateName {
114906        <V as FoldAstPath>::fold_private_name(&mut **self, node, __ast_path)
114907    }
114908
114909    #[inline]
114910    fn fold_private_prop(
114911        &mut self,
114912        node: PrivateProp,
114913        __ast_path: &mut AstKindPath,
114914    ) -> PrivateProp {
114915        <V as FoldAstPath>::fold_private_prop(&mut **self, node, __ast_path)
114916    }
114917
114918    #[inline]
114919    fn fold_program(&mut self, node: Program, __ast_path: &mut AstKindPath) -> Program {
114920        <V as FoldAstPath>::fold_program(&mut **self, node, __ast_path)
114921    }
114922
114923    #[inline]
114924    fn fold_prop(&mut self, node: Prop, __ast_path: &mut AstKindPath) -> Prop {
114925        <V as FoldAstPath>::fold_prop(&mut **self, node, __ast_path)
114926    }
114927
114928    #[inline]
114929    fn fold_prop_name(&mut self, node: PropName, __ast_path: &mut AstKindPath) -> PropName {
114930        <V as FoldAstPath>::fold_prop_name(&mut **self, node, __ast_path)
114931    }
114932
114933    #[inline]
114934    fn fold_prop_or_spread(
114935        &mut self,
114936        node: PropOrSpread,
114937        __ast_path: &mut AstKindPath,
114938    ) -> PropOrSpread {
114939        <V as FoldAstPath>::fold_prop_or_spread(&mut **self, node, __ast_path)
114940    }
114941
114942    #[inline]
114943    fn fold_prop_or_spreads(
114944        &mut self,
114945        node: Vec<PropOrSpread>,
114946        __ast_path: &mut AstKindPath,
114947    ) -> Vec<PropOrSpread> {
114948        <V as FoldAstPath>::fold_prop_or_spreads(&mut **self, node, __ast_path)
114949    }
114950
114951    #[inline]
114952    fn fold_regex(&mut self, node: Regex, __ast_path: &mut AstKindPath) -> Regex {
114953        <V as FoldAstPath>::fold_regex(&mut **self, node, __ast_path)
114954    }
114955
114956    #[inline]
114957    fn fold_rest_pat(&mut self, node: RestPat, __ast_path: &mut AstKindPath) -> RestPat {
114958        <V as FoldAstPath>::fold_rest_pat(&mut **self, node, __ast_path)
114959    }
114960
114961    #[inline]
114962    fn fold_return_stmt(&mut self, node: ReturnStmt, __ast_path: &mut AstKindPath) -> ReturnStmt {
114963        <V as FoldAstPath>::fold_return_stmt(&mut **self, node, __ast_path)
114964    }
114965
114966    #[inline]
114967    fn fold_script(&mut self, node: Script, __ast_path: &mut AstKindPath) -> Script {
114968        <V as FoldAstPath>::fold_script(&mut **self, node, __ast_path)
114969    }
114970
114971    #[inline]
114972    fn fold_seq_expr(&mut self, node: SeqExpr, __ast_path: &mut AstKindPath) -> SeqExpr {
114973        <V as FoldAstPath>::fold_seq_expr(&mut **self, node, __ast_path)
114974    }
114975
114976    #[inline]
114977    fn fold_setter_prop(&mut self, node: SetterProp, __ast_path: &mut AstKindPath) -> SetterProp {
114978        <V as FoldAstPath>::fold_setter_prop(&mut **self, node, __ast_path)
114979    }
114980
114981    #[inline]
114982    fn fold_simple_assign_target(
114983        &mut self,
114984        node: SimpleAssignTarget,
114985        __ast_path: &mut AstKindPath,
114986    ) -> SimpleAssignTarget {
114987        <V as FoldAstPath>::fold_simple_assign_target(&mut **self, node, __ast_path)
114988    }
114989
114990    #[inline]
114991    fn fold_span(
114992        &mut self,
114993        node: swc_common::Span,
114994        __ast_path: &mut AstKindPath,
114995    ) -> swc_common::Span {
114996        <V as FoldAstPath>::fold_span(&mut **self, node, __ast_path)
114997    }
114998
114999    #[inline]
115000    fn fold_spread_element(
115001        &mut self,
115002        node: SpreadElement,
115003        __ast_path: &mut AstKindPath,
115004    ) -> SpreadElement {
115005        <V as FoldAstPath>::fold_spread_element(&mut **self, node, __ast_path)
115006    }
115007
115008    #[inline]
115009    fn fold_static_block(
115010        &mut self,
115011        node: StaticBlock,
115012        __ast_path: &mut AstKindPath,
115013    ) -> StaticBlock {
115014        <V as FoldAstPath>::fold_static_block(&mut **self, node, __ast_path)
115015    }
115016
115017    #[inline]
115018    fn fold_stmt(&mut self, node: Stmt, __ast_path: &mut AstKindPath) -> Stmt {
115019        <V as FoldAstPath>::fold_stmt(&mut **self, node, __ast_path)
115020    }
115021
115022    #[inline]
115023    fn fold_stmts(&mut self, node: Vec<Stmt>, __ast_path: &mut AstKindPath) -> Vec<Stmt> {
115024        <V as FoldAstPath>::fold_stmts(&mut **self, node, __ast_path)
115025    }
115026
115027    #[inline]
115028    fn fold_str(&mut self, node: Str, __ast_path: &mut AstKindPath) -> Str {
115029        <V as FoldAstPath>::fold_str(&mut **self, node, __ast_path)
115030    }
115031
115032    #[inline]
115033    fn fold_super(&mut self, node: Super, __ast_path: &mut AstKindPath) -> Super {
115034        <V as FoldAstPath>::fold_super(&mut **self, node, __ast_path)
115035    }
115036
115037    #[inline]
115038    fn fold_super_prop(&mut self, node: SuperProp, __ast_path: &mut AstKindPath) -> SuperProp {
115039        <V as FoldAstPath>::fold_super_prop(&mut **self, node, __ast_path)
115040    }
115041
115042    #[inline]
115043    fn fold_super_prop_expr(
115044        &mut self,
115045        node: SuperPropExpr,
115046        __ast_path: &mut AstKindPath,
115047    ) -> SuperPropExpr {
115048        <V as FoldAstPath>::fold_super_prop_expr(&mut **self, node, __ast_path)
115049    }
115050
115051    #[inline]
115052    fn fold_switch_case(&mut self, node: SwitchCase, __ast_path: &mut AstKindPath) -> SwitchCase {
115053        <V as FoldAstPath>::fold_switch_case(&mut **self, node, __ast_path)
115054    }
115055
115056    #[inline]
115057    fn fold_switch_cases(
115058        &mut self,
115059        node: Vec<SwitchCase>,
115060        __ast_path: &mut AstKindPath,
115061    ) -> Vec<SwitchCase> {
115062        <V as FoldAstPath>::fold_switch_cases(&mut **self, node, __ast_path)
115063    }
115064
115065    #[inline]
115066    fn fold_switch_stmt(&mut self, node: SwitchStmt, __ast_path: &mut AstKindPath) -> SwitchStmt {
115067        <V as FoldAstPath>::fold_switch_stmt(&mut **self, node, __ast_path)
115068    }
115069
115070    #[inline]
115071    fn fold_syntax_context(
115072        &mut self,
115073        node: swc_common::SyntaxContext,
115074        __ast_path: &mut AstKindPath,
115075    ) -> swc_common::SyntaxContext {
115076        <V as FoldAstPath>::fold_syntax_context(&mut **self, node, __ast_path)
115077    }
115078
115079    #[inline]
115080    fn fold_tagged_tpl(&mut self, node: TaggedTpl, __ast_path: &mut AstKindPath) -> TaggedTpl {
115081        <V as FoldAstPath>::fold_tagged_tpl(&mut **self, node, __ast_path)
115082    }
115083
115084    #[inline]
115085    fn fold_this_expr(&mut self, node: ThisExpr, __ast_path: &mut AstKindPath) -> ThisExpr {
115086        <V as FoldAstPath>::fold_this_expr(&mut **self, node, __ast_path)
115087    }
115088
115089    #[inline]
115090    fn fold_throw_stmt(&mut self, node: ThrowStmt, __ast_path: &mut AstKindPath) -> ThrowStmt {
115091        <V as FoldAstPath>::fold_throw_stmt(&mut **self, node, __ast_path)
115092    }
115093
115094    #[inline]
115095    fn fold_tpl(&mut self, node: Tpl, __ast_path: &mut AstKindPath) -> Tpl {
115096        <V as FoldAstPath>::fold_tpl(&mut **self, node, __ast_path)
115097    }
115098
115099    #[inline]
115100    fn fold_tpl_element(&mut self, node: TplElement, __ast_path: &mut AstKindPath) -> TplElement {
115101        <V as FoldAstPath>::fold_tpl_element(&mut **self, node, __ast_path)
115102    }
115103
115104    #[inline]
115105    fn fold_tpl_elements(
115106        &mut self,
115107        node: Vec<TplElement>,
115108        __ast_path: &mut AstKindPath,
115109    ) -> Vec<TplElement> {
115110        <V as FoldAstPath>::fold_tpl_elements(&mut **self, node, __ast_path)
115111    }
115112
115113    #[inline]
115114    fn fold_true_plus_minus(
115115        &mut self,
115116        node: TruePlusMinus,
115117        __ast_path: &mut AstKindPath,
115118    ) -> TruePlusMinus {
115119        <V as FoldAstPath>::fold_true_plus_minus(&mut **self, node, __ast_path)
115120    }
115121
115122    #[inline]
115123    fn fold_try_stmt(&mut self, node: TryStmt, __ast_path: &mut AstKindPath) -> TryStmt {
115124        <V as FoldAstPath>::fold_try_stmt(&mut **self, node, __ast_path)
115125    }
115126
115127    #[inline]
115128    fn fold_ts_array_type(
115129        &mut self,
115130        node: TsArrayType,
115131        __ast_path: &mut AstKindPath,
115132    ) -> TsArrayType {
115133        <V as FoldAstPath>::fold_ts_array_type(&mut **self, node, __ast_path)
115134    }
115135
115136    #[inline]
115137    fn fold_ts_as_expr(&mut self, node: TsAsExpr, __ast_path: &mut AstKindPath) -> TsAsExpr {
115138        <V as FoldAstPath>::fold_ts_as_expr(&mut **self, node, __ast_path)
115139    }
115140
115141    #[inline]
115142    fn fold_ts_call_signature_decl(
115143        &mut self,
115144        node: TsCallSignatureDecl,
115145        __ast_path: &mut AstKindPath,
115146    ) -> TsCallSignatureDecl {
115147        <V as FoldAstPath>::fold_ts_call_signature_decl(&mut **self, node, __ast_path)
115148    }
115149
115150    #[inline]
115151    fn fold_ts_conditional_type(
115152        &mut self,
115153        node: TsConditionalType,
115154        __ast_path: &mut AstKindPath,
115155    ) -> TsConditionalType {
115156        <V as FoldAstPath>::fold_ts_conditional_type(&mut **self, node, __ast_path)
115157    }
115158
115159    #[inline]
115160    fn fold_ts_const_assertion(
115161        &mut self,
115162        node: TsConstAssertion,
115163        __ast_path: &mut AstKindPath,
115164    ) -> TsConstAssertion {
115165        <V as FoldAstPath>::fold_ts_const_assertion(&mut **self, node, __ast_path)
115166    }
115167
115168    #[inline]
115169    fn fold_ts_construct_signature_decl(
115170        &mut self,
115171        node: TsConstructSignatureDecl,
115172        __ast_path: &mut AstKindPath,
115173    ) -> TsConstructSignatureDecl {
115174        <V as FoldAstPath>::fold_ts_construct_signature_decl(&mut **self, node, __ast_path)
115175    }
115176
115177    #[inline]
115178    fn fold_ts_constructor_type(
115179        &mut self,
115180        node: TsConstructorType,
115181        __ast_path: &mut AstKindPath,
115182    ) -> TsConstructorType {
115183        <V as FoldAstPath>::fold_ts_constructor_type(&mut **self, node, __ast_path)
115184    }
115185
115186    #[inline]
115187    fn fold_ts_entity_name(
115188        &mut self,
115189        node: TsEntityName,
115190        __ast_path: &mut AstKindPath,
115191    ) -> TsEntityName {
115192        <V as FoldAstPath>::fold_ts_entity_name(&mut **self, node, __ast_path)
115193    }
115194
115195    #[inline]
115196    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl, __ast_path: &mut AstKindPath) -> TsEnumDecl {
115197        <V as FoldAstPath>::fold_ts_enum_decl(&mut **self, node, __ast_path)
115198    }
115199
115200    #[inline]
115201    fn fold_ts_enum_member(
115202        &mut self,
115203        node: TsEnumMember,
115204        __ast_path: &mut AstKindPath,
115205    ) -> TsEnumMember {
115206        <V as FoldAstPath>::fold_ts_enum_member(&mut **self, node, __ast_path)
115207    }
115208
115209    #[inline]
115210    fn fold_ts_enum_member_id(
115211        &mut self,
115212        node: TsEnumMemberId,
115213        __ast_path: &mut AstKindPath,
115214    ) -> TsEnumMemberId {
115215        <V as FoldAstPath>::fold_ts_enum_member_id(&mut **self, node, __ast_path)
115216    }
115217
115218    #[inline]
115219    fn fold_ts_enum_members(
115220        &mut self,
115221        node: Vec<TsEnumMember>,
115222        __ast_path: &mut AstKindPath,
115223    ) -> Vec<TsEnumMember> {
115224        <V as FoldAstPath>::fold_ts_enum_members(&mut **self, node, __ast_path)
115225    }
115226
115227    #[inline]
115228    fn fold_ts_export_assignment(
115229        &mut self,
115230        node: TsExportAssignment,
115231        __ast_path: &mut AstKindPath,
115232    ) -> TsExportAssignment {
115233        <V as FoldAstPath>::fold_ts_export_assignment(&mut **self, node, __ast_path)
115234    }
115235
115236    #[inline]
115237    fn fold_ts_expr_with_type_args(
115238        &mut self,
115239        node: TsExprWithTypeArgs,
115240        __ast_path: &mut AstKindPath,
115241    ) -> TsExprWithTypeArgs {
115242        <V as FoldAstPath>::fold_ts_expr_with_type_args(&mut **self, node, __ast_path)
115243    }
115244
115245    #[inline]
115246    fn fold_ts_expr_with_type_argss(
115247        &mut self,
115248        node: Vec<TsExprWithTypeArgs>,
115249        __ast_path: &mut AstKindPath,
115250    ) -> Vec<TsExprWithTypeArgs> {
115251        <V as FoldAstPath>::fold_ts_expr_with_type_argss(&mut **self, node, __ast_path)
115252    }
115253
115254    #[inline]
115255    fn fold_ts_external_module_ref(
115256        &mut self,
115257        node: TsExternalModuleRef,
115258        __ast_path: &mut AstKindPath,
115259    ) -> TsExternalModuleRef {
115260        <V as FoldAstPath>::fold_ts_external_module_ref(&mut **self, node, __ast_path)
115261    }
115262
115263    #[inline]
115264    fn fold_ts_fn_or_constructor_type(
115265        &mut self,
115266        node: TsFnOrConstructorType,
115267        __ast_path: &mut AstKindPath,
115268    ) -> TsFnOrConstructorType {
115269        <V as FoldAstPath>::fold_ts_fn_or_constructor_type(&mut **self, node, __ast_path)
115270    }
115271
115272    #[inline]
115273    fn fold_ts_fn_param(&mut self, node: TsFnParam, __ast_path: &mut AstKindPath) -> TsFnParam {
115274        <V as FoldAstPath>::fold_ts_fn_param(&mut **self, node, __ast_path)
115275    }
115276
115277    #[inline]
115278    fn fold_ts_fn_params(
115279        &mut self,
115280        node: Vec<TsFnParam>,
115281        __ast_path: &mut AstKindPath,
115282    ) -> Vec<TsFnParam> {
115283        <V as FoldAstPath>::fold_ts_fn_params(&mut **self, node, __ast_path)
115284    }
115285
115286    #[inline]
115287    fn fold_ts_fn_type(&mut self, node: TsFnType, __ast_path: &mut AstKindPath) -> TsFnType {
115288        <V as FoldAstPath>::fold_ts_fn_type(&mut **self, node, __ast_path)
115289    }
115290
115291    #[inline]
115292    fn fold_ts_getter_signature(
115293        &mut self,
115294        node: TsGetterSignature,
115295        __ast_path: &mut AstKindPath,
115296    ) -> TsGetterSignature {
115297        <V as FoldAstPath>::fold_ts_getter_signature(&mut **self, node, __ast_path)
115298    }
115299
115300    #[inline]
115301    fn fold_ts_import_call_options(
115302        &mut self,
115303        node: TsImportCallOptions,
115304        __ast_path: &mut AstKindPath,
115305    ) -> TsImportCallOptions {
115306        <V as FoldAstPath>::fold_ts_import_call_options(&mut **self, node, __ast_path)
115307    }
115308
115309    #[inline]
115310    fn fold_ts_import_equals_decl(
115311        &mut self,
115312        node: TsImportEqualsDecl,
115313        __ast_path: &mut AstKindPath,
115314    ) -> TsImportEqualsDecl {
115315        <V as FoldAstPath>::fold_ts_import_equals_decl(&mut **self, node, __ast_path)
115316    }
115317
115318    #[inline]
115319    fn fold_ts_import_type(
115320        &mut self,
115321        node: TsImportType,
115322        __ast_path: &mut AstKindPath,
115323    ) -> TsImportType {
115324        <V as FoldAstPath>::fold_ts_import_type(&mut **self, node, __ast_path)
115325    }
115326
115327    #[inline]
115328    fn fold_ts_index_signature(
115329        &mut self,
115330        node: TsIndexSignature,
115331        __ast_path: &mut AstKindPath,
115332    ) -> TsIndexSignature {
115333        <V as FoldAstPath>::fold_ts_index_signature(&mut **self, node, __ast_path)
115334    }
115335
115336    #[inline]
115337    fn fold_ts_indexed_access_type(
115338        &mut self,
115339        node: TsIndexedAccessType,
115340        __ast_path: &mut AstKindPath,
115341    ) -> TsIndexedAccessType {
115342        <V as FoldAstPath>::fold_ts_indexed_access_type(&mut **self, node, __ast_path)
115343    }
115344
115345    #[inline]
115346    fn fold_ts_infer_type(
115347        &mut self,
115348        node: TsInferType,
115349        __ast_path: &mut AstKindPath,
115350    ) -> TsInferType {
115351        <V as FoldAstPath>::fold_ts_infer_type(&mut **self, node, __ast_path)
115352    }
115353
115354    #[inline]
115355    fn fold_ts_instantiation(
115356        &mut self,
115357        node: TsInstantiation,
115358        __ast_path: &mut AstKindPath,
115359    ) -> TsInstantiation {
115360        <V as FoldAstPath>::fold_ts_instantiation(&mut **self, node, __ast_path)
115361    }
115362
115363    #[inline]
115364    fn fold_ts_interface_body(
115365        &mut self,
115366        node: TsInterfaceBody,
115367        __ast_path: &mut AstKindPath,
115368    ) -> TsInterfaceBody {
115369        <V as FoldAstPath>::fold_ts_interface_body(&mut **self, node, __ast_path)
115370    }
115371
115372    #[inline]
115373    fn fold_ts_interface_decl(
115374        &mut self,
115375        node: TsInterfaceDecl,
115376        __ast_path: &mut AstKindPath,
115377    ) -> TsInterfaceDecl {
115378        <V as FoldAstPath>::fold_ts_interface_decl(&mut **self, node, __ast_path)
115379    }
115380
115381    #[inline]
115382    fn fold_ts_intersection_type(
115383        &mut self,
115384        node: TsIntersectionType,
115385        __ast_path: &mut AstKindPath,
115386    ) -> TsIntersectionType {
115387        <V as FoldAstPath>::fold_ts_intersection_type(&mut **self, node, __ast_path)
115388    }
115389
115390    #[inline]
115391    fn fold_ts_keyword_type(
115392        &mut self,
115393        node: TsKeywordType,
115394        __ast_path: &mut AstKindPath,
115395    ) -> TsKeywordType {
115396        <V as FoldAstPath>::fold_ts_keyword_type(&mut **self, node, __ast_path)
115397    }
115398
115399    #[inline]
115400    fn fold_ts_keyword_type_kind(
115401        &mut self,
115402        node: TsKeywordTypeKind,
115403        __ast_path: &mut AstKindPath,
115404    ) -> TsKeywordTypeKind {
115405        <V as FoldAstPath>::fold_ts_keyword_type_kind(&mut **self, node, __ast_path)
115406    }
115407
115408    #[inline]
115409    fn fold_ts_lit(&mut self, node: TsLit, __ast_path: &mut AstKindPath) -> TsLit {
115410        <V as FoldAstPath>::fold_ts_lit(&mut **self, node, __ast_path)
115411    }
115412
115413    #[inline]
115414    fn fold_ts_lit_type(&mut self, node: TsLitType, __ast_path: &mut AstKindPath) -> TsLitType {
115415        <V as FoldAstPath>::fold_ts_lit_type(&mut **self, node, __ast_path)
115416    }
115417
115418    #[inline]
115419    fn fold_ts_mapped_type(
115420        &mut self,
115421        node: TsMappedType,
115422        __ast_path: &mut AstKindPath,
115423    ) -> TsMappedType {
115424        <V as FoldAstPath>::fold_ts_mapped_type(&mut **self, node, __ast_path)
115425    }
115426
115427    #[inline]
115428    fn fold_ts_method_signature(
115429        &mut self,
115430        node: TsMethodSignature,
115431        __ast_path: &mut AstKindPath,
115432    ) -> TsMethodSignature {
115433        <V as FoldAstPath>::fold_ts_method_signature(&mut **self, node, __ast_path)
115434    }
115435
115436    #[inline]
115437    fn fold_ts_module_block(
115438        &mut self,
115439        node: TsModuleBlock,
115440        __ast_path: &mut AstKindPath,
115441    ) -> TsModuleBlock {
115442        <V as FoldAstPath>::fold_ts_module_block(&mut **self, node, __ast_path)
115443    }
115444
115445    #[inline]
115446    fn fold_ts_module_decl(
115447        &mut self,
115448        node: TsModuleDecl,
115449        __ast_path: &mut AstKindPath,
115450    ) -> TsModuleDecl {
115451        <V as FoldAstPath>::fold_ts_module_decl(&mut **self, node, __ast_path)
115452    }
115453
115454    #[inline]
115455    fn fold_ts_module_name(
115456        &mut self,
115457        node: TsModuleName,
115458        __ast_path: &mut AstKindPath,
115459    ) -> TsModuleName {
115460        <V as FoldAstPath>::fold_ts_module_name(&mut **self, node, __ast_path)
115461    }
115462
115463    #[inline]
115464    fn fold_ts_module_ref(
115465        &mut self,
115466        node: TsModuleRef,
115467        __ast_path: &mut AstKindPath,
115468    ) -> TsModuleRef {
115469        <V as FoldAstPath>::fold_ts_module_ref(&mut **self, node, __ast_path)
115470    }
115471
115472    #[inline]
115473    fn fold_ts_namespace_body(
115474        &mut self,
115475        node: TsNamespaceBody,
115476        __ast_path: &mut AstKindPath,
115477    ) -> TsNamespaceBody {
115478        <V as FoldAstPath>::fold_ts_namespace_body(&mut **self, node, __ast_path)
115479    }
115480
115481    #[inline]
115482    fn fold_ts_namespace_decl(
115483        &mut self,
115484        node: TsNamespaceDecl,
115485        __ast_path: &mut AstKindPath,
115486    ) -> TsNamespaceDecl {
115487        <V as FoldAstPath>::fold_ts_namespace_decl(&mut **self, node, __ast_path)
115488    }
115489
115490    #[inline]
115491    fn fold_ts_namespace_export_decl(
115492        &mut self,
115493        node: TsNamespaceExportDecl,
115494        __ast_path: &mut AstKindPath,
115495    ) -> TsNamespaceExportDecl {
115496        <V as FoldAstPath>::fold_ts_namespace_export_decl(&mut **self, node, __ast_path)
115497    }
115498
115499    #[inline]
115500    fn fold_ts_non_null_expr(
115501        &mut self,
115502        node: TsNonNullExpr,
115503        __ast_path: &mut AstKindPath,
115504    ) -> TsNonNullExpr {
115505        <V as FoldAstPath>::fold_ts_non_null_expr(&mut **self, node, __ast_path)
115506    }
115507
115508    #[inline]
115509    fn fold_ts_optional_type(
115510        &mut self,
115511        node: TsOptionalType,
115512        __ast_path: &mut AstKindPath,
115513    ) -> TsOptionalType {
115514        <V as FoldAstPath>::fold_ts_optional_type(&mut **self, node, __ast_path)
115515    }
115516
115517    #[inline]
115518    fn fold_ts_param_prop(
115519        &mut self,
115520        node: TsParamProp,
115521        __ast_path: &mut AstKindPath,
115522    ) -> TsParamProp {
115523        <V as FoldAstPath>::fold_ts_param_prop(&mut **self, node, __ast_path)
115524    }
115525
115526    #[inline]
115527    fn fold_ts_param_prop_param(
115528        &mut self,
115529        node: TsParamPropParam,
115530        __ast_path: &mut AstKindPath,
115531    ) -> TsParamPropParam {
115532        <V as FoldAstPath>::fold_ts_param_prop_param(&mut **self, node, __ast_path)
115533    }
115534
115535    #[inline]
115536    fn fold_ts_parenthesized_type(
115537        &mut self,
115538        node: TsParenthesizedType,
115539        __ast_path: &mut AstKindPath,
115540    ) -> TsParenthesizedType {
115541        <V as FoldAstPath>::fold_ts_parenthesized_type(&mut **self, node, __ast_path)
115542    }
115543
115544    #[inline]
115545    fn fold_ts_property_signature(
115546        &mut self,
115547        node: TsPropertySignature,
115548        __ast_path: &mut AstKindPath,
115549    ) -> TsPropertySignature {
115550        <V as FoldAstPath>::fold_ts_property_signature(&mut **self, node, __ast_path)
115551    }
115552
115553    #[inline]
115554    fn fold_ts_qualified_name(
115555        &mut self,
115556        node: TsQualifiedName,
115557        __ast_path: &mut AstKindPath,
115558    ) -> TsQualifiedName {
115559        <V as FoldAstPath>::fold_ts_qualified_name(&mut **self, node, __ast_path)
115560    }
115561
115562    #[inline]
115563    fn fold_ts_rest_type(&mut self, node: TsRestType, __ast_path: &mut AstKindPath) -> TsRestType {
115564        <V as FoldAstPath>::fold_ts_rest_type(&mut **self, node, __ast_path)
115565    }
115566
115567    #[inline]
115568    fn fold_ts_satisfies_expr(
115569        &mut self,
115570        node: TsSatisfiesExpr,
115571        __ast_path: &mut AstKindPath,
115572    ) -> TsSatisfiesExpr {
115573        <V as FoldAstPath>::fold_ts_satisfies_expr(&mut **self, node, __ast_path)
115574    }
115575
115576    #[inline]
115577    fn fold_ts_setter_signature(
115578        &mut self,
115579        node: TsSetterSignature,
115580        __ast_path: &mut AstKindPath,
115581    ) -> TsSetterSignature {
115582        <V as FoldAstPath>::fold_ts_setter_signature(&mut **self, node, __ast_path)
115583    }
115584
115585    #[inline]
115586    fn fold_ts_this_type(&mut self, node: TsThisType, __ast_path: &mut AstKindPath) -> TsThisType {
115587        <V as FoldAstPath>::fold_ts_this_type(&mut **self, node, __ast_path)
115588    }
115589
115590    #[inline]
115591    fn fold_ts_this_type_or_ident(
115592        &mut self,
115593        node: TsThisTypeOrIdent,
115594        __ast_path: &mut AstKindPath,
115595    ) -> TsThisTypeOrIdent {
115596        <V as FoldAstPath>::fold_ts_this_type_or_ident(&mut **self, node, __ast_path)
115597    }
115598
115599    #[inline]
115600    fn fold_ts_tpl_lit_type(
115601        &mut self,
115602        node: TsTplLitType,
115603        __ast_path: &mut AstKindPath,
115604    ) -> TsTplLitType {
115605        <V as FoldAstPath>::fold_ts_tpl_lit_type(&mut **self, node, __ast_path)
115606    }
115607
115608    #[inline]
115609    fn fold_ts_tuple_element(
115610        &mut self,
115611        node: TsTupleElement,
115612        __ast_path: &mut AstKindPath,
115613    ) -> TsTupleElement {
115614        <V as FoldAstPath>::fold_ts_tuple_element(&mut **self, node, __ast_path)
115615    }
115616
115617    #[inline]
115618    fn fold_ts_tuple_elements(
115619        &mut self,
115620        node: Vec<TsTupleElement>,
115621        __ast_path: &mut AstKindPath,
115622    ) -> Vec<TsTupleElement> {
115623        <V as FoldAstPath>::fold_ts_tuple_elements(&mut **self, node, __ast_path)
115624    }
115625
115626    #[inline]
115627    fn fold_ts_tuple_type(
115628        &mut self,
115629        node: TsTupleType,
115630        __ast_path: &mut AstKindPath,
115631    ) -> TsTupleType {
115632        <V as FoldAstPath>::fold_ts_tuple_type(&mut **self, node, __ast_path)
115633    }
115634
115635    #[inline]
115636    fn fold_ts_type(&mut self, node: TsType, __ast_path: &mut AstKindPath) -> TsType {
115637        <V as FoldAstPath>::fold_ts_type(&mut **self, node, __ast_path)
115638    }
115639
115640    #[inline]
115641    fn fold_ts_type_alias_decl(
115642        &mut self,
115643        node: TsTypeAliasDecl,
115644        __ast_path: &mut AstKindPath,
115645    ) -> TsTypeAliasDecl {
115646        <V as FoldAstPath>::fold_ts_type_alias_decl(&mut **self, node, __ast_path)
115647    }
115648
115649    #[inline]
115650    fn fold_ts_type_ann(&mut self, node: TsTypeAnn, __ast_path: &mut AstKindPath) -> TsTypeAnn {
115651        <V as FoldAstPath>::fold_ts_type_ann(&mut **self, node, __ast_path)
115652    }
115653
115654    #[inline]
115655    fn fold_ts_type_assertion(
115656        &mut self,
115657        node: TsTypeAssertion,
115658        __ast_path: &mut AstKindPath,
115659    ) -> TsTypeAssertion {
115660        <V as FoldAstPath>::fold_ts_type_assertion(&mut **self, node, __ast_path)
115661    }
115662
115663    #[inline]
115664    fn fold_ts_type_element(
115665        &mut self,
115666        node: TsTypeElement,
115667        __ast_path: &mut AstKindPath,
115668    ) -> TsTypeElement {
115669        <V as FoldAstPath>::fold_ts_type_element(&mut **self, node, __ast_path)
115670    }
115671
115672    #[inline]
115673    fn fold_ts_type_elements(
115674        &mut self,
115675        node: Vec<TsTypeElement>,
115676        __ast_path: &mut AstKindPath,
115677    ) -> Vec<TsTypeElement> {
115678        <V as FoldAstPath>::fold_ts_type_elements(&mut **self, node, __ast_path)
115679    }
115680
115681    #[inline]
115682    fn fold_ts_type_lit(&mut self, node: TsTypeLit, __ast_path: &mut AstKindPath) -> TsTypeLit {
115683        <V as FoldAstPath>::fold_ts_type_lit(&mut **self, node, __ast_path)
115684    }
115685
115686    #[inline]
115687    fn fold_ts_type_operator(
115688        &mut self,
115689        node: TsTypeOperator,
115690        __ast_path: &mut AstKindPath,
115691    ) -> TsTypeOperator {
115692        <V as FoldAstPath>::fold_ts_type_operator(&mut **self, node, __ast_path)
115693    }
115694
115695    #[inline]
115696    fn fold_ts_type_operator_op(
115697        &mut self,
115698        node: TsTypeOperatorOp,
115699        __ast_path: &mut AstKindPath,
115700    ) -> TsTypeOperatorOp {
115701        <V as FoldAstPath>::fold_ts_type_operator_op(&mut **self, node, __ast_path)
115702    }
115703
115704    #[inline]
115705    fn fold_ts_type_param(
115706        &mut self,
115707        node: TsTypeParam,
115708        __ast_path: &mut AstKindPath,
115709    ) -> TsTypeParam {
115710        <V as FoldAstPath>::fold_ts_type_param(&mut **self, node, __ast_path)
115711    }
115712
115713    #[inline]
115714    fn fold_ts_type_param_decl(
115715        &mut self,
115716        node: TsTypeParamDecl,
115717        __ast_path: &mut AstKindPath,
115718    ) -> TsTypeParamDecl {
115719        <V as FoldAstPath>::fold_ts_type_param_decl(&mut **self, node, __ast_path)
115720    }
115721
115722    #[inline]
115723    fn fold_ts_type_param_instantiation(
115724        &mut self,
115725        node: TsTypeParamInstantiation,
115726        __ast_path: &mut AstKindPath,
115727    ) -> TsTypeParamInstantiation {
115728        <V as FoldAstPath>::fold_ts_type_param_instantiation(&mut **self, node, __ast_path)
115729    }
115730
115731    #[inline]
115732    fn fold_ts_type_params(
115733        &mut self,
115734        node: Vec<TsTypeParam>,
115735        __ast_path: &mut AstKindPath,
115736    ) -> Vec<TsTypeParam> {
115737        <V as FoldAstPath>::fold_ts_type_params(&mut **self, node, __ast_path)
115738    }
115739
115740    #[inline]
115741    fn fold_ts_type_predicate(
115742        &mut self,
115743        node: TsTypePredicate,
115744        __ast_path: &mut AstKindPath,
115745    ) -> TsTypePredicate {
115746        <V as FoldAstPath>::fold_ts_type_predicate(&mut **self, node, __ast_path)
115747    }
115748
115749    #[inline]
115750    fn fold_ts_type_query(
115751        &mut self,
115752        node: TsTypeQuery,
115753        __ast_path: &mut AstKindPath,
115754    ) -> TsTypeQuery {
115755        <V as FoldAstPath>::fold_ts_type_query(&mut **self, node, __ast_path)
115756    }
115757
115758    #[inline]
115759    fn fold_ts_type_query_expr(
115760        &mut self,
115761        node: TsTypeQueryExpr,
115762        __ast_path: &mut AstKindPath,
115763    ) -> TsTypeQueryExpr {
115764        <V as FoldAstPath>::fold_ts_type_query_expr(&mut **self, node, __ast_path)
115765    }
115766
115767    #[inline]
115768    fn fold_ts_type_ref(&mut self, node: TsTypeRef, __ast_path: &mut AstKindPath) -> TsTypeRef {
115769        <V as FoldAstPath>::fold_ts_type_ref(&mut **self, node, __ast_path)
115770    }
115771
115772    #[inline]
115773    fn fold_ts_types(
115774        &mut self,
115775        node: Vec<Box<TsType>>,
115776        __ast_path: &mut AstKindPath,
115777    ) -> Vec<Box<TsType>> {
115778        <V as FoldAstPath>::fold_ts_types(&mut **self, node, __ast_path)
115779    }
115780
115781    #[inline]
115782    fn fold_ts_union_or_intersection_type(
115783        &mut self,
115784        node: TsUnionOrIntersectionType,
115785        __ast_path: &mut AstKindPath,
115786    ) -> TsUnionOrIntersectionType {
115787        <V as FoldAstPath>::fold_ts_union_or_intersection_type(&mut **self, node, __ast_path)
115788    }
115789
115790    #[inline]
115791    fn fold_ts_union_type(
115792        &mut self,
115793        node: TsUnionType,
115794        __ast_path: &mut AstKindPath,
115795    ) -> TsUnionType {
115796        <V as FoldAstPath>::fold_ts_union_type(&mut **self, node, __ast_path)
115797    }
115798
115799    #[inline]
115800    fn fold_unary_expr(&mut self, node: UnaryExpr, __ast_path: &mut AstKindPath) -> UnaryExpr {
115801        <V as FoldAstPath>::fold_unary_expr(&mut **self, node, __ast_path)
115802    }
115803
115804    #[inline]
115805    fn fold_unary_op(&mut self, node: UnaryOp, __ast_path: &mut AstKindPath) -> UnaryOp {
115806        <V as FoldAstPath>::fold_unary_op(&mut **self, node, __ast_path)
115807    }
115808
115809    #[inline]
115810    fn fold_update_expr(&mut self, node: UpdateExpr, __ast_path: &mut AstKindPath) -> UpdateExpr {
115811        <V as FoldAstPath>::fold_update_expr(&mut **self, node, __ast_path)
115812    }
115813
115814    #[inline]
115815    fn fold_update_op(&mut self, node: UpdateOp, __ast_path: &mut AstKindPath) -> UpdateOp {
115816        <V as FoldAstPath>::fold_update_op(&mut **self, node, __ast_path)
115817    }
115818
115819    #[inline]
115820    fn fold_using_decl(&mut self, node: UsingDecl, __ast_path: &mut AstKindPath) -> UsingDecl {
115821        <V as FoldAstPath>::fold_using_decl(&mut **self, node, __ast_path)
115822    }
115823
115824    #[inline]
115825    fn fold_var_decl(&mut self, node: VarDecl, __ast_path: &mut AstKindPath) -> VarDecl {
115826        <V as FoldAstPath>::fold_var_decl(&mut **self, node, __ast_path)
115827    }
115828
115829    #[inline]
115830    fn fold_var_decl_kind(
115831        &mut self,
115832        node: VarDeclKind,
115833        __ast_path: &mut AstKindPath,
115834    ) -> VarDeclKind {
115835        <V as FoldAstPath>::fold_var_decl_kind(&mut **self, node, __ast_path)
115836    }
115837
115838    #[inline]
115839    fn fold_var_decl_or_expr(
115840        &mut self,
115841        node: VarDeclOrExpr,
115842        __ast_path: &mut AstKindPath,
115843    ) -> VarDeclOrExpr {
115844        <V as FoldAstPath>::fold_var_decl_or_expr(&mut **self, node, __ast_path)
115845    }
115846
115847    #[inline]
115848    fn fold_var_declarator(
115849        &mut self,
115850        node: VarDeclarator,
115851        __ast_path: &mut AstKindPath,
115852    ) -> VarDeclarator {
115853        <V as FoldAstPath>::fold_var_declarator(&mut **self, node, __ast_path)
115854    }
115855
115856    #[inline]
115857    fn fold_var_declarators(
115858        &mut self,
115859        node: Vec<VarDeclarator>,
115860        __ast_path: &mut AstKindPath,
115861    ) -> Vec<VarDeclarator> {
115862        <V as FoldAstPath>::fold_var_declarators(&mut **self, node, __ast_path)
115863    }
115864
115865    #[inline]
115866    fn fold_while_stmt(&mut self, node: WhileStmt, __ast_path: &mut AstKindPath) -> WhileStmt {
115867        <V as FoldAstPath>::fold_while_stmt(&mut **self, node, __ast_path)
115868    }
115869
115870    #[inline]
115871    fn fold_with_stmt(&mut self, node: WithStmt, __ast_path: &mut AstKindPath) -> WithStmt {
115872        <V as FoldAstPath>::fold_with_stmt(&mut **self, node, __ast_path)
115873    }
115874
115875    #[inline]
115876    fn fold_yield_expr(&mut self, node: YieldExpr, __ast_path: &mut AstKindPath) -> YieldExpr {
115877        <V as FoldAstPath>::fold_yield_expr(&mut **self, node, __ast_path)
115878    }
115879}
115880#[cfg(any(docsrs, feature = "path"))]
115881#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
115882impl<A, B> FoldAstPath for ::swc_visit::Either<A, B>
115883where
115884    A: FoldAstPath,
115885    B: FoldAstPath,
115886{
115887    #[inline]
115888    fn fold_accessibility(
115889        &mut self,
115890        node: Accessibility,
115891        __ast_path: &mut AstKindPath,
115892    ) -> Accessibility {
115893        match self {
115894            swc_visit::Either::Left(visitor) => {
115895                FoldAstPath::fold_accessibility(visitor, node, __ast_path)
115896            }
115897            swc_visit::Either::Right(visitor) => {
115898                FoldAstPath::fold_accessibility(visitor, node, __ast_path)
115899            }
115900        }
115901    }
115902
115903    #[inline]
115904    fn fold_array_lit(&mut self, node: ArrayLit, __ast_path: &mut AstKindPath) -> ArrayLit {
115905        match self {
115906            swc_visit::Either::Left(visitor) => {
115907                FoldAstPath::fold_array_lit(visitor, node, __ast_path)
115908            }
115909            swc_visit::Either::Right(visitor) => {
115910                FoldAstPath::fold_array_lit(visitor, node, __ast_path)
115911            }
115912        }
115913    }
115914
115915    #[inline]
115916    fn fold_array_pat(&mut self, node: ArrayPat, __ast_path: &mut AstKindPath) -> ArrayPat {
115917        match self {
115918            swc_visit::Either::Left(visitor) => {
115919                FoldAstPath::fold_array_pat(visitor, node, __ast_path)
115920            }
115921            swc_visit::Either::Right(visitor) => {
115922                FoldAstPath::fold_array_pat(visitor, node, __ast_path)
115923            }
115924        }
115925    }
115926
115927    #[inline]
115928    fn fold_arrow_expr(&mut self, node: ArrowExpr, __ast_path: &mut AstKindPath) -> ArrowExpr {
115929        match self {
115930            swc_visit::Either::Left(visitor) => {
115931                FoldAstPath::fold_arrow_expr(visitor, node, __ast_path)
115932            }
115933            swc_visit::Either::Right(visitor) => {
115934                FoldAstPath::fold_arrow_expr(visitor, node, __ast_path)
115935            }
115936        }
115937    }
115938
115939    #[inline]
115940    fn fold_assign_expr(&mut self, node: AssignExpr, __ast_path: &mut AstKindPath) -> AssignExpr {
115941        match self {
115942            swc_visit::Either::Left(visitor) => {
115943                FoldAstPath::fold_assign_expr(visitor, node, __ast_path)
115944            }
115945            swc_visit::Either::Right(visitor) => {
115946                FoldAstPath::fold_assign_expr(visitor, node, __ast_path)
115947            }
115948        }
115949    }
115950
115951    #[inline]
115952    fn fold_assign_op(&mut self, node: AssignOp, __ast_path: &mut AstKindPath) -> AssignOp {
115953        match self {
115954            swc_visit::Either::Left(visitor) => {
115955                FoldAstPath::fold_assign_op(visitor, node, __ast_path)
115956            }
115957            swc_visit::Either::Right(visitor) => {
115958                FoldAstPath::fold_assign_op(visitor, node, __ast_path)
115959            }
115960        }
115961    }
115962
115963    #[inline]
115964    fn fold_assign_pat(&mut self, node: AssignPat, __ast_path: &mut AstKindPath) -> AssignPat {
115965        match self {
115966            swc_visit::Either::Left(visitor) => {
115967                FoldAstPath::fold_assign_pat(visitor, node, __ast_path)
115968            }
115969            swc_visit::Either::Right(visitor) => {
115970                FoldAstPath::fold_assign_pat(visitor, node, __ast_path)
115971            }
115972        }
115973    }
115974
115975    #[inline]
115976    fn fold_assign_pat_prop(
115977        &mut self,
115978        node: AssignPatProp,
115979        __ast_path: &mut AstKindPath,
115980    ) -> AssignPatProp {
115981        match self {
115982            swc_visit::Either::Left(visitor) => {
115983                FoldAstPath::fold_assign_pat_prop(visitor, node, __ast_path)
115984            }
115985            swc_visit::Either::Right(visitor) => {
115986                FoldAstPath::fold_assign_pat_prop(visitor, node, __ast_path)
115987            }
115988        }
115989    }
115990
115991    #[inline]
115992    fn fold_assign_prop(&mut self, node: AssignProp, __ast_path: &mut AstKindPath) -> AssignProp {
115993        match self {
115994            swc_visit::Either::Left(visitor) => {
115995                FoldAstPath::fold_assign_prop(visitor, node, __ast_path)
115996            }
115997            swc_visit::Either::Right(visitor) => {
115998                FoldAstPath::fold_assign_prop(visitor, node, __ast_path)
115999            }
116000        }
116001    }
116002
116003    #[inline]
116004    fn fold_assign_target(
116005        &mut self,
116006        node: AssignTarget,
116007        __ast_path: &mut AstKindPath,
116008    ) -> AssignTarget {
116009        match self {
116010            swc_visit::Either::Left(visitor) => {
116011                FoldAstPath::fold_assign_target(visitor, node, __ast_path)
116012            }
116013            swc_visit::Either::Right(visitor) => {
116014                FoldAstPath::fold_assign_target(visitor, node, __ast_path)
116015            }
116016        }
116017    }
116018
116019    #[inline]
116020    fn fold_assign_target_pat(
116021        &mut self,
116022        node: AssignTargetPat,
116023        __ast_path: &mut AstKindPath,
116024    ) -> AssignTargetPat {
116025        match self {
116026            swc_visit::Either::Left(visitor) => {
116027                FoldAstPath::fold_assign_target_pat(visitor, node, __ast_path)
116028            }
116029            swc_visit::Either::Right(visitor) => {
116030                FoldAstPath::fold_assign_target_pat(visitor, node, __ast_path)
116031            }
116032        }
116033    }
116034
116035    #[inline]
116036    fn fold_atom(
116037        &mut self,
116038        node: swc_atoms::Atom,
116039        __ast_path: &mut AstKindPath,
116040    ) -> swc_atoms::Atom {
116041        match self {
116042            swc_visit::Either::Left(visitor) => FoldAstPath::fold_atom(visitor, node, __ast_path),
116043            swc_visit::Either::Right(visitor) => FoldAstPath::fold_atom(visitor, node, __ast_path),
116044        }
116045    }
116046
116047    #[inline]
116048    fn fold_auto_accessor(
116049        &mut self,
116050        node: AutoAccessor,
116051        __ast_path: &mut AstKindPath,
116052    ) -> AutoAccessor {
116053        match self {
116054            swc_visit::Either::Left(visitor) => {
116055                FoldAstPath::fold_auto_accessor(visitor, node, __ast_path)
116056            }
116057            swc_visit::Either::Right(visitor) => {
116058                FoldAstPath::fold_auto_accessor(visitor, node, __ast_path)
116059            }
116060        }
116061    }
116062
116063    #[inline]
116064    fn fold_await_expr(&mut self, node: AwaitExpr, __ast_path: &mut AstKindPath) -> AwaitExpr {
116065        match self {
116066            swc_visit::Either::Left(visitor) => {
116067                FoldAstPath::fold_await_expr(visitor, node, __ast_path)
116068            }
116069            swc_visit::Either::Right(visitor) => {
116070                FoldAstPath::fold_await_expr(visitor, node, __ast_path)
116071            }
116072        }
116073    }
116074
116075    #[inline]
116076    fn fold_big_int(&mut self, node: BigInt, __ast_path: &mut AstKindPath) -> BigInt {
116077        match self {
116078            swc_visit::Either::Left(visitor) => {
116079                FoldAstPath::fold_big_int(visitor, node, __ast_path)
116080            }
116081            swc_visit::Either::Right(visitor) => {
116082                FoldAstPath::fold_big_int(visitor, node, __ast_path)
116083            }
116084        }
116085    }
116086
116087    #[inline]
116088    fn fold_big_int_value(
116089        &mut self,
116090        node: BigIntValue,
116091        __ast_path: &mut AstKindPath,
116092    ) -> BigIntValue {
116093        match self {
116094            swc_visit::Either::Left(visitor) => {
116095                FoldAstPath::fold_big_int_value(visitor, node, __ast_path)
116096            }
116097            swc_visit::Either::Right(visitor) => {
116098                FoldAstPath::fold_big_int_value(visitor, node, __ast_path)
116099            }
116100        }
116101    }
116102
116103    #[inline]
116104    fn fold_bin_expr(&mut self, node: BinExpr, __ast_path: &mut AstKindPath) -> BinExpr {
116105        match self {
116106            swc_visit::Either::Left(visitor) => {
116107                FoldAstPath::fold_bin_expr(visitor, node, __ast_path)
116108            }
116109            swc_visit::Either::Right(visitor) => {
116110                FoldAstPath::fold_bin_expr(visitor, node, __ast_path)
116111            }
116112        }
116113    }
116114
116115    #[inline]
116116    fn fold_binary_op(&mut self, node: BinaryOp, __ast_path: &mut AstKindPath) -> BinaryOp {
116117        match self {
116118            swc_visit::Either::Left(visitor) => {
116119                FoldAstPath::fold_binary_op(visitor, node, __ast_path)
116120            }
116121            swc_visit::Either::Right(visitor) => {
116122                FoldAstPath::fold_binary_op(visitor, node, __ast_path)
116123            }
116124        }
116125    }
116126
116127    #[inline]
116128    fn fold_binding_ident(
116129        &mut self,
116130        node: BindingIdent,
116131        __ast_path: &mut AstKindPath,
116132    ) -> BindingIdent {
116133        match self {
116134            swc_visit::Either::Left(visitor) => {
116135                FoldAstPath::fold_binding_ident(visitor, node, __ast_path)
116136            }
116137            swc_visit::Either::Right(visitor) => {
116138                FoldAstPath::fold_binding_ident(visitor, node, __ast_path)
116139            }
116140        }
116141    }
116142
116143    #[inline]
116144    fn fold_block_stmt(&mut self, node: BlockStmt, __ast_path: &mut AstKindPath) -> BlockStmt {
116145        match self {
116146            swc_visit::Either::Left(visitor) => {
116147                FoldAstPath::fold_block_stmt(visitor, node, __ast_path)
116148            }
116149            swc_visit::Either::Right(visitor) => {
116150                FoldAstPath::fold_block_stmt(visitor, node, __ast_path)
116151            }
116152        }
116153    }
116154
116155    #[inline]
116156    fn fold_block_stmt_or_expr(
116157        &mut self,
116158        node: BlockStmtOrExpr,
116159        __ast_path: &mut AstKindPath,
116160    ) -> BlockStmtOrExpr {
116161        match self {
116162            swc_visit::Either::Left(visitor) => {
116163                FoldAstPath::fold_block_stmt_or_expr(visitor, node, __ast_path)
116164            }
116165            swc_visit::Either::Right(visitor) => {
116166                FoldAstPath::fold_block_stmt_or_expr(visitor, node, __ast_path)
116167            }
116168        }
116169    }
116170
116171    #[inline]
116172    fn fold_bool(&mut self, node: Bool, __ast_path: &mut AstKindPath) -> Bool {
116173        match self {
116174            swc_visit::Either::Left(visitor) => FoldAstPath::fold_bool(visitor, node, __ast_path),
116175            swc_visit::Either::Right(visitor) => FoldAstPath::fold_bool(visitor, node, __ast_path),
116176        }
116177    }
116178
116179    #[inline]
116180    fn fold_break_stmt(&mut self, node: BreakStmt, __ast_path: &mut AstKindPath) -> BreakStmt {
116181        match self {
116182            swc_visit::Either::Left(visitor) => {
116183                FoldAstPath::fold_break_stmt(visitor, node, __ast_path)
116184            }
116185            swc_visit::Either::Right(visitor) => {
116186                FoldAstPath::fold_break_stmt(visitor, node, __ast_path)
116187            }
116188        }
116189    }
116190
116191    #[inline]
116192    fn fold_call_expr(&mut self, node: CallExpr, __ast_path: &mut AstKindPath) -> CallExpr {
116193        match self {
116194            swc_visit::Either::Left(visitor) => {
116195                FoldAstPath::fold_call_expr(visitor, node, __ast_path)
116196            }
116197            swc_visit::Either::Right(visitor) => {
116198                FoldAstPath::fold_call_expr(visitor, node, __ast_path)
116199            }
116200        }
116201    }
116202
116203    #[inline]
116204    fn fold_callee(&mut self, node: Callee, __ast_path: &mut AstKindPath) -> Callee {
116205        match self {
116206            swc_visit::Either::Left(visitor) => FoldAstPath::fold_callee(visitor, node, __ast_path),
116207            swc_visit::Either::Right(visitor) => {
116208                FoldAstPath::fold_callee(visitor, node, __ast_path)
116209            }
116210        }
116211    }
116212
116213    #[inline]
116214    fn fold_catch_clause(
116215        &mut self,
116216        node: CatchClause,
116217        __ast_path: &mut AstKindPath,
116218    ) -> CatchClause {
116219        match self {
116220            swc_visit::Either::Left(visitor) => {
116221                FoldAstPath::fold_catch_clause(visitor, node, __ast_path)
116222            }
116223            swc_visit::Either::Right(visitor) => {
116224                FoldAstPath::fold_catch_clause(visitor, node, __ast_path)
116225            }
116226        }
116227    }
116228
116229    #[inline]
116230    fn fold_class(&mut self, node: Class, __ast_path: &mut AstKindPath) -> Class {
116231        match self {
116232            swc_visit::Either::Left(visitor) => FoldAstPath::fold_class(visitor, node, __ast_path),
116233            swc_visit::Either::Right(visitor) => FoldAstPath::fold_class(visitor, node, __ast_path),
116234        }
116235    }
116236
116237    #[inline]
116238    fn fold_class_decl(&mut self, node: ClassDecl, __ast_path: &mut AstKindPath) -> ClassDecl {
116239        match self {
116240            swc_visit::Either::Left(visitor) => {
116241                FoldAstPath::fold_class_decl(visitor, node, __ast_path)
116242            }
116243            swc_visit::Either::Right(visitor) => {
116244                FoldAstPath::fold_class_decl(visitor, node, __ast_path)
116245            }
116246        }
116247    }
116248
116249    #[inline]
116250    fn fold_class_expr(&mut self, node: ClassExpr, __ast_path: &mut AstKindPath) -> ClassExpr {
116251        match self {
116252            swc_visit::Either::Left(visitor) => {
116253                FoldAstPath::fold_class_expr(visitor, node, __ast_path)
116254            }
116255            swc_visit::Either::Right(visitor) => {
116256                FoldAstPath::fold_class_expr(visitor, node, __ast_path)
116257            }
116258        }
116259    }
116260
116261    #[inline]
116262    fn fold_class_member(
116263        &mut self,
116264        node: ClassMember,
116265        __ast_path: &mut AstKindPath,
116266    ) -> ClassMember {
116267        match self {
116268            swc_visit::Either::Left(visitor) => {
116269                FoldAstPath::fold_class_member(visitor, node, __ast_path)
116270            }
116271            swc_visit::Either::Right(visitor) => {
116272                FoldAstPath::fold_class_member(visitor, node, __ast_path)
116273            }
116274        }
116275    }
116276
116277    #[inline]
116278    fn fold_class_members(
116279        &mut self,
116280        node: Vec<ClassMember>,
116281        __ast_path: &mut AstKindPath,
116282    ) -> Vec<ClassMember> {
116283        match self {
116284            swc_visit::Either::Left(visitor) => {
116285                FoldAstPath::fold_class_members(visitor, node, __ast_path)
116286            }
116287            swc_visit::Either::Right(visitor) => {
116288                FoldAstPath::fold_class_members(visitor, node, __ast_path)
116289            }
116290        }
116291    }
116292
116293    #[inline]
116294    fn fold_class_method(
116295        &mut self,
116296        node: ClassMethod,
116297        __ast_path: &mut AstKindPath,
116298    ) -> ClassMethod {
116299        match self {
116300            swc_visit::Either::Left(visitor) => {
116301                FoldAstPath::fold_class_method(visitor, node, __ast_path)
116302            }
116303            swc_visit::Either::Right(visitor) => {
116304                FoldAstPath::fold_class_method(visitor, node, __ast_path)
116305            }
116306        }
116307    }
116308
116309    #[inline]
116310    fn fold_class_prop(&mut self, node: ClassProp, __ast_path: &mut AstKindPath) -> ClassProp {
116311        match self {
116312            swc_visit::Either::Left(visitor) => {
116313                FoldAstPath::fold_class_prop(visitor, node, __ast_path)
116314            }
116315            swc_visit::Either::Right(visitor) => {
116316                FoldAstPath::fold_class_prop(visitor, node, __ast_path)
116317            }
116318        }
116319    }
116320
116321    #[inline]
116322    fn fold_computed_prop_name(
116323        &mut self,
116324        node: ComputedPropName,
116325        __ast_path: &mut AstKindPath,
116326    ) -> ComputedPropName {
116327        match self {
116328            swc_visit::Either::Left(visitor) => {
116329                FoldAstPath::fold_computed_prop_name(visitor, node, __ast_path)
116330            }
116331            swc_visit::Either::Right(visitor) => {
116332                FoldAstPath::fold_computed_prop_name(visitor, node, __ast_path)
116333            }
116334        }
116335    }
116336
116337    #[inline]
116338    fn fold_cond_expr(&mut self, node: CondExpr, __ast_path: &mut AstKindPath) -> CondExpr {
116339        match self {
116340            swc_visit::Either::Left(visitor) => {
116341                FoldAstPath::fold_cond_expr(visitor, node, __ast_path)
116342            }
116343            swc_visit::Either::Right(visitor) => {
116344                FoldAstPath::fold_cond_expr(visitor, node, __ast_path)
116345            }
116346        }
116347    }
116348
116349    #[inline]
116350    fn fold_constructor(&mut self, node: Constructor, __ast_path: &mut AstKindPath) -> Constructor {
116351        match self {
116352            swc_visit::Either::Left(visitor) => {
116353                FoldAstPath::fold_constructor(visitor, node, __ast_path)
116354            }
116355            swc_visit::Either::Right(visitor) => {
116356                FoldAstPath::fold_constructor(visitor, node, __ast_path)
116357            }
116358        }
116359    }
116360
116361    #[inline]
116362    fn fold_continue_stmt(
116363        &mut self,
116364        node: ContinueStmt,
116365        __ast_path: &mut AstKindPath,
116366    ) -> ContinueStmt {
116367        match self {
116368            swc_visit::Either::Left(visitor) => {
116369                FoldAstPath::fold_continue_stmt(visitor, node, __ast_path)
116370            }
116371            swc_visit::Either::Right(visitor) => {
116372                FoldAstPath::fold_continue_stmt(visitor, node, __ast_path)
116373            }
116374        }
116375    }
116376
116377    #[inline]
116378    fn fold_debugger_stmt(
116379        &mut self,
116380        node: DebuggerStmt,
116381        __ast_path: &mut AstKindPath,
116382    ) -> DebuggerStmt {
116383        match self {
116384            swc_visit::Either::Left(visitor) => {
116385                FoldAstPath::fold_debugger_stmt(visitor, node, __ast_path)
116386            }
116387            swc_visit::Either::Right(visitor) => {
116388                FoldAstPath::fold_debugger_stmt(visitor, node, __ast_path)
116389            }
116390        }
116391    }
116392
116393    #[inline]
116394    fn fold_decl(&mut self, node: Decl, __ast_path: &mut AstKindPath) -> Decl {
116395        match self {
116396            swc_visit::Either::Left(visitor) => FoldAstPath::fold_decl(visitor, node, __ast_path),
116397            swc_visit::Either::Right(visitor) => FoldAstPath::fold_decl(visitor, node, __ast_path),
116398        }
116399    }
116400
116401    #[inline]
116402    fn fold_decorator(&mut self, node: Decorator, __ast_path: &mut AstKindPath) -> Decorator {
116403        match self {
116404            swc_visit::Either::Left(visitor) => {
116405                FoldAstPath::fold_decorator(visitor, node, __ast_path)
116406            }
116407            swc_visit::Either::Right(visitor) => {
116408                FoldAstPath::fold_decorator(visitor, node, __ast_path)
116409            }
116410        }
116411    }
116412
116413    #[inline]
116414    fn fold_decorators(
116415        &mut self,
116416        node: Vec<Decorator>,
116417        __ast_path: &mut AstKindPath,
116418    ) -> Vec<Decorator> {
116419        match self {
116420            swc_visit::Either::Left(visitor) => {
116421                FoldAstPath::fold_decorators(visitor, node, __ast_path)
116422            }
116423            swc_visit::Either::Right(visitor) => {
116424                FoldAstPath::fold_decorators(visitor, node, __ast_path)
116425            }
116426        }
116427    }
116428
116429    #[inline]
116430    fn fold_default_decl(
116431        &mut self,
116432        node: DefaultDecl,
116433        __ast_path: &mut AstKindPath,
116434    ) -> DefaultDecl {
116435        match self {
116436            swc_visit::Either::Left(visitor) => {
116437                FoldAstPath::fold_default_decl(visitor, node, __ast_path)
116438            }
116439            swc_visit::Either::Right(visitor) => {
116440                FoldAstPath::fold_default_decl(visitor, node, __ast_path)
116441            }
116442        }
116443    }
116444
116445    #[inline]
116446    fn fold_do_while_stmt(
116447        &mut self,
116448        node: DoWhileStmt,
116449        __ast_path: &mut AstKindPath,
116450    ) -> DoWhileStmt {
116451        match self {
116452            swc_visit::Either::Left(visitor) => {
116453                FoldAstPath::fold_do_while_stmt(visitor, node, __ast_path)
116454            }
116455            swc_visit::Either::Right(visitor) => {
116456                FoldAstPath::fold_do_while_stmt(visitor, node, __ast_path)
116457            }
116458        }
116459    }
116460
116461    #[inline]
116462    fn fold_empty_stmt(&mut self, node: EmptyStmt, __ast_path: &mut AstKindPath) -> EmptyStmt {
116463        match self {
116464            swc_visit::Either::Left(visitor) => {
116465                FoldAstPath::fold_empty_stmt(visitor, node, __ast_path)
116466            }
116467            swc_visit::Either::Right(visitor) => {
116468                FoldAstPath::fold_empty_stmt(visitor, node, __ast_path)
116469            }
116470        }
116471    }
116472
116473    #[inline]
116474    fn fold_export_all(&mut self, node: ExportAll, __ast_path: &mut AstKindPath) -> ExportAll {
116475        match self {
116476            swc_visit::Either::Left(visitor) => {
116477                FoldAstPath::fold_export_all(visitor, node, __ast_path)
116478            }
116479            swc_visit::Either::Right(visitor) => {
116480                FoldAstPath::fold_export_all(visitor, node, __ast_path)
116481            }
116482        }
116483    }
116484
116485    #[inline]
116486    fn fold_export_decl(&mut self, node: ExportDecl, __ast_path: &mut AstKindPath) -> ExportDecl {
116487        match self {
116488            swc_visit::Either::Left(visitor) => {
116489                FoldAstPath::fold_export_decl(visitor, node, __ast_path)
116490            }
116491            swc_visit::Either::Right(visitor) => {
116492                FoldAstPath::fold_export_decl(visitor, node, __ast_path)
116493            }
116494        }
116495    }
116496
116497    #[inline]
116498    fn fold_export_default_decl(
116499        &mut self,
116500        node: ExportDefaultDecl,
116501        __ast_path: &mut AstKindPath,
116502    ) -> ExportDefaultDecl {
116503        match self {
116504            swc_visit::Either::Left(visitor) => {
116505                FoldAstPath::fold_export_default_decl(visitor, node, __ast_path)
116506            }
116507            swc_visit::Either::Right(visitor) => {
116508                FoldAstPath::fold_export_default_decl(visitor, node, __ast_path)
116509            }
116510        }
116511    }
116512
116513    #[inline]
116514    fn fold_export_default_expr(
116515        &mut self,
116516        node: ExportDefaultExpr,
116517        __ast_path: &mut AstKindPath,
116518    ) -> ExportDefaultExpr {
116519        match self {
116520            swc_visit::Either::Left(visitor) => {
116521                FoldAstPath::fold_export_default_expr(visitor, node, __ast_path)
116522            }
116523            swc_visit::Either::Right(visitor) => {
116524                FoldAstPath::fold_export_default_expr(visitor, node, __ast_path)
116525            }
116526        }
116527    }
116528
116529    #[inline]
116530    fn fold_export_default_specifier(
116531        &mut self,
116532        node: ExportDefaultSpecifier,
116533        __ast_path: &mut AstKindPath,
116534    ) -> ExportDefaultSpecifier {
116535        match self {
116536            swc_visit::Either::Left(visitor) => {
116537                FoldAstPath::fold_export_default_specifier(visitor, node, __ast_path)
116538            }
116539            swc_visit::Either::Right(visitor) => {
116540                FoldAstPath::fold_export_default_specifier(visitor, node, __ast_path)
116541            }
116542        }
116543    }
116544
116545    #[inline]
116546    fn fold_export_named_specifier(
116547        &mut self,
116548        node: ExportNamedSpecifier,
116549        __ast_path: &mut AstKindPath,
116550    ) -> ExportNamedSpecifier {
116551        match self {
116552            swc_visit::Either::Left(visitor) => {
116553                FoldAstPath::fold_export_named_specifier(visitor, node, __ast_path)
116554            }
116555            swc_visit::Either::Right(visitor) => {
116556                FoldAstPath::fold_export_named_specifier(visitor, node, __ast_path)
116557            }
116558        }
116559    }
116560
116561    #[inline]
116562    fn fold_export_namespace_specifier(
116563        &mut self,
116564        node: ExportNamespaceSpecifier,
116565        __ast_path: &mut AstKindPath,
116566    ) -> ExportNamespaceSpecifier {
116567        match self {
116568            swc_visit::Either::Left(visitor) => {
116569                FoldAstPath::fold_export_namespace_specifier(visitor, node, __ast_path)
116570            }
116571            swc_visit::Either::Right(visitor) => {
116572                FoldAstPath::fold_export_namespace_specifier(visitor, node, __ast_path)
116573            }
116574        }
116575    }
116576
116577    #[inline]
116578    fn fold_export_specifier(
116579        &mut self,
116580        node: ExportSpecifier,
116581        __ast_path: &mut AstKindPath,
116582    ) -> ExportSpecifier {
116583        match self {
116584            swc_visit::Either::Left(visitor) => {
116585                FoldAstPath::fold_export_specifier(visitor, node, __ast_path)
116586            }
116587            swc_visit::Either::Right(visitor) => {
116588                FoldAstPath::fold_export_specifier(visitor, node, __ast_path)
116589            }
116590        }
116591    }
116592
116593    #[inline]
116594    fn fold_export_specifiers(
116595        &mut self,
116596        node: Vec<ExportSpecifier>,
116597        __ast_path: &mut AstKindPath,
116598    ) -> Vec<ExportSpecifier> {
116599        match self {
116600            swc_visit::Either::Left(visitor) => {
116601                FoldAstPath::fold_export_specifiers(visitor, node, __ast_path)
116602            }
116603            swc_visit::Either::Right(visitor) => {
116604                FoldAstPath::fold_export_specifiers(visitor, node, __ast_path)
116605            }
116606        }
116607    }
116608
116609    #[inline]
116610    fn fold_expr(&mut self, node: Expr, __ast_path: &mut AstKindPath) -> Expr {
116611        match self {
116612            swc_visit::Either::Left(visitor) => FoldAstPath::fold_expr(visitor, node, __ast_path),
116613            swc_visit::Either::Right(visitor) => FoldAstPath::fold_expr(visitor, node, __ast_path),
116614        }
116615    }
116616
116617    #[inline]
116618    fn fold_expr_or_spread(
116619        &mut self,
116620        node: ExprOrSpread,
116621        __ast_path: &mut AstKindPath,
116622    ) -> ExprOrSpread {
116623        match self {
116624            swc_visit::Either::Left(visitor) => {
116625                FoldAstPath::fold_expr_or_spread(visitor, node, __ast_path)
116626            }
116627            swc_visit::Either::Right(visitor) => {
116628                FoldAstPath::fold_expr_or_spread(visitor, node, __ast_path)
116629            }
116630        }
116631    }
116632
116633    #[inline]
116634    fn fold_expr_or_spreads(
116635        &mut self,
116636        node: Vec<ExprOrSpread>,
116637        __ast_path: &mut AstKindPath,
116638    ) -> Vec<ExprOrSpread> {
116639        match self {
116640            swc_visit::Either::Left(visitor) => {
116641                FoldAstPath::fold_expr_or_spreads(visitor, node, __ast_path)
116642            }
116643            swc_visit::Either::Right(visitor) => {
116644                FoldAstPath::fold_expr_or_spreads(visitor, node, __ast_path)
116645            }
116646        }
116647    }
116648
116649    #[inline]
116650    fn fold_expr_stmt(&mut self, node: ExprStmt, __ast_path: &mut AstKindPath) -> ExprStmt {
116651        match self {
116652            swc_visit::Either::Left(visitor) => {
116653                FoldAstPath::fold_expr_stmt(visitor, node, __ast_path)
116654            }
116655            swc_visit::Either::Right(visitor) => {
116656                FoldAstPath::fold_expr_stmt(visitor, node, __ast_path)
116657            }
116658        }
116659    }
116660
116661    #[inline]
116662    fn fold_exprs(&mut self, node: Vec<Box<Expr>>, __ast_path: &mut AstKindPath) -> Vec<Box<Expr>> {
116663        match self {
116664            swc_visit::Either::Left(visitor) => FoldAstPath::fold_exprs(visitor, node, __ast_path),
116665            swc_visit::Either::Right(visitor) => FoldAstPath::fold_exprs(visitor, node, __ast_path),
116666        }
116667    }
116668
116669    #[inline]
116670    fn fold_fn_decl(&mut self, node: FnDecl, __ast_path: &mut AstKindPath) -> FnDecl {
116671        match self {
116672            swc_visit::Either::Left(visitor) => {
116673                FoldAstPath::fold_fn_decl(visitor, node, __ast_path)
116674            }
116675            swc_visit::Either::Right(visitor) => {
116676                FoldAstPath::fold_fn_decl(visitor, node, __ast_path)
116677            }
116678        }
116679    }
116680
116681    #[inline]
116682    fn fold_fn_expr(&mut self, node: FnExpr, __ast_path: &mut AstKindPath) -> FnExpr {
116683        match self {
116684            swc_visit::Either::Left(visitor) => {
116685                FoldAstPath::fold_fn_expr(visitor, node, __ast_path)
116686            }
116687            swc_visit::Either::Right(visitor) => {
116688                FoldAstPath::fold_fn_expr(visitor, node, __ast_path)
116689            }
116690        }
116691    }
116692
116693    #[inline]
116694    fn fold_for_head(&mut self, node: ForHead, __ast_path: &mut AstKindPath) -> ForHead {
116695        match self {
116696            swc_visit::Either::Left(visitor) => {
116697                FoldAstPath::fold_for_head(visitor, node, __ast_path)
116698            }
116699            swc_visit::Either::Right(visitor) => {
116700                FoldAstPath::fold_for_head(visitor, node, __ast_path)
116701            }
116702        }
116703    }
116704
116705    #[inline]
116706    fn fold_for_in_stmt(&mut self, node: ForInStmt, __ast_path: &mut AstKindPath) -> ForInStmt {
116707        match self {
116708            swc_visit::Either::Left(visitor) => {
116709                FoldAstPath::fold_for_in_stmt(visitor, node, __ast_path)
116710            }
116711            swc_visit::Either::Right(visitor) => {
116712                FoldAstPath::fold_for_in_stmt(visitor, node, __ast_path)
116713            }
116714        }
116715    }
116716
116717    #[inline]
116718    fn fold_for_of_stmt(&mut self, node: ForOfStmt, __ast_path: &mut AstKindPath) -> ForOfStmt {
116719        match self {
116720            swc_visit::Either::Left(visitor) => {
116721                FoldAstPath::fold_for_of_stmt(visitor, node, __ast_path)
116722            }
116723            swc_visit::Either::Right(visitor) => {
116724                FoldAstPath::fold_for_of_stmt(visitor, node, __ast_path)
116725            }
116726        }
116727    }
116728
116729    #[inline]
116730    fn fold_for_stmt(&mut self, node: ForStmt, __ast_path: &mut AstKindPath) -> ForStmt {
116731        match self {
116732            swc_visit::Either::Left(visitor) => {
116733                FoldAstPath::fold_for_stmt(visitor, node, __ast_path)
116734            }
116735            swc_visit::Either::Right(visitor) => {
116736                FoldAstPath::fold_for_stmt(visitor, node, __ast_path)
116737            }
116738        }
116739    }
116740
116741    #[inline]
116742    fn fold_function(&mut self, node: Function, __ast_path: &mut AstKindPath) -> Function {
116743        match self {
116744            swc_visit::Either::Left(visitor) => {
116745                FoldAstPath::fold_function(visitor, node, __ast_path)
116746            }
116747            swc_visit::Either::Right(visitor) => {
116748                FoldAstPath::fold_function(visitor, node, __ast_path)
116749            }
116750        }
116751    }
116752
116753    #[inline]
116754    fn fold_getter_prop(&mut self, node: GetterProp, __ast_path: &mut AstKindPath) -> GetterProp {
116755        match self {
116756            swc_visit::Either::Left(visitor) => {
116757                FoldAstPath::fold_getter_prop(visitor, node, __ast_path)
116758            }
116759            swc_visit::Either::Right(visitor) => {
116760                FoldAstPath::fold_getter_prop(visitor, node, __ast_path)
116761            }
116762        }
116763    }
116764
116765    #[inline]
116766    fn fold_ident(&mut self, node: Ident, __ast_path: &mut AstKindPath) -> Ident {
116767        match self {
116768            swc_visit::Either::Left(visitor) => FoldAstPath::fold_ident(visitor, node, __ast_path),
116769            swc_visit::Either::Right(visitor) => FoldAstPath::fold_ident(visitor, node, __ast_path),
116770        }
116771    }
116772
116773    #[inline]
116774    fn fold_ident_name(&mut self, node: IdentName, __ast_path: &mut AstKindPath) -> IdentName {
116775        match self {
116776            swc_visit::Either::Left(visitor) => {
116777                FoldAstPath::fold_ident_name(visitor, node, __ast_path)
116778            }
116779            swc_visit::Either::Right(visitor) => {
116780                FoldAstPath::fold_ident_name(visitor, node, __ast_path)
116781            }
116782        }
116783    }
116784
116785    #[inline]
116786    fn fold_if_stmt(&mut self, node: IfStmt, __ast_path: &mut AstKindPath) -> IfStmt {
116787        match self {
116788            swc_visit::Either::Left(visitor) => {
116789                FoldAstPath::fold_if_stmt(visitor, node, __ast_path)
116790            }
116791            swc_visit::Either::Right(visitor) => {
116792                FoldAstPath::fold_if_stmt(visitor, node, __ast_path)
116793            }
116794        }
116795    }
116796
116797    #[inline]
116798    fn fold_import(&mut self, node: Import, __ast_path: &mut AstKindPath) -> Import {
116799        match self {
116800            swc_visit::Either::Left(visitor) => FoldAstPath::fold_import(visitor, node, __ast_path),
116801            swc_visit::Either::Right(visitor) => {
116802                FoldAstPath::fold_import(visitor, node, __ast_path)
116803            }
116804        }
116805    }
116806
116807    #[inline]
116808    fn fold_import_decl(&mut self, node: ImportDecl, __ast_path: &mut AstKindPath) -> ImportDecl {
116809        match self {
116810            swc_visit::Either::Left(visitor) => {
116811                FoldAstPath::fold_import_decl(visitor, node, __ast_path)
116812            }
116813            swc_visit::Either::Right(visitor) => {
116814                FoldAstPath::fold_import_decl(visitor, node, __ast_path)
116815            }
116816        }
116817    }
116818
116819    #[inline]
116820    fn fold_import_default_specifier(
116821        &mut self,
116822        node: ImportDefaultSpecifier,
116823        __ast_path: &mut AstKindPath,
116824    ) -> ImportDefaultSpecifier {
116825        match self {
116826            swc_visit::Either::Left(visitor) => {
116827                FoldAstPath::fold_import_default_specifier(visitor, node, __ast_path)
116828            }
116829            swc_visit::Either::Right(visitor) => {
116830                FoldAstPath::fold_import_default_specifier(visitor, node, __ast_path)
116831            }
116832        }
116833    }
116834
116835    #[inline]
116836    fn fold_import_named_specifier(
116837        &mut self,
116838        node: ImportNamedSpecifier,
116839        __ast_path: &mut AstKindPath,
116840    ) -> ImportNamedSpecifier {
116841        match self {
116842            swc_visit::Either::Left(visitor) => {
116843                FoldAstPath::fold_import_named_specifier(visitor, node, __ast_path)
116844            }
116845            swc_visit::Either::Right(visitor) => {
116846                FoldAstPath::fold_import_named_specifier(visitor, node, __ast_path)
116847            }
116848        }
116849    }
116850
116851    #[inline]
116852    fn fold_import_phase(
116853        &mut self,
116854        node: ImportPhase,
116855        __ast_path: &mut AstKindPath,
116856    ) -> ImportPhase {
116857        match self {
116858            swc_visit::Either::Left(visitor) => {
116859                FoldAstPath::fold_import_phase(visitor, node, __ast_path)
116860            }
116861            swc_visit::Either::Right(visitor) => {
116862                FoldAstPath::fold_import_phase(visitor, node, __ast_path)
116863            }
116864        }
116865    }
116866
116867    #[inline]
116868    fn fold_import_specifier(
116869        &mut self,
116870        node: ImportSpecifier,
116871        __ast_path: &mut AstKindPath,
116872    ) -> ImportSpecifier {
116873        match self {
116874            swc_visit::Either::Left(visitor) => {
116875                FoldAstPath::fold_import_specifier(visitor, node, __ast_path)
116876            }
116877            swc_visit::Either::Right(visitor) => {
116878                FoldAstPath::fold_import_specifier(visitor, node, __ast_path)
116879            }
116880        }
116881    }
116882
116883    #[inline]
116884    fn fold_import_specifiers(
116885        &mut self,
116886        node: Vec<ImportSpecifier>,
116887        __ast_path: &mut AstKindPath,
116888    ) -> Vec<ImportSpecifier> {
116889        match self {
116890            swc_visit::Either::Left(visitor) => {
116891                FoldAstPath::fold_import_specifiers(visitor, node, __ast_path)
116892            }
116893            swc_visit::Either::Right(visitor) => {
116894                FoldAstPath::fold_import_specifiers(visitor, node, __ast_path)
116895            }
116896        }
116897    }
116898
116899    #[inline]
116900    fn fold_import_star_as_specifier(
116901        &mut self,
116902        node: ImportStarAsSpecifier,
116903        __ast_path: &mut AstKindPath,
116904    ) -> ImportStarAsSpecifier {
116905        match self {
116906            swc_visit::Either::Left(visitor) => {
116907                FoldAstPath::fold_import_star_as_specifier(visitor, node, __ast_path)
116908            }
116909            swc_visit::Either::Right(visitor) => {
116910                FoldAstPath::fold_import_star_as_specifier(visitor, node, __ast_path)
116911            }
116912        }
116913    }
116914
116915    #[inline]
116916    fn fold_import_with(&mut self, node: ImportWith, __ast_path: &mut AstKindPath) -> ImportWith {
116917        match self {
116918            swc_visit::Either::Left(visitor) => {
116919                FoldAstPath::fold_import_with(visitor, node, __ast_path)
116920            }
116921            swc_visit::Either::Right(visitor) => {
116922                FoldAstPath::fold_import_with(visitor, node, __ast_path)
116923            }
116924        }
116925    }
116926
116927    #[inline]
116928    fn fold_import_with_item(
116929        &mut self,
116930        node: ImportWithItem,
116931        __ast_path: &mut AstKindPath,
116932    ) -> ImportWithItem {
116933        match self {
116934            swc_visit::Either::Left(visitor) => {
116935                FoldAstPath::fold_import_with_item(visitor, node, __ast_path)
116936            }
116937            swc_visit::Either::Right(visitor) => {
116938                FoldAstPath::fold_import_with_item(visitor, node, __ast_path)
116939            }
116940        }
116941    }
116942
116943    #[inline]
116944    fn fold_import_with_items(
116945        &mut self,
116946        node: Vec<ImportWithItem>,
116947        __ast_path: &mut AstKindPath,
116948    ) -> Vec<ImportWithItem> {
116949        match self {
116950            swc_visit::Either::Left(visitor) => {
116951                FoldAstPath::fold_import_with_items(visitor, node, __ast_path)
116952            }
116953            swc_visit::Either::Right(visitor) => {
116954                FoldAstPath::fold_import_with_items(visitor, node, __ast_path)
116955            }
116956        }
116957    }
116958
116959    #[inline]
116960    fn fold_invalid(&mut self, node: Invalid, __ast_path: &mut AstKindPath) -> Invalid {
116961        match self {
116962            swc_visit::Either::Left(visitor) => {
116963                FoldAstPath::fold_invalid(visitor, node, __ast_path)
116964            }
116965            swc_visit::Either::Right(visitor) => {
116966                FoldAstPath::fold_invalid(visitor, node, __ast_path)
116967            }
116968        }
116969    }
116970
116971    #[inline]
116972    fn fold_jsx_attr(&mut self, node: JSXAttr, __ast_path: &mut AstKindPath) -> JSXAttr {
116973        match self {
116974            swc_visit::Either::Left(visitor) => {
116975                FoldAstPath::fold_jsx_attr(visitor, node, __ast_path)
116976            }
116977            swc_visit::Either::Right(visitor) => {
116978                FoldAstPath::fold_jsx_attr(visitor, node, __ast_path)
116979            }
116980        }
116981    }
116982
116983    #[inline]
116984    fn fold_jsx_attr_name(
116985        &mut self,
116986        node: JSXAttrName,
116987        __ast_path: &mut AstKindPath,
116988    ) -> JSXAttrName {
116989        match self {
116990            swc_visit::Either::Left(visitor) => {
116991                FoldAstPath::fold_jsx_attr_name(visitor, node, __ast_path)
116992            }
116993            swc_visit::Either::Right(visitor) => {
116994                FoldAstPath::fold_jsx_attr_name(visitor, node, __ast_path)
116995            }
116996        }
116997    }
116998
116999    #[inline]
117000    fn fold_jsx_attr_or_spread(
117001        &mut self,
117002        node: JSXAttrOrSpread,
117003        __ast_path: &mut AstKindPath,
117004    ) -> JSXAttrOrSpread {
117005        match self {
117006            swc_visit::Either::Left(visitor) => {
117007                FoldAstPath::fold_jsx_attr_or_spread(visitor, node, __ast_path)
117008            }
117009            swc_visit::Either::Right(visitor) => {
117010                FoldAstPath::fold_jsx_attr_or_spread(visitor, node, __ast_path)
117011            }
117012        }
117013    }
117014
117015    #[inline]
117016    fn fold_jsx_attr_or_spreads(
117017        &mut self,
117018        node: Vec<JSXAttrOrSpread>,
117019        __ast_path: &mut AstKindPath,
117020    ) -> Vec<JSXAttrOrSpread> {
117021        match self {
117022            swc_visit::Either::Left(visitor) => {
117023                FoldAstPath::fold_jsx_attr_or_spreads(visitor, node, __ast_path)
117024            }
117025            swc_visit::Either::Right(visitor) => {
117026                FoldAstPath::fold_jsx_attr_or_spreads(visitor, node, __ast_path)
117027            }
117028        }
117029    }
117030
117031    #[inline]
117032    fn fold_jsx_attr_value(
117033        &mut self,
117034        node: JSXAttrValue,
117035        __ast_path: &mut AstKindPath,
117036    ) -> JSXAttrValue {
117037        match self {
117038            swc_visit::Either::Left(visitor) => {
117039                FoldAstPath::fold_jsx_attr_value(visitor, node, __ast_path)
117040            }
117041            swc_visit::Either::Right(visitor) => {
117042                FoldAstPath::fold_jsx_attr_value(visitor, node, __ast_path)
117043            }
117044        }
117045    }
117046
117047    #[inline]
117048    fn fold_jsx_closing_element(
117049        &mut self,
117050        node: JSXClosingElement,
117051        __ast_path: &mut AstKindPath,
117052    ) -> JSXClosingElement {
117053        match self {
117054            swc_visit::Either::Left(visitor) => {
117055                FoldAstPath::fold_jsx_closing_element(visitor, node, __ast_path)
117056            }
117057            swc_visit::Either::Right(visitor) => {
117058                FoldAstPath::fold_jsx_closing_element(visitor, node, __ast_path)
117059            }
117060        }
117061    }
117062
117063    #[inline]
117064    fn fold_jsx_closing_fragment(
117065        &mut self,
117066        node: JSXClosingFragment,
117067        __ast_path: &mut AstKindPath,
117068    ) -> JSXClosingFragment {
117069        match self {
117070            swc_visit::Either::Left(visitor) => {
117071                FoldAstPath::fold_jsx_closing_fragment(visitor, node, __ast_path)
117072            }
117073            swc_visit::Either::Right(visitor) => {
117074                FoldAstPath::fold_jsx_closing_fragment(visitor, node, __ast_path)
117075            }
117076        }
117077    }
117078
117079    #[inline]
117080    fn fold_jsx_element(&mut self, node: JSXElement, __ast_path: &mut AstKindPath) -> JSXElement {
117081        match self {
117082            swc_visit::Either::Left(visitor) => {
117083                FoldAstPath::fold_jsx_element(visitor, node, __ast_path)
117084            }
117085            swc_visit::Either::Right(visitor) => {
117086                FoldAstPath::fold_jsx_element(visitor, node, __ast_path)
117087            }
117088        }
117089    }
117090
117091    #[inline]
117092    fn fold_jsx_element_child(
117093        &mut self,
117094        node: JSXElementChild,
117095        __ast_path: &mut AstKindPath,
117096    ) -> JSXElementChild {
117097        match self {
117098            swc_visit::Either::Left(visitor) => {
117099                FoldAstPath::fold_jsx_element_child(visitor, node, __ast_path)
117100            }
117101            swc_visit::Either::Right(visitor) => {
117102                FoldAstPath::fold_jsx_element_child(visitor, node, __ast_path)
117103            }
117104        }
117105    }
117106
117107    #[inline]
117108    fn fold_jsx_element_childs(
117109        &mut self,
117110        node: Vec<JSXElementChild>,
117111        __ast_path: &mut AstKindPath,
117112    ) -> Vec<JSXElementChild> {
117113        match self {
117114            swc_visit::Either::Left(visitor) => {
117115                FoldAstPath::fold_jsx_element_childs(visitor, node, __ast_path)
117116            }
117117            swc_visit::Either::Right(visitor) => {
117118                FoldAstPath::fold_jsx_element_childs(visitor, node, __ast_path)
117119            }
117120        }
117121    }
117122
117123    #[inline]
117124    fn fold_jsx_element_name(
117125        &mut self,
117126        node: JSXElementName,
117127        __ast_path: &mut AstKindPath,
117128    ) -> JSXElementName {
117129        match self {
117130            swc_visit::Either::Left(visitor) => {
117131                FoldAstPath::fold_jsx_element_name(visitor, node, __ast_path)
117132            }
117133            swc_visit::Either::Right(visitor) => {
117134                FoldAstPath::fold_jsx_element_name(visitor, node, __ast_path)
117135            }
117136        }
117137    }
117138
117139    #[inline]
117140    fn fold_jsx_empty_expr(
117141        &mut self,
117142        node: JSXEmptyExpr,
117143        __ast_path: &mut AstKindPath,
117144    ) -> JSXEmptyExpr {
117145        match self {
117146            swc_visit::Either::Left(visitor) => {
117147                FoldAstPath::fold_jsx_empty_expr(visitor, node, __ast_path)
117148            }
117149            swc_visit::Either::Right(visitor) => {
117150                FoldAstPath::fold_jsx_empty_expr(visitor, node, __ast_path)
117151            }
117152        }
117153    }
117154
117155    #[inline]
117156    fn fold_jsx_expr(&mut self, node: JSXExpr, __ast_path: &mut AstKindPath) -> JSXExpr {
117157        match self {
117158            swc_visit::Either::Left(visitor) => {
117159                FoldAstPath::fold_jsx_expr(visitor, node, __ast_path)
117160            }
117161            swc_visit::Either::Right(visitor) => {
117162                FoldAstPath::fold_jsx_expr(visitor, node, __ast_path)
117163            }
117164        }
117165    }
117166
117167    #[inline]
117168    fn fold_jsx_expr_container(
117169        &mut self,
117170        node: JSXExprContainer,
117171        __ast_path: &mut AstKindPath,
117172    ) -> JSXExprContainer {
117173        match self {
117174            swc_visit::Either::Left(visitor) => {
117175                FoldAstPath::fold_jsx_expr_container(visitor, node, __ast_path)
117176            }
117177            swc_visit::Either::Right(visitor) => {
117178                FoldAstPath::fold_jsx_expr_container(visitor, node, __ast_path)
117179            }
117180        }
117181    }
117182
117183    #[inline]
117184    fn fold_jsx_fragment(
117185        &mut self,
117186        node: JSXFragment,
117187        __ast_path: &mut AstKindPath,
117188    ) -> JSXFragment {
117189        match self {
117190            swc_visit::Either::Left(visitor) => {
117191                FoldAstPath::fold_jsx_fragment(visitor, node, __ast_path)
117192            }
117193            swc_visit::Either::Right(visitor) => {
117194                FoldAstPath::fold_jsx_fragment(visitor, node, __ast_path)
117195            }
117196        }
117197    }
117198
117199    #[inline]
117200    fn fold_jsx_member_expr(
117201        &mut self,
117202        node: JSXMemberExpr,
117203        __ast_path: &mut AstKindPath,
117204    ) -> JSXMemberExpr {
117205        match self {
117206            swc_visit::Either::Left(visitor) => {
117207                FoldAstPath::fold_jsx_member_expr(visitor, node, __ast_path)
117208            }
117209            swc_visit::Either::Right(visitor) => {
117210                FoldAstPath::fold_jsx_member_expr(visitor, node, __ast_path)
117211            }
117212        }
117213    }
117214
117215    #[inline]
117216    fn fold_jsx_namespaced_name(
117217        &mut self,
117218        node: JSXNamespacedName,
117219        __ast_path: &mut AstKindPath,
117220    ) -> JSXNamespacedName {
117221        match self {
117222            swc_visit::Either::Left(visitor) => {
117223                FoldAstPath::fold_jsx_namespaced_name(visitor, node, __ast_path)
117224            }
117225            swc_visit::Either::Right(visitor) => {
117226                FoldAstPath::fold_jsx_namespaced_name(visitor, node, __ast_path)
117227            }
117228        }
117229    }
117230
117231    #[inline]
117232    fn fold_jsx_object(&mut self, node: JSXObject, __ast_path: &mut AstKindPath) -> JSXObject {
117233        match self {
117234            swc_visit::Either::Left(visitor) => {
117235                FoldAstPath::fold_jsx_object(visitor, node, __ast_path)
117236            }
117237            swc_visit::Either::Right(visitor) => {
117238                FoldAstPath::fold_jsx_object(visitor, node, __ast_path)
117239            }
117240        }
117241    }
117242
117243    #[inline]
117244    fn fold_jsx_opening_element(
117245        &mut self,
117246        node: JSXOpeningElement,
117247        __ast_path: &mut AstKindPath,
117248    ) -> JSXOpeningElement {
117249        match self {
117250            swc_visit::Either::Left(visitor) => {
117251                FoldAstPath::fold_jsx_opening_element(visitor, node, __ast_path)
117252            }
117253            swc_visit::Either::Right(visitor) => {
117254                FoldAstPath::fold_jsx_opening_element(visitor, node, __ast_path)
117255            }
117256        }
117257    }
117258
117259    #[inline]
117260    fn fold_jsx_opening_fragment(
117261        &mut self,
117262        node: JSXOpeningFragment,
117263        __ast_path: &mut AstKindPath,
117264    ) -> JSXOpeningFragment {
117265        match self {
117266            swc_visit::Either::Left(visitor) => {
117267                FoldAstPath::fold_jsx_opening_fragment(visitor, node, __ast_path)
117268            }
117269            swc_visit::Either::Right(visitor) => {
117270                FoldAstPath::fold_jsx_opening_fragment(visitor, node, __ast_path)
117271            }
117272        }
117273    }
117274
117275    #[inline]
117276    fn fold_jsx_spread_child(
117277        &mut self,
117278        node: JSXSpreadChild,
117279        __ast_path: &mut AstKindPath,
117280    ) -> JSXSpreadChild {
117281        match self {
117282            swc_visit::Either::Left(visitor) => {
117283                FoldAstPath::fold_jsx_spread_child(visitor, node, __ast_path)
117284            }
117285            swc_visit::Either::Right(visitor) => {
117286                FoldAstPath::fold_jsx_spread_child(visitor, node, __ast_path)
117287            }
117288        }
117289    }
117290
117291    #[inline]
117292    fn fold_jsx_text(&mut self, node: JSXText, __ast_path: &mut AstKindPath) -> JSXText {
117293        match self {
117294            swc_visit::Either::Left(visitor) => {
117295                FoldAstPath::fold_jsx_text(visitor, node, __ast_path)
117296            }
117297            swc_visit::Either::Right(visitor) => {
117298                FoldAstPath::fold_jsx_text(visitor, node, __ast_path)
117299            }
117300        }
117301    }
117302
117303    #[inline]
117304    fn fold_key(&mut self, node: Key, __ast_path: &mut AstKindPath) -> Key {
117305        match self {
117306            swc_visit::Either::Left(visitor) => FoldAstPath::fold_key(visitor, node, __ast_path),
117307            swc_visit::Either::Right(visitor) => FoldAstPath::fold_key(visitor, node, __ast_path),
117308        }
117309    }
117310
117311    #[inline]
117312    fn fold_key_value_pat_prop(
117313        &mut self,
117314        node: KeyValuePatProp,
117315        __ast_path: &mut AstKindPath,
117316    ) -> KeyValuePatProp {
117317        match self {
117318            swc_visit::Either::Left(visitor) => {
117319                FoldAstPath::fold_key_value_pat_prop(visitor, node, __ast_path)
117320            }
117321            swc_visit::Either::Right(visitor) => {
117322                FoldAstPath::fold_key_value_pat_prop(visitor, node, __ast_path)
117323            }
117324        }
117325    }
117326
117327    #[inline]
117328    fn fold_key_value_prop(
117329        &mut self,
117330        node: KeyValueProp,
117331        __ast_path: &mut AstKindPath,
117332    ) -> KeyValueProp {
117333        match self {
117334            swc_visit::Either::Left(visitor) => {
117335                FoldAstPath::fold_key_value_prop(visitor, node, __ast_path)
117336            }
117337            swc_visit::Either::Right(visitor) => {
117338                FoldAstPath::fold_key_value_prop(visitor, node, __ast_path)
117339            }
117340        }
117341    }
117342
117343    #[inline]
117344    fn fold_labeled_stmt(
117345        &mut self,
117346        node: LabeledStmt,
117347        __ast_path: &mut AstKindPath,
117348    ) -> LabeledStmt {
117349        match self {
117350            swc_visit::Either::Left(visitor) => {
117351                FoldAstPath::fold_labeled_stmt(visitor, node, __ast_path)
117352            }
117353            swc_visit::Either::Right(visitor) => {
117354                FoldAstPath::fold_labeled_stmt(visitor, node, __ast_path)
117355            }
117356        }
117357    }
117358
117359    #[inline]
117360    fn fold_lit(&mut self, node: Lit, __ast_path: &mut AstKindPath) -> Lit {
117361        match self {
117362            swc_visit::Either::Left(visitor) => FoldAstPath::fold_lit(visitor, node, __ast_path),
117363            swc_visit::Either::Right(visitor) => FoldAstPath::fold_lit(visitor, node, __ast_path),
117364        }
117365    }
117366
117367    #[inline]
117368    fn fold_member_expr(&mut self, node: MemberExpr, __ast_path: &mut AstKindPath) -> MemberExpr {
117369        match self {
117370            swc_visit::Either::Left(visitor) => {
117371                FoldAstPath::fold_member_expr(visitor, node, __ast_path)
117372            }
117373            swc_visit::Either::Right(visitor) => {
117374                FoldAstPath::fold_member_expr(visitor, node, __ast_path)
117375            }
117376        }
117377    }
117378
117379    #[inline]
117380    fn fold_member_prop(&mut self, node: MemberProp, __ast_path: &mut AstKindPath) -> MemberProp {
117381        match self {
117382            swc_visit::Either::Left(visitor) => {
117383                FoldAstPath::fold_member_prop(visitor, node, __ast_path)
117384            }
117385            swc_visit::Either::Right(visitor) => {
117386                FoldAstPath::fold_member_prop(visitor, node, __ast_path)
117387            }
117388        }
117389    }
117390
117391    #[inline]
117392    fn fold_meta_prop_expr(
117393        &mut self,
117394        node: MetaPropExpr,
117395        __ast_path: &mut AstKindPath,
117396    ) -> MetaPropExpr {
117397        match self {
117398            swc_visit::Either::Left(visitor) => {
117399                FoldAstPath::fold_meta_prop_expr(visitor, node, __ast_path)
117400            }
117401            swc_visit::Either::Right(visitor) => {
117402                FoldAstPath::fold_meta_prop_expr(visitor, node, __ast_path)
117403            }
117404        }
117405    }
117406
117407    #[inline]
117408    fn fold_meta_prop_kind(
117409        &mut self,
117410        node: MetaPropKind,
117411        __ast_path: &mut AstKindPath,
117412    ) -> MetaPropKind {
117413        match self {
117414            swc_visit::Either::Left(visitor) => {
117415                FoldAstPath::fold_meta_prop_kind(visitor, node, __ast_path)
117416            }
117417            swc_visit::Either::Right(visitor) => {
117418                FoldAstPath::fold_meta_prop_kind(visitor, node, __ast_path)
117419            }
117420        }
117421    }
117422
117423    #[inline]
117424    fn fold_method_kind(&mut self, node: MethodKind, __ast_path: &mut AstKindPath) -> MethodKind {
117425        match self {
117426            swc_visit::Either::Left(visitor) => {
117427                FoldAstPath::fold_method_kind(visitor, node, __ast_path)
117428            }
117429            swc_visit::Either::Right(visitor) => {
117430                FoldAstPath::fold_method_kind(visitor, node, __ast_path)
117431            }
117432        }
117433    }
117434
117435    #[inline]
117436    fn fold_method_prop(&mut self, node: MethodProp, __ast_path: &mut AstKindPath) -> MethodProp {
117437        match self {
117438            swc_visit::Either::Left(visitor) => {
117439                FoldAstPath::fold_method_prop(visitor, node, __ast_path)
117440            }
117441            swc_visit::Either::Right(visitor) => {
117442                FoldAstPath::fold_method_prop(visitor, node, __ast_path)
117443            }
117444        }
117445    }
117446
117447    #[inline]
117448    fn fold_module(&mut self, node: Module, __ast_path: &mut AstKindPath) -> Module {
117449        match self {
117450            swc_visit::Either::Left(visitor) => FoldAstPath::fold_module(visitor, node, __ast_path),
117451            swc_visit::Either::Right(visitor) => {
117452                FoldAstPath::fold_module(visitor, node, __ast_path)
117453            }
117454        }
117455    }
117456
117457    #[inline]
117458    fn fold_module_decl(&mut self, node: ModuleDecl, __ast_path: &mut AstKindPath) -> ModuleDecl {
117459        match self {
117460            swc_visit::Either::Left(visitor) => {
117461                FoldAstPath::fold_module_decl(visitor, node, __ast_path)
117462            }
117463            swc_visit::Either::Right(visitor) => {
117464                FoldAstPath::fold_module_decl(visitor, node, __ast_path)
117465            }
117466        }
117467    }
117468
117469    #[inline]
117470    fn fold_module_export_name(
117471        &mut self,
117472        node: ModuleExportName,
117473        __ast_path: &mut AstKindPath,
117474    ) -> ModuleExportName {
117475        match self {
117476            swc_visit::Either::Left(visitor) => {
117477                FoldAstPath::fold_module_export_name(visitor, node, __ast_path)
117478            }
117479            swc_visit::Either::Right(visitor) => {
117480                FoldAstPath::fold_module_export_name(visitor, node, __ast_path)
117481            }
117482        }
117483    }
117484
117485    #[inline]
117486    fn fold_module_item(&mut self, node: ModuleItem, __ast_path: &mut AstKindPath) -> ModuleItem {
117487        match self {
117488            swc_visit::Either::Left(visitor) => {
117489                FoldAstPath::fold_module_item(visitor, node, __ast_path)
117490            }
117491            swc_visit::Either::Right(visitor) => {
117492                FoldAstPath::fold_module_item(visitor, node, __ast_path)
117493            }
117494        }
117495    }
117496
117497    #[inline]
117498    fn fold_module_items(
117499        &mut self,
117500        node: Vec<ModuleItem>,
117501        __ast_path: &mut AstKindPath,
117502    ) -> Vec<ModuleItem> {
117503        match self {
117504            swc_visit::Either::Left(visitor) => {
117505                FoldAstPath::fold_module_items(visitor, node, __ast_path)
117506            }
117507            swc_visit::Either::Right(visitor) => {
117508                FoldAstPath::fold_module_items(visitor, node, __ast_path)
117509            }
117510        }
117511    }
117512
117513    #[inline]
117514    fn fold_named_export(
117515        &mut self,
117516        node: NamedExport,
117517        __ast_path: &mut AstKindPath,
117518    ) -> NamedExport {
117519        match self {
117520            swc_visit::Either::Left(visitor) => {
117521                FoldAstPath::fold_named_export(visitor, node, __ast_path)
117522            }
117523            swc_visit::Either::Right(visitor) => {
117524                FoldAstPath::fold_named_export(visitor, node, __ast_path)
117525            }
117526        }
117527    }
117528
117529    #[inline]
117530    fn fold_new_expr(&mut self, node: NewExpr, __ast_path: &mut AstKindPath) -> NewExpr {
117531        match self {
117532            swc_visit::Either::Left(visitor) => {
117533                FoldAstPath::fold_new_expr(visitor, node, __ast_path)
117534            }
117535            swc_visit::Either::Right(visitor) => {
117536                FoldAstPath::fold_new_expr(visitor, node, __ast_path)
117537            }
117538        }
117539    }
117540
117541    #[inline]
117542    fn fold_null(&mut self, node: Null, __ast_path: &mut AstKindPath) -> Null {
117543        match self {
117544            swc_visit::Either::Left(visitor) => FoldAstPath::fold_null(visitor, node, __ast_path),
117545            swc_visit::Either::Right(visitor) => FoldAstPath::fold_null(visitor, node, __ast_path),
117546        }
117547    }
117548
117549    #[inline]
117550    fn fold_number(&mut self, node: Number, __ast_path: &mut AstKindPath) -> Number {
117551        match self {
117552            swc_visit::Either::Left(visitor) => FoldAstPath::fold_number(visitor, node, __ast_path),
117553            swc_visit::Either::Right(visitor) => {
117554                FoldAstPath::fold_number(visitor, node, __ast_path)
117555            }
117556        }
117557    }
117558
117559    #[inline]
117560    fn fold_object_lit(&mut self, node: ObjectLit, __ast_path: &mut AstKindPath) -> ObjectLit {
117561        match self {
117562            swc_visit::Either::Left(visitor) => {
117563                FoldAstPath::fold_object_lit(visitor, node, __ast_path)
117564            }
117565            swc_visit::Either::Right(visitor) => {
117566                FoldAstPath::fold_object_lit(visitor, node, __ast_path)
117567            }
117568        }
117569    }
117570
117571    #[inline]
117572    fn fold_object_pat(&mut self, node: ObjectPat, __ast_path: &mut AstKindPath) -> ObjectPat {
117573        match self {
117574            swc_visit::Either::Left(visitor) => {
117575                FoldAstPath::fold_object_pat(visitor, node, __ast_path)
117576            }
117577            swc_visit::Either::Right(visitor) => {
117578                FoldAstPath::fold_object_pat(visitor, node, __ast_path)
117579            }
117580        }
117581    }
117582
117583    #[inline]
117584    fn fold_object_pat_prop(
117585        &mut self,
117586        node: ObjectPatProp,
117587        __ast_path: &mut AstKindPath,
117588    ) -> ObjectPatProp {
117589        match self {
117590            swc_visit::Either::Left(visitor) => {
117591                FoldAstPath::fold_object_pat_prop(visitor, node, __ast_path)
117592            }
117593            swc_visit::Either::Right(visitor) => {
117594                FoldAstPath::fold_object_pat_prop(visitor, node, __ast_path)
117595            }
117596        }
117597    }
117598
117599    #[inline]
117600    fn fold_object_pat_props(
117601        &mut self,
117602        node: Vec<ObjectPatProp>,
117603        __ast_path: &mut AstKindPath,
117604    ) -> Vec<ObjectPatProp> {
117605        match self {
117606            swc_visit::Either::Left(visitor) => {
117607                FoldAstPath::fold_object_pat_props(visitor, node, __ast_path)
117608            }
117609            swc_visit::Either::Right(visitor) => {
117610                FoldAstPath::fold_object_pat_props(visitor, node, __ast_path)
117611            }
117612        }
117613    }
117614
117615    #[inline]
117616    fn fold_opt_accessibility(
117617        &mut self,
117618        node: Option<Accessibility>,
117619        __ast_path: &mut AstKindPath,
117620    ) -> Option<Accessibility> {
117621        match self {
117622            swc_visit::Either::Left(visitor) => {
117623                FoldAstPath::fold_opt_accessibility(visitor, node, __ast_path)
117624            }
117625            swc_visit::Either::Right(visitor) => {
117626                FoldAstPath::fold_opt_accessibility(visitor, node, __ast_path)
117627            }
117628        }
117629    }
117630
117631    #[inline]
117632    fn fold_opt_atom(
117633        &mut self,
117634        node: Option<swc_atoms::Atom>,
117635        __ast_path: &mut AstKindPath,
117636    ) -> Option<swc_atoms::Atom> {
117637        match self {
117638            swc_visit::Either::Left(visitor) => {
117639                FoldAstPath::fold_opt_atom(visitor, node, __ast_path)
117640            }
117641            swc_visit::Either::Right(visitor) => {
117642                FoldAstPath::fold_opt_atom(visitor, node, __ast_path)
117643            }
117644        }
117645    }
117646
117647    #[inline]
117648    fn fold_opt_block_stmt(
117649        &mut self,
117650        node: Option<BlockStmt>,
117651        __ast_path: &mut AstKindPath,
117652    ) -> Option<BlockStmt> {
117653        match self {
117654            swc_visit::Either::Left(visitor) => {
117655                FoldAstPath::fold_opt_block_stmt(visitor, node, __ast_path)
117656            }
117657            swc_visit::Either::Right(visitor) => {
117658                FoldAstPath::fold_opt_block_stmt(visitor, node, __ast_path)
117659            }
117660        }
117661    }
117662
117663    #[inline]
117664    fn fold_opt_call(&mut self, node: OptCall, __ast_path: &mut AstKindPath) -> OptCall {
117665        match self {
117666            swc_visit::Either::Left(visitor) => {
117667                FoldAstPath::fold_opt_call(visitor, node, __ast_path)
117668            }
117669            swc_visit::Either::Right(visitor) => {
117670                FoldAstPath::fold_opt_call(visitor, node, __ast_path)
117671            }
117672        }
117673    }
117674
117675    #[inline]
117676    fn fold_opt_catch_clause(
117677        &mut self,
117678        node: Option<CatchClause>,
117679        __ast_path: &mut AstKindPath,
117680    ) -> Option<CatchClause> {
117681        match self {
117682            swc_visit::Either::Left(visitor) => {
117683                FoldAstPath::fold_opt_catch_clause(visitor, node, __ast_path)
117684            }
117685            swc_visit::Either::Right(visitor) => {
117686                FoldAstPath::fold_opt_catch_clause(visitor, node, __ast_path)
117687            }
117688        }
117689    }
117690
117691    #[inline]
117692    fn fold_opt_chain_base(
117693        &mut self,
117694        node: OptChainBase,
117695        __ast_path: &mut AstKindPath,
117696    ) -> OptChainBase {
117697        match self {
117698            swc_visit::Either::Left(visitor) => {
117699                FoldAstPath::fold_opt_chain_base(visitor, node, __ast_path)
117700            }
117701            swc_visit::Either::Right(visitor) => {
117702                FoldAstPath::fold_opt_chain_base(visitor, node, __ast_path)
117703            }
117704        }
117705    }
117706
117707    #[inline]
117708    fn fold_opt_chain_expr(
117709        &mut self,
117710        node: OptChainExpr,
117711        __ast_path: &mut AstKindPath,
117712    ) -> OptChainExpr {
117713        match self {
117714            swc_visit::Either::Left(visitor) => {
117715                FoldAstPath::fold_opt_chain_expr(visitor, node, __ast_path)
117716            }
117717            swc_visit::Either::Right(visitor) => {
117718                FoldAstPath::fold_opt_chain_expr(visitor, node, __ast_path)
117719            }
117720        }
117721    }
117722
117723    #[inline]
117724    fn fold_opt_expr(
117725        &mut self,
117726        node: Option<Box<Expr>>,
117727        __ast_path: &mut AstKindPath,
117728    ) -> Option<Box<Expr>> {
117729        match self {
117730            swc_visit::Either::Left(visitor) => {
117731                FoldAstPath::fold_opt_expr(visitor, node, __ast_path)
117732            }
117733            swc_visit::Either::Right(visitor) => {
117734                FoldAstPath::fold_opt_expr(visitor, node, __ast_path)
117735            }
117736        }
117737    }
117738
117739    #[inline]
117740    fn fold_opt_expr_or_spread(
117741        &mut self,
117742        node: Option<ExprOrSpread>,
117743        __ast_path: &mut AstKindPath,
117744    ) -> Option<ExprOrSpread> {
117745        match self {
117746            swc_visit::Either::Left(visitor) => {
117747                FoldAstPath::fold_opt_expr_or_spread(visitor, node, __ast_path)
117748            }
117749            swc_visit::Either::Right(visitor) => {
117750                FoldAstPath::fold_opt_expr_or_spread(visitor, node, __ast_path)
117751            }
117752        }
117753    }
117754
117755    #[inline]
117756    fn fold_opt_expr_or_spreads(
117757        &mut self,
117758        node: Option<Vec<ExprOrSpread>>,
117759        __ast_path: &mut AstKindPath,
117760    ) -> Option<Vec<ExprOrSpread>> {
117761        match self {
117762            swc_visit::Either::Left(visitor) => {
117763                FoldAstPath::fold_opt_expr_or_spreads(visitor, node, __ast_path)
117764            }
117765            swc_visit::Either::Right(visitor) => {
117766                FoldAstPath::fold_opt_expr_or_spreads(visitor, node, __ast_path)
117767            }
117768        }
117769    }
117770
117771    #[inline]
117772    fn fold_opt_ident(
117773        &mut self,
117774        node: Option<Ident>,
117775        __ast_path: &mut AstKindPath,
117776    ) -> Option<Ident> {
117777        match self {
117778            swc_visit::Either::Left(visitor) => {
117779                FoldAstPath::fold_opt_ident(visitor, node, __ast_path)
117780            }
117781            swc_visit::Either::Right(visitor) => {
117782                FoldAstPath::fold_opt_ident(visitor, node, __ast_path)
117783            }
117784        }
117785    }
117786
117787    #[inline]
117788    fn fold_opt_jsx_attr_value(
117789        &mut self,
117790        node: Option<JSXAttrValue>,
117791        __ast_path: &mut AstKindPath,
117792    ) -> Option<JSXAttrValue> {
117793        match self {
117794            swc_visit::Either::Left(visitor) => {
117795                FoldAstPath::fold_opt_jsx_attr_value(visitor, node, __ast_path)
117796            }
117797            swc_visit::Either::Right(visitor) => {
117798                FoldAstPath::fold_opt_jsx_attr_value(visitor, node, __ast_path)
117799            }
117800        }
117801    }
117802
117803    #[inline]
117804    fn fold_opt_jsx_closing_element(
117805        &mut self,
117806        node: Option<JSXClosingElement>,
117807        __ast_path: &mut AstKindPath,
117808    ) -> Option<JSXClosingElement> {
117809        match self {
117810            swc_visit::Either::Left(visitor) => {
117811                FoldAstPath::fold_opt_jsx_closing_element(visitor, node, __ast_path)
117812            }
117813            swc_visit::Either::Right(visitor) => {
117814                FoldAstPath::fold_opt_jsx_closing_element(visitor, node, __ast_path)
117815            }
117816        }
117817    }
117818
117819    #[inline]
117820    fn fold_opt_module_export_name(
117821        &mut self,
117822        node: Option<ModuleExportName>,
117823        __ast_path: &mut AstKindPath,
117824    ) -> Option<ModuleExportName> {
117825        match self {
117826            swc_visit::Either::Left(visitor) => {
117827                FoldAstPath::fold_opt_module_export_name(visitor, node, __ast_path)
117828            }
117829            swc_visit::Either::Right(visitor) => {
117830                FoldAstPath::fold_opt_module_export_name(visitor, node, __ast_path)
117831            }
117832        }
117833    }
117834
117835    #[inline]
117836    fn fold_opt_object_lit(
117837        &mut self,
117838        node: Option<Box<ObjectLit>>,
117839        __ast_path: &mut AstKindPath,
117840    ) -> Option<Box<ObjectLit>> {
117841        match self {
117842            swc_visit::Either::Left(visitor) => {
117843                FoldAstPath::fold_opt_object_lit(visitor, node, __ast_path)
117844            }
117845            swc_visit::Either::Right(visitor) => {
117846                FoldAstPath::fold_opt_object_lit(visitor, node, __ast_path)
117847            }
117848        }
117849    }
117850
117851    #[inline]
117852    fn fold_opt_pat(&mut self, node: Option<Pat>, __ast_path: &mut AstKindPath) -> Option<Pat> {
117853        match self {
117854            swc_visit::Either::Left(visitor) => {
117855                FoldAstPath::fold_opt_pat(visitor, node, __ast_path)
117856            }
117857            swc_visit::Either::Right(visitor) => {
117858                FoldAstPath::fold_opt_pat(visitor, node, __ast_path)
117859            }
117860        }
117861    }
117862
117863    #[inline]
117864    fn fold_opt_span(
117865        &mut self,
117866        node: Option<swc_common::Span>,
117867        __ast_path: &mut AstKindPath,
117868    ) -> Option<swc_common::Span> {
117869        match self {
117870            swc_visit::Either::Left(visitor) => {
117871                FoldAstPath::fold_opt_span(visitor, node, __ast_path)
117872            }
117873            swc_visit::Either::Right(visitor) => {
117874                FoldAstPath::fold_opt_span(visitor, node, __ast_path)
117875            }
117876        }
117877    }
117878
117879    #[inline]
117880    fn fold_opt_stmt(
117881        &mut self,
117882        node: Option<Box<Stmt>>,
117883        __ast_path: &mut AstKindPath,
117884    ) -> Option<Box<Stmt>> {
117885        match self {
117886            swc_visit::Either::Left(visitor) => {
117887                FoldAstPath::fold_opt_stmt(visitor, node, __ast_path)
117888            }
117889            swc_visit::Either::Right(visitor) => {
117890                FoldAstPath::fold_opt_stmt(visitor, node, __ast_path)
117891            }
117892        }
117893    }
117894
117895    #[inline]
117896    fn fold_opt_str(
117897        &mut self,
117898        node: Option<Box<Str>>,
117899        __ast_path: &mut AstKindPath,
117900    ) -> Option<Box<Str>> {
117901        match self {
117902            swc_visit::Either::Left(visitor) => {
117903                FoldAstPath::fold_opt_str(visitor, node, __ast_path)
117904            }
117905            swc_visit::Either::Right(visitor) => {
117906                FoldAstPath::fold_opt_str(visitor, node, __ast_path)
117907            }
117908        }
117909    }
117910
117911    #[inline]
117912    fn fold_opt_true_plus_minus(
117913        &mut self,
117914        node: Option<TruePlusMinus>,
117915        __ast_path: &mut AstKindPath,
117916    ) -> Option<TruePlusMinus> {
117917        match self {
117918            swc_visit::Either::Left(visitor) => {
117919                FoldAstPath::fold_opt_true_plus_minus(visitor, node, __ast_path)
117920            }
117921            swc_visit::Either::Right(visitor) => {
117922                FoldAstPath::fold_opt_true_plus_minus(visitor, node, __ast_path)
117923            }
117924        }
117925    }
117926
117927    #[inline]
117928    fn fold_opt_ts_entity_name(
117929        &mut self,
117930        node: Option<TsEntityName>,
117931        __ast_path: &mut AstKindPath,
117932    ) -> Option<TsEntityName> {
117933        match self {
117934            swc_visit::Either::Left(visitor) => {
117935                FoldAstPath::fold_opt_ts_entity_name(visitor, node, __ast_path)
117936            }
117937            swc_visit::Either::Right(visitor) => {
117938                FoldAstPath::fold_opt_ts_entity_name(visitor, node, __ast_path)
117939            }
117940        }
117941    }
117942
117943    #[inline]
117944    fn fold_opt_ts_import_call_options(
117945        &mut self,
117946        node: Option<TsImportCallOptions>,
117947        __ast_path: &mut AstKindPath,
117948    ) -> Option<TsImportCallOptions> {
117949        match self {
117950            swc_visit::Either::Left(visitor) => {
117951                FoldAstPath::fold_opt_ts_import_call_options(visitor, node, __ast_path)
117952            }
117953            swc_visit::Either::Right(visitor) => {
117954                FoldAstPath::fold_opt_ts_import_call_options(visitor, node, __ast_path)
117955            }
117956        }
117957    }
117958
117959    #[inline]
117960    fn fold_opt_ts_namespace_body(
117961        &mut self,
117962        node: Option<TsNamespaceBody>,
117963        __ast_path: &mut AstKindPath,
117964    ) -> Option<TsNamespaceBody> {
117965        match self {
117966            swc_visit::Either::Left(visitor) => {
117967                FoldAstPath::fold_opt_ts_namespace_body(visitor, node, __ast_path)
117968            }
117969            swc_visit::Either::Right(visitor) => {
117970                FoldAstPath::fold_opt_ts_namespace_body(visitor, node, __ast_path)
117971            }
117972        }
117973    }
117974
117975    #[inline]
117976    fn fold_opt_ts_type(
117977        &mut self,
117978        node: Option<Box<TsType>>,
117979        __ast_path: &mut AstKindPath,
117980    ) -> Option<Box<TsType>> {
117981        match self {
117982            swc_visit::Either::Left(visitor) => {
117983                FoldAstPath::fold_opt_ts_type(visitor, node, __ast_path)
117984            }
117985            swc_visit::Either::Right(visitor) => {
117986                FoldAstPath::fold_opt_ts_type(visitor, node, __ast_path)
117987            }
117988        }
117989    }
117990
117991    #[inline]
117992    fn fold_opt_ts_type_ann(
117993        &mut self,
117994        node: Option<Box<TsTypeAnn>>,
117995        __ast_path: &mut AstKindPath,
117996    ) -> Option<Box<TsTypeAnn>> {
117997        match self {
117998            swc_visit::Either::Left(visitor) => {
117999                FoldAstPath::fold_opt_ts_type_ann(visitor, node, __ast_path)
118000            }
118001            swc_visit::Either::Right(visitor) => {
118002                FoldAstPath::fold_opt_ts_type_ann(visitor, node, __ast_path)
118003            }
118004        }
118005    }
118006
118007    #[inline]
118008    fn fold_opt_ts_type_param_decl(
118009        &mut self,
118010        node: Option<Box<TsTypeParamDecl>>,
118011        __ast_path: &mut AstKindPath,
118012    ) -> Option<Box<TsTypeParamDecl>> {
118013        match self {
118014            swc_visit::Either::Left(visitor) => {
118015                FoldAstPath::fold_opt_ts_type_param_decl(visitor, node, __ast_path)
118016            }
118017            swc_visit::Either::Right(visitor) => {
118018                FoldAstPath::fold_opt_ts_type_param_decl(visitor, node, __ast_path)
118019            }
118020        }
118021    }
118022
118023    #[inline]
118024    fn fold_opt_ts_type_param_instantiation(
118025        &mut self,
118026        node: Option<Box<TsTypeParamInstantiation>>,
118027        __ast_path: &mut AstKindPath,
118028    ) -> Option<Box<TsTypeParamInstantiation>> {
118029        match self {
118030            swc_visit::Either::Left(visitor) => {
118031                FoldAstPath::fold_opt_ts_type_param_instantiation(visitor, node, __ast_path)
118032            }
118033            swc_visit::Either::Right(visitor) => {
118034                FoldAstPath::fold_opt_ts_type_param_instantiation(visitor, node, __ast_path)
118035            }
118036        }
118037    }
118038
118039    #[inline]
118040    fn fold_opt_var_decl_or_expr(
118041        &mut self,
118042        node: Option<VarDeclOrExpr>,
118043        __ast_path: &mut AstKindPath,
118044    ) -> Option<VarDeclOrExpr> {
118045        match self {
118046            swc_visit::Either::Left(visitor) => {
118047                FoldAstPath::fold_opt_var_decl_or_expr(visitor, node, __ast_path)
118048            }
118049            swc_visit::Either::Right(visitor) => {
118050                FoldAstPath::fold_opt_var_decl_or_expr(visitor, node, __ast_path)
118051            }
118052        }
118053    }
118054
118055    #[inline]
118056    fn fold_opt_vec_expr_or_spreads(
118057        &mut self,
118058        node: Vec<Option<ExprOrSpread>>,
118059        __ast_path: &mut AstKindPath,
118060    ) -> Vec<Option<ExprOrSpread>> {
118061        match self {
118062            swc_visit::Either::Left(visitor) => {
118063                FoldAstPath::fold_opt_vec_expr_or_spreads(visitor, node, __ast_path)
118064            }
118065            swc_visit::Either::Right(visitor) => {
118066                FoldAstPath::fold_opt_vec_expr_or_spreads(visitor, node, __ast_path)
118067            }
118068        }
118069    }
118070
118071    #[inline]
118072    fn fold_opt_vec_pats(
118073        &mut self,
118074        node: Vec<Option<Pat>>,
118075        __ast_path: &mut AstKindPath,
118076    ) -> Vec<Option<Pat>> {
118077        match self {
118078            swc_visit::Either::Left(visitor) => {
118079                FoldAstPath::fold_opt_vec_pats(visitor, node, __ast_path)
118080            }
118081            swc_visit::Either::Right(visitor) => {
118082                FoldAstPath::fold_opt_vec_pats(visitor, node, __ast_path)
118083            }
118084        }
118085    }
118086
118087    #[inline]
118088    fn fold_param(&mut self, node: Param, __ast_path: &mut AstKindPath) -> Param {
118089        match self {
118090            swc_visit::Either::Left(visitor) => FoldAstPath::fold_param(visitor, node, __ast_path),
118091            swc_visit::Either::Right(visitor) => FoldAstPath::fold_param(visitor, node, __ast_path),
118092        }
118093    }
118094
118095    #[inline]
118096    fn fold_param_or_ts_param_prop(
118097        &mut self,
118098        node: ParamOrTsParamProp,
118099        __ast_path: &mut AstKindPath,
118100    ) -> ParamOrTsParamProp {
118101        match self {
118102            swc_visit::Either::Left(visitor) => {
118103                FoldAstPath::fold_param_or_ts_param_prop(visitor, node, __ast_path)
118104            }
118105            swc_visit::Either::Right(visitor) => {
118106                FoldAstPath::fold_param_or_ts_param_prop(visitor, node, __ast_path)
118107            }
118108        }
118109    }
118110
118111    #[inline]
118112    fn fold_param_or_ts_param_props(
118113        &mut self,
118114        node: Vec<ParamOrTsParamProp>,
118115        __ast_path: &mut AstKindPath,
118116    ) -> Vec<ParamOrTsParamProp> {
118117        match self {
118118            swc_visit::Either::Left(visitor) => {
118119                FoldAstPath::fold_param_or_ts_param_props(visitor, node, __ast_path)
118120            }
118121            swc_visit::Either::Right(visitor) => {
118122                FoldAstPath::fold_param_or_ts_param_props(visitor, node, __ast_path)
118123            }
118124        }
118125    }
118126
118127    #[inline]
118128    fn fold_params(&mut self, node: Vec<Param>, __ast_path: &mut AstKindPath) -> Vec<Param> {
118129        match self {
118130            swc_visit::Either::Left(visitor) => FoldAstPath::fold_params(visitor, node, __ast_path),
118131            swc_visit::Either::Right(visitor) => {
118132                FoldAstPath::fold_params(visitor, node, __ast_path)
118133            }
118134        }
118135    }
118136
118137    #[inline]
118138    fn fold_paren_expr(&mut self, node: ParenExpr, __ast_path: &mut AstKindPath) -> ParenExpr {
118139        match self {
118140            swc_visit::Either::Left(visitor) => {
118141                FoldAstPath::fold_paren_expr(visitor, node, __ast_path)
118142            }
118143            swc_visit::Either::Right(visitor) => {
118144                FoldAstPath::fold_paren_expr(visitor, node, __ast_path)
118145            }
118146        }
118147    }
118148
118149    #[inline]
118150    fn fold_pat(&mut self, node: Pat, __ast_path: &mut AstKindPath) -> Pat {
118151        match self {
118152            swc_visit::Either::Left(visitor) => FoldAstPath::fold_pat(visitor, node, __ast_path),
118153            swc_visit::Either::Right(visitor) => FoldAstPath::fold_pat(visitor, node, __ast_path),
118154        }
118155    }
118156
118157    #[inline]
118158    fn fold_pats(&mut self, node: Vec<Pat>, __ast_path: &mut AstKindPath) -> Vec<Pat> {
118159        match self {
118160            swc_visit::Either::Left(visitor) => FoldAstPath::fold_pats(visitor, node, __ast_path),
118161            swc_visit::Either::Right(visitor) => FoldAstPath::fold_pats(visitor, node, __ast_path),
118162        }
118163    }
118164
118165    #[inline]
118166    fn fold_private_method(
118167        &mut self,
118168        node: PrivateMethod,
118169        __ast_path: &mut AstKindPath,
118170    ) -> PrivateMethod {
118171        match self {
118172            swc_visit::Either::Left(visitor) => {
118173                FoldAstPath::fold_private_method(visitor, node, __ast_path)
118174            }
118175            swc_visit::Either::Right(visitor) => {
118176                FoldAstPath::fold_private_method(visitor, node, __ast_path)
118177            }
118178        }
118179    }
118180
118181    #[inline]
118182    fn fold_private_name(
118183        &mut self,
118184        node: PrivateName,
118185        __ast_path: &mut AstKindPath,
118186    ) -> PrivateName {
118187        match self {
118188            swc_visit::Either::Left(visitor) => {
118189                FoldAstPath::fold_private_name(visitor, node, __ast_path)
118190            }
118191            swc_visit::Either::Right(visitor) => {
118192                FoldAstPath::fold_private_name(visitor, node, __ast_path)
118193            }
118194        }
118195    }
118196
118197    #[inline]
118198    fn fold_private_prop(
118199        &mut self,
118200        node: PrivateProp,
118201        __ast_path: &mut AstKindPath,
118202    ) -> PrivateProp {
118203        match self {
118204            swc_visit::Either::Left(visitor) => {
118205                FoldAstPath::fold_private_prop(visitor, node, __ast_path)
118206            }
118207            swc_visit::Either::Right(visitor) => {
118208                FoldAstPath::fold_private_prop(visitor, node, __ast_path)
118209            }
118210        }
118211    }
118212
118213    #[inline]
118214    fn fold_program(&mut self, node: Program, __ast_path: &mut AstKindPath) -> Program {
118215        match self {
118216            swc_visit::Either::Left(visitor) => {
118217                FoldAstPath::fold_program(visitor, node, __ast_path)
118218            }
118219            swc_visit::Either::Right(visitor) => {
118220                FoldAstPath::fold_program(visitor, node, __ast_path)
118221            }
118222        }
118223    }
118224
118225    #[inline]
118226    fn fold_prop(&mut self, node: Prop, __ast_path: &mut AstKindPath) -> Prop {
118227        match self {
118228            swc_visit::Either::Left(visitor) => FoldAstPath::fold_prop(visitor, node, __ast_path),
118229            swc_visit::Either::Right(visitor) => FoldAstPath::fold_prop(visitor, node, __ast_path),
118230        }
118231    }
118232
118233    #[inline]
118234    fn fold_prop_name(&mut self, node: PropName, __ast_path: &mut AstKindPath) -> PropName {
118235        match self {
118236            swc_visit::Either::Left(visitor) => {
118237                FoldAstPath::fold_prop_name(visitor, node, __ast_path)
118238            }
118239            swc_visit::Either::Right(visitor) => {
118240                FoldAstPath::fold_prop_name(visitor, node, __ast_path)
118241            }
118242        }
118243    }
118244
118245    #[inline]
118246    fn fold_prop_or_spread(
118247        &mut self,
118248        node: PropOrSpread,
118249        __ast_path: &mut AstKindPath,
118250    ) -> PropOrSpread {
118251        match self {
118252            swc_visit::Either::Left(visitor) => {
118253                FoldAstPath::fold_prop_or_spread(visitor, node, __ast_path)
118254            }
118255            swc_visit::Either::Right(visitor) => {
118256                FoldAstPath::fold_prop_or_spread(visitor, node, __ast_path)
118257            }
118258        }
118259    }
118260
118261    #[inline]
118262    fn fold_prop_or_spreads(
118263        &mut self,
118264        node: Vec<PropOrSpread>,
118265        __ast_path: &mut AstKindPath,
118266    ) -> Vec<PropOrSpread> {
118267        match self {
118268            swc_visit::Either::Left(visitor) => {
118269                FoldAstPath::fold_prop_or_spreads(visitor, node, __ast_path)
118270            }
118271            swc_visit::Either::Right(visitor) => {
118272                FoldAstPath::fold_prop_or_spreads(visitor, node, __ast_path)
118273            }
118274        }
118275    }
118276
118277    #[inline]
118278    fn fold_regex(&mut self, node: Regex, __ast_path: &mut AstKindPath) -> Regex {
118279        match self {
118280            swc_visit::Either::Left(visitor) => FoldAstPath::fold_regex(visitor, node, __ast_path),
118281            swc_visit::Either::Right(visitor) => FoldAstPath::fold_regex(visitor, node, __ast_path),
118282        }
118283    }
118284
118285    #[inline]
118286    fn fold_rest_pat(&mut self, node: RestPat, __ast_path: &mut AstKindPath) -> RestPat {
118287        match self {
118288            swc_visit::Either::Left(visitor) => {
118289                FoldAstPath::fold_rest_pat(visitor, node, __ast_path)
118290            }
118291            swc_visit::Either::Right(visitor) => {
118292                FoldAstPath::fold_rest_pat(visitor, node, __ast_path)
118293            }
118294        }
118295    }
118296
118297    #[inline]
118298    fn fold_return_stmt(&mut self, node: ReturnStmt, __ast_path: &mut AstKindPath) -> ReturnStmt {
118299        match self {
118300            swc_visit::Either::Left(visitor) => {
118301                FoldAstPath::fold_return_stmt(visitor, node, __ast_path)
118302            }
118303            swc_visit::Either::Right(visitor) => {
118304                FoldAstPath::fold_return_stmt(visitor, node, __ast_path)
118305            }
118306        }
118307    }
118308
118309    #[inline]
118310    fn fold_script(&mut self, node: Script, __ast_path: &mut AstKindPath) -> Script {
118311        match self {
118312            swc_visit::Either::Left(visitor) => FoldAstPath::fold_script(visitor, node, __ast_path),
118313            swc_visit::Either::Right(visitor) => {
118314                FoldAstPath::fold_script(visitor, node, __ast_path)
118315            }
118316        }
118317    }
118318
118319    #[inline]
118320    fn fold_seq_expr(&mut self, node: SeqExpr, __ast_path: &mut AstKindPath) -> SeqExpr {
118321        match self {
118322            swc_visit::Either::Left(visitor) => {
118323                FoldAstPath::fold_seq_expr(visitor, node, __ast_path)
118324            }
118325            swc_visit::Either::Right(visitor) => {
118326                FoldAstPath::fold_seq_expr(visitor, node, __ast_path)
118327            }
118328        }
118329    }
118330
118331    #[inline]
118332    fn fold_setter_prop(&mut self, node: SetterProp, __ast_path: &mut AstKindPath) -> SetterProp {
118333        match self {
118334            swc_visit::Either::Left(visitor) => {
118335                FoldAstPath::fold_setter_prop(visitor, node, __ast_path)
118336            }
118337            swc_visit::Either::Right(visitor) => {
118338                FoldAstPath::fold_setter_prop(visitor, node, __ast_path)
118339            }
118340        }
118341    }
118342
118343    #[inline]
118344    fn fold_simple_assign_target(
118345        &mut self,
118346        node: SimpleAssignTarget,
118347        __ast_path: &mut AstKindPath,
118348    ) -> SimpleAssignTarget {
118349        match self {
118350            swc_visit::Either::Left(visitor) => {
118351                FoldAstPath::fold_simple_assign_target(visitor, node, __ast_path)
118352            }
118353            swc_visit::Either::Right(visitor) => {
118354                FoldAstPath::fold_simple_assign_target(visitor, node, __ast_path)
118355            }
118356        }
118357    }
118358
118359    #[inline]
118360    fn fold_span(
118361        &mut self,
118362        node: swc_common::Span,
118363        __ast_path: &mut AstKindPath,
118364    ) -> swc_common::Span {
118365        match self {
118366            swc_visit::Either::Left(visitor) => FoldAstPath::fold_span(visitor, node, __ast_path),
118367            swc_visit::Either::Right(visitor) => FoldAstPath::fold_span(visitor, node, __ast_path),
118368        }
118369    }
118370
118371    #[inline]
118372    fn fold_spread_element(
118373        &mut self,
118374        node: SpreadElement,
118375        __ast_path: &mut AstKindPath,
118376    ) -> SpreadElement {
118377        match self {
118378            swc_visit::Either::Left(visitor) => {
118379                FoldAstPath::fold_spread_element(visitor, node, __ast_path)
118380            }
118381            swc_visit::Either::Right(visitor) => {
118382                FoldAstPath::fold_spread_element(visitor, node, __ast_path)
118383            }
118384        }
118385    }
118386
118387    #[inline]
118388    fn fold_static_block(
118389        &mut self,
118390        node: StaticBlock,
118391        __ast_path: &mut AstKindPath,
118392    ) -> StaticBlock {
118393        match self {
118394            swc_visit::Either::Left(visitor) => {
118395                FoldAstPath::fold_static_block(visitor, node, __ast_path)
118396            }
118397            swc_visit::Either::Right(visitor) => {
118398                FoldAstPath::fold_static_block(visitor, node, __ast_path)
118399            }
118400        }
118401    }
118402
118403    #[inline]
118404    fn fold_stmt(&mut self, node: Stmt, __ast_path: &mut AstKindPath) -> Stmt {
118405        match self {
118406            swc_visit::Either::Left(visitor) => FoldAstPath::fold_stmt(visitor, node, __ast_path),
118407            swc_visit::Either::Right(visitor) => FoldAstPath::fold_stmt(visitor, node, __ast_path),
118408        }
118409    }
118410
118411    #[inline]
118412    fn fold_stmts(&mut self, node: Vec<Stmt>, __ast_path: &mut AstKindPath) -> Vec<Stmt> {
118413        match self {
118414            swc_visit::Either::Left(visitor) => FoldAstPath::fold_stmts(visitor, node, __ast_path),
118415            swc_visit::Either::Right(visitor) => FoldAstPath::fold_stmts(visitor, node, __ast_path),
118416        }
118417    }
118418
118419    #[inline]
118420    fn fold_str(&mut self, node: Str, __ast_path: &mut AstKindPath) -> Str {
118421        match self {
118422            swc_visit::Either::Left(visitor) => FoldAstPath::fold_str(visitor, node, __ast_path),
118423            swc_visit::Either::Right(visitor) => FoldAstPath::fold_str(visitor, node, __ast_path),
118424        }
118425    }
118426
118427    #[inline]
118428    fn fold_super(&mut self, node: Super, __ast_path: &mut AstKindPath) -> Super {
118429        match self {
118430            swc_visit::Either::Left(visitor) => FoldAstPath::fold_super(visitor, node, __ast_path),
118431            swc_visit::Either::Right(visitor) => FoldAstPath::fold_super(visitor, node, __ast_path),
118432        }
118433    }
118434
118435    #[inline]
118436    fn fold_super_prop(&mut self, node: SuperProp, __ast_path: &mut AstKindPath) -> SuperProp {
118437        match self {
118438            swc_visit::Either::Left(visitor) => {
118439                FoldAstPath::fold_super_prop(visitor, node, __ast_path)
118440            }
118441            swc_visit::Either::Right(visitor) => {
118442                FoldAstPath::fold_super_prop(visitor, node, __ast_path)
118443            }
118444        }
118445    }
118446
118447    #[inline]
118448    fn fold_super_prop_expr(
118449        &mut self,
118450        node: SuperPropExpr,
118451        __ast_path: &mut AstKindPath,
118452    ) -> SuperPropExpr {
118453        match self {
118454            swc_visit::Either::Left(visitor) => {
118455                FoldAstPath::fold_super_prop_expr(visitor, node, __ast_path)
118456            }
118457            swc_visit::Either::Right(visitor) => {
118458                FoldAstPath::fold_super_prop_expr(visitor, node, __ast_path)
118459            }
118460        }
118461    }
118462
118463    #[inline]
118464    fn fold_switch_case(&mut self, node: SwitchCase, __ast_path: &mut AstKindPath) -> SwitchCase {
118465        match self {
118466            swc_visit::Either::Left(visitor) => {
118467                FoldAstPath::fold_switch_case(visitor, node, __ast_path)
118468            }
118469            swc_visit::Either::Right(visitor) => {
118470                FoldAstPath::fold_switch_case(visitor, node, __ast_path)
118471            }
118472        }
118473    }
118474
118475    #[inline]
118476    fn fold_switch_cases(
118477        &mut self,
118478        node: Vec<SwitchCase>,
118479        __ast_path: &mut AstKindPath,
118480    ) -> Vec<SwitchCase> {
118481        match self {
118482            swc_visit::Either::Left(visitor) => {
118483                FoldAstPath::fold_switch_cases(visitor, node, __ast_path)
118484            }
118485            swc_visit::Either::Right(visitor) => {
118486                FoldAstPath::fold_switch_cases(visitor, node, __ast_path)
118487            }
118488        }
118489    }
118490
118491    #[inline]
118492    fn fold_switch_stmt(&mut self, node: SwitchStmt, __ast_path: &mut AstKindPath) -> SwitchStmt {
118493        match self {
118494            swc_visit::Either::Left(visitor) => {
118495                FoldAstPath::fold_switch_stmt(visitor, node, __ast_path)
118496            }
118497            swc_visit::Either::Right(visitor) => {
118498                FoldAstPath::fold_switch_stmt(visitor, node, __ast_path)
118499            }
118500        }
118501    }
118502
118503    #[inline]
118504    fn fold_syntax_context(
118505        &mut self,
118506        node: swc_common::SyntaxContext,
118507        __ast_path: &mut AstKindPath,
118508    ) -> swc_common::SyntaxContext {
118509        match self {
118510            swc_visit::Either::Left(visitor) => {
118511                FoldAstPath::fold_syntax_context(visitor, node, __ast_path)
118512            }
118513            swc_visit::Either::Right(visitor) => {
118514                FoldAstPath::fold_syntax_context(visitor, node, __ast_path)
118515            }
118516        }
118517    }
118518
118519    #[inline]
118520    fn fold_tagged_tpl(&mut self, node: TaggedTpl, __ast_path: &mut AstKindPath) -> TaggedTpl {
118521        match self {
118522            swc_visit::Either::Left(visitor) => {
118523                FoldAstPath::fold_tagged_tpl(visitor, node, __ast_path)
118524            }
118525            swc_visit::Either::Right(visitor) => {
118526                FoldAstPath::fold_tagged_tpl(visitor, node, __ast_path)
118527            }
118528        }
118529    }
118530
118531    #[inline]
118532    fn fold_this_expr(&mut self, node: ThisExpr, __ast_path: &mut AstKindPath) -> ThisExpr {
118533        match self {
118534            swc_visit::Either::Left(visitor) => {
118535                FoldAstPath::fold_this_expr(visitor, node, __ast_path)
118536            }
118537            swc_visit::Either::Right(visitor) => {
118538                FoldAstPath::fold_this_expr(visitor, node, __ast_path)
118539            }
118540        }
118541    }
118542
118543    #[inline]
118544    fn fold_throw_stmt(&mut self, node: ThrowStmt, __ast_path: &mut AstKindPath) -> ThrowStmt {
118545        match self {
118546            swc_visit::Either::Left(visitor) => {
118547                FoldAstPath::fold_throw_stmt(visitor, node, __ast_path)
118548            }
118549            swc_visit::Either::Right(visitor) => {
118550                FoldAstPath::fold_throw_stmt(visitor, node, __ast_path)
118551            }
118552        }
118553    }
118554
118555    #[inline]
118556    fn fold_tpl(&mut self, node: Tpl, __ast_path: &mut AstKindPath) -> Tpl {
118557        match self {
118558            swc_visit::Either::Left(visitor) => FoldAstPath::fold_tpl(visitor, node, __ast_path),
118559            swc_visit::Either::Right(visitor) => FoldAstPath::fold_tpl(visitor, node, __ast_path),
118560        }
118561    }
118562
118563    #[inline]
118564    fn fold_tpl_element(&mut self, node: TplElement, __ast_path: &mut AstKindPath) -> TplElement {
118565        match self {
118566            swc_visit::Either::Left(visitor) => {
118567                FoldAstPath::fold_tpl_element(visitor, node, __ast_path)
118568            }
118569            swc_visit::Either::Right(visitor) => {
118570                FoldAstPath::fold_tpl_element(visitor, node, __ast_path)
118571            }
118572        }
118573    }
118574
118575    #[inline]
118576    fn fold_tpl_elements(
118577        &mut self,
118578        node: Vec<TplElement>,
118579        __ast_path: &mut AstKindPath,
118580    ) -> Vec<TplElement> {
118581        match self {
118582            swc_visit::Either::Left(visitor) => {
118583                FoldAstPath::fold_tpl_elements(visitor, node, __ast_path)
118584            }
118585            swc_visit::Either::Right(visitor) => {
118586                FoldAstPath::fold_tpl_elements(visitor, node, __ast_path)
118587            }
118588        }
118589    }
118590
118591    #[inline]
118592    fn fold_true_plus_minus(
118593        &mut self,
118594        node: TruePlusMinus,
118595        __ast_path: &mut AstKindPath,
118596    ) -> TruePlusMinus {
118597        match self {
118598            swc_visit::Either::Left(visitor) => {
118599                FoldAstPath::fold_true_plus_minus(visitor, node, __ast_path)
118600            }
118601            swc_visit::Either::Right(visitor) => {
118602                FoldAstPath::fold_true_plus_minus(visitor, node, __ast_path)
118603            }
118604        }
118605    }
118606
118607    #[inline]
118608    fn fold_try_stmt(&mut self, node: TryStmt, __ast_path: &mut AstKindPath) -> TryStmt {
118609        match self {
118610            swc_visit::Either::Left(visitor) => {
118611                FoldAstPath::fold_try_stmt(visitor, node, __ast_path)
118612            }
118613            swc_visit::Either::Right(visitor) => {
118614                FoldAstPath::fold_try_stmt(visitor, node, __ast_path)
118615            }
118616        }
118617    }
118618
118619    #[inline]
118620    fn fold_ts_array_type(
118621        &mut self,
118622        node: TsArrayType,
118623        __ast_path: &mut AstKindPath,
118624    ) -> TsArrayType {
118625        match self {
118626            swc_visit::Either::Left(visitor) => {
118627                FoldAstPath::fold_ts_array_type(visitor, node, __ast_path)
118628            }
118629            swc_visit::Either::Right(visitor) => {
118630                FoldAstPath::fold_ts_array_type(visitor, node, __ast_path)
118631            }
118632        }
118633    }
118634
118635    #[inline]
118636    fn fold_ts_as_expr(&mut self, node: TsAsExpr, __ast_path: &mut AstKindPath) -> TsAsExpr {
118637        match self {
118638            swc_visit::Either::Left(visitor) => {
118639                FoldAstPath::fold_ts_as_expr(visitor, node, __ast_path)
118640            }
118641            swc_visit::Either::Right(visitor) => {
118642                FoldAstPath::fold_ts_as_expr(visitor, node, __ast_path)
118643            }
118644        }
118645    }
118646
118647    #[inline]
118648    fn fold_ts_call_signature_decl(
118649        &mut self,
118650        node: TsCallSignatureDecl,
118651        __ast_path: &mut AstKindPath,
118652    ) -> TsCallSignatureDecl {
118653        match self {
118654            swc_visit::Either::Left(visitor) => {
118655                FoldAstPath::fold_ts_call_signature_decl(visitor, node, __ast_path)
118656            }
118657            swc_visit::Either::Right(visitor) => {
118658                FoldAstPath::fold_ts_call_signature_decl(visitor, node, __ast_path)
118659            }
118660        }
118661    }
118662
118663    #[inline]
118664    fn fold_ts_conditional_type(
118665        &mut self,
118666        node: TsConditionalType,
118667        __ast_path: &mut AstKindPath,
118668    ) -> TsConditionalType {
118669        match self {
118670            swc_visit::Either::Left(visitor) => {
118671                FoldAstPath::fold_ts_conditional_type(visitor, node, __ast_path)
118672            }
118673            swc_visit::Either::Right(visitor) => {
118674                FoldAstPath::fold_ts_conditional_type(visitor, node, __ast_path)
118675            }
118676        }
118677    }
118678
118679    #[inline]
118680    fn fold_ts_const_assertion(
118681        &mut self,
118682        node: TsConstAssertion,
118683        __ast_path: &mut AstKindPath,
118684    ) -> TsConstAssertion {
118685        match self {
118686            swc_visit::Either::Left(visitor) => {
118687                FoldAstPath::fold_ts_const_assertion(visitor, node, __ast_path)
118688            }
118689            swc_visit::Either::Right(visitor) => {
118690                FoldAstPath::fold_ts_const_assertion(visitor, node, __ast_path)
118691            }
118692        }
118693    }
118694
118695    #[inline]
118696    fn fold_ts_construct_signature_decl(
118697        &mut self,
118698        node: TsConstructSignatureDecl,
118699        __ast_path: &mut AstKindPath,
118700    ) -> TsConstructSignatureDecl {
118701        match self {
118702            swc_visit::Either::Left(visitor) => {
118703                FoldAstPath::fold_ts_construct_signature_decl(visitor, node, __ast_path)
118704            }
118705            swc_visit::Either::Right(visitor) => {
118706                FoldAstPath::fold_ts_construct_signature_decl(visitor, node, __ast_path)
118707            }
118708        }
118709    }
118710
118711    #[inline]
118712    fn fold_ts_constructor_type(
118713        &mut self,
118714        node: TsConstructorType,
118715        __ast_path: &mut AstKindPath,
118716    ) -> TsConstructorType {
118717        match self {
118718            swc_visit::Either::Left(visitor) => {
118719                FoldAstPath::fold_ts_constructor_type(visitor, node, __ast_path)
118720            }
118721            swc_visit::Either::Right(visitor) => {
118722                FoldAstPath::fold_ts_constructor_type(visitor, node, __ast_path)
118723            }
118724        }
118725    }
118726
118727    #[inline]
118728    fn fold_ts_entity_name(
118729        &mut self,
118730        node: TsEntityName,
118731        __ast_path: &mut AstKindPath,
118732    ) -> TsEntityName {
118733        match self {
118734            swc_visit::Either::Left(visitor) => {
118735                FoldAstPath::fold_ts_entity_name(visitor, node, __ast_path)
118736            }
118737            swc_visit::Either::Right(visitor) => {
118738                FoldAstPath::fold_ts_entity_name(visitor, node, __ast_path)
118739            }
118740        }
118741    }
118742
118743    #[inline]
118744    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl, __ast_path: &mut AstKindPath) -> TsEnumDecl {
118745        match self {
118746            swc_visit::Either::Left(visitor) => {
118747                FoldAstPath::fold_ts_enum_decl(visitor, node, __ast_path)
118748            }
118749            swc_visit::Either::Right(visitor) => {
118750                FoldAstPath::fold_ts_enum_decl(visitor, node, __ast_path)
118751            }
118752        }
118753    }
118754
118755    #[inline]
118756    fn fold_ts_enum_member(
118757        &mut self,
118758        node: TsEnumMember,
118759        __ast_path: &mut AstKindPath,
118760    ) -> TsEnumMember {
118761        match self {
118762            swc_visit::Either::Left(visitor) => {
118763                FoldAstPath::fold_ts_enum_member(visitor, node, __ast_path)
118764            }
118765            swc_visit::Either::Right(visitor) => {
118766                FoldAstPath::fold_ts_enum_member(visitor, node, __ast_path)
118767            }
118768        }
118769    }
118770
118771    #[inline]
118772    fn fold_ts_enum_member_id(
118773        &mut self,
118774        node: TsEnumMemberId,
118775        __ast_path: &mut AstKindPath,
118776    ) -> TsEnumMemberId {
118777        match self {
118778            swc_visit::Either::Left(visitor) => {
118779                FoldAstPath::fold_ts_enum_member_id(visitor, node, __ast_path)
118780            }
118781            swc_visit::Either::Right(visitor) => {
118782                FoldAstPath::fold_ts_enum_member_id(visitor, node, __ast_path)
118783            }
118784        }
118785    }
118786
118787    #[inline]
118788    fn fold_ts_enum_members(
118789        &mut self,
118790        node: Vec<TsEnumMember>,
118791        __ast_path: &mut AstKindPath,
118792    ) -> Vec<TsEnumMember> {
118793        match self {
118794            swc_visit::Either::Left(visitor) => {
118795                FoldAstPath::fold_ts_enum_members(visitor, node, __ast_path)
118796            }
118797            swc_visit::Either::Right(visitor) => {
118798                FoldAstPath::fold_ts_enum_members(visitor, node, __ast_path)
118799            }
118800        }
118801    }
118802
118803    #[inline]
118804    fn fold_ts_export_assignment(
118805        &mut self,
118806        node: TsExportAssignment,
118807        __ast_path: &mut AstKindPath,
118808    ) -> TsExportAssignment {
118809        match self {
118810            swc_visit::Either::Left(visitor) => {
118811                FoldAstPath::fold_ts_export_assignment(visitor, node, __ast_path)
118812            }
118813            swc_visit::Either::Right(visitor) => {
118814                FoldAstPath::fold_ts_export_assignment(visitor, node, __ast_path)
118815            }
118816        }
118817    }
118818
118819    #[inline]
118820    fn fold_ts_expr_with_type_args(
118821        &mut self,
118822        node: TsExprWithTypeArgs,
118823        __ast_path: &mut AstKindPath,
118824    ) -> TsExprWithTypeArgs {
118825        match self {
118826            swc_visit::Either::Left(visitor) => {
118827                FoldAstPath::fold_ts_expr_with_type_args(visitor, node, __ast_path)
118828            }
118829            swc_visit::Either::Right(visitor) => {
118830                FoldAstPath::fold_ts_expr_with_type_args(visitor, node, __ast_path)
118831            }
118832        }
118833    }
118834
118835    #[inline]
118836    fn fold_ts_expr_with_type_argss(
118837        &mut self,
118838        node: Vec<TsExprWithTypeArgs>,
118839        __ast_path: &mut AstKindPath,
118840    ) -> Vec<TsExprWithTypeArgs> {
118841        match self {
118842            swc_visit::Either::Left(visitor) => {
118843                FoldAstPath::fold_ts_expr_with_type_argss(visitor, node, __ast_path)
118844            }
118845            swc_visit::Either::Right(visitor) => {
118846                FoldAstPath::fold_ts_expr_with_type_argss(visitor, node, __ast_path)
118847            }
118848        }
118849    }
118850
118851    #[inline]
118852    fn fold_ts_external_module_ref(
118853        &mut self,
118854        node: TsExternalModuleRef,
118855        __ast_path: &mut AstKindPath,
118856    ) -> TsExternalModuleRef {
118857        match self {
118858            swc_visit::Either::Left(visitor) => {
118859                FoldAstPath::fold_ts_external_module_ref(visitor, node, __ast_path)
118860            }
118861            swc_visit::Either::Right(visitor) => {
118862                FoldAstPath::fold_ts_external_module_ref(visitor, node, __ast_path)
118863            }
118864        }
118865    }
118866
118867    #[inline]
118868    fn fold_ts_fn_or_constructor_type(
118869        &mut self,
118870        node: TsFnOrConstructorType,
118871        __ast_path: &mut AstKindPath,
118872    ) -> TsFnOrConstructorType {
118873        match self {
118874            swc_visit::Either::Left(visitor) => {
118875                FoldAstPath::fold_ts_fn_or_constructor_type(visitor, node, __ast_path)
118876            }
118877            swc_visit::Either::Right(visitor) => {
118878                FoldAstPath::fold_ts_fn_or_constructor_type(visitor, node, __ast_path)
118879            }
118880        }
118881    }
118882
118883    #[inline]
118884    fn fold_ts_fn_param(&mut self, node: TsFnParam, __ast_path: &mut AstKindPath) -> TsFnParam {
118885        match self {
118886            swc_visit::Either::Left(visitor) => {
118887                FoldAstPath::fold_ts_fn_param(visitor, node, __ast_path)
118888            }
118889            swc_visit::Either::Right(visitor) => {
118890                FoldAstPath::fold_ts_fn_param(visitor, node, __ast_path)
118891            }
118892        }
118893    }
118894
118895    #[inline]
118896    fn fold_ts_fn_params(
118897        &mut self,
118898        node: Vec<TsFnParam>,
118899        __ast_path: &mut AstKindPath,
118900    ) -> Vec<TsFnParam> {
118901        match self {
118902            swc_visit::Either::Left(visitor) => {
118903                FoldAstPath::fold_ts_fn_params(visitor, node, __ast_path)
118904            }
118905            swc_visit::Either::Right(visitor) => {
118906                FoldAstPath::fold_ts_fn_params(visitor, node, __ast_path)
118907            }
118908        }
118909    }
118910
118911    #[inline]
118912    fn fold_ts_fn_type(&mut self, node: TsFnType, __ast_path: &mut AstKindPath) -> TsFnType {
118913        match self {
118914            swc_visit::Either::Left(visitor) => {
118915                FoldAstPath::fold_ts_fn_type(visitor, node, __ast_path)
118916            }
118917            swc_visit::Either::Right(visitor) => {
118918                FoldAstPath::fold_ts_fn_type(visitor, node, __ast_path)
118919            }
118920        }
118921    }
118922
118923    #[inline]
118924    fn fold_ts_getter_signature(
118925        &mut self,
118926        node: TsGetterSignature,
118927        __ast_path: &mut AstKindPath,
118928    ) -> TsGetterSignature {
118929        match self {
118930            swc_visit::Either::Left(visitor) => {
118931                FoldAstPath::fold_ts_getter_signature(visitor, node, __ast_path)
118932            }
118933            swc_visit::Either::Right(visitor) => {
118934                FoldAstPath::fold_ts_getter_signature(visitor, node, __ast_path)
118935            }
118936        }
118937    }
118938
118939    #[inline]
118940    fn fold_ts_import_call_options(
118941        &mut self,
118942        node: TsImportCallOptions,
118943        __ast_path: &mut AstKindPath,
118944    ) -> TsImportCallOptions {
118945        match self {
118946            swc_visit::Either::Left(visitor) => {
118947                FoldAstPath::fold_ts_import_call_options(visitor, node, __ast_path)
118948            }
118949            swc_visit::Either::Right(visitor) => {
118950                FoldAstPath::fold_ts_import_call_options(visitor, node, __ast_path)
118951            }
118952        }
118953    }
118954
118955    #[inline]
118956    fn fold_ts_import_equals_decl(
118957        &mut self,
118958        node: TsImportEqualsDecl,
118959        __ast_path: &mut AstKindPath,
118960    ) -> TsImportEqualsDecl {
118961        match self {
118962            swc_visit::Either::Left(visitor) => {
118963                FoldAstPath::fold_ts_import_equals_decl(visitor, node, __ast_path)
118964            }
118965            swc_visit::Either::Right(visitor) => {
118966                FoldAstPath::fold_ts_import_equals_decl(visitor, node, __ast_path)
118967            }
118968        }
118969    }
118970
118971    #[inline]
118972    fn fold_ts_import_type(
118973        &mut self,
118974        node: TsImportType,
118975        __ast_path: &mut AstKindPath,
118976    ) -> TsImportType {
118977        match self {
118978            swc_visit::Either::Left(visitor) => {
118979                FoldAstPath::fold_ts_import_type(visitor, node, __ast_path)
118980            }
118981            swc_visit::Either::Right(visitor) => {
118982                FoldAstPath::fold_ts_import_type(visitor, node, __ast_path)
118983            }
118984        }
118985    }
118986
118987    #[inline]
118988    fn fold_ts_index_signature(
118989        &mut self,
118990        node: TsIndexSignature,
118991        __ast_path: &mut AstKindPath,
118992    ) -> TsIndexSignature {
118993        match self {
118994            swc_visit::Either::Left(visitor) => {
118995                FoldAstPath::fold_ts_index_signature(visitor, node, __ast_path)
118996            }
118997            swc_visit::Either::Right(visitor) => {
118998                FoldAstPath::fold_ts_index_signature(visitor, node, __ast_path)
118999            }
119000        }
119001    }
119002
119003    #[inline]
119004    fn fold_ts_indexed_access_type(
119005        &mut self,
119006        node: TsIndexedAccessType,
119007        __ast_path: &mut AstKindPath,
119008    ) -> TsIndexedAccessType {
119009        match self {
119010            swc_visit::Either::Left(visitor) => {
119011                FoldAstPath::fold_ts_indexed_access_type(visitor, node, __ast_path)
119012            }
119013            swc_visit::Either::Right(visitor) => {
119014                FoldAstPath::fold_ts_indexed_access_type(visitor, node, __ast_path)
119015            }
119016        }
119017    }
119018
119019    #[inline]
119020    fn fold_ts_infer_type(
119021        &mut self,
119022        node: TsInferType,
119023        __ast_path: &mut AstKindPath,
119024    ) -> TsInferType {
119025        match self {
119026            swc_visit::Either::Left(visitor) => {
119027                FoldAstPath::fold_ts_infer_type(visitor, node, __ast_path)
119028            }
119029            swc_visit::Either::Right(visitor) => {
119030                FoldAstPath::fold_ts_infer_type(visitor, node, __ast_path)
119031            }
119032        }
119033    }
119034
119035    #[inline]
119036    fn fold_ts_instantiation(
119037        &mut self,
119038        node: TsInstantiation,
119039        __ast_path: &mut AstKindPath,
119040    ) -> TsInstantiation {
119041        match self {
119042            swc_visit::Either::Left(visitor) => {
119043                FoldAstPath::fold_ts_instantiation(visitor, node, __ast_path)
119044            }
119045            swc_visit::Either::Right(visitor) => {
119046                FoldAstPath::fold_ts_instantiation(visitor, node, __ast_path)
119047            }
119048        }
119049    }
119050
119051    #[inline]
119052    fn fold_ts_interface_body(
119053        &mut self,
119054        node: TsInterfaceBody,
119055        __ast_path: &mut AstKindPath,
119056    ) -> TsInterfaceBody {
119057        match self {
119058            swc_visit::Either::Left(visitor) => {
119059                FoldAstPath::fold_ts_interface_body(visitor, node, __ast_path)
119060            }
119061            swc_visit::Either::Right(visitor) => {
119062                FoldAstPath::fold_ts_interface_body(visitor, node, __ast_path)
119063            }
119064        }
119065    }
119066
119067    #[inline]
119068    fn fold_ts_interface_decl(
119069        &mut self,
119070        node: TsInterfaceDecl,
119071        __ast_path: &mut AstKindPath,
119072    ) -> TsInterfaceDecl {
119073        match self {
119074            swc_visit::Either::Left(visitor) => {
119075                FoldAstPath::fold_ts_interface_decl(visitor, node, __ast_path)
119076            }
119077            swc_visit::Either::Right(visitor) => {
119078                FoldAstPath::fold_ts_interface_decl(visitor, node, __ast_path)
119079            }
119080        }
119081    }
119082
119083    #[inline]
119084    fn fold_ts_intersection_type(
119085        &mut self,
119086        node: TsIntersectionType,
119087        __ast_path: &mut AstKindPath,
119088    ) -> TsIntersectionType {
119089        match self {
119090            swc_visit::Either::Left(visitor) => {
119091                FoldAstPath::fold_ts_intersection_type(visitor, node, __ast_path)
119092            }
119093            swc_visit::Either::Right(visitor) => {
119094                FoldAstPath::fold_ts_intersection_type(visitor, node, __ast_path)
119095            }
119096        }
119097    }
119098
119099    #[inline]
119100    fn fold_ts_keyword_type(
119101        &mut self,
119102        node: TsKeywordType,
119103        __ast_path: &mut AstKindPath,
119104    ) -> TsKeywordType {
119105        match self {
119106            swc_visit::Either::Left(visitor) => {
119107                FoldAstPath::fold_ts_keyword_type(visitor, node, __ast_path)
119108            }
119109            swc_visit::Either::Right(visitor) => {
119110                FoldAstPath::fold_ts_keyword_type(visitor, node, __ast_path)
119111            }
119112        }
119113    }
119114
119115    #[inline]
119116    fn fold_ts_keyword_type_kind(
119117        &mut self,
119118        node: TsKeywordTypeKind,
119119        __ast_path: &mut AstKindPath,
119120    ) -> TsKeywordTypeKind {
119121        match self {
119122            swc_visit::Either::Left(visitor) => {
119123                FoldAstPath::fold_ts_keyword_type_kind(visitor, node, __ast_path)
119124            }
119125            swc_visit::Either::Right(visitor) => {
119126                FoldAstPath::fold_ts_keyword_type_kind(visitor, node, __ast_path)
119127            }
119128        }
119129    }
119130
119131    #[inline]
119132    fn fold_ts_lit(&mut self, node: TsLit, __ast_path: &mut AstKindPath) -> TsLit {
119133        match self {
119134            swc_visit::Either::Left(visitor) => FoldAstPath::fold_ts_lit(visitor, node, __ast_path),
119135            swc_visit::Either::Right(visitor) => {
119136                FoldAstPath::fold_ts_lit(visitor, node, __ast_path)
119137            }
119138        }
119139    }
119140
119141    #[inline]
119142    fn fold_ts_lit_type(&mut self, node: TsLitType, __ast_path: &mut AstKindPath) -> TsLitType {
119143        match self {
119144            swc_visit::Either::Left(visitor) => {
119145                FoldAstPath::fold_ts_lit_type(visitor, node, __ast_path)
119146            }
119147            swc_visit::Either::Right(visitor) => {
119148                FoldAstPath::fold_ts_lit_type(visitor, node, __ast_path)
119149            }
119150        }
119151    }
119152
119153    #[inline]
119154    fn fold_ts_mapped_type(
119155        &mut self,
119156        node: TsMappedType,
119157        __ast_path: &mut AstKindPath,
119158    ) -> TsMappedType {
119159        match self {
119160            swc_visit::Either::Left(visitor) => {
119161                FoldAstPath::fold_ts_mapped_type(visitor, node, __ast_path)
119162            }
119163            swc_visit::Either::Right(visitor) => {
119164                FoldAstPath::fold_ts_mapped_type(visitor, node, __ast_path)
119165            }
119166        }
119167    }
119168
119169    #[inline]
119170    fn fold_ts_method_signature(
119171        &mut self,
119172        node: TsMethodSignature,
119173        __ast_path: &mut AstKindPath,
119174    ) -> TsMethodSignature {
119175        match self {
119176            swc_visit::Either::Left(visitor) => {
119177                FoldAstPath::fold_ts_method_signature(visitor, node, __ast_path)
119178            }
119179            swc_visit::Either::Right(visitor) => {
119180                FoldAstPath::fold_ts_method_signature(visitor, node, __ast_path)
119181            }
119182        }
119183    }
119184
119185    #[inline]
119186    fn fold_ts_module_block(
119187        &mut self,
119188        node: TsModuleBlock,
119189        __ast_path: &mut AstKindPath,
119190    ) -> TsModuleBlock {
119191        match self {
119192            swc_visit::Either::Left(visitor) => {
119193                FoldAstPath::fold_ts_module_block(visitor, node, __ast_path)
119194            }
119195            swc_visit::Either::Right(visitor) => {
119196                FoldAstPath::fold_ts_module_block(visitor, node, __ast_path)
119197            }
119198        }
119199    }
119200
119201    #[inline]
119202    fn fold_ts_module_decl(
119203        &mut self,
119204        node: TsModuleDecl,
119205        __ast_path: &mut AstKindPath,
119206    ) -> TsModuleDecl {
119207        match self {
119208            swc_visit::Either::Left(visitor) => {
119209                FoldAstPath::fold_ts_module_decl(visitor, node, __ast_path)
119210            }
119211            swc_visit::Either::Right(visitor) => {
119212                FoldAstPath::fold_ts_module_decl(visitor, node, __ast_path)
119213            }
119214        }
119215    }
119216
119217    #[inline]
119218    fn fold_ts_module_name(
119219        &mut self,
119220        node: TsModuleName,
119221        __ast_path: &mut AstKindPath,
119222    ) -> TsModuleName {
119223        match self {
119224            swc_visit::Either::Left(visitor) => {
119225                FoldAstPath::fold_ts_module_name(visitor, node, __ast_path)
119226            }
119227            swc_visit::Either::Right(visitor) => {
119228                FoldAstPath::fold_ts_module_name(visitor, node, __ast_path)
119229            }
119230        }
119231    }
119232
119233    #[inline]
119234    fn fold_ts_module_ref(
119235        &mut self,
119236        node: TsModuleRef,
119237        __ast_path: &mut AstKindPath,
119238    ) -> TsModuleRef {
119239        match self {
119240            swc_visit::Either::Left(visitor) => {
119241                FoldAstPath::fold_ts_module_ref(visitor, node, __ast_path)
119242            }
119243            swc_visit::Either::Right(visitor) => {
119244                FoldAstPath::fold_ts_module_ref(visitor, node, __ast_path)
119245            }
119246        }
119247    }
119248
119249    #[inline]
119250    fn fold_ts_namespace_body(
119251        &mut self,
119252        node: TsNamespaceBody,
119253        __ast_path: &mut AstKindPath,
119254    ) -> TsNamespaceBody {
119255        match self {
119256            swc_visit::Either::Left(visitor) => {
119257                FoldAstPath::fold_ts_namespace_body(visitor, node, __ast_path)
119258            }
119259            swc_visit::Either::Right(visitor) => {
119260                FoldAstPath::fold_ts_namespace_body(visitor, node, __ast_path)
119261            }
119262        }
119263    }
119264
119265    #[inline]
119266    fn fold_ts_namespace_decl(
119267        &mut self,
119268        node: TsNamespaceDecl,
119269        __ast_path: &mut AstKindPath,
119270    ) -> TsNamespaceDecl {
119271        match self {
119272            swc_visit::Either::Left(visitor) => {
119273                FoldAstPath::fold_ts_namespace_decl(visitor, node, __ast_path)
119274            }
119275            swc_visit::Either::Right(visitor) => {
119276                FoldAstPath::fold_ts_namespace_decl(visitor, node, __ast_path)
119277            }
119278        }
119279    }
119280
119281    #[inline]
119282    fn fold_ts_namespace_export_decl(
119283        &mut self,
119284        node: TsNamespaceExportDecl,
119285        __ast_path: &mut AstKindPath,
119286    ) -> TsNamespaceExportDecl {
119287        match self {
119288            swc_visit::Either::Left(visitor) => {
119289                FoldAstPath::fold_ts_namespace_export_decl(visitor, node, __ast_path)
119290            }
119291            swc_visit::Either::Right(visitor) => {
119292                FoldAstPath::fold_ts_namespace_export_decl(visitor, node, __ast_path)
119293            }
119294        }
119295    }
119296
119297    #[inline]
119298    fn fold_ts_non_null_expr(
119299        &mut self,
119300        node: TsNonNullExpr,
119301        __ast_path: &mut AstKindPath,
119302    ) -> TsNonNullExpr {
119303        match self {
119304            swc_visit::Either::Left(visitor) => {
119305                FoldAstPath::fold_ts_non_null_expr(visitor, node, __ast_path)
119306            }
119307            swc_visit::Either::Right(visitor) => {
119308                FoldAstPath::fold_ts_non_null_expr(visitor, node, __ast_path)
119309            }
119310        }
119311    }
119312
119313    #[inline]
119314    fn fold_ts_optional_type(
119315        &mut self,
119316        node: TsOptionalType,
119317        __ast_path: &mut AstKindPath,
119318    ) -> TsOptionalType {
119319        match self {
119320            swc_visit::Either::Left(visitor) => {
119321                FoldAstPath::fold_ts_optional_type(visitor, node, __ast_path)
119322            }
119323            swc_visit::Either::Right(visitor) => {
119324                FoldAstPath::fold_ts_optional_type(visitor, node, __ast_path)
119325            }
119326        }
119327    }
119328
119329    #[inline]
119330    fn fold_ts_param_prop(
119331        &mut self,
119332        node: TsParamProp,
119333        __ast_path: &mut AstKindPath,
119334    ) -> TsParamProp {
119335        match self {
119336            swc_visit::Either::Left(visitor) => {
119337                FoldAstPath::fold_ts_param_prop(visitor, node, __ast_path)
119338            }
119339            swc_visit::Either::Right(visitor) => {
119340                FoldAstPath::fold_ts_param_prop(visitor, node, __ast_path)
119341            }
119342        }
119343    }
119344
119345    #[inline]
119346    fn fold_ts_param_prop_param(
119347        &mut self,
119348        node: TsParamPropParam,
119349        __ast_path: &mut AstKindPath,
119350    ) -> TsParamPropParam {
119351        match self {
119352            swc_visit::Either::Left(visitor) => {
119353                FoldAstPath::fold_ts_param_prop_param(visitor, node, __ast_path)
119354            }
119355            swc_visit::Either::Right(visitor) => {
119356                FoldAstPath::fold_ts_param_prop_param(visitor, node, __ast_path)
119357            }
119358        }
119359    }
119360
119361    #[inline]
119362    fn fold_ts_parenthesized_type(
119363        &mut self,
119364        node: TsParenthesizedType,
119365        __ast_path: &mut AstKindPath,
119366    ) -> TsParenthesizedType {
119367        match self {
119368            swc_visit::Either::Left(visitor) => {
119369                FoldAstPath::fold_ts_parenthesized_type(visitor, node, __ast_path)
119370            }
119371            swc_visit::Either::Right(visitor) => {
119372                FoldAstPath::fold_ts_parenthesized_type(visitor, node, __ast_path)
119373            }
119374        }
119375    }
119376
119377    #[inline]
119378    fn fold_ts_property_signature(
119379        &mut self,
119380        node: TsPropertySignature,
119381        __ast_path: &mut AstKindPath,
119382    ) -> TsPropertySignature {
119383        match self {
119384            swc_visit::Either::Left(visitor) => {
119385                FoldAstPath::fold_ts_property_signature(visitor, node, __ast_path)
119386            }
119387            swc_visit::Either::Right(visitor) => {
119388                FoldAstPath::fold_ts_property_signature(visitor, node, __ast_path)
119389            }
119390        }
119391    }
119392
119393    #[inline]
119394    fn fold_ts_qualified_name(
119395        &mut self,
119396        node: TsQualifiedName,
119397        __ast_path: &mut AstKindPath,
119398    ) -> TsQualifiedName {
119399        match self {
119400            swc_visit::Either::Left(visitor) => {
119401                FoldAstPath::fold_ts_qualified_name(visitor, node, __ast_path)
119402            }
119403            swc_visit::Either::Right(visitor) => {
119404                FoldAstPath::fold_ts_qualified_name(visitor, node, __ast_path)
119405            }
119406        }
119407    }
119408
119409    #[inline]
119410    fn fold_ts_rest_type(&mut self, node: TsRestType, __ast_path: &mut AstKindPath) -> TsRestType {
119411        match self {
119412            swc_visit::Either::Left(visitor) => {
119413                FoldAstPath::fold_ts_rest_type(visitor, node, __ast_path)
119414            }
119415            swc_visit::Either::Right(visitor) => {
119416                FoldAstPath::fold_ts_rest_type(visitor, node, __ast_path)
119417            }
119418        }
119419    }
119420
119421    #[inline]
119422    fn fold_ts_satisfies_expr(
119423        &mut self,
119424        node: TsSatisfiesExpr,
119425        __ast_path: &mut AstKindPath,
119426    ) -> TsSatisfiesExpr {
119427        match self {
119428            swc_visit::Either::Left(visitor) => {
119429                FoldAstPath::fold_ts_satisfies_expr(visitor, node, __ast_path)
119430            }
119431            swc_visit::Either::Right(visitor) => {
119432                FoldAstPath::fold_ts_satisfies_expr(visitor, node, __ast_path)
119433            }
119434        }
119435    }
119436
119437    #[inline]
119438    fn fold_ts_setter_signature(
119439        &mut self,
119440        node: TsSetterSignature,
119441        __ast_path: &mut AstKindPath,
119442    ) -> TsSetterSignature {
119443        match self {
119444            swc_visit::Either::Left(visitor) => {
119445                FoldAstPath::fold_ts_setter_signature(visitor, node, __ast_path)
119446            }
119447            swc_visit::Either::Right(visitor) => {
119448                FoldAstPath::fold_ts_setter_signature(visitor, node, __ast_path)
119449            }
119450        }
119451    }
119452
119453    #[inline]
119454    fn fold_ts_this_type(&mut self, node: TsThisType, __ast_path: &mut AstKindPath) -> TsThisType {
119455        match self {
119456            swc_visit::Either::Left(visitor) => {
119457                FoldAstPath::fold_ts_this_type(visitor, node, __ast_path)
119458            }
119459            swc_visit::Either::Right(visitor) => {
119460                FoldAstPath::fold_ts_this_type(visitor, node, __ast_path)
119461            }
119462        }
119463    }
119464
119465    #[inline]
119466    fn fold_ts_this_type_or_ident(
119467        &mut self,
119468        node: TsThisTypeOrIdent,
119469        __ast_path: &mut AstKindPath,
119470    ) -> TsThisTypeOrIdent {
119471        match self {
119472            swc_visit::Either::Left(visitor) => {
119473                FoldAstPath::fold_ts_this_type_or_ident(visitor, node, __ast_path)
119474            }
119475            swc_visit::Either::Right(visitor) => {
119476                FoldAstPath::fold_ts_this_type_or_ident(visitor, node, __ast_path)
119477            }
119478        }
119479    }
119480
119481    #[inline]
119482    fn fold_ts_tpl_lit_type(
119483        &mut self,
119484        node: TsTplLitType,
119485        __ast_path: &mut AstKindPath,
119486    ) -> TsTplLitType {
119487        match self {
119488            swc_visit::Either::Left(visitor) => {
119489                FoldAstPath::fold_ts_tpl_lit_type(visitor, node, __ast_path)
119490            }
119491            swc_visit::Either::Right(visitor) => {
119492                FoldAstPath::fold_ts_tpl_lit_type(visitor, node, __ast_path)
119493            }
119494        }
119495    }
119496
119497    #[inline]
119498    fn fold_ts_tuple_element(
119499        &mut self,
119500        node: TsTupleElement,
119501        __ast_path: &mut AstKindPath,
119502    ) -> TsTupleElement {
119503        match self {
119504            swc_visit::Either::Left(visitor) => {
119505                FoldAstPath::fold_ts_tuple_element(visitor, node, __ast_path)
119506            }
119507            swc_visit::Either::Right(visitor) => {
119508                FoldAstPath::fold_ts_tuple_element(visitor, node, __ast_path)
119509            }
119510        }
119511    }
119512
119513    #[inline]
119514    fn fold_ts_tuple_elements(
119515        &mut self,
119516        node: Vec<TsTupleElement>,
119517        __ast_path: &mut AstKindPath,
119518    ) -> Vec<TsTupleElement> {
119519        match self {
119520            swc_visit::Either::Left(visitor) => {
119521                FoldAstPath::fold_ts_tuple_elements(visitor, node, __ast_path)
119522            }
119523            swc_visit::Either::Right(visitor) => {
119524                FoldAstPath::fold_ts_tuple_elements(visitor, node, __ast_path)
119525            }
119526        }
119527    }
119528
119529    #[inline]
119530    fn fold_ts_tuple_type(
119531        &mut self,
119532        node: TsTupleType,
119533        __ast_path: &mut AstKindPath,
119534    ) -> TsTupleType {
119535        match self {
119536            swc_visit::Either::Left(visitor) => {
119537                FoldAstPath::fold_ts_tuple_type(visitor, node, __ast_path)
119538            }
119539            swc_visit::Either::Right(visitor) => {
119540                FoldAstPath::fold_ts_tuple_type(visitor, node, __ast_path)
119541            }
119542        }
119543    }
119544
119545    #[inline]
119546    fn fold_ts_type(&mut self, node: TsType, __ast_path: &mut AstKindPath) -> TsType {
119547        match self {
119548            swc_visit::Either::Left(visitor) => {
119549                FoldAstPath::fold_ts_type(visitor, node, __ast_path)
119550            }
119551            swc_visit::Either::Right(visitor) => {
119552                FoldAstPath::fold_ts_type(visitor, node, __ast_path)
119553            }
119554        }
119555    }
119556
119557    #[inline]
119558    fn fold_ts_type_alias_decl(
119559        &mut self,
119560        node: TsTypeAliasDecl,
119561        __ast_path: &mut AstKindPath,
119562    ) -> TsTypeAliasDecl {
119563        match self {
119564            swc_visit::Either::Left(visitor) => {
119565                FoldAstPath::fold_ts_type_alias_decl(visitor, node, __ast_path)
119566            }
119567            swc_visit::Either::Right(visitor) => {
119568                FoldAstPath::fold_ts_type_alias_decl(visitor, node, __ast_path)
119569            }
119570        }
119571    }
119572
119573    #[inline]
119574    fn fold_ts_type_ann(&mut self, node: TsTypeAnn, __ast_path: &mut AstKindPath) -> TsTypeAnn {
119575        match self {
119576            swc_visit::Either::Left(visitor) => {
119577                FoldAstPath::fold_ts_type_ann(visitor, node, __ast_path)
119578            }
119579            swc_visit::Either::Right(visitor) => {
119580                FoldAstPath::fold_ts_type_ann(visitor, node, __ast_path)
119581            }
119582        }
119583    }
119584
119585    #[inline]
119586    fn fold_ts_type_assertion(
119587        &mut self,
119588        node: TsTypeAssertion,
119589        __ast_path: &mut AstKindPath,
119590    ) -> TsTypeAssertion {
119591        match self {
119592            swc_visit::Either::Left(visitor) => {
119593                FoldAstPath::fold_ts_type_assertion(visitor, node, __ast_path)
119594            }
119595            swc_visit::Either::Right(visitor) => {
119596                FoldAstPath::fold_ts_type_assertion(visitor, node, __ast_path)
119597            }
119598        }
119599    }
119600
119601    #[inline]
119602    fn fold_ts_type_element(
119603        &mut self,
119604        node: TsTypeElement,
119605        __ast_path: &mut AstKindPath,
119606    ) -> TsTypeElement {
119607        match self {
119608            swc_visit::Either::Left(visitor) => {
119609                FoldAstPath::fold_ts_type_element(visitor, node, __ast_path)
119610            }
119611            swc_visit::Either::Right(visitor) => {
119612                FoldAstPath::fold_ts_type_element(visitor, node, __ast_path)
119613            }
119614        }
119615    }
119616
119617    #[inline]
119618    fn fold_ts_type_elements(
119619        &mut self,
119620        node: Vec<TsTypeElement>,
119621        __ast_path: &mut AstKindPath,
119622    ) -> Vec<TsTypeElement> {
119623        match self {
119624            swc_visit::Either::Left(visitor) => {
119625                FoldAstPath::fold_ts_type_elements(visitor, node, __ast_path)
119626            }
119627            swc_visit::Either::Right(visitor) => {
119628                FoldAstPath::fold_ts_type_elements(visitor, node, __ast_path)
119629            }
119630        }
119631    }
119632
119633    #[inline]
119634    fn fold_ts_type_lit(&mut self, node: TsTypeLit, __ast_path: &mut AstKindPath) -> TsTypeLit {
119635        match self {
119636            swc_visit::Either::Left(visitor) => {
119637                FoldAstPath::fold_ts_type_lit(visitor, node, __ast_path)
119638            }
119639            swc_visit::Either::Right(visitor) => {
119640                FoldAstPath::fold_ts_type_lit(visitor, node, __ast_path)
119641            }
119642        }
119643    }
119644
119645    #[inline]
119646    fn fold_ts_type_operator(
119647        &mut self,
119648        node: TsTypeOperator,
119649        __ast_path: &mut AstKindPath,
119650    ) -> TsTypeOperator {
119651        match self {
119652            swc_visit::Either::Left(visitor) => {
119653                FoldAstPath::fold_ts_type_operator(visitor, node, __ast_path)
119654            }
119655            swc_visit::Either::Right(visitor) => {
119656                FoldAstPath::fold_ts_type_operator(visitor, node, __ast_path)
119657            }
119658        }
119659    }
119660
119661    #[inline]
119662    fn fold_ts_type_operator_op(
119663        &mut self,
119664        node: TsTypeOperatorOp,
119665        __ast_path: &mut AstKindPath,
119666    ) -> TsTypeOperatorOp {
119667        match self {
119668            swc_visit::Either::Left(visitor) => {
119669                FoldAstPath::fold_ts_type_operator_op(visitor, node, __ast_path)
119670            }
119671            swc_visit::Either::Right(visitor) => {
119672                FoldAstPath::fold_ts_type_operator_op(visitor, node, __ast_path)
119673            }
119674        }
119675    }
119676
119677    #[inline]
119678    fn fold_ts_type_param(
119679        &mut self,
119680        node: TsTypeParam,
119681        __ast_path: &mut AstKindPath,
119682    ) -> TsTypeParam {
119683        match self {
119684            swc_visit::Either::Left(visitor) => {
119685                FoldAstPath::fold_ts_type_param(visitor, node, __ast_path)
119686            }
119687            swc_visit::Either::Right(visitor) => {
119688                FoldAstPath::fold_ts_type_param(visitor, node, __ast_path)
119689            }
119690        }
119691    }
119692
119693    #[inline]
119694    fn fold_ts_type_param_decl(
119695        &mut self,
119696        node: TsTypeParamDecl,
119697        __ast_path: &mut AstKindPath,
119698    ) -> TsTypeParamDecl {
119699        match self {
119700            swc_visit::Either::Left(visitor) => {
119701                FoldAstPath::fold_ts_type_param_decl(visitor, node, __ast_path)
119702            }
119703            swc_visit::Either::Right(visitor) => {
119704                FoldAstPath::fold_ts_type_param_decl(visitor, node, __ast_path)
119705            }
119706        }
119707    }
119708
119709    #[inline]
119710    fn fold_ts_type_param_instantiation(
119711        &mut self,
119712        node: TsTypeParamInstantiation,
119713        __ast_path: &mut AstKindPath,
119714    ) -> TsTypeParamInstantiation {
119715        match self {
119716            swc_visit::Either::Left(visitor) => {
119717                FoldAstPath::fold_ts_type_param_instantiation(visitor, node, __ast_path)
119718            }
119719            swc_visit::Either::Right(visitor) => {
119720                FoldAstPath::fold_ts_type_param_instantiation(visitor, node, __ast_path)
119721            }
119722        }
119723    }
119724
119725    #[inline]
119726    fn fold_ts_type_params(
119727        &mut self,
119728        node: Vec<TsTypeParam>,
119729        __ast_path: &mut AstKindPath,
119730    ) -> Vec<TsTypeParam> {
119731        match self {
119732            swc_visit::Either::Left(visitor) => {
119733                FoldAstPath::fold_ts_type_params(visitor, node, __ast_path)
119734            }
119735            swc_visit::Either::Right(visitor) => {
119736                FoldAstPath::fold_ts_type_params(visitor, node, __ast_path)
119737            }
119738        }
119739    }
119740
119741    #[inline]
119742    fn fold_ts_type_predicate(
119743        &mut self,
119744        node: TsTypePredicate,
119745        __ast_path: &mut AstKindPath,
119746    ) -> TsTypePredicate {
119747        match self {
119748            swc_visit::Either::Left(visitor) => {
119749                FoldAstPath::fold_ts_type_predicate(visitor, node, __ast_path)
119750            }
119751            swc_visit::Either::Right(visitor) => {
119752                FoldAstPath::fold_ts_type_predicate(visitor, node, __ast_path)
119753            }
119754        }
119755    }
119756
119757    #[inline]
119758    fn fold_ts_type_query(
119759        &mut self,
119760        node: TsTypeQuery,
119761        __ast_path: &mut AstKindPath,
119762    ) -> TsTypeQuery {
119763        match self {
119764            swc_visit::Either::Left(visitor) => {
119765                FoldAstPath::fold_ts_type_query(visitor, node, __ast_path)
119766            }
119767            swc_visit::Either::Right(visitor) => {
119768                FoldAstPath::fold_ts_type_query(visitor, node, __ast_path)
119769            }
119770        }
119771    }
119772
119773    #[inline]
119774    fn fold_ts_type_query_expr(
119775        &mut self,
119776        node: TsTypeQueryExpr,
119777        __ast_path: &mut AstKindPath,
119778    ) -> TsTypeQueryExpr {
119779        match self {
119780            swc_visit::Either::Left(visitor) => {
119781                FoldAstPath::fold_ts_type_query_expr(visitor, node, __ast_path)
119782            }
119783            swc_visit::Either::Right(visitor) => {
119784                FoldAstPath::fold_ts_type_query_expr(visitor, node, __ast_path)
119785            }
119786        }
119787    }
119788
119789    #[inline]
119790    fn fold_ts_type_ref(&mut self, node: TsTypeRef, __ast_path: &mut AstKindPath) -> TsTypeRef {
119791        match self {
119792            swc_visit::Either::Left(visitor) => {
119793                FoldAstPath::fold_ts_type_ref(visitor, node, __ast_path)
119794            }
119795            swc_visit::Either::Right(visitor) => {
119796                FoldAstPath::fold_ts_type_ref(visitor, node, __ast_path)
119797            }
119798        }
119799    }
119800
119801    #[inline]
119802    fn fold_ts_types(
119803        &mut self,
119804        node: Vec<Box<TsType>>,
119805        __ast_path: &mut AstKindPath,
119806    ) -> Vec<Box<TsType>> {
119807        match self {
119808            swc_visit::Either::Left(visitor) => {
119809                FoldAstPath::fold_ts_types(visitor, node, __ast_path)
119810            }
119811            swc_visit::Either::Right(visitor) => {
119812                FoldAstPath::fold_ts_types(visitor, node, __ast_path)
119813            }
119814        }
119815    }
119816
119817    #[inline]
119818    fn fold_ts_union_or_intersection_type(
119819        &mut self,
119820        node: TsUnionOrIntersectionType,
119821        __ast_path: &mut AstKindPath,
119822    ) -> TsUnionOrIntersectionType {
119823        match self {
119824            swc_visit::Either::Left(visitor) => {
119825                FoldAstPath::fold_ts_union_or_intersection_type(visitor, node, __ast_path)
119826            }
119827            swc_visit::Either::Right(visitor) => {
119828                FoldAstPath::fold_ts_union_or_intersection_type(visitor, node, __ast_path)
119829            }
119830        }
119831    }
119832
119833    #[inline]
119834    fn fold_ts_union_type(
119835        &mut self,
119836        node: TsUnionType,
119837        __ast_path: &mut AstKindPath,
119838    ) -> TsUnionType {
119839        match self {
119840            swc_visit::Either::Left(visitor) => {
119841                FoldAstPath::fold_ts_union_type(visitor, node, __ast_path)
119842            }
119843            swc_visit::Either::Right(visitor) => {
119844                FoldAstPath::fold_ts_union_type(visitor, node, __ast_path)
119845            }
119846        }
119847    }
119848
119849    #[inline]
119850    fn fold_unary_expr(&mut self, node: UnaryExpr, __ast_path: &mut AstKindPath) -> UnaryExpr {
119851        match self {
119852            swc_visit::Either::Left(visitor) => {
119853                FoldAstPath::fold_unary_expr(visitor, node, __ast_path)
119854            }
119855            swc_visit::Either::Right(visitor) => {
119856                FoldAstPath::fold_unary_expr(visitor, node, __ast_path)
119857            }
119858        }
119859    }
119860
119861    #[inline]
119862    fn fold_unary_op(&mut self, node: UnaryOp, __ast_path: &mut AstKindPath) -> UnaryOp {
119863        match self {
119864            swc_visit::Either::Left(visitor) => {
119865                FoldAstPath::fold_unary_op(visitor, node, __ast_path)
119866            }
119867            swc_visit::Either::Right(visitor) => {
119868                FoldAstPath::fold_unary_op(visitor, node, __ast_path)
119869            }
119870        }
119871    }
119872
119873    #[inline]
119874    fn fold_update_expr(&mut self, node: UpdateExpr, __ast_path: &mut AstKindPath) -> UpdateExpr {
119875        match self {
119876            swc_visit::Either::Left(visitor) => {
119877                FoldAstPath::fold_update_expr(visitor, node, __ast_path)
119878            }
119879            swc_visit::Either::Right(visitor) => {
119880                FoldAstPath::fold_update_expr(visitor, node, __ast_path)
119881            }
119882        }
119883    }
119884
119885    #[inline]
119886    fn fold_update_op(&mut self, node: UpdateOp, __ast_path: &mut AstKindPath) -> UpdateOp {
119887        match self {
119888            swc_visit::Either::Left(visitor) => {
119889                FoldAstPath::fold_update_op(visitor, node, __ast_path)
119890            }
119891            swc_visit::Either::Right(visitor) => {
119892                FoldAstPath::fold_update_op(visitor, node, __ast_path)
119893            }
119894        }
119895    }
119896
119897    #[inline]
119898    fn fold_using_decl(&mut self, node: UsingDecl, __ast_path: &mut AstKindPath) -> UsingDecl {
119899        match self {
119900            swc_visit::Either::Left(visitor) => {
119901                FoldAstPath::fold_using_decl(visitor, node, __ast_path)
119902            }
119903            swc_visit::Either::Right(visitor) => {
119904                FoldAstPath::fold_using_decl(visitor, node, __ast_path)
119905            }
119906        }
119907    }
119908
119909    #[inline]
119910    fn fold_var_decl(&mut self, node: VarDecl, __ast_path: &mut AstKindPath) -> VarDecl {
119911        match self {
119912            swc_visit::Either::Left(visitor) => {
119913                FoldAstPath::fold_var_decl(visitor, node, __ast_path)
119914            }
119915            swc_visit::Either::Right(visitor) => {
119916                FoldAstPath::fold_var_decl(visitor, node, __ast_path)
119917            }
119918        }
119919    }
119920
119921    #[inline]
119922    fn fold_var_decl_kind(
119923        &mut self,
119924        node: VarDeclKind,
119925        __ast_path: &mut AstKindPath,
119926    ) -> VarDeclKind {
119927        match self {
119928            swc_visit::Either::Left(visitor) => {
119929                FoldAstPath::fold_var_decl_kind(visitor, node, __ast_path)
119930            }
119931            swc_visit::Either::Right(visitor) => {
119932                FoldAstPath::fold_var_decl_kind(visitor, node, __ast_path)
119933            }
119934        }
119935    }
119936
119937    #[inline]
119938    fn fold_var_decl_or_expr(
119939        &mut self,
119940        node: VarDeclOrExpr,
119941        __ast_path: &mut AstKindPath,
119942    ) -> VarDeclOrExpr {
119943        match self {
119944            swc_visit::Either::Left(visitor) => {
119945                FoldAstPath::fold_var_decl_or_expr(visitor, node, __ast_path)
119946            }
119947            swc_visit::Either::Right(visitor) => {
119948                FoldAstPath::fold_var_decl_or_expr(visitor, node, __ast_path)
119949            }
119950        }
119951    }
119952
119953    #[inline]
119954    fn fold_var_declarator(
119955        &mut self,
119956        node: VarDeclarator,
119957        __ast_path: &mut AstKindPath,
119958    ) -> VarDeclarator {
119959        match self {
119960            swc_visit::Either::Left(visitor) => {
119961                FoldAstPath::fold_var_declarator(visitor, node, __ast_path)
119962            }
119963            swc_visit::Either::Right(visitor) => {
119964                FoldAstPath::fold_var_declarator(visitor, node, __ast_path)
119965            }
119966        }
119967    }
119968
119969    #[inline]
119970    fn fold_var_declarators(
119971        &mut self,
119972        node: Vec<VarDeclarator>,
119973        __ast_path: &mut AstKindPath,
119974    ) -> Vec<VarDeclarator> {
119975        match self {
119976            swc_visit::Either::Left(visitor) => {
119977                FoldAstPath::fold_var_declarators(visitor, node, __ast_path)
119978            }
119979            swc_visit::Either::Right(visitor) => {
119980                FoldAstPath::fold_var_declarators(visitor, node, __ast_path)
119981            }
119982        }
119983    }
119984
119985    #[inline]
119986    fn fold_while_stmt(&mut self, node: WhileStmt, __ast_path: &mut AstKindPath) -> WhileStmt {
119987        match self {
119988            swc_visit::Either::Left(visitor) => {
119989                FoldAstPath::fold_while_stmt(visitor, node, __ast_path)
119990            }
119991            swc_visit::Either::Right(visitor) => {
119992                FoldAstPath::fold_while_stmt(visitor, node, __ast_path)
119993            }
119994        }
119995    }
119996
119997    #[inline]
119998    fn fold_with_stmt(&mut self, node: WithStmt, __ast_path: &mut AstKindPath) -> WithStmt {
119999        match self {
120000            swc_visit::Either::Left(visitor) => {
120001                FoldAstPath::fold_with_stmt(visitor, node, __ast_path)
120002            }
120003            swc_visit::Either::Right(visitor) => {
120004                FoldAstPath::fold_with_stmt(visitor, node, __ast_path)
120005            }
120006        }
120007    }
120008
120009    #[inline]
120010    fn fold_yield_expr(&mut self, node: YieldExpr, __ast_path: &mut AstKindPath) -> YieldExpr {
120011        match self {
120012            swc_visit::Either::Left(visitor) => {
120013                FoldAstPath::fold_yield_expr(visitor, node, __ast_path)
120014            }
120015            swc_visit::Either::Right(visitor) => {
120016                FoldAstPath::fold_yield_expr(visitor, node, __ast_path)
120017            }
120018        }
120019    }
120020}
120021#[cfg(any(docsrs, feature = "path"))]
120022#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
120023impl<V> FoldAstPath for ::swc_visit::Optional<V>
120024where
120025    V: FoldAstPath,
120026{
120027    #[inline]
120028    fn fold_accessibility(
120029        &mut self,
120030        node: Accessibility,
120031        __ast_path: &mut AstKindPath,
120032    ) -> Accessibility {
120033        if self.enabled {
120034            <V as FoldAstPath>::fold_accessibility(&mut self.visitor, node, __ast_path)
120035        } else {
120036            node
120037        }
120038    }
120039
120040    #[inline]
120041    fn fold_array_lit(&mut self, node: ArrayLit, __ast_path: &mut AstKindPath) -> ArrayLit {
120042        if self.enabled {
120043            <V as FoldAstPath>::fold_array_lit(&mut self.visitor, node, __ast_path)
120044        } else {
120045            node
120046        }
120047    }
120048
120049    #[inline]
120050    fn fold_array_pat(&mut self, node: ArrayPat, __ast_path: &mut AstKindPath) -> ArrayPat {
120051        if self.enabled {
120052            <V as FoldAstPath>::fold_array_pat(&mut self.visitor, node, __ast_path)
120053        } else {
120054            node
120055        }
120056    }
120057
120058    #[inline]
120059    fn fold_arrow_expr(&mut self, node: ArrowExpr, __ast_path: &mut AstKindPath) -> ArrowExpr {
120060        if self.enabled {
120061            <V as FoldAstPath>::fold_arrow_expr(&mut self.visitor, node, __ast_path)
120062        } else {
120063            node
120064        }
120065    }
120066
120067    #[inline]
120068    fn fold_assign_expr(&mut self, node: AssignExpr, __ast_path: &mut AstKindPath) -> AssignExpr {
120069        if self.enabled {
120070            <V as FoldAstPath>::fold_assign_expr(&mut self.visitor, node, __ast_path)
120071        } else {
120072            node
120073        }
120074    }
120075
120076    #[inline]
120077    fn fold_assign_op(&mut self, node: AssignOp, __ast_path: &mut AstKindPath) -> AssignOp {
120078        if self.enabled {
120079            <V as FoldAstPath>::fold_assign_op(&mut self.visitor, node, __ast_path)
120080        } else {
120081            node
120082        }
120083    }
120084
120085    #[inline]
120086    fn fold_assign_pat(&mut self, node: AssignPat, __ast_path: &mut AstKindPath) -> AssignPat {
120087        if self.enabled {
120088            <V as FoldAstPath>::fold_assign_pat(&mut self.visitor, node, __ast_path)
120089        } else {
120090            node
120091        }
120092    }
120093
120094    #[inline]
120095    fn fold_assign_pat_prop(
120096        &mut self,
120097        node: AssignPatProp,
120098        __ast_path: &mut AstKindPath,
120099    ) -> AssignPatProp {
120100        if self.enabled {
120101            <V as FoldAstPath>::fold_assign_pat_prop(&mut self.visitor, node, __ast_path)
120102        } else {
120103            node
120104        }
120105    }
120106
120107    #[inline]
120108    fn fold_assign_prop(&mut self, node: AssignProp, __ast_path: &mut AstKindPath) -> AssignProp {
120109        if self.enabled {
120110            <V as FoldAstPath>::fold_assign_prop(&mut self.visitor, node, __ast_path)
120111        } else {
120112            node
120113        }
120114    }
120115
120116    #[inline]
120117    fn fold_assign_target(
120118        &mut self,
120119        node: AssignTarget,
120120        __ast_path: &mut AstKindPath,
120121    ) -> AssignTarget {
120122        if self.enabled {
120123            <V as FoldAstPath>::fold_assign_target(&mut self.visitor, node, __ast_path)
120124        } else {
120125            node
120126        }
120127    }
120128
120129    #[inline]
120130    fn fold_assign_target_pat(
120131        &mut self,
120132        node: AssignTargetPat,
120133        __ast_path: &mut AstKindPath,
120134    ) -> AssignTargetPat {
120135        if self.enabled {
120136            <V as FoldAstPath>::fold_assign_target_pat(&mut self.visitor, node, __ast_path)
120137        } else {
120138            node
120139        }
120140    }
120141
120142    #[inline]
120143    fn fold_atom(
120144        &mut self,
120145        node: swc_atoms::Atom,
120146        __ast_path: &mut AstKindPath,
120147    ) -> swc_atoms::Atom {
120148        if self.enabled {
120149            <V as FoldAstPath>::fold_atom(&mut self.visitor, node, __ast_path)
120150        } else {
120151            node
120152        }
120153    }
120154
120155    #[inline]
120156    fn fold_auto_accessor(
120157        &mut self,
120158        node: AutoAccessor,
120159        __ast_path: &mut AstKindPath,
120160    ) -> AutoAccessor {
120161        if self.enabled {
120162            <V as FoldAstPath>::fold_auto_accessor(&mut self.visitor, node, __ast_path)
120163        } else {
120164            node
120165        }
120166    }
120167
120168    #[inline]
120169    fn fold_await_expr(&mut self, node: AwaitExpr, __ast_path: &mut AstKindPath) -> AwaitExpr {
120170        if self.enabled {
120171            <V as FoldAstPath>::fold_await_expr(&mut self.visitor, node, __ast_path)
120172        } else {
120173            node
120174        }
120175    }
120176
120177    #[inline]
120178    fn fold_big_int(&mut self, node: BigInt, __ast_path: &mut AstKindPath) -> BigInt {
120179        if self.enabled {
120180            <V as FoldAstPath>::fold_big_int(&mut self.visitor, node, __ast_path)
120181        } else {
120182            node
120183        }
120184    }
120185
120186    #[inline]
120187    fn fold_big_int_value(
120188        &mut self,
120189        node: BigIntValue,
120190        __ast_path: &mut AstKindPath,
120191    ) -> BigIntValue {
120192        if self.enabled {
120193            <V as FoldAstPath>::fold_big_int_value(&mut self.visitor, node, __ast_path)
120194        } else {
120195            node
120196        }
120197    }
120198
120199    #[inline]
120200    fn fold_bin_expr(&mut self, node: BinExpr, __ast_path: &mut AstKindPath) -> BinExpr {
120201        if self.enabled {
120202            <V as FoldAstPath>::fold_bin_expr(&mut self.visitor, node, __ast_path)
120203        } else {
120204            node
120205        }
120206    }
120207
120208    #[inline]
120209    fn fold_binary_op(&mut self, node: BinaryOp, __ast_path: &mut AstKindPath) -> BinaryOp {
120210        if self.enabled {
120211            <V as FoldAstPath>::fold_binary_op(&mut self.visitor, node, __ast_path)
120212        } else {
120213            node
120214        }
120215    }
120216
120217    #[inline]
120218    fn fold_binding_ident(
120219        &mut self,
120220        node: BindingIdent,
120221        __ast_path: &mut AstKindPath,
120222    ) -> BindingIdent {
120223        if self.enabled {
120224            <V as FoldAstPath>::fold_binding_ident(&mut self.visitor, node, __ast_path)
120225        } else {
120226            node
120227        }
120228    }
120229
120230    #[inline]
120231    fn fold_block_stmt(&mut self, node: BlockStmt, __ast_path: &mut AstKindPath) -> BlockStmt {
120232        if self.enabled {
120233            <V as FoldAstPath>::fold_block_stmt(&mut self.visitor, node, __ast_path)
120234        } else {
120235            node
120236        }
120237    }
120238
120239    #[inline]
120240    fn fold_block_stmt_or_expr(
120241        &mut self,
120242        node: BlockStmtOrExpr,
120243        __ast_path: &mut AstKindPath,
120244    ) -> BlockStmtOrExpr {
120245        if self.enabled {
120246            <V as FoldAstPath>::fold_block_stmt_or_expr(&mut self.visitor, node, __ast_path)
120247        } else {
120248            node
120249        }
120250    }
120251
120252    #[inline]
120253    fn fold_bool(&mut self, node: Bool, __ast_path: &mut AstKindPath) -> Bool {
120254        if self.enabled {
120255            <V as FoldAstPath>::fold_bool(&mut self.visitor, node, __ast_path)
120256        } else {
120257            node
120258        }
120259    }
120260
120261    #[inline]
120262    fn fold_break_stmt(&mut self, node: BreakStmt, __ast_path: &mut AstKindPath) -> BreakStmt {
120263        if self.enabled {
120264            <V as FoldAstPath>::fold_break_stmt(&mut self.visitor, node, __ast_path)
120265        } else {
120266            node
120267        }
120268    }
120269
120270    #[inline]
120271    fn fold_call_expr(&mut self, node: CallExpr, __ast_path: &mut AstKindPath) -> CallExpr {
120272        if self.enabled {
120273            <V as FoldAstPath>::fold_call_expr(&mut self.visitor, node, __ast_path)
120274        } else {
120275            node
120276        }
120277    }
120278
120279    #[inline]
120280    fn fold_callee(&mut self, node: Callee, __ast_path: &mut AstKindPath) -> Callee {
120281        if self.enabled {
120282            <V as FoldAstPath>::fold_callee(&mut self.visitor, node, __ast_path)
120283        } else {
120284            node
120285        }
120286    }
120287
120288    #[inline]
120289    fn fold_catch_clause(
120290        &mut self,
120291        node: CatchClause,
120292        __ast_path: &mut AstKindPath,
120293    ) -> CatchClause {
120294        if self.enabled {
120295            <V as FoldAstPath>::fold_catch_clause(&mut self.visitor, node, __ast_path)
120296        } else {
120297            node
120298        }
120299    }
120300
120301    #[inline]
120302    fn fold_class(&mut self, node: Class, __ast_path: &mut AstKindPath) -> Class {
120303        if self.enabled {
120304            <V as FoldAstPath>::fold_class(&mut self.visitor, node, __ast_path)
120305        } else {
120306            node
120307        }
120308    }
120309
120310    #[inline]
120311    fn fold_class_decl(&mut self, node: ClassDecl, __ast_path: &mut AstKindPath) -> ClassDecl {
120312        if self.enabled {
120313            <V as FoldAstPath>::fold_class_decl(&mut self.visitor, node, __ast_path)
120314        } else {
120315            node
120316        }
120317    }
120318
120319    #[inline]
120320    fn fold_class_expr(&mut self, node: ClassExpr, __ast_path: &mut AstKindPath) -> ClassExpr {
120321        if self.enabled {
120322            <V as FoldAstPath>::fold_class_expr(&mut self.visitor, node, __ast_path)
120323        } else {
120324            node
120325        }
120326    }
120327
120328    #[inline]
120329    fn fold_class_member(
120330        &mut self,
120331        node: ClassMember,
120332        __ast_path: &mut AstKindPath,
120333    ) -> ClassMember {
120334        if self.enabled {
120335            <V as FoldAstPath>::fold_class_member(&mut self.visitor, node, __ast_path)
120336        } else {
120337            node
120338        }
120339    }
120340
120341    #[inline]
120342    fn fold_class_members(
120343        &mut self,
120344        node: Vec<ClassMember>,
120345        __ast_path: &mut AstKindPath,
120346    ) -> Vec<ClassMember> {
120347        if self.enabled {
120348            <V as FoldAstPath>::fold_class_members(&mut self.visitor, node, __ast_path)
120349        } else {
120350            node
120351        }
120352    }
120353
120354    #[inline]
120355    fn fold_class_method(
120356        &mut self,
120357        node: ClassMethod,
120358        __ast_path: &mut AstKindPath,
120359    ) -> ClassMethod {
120360        if self.enabled {
120361            <V as FoldAstPath>::fold_class_method(&mut self.visitor, node, __ast_path)
120362        } else {
120363            node
120364        }
120365    }
120366
120367    #[inline]
120368    fn fold_class_prop(&mut self, node: ClassProp, __ast_path: &mut AstKindPath) -> ClassProp {
120369        if self.enabled {
120370            <V as FoldAstPath>::fold_class_prop(&mut self.visitor, node, __ast_path)
120371        } else {
120372            node
120373        }
120374    }
120375
120376    #[inline]
120377    fn fold_computed_prop_name(
120378        &mut self,
120379        node: ComputedPropName,
120380        __ast_path: &mut AstKindPath,
120381    ) -> ComputedPropName {
120382        if self.enabled {
120383            <V as FoldAstPath>::fold_computed_prop_name(&mut self.visitor, node, __ast_path)
120384        } else {
120385            node
120386        }
120387    }
120388
120389    #[inline]
120390    fn fold_cond_expr(&mut self, node: CondExpr, __ast_path: &mut AstKindPath) -> CondExpr {
120391        if self.enabled {
120392            <V as FoldAstPath>::fold_cond_expr(&mut self.visitor, node, __ast_path)
120393        } else {
120394            node
120395        }
120396    }
120397
120398    #[inline]
120399    fn fold_constructor(&mut self, node: Constructor, __ast_path: &mut AstKindPath) -> Constructor {
120400        if self.enabled {
120401            <V as FoldAstPath>::fold_constructor(&mut self.visitor, node, __ast_path)
120402        } else {
120403            node
120404        }
120405    }
120406
120407    #[inline]
120408    fn fold_continue_stmt(
120409        &mut self,
120410        node: ContinueStmt,
120411        __ast_path: &mut AstKindPath,
120412    ) -> ContinueStmt {
120413        if self.enabled {
120414            <V as FoldAstPath>::fold_continue_stmt(&mut self.visitor, node, __ast_path)
120415        } else {
120416            node
120417        }
120418    }
120419
120420    #[inline]
120421    fn fold_debugger_stmt(
120422        &mut self,
120423        node: DebuggerStmt,
120424        __ast_path: &mut AstKindPath,
120425    ) -> DebuggerStmt {
120426        if self.enabled {
120427            <V as FoldAstPath>::fold_debugger_stmt(&mut self.visitor, node, __ast_path)
120428        } else {
120429            node
120430        }
120431    }
120432
120433    #[inline]
120434    fn fold_decl(&mut self, node: Decl, __ast_path: &mut AstKindPath) -> Decl {
120435        if self.enabled {
120436            <V as FoldAstPath>::fold_decl(&mut self.visitor, node, __ast_path)
120437        } else {
120438            node
120439        }
120440    }
120441
120442    #[inline]
120443    fn fold_decorator(&mut self, node: Decorator, __ast_path: &mut AstKindPath) -> Decorator {
120444        if self.enabled {
120445            <V as FoldAstPath>::fold_decorator(&mut self.visitor, node, __ast_path)
120446        } else {
120447            node
120448        }
120449    }
120450
120451    #[inline]
120452    fn fold_decorators(
120453        &mut self,
120454        node: Vec<Decorator>,
120455        __ast_path: &mut AstKindPath,
120456    ) -> Vec<Decorator> {
120457        if self.enabled {
120458            <V as FoldAstPath>::fold_decorators(&mut self.visitor, node, __ast_path)
120459        } else {
120460            node
120461        }
120462    }
120463
120464    #[inline]
120465    fn fold_default_decl(
120466        &mut self,
120467        node: DefaultDecl,
120468        __ast_path: &mut AstKindPath,
120469    ) -> DefaultDecl {
120470        if self.enabled {
120471            <V as FoldAstPath>::fold_default_decl(&mut self.visitor, node, __ast_path)
120472        } else {
120473            node
120474        }
120475    }
120476
120477    #[inline]
120478    fn fold_do_while_stmt(
120479        &mut self,
120480        node: DoWhileStmt,
120481        __ast_path: &mut AstKindPath,
120482    ) -> DoWhileStmt {
120483        if self.enabled {
120484            <V as FoldAstPath>::fold_do_while_stmt(&mut self.visitor, node, __ast_path)
120485        } else {
120486            node
120487        }
120488    }
120489
120490    #[inline]
120491    fn fold_empty_stmt(&mut self, node: EmptyStmt, __ast_path: &mut AstKindPath) -> EmptyStmt {
120492        if self.enabled {
120493            <V as FoldAstPath>::fold_empty_stmt(&mut self.visitor, node, __ast_path)
120494        } else {
120495            node
120496        }
120497    }
120498
120499    #[inline]
120500    fn fold_export_all(&mut self, node: ExportAll, __ast_path: &mut AstKindPath) -> ExportAll {
120501        if self.enabled {
120502            <V as FoldAstPath>::fold_export_all(&mut self.visitor, node, __ast_path)
120503        } else {
120504            node
120505        }
120506    }
120507
120508    #[inline]
120509    fn fold_export_decl(&mut self, node: ExportDecl, __ast_path: &mut AstKindPath) -> ExportDecl {
120510        if self.enabled {
120511            <V as FoldAstPath>::fold_export_decl(&mut self.visitor, node, __ast_path)
120512        } else {
120513            node
120514        }
120515    }
120516
120517    #[inline]
120518    fn fold_export_default_decl(
120519        &mut self,
120520        node: ExportDefaultDecl,
120521        __ast_path: &mut AstKindPath,
120522    ) -> ExportDefaultDecl {
120523        if self.enabled {
120524            <V as FoldAstPath>::fold_export_default_decl(&mut self.visitor, node, __ast_path)
120525        } else {
120526            node
120527        }
120528    }
120529
120530    #[inline]
120531    fn fold_export_default_expr(
120532        &mut self,
120533        node: ExportDefaultExpr,
120534        __ast_path: &mut AstKindPath,
120535    ) -> ExportDefaultExpr {
120536        if self.enabled {
120537            <V as FoldAstPath>::fold_export_default_expr(&mut self.visitor, node, __ast_path)
120538        } else {
120539            node
120540        }
120541    }
120542
120543    #[inline]
120544    fn fold_export_default_specifier(
120545        &mut self,
120546        node: ExportDefaultSpecifier,
120547        __ast_path: &mut AstKindPath,
120548    ) -> ExportDefaultSpecifier {
120549        if self.enabled {
120550            <V as FoldAstPath>::fold_export_default_specifier(&mut self.visitor, node, __ast_path)
120551        } else {
120552            node
120553        }
120554    }
120555
120556    #[inline]
120557    fn fold_export_named_specifier(
120558        &mut self,
120559        node: ExportNamedSpecifier,
120560        __ast_path: &mut AstKindPath,
120561    ) -> ExportNamedSpecifier {
120562        if self.enabled {
120563            <V as FoldAstPath>::fold_export_named_specifier(&mut self.visitor, node, __ast_path)
120564        } else {
120565            node
120566        }
120567    }
120568
120569    #[inline]
120570    fn fold_export_namespace_specifier(
120571        &mut self,
120572        node: ExportNamespaceSpecifier,
120573        __ast_path: &mut AstKindPath,
120574    ) -> ExportNamespaceSpecifier {
120575        if self.enabled {
120576            <V as FoldAstPath>::fold_export_namespace_specifier(&mut self.visitor, node, __ast_path)
120577        } else {
120578            node
120579        }
120580    }
120581
120582    #[inline]
120583    fn fold_export_specifier(
120584        &mut self,
120585        node: ExportSpecifier,
120586        __ast_path: &mut AstKindPath,
120587    ) -> ExportSpecifier {
120588        if self.enabled {
120589            <V as FoldAstPath>::fold_export_specifier(&mut self.visitor, node, __ast_path)
120590        } else {
120591            node
120592        }
120593    }
120594
120595    #[inline]
120596    fn fold_export_specifiers(
120597        &mut self,
120598        node: Vec<ExportSpecifier>,
120599        __ast_path: &mut AstKindPath,
120600    ) -> Vec<ExportSpecifier> {
120601        if self.enabled {
120602            <V as FoldAstPath>::fold_export_specifiers(&mut self.visitor, node, __ast_path)
120603        } else {
120604            node
120605        }
120606    }
120607
120608    #[inline]
120609    fn fold_expr(&mut self, node: Expr, __ast_path: &mut AstKindPath) -> Expr {
120610        if self.enabled {
120611            <V as FoldAstPath>::fold_expr(&mut self.visitor, node, __ast_path)
120612        } else {
120613            node
120614        }
120615    }
120616
120617    #[inline]
120618    fn fold_expr_or_spread(
120619        &mut self,
120620        node: ExprOrSpread,
120621        __ast_path: &mut AstKindPath,
120622    ) -> ExprOrSpread {
120623        if self.enabled {
120624            <V as FoldAstPath>::fold_expr_or_spread(&mut self.visitor, node, __ast_path)
120625        } else {
120626            node
120627        }
120628    }
120629
120630    #[inline]
120631    fn fold_expr_or_spreads(
120632        &mut self,
120633        node: Vec<ExprOrSpread>,
120634        __ast_path: &mut AstKindPath,
120635    ) -> Vec<ExprOrSpread> {
120636        if self.enabled {
120637            <V as FoldAstPath>::fold_expr_or_spreads(&mut self.visitor, node, __ast_path)
120638        } else {
120639            node
120640        }
120641    }
120642
120643    #[inline]
120644    fn fold_expr_stmt(&mut self, node: ExprStmt, __ast_path: &mut AstKindPath) -> ExprStmt {
120645        if self.enabled {
120646            <V as FoldAstPath>::fold_expr_stmt(&mut self.visitor, node, __ast_path)
120647        } else {
120648            node
120649        }
120650    }
120651
120652    #[inline]
120653    fn fold_exprs(&mut self, node: Vec<Box<Expr>>, __ast_path: &mut AstKindPath) -> Vec<Box<Expr>> {
120654        if self.enabled {
120655            <V as FoldAstPath>::fold_exprs(&mut self.visitor, node, __ast_path)
120656        } else {
120657            node
120658        }
120659    }
120660
120661    #[inline]
120662    fn fold_fn_decl(&mut self, node: FnDecl, __ast_path: &mut AstKindPath) -> FnDecl {
120663        if self.enabled {
120664            <V as FoldAstPath>::fold_fn_decl(&mut self.visitor, node, __ast_path)
120665        } else {
120666            node
120667        }
120668    }
120669
120670    #[inline]
120671    fn fold_fn_expr(&mut self, node: FnExpr, __ast_path: &mut AstKindPath) -> FnExpr {
120672        if self.enabled {
120673            <V as FoldAstPath>::fold_fn_expr(&mut self.visitor, node, __ast_path)
120674        } else {
120675            node
120676        }
120677    }
120678
120679    #[inline]
120680    fn fold_for_head(&mut self, node: ForHead, __ast_path: &mut AstKindPath) -> ForHead {
120681        if self.enabled {
120682            <V as FoldAstPath>::fold_for_head(&mut self.visitor, node, __ast_path)
120683        } else {
120684            node
120685        }
120686    }
120687
120688    #[inline]
120689    fn fold_for_in_stmt(&mut self, node: ForInStmt, __ast_path: &mut AstKindPath) -> ForInStmt {
120690        if self.enabled {
120691            <V as FoldAstPath>::fold_for_in_stmt(&mut self.visitor, node, __ast_path)
120692        } else {
120693            node
120694        }
120695    }
120696
120697    #[inline]
120698    fn fold_for_of_stmt(&mut self, node: ForOfStmt, __ast_path: &mut AstKindPath) -> ForOfStmt {
120699        if self.enabled {
120700            <V as FoldAstPath>::fold_for_of_stmt(&mut self.visitor, node, __ast_path)
120701        } else {
120702            node
120703        }
120704    }
120705
120706    #[inline]
120707    fn fold_for_stmt(&mut self, node: ForStmt, __ast_path: &mut AstKindPath) -> ForStmt {
120708        if self.enabled {
120709            <V as FoldAstPath>::fold_for_stmt(&mut self.visitor, node, __ast_path)
120710        } else {
120711            node
120712        }
120713    }
120714
120715    #[inline]
120716    fn fold_function(&mut self, node: Function, __ast_path: &mut AstKindPath) -> Function {
120717        if self.enabled {
120718            <V as FoldAstPath>::fold_function(&mut self.visitor, node, __ast_path)
120719        } else {
120720            node
120721        }
120722    }
120723
120724    #[inline]
120725    fn fold_getter_prop(&mut self, node: GetterProp, __ast_path: &mut AstKindPath) -> GetterProp {
120726        if self.enabled {
120727            <V as FoldAstPath>::fold_getter_prop(&mut self.visitor, node, __ast_path)
120728        } else {
120729            node
120730        }
120731    }
120732
120733    #[inline]
120734    fn fold_ident(&mut self, node: Ident, __ast_path: &mut AstKindPath) -> Ident {
120735        if self.enabled {
120736            <V as FoldAstPath>::fold_ident(&mut self.visitor, node, __ast_path)
120737        } else {
120738            node
120739        }
120740    }
120741
120742    #[inline]
120743    fn fold_ident_name(&mut self, node: IdentName, __ast_path: &mut AstKindPath) -> IdentName {
120744        if self.enabled {
120745            <V as FoldAstPath>::fold_ident_name(&mut self.visitor, node, __ast_path)
120746        } else {
120747            node
120748        }
120749    }
120750
120751    #[inline]
120752    fn fold_if_stmt(&mut self, node: IfStmt, __ast_path: &mut AstKindPath) -> IfStmt {
120753        if self.enabled {
120754            <V as FoldAstPath>::fold_if_stmt(&mut self.visitor, node, __ast_path)
120755        } else {
120756            node
120757        }
120758    }
120759
120760    #[inline]
120761    fn fold_import(&mut self, node: Import, __ast_path: &mut AstKindPath) -> Import {
120762        if self.enabled {
120763            <V as FoldAstPath>::fold_import(&mut self.visitor, node, __ast_path)
120764        } else {
120765            node
120766        }
120767    }
120768
120769    #[inline]
120770    fn fold_import_decl(&mut self, node: ImportDecl, __ast_path: &mut AstKindPath) -> ImportDecl {
120771        if self.enabled {
120772            <V as FoldAstPath>::fold_import_decl(&mut self.visitor, node, __ast_path)
120773        } else {
120774            node
120775        }
120776    }
120777
120778    #[inline]
120779    fn fold_import_default_specifier(
120780        &mut self,
120781        node: ImportDefaultSpecifier,
120782        __ast_path: &mut AstKindPath,
120783    ) -> ImportDefaultSpecifier {
120784        if self.enabled {
120785            <V as FoldAstPath>::fold_import_default_specifier(&mut self.visitor, node, __ast_path)
120786        } else {
120787            node
120788        }
120789    }
120790
120791    #[inline]
120792    fn fold_import_named_specifier(
120793        &mut self,
120794        node: ImportNamedSpecifier,
120795        __ast_path: &mut AstKindPath,
120796    ) -> ImportNamedSpecifier {
120797        if self.enabled {
120798            <V as FoldAstPath>::fold_import_named_specifier(&mut self.visitor, node, __ast_path)
120799        } else {
120800            node
120801        }
120802    }
120803
120804    #[inline]
120805    fn fold_import_phase(
120806        &mut self,
120807        node: ImportPhase,
120808        __ast_path: &mut AstKindPath,
120809    ) -> ImportPhase {
120810        if self.enabled {
120811            <V as FoldAstPath>::fold_import_phase(&mut self.visitor, node, __ast_path)
120812        } else {
120813            node
120814        }
120815    }
120816
120817    #[inline]
120818    fn fold_import_specifier(
120819        &mut self,
120820        node: ImportSpecifier,
120821        __ast_path: &mut AstKindPath,
120822    ) -> ImportSpecifier {
120823        if self.enabled {
120824            <V as FoldAstPath>::fold_import_specifier(&mut self.visitor, node, __ast_path)
120825        } else {
120826            node
120827        }
120828    }
120829
120830    #[inline]
120831    fn fold_import_specifiers(
120832        &mut self,
120833        node: Vec<ImportSpecifier>,
120834        __ast_path: &mut AstKindPath,
120835    ) -> Vec<ImportSpecifier> {
120836        if self.enabled {
120837            <V as FoldAstPath>::fold_import_specifiers(&mut self.visitor, node, __ast_path)
120838        } else {
120839            node
120840        }
120841    }
120842
120843    #[inline]
120844    fn fold_import_star_as_specifier(
120845        &mut self,
120846        node: ImportStarAsSpecifier,
120847        __ast_path: &mut AstKindPath,
120848    ) -> ImportStarAsSpecifier {
120849        if self.enabled {
120850            <V as FoldAstPath>::fold_import_star_as_specifier(&mut self.visitor, node, __ast_path)
120851        } else {
120852            node
120853        }
120854    }
120855
120856    #[inline]
120857    fn fold_import_with(&mut self, node: ImportWith, __ast_path: &mut AstKindPath) -> ImportWith {
120858        if self.enabled {
120859            <V as FoldAstPath>::fold_import_with(&mut self.visitor, node, __ast_path)
120860        } else {
120861            node
120862        }
120863    }
120864
120865    #[inline]
120866    fn fold_import_with_item(
120867        &mut self,
120868        node: ImportWithItem,
120869        __ast_path: &mut AstKindPath,
120870    ) -> ImportWithItem {
120871        if self.enabled {
120872            <V as FoldAstPath>::fold_import_with_item(&mut self.visitor, node, __ast_path)
120873        } else {
120874            node
120875        }
120876    }
120877
120878    #[inline]
120879    fn fold_import_with_items(
120880        &mut self,
120881        node: Vec<ImportWithItem>,
120882        __ast_path: &mut AstKindPath,
120883    ) -> Vec<ImportWithItem> {
120884        if self.enabled {
120885            <V as FoldAstPath>::fold_import_with_items(&mut self.visitor, node, __ast_path)
120886        } else {
120887            node
120888        }
120889    }
120890
120891    #[inline]
120892    fn fold_invalid(&mut self, node: Invalid, __ast_path: &mut AstKindPath) -> Invalid {
120893        if self.enabled {
120894            <V as FoldAstPath>::fold_invalid(&mut self.visitor, node, __ast_path)
120895        } else {
120896            node
120897        }
120898    }
120899
120900    #[inline]
120901    fn fold_jsx_attr(&mut self, node: JSXAttr, __ast_path: &mut AstKindPath) -> JSXAttr {
120902        if self.enabled {
120903            <V as FoldAstPath>::fold_jsx_attr(&mut self.visitor, node, __ast_path)
120904        } else {
120905            node
120906        }
120907    }
120908
120909    #[inline]
120910    fn fold_jsx_attr_name(
120911        &mut self,
120912        node: JSXAttrName,
120913        __ast_path: &mut AstKindPath,
120914    ) -> JSXAttrName {
120915        if self.enabled {
120916            <V as FoldAstPath>::fold_jsx_attr_name(&mut self.visitor, node, __ast_path)
120917        } else {
120918            node
120919        }
120920    }
120921
120922    #[inline]
120923    fn fold_jsx_attr_or_spread(
120924        &mut self,
120925        node: JSXAttrOrSpread,
120926        __ast_path: &mut AstKindPath,
120927    ) -> JSXAttrOrSpread {
120928        if self.enabled {
120929            <V as FoldAstPath>::fold_jsx_attr_or_spread(&mut self.visitor, node, __ast_path)
120930        } else {
120931            node
120932        }
120933    }
120934
120935    #[inline]
120936    fn fold_jsx_attr_or_spreads(
120937        &mut self,
120938        node: Vec<JSXAttrOrSpread>,
120939        __ast_path: &mut AstKindPath,
120940    ) -> Vec<JSXAttrOrSpread> {
120941        if self.enabled {
120942            <V as FoldAstPath>::fold_jsx_attr_or_spreads(&mut self.visitor, node, __ast_path)
120943        } else {
120944            node
120945        }
120946    }
120947
120948    #[inline]
120949    fn fold_jsx_attr_value(
120950        &mut self,
120951        node: JSXAttrValue,
120952        __ast_path: &mut AstKindPath,
120953    ) -> JSXAttrValue {
120954        if self.enabled {
120955            <V as FoldAstPath>::fold_jsx_attr_value(&mut self.visitor, node, __ast_path)
120956        } else {
120957            node
120958        }
120959    }
120960
120961    #[inline]
120962    fn fold_jsx_closing_element(
120963        &mut self,
120964        node: JSXClosingElement,
120965        __ast_path: &mut AstKindPath,
120966    ) -> JSXClosingElement {
120967        if self.enabled {
120968            <V as FoldAstPath>::fold_jsx_closing_element(&mut self.visitor, node, __ast_path)
120969        } else {
120970            node
120971        }
120972    }
120973
120974    #[inline]
120975    fn fold_jsx_closing_fragment(
120976        &mut self,
120977        node: JSXClosingFragment,
120978        __ast_path: &mut AstKindPath,
120979    ) -> JSXClosingFragment {
120980        if self.enabled {
120981            <V as FoldAstPath>::fold_jsx_closing_fragment(&mut self.visitor, node, __ast_path)
120982        } else {
120983            node
120984        }
120985    }
120986
120987    #[inline]
120988    fn fold_jsx_element(&mut self, node: JSXElement, __ast_path: &mut AstKindPath) -> JSXElement {
120989        if self.enabled {
120990            <V as FoldAstPath>::fold_jsx_element(&mut self.visitor, node, __ast_path)
120991        } else {
120992            node
120993        }
120994    }
120995
120996    #[inline]
120997    fn fold_jsx_element_child(
120998        &mut self,
120999        node: JSXElementChild,
121000        __ast_path: &mut AstKindPath,
121001    ) -> JSXElementChild {
121002        if self.enabled {
121003            <V as FoldAstPath>::fold_jsx_element_child(&mut self.visitor, node, __ast_path)
121004        } else {
121005            node
121006        }
121007    }
121008
121009    #[inline]
121010    fn fold_jsx_element_childs(
121011        &mut self,
121012        node: Vec<JSXElementChild>,
121013        __ast_path: &mut AstKindPath,
121014    ) -> Vec<JSXElementChild> {
121015        if self.enabled {
121016            <V as FoldAstPath>::fold_jsx_element_childs(&mut self.visitor, node, __ast_path)
121017        } else {
121018            node
121019        }
121020    }
121021
121022    #[inline]
121023    fn fold_jsx_element_name(
121024        &mut self,
121025        node: JSXElementName,
121026        __ast_path: &mut AstKindPath,
121027    ) -> JSXElementName {
121028        if self.enabled {
121029            <V as FoldAstPath>::fold_jsx_element_name(&mut self.visitor, node, __ast_path)
121030        } else {
121031            node
121032        }
121033    }
121034
121035    #[inline]
121036    fn fold_jsx_empty_expr(
121037        &mut self,
121038        node: JSXEmptyExpr,
121039        __ast_path: &mut AstKindPath,
121040    ) -> JSXEmptyExpr {
121041        if self.enabled {
121042            <V as FoldAstPath>::fold_jsx_empty_expr(&mut self.visitor, node, __ast_path)
121043        } else {
121044            node
121045        }
121046    }
121047
121048    #[inline]
121049    fn fold_jsx_expr(&mut self, node: JSXExpr, __ast_path: &mut AstKindPath) -> JSXExpr {
121050        if self.enabled {
121051            <V as FoldAstPath>::fold_jsx_expr(&mut self.visitor, node, __ast_path)
121052        } else {
121053            node
121054        }
121055    }
121056
121057    #[inline]
121058    fn fold_jsx_expr_container(
121059        &mut self,
121060        node: JSXExprContainer,
121061        __ast_path: &mut AstKindPath,
121062    ) -> JSXExprContainer {
121063        if self.enabled {
121064            <V as FoldAstPath>::fold_jsx_expr_container(&mut self.visitor, node, __ast_path)
121065        } else {
121066            node
121067        }
121068    }
121069
121070    #[inline]
121071    fn fold_jsx_fragment(
121072        &mut self,
121073        node: JSXFragment,
121074        __ast_path: &mut AstKindPath,
121075    ) -> JSXFragment {
121076        if self.enabled {
121077            <V as FoldAstPath>::fold_jsx_fragment(&mut self.visitor, node, __ast_path)
121078        } else {
121079            node
121080        }
121081    }
121082
121083    #[inline]
121084    fn fold_jsx_member_expr(
121085        &mut self,
121086        node: JSXMemberExpr,
121087        __ast_path: &mut AstKindPath,
121088    ) -> JSXMemberExpr {
121089        if self.enabled {
121090            <V as FoldAstPath>::fold_jsx_member_expr(&mut self.visitor, node, __ast_path)
121091        } else {
121092            node
121093        }
121094    }
121095
121096    #[inline]
121097    fn fold_jsx_namespaced_name(
121098        &mut self,
121099        node: JSXNamespacedName,
121100        __ast_path: &mut AstKindPath,
121101    ) -> JSXNamespacedName {
121102        if self.enabled {
121103            <V as FoldAstPath>::fold_jsx_namespaced_name(&mut self.visitor, node, __ast_path)
121104        } else {
121105            node
121106        }
121107    }
121108
121109    #[inline]
121110    fn fold_jsx_object(&mut self, node: JSXObject, __ast_path: &mut AstKindPath) -> JSXObject {
121111        if self.enabled {
121112            <V as FoldAstPath>::fold_jsx_object(&mut self.visitor, node, __ast_path)
121113        } else {
121114            node
121115        }
121116    }
121117
121118    #[inline]
121119    fn fold_jsx_opening_element(
121120        &mut self,
121121        node: JSXOpeningElement,
121122        __ast_path: &mut AstKindPath,
121123    ) -> JSXOpeningElement {
121124        if self.enabled {
121125            <V as FoldAstPath>::fold_jsx_opening_element(&mut self.visitor, node, __ast_path)
121126        } else {
121127            node
121128        }
121129    }
121130
121131    #[inline]
121132    fn fold_jsx_opening_fragment(
121133        &mut self,
121134        node: JSXOpeningFragment,
121135        __ast_path: &mut AstKindPath,
121136    ) -> JSXOpeningFragment {
121137        if self.enabled {
121138            <V as FoldAstPath>::fold_jsx_opening_fragment(&mut self.visitor, node, __ast_path)
121139        } else {
121140            node
121141        }
121142    }
121143
121144    #[inline]
121145    fn fold_jsx_spread_child(
121146        &mut self,
121147        node: JSXSpreadChild,
121148        __ast_path: &mut AstKindPath,
121149    ) -> JSXSpreadChild {
121150        if self.enabled {
121151            <V as FoldAstPath>::fold_jsx_spread_child(&mut self.visitor, node, __ast_path)
121152        } else {
121153            node
121154        }
121155    }
121156
121157    #[inline]
121158    fn fold_jsx_text(&mut self, node: JSXText, __ast_path: &mut AstKindPath) -> JSXText {
121159        if self.enabled {
121160            <V as FoldAstPath>::fold_jsx_text(&mut self.visitor, node, __ast_path)
121161        } else {
121162            node
121163        }
121164    }
121165
121166    #[inline]
121167    fn fold_key(&mut self, node: Key, __ast_path: &mut AstKindPath) -> Key {
121168        if self.enabled {
121169            <V as FoldAstPath>::fold_key(&mut self.visitor, node, __ast_path)
121170        } else {
121171            node
121172        }
121173    }
121174
121175    #[inline]
121176    fn fold_key_value_pat_prop(
121177        &mut self,
121178        node: KeyValuePatProp,
121179        __ast_path: &mut AstKindPath,
121180    ) -> KeyValuePatProp {
121181        if self.enabled {
121182            <V as FoldAstPath>::fold_key_value_pat_prop(&mut self.visitor, node, __ast_path)
121183        } else {
121184            node
121185        }
121186    }
121187
121188    #[inline]
121189    fn fold_key_value_prop(
121190        &mut self,
121191        node: KeyValueProp,
121192        __ast_path: &mut AstKindPath,
121193    ) -> KeyValueProp {
121194        if self.enabled {
121195            <V as FoldAstPath>::fold_key_value_prop(&mut self.visitor, node, __ast_path)
121196        } else {
121197            node
121198        }
121199    }
121200
121201    #[inline]
121202    fn fold_labeled_stmt(
121203        &mut self,
121204        node: LabeledStmt,
121205        __ast_path: &mut AstKindPath,
121206    ) -> LabeledStmt {
121207        if self.enabled {
121208            <V as FoldAstPath>::fold_labeled_stmt(&mut self.visitor, node, __ast_path)
121209        } else {
121210            node
121211        }
121212    }
121213
121214    #[inline]
121215    fn fold_lit(&mut self, node: Lit, __ast_path: &mut AstKindPath) -> Lit {
121216        if self.enabled {
121217            <V as FoldAstPath>::fold_lit(&mut self.visitor, node, __ast_path)
121218        } else {
121219            node
121220        }
121221    }
121222
121223    #[inline]
121224    fn fold_member_expr(&mut self, node: MemberExpr, __ast_path: &mut AstKindPath) -> MemberExpr {
121225        if self.enabled {
121226            <V as FoldAstPath>::fold_member_expr(&mut self.visitor, node, __ast_path)
121227        } else {
121228            node
121229        }
121230    }
121231
121232    #[inline]
121233    fn fold_member_prop(&mut self, node: MemberProp, __ast_path: &mut AstKindPath) -> MemberProp {
121234        if self.enabled {
121235            <V as FoldAstPath>::fold_member_prop(&mut self.visitor, node, __ast_path)
121236        } else {
121237            node
121238        }
121239    }
121240
121241    #[inline]
121242    fn fold_meta_prop_expr(
121243        &mut self,
121244        node: MetaPropExpr,
121245        __ast_path: &mut AstKindPath,
121246    ) -> MetaPropExpr {
121247        if self.enabled {
121248            <V as FoldAstPath>::fold_meta_prop_expr(&mut self.visitor, node, __ast_path)
121249        } else {
121250            node
121251        }
121252    }
121253
121254    #[inline]
121255    fn fold_meta_prop_kind(
121256        &mut self,
121257        node: MetaPropKind,
121258        __ast_path: &mut AstKindPath,
121259    ) -> MetaPropKind {
121260        if self.enabled {
121261            <V as FoldAstPath>::fold_meta_prop_kind(&mut self.visitor, node, __ast_path)
121262        } else {
121263            node
121264        }
121265    }
121266
121267    #[inline]
121268    fn fold_method_kind(&mut self, node: MethodKind, __ast_path: &mut AstKindPath) -> MethodKind {
121269        if self.enabled {
121270            <V as FoldAstPath>::fold_method_kind(&mut self.visitor, node, __ast_path)
121271        } else {
121272            node
121273        }
121274    }
121275
121276    #[inline]
121277    fn fold_method_prop(&mut self, node: MethodProp, __ast_path: &mut AstKindPath) -> MethodProp {
121278        if self.enabled {
121279            <V as FoldAstPath>::fold_method_prop(&mut self.visitor, node, __ast_path)
121280        } else {
121281            node
121282        }
121283    }
121284
121285    #[inline]
121286    fn fold_module(&mut self, node: Module, __ast_path: &mut AstKindPath) -> Module {
121287        if self.enabled {
121288            <V as FoldAstPath>::fold_module(&mut self.visitor, node, __ast_path)
121289        } else {
121290            node
121291        }
121292    }
121293
121294    #[inline]
121295    fn fold_module_decl(&mut self, node: ModuleDecl, __ast_path: &mut AstKindPath) -> ModuleDecl {
121296        if self.enabled {
121297            <V as FoldAstPath>::fold_module_decl(&mut self.visitor, node, __ast_path)
121298        } else {
121299            node
121300        }
121301    }
121302
121303    #[inline]
121304    fn fold_module_export_name(
121305        &mut self,
121306        node: ModuleExportName,
121307        __ast_path: &mut AstKindPath,
121308    ) -> ModuleExportName {
121309        if self.enabled {
121310            <V as FoldAstPath>::fold_module_export_name(&mut self.visitor, node, __ast_path)
121311        } else {
121312            node
121313        }
121314    }
121315
121316    #[inline]
121317    fn fold_module_item(&mut self, node: ModuleItem, __ast_path: &mut AstKindPath) -> ModuleItem {
121318        if self.enabled {
121319            <V as FoldAstPath>::fold_module_item(&mut self.visitor, node, __ast_path)
121320        } else {
121321            node
121322        }
121323    }
121324
121325    #[inline]
121326    fn fold_module_items(
121327        &mut self,
121328        node: Vec<ModuleItem>,
121329        __ast_path: &mut AstKindPath,
121330    ) -> Vec<ModuleItem> {
121331        if self.enabled {
121332            <V as FoldAstPath>::fold_module_items(&mut self.visitor, node, __ast_path)
121333        } else {
121334            node
121335        }
121336    }
121337
121338    #[inline]
121339    fn fold_named_export(
121340        &mut self,
121341        node: NamedExport,
121342        __ast_path: &mut AstKindPath,
121343    ) -> NamedExport {
121344        if self.enabled {
121345            <V as FoldAstPath>::fold_named_export(&mut self.visitor, node, __ast_path)
121346        } else {
121347            node
121348        }
121349    }
121350
121351    #[inline]
121352    fn fold_new_expr(&mut self, node: NewExpr, __ast_path: &mut AstKindPath) -> NewExpr {
121353        if self.enabled {
121354            <V as FoldAstPath>::fold_new_expr(&mut self.visitor, node, __ast_path)
121355        } else {
121356            node
121357        }
121358    }
121359
121360    #[inline]
121361    fn fold_null(&mut self, node: Null, __ast_path: &mut AstKindPath) -> Null {
121362        if self.enabled {
121363            <V as FoldAstPath>::fold_null(&mut self.visitor, node, __ast_path)
121364        } else {
121365            node
121366        }
121367    }
121368
121369    #[inline]
121370    fn fold_number(&mut self, node: Number, __ast_path: &mut AstKindPath) -> Number {
121371        if self.enabled {
121372            <V as FoldAstPath>::fold_number(&mut self.visitor, node, __ast_path)
121373        } else {
121374            node
121375        }
121376    }
121377
121378    #[inline]
121379    fn fold_object_lit(&mut self, node: ObjectLit, __ast_path: &mut AstKindPath) -> ObjectLit {
121380        if self.enabled {
121381            <V as FoldAstPath>::fold_object_lit(&mut self.visitor, node, __ast_path)
121382        } else {
121383            node
121384        }
121385    }
121386
121387    #[inline]
121388    fn fold_object_pat(&mut self, node: ObjectPat, __ast_path: &mut AstKindPath) -> ObjectPat {
121389        if self.enabled {
121390            <V as FoldAstPath>::fold_object_pat(&mut self.visitor, node, __ast_path)
121391        } else {
121392            node
121393        }
121394    }
121395
121396    #[inline]
121397    fn fold_object_pat_prop(
121398        &mut self,
121399        node: ObjectPatProp,
121400        __ast_path: &mut AstKindPath,
121401    ) -> ObjectPatProp {
121402        if self.enabled {
121403            <V as FoldAstPath>::fold_object_pat_prop(&mut self.visitor, node, __ast_path)
121404        } else {
121405            node
121406        }
121407    }
121408
121409    #[inline]
121410    fn fold_object_pat_props(
121411        &mut self,
121412        node: Vec<ObjectPatProp>,
121413        __ast_path: &mut AstKindPath,
121414    ) -> Vec<ObjectPatProp> {
121415        if self.enabled {
121416            <V as FoldAstPath>::fold_object_pat_props(&mut self.visitor, node, __ast_path)
121417        } else {
121418            node
121419        }
121420    }
121421
121422    #[inline]
121423    fn fold_opt_accessibility(
121424        &mut self,
121425        node: Option<Accessibility>,
121426        __ast_path: &mut AstKindPath,
121427    ) -> Option<Accessibility> {
121428        if self.enabled {
121429            <V as FoldAstPath>::fold_opt_accessibility(&mut self.visitor, node, __ast_path)
121430        } else {
121431            node
121432        }
121433    }
121434
121435    #[inline]
121436    fn fold_opt_atom(
121437        &mut self,
121438        node: Option<swc_atoms::Atom>,
121439        __ast_path: &mut AstKindPath,
121440    ) -> Option<swc_atoms::Atom> {
121441        if self.enabled {
121442            <V as FoldAstPath>::fold_opt_atom(&mut self.visitor, node, __ast_path)
121443        } else {
121444            node
121445        }
121446    }
121447
121448    #[inline]
121449    fn fold_opt_block_stmt(
121450        &mut self,
121451        node: Option<BlockStmt>,
121452        __ast_path: &mut AstKindPath,
121453    ) -> Option<BlockStmt> {
121454        if self.enabled {
121455            <V as FoldAstPath>::fold_opt_block_stmt(&mut self.visitor, node, __ast_path)
121456        } else {
121457            node
121458        }
121459    }
121460
121461    #[inline]
121462    fn fold_opt_call(&mut self, node: OptCall, __ast_path: &mut AstKindPath) -> OptCall {
121463        if self.enabled {
121464            <V as FoldAstPath>::fold_opt_call(&mut self.visitor, node, __ast_path)
121465        } else {
121466            node
121467        }
121468    }
121469
121470    #[inline]
121471    fn fold_opt_catch_clause(
121472        &mut self,
121473        node: Option<CatchClause>,
121474        __ast_path: &mut AstKindPath,
121475    ) -> Option<CatchClause> {
121476        if self.enabled {
121477            <V as FoldAstPath>::fold_opt_catch_clause(&mut self.visitor, node, __ast_path)
121478        } else {
121479            node
121480        }
121481    }
121482
121483    #[inline]
121484    fn fold_opt_chain_base(
121485        &mut self,
121486        node: OptChainBase,
121487        __ast_path: &mut AstKindPath,
121488    ) -> OptChainBase {
121489        if self.enabled {
121490            <V as FoldAstPath>::fold_opt_chain_base(&mut self.visitor, node, __ast_path)
121491        } else {
121492            node
121493        }
121494    }
121495
121496    #[inline]
121497    fn fold_opt_chain_expr(
121498        &mut self,
121499        node: OptChainExpr,
121500        __ast_path: &mut AstKindPath,
121501    ) -> OptChainExpr {
121502        if self.enabled {
121503            <V as FoldAstPath>::fold_opt_chain_expr(&mut self.visitor, node, __ast_path)
121504        } else {
121505            node
121506        }
121507    }
121508
121509    #[inline]
121510    fn fold_opt_expr(
121511        &mut self,
121512        node: Option<Box<Expr>>,
121513        __ast_path: &mut AstKindPath,
121514    ) -> Option<Box<Expr>> {
121515        if self.enabled {
121516            <V as FoldAstPath>::fold_opt_expr(&mut self.visitor, node, __ast_path)
121517        } else {
121518            node
121519        }
121520    }
121521
121522    #[inline]
121523    fn fold_opt_expr_or_spread(
121524        &mut self,
121525        node: Option<ExprOrSpread>,
121526        __ast_path: &mut AstKindPath,
121527    ) -> Option<ExprOrSpread> {
121528        if self.enabled {
121529            <V as FoldAstPath>::fold_opt_expr_or_spread(&mut self.visitor, node, __ast_path)
121530        } else {
121531            node
121532        }
121533    }
121534
121535    #[inline]
121536    fn fold_opt_expr_or_spreads(
121537        &mut self,
121538        node: Option<Vec<ExprOrSpread>>,
121539        __ast_path: &mut AstKindPath,
121540    ) -> Option<Vec<ExprOrSpread>> {
121541        if self.enabled {
121542            <V as FoldAstPath>::fold_opt_expr_or_spreads(&mut self.visitor, node, __ast_path)
121543        } else {
121544            node
121545        }
121546    }
121547
121548    #[inline]
121549    fn fold_opt_ident(
121550        &mut self,
121551        node: Option<Ident>,
121552        __ast_path: &mut AstKindPath,
121553    ) -> Option<Ident> {
121554        if self.enabled {
121555            <V as FoldAstPath>::fold_opt_ident(&mut self.visitor, node, __ast_path)
121556        } else {
121557            node
121558        }
121559    }
121560
121561    #[inline]
121562    fn fold_opt_jsx_attr_value(
121563        &mut self,
121564        node: Option<JSXAttrValue>,
121565        __ast_path: &mut AstKindPath,
121566    ) -> Option<JSXAttrValue> {
121567        if self.enabled {
121568            <V as FoldAstPath>::fold_opt_jsx_attr_value(&mut self.visitor, node, __ast_path)
121569        } else {
121570            node
121571        }
121572    }
121573
121574    #[inline]
121575    fn fold_opt_jsx_closing_element(
121576        &mut self,
121577        node: Option<JSXClosingElement>,
121578        __ast_path: &mut AstKindPath,
121579    ) -> Option<JSXClosingElement> {
121580        if self.enabled {
121581            <V as FoldAstPath>::fold_opt_jsx_closing_element(&mut self.visitor, node, __ast_path)
121582        } else {
121583            node
121584        }
121585    }
121586
121587    #[inline]
121588    fn fold_opt_module_export_name(
121589        &mut self,
121590        node: Option<ModuleExportName>,
121591        __ast_path: &mut AstKindPath,
121592    ) -> Option<ModuleExportName> {
121593        if self.enabled {
121594            <V as FoldAstPath>::fold_opt_module_export_name(&mut self.visitor, node, __ast_path)
121595        } else {
121596            node
121597        }
121598    }
121599
121600    #[inline]
121601    fn fold_opt_object_lit(
121602        &mut self,
121603        node: Option<Box<ObjectLit>>,
121604        __ast_path: &mut AstKindPath,
121605    ) -> Option<Box<ObjectLit>> {
121606        if self.enabled {
121607            <V as FoldAstPath>::fold_opt_object_lit(&mut self.visitor, node, __ast_path)
121608        } else {
121609            node
121610        }
121611    }
121612
121613    #[inline]
121614    fn fold_opt_pat(&mut self, node: Option<Pat>, __ast_path: &mut AstKindPath) -> Option<Pat> {
121615        if self.enabled {
121616            <V as FoldAstPath>::fold_opt_pat(&mut self.visitor, node, __ast_path)
121617        } else {
121618            node
121619        }
121620    }
121621
121622    #[inline]
121623    fn fold_opt_span(
121624        &mut self,
121625        node: Option<swc_common::Span>,
121626        __ast_path: &mut AstKindPath,
121627    ) -> Option<swc_common::Span> {
121628        if self.enabled {
121629            <V as FoldAstPath>::fold_opt_span(&mut self.visitor, node, __ast_path)
121630        } else {
121631            node
121632        }
121633    }
121634
121635    #[inline]
121636    fn fold_opt_stmt(
121637        &mut self,
121638        node: Option<Box<Stmt>>,
121639        __ast_path: &mut AstKindPath,
121640    ) -> Option<Box<Stmt>> {
121641        if self.enabled {
121642            <V as FoldAstPath>::fold_opt_stmt(&mut self.visitor, node, __ast_path)
121643        } else {
121644            node
121645        }
121646    }
121647
121648    #[inline]
121649    fn fold_opt_str(
121650        &mut self,
121651        node: Option<Box<Str>>,
121652        __ast_path: &mut AstKindPath,
121653    ) -> Option<Box<Str>> {
121654        if self.enabled {
121655            <V as FoldAstPath>::fold_opt_str(&mut self.visitor, node, __ast_path)
121656        } else {
121657            node
121658        }
121659    }
121660
121661    #[inline]
121662    fn fold_opt_true_plus_minus(
121663        &mut self,
121664        node: Option<TruePlusMinus>,
121665        __ast_path: &mut AstKindPath,
121666    ) -> Option<TruePlusMinus> {
121667        if self.enabled {
121668            <V as FoldAstPath>::fold_opt_true_plus_minus(&mut self.visitor, node, __ast_path)
121669        } else {
121670            node
121671        }
121672    }
121673
121674    #[inline]
121675    fn fold_opt_ts_entity_name(
121676        &mut self,
121677        node: Option<TsEntityName>,
121678        __ast_path: &mut AstKindPath,
121679    ) -> Option<TsEntityName> {
121680        if self.enabled {
121681            <V as FoldAstPath>::fold_opt_ts_entity_name(&mut self.visitor, node, __ast_path)
121682        } else {
121683            node
121684        }
121685    }
121686
121687    #[inline]
121688    fn fold_opt_ts_import_call_options(
121689        &mut self,
121690        node: Option<TsImportCallOptions>,
121691        __ast_path: &mut AstKindPath,
121692    ) -> Option<TsImportCallOptions> {
121693        if self.enabled {
121694            <V as FoldAstPath>::fold_opt_ts_import_call_options(&mut self.visitor, node, __ast_path)
121695        } else {
121696            node
121697        }
121698    }
121699
121700    #[inline]
121701    fn fold_opt_ts_namespace_body(
121702        &mut self,
121703        node: Option<TsNamespaceBody>,
121704        __ast_path: &mut AstKindPath,
121705    ) -> Option<TsNamespaceBody> {
121706        if self.enabled {
121707            <V as FoldAstPath>::fold_opt_ts_namespace_body(&mut self.visitor, node, __ast_path)
121708        } else {
121709            node
121710        }
121711    }
121712
121713    #[inline]
121714    fn fold_opt_ts_type(
121715        &mut self,
121716        node: Option<Box<TsType>>,
121717        __ast_path: &mut AstKindPath,
121718    ) -> Option<Box<TsType>> {
121719        if self.enabled {
121720            <V as FoldAstPath>::fold_opt_ts_type(&mut self.visitor, node, __ast_path)
121721        } else {
121722            node
121723        }
121724    }
121725
121726    #[inline]
121727    fn fold_opt_ts_type_ann(
121728        &mut self,
121729        node: Option<Box<TsTypeAnn>>,
121730        __ast_path: &mut AstKindPath,
121731    ) -> Option<Box<TsTypeAnn>> {
121732        if self.enabled {
121733            <V as FoldAstPath>::fold_opt_ts_type_ann(&mut self.visitor, node, __ast_path)
121734        } else {
121735            node
121736        }
121737    }
121738
121739    #[inline]
121740    fn fold_opt_ts_type_param_decl(
121741        &mut self,
121742        node: Option<Box<TsTypeParamDecl>>,
121743        __ast_path: &mut AstKindPath,
121744    ) -> Option<Box<TsTypeParamDecl>> {
121745        if self.enabled {
121746            <V as FoldAstPath>::fold_opt_ts_type_param_decl(&mut self.visitor, node, __ast_path)
121747        } else {
121748            node
121749        }
121750    }
121751
121752    #[inline]
121753    fn fold_opt_ts_type_param_instantiation(
121754        &mut self,
121755        node: Option<Box<TsTypeParamInstantiation>>,
121756        __ast_path: &mut AstKindPath,
121757    ) -> Option<Box<TsTypeParamInstantiation>> {
121758        if self.enabled {
121759            <V as FoldAstPath>::fold_opt_ts_type_param_instantiation(
121760                &mut self.visitor,
121761                node,
121762                __ast_path,
121763            )
121764        } else {
121765            node
121766        }
121767    }
121768
121769    #[inline]
121770    fn fold_opt_var_decl_or_expr(
121771        &mut self,
121772        node: Option<VarDeclOrExpr>,
121773        __ast_path: &mut AstKindPath,
121774    ) -> Option<VarDeclOrExpr> {
121775        if self.enabled {
121776            <V as FoldAstPath>::fold_opt_var_decl_or_expr(&mut self.visitor, node, __ast_path)
121777        } else {
121778            node
121779        }
121780    }
121781
121782    #[inline]
121783    fn fold_opt_vec_expr_or_spreads(
121784        &mut self,
121785        node: Vec<Option<ExprOrSpread>>,
121786        __ast_path: &mut AstKindPath,
121787    ) -> Vec<Option<ExprOrSpread>> {
121788        if self.enabled {
121789            <V as FoldAstPath>::fold_opt_vec_expr_or_spreads(&mut self.visitor, node, __ast_path)
121790        } else {
121791            node
121792        }
121793    }
121794
121795    #[inline]
121796    fn fold_opt_vec_pats(
121797        &mut self,
121798        node: Vec<Option<Pat>>,
121799        __ast_path: &mut AstKindPath,
121800    ) -> Vec<Option<Pat>> {
121801        if self.enabled {
121802            <V as FoldAstPath>::fold_opt_vec_pats(&mut self.visitor, node, __ast_path)
121803        } else {
121804            node
121805        }
121806    }
121807
121808    #[inline]
121809    fn fold_param(&mut self, node: Param, __ast_path: &mut AstKindPath) -> Param {
121810        if self.enabled {
121811            <V as FoldAstPath>::fold_param(&mut self.visitor, node, __ast_path)
121812        } else {
121813            node
121814        }
121815    }
121816
121817    #[inline]
121818    fn fold_param_or_ts_param_prop(
121819        &mut self,
121820        node: ParamOrTsParamProp,
121821        __ast_path: &mut AstKindPath,
121822    ) -> ParamOrTsParamProp {
121823        if self.enabled {
121824            <V as FoldAstPath>::fold_param_or_ts_param_prop(&mut self.visitor, node, __ast_path)
121825        } else {
121826            node
121827        }
121828    }
121829
121830    #[inline]
121831    fn fold_param_or_ts_param_props(
121832        &mut self,
121833        node: Vec<ParamOrTsParamProp>,
121834        __ast_path: &mut AstKindPath,
121835    ) -> Vec<ParamOrTsParamProp> {
121836        if self.enabled {
121837            <V as FoldAstPath>::fold_param_or_ts_param_props(&mut self.visitor, node, __ast_path)
121838        } else {
121839            node
121840        }
121841    }
121842
121843    #[inline]
121844    fn fold_params(&mut self, node: Vec<Param>, __ast_path: &mut AstKindPath) -> Vec<Param> {
121845        if self.enabled {
121846            <V as FoldAstPath>::fold_params(&mut self.visitor, node, __ast_path)
121847        } else {
121848            node
121849        }
121850    }
121851
121852    #[inline]
121853    fn fold_paren_expr(&mut self, node: ParenExpr, __ast_path: &mut AstKindPath) -> ParenExpr {
121854        if self.enabled {
121855            <V as FoldAstPath>::fold_paren_expr(&mut self.visitor, node, __ast_path)
121856        } else {
121857            node
121858        }
121859    }
121860
121861    #[inline]
121862    fn fold_pat(&mut self, node: Pat, __ast_path: &mut AstKindPath) -> Pat {
121863        if self.enabled {
121864            <V as FoldAstPath>::fold_pat(&mut self.visitor, node, __ast_path)
121865        } else {
121866            node
121867        }
121868    }
121869
121870    #[inline]
121871    fn fold_pats(&mut self, node: Vec<Pat>, __ast_path: &mut AstKindPath) -> Vec<Pat> {
121872        if self.enabled {
121873            <V as FoldAstPath>::fold_pats(&mut self.visitor, node, __ast_path)
121874        } else {
121875            node
121876        }
121877    }
121878
121879    #[inline]
121880    fn fold_private_method(
121881        &mut self,
121882        node: PrivateMethod,
121883        __ast_path: &mut AstKindPath,
121884    ) -> PrivateMethod {
121885        if self.enabled {
121886            <V as FoldAstPath>::fold_private_method(&mut self.visitor, node, __ast_path)
121887        } else {
121888            node
121889        }
121890    }
121891
121892    #[inline]
121893    fn fold_private_name(
121894        &mut self,
121895        node: PrivateName,
121896        __ast_path: &mut AstKindPath,
121897    ) -> PrivateName {
121898        if self.enabled {
121899            <V as FoldAstPath>::fold_private_name(&mut self.visitor, node, __ast_path)
121900        } else {
121901            node
121902        }
121903    }
121904
121905    #[inline]
121906    fn fold_private_prop(
121907        &mut self,
121908        node: PrivateProp,
121909        __ast_path: &mut AstKindPath,
121910    ) -> PrivateProp {
121911        if self.enabled {
121912            <V as FoldAstPath>::fold_private_prop(&mut self.visitor, node, __ast_path)
121913        } else {
121914            node
121915        }
121916    }
121917
121918    #[inline]
121919    fn fold_program(&mut self, node: Program, __ast_path: &mut AstKindPath) -> Program {
121920        if self.enabled {
121921            <V as FoldAstPath>::fold_program(&mut self.visitor, node, __ast_path)
121922        } else {
121923            node
121924        }
121925    }
121926
121927    #[inline]
121928    fn fold_prop(&mut self, node: Prop, __ast_path: &mut AstKindPath) -> Prop {
121929        if self.enabled {
121930            <V as FoldAstPath>::fold_prop(&mut self.visitor, node, __ast_path)
121931        } else {
121932            node
121933        }
121934    }
121935
121936    #[inline]
121937    fn fold_prop_name(&mut self, node: PropName, __ast_path: &mut AstKindPath) -> PropName {
121938        if self.enabled {
121939            <V as FoldAstPath>::fold_prop_name(&mut self.visitor, node, __ast_path)
121940        } else {
121941            node
121942        }
121943    }
121944
121945    #[inline]
121946    fn fold_prop_or_spread(
121947        &mut self,
121948        node: PropOrSpread,
121949        __ast_path: &mut AstKindPath,
121950    ) -> PropOrSpread {
121951        if self.enabled {
121952            <V as FoldAstPath>::fold_prop_or_spread(&mut self.visitor, node, __ast_path)
121953        } else {
121954            node
121955        }
121956    }
121957
121958    #[inline]
121959    fn fold_prop_or_spreads(
121960        &mut self,
121961        node: Vec<PropOrSpread>,
121962        __ast_path: &mut AstKindPath,
121963    ) -> Vec<PropOrSpread> {
121964        if self.enabled {
121965            <V as FoldAstPath>::fold_prop_or_spreads(&mut self.visitor, node, __ast_path)
121966        } else {
121967            node
121968        }
121969    }
121970
121971    #[inline]
121972    fn fold_regex(&mut self, node: Regex, __ast_path: &mut AstKindPath) -> Regex {
121973        if self.enabled {
121974            <V as FoldAstPath>::fold_regex(&mut self.visitor, node, __ast_path)
121975        } else {
121976            node
121977        }
121978    }
121979
121980    #[inline]
121981    fn fold_rest_pat(&mut self, node: RestPat, __ast_path: &mut AstKindPath) -> RestPat {
121982        if self.enabled {
121983            <V as FoldAstPath>::fold_rest_pat(&mut self.visitor, node, __ast_path)
121984        } else {
121985            node
121986        }
121987    }
121988
121989    #[inline]
121990    fn fold_return_stmt(&mut self, node: ReturnStmt, __ast_path: &mut AstKindPath) -> ReturnStmt {
121991        if self.enabled {
121992            <V as FoldAstPath>::fold_return_stmt(&mut self.visitor, node, __ast_path)
121993        } else {
121994            node
121995        }
121996    }
121997
121998    #[inline]
121999    fn fold_script(&mut self, node: Script, __ast_path: &mut AstKindPath) -> Script {
122000        if self.enabled {
122001            <V as FoldAstPath>::fold_script(&mut self.visitor, node, __ast_path)
122002        } else {
122003            node
122004        }
122005    }
122006
122007    #[inline]
122008    fn fold_seq_expr(&mut self, node: SeqExpr, __ast_path: &mut AstKindPath) -> SeqExpr {
122009        if self.enabled {
122010            <V as FoldAstPath>::fold_seq_expr(&mut self.visitor, node, __ast_path)
122011        } else {
122012            node
122013        }
122014    }
122015
122016    #[inline]
122017    fn fold_setter_prop(&mut self, node: SetterProp, __ast_path: &mut AstKindPath) -> SetterProp {
122018        if self.enabled {
122019            <V as FoldAstPath>::fold_setter_prop(&mut self.visitor, node, __ast_path)
122020        } else {
122021            node
122022        }
122023    }
122024
122025    #[inline]
122026    fn fold_simple_assign_target(
122027        &mut self,
122028        node: SimpleAssignTarget,
122029        __ast_path: &mut AstKindPath,
122030    ) -> SimpleAssignTarget {
122031        if self.enabled {
122032            <V as FoldAstPath>::fold_simple_assign_target(&mut self.visitor, node, __ast_path)
122033        } else {
122034            node
122035        }
122036    }
122037
122038    #[inline]
122039    fn fold_span(
122040        &mut self,
122041        node: swc_common::Span,
122042        __ast_path: &mut AstKindPath,
122043    ) -> swc_common::Span {
122044        if self.enabled {
122045            <V as FoldAstPath>::fold_span(&mut self.visitor, node, __ast_path)
122046        } else {
122047            node
122048        }
122049    }
122050
122051    #[inline]
122052    fn fold_spread_element(
122053        &mut self,
122054        node: SpreadElement,
122055        __ast_path: &mut AstKindPath,
122056    ) -> SpreadElement {
122057        if self.enabled {
122058            <V as FoldAstPath>::fold_spread_element(&mut self.visitor, node, __ast_path)
122059        } else {
122060            node
122061        }
122062    }
122063
122064    #[inline]
122065    fn fold_static_block(
122066        &mut self,
122067        node: StaticBlock,
122068        __ast_path: &mut AstKindPath,
122069    ) -> StaticBlock {
122070        if self.enabled {
122071            <V as FoldAstPath>::fold_static_block(&mut self.visitor, node, __ast_path)
122072        } else {
122073            node
122074        }
122075    }
122076
122077    #[inline]
122078    fn fold_stmt(&mut self, node: Stmt, __ast_path: &mut AstKindPath) -> Stmt {
122079        if self.enabled {
122080            <V as FoldAstPath>::fold_stmt(&mut self.visitor, node, __ast_path)
122081        } else {
122082            node
122083        }
122084    }
122085
122086    #[inline]
122087    fn fold_stmts(&mut self, node: Vec<Stmt>, __ast_path: &mut AstKindPath) -> Vec<Stmt> {
122088        if self.enabled {
122089            <V as FoldAstPath>::fold_stmts(&mut self.visitor, node, __ast_path)
122090        } else {
122091            node
122092        }
122093    }
122094
122095    #[inline]
122096    fn fold_str(&mut self, node: Str, __ast_path: &mut AstKindPath) -> Str {
122097        if self.enabled {
122098            <V as FoldAstPath>::fold_str(&mut self.visitor, node, __ast_path)
122099        } else {
122100            node
122101        }
122102    }
122103
122104    #[inline]
122105    fn fold_super(&mut self, node: Super, __ast_path: &mut AstKindPath) -> Super {
122106        if self.enabled {
122107            <V as FoldAstPath>::fold_super(&mut self.visitor, node, __ast_path)
122108        } else {
122109            node
122110        }
122111    }
122112
122113    #[inline]
122114    fn fold_super_prop(&mut self, node: SuperProp, __ast_path: &mut AstKindPath) -> SuperProp {
122115        if self.enabled {
122116            <V as FoldAstPath>::fold_super_prop(&mut self.visitor, node, __ast_path)
122117        } else {
122118            node
122119        }
122120    }
122121
122122    #[inline]
122123    fn fold_super_prop_expr(
122124        &mut self,
122125        node: SuperPropExpr,
122126        __ast_path: &mut AstKindPath,
122127    ) -> SuperPropExpr {
122128        if self.enabled {
122129            <V as FoldAstPath>::fold_super_prop_expr(&mut self.visitor, node, __ast_path)
122130        } else {
122131            node
122132        }
122133    }
122134
122135    #[inline]
122136    fn fold_switch_case(&mut self, node: SwitchCase, __ast_path: &mut AstKindPath) -> SwitchCase {
122137        if self.enabled {
122138            <V as FoldAstPath>::fold_switch_case(&mut self.visitor, node, __ast_path)
122139        } else {
122140            node
122141        }
122142    }
122143
122144    #[inline]
122145    fn fold_switch_cases(
122146        &mut self,
122147        node: Vec<SwitchCase>,
122148        __ast_path: &mut AstKindPath,
122149    ) -> Vec<SwitchCase> {
122150        if self.enabled {
122151            <V as FoldAstPath>::fold_switch_cases(&mut self.visitor, node, __ast_path)
122152        } else {
122153            node
122154        }
122155    }
122156
122157    #[inline]
122158    fn fold_switch_stmt(&mut self, node: SwitchStmt, __ast_path: &mut AstKindPath) -> SwitchStmt {
122159        if self.enabled {
122160            <V as FoldAstPath>::fold_switch_stmt(&mut self.visitor, node, __ast_path)
122161        } else {
122162            node
122163        }
122164    }
122165
122166    #[inline]
122167    fn fold_syntax_context(
122168        &mut self,
122169        node: swc_common::SyntaxContext,
122170        __ast_path: &mut AstKindPath,
122171    ) -> swc_common::SyntaxContext {
122172        if self.enabled {
122173            <V as FoldAstPath>::fold_syntax_context(&mut self.visitor, node, __ast_path)
122174        } else {
122175            node
122176        }
122177    }
122178
122179    #[inline]
122180    fn fold_tagged_tpl(&mut self, node: TaggedTpl, __ast_path: &mut AstKindPath) -> TaggedTpl {
122181        if self.enabled {
122182            <V as FoldAstPath>::fold_tagged_tpl(&mut self.visitor, node, __ast_path)
122183        } else {
122184            node
122185        }
122186    }
122187
122188    #[inline]
122189    fn fold_this_expr(&mut self, node: ThisExpr, __ast_path: &mut AstKindPath) -> ThisExpr {
122190        if self.enabled {
122191            <V as FoldAstPath>::fold_this_expr(&mut self.visitor, node, __ast_path)
122192        } else {
122193            node
122194        }
122195    }
122196
122197    #[inline]
122198    fn fold_throw_stmt(&mut self, node: ThrowStmt, __ast_path: &mut AstKindPath) -> ThrowStmt {
122199        if self.enabled {
122200            <V as FoldAstPath>::fold_throw_stmt(&mut self.visitor, node, __ast_path)
122201        } else {
122202            node
122203        }
122204    }
122205
122206    #[inline]
122207    fn fold_tpl(&mut self, node: Tpl, __ast_path: &mut AstKindPath) -> Tpl {
122208        if self.enabled {
122209            <V as FoldAstPath>::fold_tpl(&mut self.visitor, node, __ast_path)
122210        } else {
122211            node
122212        }
122213    }
122214
122215    #[inline]
122216    fn fold_tpl_element(&mut self, node: TplElement, __ast_path: &mut AstKindPath) -> TplElement {
122217        if self.enabled {
122218            <V as FoldAstPath>::fold_tpl_element(&mut self.visitor, node, __ast_path)
122219        } else {
122220            node
122221        }
122222    }
122223
122224    #[inline]
122225    fn fold_tpl_elements(
122226        &mut self,
122227        node: Vec<TplElement>,
122228        __ast_path: &mut AstKindPath,
122229    ) -> Vec<TplElement> {
122230        if self.enabled {
122231            <V as FoldAstPath>::fold_tpl_elements(&mut self.visitor, node, __ast_path)
122232        } else {
122233            node
122234        }
122235    }
122236
122237    #[inline]
122238    fn fold_true_plus_minus(
122239        &mut self,
122240        node: TruePlusMinus,
122241        __ast_path: &mut AstKindPath,
122242    ) -> TruePlusMinus {
122243        if self.enabled {
122244            <V as FoldAstPath>::fold_true_plus_minus(&mut self.visitor, node, __ast_path)
122245        } else {
122246            node
122247        }
122248    }
122249
122250    #[inline]
122251    fn fold_try_stmt(&mut self, node: TryStmt, __ast_path: &mut AstKindPath) -> TryStmt {
122252        if self.enabled {
122253            <V as FoldAstPath>::fold_try_stmt(&mut self.visitor, node, __ast_path)
122254        } else {
122255            node
122256        }
122257    }
122258
122259    #[inline]
122260    fn fold_ts_array_type(
122261        &mut self,
122262        node: TsArrayType,
122263        __ast_path: &mut AstKindPath,
122264    ) -> TsArrayType {
122265        if self.enabled {
122266            <V as FoldAstPath>::fold_ts_array_type(&mut self.visitor, node, __ast_path)
122267        } else {
122268            node
122269        }
122270    }
122271
122272    #[inline]
122273    fn fold_ts_as_expr(&mut self, node: TsAsExpr, __ast_path: &mut AstKindPath) -> TsAsExpr {
122274        if self.enabled {
122275            <V as FoldAstPath>::fold_ts_as_expr(&mut self.visitor, node, __ast_path)
122276        } else {
122277            node
122278        }
122279    }
122280
122281    #[inline]
122282    fn fold_ts_call_signature_decl(
122283        &mut self,
122284        node: TsCallSignatureDecl,
122285        __ast_path: &mut AstKindPath,
122286    ) -> TsCallSignatureDecl {
122287        if self.enabled {
122288            <V as FoldAstPath>::fold_ts_call_signature_decl(&mut self.visitor, node, __ast_path)
122289        } else {
122290            node
122291        }
122292    }
122293
122294    #[inline]
122295    fn fold_ts_conditional_type(
122296        &mut self,
122297        node: TsConditionalType,
122298        __ast_path: &mut AstKindPath,
122299    ) -> TsConditionalType {
122300        if self.enabled {
122301            <V as FoldAstPath>::fold_ts_conditional_type(&mut self.visitor, node, __ast_path)
122302        } else {
122303            node
122304        }
122305    }
122306
122307    #[inline]
122308    fn fold_ts_const_assertion(
122309        &mut self,
122310        node: TsConstAssertion,
122311        __ast_path: &mut AstKindPath,
122312    ) -> TsConstAssertion {
122313        if self.enabled {
122314            <V as FoldAstPath>::fold_ts_const_assertion(&mut self.visitor, node, __ast_path)
122315        } else {
122316            node
122317        }
122318    }
122319
122320    #[inline]
122321    fn fold_ts_construct_signature_decl(
122322        &mut self,
122323        node: TsConstructSignatureDecl,
122324        __ast_path: &mut AstKindPath,
122325    ) -> TsConstructSignatureDecl {
122326        if self.enabled {
122327            <V as FoldAstPath>::fold_ts_construct_signature_decl(
122328                &mut self.visitor,
122329                node,
122330                __ast_path,
122331            )
122332        } else {
122333            node
122334        }
122335    }
122336
122337    #[inline]
122338    fn fold_ts_constructor_type(
122339        &mut self,
122340        node: TsConstructorType,
122341        __ast_path: &mut AstKindPath,
122342    ) -> TsConstructorType {
122343        if self.enabled {
122344            <V as FoldAstPath>::fold_ts_constructor_type(&mut self.visitor, node, __ast_path)
122345        } else {
122346            node
122347        }
122348    }
122349
122350    #[inline]
122351    fn fold_ts_entity_name(
122352        &mut self,
122353        node: TsEntityName,
122354        __ast_path: &mut AstKindPath,
122355    ) -> TsEntityName {
122356        if self.enabled {
122357            <V as FoldAstPath>::fold_ts_entity_name(&mut self.visitor, node, __ast_path)
122358        } else {
122359            node
122360        }
122361    }
122362
122363    #[inline]
122364    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl, __ast_path: &mut AstKindPath) -> TsEnumDecl {
122365        if self.enabled {
122366            <V as FoldAstPath>::fold_ts_enum_decl(&mut self.visitor, node, __ast_path)
122367        } else {
122368            node
122369        }
122370    }
122371
122372    #[inline]
122373    fn fold_ts_enum_member(
122374        &mut self,
122375        node: TsEnumMember,
122376        __ast_path: &mut AstKindPath,
122377    ) -> TsEnumMember {
122378        if self.enabled {
122379            <V as FoldAstPath>::fold_ts_enum_member(&mut self.visitor, node, __ast_path)
122380        } else {
122381            node
122382        }
122383    }
122384
122385    #[inline]
122386    fn fold_ts_enum_member_id(
122387        &mut self,
122388        node: TsEnumMemberId,
122389        __ast_path: &mut AstKindPath,
122390    ) -> TsEnumMemberId {
122391        if self.enabled {
122392            <V as FoldAstPath>::fold_ts_enum_member_id(&mut self.visitor, node, __ast_path)
122393        } else {
122394            node
122395        }
122396    }
122397
122398    #[inline]
122399    fn fold_ts_enum_members(
122400        &mut self,
122401        node: Vec<TsEnumMember>,
122402        __ast_path: &mut AstKindPath,
122403    ) -> Vec<TsEnumMember> {
122404        if self.enabled {
122405            <V as FoldAstPath>::fold_ts_enum_members(&mut self.visitor, node, __ast_path)
122406        } else {
122407            node
122408        }
122409    }
122410
122411    #[inline]
122412    fn fold_ts_export_assignment(
122413        &mut self,
122414        node: TsExportAssignment,
122415        __ast_path: &mut AstKindPath,
122416    ) -> TsExportAssignment {
122417        if self.enabled {
122418            <V as FoldAstPath>::fold_ts_export_assignment(&mut self.visitor, node, __ast_path)
122419        } else {
122420            node
122421        }
122422    }
122423
122424    #[inline]
122425    fn fold_ts_expr_with_type_args(
122426        &mut self,
122427        node: TsExprWithTypeArgs,
122428        __ast_path: &mut AstKindPath,
122429    ) -> TsExprWithTypeArgs {
122430        if self.enabled {
122431            <V as FoldAstPath>::fold_ts_expr_with_type_args(&mut self.visitor, node, __ast_path)
122432        } else {
122433            node
122434        }
122435    }
122436
122437    #[inline]
122438    fn fold_ts_expr_with_type_argss(
122439        &mut self,
122440        node: Vec<TsExprWithTypeArgs>,
122441        __ast_path: &mut AstKindPath,
122442    ) -> Vec<TsExprWithTypeArgs> {
122443        if self.enabled {
122444            <V as FoldAstPath>::fold_ts_expr_with_type_argss(&mut self.visitor, node, __ast_path)
122445        } else {
122446            node
122447        }
122448    }
122449
122450    #[inline]
122451    fn fold_ts_external_module_ref(
122452        &mut self,
122453        node: TsExternalModuleRef,
122454        __ast_path: &mut AstKindPath,
122455    ) -> TsExternalModuleRef {
122456        if self.enabled {
122457            <V as FoldAstPath>::fold_ts_external_module_ref(&mut self.visitor, node, __ast_path)
122458        } else {
122459            node
122460        }
122461    }
122462
122463    #[inline]
122464    fn fold_ts_fn_or_constructor_type(
122465        &mut self,
122466        node: TsFnOrConstructorType,
122467        __ast_path: &mut AstKindPath,
122468    ) -> TsFnOrConstructorType {
122469        if self.enabled {
122470            <V as FoldAstPath>::fold_ts_fn_or_constructor_type(&mut self.visitor, node, __ast_path)
122471        } else {
122472            node
122473        }
122474    }
122475
122476    #[inline]
122477    fn fold_ts_fn_param(&mut self, node: TsFnParam, __ast_path: &mut AstKindPath) -> TsFnParam {
122478        if self.enabled {
122479            <V as FoldAstPath>::fold_ts_fn_param(&mut self.visitor, node, __ast_path)
122480        } else {
122481            node
122482        }
122483    }
122484
122485    #[inline]
122486    fn fold_ts_fn_params(
122487        &mut self,
122488        node: Vec<TsFnParam>,
122489        __ast_path: &mut AstKindPath,
122490    ) -> Vec<TsFnParam> {
122491        if self.enabled {
122492            <V as FoldAstPath>::fold_ts_fn_params(&mut self.visitor, node, __ast_path)
122493        } else {
122494            node
122495        }
122496    }
122497
122498    #[inline]
122499    fn fold_ts_fn_type(&mut self, node: TsFnType, __ast_path: &mut AstKindPath) -> TsFnType {
122500        if self.enabled {
122501            <V as FoldAstPath>::fold_ts_fn_type(&mut self.visitor, node, __ast_path)
122502        } else {
122503            node
122504        }
122505    }
122506
122507    #[inline]
122508    fn fold_ts_getter_signature(
122509        &mut self,
122510        node: TsGetterSignature,
122511        __ast_path: &mut AstKindPath,
122512    ) -> TsGetterSignature {
122513        if self.enabled {
122514            <V as FoldAstPath>::fold_ts_getter_signature(&mut self.visitor, node, __ast_path)
122515        } else {
122516            node
122517        }
122518    }
122519
122520    #[inline]
122521    fn fold_ts_import_call_options(
122522        &mut self,
122523        node: TsImportCallOptions,
122524        __ast_path: &mut AstKindPath,
122525    ) -> TsImportCallOptions {
122526        if self.enabled {
122527            <V as FoldAstPath>::fold_ts_import_call_options(&mut self.visitor, node, __ast_path)
122528        } else {
122529            node
122530        }
122531    }
122532
122533    #[inline]
122534    fn fold_ts_import_equals_decl(
122535        &mut self,
122536        node: TsImportEqualsDecl,
122537        __ast_path: &mut AstKindPath,
122538    ) -> TsImportEqualsDecl {
122539        if self.enabled {
122540            <V as FoldAstPath>::fold_ts_import_equals_decl(&mut self.visitor, node, __ast_path)
122541        } else {
122542            node
122543        }
122544    }
122545
122546    #[inline]
122547    fn fold_ts_import_type(
122548        &mut self,
122549        node: TsImportType,
122550        __ast_path: &mut AstKindPath,
122551    ) -> TsImportType {
122552        if self.enabled {
122553            <V as FoldAstPath>::fold_ts_import_type(&mut self.visitor, node, __ast_path)
122554        } else {
122555            node
122556        }
122557    }
122558
122559    #[inline]
122560    fn fold_ts_index_signature(
122561        &mut self,
122562        node: TsIndexSignature,
122563        __ast_path: &mut AstKindPath,
122564    ) -> TsIndexSignature {
122565        if self.enabled {
122566            <V as FoldAstPath>::fold_ts_index_signature(&mut self.visitor, node, __ast_path)
122567        } else {
122568            node
122569        }
122570    }
122571
122572    #[inline]
122573    fn fold_ts_indexed_access_type(
122574        &mut self,
122575        node: TsIndexedAccessType,
122576        __ast_path: &mut AstKindPath,
122577    ) -> TsIndexedAccessType {
122578        if self.enabled {
122579            <V as FoldAstPath>::fold_ts_indexed_access_type(&mut self.visitor, node, __ast_path)
122580        } else {
122581            node
122582        }
122583    }
122584
122585    #[inline]
122586    fn fold_ts_infer_type(
122587        &mut self,
122588        node: TsInferType,
122589        __ast_path: &mut AstKindPath,
122590    ) -> TsInferType {
122591        if self.enabled {
122592            <V as FoldAstPath>::fold_ts_infer_type(&mut self.visitor, node, __ast_path)
122593        } else {
122594            node
122595        }
122596    }
122597
122598    #[inline]
122599    fn fold_ts_instantiation(
122600        &mut self,
122601        node: TsInstantiation,
122602        __ast_path: &mut AstKindPath,
122603    ) -> TsInstantiation {
122604        if self.enabled {
122605            <V as FoldAstPath>::fold_ts_instantiation(&mut self.visitor, node, __ast_path)
122606        } else {
122607            node
122608        }
122609    }
122610
122611    #[inline]
122612    fn fold_ts_interface_body(
122613        &mut self,
122614        node: TsInterfaceBody,
122615        __ast_path: &mut AstKindPath,
122616    ) -> TsInterfaceBody {
122617        if self.enabled {
122618            <V as FoldAstPath>::fold_ts_interface_body(&mut self.visitor, node, __ast_path)
122619        } else {
122620            node
122621        }
122622    }
122623
122624    #[inline]
122625    fn fold_ts_interface_decl(
122626        &mut self,
122627        node: TsInterfaceDecl,
122628        __ast_path: &mut AstKindPath,
122629    ) -> TsInterfaceDecl {
122630        if self.enabled {
122631            <V as FoldAstPath>::fold_ts_interface_decl(&mut self.visitor, node, __ast_path)
122632        } else {
122633            node
122634        }
122635    }
122636
122637    #[inline]
122638    fn fold_ts_intersection_type(
122639        &mut self,
122640        node: TsIntersectionType,
122641        __ast_path: &mut AstKindPath,
122642    ) -> TsIntersectionType {
122643        if self.enabled {
122644            <V as FoldAstPath>::fold_ts_intersection_type(&mut self.visitor, node, __ast_path)
122645        } else {
122646            node
122647        }
122648    }
122649
122650    #[inline]
122651    fn fold_ts_keyword_type(
122652        &mut self,
122653        node: TsKeywordType,
122654        __ast_path: &mut AstKindPath,
122655    ) -> TsKeywordType {
122656        if self.enabled {
122657            <V as FoldAstPath>::fold_ts_keyword_type(&mut self.visitor, node, __ast_path)
122658        } else {
122659            node
122660        }
122661    }
122662
122663    #[inline]
122664    fn fold_ts_keyword_type_kind(
122665        &mut self,
122666        node: TsKeywordTypeKind,
122667        __ast_path: &mut AstKindPath,
122668    ) -> TsKeywordTypeKind {
122669        if self.enabled {
122670            <V as FoldAstPath>::fold_ts_keyword_type_kind(&mut self.visitor, node, __ast_path)
122671        } else {
122672            node
122673        }
122674    }
122675
122676    #[inline]
122677    fn fold_ts_lit(&mut self, node: TsLit, __ast_path: &mut AstKindPath) -> TsLit {
122678        if self.enabled {
122679            <V as FoldAstPath>::fold_ts_lit(&mut self.visitor, node, __ast_path)
122680        } else {
122681            node
122682        }
122683    }
122684
122685    #[inline]
122686    fn fold_ts_lit_type(&mut self, node: TsLitType, __ast_path: &mut AstKindPath) -> TsLitType {
122687        if self.enabled {
122688            <V as FoldAstPath>::fold_ts_lit_type(&mut self.visitor, node, __ast_path)
122689        } else {
122690            node
122691        }
122692    }
122693
122694    #[inline]
122695    fn fold_ts_mapped_type(
122696        &mut self,
122697        node: TsMappedType,
122698        __ast_path: &mut AstKindPath,
122699    ) -> TsMappedType {
122700        if self.enabled {
122701            <V as FoldAstPath>::fold_ts_mapped_type(&mut self.visitor, node, __ast_path)
122702        } else {
122703            node
122704        }
122705    }
122706
122707    #[inline]
122708    fn fold_ts_method_signature(
122709        &mut self,
122710        node: TsMethodSignature,
122711        __ast_path: &mut AstKindPath,
122712    ) -> TsMethodSignature {
122713        if self.enabled {
122714            <V as FoldAstPath>::fold_ts_method_signature(&mut self.visitor, node, __ast_path)
122715        } else {
122716            node
122717        }
122718    }
122719
122720    #[inline]
122721    fn fold_ts_module_block(
122722        &mut self,
122723        node: TsModuleBlock,
122724        __ast_path: &mut AstKindPath,
122725    ) -> TsModuleBlock {
122726        if self.enabled {
122727            <V as FoldAstPath>::fold_ts_module_block(&mut self.visitor, node, __ast_path)
122728        } else {
122729            node
122730        }
122731    }
122732
122733    #[inline]
122734    fn fold_ts_module_decl(
122735        &mut self,
122736        node: TsModuleDecl,
122737        __ast_path: &mut AstKindPath,
122738    ) -> TsModuleDecl {
122739        if self.enabled {
122740            <V as FoldAstPath>::fold_ts_module_decl(&mut self.visitor, node, __ast_path)
122741        } else {
122742            node
122743        }
122744    }
122745
122746    #[inline]
122747    fn fold_ts_module_name(
122748        &mut self,
122749        node: TsModuleName,
122750        __ast_path: &mut AstKindPath,
122751    ) -> TsModuleName {
122752        if self.enabled {
122753            <V as FoldAstPath>::fold_ts_module_name(&mut self.visitor, node, __ast_path)
122754        } else {
122755            node
122756        }
122757    }
122758
122759    #[inline]
122760    fn fold_ts_module_ref(
122761        &mut self,
122762        node: TsModuleRef,
122763        __ast_path: &mut AstKindPath,
122764    ) -> TsModuleRef {
122765        if self.enabled {
122766            <V as FoldAstPath>::fold_ts_module_ref(&mut self.visitor, node, __ast_path)
122767        } else {
122768            node
122769        }
122770    }
122771
122772    #[inline]
122773    fn fold_ts_namespace_body(
122774        &mut self,
122775        node: TsNamespaceBody,
122776        __ast_path: &mut AstKindPath,
122777    ) -> TsNamespaceBody {
122778        if self.enabled {
122779            <V as FoldAstPath>::fold_ts_namespace_body(&mut self.visitor, node, __ast_path)
122780        } else {
122781            node
122782        }
122783    }
122784
122785    #[inline]
122786    fn fold_ts_namespace_decl(
122787        &mut self,
122788        node: TsNamespaceDecl,
122789        __ast_path: &mut AstKindPath,
122790    ) -> TsNamespaceDecl {
122791        if self.enabled {
122792            <V as FoldAstPath>::fold_ts_namespace_decl(&mut self.visitor, node, __ast_path)
122793        } else {
122794            node
122795        }
122796    }
122797
122798    #[inline]
122799    fn fold_ts_namespace_export_decl(
122800        &mut self,
122801        node: TsNamespaceExportDecl,
122802        __ast_path: &mut AstKindPath,
122803    ) -> TsNamespaceExportDecl {
122804        if self.enabled {
122805            <V as FoldAstPath>::fold_ts_namespace_export_decl(&mut self.visitor, node, __ast_path)
122806        } else {
122807            node
122808        }
122809    }
122810
122811    #[inline]
122812    fn fold_ts_non_null_expr(
122813        &mut self,
122814        node: TsNonNullExpr,
122815        __ast_path: &mut AstKindPath,
122816    ) -> TsNonNullExpr {
122817        if self.enabled {
122818            <V as FoldAstPath>::fold_ts_non_null_expr(&mut self.visitor, node, __ast_path)
122819        } else {
122820            node
122821        }
122822    }
122823
122824    #[inline]
122825    fn fold_ts_optional_type(
122826        &mut self,
122827        node: TsOptionalType,
122828        __ast_path: &mut AstKindPath,
122829    ) -> TsOptionalType {
122830        if self.enabled {
122831            <V as FoldAstPath>::fold_ts_optional_type(&mut self.visitor, node, __ast_path)
122832        } else {
122833            node
122834        }
122835    }
122836
122837    #[inline]
122838    fn fold_ts_param_prop(
122839        &mut self,
122840        node: TsParamProp,
122841        __ast_path: &mut AstKindPath,
122842    ) -> TsParamProp {
122843        if self.enabled {
122844            <V as FoldAstPath>::fold_ts_param_prop(&mut self.visitor, node, __ast_path)
122845        } else {
122846            node
122847        }
122848    }
122849
122850    #[inline]
122851    fn fold_ts_param_prop_param(
122852        &mut self,
122853        node: TsParamPropParam,
122854        __ast_path: &mut AstKindPath,
122855    ) -> TsParamPropParam {
122856        if self.enabled {
122857            <V as FoldAstPath>::fold_ts_param_prop_param(&mut self.visitor, node, __ast_path)
122858        } else {
122859            node
122860        }
122861    }
122862
122863    #[inline]
122864    fn fold_ts_parenthesized_type(
122865        &mut self,
122866        node: TsParenthesizedType,
122867        __ast_path: &mut AstKindPath,
122868    ) -> TsParenthesizedType {
122869        if self.enabled {
122870            <V as FoldAstPath>::fold_ts_parenthesized_type(&mut self.visitor, node, __ast_path)
122871        } else {
122872            node
122873        }
122874    }
122875
122876    #[inline]
122877    fn fold_ts_property_signature(
122878        &mut self,
122879        node: TsPropertySignature,
122880        __ast_path: &mut AstKindPath,
122881    ) -> TsPropertySignature {
122882        if self.enabled {
122883            <V as FoldAstPath>::fold_ts_property_signature(&mut self.visitor, node, __ast_path)
122884        } else {
122885            node
122886        }
122887    }
122888
122889    #[inline]
122890    fn fold_ts_qualified_name(
122891        &mut self,
122892        node: TsQualifiedName,
122893        __ast_path: &mut AstKindPath,
122894    ) -> TsQualifiedName {
122895        if self.enabled {
122896            <V as FoldAstPath>::fold_ts_qualified_name(&mut self.visitor, node, __ast_path)
122897        } else {
122898            node
122899        }
122900    }
122901
122902    #[inline]
122903    fn fold_ts_rest_type(&mut self, node: TsRestType, __ast_path: &mut AstKindPath) -> TsRestType {
122904        if self.enabled {
122905            <V as FoldAstPath>::fold_ts_rest_type(&mut self.visitor, node, __ast_path)
122906        } else {
122907            node
122908        }
122909    }
122910
122911    #[inline]
122912    fn fold_ts_satisfies_expr(
122913        &mut self,
122914        node: TsSatisfiesExpr,
122915        __ast_path: &mut AstKindPath,
122916    ) -> TsSatisfiesExpr {
122917        if self.enabled {
122918            <V as FoldAstPath>::fold_ts_satisfies_expr(&mut self.visitor, node, __ast_path)
122919        } else {
122920            node
122921        }
122922    }
122923
122924    #[inline]
122925    fn fold_ts_setter_signature(
122926        &mut self,
122927        node: TsSetterSignature,
122928        __ast_path: &mut AstKindPath,
122929    ) -> TsSetterSignature {
122930        if self.enabled {
122931            <V as FoldAstPath>::fold_ts_setter_signature(&mut self.visitor, node, __ast_path)
122932        } else {
122933            node
122934        }
122935    }
122936
122937    #[inline]
122938    fn fold_ts_this_type(&mut self, node: TsThisType, __ast_path: &mut AstKindPath) -> TsThisType {
122939        if self.enabled {
122940            <V as FoldAstPath>::fold_ts_this_type(&mut self.visitor, node, __ast_path)
122941        } else {
122942            node
122943        }
122944    }
122945
122946    #[inline]
122947    fn fold_ts_this_type_or_ident(
122948        &mut self,
122949        node: TsThisTypeOrIdent,
122950        __ast_path: &mut AstKindPath,
122951    ) -> TsThisTypeOrIdent {
122952        if self.enabled {
122953            <V as FoldAstPath>::fold_ts_this_type_or_ident(&mut self.visitor, node, __ast_path)
122954        } else {
122955            node
122956        }
122957    }
122958
122959    #[inline]
122960    fn fold_ts_tpl_lit_type(
122961        &mut self,
122962        node: TsTplLitType,
122963        __ast_path: &mut AstKindPath,
122964    ) -> TsTplLitType {
122965        if self.enabled {
122966            <V as FoldAstPath>::fold_ts_tpl_lit_type(&mut self.visitor, node, __ast_path)
122967        } else {
122968            node
122969        }
122970    }
122971
122972    #[inline]
122973    fn fold_ts_tuple_element(
122974        &mut self,
122975        node: TsTupleElement,
122976        __ast_path: &mut AstKindPath,
122977    ) -> TsTupleElement {
122978        if self.enabled {
122979            <V as FoldAstPath>::fold_ts_tuple_element(&mut self.visitor, node, __ast_path)
122980        } else {
122981            node
122982        }
122983    }
122984
122985    #[inline]
122986    fn fold_ts_tuple_elements(
122987        &mut self,
122988        node: Vec<TsTupleElement>,
122989        __ast_path: &mut AstKindPath,
122990    ) -> Vec<TsTupleElement> {
122991        if self.enabled {
122992            <V as FoldAstPath>::fold_ts_tuple_elements(&mut self.visitor, node, __ast_path)
122993        } else {
122994            node
122995        }
122996    }
122997
122998    #[inline]
122999    fn fold_ts_tuple_type(
123000        &mut self,
123001        node: TsTupleType,
123002        __ast_path: &mut AstKindPath,
123003    ) -> TsTupleType {
123004        if self.enabled {
123005            <V as FoldAstPath>::fold_ts_tuple_type(&mut self.visitor, node, __ast_path)
123006        } else {
123007            node
123008        }
123009    }
123010
123011    #[inline]
123012    fn fold_ts_type(&mut self, node: TsType, __ast_path: &mut AstKindPath) -> TsType {
123013        if self.enabled {
123014            <V as FoldAstPath>::fold_ts_type(&mut self.visitor, node, __ast_path)
123015        } else {
123016            node
123017        }
123018    }
123019
123020    #[inline]
123021    fn fold_ts_type_alias_decl(
123022        &mut self,
123023        node: TsTypeAliasDecl,
123024        __ast_path: &mut AstKindPath,
123025    ) -> TsTypeAliasDecl {
123026        if self.enabled {
123027            <V as FoldAstPath>::fold_ts_type_alias_decl(&mut self.visitor, node, __ast_path)
123028        } else {
123029            node
123030        }
123031    }
123032
123033    #[inline]
123034    fn fold_ts_type_ann(&mut self, node: TsTypeAnn, __ast_path: &mut AstKindPath) -> TsTypeAnn {
123035        if self.enabled {
123036            <V as FoldAstPath>::fold_ts_type_ann(&mut self.visitor, node, __ast_path)
123037        } else {
123038            node
123039        }
123040    }
123041
123042    #[inline]
123043    fn fold_ts_type_assertion(
123044        &mut self,
123045        node: TsTypeAssertion,
123046        __ast_path: &mut AstKindPath,
123047    ) -> TsTypeAssertion {
123048        if self.enabled {
123049            <V as FoldAstPath>::fold_ts_type_assertion(&mut self.visitor, node, __ast_path)
123050        } else {
123051            node
123052        }
123053    }
123054
123055    #[inline]
123056    fn fold_ts_type_element(
123057        &mut self,
123058        node: TsTypeElement,
123059        __ast_path: &mut AstKindPath,
123060    ) -> TsTypeElement {
123061        if self.enabled {
123062            <V as FoldAstPath>::fold_ts_type_element(&mut self.visitor, node, __ast_path)
123063        } else {
123064            node
123065        }
123066    }
123067
123068    #[inline]
123069    fn fold_ts_type_elements(
123070        &mut self,
123071        node: Vec<TsTypeElement>,
123072        __ast_path: &mut AstKindPath,
123073    ) -> Vec<TsTypeElement> {
123074        if self.enabled {
123075            <V as FoldAstPath>::fold_ts_type_elements(&mut self.visitor, node, __ast_path)
123076        } else {
123077            node
123078        }
123079    }
123080
123081    #[inline]
123082    fn fold_ts_type_lit(&mut self, node: TsTypeLit, __ast_path: &mut AstKindPath) -> TsTypeLit {
123083        if self.enabled {
123084            <V as FoldAstPath>::fold_ts_type_lit(&mut self.visitor, node, __ast_path)
123085        } else {
123086            node
123087        }
123088    }
123089
123090    #[inline]
123091    fn fold_ts_type_operator(
123092        &mut self,
123093        node: TsTypeOperator,
123094        __ast_path: &mut AstKindPath,
123095    ) -> TsTypeOperator {
123096        if self.enabled {
123097            <V as FoldAstPath>::fold_ts_type_operator(&mut self.visitor, node, __ast_path)
123098        } else {
123099            node
123100        }
123101    }
123102
123103    #[inline]
123104    fn fold_ts_type_operator_op(
123105        &mut self,
123106        node: TsTypeOperatorOp,
123107        __ast_path: &mut AstKindPath,
123108    ) -> TsTypeOperatorOp {
123109        if self.enabled {
123110            <V as FoldAstPath>::fold_ts_type_operator_op(&mut self.visitor, node, __ast_path)
123111        } else {
123112            node
123113        }
123114    }
123115
123116    #[inline]
123117    fn fold_ts_type_param(
123118        &mut self,
123119        node: TsTypeParam,
123120        __ast_path: &mut AstKindPath,
123121    ) -> TsTypeParam {
123122        if self.enabled {
123123            <V as FoldAstPath>::fold_ts_type_param(&mut self.visitor, node, __ast_path)
123124        } else {
123125            node
123126        }
123127    }
123128
123129    #[inline]
123130    fn fold_ts_type_param_decl(
123131        &mut self,
123132        node: TsTypeParamDecl,
123133        __ast_path: &mut AstKindPath,
123134    ) -> TsTypeParamDecl {
123135        if self.enabled {
123136            <V as FoldAstPath>::fold_ts_type_param_decl(&mut self.visitor, node, __ast_path)
123137        } else {
123138            node
123139        }
123140    }
123141
123142    #[inline]
123143    fn fold_ts_type_param_instantiation(
123144        &mut self,
123145        node: TsTypeParamInstantiation,
123146        __ast_path: &mut AstKindPath,
123147    ) -> TsTypeParamInstantiation {
123148        if self.enabled {
123149            <V as FoldAstPath>::fold_ts_type_param_instantiation(
123150                &mut self.visitor,
123151                node,
123152                __ast_path,
123153            )
123154        } else {
123155            node
123156        }
123157    }
123158
123159    #[inline]
123160    fn fold_ts_type_params(
123161        &mut self,
123162        node: Vec<TsTypeParam>,
123163        __ast_path: &mut AstKindPath,
123164    ) -> Vec<TsTypeParam> {
123165        if self.enabled {
123166            <V as FoldAstPath>::fold_ts_type_params(&mut self.visitor, node, __ast_path)
123167        } else {
123168            node
123169        }
123170    }
123171
123172    #[inline]
123173    fn fold_ts_type_predicate(
123174        &mut self,
123175        node: TsTypePredicate,
123176        __ast_path: &mut AstKindPath,
123177    ) -> TsTypePredicate {
123178        if self.enabled {
123179            <V as FoldAstPath>::fold_ts_type_predicate(&mut self.visitor, node, __ast_path)
123180        } else {
123181            node
123182        }
123183    }
123184
123185    #[inline]
123186    fn fold_ts_type_query(
123187        &mut self,
123188        node: TsTypeQuery,
123189        __ast_path: &mut AstKindPath,
123190    ) -> TsTypeQuery {
123191        if self.enabled {
123192            <V as FoldAstPath>::fold_ts_type_query(&mut self.visitor, node, __ast_path)
123193        } else {
123194            node
123195        }
123196    }
123197
123198    #[inline]
123199    fn fold_ts_type_query_expr(
123200        &mut self,
123201        node: TsTypeQueryExpr,
123202        __ast_path: &mut AstKindPath,
123203    ) -> TsTypeQueryExpr {
123204        if self.enabled {
123205            <V as FoldAstPath>::fold_ts_type_query_expr(&mut self.visitor, node, __ast_path)
123206        } else {
123207            node
123208        }
123209    }
123210
123211    #[inline]
123212    fn fold_ts_type_ref(&mut self, node: TsTypeRef, __ast_path: &mut AstKindPath) -> TsTypeRef {
123213        if self.enabled {
123214            <V as FoldAstPath>::fold_ts_type_ref(&mut self.visitor, node, __ast_path)
123215        } else {
123216            node
123217        }
123218    }
123219
123220    #[inline]
123221    fn fold_ts_types(
123222        &mut self,
123223        node: Vec<Box<TsType>>,
123224        __ast_path: &mut AstKindPath,
123225    ) -> Vec<Box<TsType>> {
123226        if self.enabled {
123227            <V as FoldAstPath>::fold_ts_types(&mut self.visitor, node, __ast_path)
123228        } else {
123229            node
123230        }
123231    }
123232
123233    #[inline]
123234    fn fold_ts_union_or_intersection_type(
123235        &mut self,
123236        node: TsUnionOrIntersectionType,
123237        __ast_path: &mut AstKindPath,
123238    ) -> TsUnionOrIntersectionType {
123239        if self.enabled {
123240            <V as FoldAstPath>::fold_ts_union_or_intersection_type(
123241                &mut self.visitor,
123242                node,
123243                __ast_path,
123244            )
123245        } else {
123246            node
123247        }
123248    }
123249
123250    #[inline]
123251    fn fold_ts_union_type(
123252        &mut self,
123253        node: TsUnionType,
123254        __ast_path: &mut AstKindPath,
123255    ) -> TsUnionType {
123256        if self.enabled {
123257            <V as FoldAstPath>::fold_ts_union_type(&mut self.visitor, node, __ast_path)
123258        } else {
123259            node
123260        }
123261    }
123262
123263    #[inline]
123264    fn fold_unary_expr(&mut self, node: UnaryExpr, __ast_path: &mut AstKindPath) -> UnaryExpr {
123265        if self.enabled {
123266            <V as FoldAstPath>::fold_unary_expr(&mut self.visitor, node, __ast_path)
123267        } else {
123268            node
123269        }
123270    }
123271
123272    #[inline]
123273    fn fold_unary_op(&mut self, node: UnaryOp, __ast_path: &mut AstKindPath) -> UnaryOp {
123274        if self.enabled {
123275            <V as FoldAstPath>::fold_unary_op(&mut self.visitor, node, __ast_path)
123276        } else {
123277            node
123278        }
123279    }
123280
123281    #[inline]
123282    fn fold_update_expr(&mut self, node: UpdateExpr, __ast_path: &mut AstKindPath) -> UpdateExpr {
123283        if self.enabled {
123284            <V as FoldAstPath>::fold_update_expr(&mut self.visitor, node, __ast_path)
123285        } else {
123286            node
123287        }
123288    }
123289
123290    #[inline]
123291    fn fold_update_op(&mut self, node: UpdateOp, __ast_path: &mut AstKindPath) -> UpdateOp {
123292        if self.enabled {
123293            <V as FoldAstPath>::fold_update_op(&mut self.visitor, node, __ast_path)
123294        } else {
123295            node
123296        }
123297    }
123298
123299    #[inline]
123300    fn fold_using_decl(&mut self, node: UsingDecl, __ast_path: &mut AstKindPath) -> UsingDecl {
123301        if self.enabled {
123302            <V as FoldAstPath>::fold_using_decl(&mut self.visitor, node, __ast_path)
123303        } else {
123304            node
123305        }
123306    }
123307
123308    #[inline]
123309    fn fold_var_decl(&mut self, node: VarDecl, __ast_path: &mut AstKindPath) -> VarDecl {
123310        if self.enabled {
123311            <V as FoldAstPath>::fold_var_decl(&mut self.visitor, node, __ast_path)
123312        } else {
123313            node
123314        }
123315    }
123316
123317    #[inline]
123318    fn fold_var_decl_kind(
123319        &mut self,
123320        node: VarDeclKind,
123321        __ast_path: &mut AstKindPath,
123322    ) -> VarDeclKind {
123323        if self.enabled {
123324            <V as FoldAstPath>::fold_var_decl_kind(&mut self.visitor, node, __ast_path)
123325        } else {
123326            node
123327        }
123328    }
123329
123330    #[inline]
123331    fn fold_var_decl_or_expr(
123332        &mut self,
123333        node: VarDeclOrExpr,
123334        __ast_path: &mut AstKindPath,
123335    ) -> VarDeclOrExpr {
123336        if self.enabled {
123337            <V as FoldAstPath>::fold_var_decl_or_expr(&mut self.visitor, node, __ast_path)
123338        } else {
123339            node
123340        }
123341    }
123342
123343    #[inline]
123344    fn fold_var_declarator(
123345        &mut self,
123346        node: VarDeclarator,
123347        __ast_path: &mut AstKindPath,
123348    ) -> VarDeclarator {
123349        if self.enabled {
123350            <V as FoldAstPath>::fold_var_declarator(&mut self.visitor, node, __ast_path)
123351        } else {
123352            node
123353        }
123354    }
123355
123356    #[inline]
123357    fn fold_var_declarators(
123358        &mut self,
123359        node: Vec<VarDeclarator>,
123360        __ast_path: &mut AstKindPath,
123361    ) -> Vec<VarDeclarator> {
123362        if self.enabled {
123363            <V as FoldAstPath>::fold_var_declarators(&mut self.visitor, node, __ast_path)
123364        } else {
123365            node
123366        }
123367    }
123368
123369    #[inline]
123370    fn fold_while_stmt(&mut self, node: WhileStmt, __ast_path: &mut AstKindPath) -> WhileStmt {
123371        if self.enabled {
123372            <V as FoldAstPath>::fold_while_stmt(&mut self.visitor, node, __ast_path)
123373        } else {
123374            node
123375        }
123376    }
123377
123378    #[inline]
123379    fn fold_with_stmt(&mut self, node: WithStmt, __ast_path: &mut AstKindPath) -> WithStmt {
123380        if self.enabled {
123381            <V as FoldAstPath>::fold_with_stmt(&mut self.visitor, node, __ast_path)
123382        } else {
123383            node
123384        }
123385    }
123386
123387    #[inline]
123388    fn fold_yield_expr(&mut self, node: YieldExpr, __ast_path: &mut AstKindPath) -> YieldExpr {
123389        if self.enabled {
123390            <V as FoldAstPath>::fold_yield_expr(&mut self.visitor, node, __ast_path)
123391        } else {
123392            node
123393        }
123394    }
123395}
123396#[doc = r" A trait implemented for types that can be visited using a visitor."]
123397#[cfg(any(docsrs, feature = "path"))]
123398#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123399pub trait FoldWithAstPath<V: ?Sized + FoldAstPath> {
123400    #[doc = r" Calls a visitor method (visitor.fold_xxx) with self."]
123401    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self;
123402    #[doc = r" Visit children nodes of `self`` with `visitor`."]
123403    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self;
123404}
123405#[cfg(any(docsrs, feature = "path"))]
123406#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123407impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Accessibility {
123408    #[doc = "Calls [FoldAstPath`::fold_accessibility`] with `self`."]
123409    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123410        <V as FoldAstPath>::fold_accessibility(visitor, self, __ast_path)
123411    }
123412
123413    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123414        match self {
123415            Accessibility::Public => Accessibility::Public,
123416            Accessibility::Protected => Accessibility::Protected,
123417            Accessibility::Private => Accessibility::Private,
123418        }
123419    }
123420}
123421#[cfg(any(docsrs, feature = "path"))]
123422#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123423impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ArrayLit {
123424    #[doc = "Calls [FoldAstPath`::fold_array_lit`] with `self`."]
123425    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123426        <V as FoldAstPath>::fold_array_lit(visitor, self, __ast_path)
123427    }
123428
123429    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123430        match self {
123431            ArrayLit { span, elems } => {
123432                let span = {
123433                    let mut __ast_path = __ast_path
123434                        .with_guard(AstParentKind::ArrayLit(self::fields::ArrayLitField::Span));
123435                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123436                        span,
123437                        visitor,
123438                        &mut *__ast_path,
123439                    )
123440                };
123441                let elems = {
123442                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrayLit(
123443                        self::fields::ArrayLitField::Elems(usize::MAX),
123444                    ));
123445                    <Vec<Option<ExprOrSpread>> as FoldWithAstPath<V>>::fold_with_ast_path(
123446                        elems,
123447                        visitor,
123448                        &mut *__ast_path,
123449                    )
123450                };
123451                ArrayLit { span, elems }
123452            }
123453        }
123454    }
123455}
123456#[cfg(any(docsrs, feature = "path"))]
123457#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123458impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ArrayPat {
123459    #[doc = "Calls [FoldAstPath`::fold_array_pat`] with `self`."]
123460    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123461        <V as FoldAstPath>::fold_array_pat(visitor, self, __ast_path)
123462    }
123463
123464    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123465        match self {
123466            ArrayPat {
123467                span,
123468                elems,
123469                optional,
123470                type_ann,
123471            } => {
123472                let span = {
123473                    let mut __ast_path = __ast_path
123474                        .with_guard(AstParentKind::ArrayPat(self::fields::ArrayPatField::Span));
123475                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123476                        span,
123477                        visitor,
123478                        &mut *__ast_path,
123479                    )
123480                };
123481                let elems = {
123482                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrayPat(
123483                        self::fields::ArrayPatField::Elems(usize::MAX),
123484                    ));
123485                    <Vec<Option<Pat>> as FoldWithAstPath<V>>::fold_with_ast_path(
123486                        elems,
123487                        visitor,
123488                        &mut *__ast_path,
123489                    )
123490                };
123491                let type_ann = {
123492                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrayPat(
123493                        self::fields::ArrayPatField::TypeAnn,
123494                    ));
123495                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
123496                        type_ann,
123497                        visitor,
123498                        &mut *__ast_path,
123499                    )
123500                };
123501                ArrayPat {
123502                    span,
123503                    elems,
123504                    optional,
123505                    type_ann,
123506                }
123507            }
123508        }
123509    }
123510}
123511#[cfg(any(docsrs, feature = "path"))]
123512#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123513impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ArrowExpr {
123514    #[doc = "Calls [FoldAstPath`::fold_arrow_expr`] with `self`."]
123515    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123516        <V as FoldAstPath>::fold_arrow_expr(visitor, self, __ast_path)
123517    }
123518
123519    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123520        match self {
123521            ArrowExpr {
123522                span,
123523                ctxt,
123524                params,
123525                body,
123526                is_async,
123527                is_generator,
123528                type_params,
123529                return_type,
123530            } => {
123531                let span = {
123532                    let mut __ast_path = __ast_path
123533                        .with_guard(AstParentKind::ArrowExpr(self::fields::ArrowExprField::Span));
123534                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123535                        span,
123536                        visitor,
123537                        &mut *__ast_path,
123538                    )
123539                };
123540                let ctxt = {
123541                    let mut __ast_path = __ast_path
123542                        .with_guard(AstParentKind::ArrowExpr(self::fields::ArrowExprField::Ctxt));
123543                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
123544                        ctxt,
123545                        visitor,
123546                        &mut *__ast_path,
123547                    )
123548                };
123549                let params = {
123550                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrowExpr(
123551                        self::fields::ArrowExprField::Params(usize::MAX),
123552                    ));
123553                    <Vec<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
123554                        params,
123555                        visitor,
123556                        &mut *__ast_path,
123557                    )
123558                };
123559                let body = {
123560                    let mut __ast_path = __ast_path
123561                        .with_guard(AstParentKind::ArrowExpr(self::fields::ArrowExprField::Body));
123562                    <Box<BlockStmtOrExpr> as FoldWithAstPath<V>>::fold_with_ast_path(
123563                        body,
123564                        visitor,
123565                        &mut *__ast_path,
123566                    )
123567                };
123568                let type_params = {
123569                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrowExpr(
123570                        self::fields::ArrowExprField::TypeParams,
123571                    ));
123572                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
123573                        type_params,
123574                        visitor,
123575                        &mut *__ast_path,
123576                    )
123577                };
123578                let return_type = {
123579                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrowExpr(
123580                        self::fields::ArrowExprField::ReturnType,
123581                    ));
123582                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
123583                        return_type,
123584                        visitor,
123585                        &mut *__ast_path,
123586                    )
123587                };
123588                ArrowExpr {
123589                    span,
123590                    ctxt,
123591                    params,
123592                    body,
123593                    is_async,
123594                    is_generator,
123595                    type_params,
123596                    return_type,
123597                }
123598            }
123599        }
123600    }
123601}
123602#[cfg(any(docsrs, feature = "path"))]
123603#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123604impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AssignExpr {
123605    #[doc = "Calls [FoldAstPath`::fold_assign_expr`] with `self`."]
123606    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123607        <V as FoldAstPath>::fold_assign_expr(visitor, self, __ast_path)
123608    }
123609
123610    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123611        match self {
123612            AssignExpr {
123613                span,
123614                op,
123615                left,
123616                right,
123617            } => {
123618                let span = {
123619                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignExpr(
123620                        self::fields::AssignExprField::Span,
123621                    ));
123622                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123623                        span,
123624                        visitor,
123625                        &mut *__ast_path,
123626                    )
123627                };
123628                let op = {
123629                    let mut __ast_path = __ast_path
123630                        .with_guard(AstParentKind::AssignExpr(self::fields::AssignExprField::Op));
123631                    <AssignOp as FoldWithAstPath<V>>::fold_with_ast_path(
123632                        op,
123633                        visitor,
123634                        &mut *__ast_path,
123635                    )
123636                };
123637                let left = {
123638                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignExpr(
123639                        self::fields::AssignExprField::Left,
123640                    ));
123641                    <AssignTarget as FoldWithAstPath<V>>::fold_with_ast_path(
123642                        left,
123643                        visitor,
123644                        &mut *__ast_path,
123645                    )
123646                };
123647                let right = {
123648                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignExpr(
123649                        self::fields::AssignExprField::Right,
123650                    ));
123651                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
123652                        right,
123653                        visitor,
123654                        &mut *__ast_path,
123655                    )
123656                };
123657                AssignExpr {
123658                    span,
123659                    op,
123660                    left,
123661                    right,
123662                }
123663            }
123664        }
123665    }
123666}
123667#[cfg(any(docsrs, feature = "path"))]
123668#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123669impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AssignOp {
123670    #[doc = "Calls [FoldAstPath`::fold_assign_op`] with `self`."]
123671    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123672        <V as FoldAstPath>::fold_assign_op(visitor, self, __ast_path)
123673    }
123674
123675    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123676        match self {
123677            AssignOp::Assign => AssignOp::Assign,
123678            AssignOp::AddAssign => AssignOp::AddAssign,
123679            AssignOp::SubAssign => AssignOp::SubAssign,
123680            AssignOp::MulAssign => AssignOp::MulAssign,
123681            AssignOp::DivAssign => AssignOp::DivAssign,
123682            AssignOp::ModAssign => AssignOp::ModAssign,
123683            AssignOp::LShiftAssign => AssignOp::LShiftAssign,
123684            AssignOp::RShiftAssign => AssignOp::RShiftAssign,
123685            AssignOp::ZeroFillRShiftAssign => AssignOp::ZeroFillRShiftAssign,
123686            AssignOp::BitOrAssign => AssignOp::BitOrAssign,
123687            AssignOp::BitXorAssign => AssignOp::BitXorAssign,
123688            AssignOp::BitAndAssign => AssignOp::BitAndAssign,
123689            AssignOp::ExpAssign => AssignOp::ExpAssign,
123690            AssignOp::AndAssign => AssignOp::AndAssign,
123691            AssignOp::OrAssign => AssignOp::OrAssign,
123692            AssignOp::NullishAssign => AssignOp::NullishAssign,
123693        }
123694    }
123695}
123696#[cfg(any(docsrs, feature = "path"))]
123697#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123698impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AssignPat {
123699    #[doc = "Calls [FoldAstPath`::fold_assign_pat`] with `self`."]
123700    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123701        <V as FoldAstPath>::fold_assign_pat(visitor, self, __ast_path)
123702    }
123703
123704    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123705        match self {
123706            AssignPat { span, left, right } => {
123707                let span = {
123708                    let mut __ast_path = __ast_path
123709                        .with_guard(AstParentKind::AssignPat(self::fields::AssignPatField::Span));
123710                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123711                        span,
123712                        visitor,
123713                        &mut *__ast_path,
123714                    )
123715                };
123716                let left = {
123717                    let mut __ast_path = __ast_path
123718                        .with_guard(AstParentKind::AssignPat(self::fields::AssignPatField::Left));
123719                    <Box<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
123720                        left,
123721                        visitor,
123722                        &mut *__ast_path,
123723                    )
123724                };
123725                let right = {
123726                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignPat(
123727                        self::fields::AssignPatField::Right,
123728                    ));
123729                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
123730                        right,
123731                        visitor,
123732                        &mut *__ast_path,
123733                    )
123734                };
123735                AssignPat { span, left, right }
123736            }
123737        }
123738    }
123739}
123740#[cfg(any(docsrs, feature = "path"))]
123741#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123742impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AssignPatProp {
123743    #[doc = "Calls [FoldAstPath`::fold_assign_pat_prop`] with `self`."]
123744    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123745        <V as FoldAstPath>::fold_assign_pat_prop(visitor, self, __ast_path)
123746    }
123747
123748    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123749        match self {
123750            AssignPatProp { span, key, value } => {
123751                let span = {
123752                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignPatProp(
123753                        self::fields::AssignPatPropField::Span,
123754                    ));
123755                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123756                        span,
123757                        visitor,
123758                        &mut *__ast_path,
123759                    )
123760                };
123761                let key = {
123762                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignPatProp(
123763                        self::fields::AssignPatPropField::Key,
123764                    ));
123765                    <BindingIdent as FoldWithAstPath<V>>::fold_with_ast_path(
123766                        key,
123767                        visitor,
123768                        &mut *__ast_path,
123769                    )
123770                };
123771                let value = {
123772                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignPatProp(
123773                        self::fields::AssignPatPropField::Value,
123774                    ));
123775                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
123776                        value,
123777                        visitor,
123778                        &mut *__ast_path,
123779                    )
123780                };
123781                AssignPatProp { span, key, value }
123782            }
123783        }
123784    }
123785}
123786#[cfg(any(docsrs, feature = "path"))]
123787#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123788impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AssignProp {
123789    #[doc = "Calls [FoldAstPath`::fold_assign_prop`] with `self`."]
123790    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123791        <V as FoldAstPath>::fold_assign_prop(visitor, self, __ast_path)
123792    }
123793
123794    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123795        match self {
123796            AssignProp { span, key, value } => {
123797                let span = {
123798                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignProp(
123799                        self::fields::AssignPropField::Span,
123800                    ));
123801                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123802                        span,
123803                        visitor,
123804                        &mut *__ast_path,
123805                    )
123806                };
123807                let key = {
123808                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignProp(
123809                        self::fields::AssignPropField::Key,
123810                    ));
123811                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
123812                        key,
123813                        visitor,
123814                        &mut *__ast_path,
123815                    )
123816                };
123817                let value = {
123818                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignProp(
123819                        self::fields::AssignPropField::Value,
123820                    ));
123821                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
123822                        value,
123823                        visitor,
123824                        &mut *__ast_path,
123825                    )
123826                };
123827                AssignProp { span, key, value }
123828            }
123829        }
123830    }
123831}
123832#[cfg(any(docsrs, feature = "path"))]
123833#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123834impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AssignTarget {
123835    #[doc = "Calls [FoldAstPath`::fold_assign_target`] with `self`."]
123836    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123837        <V as FoldAstPath>::fold_assign_target(visitor, self, __ast_path)
123838    }
123839
123840    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123841        match self {
123842            AssignTarget::Simple { 0: _field_0 } => {
123843                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTarget(
123844                    self::fields::AssignTargetField::Simple,
123845                ));
123846                let _field_0 = <SimpleAssignTarget as FoldWithAstPath<V>>::fold_with_ast_path(
123847                    _field_0,
123848                    visitor,
123849                    &mut *__ast_path,
123850                );
123851                AssignTarget::Simple { 0: _field_0 }
123852            }
123853            AssignTarget::Pat { 0: _field_0 } => {
123854                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTarget(
123855                    self::fields::AssignTargetField::Pat,
123856                ));
123857                let _field_0 = <AssignTargetPat as FoldWithAstPath<V>>::fold_with_ast_path(
123858                    _field_0,
123859                    visitor,
123860                    &mut *__ast_path,
123861                );
123862                AssignTarget::Pat { 0: _field_0 }
123863            }
123864        }
123865    }
123866}
123867#[cfg(any(docsrs, feature = "path"))]
123868#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123869impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AssignTargetPat {
123870    #[doc = "Calls [FoldAstPath`::fold_assign_target_pat`] with `self`."]
123871    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123872        <V as FoldAstPath>::fold_assign_target_pat(visitor, self, __ast_path)
123873    }
123874
123875    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123876        match self {
123877            AssignTargetPat::Array { 0: _field_0 } => {
123878                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTargetPat(
123879                    self::fields::AssignTargetPatField::Array,
123880                ));
123881                let _field_0 = <ArrayPat as FoldWithAstPath<V>>::fold_with_ast_path(
123882                    _field_0,
123883                    visitor,
123884                    &mut *__ast_path,
123885                );
123886                AssignTargetPat::Array { 0: _field_0 }
123887            }
123888            AssignTargetPat::Object { 0: _field_0 } => {
123889                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTargetPat(
123890                    self::fields::AssignTargetPatField::Object,
123891                ));
123892                let _field_0 = <ObjectPat as FoldWithAstPath<V>>::fold_with_ast_path(
123893                    _field_0,
123894                    visitor,
123895                    &mut *__ast_path,
123896                );
123897                AssignTargetPat::Object { 0: _field_0 }
123898            }
123899            AssignTargetPat::Invalid { 0: _field_0 } => {
123900                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTargetPat(
123901                    self::fields::AssignTargetPatField::Invalid,
123902                ));
123903                let _field_0 = <Invalid as FoldWithAstPath<V>>::fold_with_ast_path(
123904                    _field_0,
123905                    visitor,
123906                    &mut *__ast_path,
123907                );
123908                AssignTargetPat::Invalid { 0: _field_0 }
123909            }
123910        }
123911    }
123912}
123913#[cfg(any(docsrs, feature = "path"))]
123914#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123915impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AutoAccessor {
123916    #[doc = "Calls [FoldAstPath`::fold_auto_accessor`] with `self`."]
123917    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123918        <V as FoldAstPath>::fold_auto_accessor(visitor, self, __ast_path)
123919    }
123920
123921    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123922        match self {
123923            AutoAccessor {
123924                span,
123925                key,
123926                value,
123927                type_ann,
123928                is_static,
123929                decorators,
123930                accessibility,
123931                is_abstract,
123932                is_override,
123933                definite,
123934            } => {
123935                let span = {
123936                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
123937                        self::fields::AutoAccessorField::Span,
123938                    ));
123939                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123940                        span,
123941                        visitor,
123942                        &mut *__ast_path,
123943                    )
123944                };
123945                let key = {
123946                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
123947                        self::fields::AutoAccessorField::Key,
123948                    ));
123949                    <Key as FoldWithAstPath<V>>::fold_with_ast_path(key, visitor, &mut *__ast_path)
123950                };
123951                let value = {
123952                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
123953                        self::fields::AutoAccessorField::Value,
123954                    ));
123955                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
123956                        value,
123957                        visitor,
123958                        &mut *__ast_path,
123959                    )
123960                };
123961                let type_ann = {
123962                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
123963                        self::fields::AutoAccessorField::TypeAnn,
123964                    ));
123965                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
123966                        type_ann,
123967                        visitor,
123968                        &mut *__ast_path,
123969                    )
123970                };
123971                let decorators = {
123972                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
123973                        self::fields::AutoAccessorField::Decorators(usize::MAX),
123974                    ));
123975                    <Vec<Decorator> as FoldWithAstPath<V>>::fold_with_ast_path(
123976                        decorators,
123977                        visitor,
123978                        &mut *__ast_path,
123979                    )
123980                };
123981                let accessibility = {
123982                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
123983                        self::fields::AutoAccessorField::Accessibility,
123984                    ));
123985                    <Option<Accessibility> as FoldWithAstPath<V>>::fold_with_ast_path(
123986                        accessibility,
123987                        visitor,
123988                        &mut *__ast_path,
123989                    )
123990                };
123991                AutoAccessor {
123992                    span,
123993                    key,
123994                    value,
123995                    type_ann,
123996                    is_static,
123997                    decorators,
123998                    accessibility,
123999                    is_abstract,
124000                    is_override,
124001                    definite,
124002                }
124003            }
124004        }
124005    }
124006}
124007#[cfg(any(docsrs, feature = "path"))]
124008#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124009impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AwaitExpr {
124010    #[doc = "Calls [FoldAstPath`::fold_await_expr`] with `self`."]
124011    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124012        <V as FoldAstPath>::fold_await_expr(visitor, self, __ast_path)
124013    }
124014
124015    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124016        match self {
124017            AwaitExpr { span, arg } => {
124018                let span = {
124019                    let mut __ast_path = __ast_path
124020                        .with_guard(AstParentKind::AwaitExpr(self::fields::AwaitExprField::Span));
124021                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124022                        span,
124023                        visitor,
124024                        &mut *__ast_path,
124025                    )
124026                };
124027                let arg = {
124028                    let mut __ast_path = __ast_path
124029                        .with_guard(AstParentKind::AwaitExpr(self::fields::AwaitExprField::Arg));
124030                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
124031                        arg,
124032                        visitor,
124033                        &mut *__ast_path,
124034                    )
124035                };
124036                AwaitExpr { span, arg }
124037            }
124038        }
124039    }
124040}
124041#[cfg(any(docsrs, feature = "path"))]
124042#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124043impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for BigInt {
124044    #[doc = "Calls [FoldAstPath`::fold_big_int`] with `self`."]
124045    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124046        <V as FoldAstPath>::fold_big_int(visitor, self, __ast_path)
124047    }
124048
124049    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124050        match self {
124051            BigInt { span, value, raw } => {
124052                let span = {
124053                    let mut __ast_path = __ast_path
124054                        .with_guard(AstParentKind::BigInt(self::fields::BigIntField::Span));
124055                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124056                        span,
124057                        visitor,
124058                        &mut *__ast_path,
124059                    )
124060                };
124061                let value = {
124062                    let mut __ast_path = __ast_path
124063                        .with_guard(AstParentKind::BigInt(self::fields::BigIntField::Value));
124064                    <Box<BigIntValue> as FoldWithAstPath<V>>::fold_with_ast_path(
124065                        value,
124066                        visitor,
124067                        &mut *__ast_path,
124068                    )
124069                };
124070                let raw = {
124071                    let mut __ast_path = __ast_path
124072                        .with_guard(AstParentKind::BigInt(self::fields::BigIntField::Raw));
124073                    <Option<swc_atoms::Atom> as FoldWithAstPath<V>>::fold_with_ast_path(
124074                        raw,
124075                        visitor,
124076                        &mut *__ast_path,
124077                    )
124078                };
124079                BigInt { span, value, raw }
124080            }
124081        }
124082    }
124083}
124084#[cfg(any(docsrs, feature = "path"))]
124085#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124086impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for BinExpr {
124087    #[doc = "Calls [FoldAstPath`::fold_bin_expr`] with `self`."]
124088    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124089        <V as FoldAstPath>::fold_bin_expr(visitor, self, __ast_path)
124090    }
124091
124092    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124093        match self {
124094            BinExpr {
124095                span,
124096                op,
124097                left,
124098                right,
124099            } => {
124100                let span = {
124101                    let mut __ast_path = __ast_path
124102                        .with_guard(AstParentKind::BinExpr(self::fields::BinExprField::Span));
124103                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124104                        span,
124105                        visitor,
124106                        &mut *__ast_path,
124107                    )
124108                };
124109                let op = {
124110                    let mut __ast_path = __ast_path
124111                        .with_guard(AstParentKind::BinExpr(self::fields::BinExprField::Op));
124112                    <BinaryOp as FoldWithAstPath<V>>::fold_with_ast_path(
124113                        op,
124114                        visitor,
124115                        &mut *__ast_path,
124116                    )
124117                };
124118                let left = {
124119                    let mut __ast_path = __ast_path
124120                        .with_guard(AstParentKind::BinExpr(self::fields::BinExprField::Left));
124121                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
124122                        left,
124123                        visitor,
124124                        &mut *__ast_path,
124125                    )
124126                };
124127                let right = {
124128                    let mut __ast_path = __ast_path
124129                        .with_guard(AstParentKind::BinExpr(self::fields::BinExprField::Right));
124130                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
124131                        right,
124132                        visitor,
124133                        &mut *__ast_path,
124134                    )
124135                };
124136                BinExpr {
124137                    span,
124138                    op,
124139                    left,
124140                    right,
124141                }
124142            }
124143        }
124144    }
124145}
124146#[cfg(any(docsrs, feature = "path"))]
124147#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124148impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for BinaryOp {
124149    #[doc = "Calls [FoldAstPath`::fold_binary_op`] with `self`."]
124150    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124151        <V as FoldAstPath>::fold_binary_op(visitor, self, __ast_path)
124152    }
124153
124154    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124155        match self {
124156            BinaryOp::EqEq => BinaryOp::EqEq,
124157            BinaryOp::NotEq => BinaryOp::NotEq,
124158            BinaryOp::EqEqEq => BinaryOp::EqEqEq,
124159            BinaryOp::NotEqEq => BinaryOp::NotEqEq,
124160            BinaryOp::Lt => BinaryOp::Lt,
124161            BinaryOp::LtEq => BinaryOp::LtEq,
124162            BinaryOp::Gt => BinaryOp::Gt,
124163            BinaryOp::GtEq => BinaryOp::GtEq,
124164            BinaryOp::LShift => BinaryOp::LShift,
124165            BinaryOp::RShift => BinaryOp::RShift,
124166            BinaryOp::ZeroFillRShift => BinaryOp::ZeroFillRShift,
124167            BinaryOp::Add => BinaryOp::Add,
124168            BinaryOp::Sub => BinaryOp::Sub,
124169            BinaryOp::Mul => BinaryOp::Mul,
124170            BinaryOp::Div => BinaryOp::Div,
124171            BinaryOp::Mod => BinaryOp::Mod,
124172            BinaryOp::BitOr => BinaryOp::BitOr,
124173            BinaryOp::BitXor => BinaryOp::BitXor,
124174            BinaryOp::BitAnd => BinaryOp::BitAnd,
124175            BinaryOp::LogicalOr => BinaryOp::LogicalOr,
124176            BinaryOp::LogicalAnd => BinaryOp::LogicalAnd,
124177            BinaryOp::In => BinaryOp::In,
124178            BinaryOp::InstanceOf => BinaryOp::InstanceOf,
124179            BinaryOp::Exp => BinaryOp::Exp,
124180            BinaryOp::NullishCoalescing => BinaryOp::NullishCoalescing,
124181        }
124182    }
124183}
124184#[cfg(any(docsrs, feature = "path"))]
124185#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124186impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for BindingIdent {
124187    #[doc = "Calls [FoldAstPath`::fold_binding_ident`] with `self`."]
124188    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124189        <V as FoldAstPath>::fold_binding_ident(visitor, self, __ast_path)
124190    }
124191
124192    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124193        match self {
124194            BindingIdent { id, type_ann } => {
124195                let id = {
124196                    let mut __ast_path = __ast_path.with_guard(AstParentKind::BindingIdent(
124197                        self::fields::BindingIdentField::Id,
124198                    ));
124199                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(id, visitor, &mut *__ast_path)
124200                };
124201                let type_ann = {
124202                    let mut __ast_path = __ast_path.with_guard(AstParentKind::BindingIdent(
124203                        self::fields::BindingIdentField::TypeAnn,
124204                    ));
124205                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
124206                        type_ann,
124207                        visitor,
124208                        &mut *__ast_path,
124209                    )
124210                };
124211                BindingIdent { id, type_ann }
124212            }
124213        }
124214    }
124215}
124216#[cfg(any(docsrs, feature = "path"))]
124217#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124218impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for BlockStmt {
124219    #[doc = "Calls [FoldAstPath`::fold_block_stmt`] with `self`."]
124220    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124221        <V as FoldAstPath>::fold_block_stmt(visitor, self, __ast_path)
124222    }
124223
124224    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124225        match self {
124226            BlockStmt { span, ctxt, stmts } => {
124227                let span = {
124228                    let mut __ast_path = __ast_path
124229                        .with_guard(AstParentKind::BlockStmt(self::fields::BlockStmtField::Span));
124230                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124231                        span,
124232                        visitor,
124233                        &mut *__ast_path,
124234                    )
124235                };
124236                let ctxt = {
124237                    let mut __ast_path = __ast_path
124238                        .with_guard(AstParentKind::BlockStmt(self::fields::BlockStmtField::Ctxt));
124239                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
124240                        ctxt,
124241                        visitor,
124242                        &mut *__ast_path,
124243                    )
124244                };
124245                let stmts = {
124246                    let mut __ast_path = __ast_path.with_guard(AstParentKind::BlockStmt(
124247                        self::fields::BlockStmtField::Stmts(usize::MAX),
124248                    ));
124249                    <Vec<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
124250                        stmts,
124251                        visitor,
124252                        &mut *__ast_path,
124253                    )
124254                };
124255                BlockStmt { span, ctxt, stmts }
124256            }
124257        }
124258    }
124259}
124260#[cfg(any(docsrs, feature = "path"))]
124261#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124262impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for BlockStmtOrExpr {
124263    #[doc = "Calls [FoldAstPath`::fold_block_stmt_or_expr`] with `self`."]
124264    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124265        <V as FoldAstPath>::fold_block_stmt_or_expr(visitor, self, __ast_path)
124266    }
124267
124268    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124269        match self {
124270            BlockStmtOrExpr::BlockStmt { 0: _field_0 } => {
124271                let mut __ast_path = __ast_path.with_guard(AstParentKind::BlockStmtOrExpr(
124272                    self::fields::BlockStmtOrExprField::BlockStmt,
124273                ));
124274                let _field_0 = <BlockStmt as FoldWithAstPath<V>>::fold_with_ast_path(
124275                    _field_0,
124276                    visitor,
124277                    &mut *__ast_path,
124278                );
124279                BlockStmtOrExpr::BlockStmt { 0: _field_0 }
124280            }
124281            BlockStmtOrExpr::Expr { 0: _field_0 } => {
124282                let mut __ast_path = __ast_path.with_guard(AstParentKind::BlockStmtOrExpr(
124283                    self::fields::BlockStmtOrExprField::Expr,
124284                ));
124285                let _field_0 = <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
124286                    _field_0,
124287                    visitor,
124288                    &mut *__ast_path,
124289                );
124290                BlockStmtOrExpr::Expr { 0: _field_0 }
124291            }
124292        }
124293    }
124294}
124295#[cfg(any(docsrs, feature = "path"))]
124296#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124297impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Bool {
124298    #[doc = "Calls [FoldAstPath`::fold_bool`] with `self`."]
124299    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124300        <V as FoldAstPath>::fold_bool(visitor, self, __ast_path)
124301    }
124302
124303    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124304        match self {
124305            Bool { span, value } => {
124306                let span = {
124307                    let mut __ast_path =
124308                        __ast_path.with_guard(AstParentKind::Bool(self::fields::BoolField::Span));
124309                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124310                        span,
124311                        visitor,
124312                        &mut *__ast_path,
124313                    )
124314                };
124315                Bool { span, value }
124316            }
124317        }
124318    }
124319}
124320#[cfg(any(docsrs, feature = "path"))]
124321#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124322impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for BreakStmt {
124323    #[doc = "Calls [FoldAstPath`::fold_break_stmt`] with `self`."]
124324    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124325        <V as FoldAstPath>::fold_break_stmt(visitor, self, __ast_path)
124326    }
124327
124328    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124329        match self {
124330            BreakStmt { span, label } => {
124331                let span = {
124332                    let mut __ast_path = __ast_path
124333                        .with_guard(AstParentKind::BreakStmt(self::fields::BreakStmtField::Span));
124334                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124335                        span,
124336                        visitor,
124337                        &mut *__ast_path,
124338                    )
124339                };
124340                let label = {
124341                    let mut __ast_path = __ast_path.with_guard(AstParentKind::BreakStmt(
124342                        self::fields::BreakStmtField::Label,
124343                    ));
124344                    <Option<Ident> as FoldWithAstPath<V>>::fold_with_ast_path(
124345                        label,
124346                        visitor,
124347                        &mut *__ast_path,
124348                    )
124349                };
124350                BreakStmt { span, label }
124351            }
124352        }
124353    }
124354}
124355#[cfg(any(docsrs, feature = "path"))]
124356#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124357impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for CallExpr {
124358    #[doc = "Calls [FoldAstPath`::fold_call_expr`] with `self`."]
124359    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124360        <V as FoldAstPath>::fold_call_expr(visitor, self, __ast_path)
124361    }
124362
124363    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124364        match self {
124365            CallExpr {
124366                span,
124367                ctxt,
124368                callee,
124369                args,
124370                type_args,
124371            } => {
124372                let span = {
124373                    let mut __ast_path = __ast_path
124374                        .with_guard(AstParentKind::CallExpr(self::fields::CallExprField::Span));
124375                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124376                        span,
124377                        visitor,
124378                        &mut *__ast_path,
124379                    )
124380                };
124381                let ctxt = {
124382                    let mut __ast_path = __ast_path
124383                        .with_guard(AstParentKind::CallExpr(self::fields::CallExprField::Ctxt));
124384                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
124385                        ctxt,
124386                        visitor,
124387                        &mut *__ast_path,
124388                    )
124389                };
124390                let callee = {
124391                    let mut __ast_path = __ast_path
124392                        .with_guard(AstParentKind::CallExpr(self::fields::CallExprField::Callee));
124393                    <Callee as FoldWithAstPath<V>>::fold_with_ast_path(
124394                        callee,
124395                        visitor,
124396                        &mut *__ast_path,
124397                    )
124398                };
124399                let args = {
124400                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CallExpr(
124401                        self::fields::CallExprField::Args(usize::MAX),
124402                    ));
124403                    <Vec<ExprOrSpread> as FoldWithAstPath<V>>::fold_with_ast_path(
124404                        args,
124405                        visitor,
124406                        &mut *__ast_path,
124407                    )
124408                };
124409                let type_args = {
124410                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CallExpr(
124411                        self::fields::CallExprField::TypeArgs,
124412                    ));
124413                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_args , visitor , & mut * __ast_path)
124414                };
124415                CallExpr {
124416                    span,
124417                    ctxt,
124418                    callee,
124419                    args,
124420                    type_args,
124421                }
124422            }
124423        }
124424    }
124425}
124426#[cfg(any(docsrs, feature = "path"))]
124427#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124428impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Callee {
124429    #[doc = "Calls [FoldAstPath`::fold_callee`] with `self`."]
124430    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124431        <V as FoldAstPath>::fold_callee(visitor, self, __ast_path)
124432    }
124433
124434    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124435        match self {
124436            Callee::Super { 0: _field_0 } => {
124437                let mut __ast_path =
124438                    __ast_path.with_guard(AstParentKind::Callee(self::fields::CalleeField::Super));
124439                let _field_0 = <Super as FoldWithAstPath<V>>::fold_with_ast_path(
124440                    _field_0,
124441                    visitor,
124442                    &mut *__ast_path,
124443                );
124444                Callee::Super { 0: _field_0 }
124445            }
124446            Callee::Import { 0: _field_0 } => {
124447                let mut __ast_path =
124448                    __ast_path.with_guard(AstParentKind::Callee(self::fields::CalleeField::Import));
124449                let _field_0 = <Import as FoldWithAstPath<V>>::fold_with_ast_path(
124450                    _field_0,
124451                    visitor,
124452                    &mut *__ast_path,
124453                );
124454                Callee::Import { 0: _field_0 }
124455            }
124456            Callee::Expr { 0: _field_0 } => {
124457                let mut __ast_path =
124458                    __ast_path.with_guard(AstParentKind::Callee(self::fields::CalleeField::Expr));
124459                let _field_0 = <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
124460                    _field_0,
124461                    visitor,
124462                    &mut *__ast_path,
124463                );
124464                Callee::Expr { 0: _field_0 }
124465            }
124466        }
124467    }
124468}
124469#[cfg(any(docsrs, feature = "path"))]
124470#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124471impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for CatchClause {
124472    #[doc = "Calls [FoldAstPath`::fold_catch_clause`] with `self`."]
124473    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124474        <V as FoldAstPath>::fold_catch_clause(visitor, self, __ast_path)
124475    }
124476
124477    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124478        match self {
124479            CatchClause { span, param, body } => {
124480                let span = {
124481                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CatchClause(
124482                        self::fields::CatchClauseField::Span,
124483                    ));
124484                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124485                        span,
124486                        visitor,
124487                        &mut *__ast_path,
124488                    )
124489                };
124490                let param = {
124491                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CatchClause(
124492                        self::fields::CatchClauseField::Param,
124493                    ));
124494                    <Option<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
124495                        param,
124496                        visitor,
124497                        &mut *__ast_path,
124498                    )
124499                };
124500                let body = {
124501                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CatchClause(
124502                        self::fields::CatchClauseField::Body,
124503                    ));
124504                    <BlockStmt as FoldWithAstPath<V>>::fold_with_ast_path(
124505                        body,
124506                        visitor,
124507                        &mut *__ast_path,
124508                    )
124509                };
124510                CatchClause { span, param, body }
124511            }
124512        }
124513    }
124514}
124515#[cfg(any(docsrs, feature = "path"))]
124516#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124517impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Class {
124518    #[doc = "Calls [FoldAstPath`::fold_class`] with `self`."]
124519    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124520        <V as FoldAstPath>::fold_class(visitor, self, __ast_path)
124521    }
124522
124523    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124524        match self {
124525            Class {
124526                span,
124527                ctxt,
124528                decorators,
124529                body,
124530                super_class,
124531                is_abstract,
124532                type_params,
124533                super_type_params,
124534                implements,
124535            } => {
124536                let span = {
124537                    let mut __ast_path =
124538                        __ast_path.with_guard(AstParentKind::Class(self::fields::ClassField::Span));
124539                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124540                        span,
124541                        visitor,
124542                        &mut *__ast_path,
124543                    )
124544                };
124545                let ctxt = {
124546                    let mut __ast_path =
124547                        __ast_path.with_guard(AstParentKind::Class(self::fields::ClassField::Ctxt));
124548                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
124549                        ctxt,
124550                        visitor,
124551                        &mut *__ast_path,
124552                    )
124553                };
124554                let decorators = {
124555                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Class(
124556                        self::fields::ClassField::Decorators(usize::MAX),
124557                    ));
124558                    <Vec<Decorator> as FoldWithAstPath<V>>::fold_with_ast_path(
124559                        decorators,
124560                        visitor,
124561                        &mut *__ast_path,
124562                    )
124563                };
124564                let body = {
124565                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Class(
124566                        self::fields::ClassField::Body(usize::MAX),
124567                    ));
124568                    <Vec<ClassMember> as FoldWithAstPath<V>>::fold_with_ast_path(
124569                        body,
124570                        visitor,
124571                        &mut *__ast_path,
124572                    )
124573                };
124574                let super_class = {
124575                    let mut __ast_path = __ast_path
124576                        .with_guard(AstParentKind::Class(self::fields::ClassField::SuperClass));
124577                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
124578                        super_class,
124579                        visitor,
124580                        &mut *__ast_path,
124581                    )
124582                };
124583                let type_params = {
124584                    let mut __ast_path = __ast_path
124585                        .with_guard(AstParentKind::Class(self::fields::ClassField::TypeParams));
124586                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
124587                        type_params,
124588                        visitor,
124589                        &mut *__ast_path,
124590                    )
124591                };
124592                let super_type_params = {
124593                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Class(
124594                        self::fields::ClassField::SuperTypeParams,
124595                    ));
124596                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (super_type_params , visitor , & mut * __ast_path)
124597                };
124598                let implements = {
124599                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Class(
124600                        self::fields::ClassField::Implements(usize::MAX),
124601                    ));
124602                    <Vec<TsExprWithTypeArgs> as FoldWithAstPath<V>>::fold_with_ast_path(
124603                        implements,
124604                        visitor,
124605                        &mut *__ast_path,
124606                    )
124607                };
124608                Class {
124609                    span,
124610                    ctxt,
124611                    decorators,
124612                    body,
124613                    super_class,
124614                    is_abstract,
124615                    type_params,
124616                    super_type_params,
124617                    implements,
124618                }
124619            }
124620        }
124621    }
124622}
124623#[cfg(any(docsrs, feature = "path"))]
124624#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124625impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ClassDecl {
124626    #[doc = "Calls [FoldAstPath`::fold_class_decl`] with `self`."]
124627    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124628        <V as FoldAstPath>::fold_class_decl(visitor, self, __ast_path)
124629    }
124630
124631    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124632        match self {
124633            ClassDecl {
124634                ident,
124635                declare,
124636                class,
124637            } => {
124638                let ident = {
124639                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassDecl(
124640                        self::fields::ClassDeclField::Ident,
124641                    ));
124642                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
124643                        ident,
124644                        visitor,
124645                        &mut *__ast_path,
124646                    )
124647                };
124648                let class = {
124649                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassDecl(
124650                        self::fields::ClassDeclField::Class,
124651                    ));
124652                    <Box<Class> as FoldWithAstPath<V>>::fold_with_ast_path(
124653                        class,
124654                        visitor,
124655                        &mut *__ast_path,
124656                    )
124657                };
124658                ClassDecl {
124659                    ident,
124660                    declare,
124661                    class,
124662                }
124663            }
124664        }
124665    }
124666}
124667#[cfg(any(docsrs, feature = "path"))]
124668#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124669impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ClassExpr {
124670    #[doc = "Calls [FoldAstPath`::fold_class_expr`] with `self`."]
124671    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124672        <V as FoldAstPath>::fold_class_expr(visitor, self, __ast_path)
124673    }
124674
124675    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124676        match self {
124677            ClassExpr { ident, class } => {
124678                let ident = {
124679                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassExpr(
124680                        self::fields::ClassExprField::Ident,
124681                    ));
124682                    <Option<Ident> as FoldWithAstPath<V>>::fold_with_ast_path(
124683                        ident,
124684                        visitor,
124685                        &mut *__ast_path,
124686                    )
124687                };
124688                let class = {
124689                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassExpr(
124690                        self::fields::ClassExprField::Class,
124691                    ));
124692                    <Box<Class> as FoldWithAstPath<V>>::fold_with_ast_path(
124693                        class,
124694                        visitor,
124695                        &mut *__ast_path,
124696                    )
124697                };
124698                ClassExpr { ident, class }
124699            }
124700        }
124701    }
124702}
124703#[cfg(any(docsrs, feature = "path"))]
124704#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124705impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ClassMember {
124706    #[doc = "Calls [FoldAstPath`::fold_class_member`] with `self`."]
124707    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124708        <V as FoldAstPath>::fold_class_member(visitor, self, __ast_path)
124709    }
124710
124711    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124712        match self {
124713            ClassMember::Constructor { 0: _field_0 } => {
124714                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
124715                    self::fields::ClassMemberField::Constructor,
124716                ));
124717                let _field_0 = <Constructor as FoldWithAstPath<V>>::fold_with_ast_path(
124718                    _field_0,
124719                    visitor,
124720                    &mut *__ast_path,
124721                );
124722                ClassMember::Constructor { 0: _field_0 }
124723            }
124724            ClassMember::Method { 0: _field_0 } => {
124725                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
124726                    self::fields::ClassMemberField::Method,
124727                ));
124728                let _field_0 = <ClassMethod as FoldWithAstPath<V>>::fold_with_ast_path(
124729                    _field_0,
124730                    visitor,
124731                    &mut *__ast_path,
124732                );
124733                ClassMember::Method { 0: _field_0 }
124734            }
124735            ClassMember::PrivateMethod { 0: _field_0 } => {
124736                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
124737                    self::fields::ClassMemberField::PrivateMethod,
124738                ));
124739                let _field_0 = <PrivateMethod as FoldWithAstPath<V>>::fold_with_ast_path(
124740                    _field_0,
124741                    visitor,
124742                    &mut *__ast_path,
124743                );
124744                ClassMember::PrivateMethod { 0: _field_0 }
124745            }
124746            ClassMember::ClassProp { 0: _field_0 } => {
124747                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
124748                    self::fields::ClassMemberField::ClassProp,
124749                ));
124750                let _field_0 = <ClassProp as FoldWithAstPath<V>>::fold_with_ast_path(
124751                    _field_0,
124752                    visitor,
124753                    &mut *__ast_path,
124754                );
124755                ClassMember::ClassProp { 0: _field_0 }
124756            }
124757            ClassMember::PrivateProp { 0: _field_0 } => {
124758                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
124759                    self::fields::ClassMemberField::PrivateProp,
124760                ));
124761                let _field_0 = <PrivateProp as FoldWithAstPath<V>>::fold_with_ast_path(
124762                    _field_0,
124763                    visitor,
124764                    &mut *__ast_path,
124765                );
124766                ClassMember::PrivateProp { 0: _field_0 }
124767            }
124768            ClassMember::TsIndexSignature { 0: _field_0 } => {
124769                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
124770                    self::fields::ClassMemberField::TsIndexSignature,
124771                ));
124772                let _field_0 = <TsIndexSignature as FoldWithAstPath<V>>::fold_with_ast_path(
124773                    _field_0,
124774                    visitor,
124775                    &mut *__ast_path,
124776                );
124777                ClassMember::TsIndexSignature { 0: _field_0 }
124778            }
124779            ClassMember::Empty { 0: _field_0 } => {
124780                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
124781                    self::fields::ClassMemberField::Empty,
124782                ));
124783                let _field_0 = <EmptyStmt as FoldWithAstPath<V>>::fold_with_ast_path(
124784                    _field_0,
124785                    visitor,
124786                    &mut *__ast_path,
124787                );
124788                ClassMember::Empty { 0: _field_0 }
124789            }
124790            ClassMember::StaticBlock { 0: _field_0 } => {
124791                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
124792                    self::fields::ClassMemberField::StaticBlock,
124793                ));
124794                let _field_0 = <StaticBlock as FoldWithAstPath<V>>::fold_with_ast_path(
124795                    _field_0,
124796                    visitor,
124797                    &mut *__ast_path,
124798                );
124799                ClassMember::StaticBlock { 0: _field_0 }
124800            }
124801            ClassMember::AutoAccessor { 0: _field_0 } => {
124802                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
124803                    self::fields::ClassMemberField::AutoAccessor,
124804                ));
124805                let _field_0 = <AutoAccessor as FoldWithAstPath<V>>::fold_with_ast_path(
124806                    _field_0,
124807                    visitor,
124808                    &mut *__ast_path,
124809                );
124810                ClassMember::AutoAccessor { 0: _field_0 }
124811            }
124812        }
124813    }
124814}
124815#[cfg(any(docsrs, feature = "path"))]
124816#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124817impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ClassMethod {
124818    #[doc = "Calls [FoldAstPath`::fold_class_method`] with `self`."]
124819    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124820        <V as FoldAstPath>::fold_class_method(visitor, self, __ast_path)
124821    }
124822
124823    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124824        match self {
124825            ClassMethod {
124826                span,
124827                key,
124828                function,
124829                kind,
124830                is_static,
124831                accessibility,
124832                is_abstract,
124833                is_optional,
124834                is_override,
124835            } => {
124836                let span = {
124837                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
124838                        self::fields::ClassMethodField::Span,
124839                    ));
124840                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124841                        span,
124842                        visitor,
124843                        &mut *__ast_path,
124844                    )
124845                };
124846                let key = {
124847                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
124848                        self::fields::ClassMethodField::Key,
124849                    ));
124850                    <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
124851                        key,
124852                        visitor,
124853                        &mut *__ast_path,
124854                    )
124855                };
124856                let function = {
124857                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
124858                        self::fields::ClassMethodField::Function,
124859                    ));
124860                    <Box<Function> as FoldWithAstPath<V>>::fold_with_ast_path(
124861                        function,
124862                        visitor,
124863                        &mut *__ast_path,
124864                    )
124865                };
124866                let kind = {
124867                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
124868                        self::fields::ClassMethodField::Kind,
124869                    ));
124870                    <MethodKind as FoldWithAstPath<V>>::fold_with_ast_path(
124871                        kind,
124872                        visitor,
124873                        &mut *__ast_path,
124874                    )
124875                };
124876                let accessibility = {
124877                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
124878                        self::fields::ClassMethodField::Accessibility,
124879                    ));
124880                    <Option<Accessibility> as FoldWithAstPath<V>>::fold_with_ast_path(
124881                        accessibility,
124882                        visitor,
124883                        &mut *__ast_path,
124884                    )
124885                };
124886                ClassMethod {
124887                    span,
124888                    key,
124889                    function,
124890                    kind,
124891                    is_static,
124892                    accessibility,
124893                    is_abstract,
124894                    is_optional,
124895                    is_override,
124896                }
124897            }
124898        }
124899    }
124900}
124901#[cfg(any(docsrs, feature = "path"))]
124902#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124903impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ClassProp {
124904    #[doc = "Calls [FoldAstPath`::fold_class_prop`] with `self`."]
124905    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124906        <V as FoldAstPath>::fold_class_prop(visitor, self, __ast_path)
124907    }
124908
124909    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124910        match self {
124911            ClassProp {
124912                span,
124913                key,
124914                value,
124915                type_ann,
124916                is_static,
124917                decorators,
124918                accessibility,
124919                is_abstract,
124920                is_optional,
124921                is_override,
124922                readonly,
124923                declare,
124924                definite,
124925            } => {
124926                let span = {
124927                    let mut __ast_path = __ast_path
124928                        .with_guard(AstParentKind::ClassProp(self::fields::ClassPropField::Span));
124929                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124930                        span,
124931                        visitor,
124932                        &mut *__ast_path,
124933                    )
124934                };
124935                let key = {
124936                    let mut __ast_path = __ast_path
124937                        .with_guard(AstParentKind::ClassProp(self::fields::ClassPropField::Key));
124938                    <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
124939                        key,
124940                        visitor,
124941                        &mut *__ast_path,
124942                    )
124943                };
124944                let value = {
124945                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassProp(
124946                        self::fields::ClassPropField::Value,
124947                    ));
124948                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
124949                        value,
124950                        visitor,
124951                        &mut *__ast_path,
124952                    )
124953                };
124954                let type_ann = {
124955                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassProp(
124956                        self::fields::ClassPropField::TypeAnn,
124957                    ));
124958                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
124959                        type_ann,
124960                        visitor,
124961                        &mut *__ast_path,
124962                    )
124963                };
124964                let decorators = {
124965                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassProp(
124966                        self::fields::ClassPropField::Decorators(usize::MAX),
124967                    ));
124968                    <Vec<Decorator> as FoldWithAstPath<V>>::fold_with_ast_path(
124969                        decorators,
124970                        visitor,
124971                        &mut *__ast_path,
124972                    )
124973                };
124974                let accessibility = {
124975                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassProp(
124976                        self::fields::ClassPropField::Accessibility,
124977                    ));
124978                    <Option<Accessibility> as FoldWithAstPath<V>>::fold_with_ast_path(
124979                        accessibility,
124980                        visitor,
124981                        &mut *__ast_path,
124982                    )
124983                };
124984                ClassProp {
124985                    span,
124986                    key,
124987                    value,
124988                    type_ann,
124989                    is_static,
124990                    decorators,
124991                    accessibility,
124992                    is_abstract,
124993                    is_optional,
124994                    is_override,
124995                    readonly,
124996                    declare,
124997                    definite,
124998                }
124999            }
125000        }
125001    }
125002}
125003#[cfg(any(docsrs, feature = "path"))]
125004#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125005impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ComputedPropName {
125006    #[doc = "Calls [FoldAstPath`::fold_computed_prop_name`] with `self`."]
125007    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125008        <V as FoldAstPath>::fold_computed_prop_name(visitor, self, __ast_path)
125009    }
125010
125011    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125012        match self {
125013            ComputedPropName { span, expr } => {
125014                let span = {
125015                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ComputedPropName(
125016                        self::fields::ComputedPropNameField::Span,
125017                    ));
125018                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125019                        span,
125020                        visitor,
125021                        &mut *__ast_path,
125022                    )
125023                };
125024                let expr = {
125025                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ComputedPropName(
125026                        self::fields::ComputedPropNameField::Expr,
125027                    ));
125028                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
125029                        expr,
125030                        visitor,
125031                        &mut *__ast_path,
125032                    )
125033                };
125034                ComputedPropName { span, expr }
125035            }
125036        }
125037    }
125038}
125039#[cfg(any(docsrs, feature = "path"))]
125040#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125041impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for CondExpr {
125042    #[doc = "Calls [FoldAstPath`::fold_cond_expr`] with `self`."]
125043    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125044        <V as FoldAstPath>::fold_cond_expr(visitor, self, __ast_path)
125045    }
125046
125047    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125048        match self {
125049            CondExpr {
125050                span,
125051                test,
125052                cons,
125053                alt,
125054            } => {
125055                let span = {
125056                    let mut __ast_path = __ast_path
125057                        .with_guard(AstParentKind::CondExpr(self::fields::CondExprField::Span));
125058                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125059                        span,
125060                        visitor,
125061                        &mut *__ast_path,
125062                    )
125063                };
125064                let test = {
125065                    let mut __ast_path = __ast_path
125066                        .with_guard(AstParentKind::CondExpr(self::fields::CondExprField::Test));
125067                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
125068                        test,
125069                        visitor,
125070                        &mut *__ast_path,
125071                    )
125072                };
125073                let cons = {
125074                    let mut __ast_path = __ast_path
125075                        .with_guard(AstParentKind::CondExpr(self::fields::CondExprField::Cons));
125076                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
125077                        cons,
125078                        visitor,
125079                        &mut *__ast_path,
125080                    )
125081                };
125082                let alt = {
125083                    let mut __ast_path = __ast_path
125084                        .with_guard(AstParentKind::CondExpr(self::fields::CondExprField::Alt));
125085                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
125086                        alt,
125087                        visitor,
125088                        &mut *__ast_path,
125089                    )
125090                };
125091                CondExpr {
125092                    span,
125093                    test,
125094                    cons,
125095                    alt,
125096                }
125097            }
125098        }
125099    }
125100}
125101#[cfg(any(docsrs, feature = "path"))]
125102#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125103impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Constructor {
125104    #[doc = "Calls [FoldAstPath`::fold_constructor`] with `self`."]
125105    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125106        <V as FoldAstPath>::fold_constructor(visitor, self, __ast_path)
125107    }
125108
125109    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125110        match self {
125111            Constructor {
125112                span,
125113                ctxt,
125114                key,
125115                params,
125116                body,
125117                accessibility,
125118                is_optional,
125119            } => {
125120                let span = {
125121                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
125122                        self::fields::ConstructorField::Span,
125123                    ));
125124                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125125                        span,
125126                        visitor,
125127                        &mut *__ast_path,
125128                    )
125129                };
125130                let ctxt = {
125131                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
125132                        self::fields::ConstructorField::Ctxt,
125133                    ));
125134                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
125135                        ctxt,
125136                        visitor,
125137                        &mut *__ast_path,
125138                    )
125139                };
125140                let key = {
125141                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
125142                        self::fields::ConstructorField::Key,
125143                    ));
125144                    <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
125145                        key,
125146                        visitor,
125147                        &mut *__ast_path,
125148                    )
125149                };
125150                let params = {
125151                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
125152                        self::fields::ConstructorField::Params(usize::MAX),
125153                    ));
125154                    <Vec<ParamOrTsParamProp> as FoldWithAstPath<V>>::fold_with_ast_path(
125155                        params,
125156                        visitor,
125157                        &mut *__ast_path,
125158                    )
125159                };
125160                let body = {
125161                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
125162                        self::fields::ConstructorField::Body,
125163                    ));
125164                    <Option<BlockStmt> as FoldWithAstPath<V>>::fold_with_ast_path(
125165                        body,
125166                        visitor,
125167                        &mut *__ast_path,
125168                    )
125169                };
125170                let accessibility = {
125171                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
125172                        self::fields::ConstructorField::Accessibility,
125173                    ));
125174                    <Option<Accessibility> as FoldWithAstPath<V>>::fold_with_ast_path(
125175                        accessibility,
125176                        visitor,
125177                        &mut *__ast_path,
125178                    )
125179                };
125180                Constructor {
125181                    span,
125182                    ctxt,
125183                    key,
125184                    params,
125185                    body,
125186                    accessibility,
125187                    is_optional,
125188                }
125189            }
125190        }
125191    }
125192}
125193#[cfg(any(docsrs, feature = "path"))]
125194#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125195impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ContinueStmt {
125196    #[doc = "Calls [FoldAstPath`::fold_continue_stmt`] with `self`."]
125197    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125198        <V as FoldAstPath>::fold_continue_stmt(visitor, self, __ast_path)
125199    }
125200
125201    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125202        match self {
125203            ContinueStmt { span, label } => {
125204                let span = {
125205                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ContinueStmt(
125206                        self::fields::ContinueStmtField::Span,
125207                    ));
125208                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125209                        span,
125210                        visitor,
125211                        &mut *__ast_path,
125212                    )
125213                };
125214                let label = {
125215                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ContinueStmt(
125216                        self::fields::ContinueStmtField::Label,
125217                    ));
125218                    <Option<Ident> as FoldWithAstPath<V>>::fold_with_ast_path(
125219                        label,
125220                        visitor,
125221                        &mut *__ast_path,
125222                    )
125223                };
125224                ContinueStmt { span, label }
125225            }
125226        }
125227    }
125228}
125229#[cfg(any(docsrs, feature = "path"))]
125230#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125231impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for DebuggerStmt {
125232    #[doc = "Calls [FoldAstPath`::fold_debugger_stmt`] with `self`."]
125233    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125234        <V as FoldAstPath>::fold_debugger_stmt(visitor, self, __ast_path)
125235    }
125236
125237    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125238        match self {
125239            DebuggerStmt { span } => {
125240                let span = {
125241                    let mut __ast_path = __ast_path.with_guard(AstParentKind::DebuggerStmt(
125242                        self::fields::DebuggerStmtField::Span,
125243                    ));
125244                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125245                        span,
125246                        visitor,
125247                        &mut *__ast_path,
125248                    )
125249                };
125250                DebuggerStmt { span }
125251            }
125252        }
125253    }
125254}
125255#[cfg(any(docsrs, feature = "path"))]
125256#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125257impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Decl {
125258    #[doc = "Calls [FoldAstPath`::fold_decl`] with `self`."]
125259    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125260        <V as FoldAstPath>::fold_decl(visitor, self, __ast_path)
125261    }
125262
125263    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125264        match self {
125265            Decl::Class { 0: _field_0 } => {
125266                let mut __ast_path =
125267                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::Class));
125268                let _field_0 = <ClassDecl as FoldWithAstPath<V>>::fold_with_ast_path(
125269                    _field_0,
125270                    visitor,
125271                    &mut *__ast_path,
125272                );
125273                Decl::Class { 0: _field_0 }
125274            }
125275            Decl::Fn { 0: _field_0 } => {
125276                let mut __ast_path =
125277                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::Fn));
125278                let _field_0 = <FnDecl as FoldWithAstPath<V>>::fold_with_ast_path(
125279                    _field_0,
125280                    visitor,
125281                    &mut *__ast_path,
125282                );
125283                Decl::Fn { 0: _field_0 }
125284            }
125285            Decl::Var { 0: _field_0 } => {
125286                let mut __ast_path =
125287                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::Var));
125288                let _field_0 = <Box<VarDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
125289                    _field_0,
125290                    visitor,
125291                    &mut *__ast_path,
125292                );
125293                Decl::Var { 0: _field_0 }
125294            }
125295            Decl::Using { 0: _field_0 } => {
125296                let mut __ast_path =
125297                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::Using));
125298                let _field_0 = <Box<UsingDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
125299                    _field_0,
125300                    visitor,
125301                    &mut *__ast_path,
125302                );
125303                Decl::Using { 0: _field_0 }
125304            }
125305            Decl::TsInterface { 0: _field_0 } => {
125306                let mut __ast_path = __ast_path
125307                    .with_guard(AstParentKind::Decl(self::fields::DeclField::TsInterface));
125308                let _field_0 = <Box<TsInterfaceDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
125309                    _field_0,
125310                    visitor,
125311                    &mut *__ast_path,
125312                );
125313                Decl::TsInterface { 0: _field_0 }
125314            }
125315            Decl::TsTypeAlias { 0: _field_0 } => {
125316                let mut __ast_path = __ast_path
125317                    .with_guard(AstParentKind::Decl(self::fields::DeclField::TsTypeAlias));
125318                let _field_0 = <Box<TsTypeAliasDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
125319                    _field_0,
125320                    visitor,
125321                    &mut *__ast_path,
125322                );
125323                Decl::TsTypeAlias { 0: _field_0 }
125324            }
125325            Decl::TsEnum { 0: _field_0 } => {
125326                let mut __ast_path =
125327                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::TsEnum));
125328                let _field_0 = <Box<TsEnumDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
125329                    _field_0,
125330                    visitor,
125331                    &mut *__ast_path,
125332                );
125333                Decl::TsEnum { 0: _field_0 }
125334            }
125335            Decl::TsModule { 0: _field_0 } => {
125336                let mut __ast_path =
125337                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::TsModule));
125338                let _field_0 = <Box<TsModuleDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
125339                    _field_0,
125340                    visitor,
125341                    &mut *__ast_path,
125342                );
125343                Decl::TsModule { 0: _field_0 }
125344            }
125345        }
125346    }
125347}
125348#[cfg(any(docsrs, feature = "path"))]
125349#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125350impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Decorator {
125351    #[doc = "Calls [FoldAstPath`::fold_decorator`] with `self`."]
125352    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125353        <V as FoldAstPath>::fold_decorator(visitor, self, __ast_path)
125354    }
125355
125356    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125357        match self {
125358            Decorator { span, expr } => {
125359                let span = {
125360                    let mut __ast_path = __ast_path
125361                        .with_guard(AstParentKind::Decorator(self::fields::DecoratorField::Span));
125362                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125363                        span,
125364                        visitor,
125365                        &mut *__ast_path,
125366                    )
125367                };
125368                let expr = {
125369                    let mut __ast_path = __ast_path
125370                        .with_guard(AstParentKind::Decorator(self::fields::DecoratorField::Expr));
125371                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
125372                        expr,
125373                        visitor,
125374                        &mut *__ast_path,
125375                    )
125376                };
125377                Decorator { span, expr }
125378            }
125379        }
125380    }
125381}
125382#[cfg(any(docsrs, feature = "path"))]
125383#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125384impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for DefaultDecl {
125385    #[doc = "Calls [FoldAstPath`::fold_default_decl`] with `self`."]
125386    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125387        <V as FoldAstPath>::fold_default_decl(visitor, self, __ast_path)
125388    }
125389
125390    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125391        match self {
125392            DefaultDecl::Class { 0: _field_0 } => {
125393                let mut __ast_path = __ast_path.with_guard(AstParentKind::DefaultDecl(
125394                    self::fields::DefaultDeclField::Class,
125395                ));
125396                let _field_0 = <ClassExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125397                    _field_0,
125398                    visitor,
125399                    &mut *__ast_path,
125400                );
125401                DefaultDecl::Class { 0: _field_0 }
125402            }
125403            DefaultDecl::Fn { 0: _field_0 } => {
125404                let mut __ast_path = __ast_path.with_guard(AstParentKind::DefaultDecl(
125405                    self::fields::DefaultDeclField::Fn,
125406                ));
125407                let _field_0 = <FnExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125408                    _field_0,
125409                    visitor,
125410                    &mut *__ast_path,
125411                );
125412                DefaultDecl::Fn { 0: _field_0 }
125413            }
125414            DefaultDecl::TsInterfaceDecl { 0: _field_0 } => {
125415                let mut __ast_path = __ast_path.with_guard(AstParentKind::DefaultDecl(
125416                    self::fields::DefaultDeclField::TsInterfaceDecl,
125417                ));
125418                let _field_0 = <Box<TsInterfaceDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
125419                    _field_0,
125420                    visitor,
125421                    &mut *__ast_path,
125422                );
125423                DefaultDecl::TsInterfaceDecl { 0: _field_0 }
125424            }
125425        }
125426    }
125427}
125428#[cfg(any(docsrs, feature = "path"))]
125429#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125430impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for DoWhileStmt {
125431    #[doc = "Calls [FoldAstPath`::fold_do_while_stmt`] with `self`."]
125432    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125433        <V as FoldAstPath>::fold_do_while_stmt(visitor, self, __ast_path)
125434    }
125435
125436    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125437        match self {
125438            DoWhileStmt { span, test, body } => {
125439                let span = {
125440                    let mut __ast_path = __ast_path.with_guard(AstParentKind::DoWhileStmt(
125441                        self::fields::DoWhileStmtField::Span,
125442                    ));
125443                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125444                        span,
125445                        visitor,
125446                        &mut *__ast_path,
125447                    )
125448                };
125449                let test = {
125450                    let mut __ast_path = __ast_path.with_guard(AstParentKind::DoWhileStmt(
125451                        self::fields::DoWhileStmtField::Test,
125452                    ));
125453                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
125454                        test,
125455                        visitor,
125456                        &mut *__ast_path,
125457                    )
125458                };
125459                let body = {
125460                    let mut __ast_path = __ast_path.with_guard(AstParentKind::DoWhileStmt(
125461                        self::fields::DoWhileStmtField::Body,
125462                    ));
125463                    <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
125464                        body,
125465                        visitor,
125466                        &mut *__ast_path,
125467                    )
125468                };
125469                DoWhileStmt { span, test, body }
125470            }
125471        }
125472    }
125473}
125474#[cfg(any(docsrs, feature = "path"))]
125475#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125476impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for EmptyStmt {
125477    #[doc = "Calls [FoldAstPath`::fold_empty_stmt`] with `self`."]
125478    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125479        <V as FoldAstPath>::fold_empty_stmt(visitor, self, __ast_path)
125480    }
125481
125482    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125483        match self {
125484            EmptyStmt { span } => {
125485                let span = {
125486                    let mut __ast_path = __ast_path
125487                        .with_guard(AstParentKind::EmptyStmt(self::fields::EmptyStmtField::Span));
125488                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125489                        span,
125490                        visitor,
125491                        &mut *__ast_path,
125492                    )
125493                };
125494                EmptyStmt { span }
125495            }
125496        }
125497    }
125498}
125499#[cfg(any(docsrs, feature = "path"))]
125500#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125501impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExportAll {
125502    #[doc = "Calls [FoldAstPath`::fold_export_all`] with `self`."]
125503    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125504        <V as FoldAstPath>::fold_export_all(visitor, self, __ast_path)
125505    }
125506
125507    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125508        match self {
125509            ExportAll {
125510                span,
125511                src,
125512                type_only,
125513                with,
125514            } => {
125515                let span = {
125516                    let mut __ast_path = __ast_path
125517                        .with_guard(AstParentKind::ExportAll(self::fields::ExportAllField::Span));
125518                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125519                        span,
125520                        visitor,
125521                        &mut *__ast_path,
125522                    )
125523                };
125524                let src = {
125525                    let mut __ast_path = __ast_path
125526                        .with_guard(AstParentKind::ExportAll(self::fields::ExportAllField::Src));
125527                    <Box<Str> as FoldWithAstPath<V>>::fold_with_ast_path(
125528                        src,
125529                        visitor,
125530                        &mut *__ast_path,
125531                    )
125532                };
125533                let with = {
125534                    let mut __ast_path = __ast_path
125535                        .with_guard(AstParentKind::ExportAll(self::fields::ExportAllField::With));
125536                    <Option<Box<ObjectLit>> as FoldWithAstPath<V>>::fold_with_ast_path(
125537                        with,
125538                        visitor,
125539                        &mut *__ast_path,
125540                    )
125541                };
125542                ExportAll {
125543                    span,
125544                    src,
125545                    type_only,
125546                    with,
125547                }
125548            }
125549        }
125550    }
125551}
125552#[cfg(any(docsrs, feature = "path"))]
125553#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125554impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExportDecl {
125555    #[doc = "Calls [FoldAstPath`::fold_export_decl`] with `self`."]
125556    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125557        <V as FoldAstPath>::fold_export_decl(visitor, self, __ast_path)
125558    }
125559
125560    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125561        match self {
125562            ExportDecl { span, decl } => {
125563                let span = {
125564                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDecl(
125565                        self::fields::ExportDeclField::Span,
125566                    ));
125567                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125568                        span,
125569                        visitor,
125570                        &mut *__ast_path,
125571                    )
125572                };
125573                let decl = {
125574                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDecl(
125575                        self::fields::ExportDeclField::Decl,
125576                    ));
125577                    <Decl as FoldWithAstPath<V>>::fold_with_ast_path(
125578                        decl,
125579                        visitor,
125580                        &mut *__ast_path,
125581                    )
125582                };
125583                ExportDecl { span, decl }
125584            }
125585        }
125586    }
125587}
125588#[cfg(any(docsrs, feature = "path"))]
125589#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125590impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExportDefaultDecl {
125591    #[doc = "Calls [FoldAstPath`::fold_export_default_decl`] with `self`."]
125592    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125593        <V as FoldAstPath>::fold_export_default_decl(visitor, self, __ast_path)
125594    }
125595
125596    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125597        match self {
125598            ExportDefaultDecl { span, decl } => {
125599                let span = {
125600                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDefaultDecl(
125601                        self::fields::ExportDefaultDeclField::Span,
125602                    ));
125603                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125604                        span,
125605                        visitor,
125606                        &mut *__ast_path,
125607                    )
125608                };
125609                let decl = {
125610                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDefaultDecl(
125611                        self::fields::ExportDefaultDeclField::Decl,
125612                    ));
125613                    <DefaultDecl as FoldWithAstPath<V>>::fold_with_ast_path(
125614                        decl,
125615                        visitor,
125616                        &mut *__ast_path,
125617                    )
125618                };
125619                ExportDefaultDecl { span, decl }
125620            }
125621        }
125622    }
125623}
125624#[cfg(any(docsrs, feature = "path"))]
125625#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125626impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExportDefaultExpr {
125627    #[doc = "Calls [FoldAstPath`::fold_export_default_expr`] with `self`."]
125628    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125629        <V as FoldAstPath>::fold_export_default_expr(visitor, self, __ast_path)
125630    }
125631
125632    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125633        match self {
125634            ExportDefaultExpr { span, expr } => {
125635                let span = {
125636                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDefaultExpr(
125637                        self::fields::ExportDefaultExprField::Span,
125638                    ));
125639                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125640                        span,
125641                        visitor,
125642                        &mut *__ast_path,
125643                    )
125644                };
125645                let expr = {
125646                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDefaultExpr(
125647                        self::fields::ExportDefaultExprField::Expr,
125648                    ));
125649                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
125650                        expr,
125651                        visitor,
125652                        &mut *__ast_path,
125653                    )
125654                };
125655                ExportDefaultExpr { span, expr }
125656            }
125657        }
125658    }
125659}
125660#[cfg(any(docsrs, feature = "path"))]
125661#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125662impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExportDefaultSpecifier {
125663    #[doc = "Calls [FoldAstPath`::fold_export_default_specifier`] with `self`."]
125664    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125665        <V as FoldAstPath>::fold_export_default_specifier(visitor, self, __ast_path)
125666    }
125667
125668    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125669        match self {
125670            ExportDefaultSpecifier { exported } => {
125671                let exported = {
125672                    let mut __ast_path =
125673                        __ast_path.with_guard(AstParentKind::ExportDefaultSpecifier(
125674                            self::fields::ExportDefaultSpecifierField::Exported,
125675                        ));
125676                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
125677                        exported,
125678                        visitor,
125679                        &mut *__ast_path,
125680                    )
125681                };
125682                ExportDefaultSpecifier { exported }
125683            }
125684        }
125685    }
125686}
125687#[cfg(any(docsrs, feature = "path"))]
125688#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125689impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExportNamedSpecifier {
125690    #[doc = "Calls [FoldAstPath`::fold_export_named_specifier`] with `self`."]
125691    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125692        <V as FoldAstPath>::fold_export_named_specifier(visitor, self, __ast_path)
125693    }
125694
125695    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125696        match self {
125697            ExportNamedSpecifier {
125698                span,
125699                orig,
125700                exported,
125701                is_type_only,
125702            } => {
125703                let span = {
125704                    let mut __ast_path =
125705                        __ast_path.with_guard(AstParentKind::ExportNamedSpecifier(
125706                            self::fields::ExportNamedSpecifierField::Span,
125707                        ));
125708                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125709                        span,
125710                        visitor,
125711                        &mut *__ast_path,
125712                    )
125713                };
125714                let orig = {
125715                    let mut __ast_path =
125716                        __ast_path.with_guard(AstParentKind::ExportNamedSpecifier(
125717                            self::fields::ExportNamedSpecifierField::Orig,
125718                        ));
125719                    <ModuleExportName as FoldWithAstPath<V>>::fold_with_ast_path(
125720                        orig,
125721                        visitor,
125722                        &mut *__ast_path,
125723                    )
125724                };
125725                let exported = {
125726                    let mut __ast_path =
125727                        __ast_path.with_guard(AstParentKind::ExportNamedSpecifier(
125728                            self::fields::ExportNamedSpecifierField::Exported,
125729                        ));
125730                    <Option<ModuleExportName> as FoldWithAstPath<V>>::fold_with_ast_path(
125731                        exported,
125732                        visitor,
125733                        &mut *__ast_path,
125734                    )
125735                };
125736                ExportNamedSpecifier {
125737                    span,
125738                    orig,
125739                    exported,
125740                    is_type_only,
125741                }
125742            }
125743        }
125744    }
125745}
125746#[cfg(any(docsrs, feature = "path"))]
125747#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125748impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExportNamespaceSpecifier {
125749    #[doc = "Calls [FoldAstPath`::fold_export_namespace_specifier`] with `self`."]
125750    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125751        <V as FoldAstPath>::fold_export_namespace_specifier(visitor, self, __ast_path)
125752    }
125753
125754    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125755        match self {
125756            ExportNamespaceSpecifier { span, name } => {
125757                let span = {
125758                    let mut __ast_path =
125759                        __ast_path.with_guard(AstParentKind::ExportNamespaceSpecifier(
125760                            self::fields::ExportNamespaceSpecifierField::Span,
125761                        ));
125762                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125763                        span,
125764                        visitor,
125765                        &mut *__ast_path,
125766                    )
125767                };
125768                let name = {
125769                    let mut __ast_path =
125770                        __ast_path.with_guard(AstParentKind::ExportNamespaceSpecifier(
125771                            self::fields::ExportNamespaceSpecifierField::Name,
125772                        ));
125773                    <ModuleExportName as FoldWithAstPath<V>>::fold_with_ast_path(
125774                        name,
125775                        visitor,
125776                        &mut *__ast_path,
125777                    )
125778                };
125779                ExportNamespaceSpecifier { span, name }
125780            }
125781        }
125782    }
125783}
125784#[cfg(any(docsrs, feature = "path"))]
125785#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125786impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExportSpecifier {
125787    #[doc = "Calls [FoldAstPath`::fold_export_specifier`] with `self`."]
125788    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125789        <V as FoldAstPath>::fold_export_specifier(visitor, self, __ast_path)
125790    }
125791
125792    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125793        match self {
125794            ExportSpecifier::Namespace { 0: _field_0 } => {
125795                let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportSpecifier(
125796                    self::fields::ExportSpecifierField::Namespace,
125797                ));
125798                let _field_0 = <ExportNamespaceSpecifier as FoldWithAstPath<V>>::fold_with_ast_path(
125799                    _field_0,
125800                    visitor,
125801                    &mut *__ast_path,
125802                );
125803                ExportSpecifier::Namespace { 0: _field_0 }
125804            }
125805            ExportSpecifier::Default { 0: _field_0 } => {
125806                let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportSpecifier(
125807                    self::fields::ExportSpecifierField::Default,
125808                ));
125809                let _field_0 = <ExportDefaultSpecifier as FoldWithAstPath<V>>::fold_with_ast_path(
125810                    _field_0,
125811                    visitor,
125812                    &mut *__ast_path,
125813                );
125814                ExportSpecifier::Default { 0: _field_0 }
125815            }
125816            ExportSpecifier::Named { 0: _field_0 } => {
125817                let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportSpecifier(
125818                    self::fields::ExportSpecifierField::Named,
125819                ));
125820                let _field_0 = <ExportNamedSpecifier as FoldWithAstPath<V>>::fold_with_ast_path(
125821                    _field_0,
125822                    visitor,
125823                    &mut *__ast_path,
125824                );
125825                ExportSpecifier::Named { 0: _field_0 }
125826            }
125827        }
125828    }
125829}
125830#[cfg(any(docsrs, feature = "path"))]
125831#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125832impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Expr {
125833    #[doc = "Calls [FoldAstPath`::fold_expr`] with `self`."]
125834    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125835        <V as FoldAstPath>::fold_expr(visitor, self, __ast_path)
125836    }
125837
125838    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125839        match self {
125840            Expr::This { 0: _field_0 } => {
125841                let mut __ast_path =
125842                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::This));
125843                let _field_0 = <ThisExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125844                    _field_0,
125845                    visitor,
125846                    &mut *__ast_path,
125847                );
125848                Expr::This { 0: _field_0 }
125849            }
125850            Expr::Array { 0: _field_0 } => {
125851                let mut __ast_path =
125852                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Array));
125853                let _field_0 = <ArrayLit as FoldWithAstPath<V>>::fold_with_ast_path(
125854                    _field_0,
125855                    visitor,
125856                    &mut *__ast_path,
125857                );
125858                Expr::Array { 0: _field_0 }
125859            }
125860            Expr::Object { 0: _field_0 } => {
125861                let mut __ast_path =
125862                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Object));
125863                let _field_0 = <ObjectLit as FoldWithAstPath<V>>::fold_with_ast_path(
125864                    _field_0,
125865                    visitor,
125866                    &mut *__ast_path,
125867                );
125868                Expr::Object { 0: _field_0 }
125869            }
125870            Expr::Fn { 0: _field_0 } => {
125871                let mut __ast_path =
125872                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Fn));
125873                let _field_0 = <FnExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125874                    _field_0,
125875                    visitor,
125876                    &mut *__ast_path,
125877                );
125878                Expr::Fn { 0: _field_0 }
125879            }
125880            Expr::Unary { 0: _field_0 } => {
125881                let mut __ast_path =
125882                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Unary));
125883                let _field_0 = <UnaryExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125884                    _field_0,
125885                    visitor,
125886                    &mut *__ast_path,
125887                );
125888                Expr::Unary { 0: _field_0 }
125889            }
125890            Expr::Update { 0: _field_0 } => {
125891                let mut __ast_path =
125892                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Update));
125893                let _field_0 = <UpdateExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125894                    _field_0,
125895                    visitor,
125896                    &mut *__ast_path,
125897                );
125898                Expr::Update { 0: _field_0 }
125899            }
125900            Expr::Bin { 0: _field_0 } => {
125901                let mut __ast_path =
125902                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Bin));
125903                let _field_0 = <BinExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125904                    _field_0,
125905                    visitor,
125906                    &mut *__ast_path,
125907                );
125908                Expr::Bin { 0: _field_0 }
125909            }
125910            Expr::Assign { 0: _field_0 } => {
125911                let mut __ast_path =
125912                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Assign));
125913                let _field_0 = <AssignExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125914                    _field_0,
125915                    visitor,
125916                    &mut *__ast_path,
125917                );
125918                Expr::Assign { 0: _field_0 }
125919            }
125920            Expr::Member { 0: _field_0 } => {
125921                let mut __ast_path =
125922                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Member));
125923                let _field_0 = <MemberExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125924                    _field_0,
125925                    visitor,
125926                    &mut *__ast_path,
125927                );
125928                Expr::Member { 0: _field_0 }
125929            }
125930            Expr::SuperProp { 0: _field_0 } => {
125931                let mut __ast_path =
125932                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::SuperProp));
125933                let _field_0 = <SuperPropExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125934                    _field_0,
125935                    visitor,
125936                    &mut *__ast_path,
125937                );
125938                Expr::SuperProp { 0: _field_0 }
125939            }
125940            Expr::Cond { 0: _field_0 } => {
125941                let mut __ast_path =
125942                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Cond));
125943                let _field_0 = <CondExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125944                    _field_0,
125945                    visitor,
125946                    &mut *__ast_path,
125947                );
125948                Expr::Cond { 0: _field_0 }
125949            }
125950            Expr::Call { 0: _field_0 } => {
125951                let mut __ast_path =
125952                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Call));
125953                let _field_0 = <CallExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125954                    _field_0,
125955                    visitor,
125956                    &mut *__ast_path,
125957                );
125958                Expr::Call { 0: _field_0 }
125959            }
125960            Expr::New { 0: _field_0 } => {
125961                let mut __ast_path =
125962                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::New));
125963                let _field_0 = <NewExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125964                    _field_0,
125965                    visitor,
125966                    &mut *__ast_path,
125967                );
125968                Expr::New { 0: _field_0 }
125969            }
125970            Expr::Seq { 0: _field_0 } => {
125971                let mut __ast_path =
125972                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Seq));
125973                let _field_0 = <SeqExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125974                    _field_0,
125975                    visitor,
125976                    &mut *__ast_path,
125977                );
125978                Expr::Seq { 0: _field_0 }
125979            }
125980            Expr::Ident { 0: _field_0 } => {
125981                let mut __ast_path =
125982                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Ident));
125983                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
125984                    _field_0,
125985                    visitor,
125986                    &mut *__ast_path,
125987                );
125988                Expr::Ident { 0: _field_0 }
125989            }
125990            Expr::Lit { 0: _field_0 } => {
125991                let mut __ast_path =
125992                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Lit));
125993                let _field_0 = <Lit as FoldWithAstPath<V>>::fold_with_ast_path(
125994                    _field_0,
125995                    visitor,
125996                    &mut *__ast_path,
125997                );
125998                Expr::Lit { 0: _field_0 }
125999            }
126000            Expr::Tpl { 0: _field_0 } => {
126001                let mut __ast_path =
126002                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Tpl));
126003                let _field_0 = <Tpl as FoldWithAstPath<V>>::fold_with_ast_path(
126004                    _field_0,
126005                    visitor,
126006                    &mut *__ast_path,
126007                );
126008                Expr::Tpl { 0: _field_0 }
126009            }
126010            Expr::TaggedTpl { 0: _field_0 } => {
126011                let mut __ast_path =
126012                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::TaggedTpl));
126013                let _field_0 = <TaggedTpl as FoldWithAstPath<V>>::fold_with_ast_path(
126014                    _field_0,
126015                    visitor,
126016                    &mut *__ast_path,
126017                );
126018                Expr::TaggedTpl { 0: _field_0 }
126019            }
126020            Expr::Arrow { 0: _field_0 } => {
126021                let mut __ast_path =
126022                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Arrow));
126023                let _field_0 = <ArrowExpr as FoldWithAstPath<V>>::fold_with_ast_path(
126024                    _field_0,
126025                    visitor,
126026                    &mut *__ast_path,
126027                );
126028                Expr::Arrow { 0: _field_0 }
126029            }
126030            Expr::Class { 0: _field_0 } => {
126031                let mut __ast_path =
126032                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Class));
126033                let _field_0 = <ClassExpr as FoldWithAstPath<V>>::fold_with_ast_path(
126034                    _field_0,
126035                    visitor,
126036                    &mut *__ast_path,
126037                );
126038                Expr::Class { 0: _field_0 }
126039            }
126040            Expr::Yield { 0: _field_0 } => {
126041                let mut __ast_path =
126042                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Yield));
126043                let _field_0 = <YieldExpr as FoldWithAstPath<V>>::fold_with_ast_path(
126044                    _field_0,
126045                    visitor,
126046                    &mut *__ast_path,
126047                );
126048                Expr::Yield { 0: _field_0 }
126049            }
126050            Expr::MetaProp { 0: _field_0 } => {
126051                let mut __ast_path =
126052                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::MetaProp));
126053                let _field_0 = <MetaPropExpr as FoldWithAstPath<V>>::fold_with_ast_path(
126054                    _field_0,
126055                    visitor,
126056                    &mut *__ast_path,
126057                );
126058                Expr::MetaProp { 0: _field_0 }
126059            }
126060            Expr::Await { 0: _field_0 } => {
126061                let mut __ast_path =
126062                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Await));
126063                let _field_0 = <AwaitExpr as FoldWithAstPath<V>>::fold_with_ast_path(
126064                    _field_0,
126065                    visitor,
126066                    &mut *__ast_path,
126067                );
126068                Expr::Await { 0: _field_0 }
126069            }
126070            Expr::Paren { 0: _field_0 } => {
126071                let mut __ast_path =
126072                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Paren));
126073                let _field_0 = <ParenExpr as FoldWithAstPath<V>>::fold_with_ast_path(
126074                    _field_0,
126075                    visitor,
126076                    &mut *__ast_path,
126077                );
126078                Expr::Paren { 0: _field_0 }
126079            }
126080            Expr::JSXMember { 0: _field_0 } => {
126081                let mut __ast_path =
126082                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Jsxmember));
126083                let _field_0 = <JSXMemberExpr as FoldWithAstPath<V>>::fold_with_ast_path(
126084                    _field_0,
126085                    visitor,
126086                    &mut *__ast_path,
126087                );
126088                Expr::JSXMember { 0: _field_0 }
126089            }
126090            Expr::JSXNamespacedName { 0: _field_0 } => {
126091                let mut __ast_path = __ast_path.with_guard(AstParentKind::Expr(
126092                    self::fields::ExprField::JsxnamespacedName,
126093                ));
126094                let _field_0 = <JSXNamespacedName as FoldWithAstPath<V>>::fold_with_ast_path(
126095                    _field_0,
126096                    visitor,
126097                    &mut *__ast_path,
126098                );
126099                Expr::JSXNamespacedName { 0: _field_0 }
126100            }
126101            Expr::JSXEmpty { 0: _field_0 } => {
126102                let mut __ast_path =
126103                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Jsxempty));
126104                let _field_0 = <JSXEmptyExpr as FoldWithAstPath<V>>::fold_with_ast_path(
126105                    _field_0,
126106                    visitor,
126107                    &mut *__ast_path,
126108                );
126109                Expr::JSXEmpty { 0: _field_0 }
126110            }
126111            Expr::JSXElement { 0: _field_0 } => {
126112                let mut __ast_path =
126113                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Jsxelement));
126114                let _field_0 = <Box<JSXElement> as FoldWithAstPath<V>>::fold_with_ast_path(
126115                    _field_0,
126116                    visitor,
126117                    &mut *__ast_path,
126118                );
126119                Expr::JSXElement { 0: _field_0 }
126120            }
126121            Expr::JSXFragment { 0: _field_0 } => {
126122                let mut __ast_path = __ast_path
126123                    .with_guard(AstParentKind::Expr(self::fields::ExprField::Jsxfragment));
126124                let _field_0 = <JSXFragment as FoldWithAstPath<V>>::fold_with_ast_path(
126125                    _field_0,
126126                    visitor,
126127                    &mut *__ast_path,
126128                );
126129                Expr::JSXFragment { 0: _field_0 }
126130            }
126131            Expr::TsTypeAssertion { 0: _field_0 } => {
126132                let mut __ast_path = __ast_path.with_guard(AstParentKind::Expr(
126133                    self::fields::ExprField::TsTypeAssertion,
126134                ));
126135                let _field_0 = <TsTypeAssertion as FoldWithAstPath<V>>::fold_with_ast_path(
126136                    _field_0,
126137                    visitor,
126138                    &mut *__ast_path,
126139                );
126140                Expr::TsTypeAssertion { 0: _field_0 }
126141            }
126142            Expr::TsConstAssertion { 0: _field_0 } => {
126143                let mut __ast_path = __ast_path.with_guard(AstParentKind::Expr(
126144                    self::fields::ExprField::TsConstAssertion,
126145                ));
126146                let _field_0 = <TsConstAssertion as FoldWithAstPath<V>>::fold_with_ast_path(
126147                    _field_0,
126148                    visitor,
126149                    &mut *__ast_path,
126150                );
126151                Expr::TsConstAssertion { 0: _field_0 }
126152            }
126153            Expr::TsNonNull { 0: _field_0 } => {
126154                let mut __ast_path =
126155                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::TsNonNull));
126156                let _field_0 = <TsNonNullExpr as FoldWithAstPath<V>>::fold_with_ast_path(
126157                    _field_0,
126158                    visitor,
126159                    &mut *__ast_path,
126160                );
126161                Expr::TsNonNull { 0: _field_0 }
126162            }
126163            Expr::TsAs { 0: _field_0 } => {
126164                let mut __ast_path =
126165                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::TsAs));
126166                let _field_0 = <TsAsExpr as FoldWithAstPath<V>>::fold_with_ast_path(
126167                    _field_0,
126168                    visitor,
126169                    &mut *__ast_path,
126170                );
126171                Expr::TsAs { 0: _field_0 }
126172            }
126173            Expr::TsInstantiation { 0: _field_0 } => {
126174                let mut __ast_path = __ast_path.with_guard(AstParentKind::Expr(
126175                    self::fields::ExprField::TsInstantiation,
126176                ));
126177                let _field_0 = <TsInstantiation as FoldWithAstPath<V>>::fold_with_ast_path(
126178                    _field_0,
126179                    visitor,
126180                    &mut *__ast_path,
126181                );
126182                Expr::TsInstantiation { 0: _field_0 }
126183            }
126184            Expr::TsSatisfies { 0: _field_0 } => {
126185                let mut __ast_path = __ast_path
126186                    .with_guard(AstParentKind::Expr(self::fields::ExprField::TsSatisfies));
126187                let _field_0 = <TsSatisfiesExpr as FoldWithAstPath<V>>::fold_with_ast_path(
126188                    _field_0,
126189                    visitor,
126190                    &mut *__ast_path,
126191                );
126192                Expr::TsSatisfies { 0: _field_0 }
126193            }
126194            Expr::PrivateName { 0: _field_0 } => {
126195                let mut __ast_path = __ast_path
126196                    .with_guard(AstParentKind::Expr(self::fields::ExprField::PrivateName));
126197                let _field_0 = <PrivateName as FoldWithAstPath<V>>::fold_with_ast_path(
126198                    _field_0,
126199                    visitor,
126200                    &mut *__ast_path,
126201                );
126202                Expr::PrivateName { 0: _field_0 }
126203            }
126204            Expr::OptChain { 0: _field_0 } => {
126205                let mut __ast_path =
126206                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::OptChain));
126207                let _field_0 = <OptChainExpr as FoldWithAstPath<V>>::fold_with_ast_path(
126208                    _field_0,
126209                    visitor,
126210                    &mut *__ast_path,
126211                );
126212                Expr::OptChain { 0: _field_0 }
126213            }
126214            Expr::Invalid { 0: _field_0 } => {
126215                let mut __ast_path =
126216                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Invalid));
126217                let _field_0 = <Invalid as FoldWithAstPath<V>>::fold_with_ast_path(
126218                    _field_0,
126219                    visitor,
126220                    &mut *__ast_path,
126221                );
126222                Expr::Invalid { 0: _field_0 }
126223            }
126224        }
126225    }
126226}
126227#[cfg(any(docsrs, feature = "path"))]
126228#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126229impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExprOrSpread {
126230    #[doc = "Calls [FoldAstPath`::fold_expr_or_spread`] with `self`."]
126231    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126232        <V as FoldAstPath>::fold_expr_or_spread(visitor, self, __ast_path)
126233    }
126234
126235    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126236        match self {
126237            ExprOrSpread { spread, expr } => {
126238                let spread = {
126239                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExprOrSpread(
126240                        self::fields::ExprOrSpreadField::Spread,
126241                    ));
126242                    <Option<swc_common::Span> as FoldWithAstPath<V>>::fold_with_ast_path(
126243                        spread,
126244                        visitor,
126245                        &mut *__ast_path,
126246                    )
126247                };
126248                let expr = {
126249                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExprOrSpread(
126250                        self::fields::ExprOrSpreadField::Expr,
126251                    ));
126252                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
126253                        expr,
126254                        visitor,
126255                        &mut *__ast_path,
126256                    )
126257                };
126258                ExprOrSpread { spread, expr }
126259            }
126260        }
126261    }
126262}
126263#[cfg(any(docsrs, feature = "path"))]
126264#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126265impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExprStmt {
126266    #[doc = "Calls [FoldAstPath`::fold_expr_stmt`] with `self`."]
126267    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126268        <V as FoldAstPath>::fold_expr_stmt(visitor, self, __ast_path)
126269    }
126270
126271    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126272        match self {
126273            ExprStmt { span, expr } => {
126274                let span = {
126275                    let mut __ast_path = __ast_path
126276                        .with_guard(AstParentKind::ExprStmt(self::fields::ExprStmtField::Span));
126277                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126278                        span,
126279                        visitor,
126280                        &mut *__ast_path,
126281                    )
126282                };
126283                let expr = {
126284                    let mut __ast_path = __ast_path
126285                        .with_guard(AstParentKind::ExprStmt(self::fields::ExprStmtField::Expr));
126286                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
126287                        expr,
126288                        visitor,
126289                        &mut *__ast_path,
126290                    )
126291                };
126292                ExprStmt { span, expr }
126293            }
126294        }
126295    }
126296}
126297#[cfg(any(docsrs, feature = "path"))]
126298#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126299impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for FnDecl {
126300    #[doc = "Calls [FoldAstPath`::fold_fn_decl`] with `self`."]
126301    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126302        <V as FoldAstPath>::fold_fn_decl(visitor, self, __ast_path)
126303    }
126304
126305    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126306        match self {
126307            FnDecl {
126308                ident,
126309                declare,
126310                function,
126311            } => {
126312                let ident = {
126313                    let mut __ast_path = __ast_path
126314                        .with_guard(AstParentKind::FnDecl(self::fields::FnDeclField::Ident));
126315                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
126316                        ident,
126317                        visitor,
126318                        &mut *__ast_path,
126319                    )
126320                };
126321                let function = {
126322                    let mut __ast_path = __ast_path
126323                        .with_guard(AstParentKind::FnDecl(self::fields::FnDeclField::Function));
126324                    <Box<Function> as FoldWithAstPath<V>>::fold_with_ast_path(
126325                        function,
126326                        visitor,
126327                        &mut *__ast_path,
126328                    )
126329                };
126330                FnDecl {
126331                    ident,
126332                    declare,
126333                    function,
126334                }
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 FnExpr {
126342    #[doc = "Calls [FoldAstPath`::fold_fn_expr`] with `self`."]
126343    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126344        <V as FoldAstPath>::fold_fn_expr(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            FnExpr { ident, function } => {
126350                let ident = {
126351                    let mut __ast_path = __ast_path
126352                        .with_guard(AstParentKind::FnExpr(self::fields::FnExprField::Ident));
126353                    <Option<Ident> as FoldWithAstPath<V>>::fold_with_ast_path(
126354                        ident,
126355                        visitor,
126356                        &mut *__ast_path,
126357                    )
126358                };
126359                let function = {
126360                    let mut __ast_path = __ast_path
126361                        .with_guard(AstParentKind::FnExpr(self::fields::FnExprField::Function));
126362                    <Box<Function> as FoldWithAstPath<V>>::fold_with_ast_path(
126363                        function,
126364                        visitor,
126365                        &mut *__ast_path,
126366                    )
126367                };
126368                FnExpr { ident, function }
126369            }
126370        }
126371    }
126372}
126373#[cfg(any(docsrs, feature = "path"))]
126374#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126375impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ForHead {
126376    #[doc = "Calls [FoldAstPath`::fold_for_head`] with `self`."]
126377    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126378        <V as FoldAstPath>::fold_for_head(visitor, self, __ast_path)
126379    }
126380
126381    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126382        match self {
126383            ForHead::VarDecl { 0: _field_0 } => {
126384                let mut __ast_path = __ast_path
126385                    .with_guard(AstParentKind::ForHead(self::fields::ForHeadField::VarDecl));
126386                let _field_0 = <Box<VarDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
126387                    _field_0,
126388                    visitor,
126389                    &mut *__ast_path,
126390                );
126391                ForHead::VarDecl { 0: _field_0 }
126392            }
126393            ForHead::UsingDecl { 0: _field_0 } => {
126394                let mut __ast_path = __ast_path.with_guard(AstParentKind::ForHead(
126395                    self::fields::ForHeadField::UsingDecl,
126396                ));
126397                let _field_0 = <Box<UsingDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
126398                    _field_0,
126399                    visitor,
126400                    &mut *__ast_path,
126401                );
126402                ForHead::UsingDecl { 0: _field_0 }
126403            }
126404            ForHead::Pat { 0: _field_0 } => {
126405                let mut __ast_path =
126406                    __ast_path.with_guard(AstParentKind::ForHead(self::fields::ForHeadField::Pat));
126407                let _field_0 = <Box<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
126408                    _field_0,
126409                    visitor,
126410                    &mut *__ast_path,
126411                );
126412                ForHead::Pat { 0: _field_0 }
126413            }
126414        }
126415    }
126416}
126417#[cfg(any(docsrs, feature = "path"))]
126418#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126419impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ForInStmt {
126420    #[doc = "Calls [FoldAstPath`::fold_for_in_stmt`] with `self`."]
126421    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126422        <V as FoldAstPath>::fold_for_in_stmt(visitor, self, __ast_path)
126423    }
126424
126425    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126426        match self {
126427            ForInStmt {
126428                span,
126429                left,
126430                right,
126431                body,
126432            } => {
126433                let span = {
126434                    let mut __ast_path = __ast_path
126435                        .with_guard(AstParentKind::ForInStmt(self::fields::ForInStmtField::Span));
126436                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126437                        span,
126438                        visitor,
126439                        &mut *__ast_path,
126440                    )
126441                };
126442                let left = {
126443                    let mut __ast_path = __ast_path
126444                        .with_guard(AstParentKind::ForInStmt(self::fields::ForInStmtField::Left));
126445                    <ForHead as FoldWithAstPath<V>>::fold_with_ast_path(
126446                        left,
126447                        visitor,
126448                        &mut *__ast_path,
126449                    )
126450                };
126451                let right = {
126452                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ForInStmt(
126453                        self::fields::ForInStmtField::Right,
126454                    ));
126455                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
126456                        right,
126457                        visitor,
126458                        &mut *__ast_path,
126459                    )
126460                };
126461                let body = {
126462                    let mut __ast_path = __ast_path
126463                        .with_guard(AstParentKind::ForInStmt(self::fields::ForInStmtField::Body));
126464                    <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
126465                        body,
126466                        visitor,
126467                        &mut *__ast_path,
126468                    )
126469                };
126470                ForInStmt {
126471                    span,
126472                    left,
126473                    right,
126474                    body,
126475                }
126476            }
126477        }
126478    }
126479}
126480#[cfg(any(docsrs, feature = "path"))]
126481#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126482impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ForOfStmt {
126483    #[doc = "Calls [FoldAstPath`::fold_for_of_stmt`] with `self`."]
126484    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126485        <V as FoldAstPath>::fold_for_of_stmt(visitor, self, __ast_path)
126486    }
126487
126488    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126489        match self {
126490            ForOfStmt {
126491                span,
126492                is_await,
126493                left,
126494                right,
126495                body,
126496            } => {
126497                let span = {
126498                    let mut __ast_path = __ast_path
126499                        .with_guard(AstParentKind::ForOfStmt(self::fields::ForOfStmtField::Span));
126500                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126501                        span,
126502                        visitor,
126503                        &mut *__ast_path,
126504                    )
126505                };
126506                let left = {
126507                    let mut __ast_path = __ast_path
126508                        .with_guard(AstParentKind::ForOfStmt(self::fields::ForOfStmtField::Left));
126509                    <ForHead as FoldWithAstPath<V>>::fold_with_ast_path(
126510                        left,
126511                        visitor,
126512                        &mut *__ast_path,
126513                    )
126514                };
126515                let right = {
126516                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ForOfStmt(
126517                        self::fields::ForOfStmtField::Right,
126518                    ));
126519                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
126520                        right,
126521                        visitor,
126522                        &mut *__ast_path,
126523                    )
126524                };
126525                let body = {
126526                    let mut __ast_path = __ast_path
126527                        .with_guard(AstParentKind::ForOfStmt(self::fields::ForOfStmtField::Body));
126528                    <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
126529                        body,
126530                        visitor,
126531                        &mut *__ast_path,
126532                    )
126533                };
126534                ForOfStmt {
126535                    span,
126536                    is_await,
126537                    left,
126538                    right,
126539                    body,
126540                }
126541            }
126542        }
126543    }
126544}
126545#[cfg(any(docsrs, feature = "path"))]
126546#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126547impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ForStmt {
126548    #[doc = "Calls [FoldAstPath`::fold_for_stmt`] with `self`."]
126549    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126550        <V as FoldAstPath>::fold_for_stmt(visitor, self, __ast_path)
126551    }
126552
126553    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126554        match self {
126555            ForStmt {
126556                span,
126557                init,
126558                test,
126559                update,
126560                body,
126561            } => {
126562                let span = {
126563                    let mut __ast_path = __ast_path
126564                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Span));
126565                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126566                        span,
126567                        visitor,
126568                        &mut *__ast_path,
126569                    )
126570                };
126571                let init = {
126572                    let mut __ast_path = __ast_path
126573                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Init));
126574                    <Option<VarDeclOrExpr> as FoldWithAstPath<V>>::fold_with_ast_path(
126575                        init,
126576                        visitor,
126577                        &mut *__ast_path,
126578                    )
126579                };
126580                let test = {
126581                    let mut __ast_path = __ast_path
126582                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Test));
126583                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
126584                        test,
126585                        visitor,
126586                        &mut *__ast_path,
126587                    )
126588                };
126589                let update = {
126590                    let mut __ast_path = __ast_path
126591                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Update));
126592                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
126593                        update,
126594                        visitor,
126595                        &mut *__ast_path,
126596                    )
126597                };
126598                let body = {
126599                    let mut __ast_path = __ast_path
126600                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Body));
126601                    <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
126602                        body,
126603                        visitor,
126604                        &mut *__ast_path,
126605                    )
126606                };
126607                ForStmt {
126608                    span,
126609                    init,
126610                    test,
126611                    update,
126612                    body,
126613                }
126614            }
126615        }
126616    }
126617}
126618#[cfg(any(docsrs, feature = "path"))]
126619#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126620impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Function {
126621    #[doc = "Calls [FoldAstPath`::fold_function`] with `self`."]
126622    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126623        <V as FoldAstPath>::fold_function(visitor, self, __ast_path)
126624    }
126625
126626    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126627        match self {
126628            Function {
126629                params,
126630                decorators,
126631                span,
126632                ctxt,
126633                body,
126634                is_generator,
126635                is_async,
126636                type_params,
126637                return_type,
126638            } => {
126639                let params = {
126640                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Function(
126641                        self::fields::FunctionField::Params(usize::MAX),
126642                    ));
126643                    <Vec<Param> as FoldWithAstPath<V>>::fold_with_ast_path(
126644                        params,
126645                        visitor,
126646                        &mut *__ast_path,
126647                    )
126648                };
126649                let decorators = {
126650                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Function(
126651                        self::fields::FunctionField::Decorators(usize::MAX),
126652                    ));
126653                    <Vec<Decorator> as FoldWithAstPath<V>>::fold_with_ast_path(
126654                        decorators,
126655                        visitor,
126656                        &mut *__ast_path,
126657                    )
126658                };
126659                let span = {
126660                    let mut __ast_path = __ast_path
126661                        .with_guard(AstParentKind::Function(self::fields::FunctionField::Span));
126662                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126663                        span,
126664                        visitor,
126665                        &mut *__ast_path,
126666                    )
126667                };
126668                let ctxt = {
126669                    let mut __ast_path = __ast_path
126670                        .with_guard(AstParentKind::Function(self::fields::FunctionField::Ctxt));
126671                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
126672                        ctxt,
126673                        visitor,
126674                        &mut *__ast_path,
126675                    )
126676                };
126677                let body = {
126678                    let mut __ast_path = __ast_path
126679                        .with_guard(AstParentKind::Function(self::fields::FunctionField::Body));
126680                    <Option<BlockStmt> as FoldWithAstPath<V>>::fold_with_ast_path(
126681                        body,
126682                        visitor,
126683                        &mut *__ast_path,
126684                    )
126685                };
126686                let type_params = {
126687                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Function(
126688                        self::fields::FunctionField::TypeParams,
126689                    ));
126690                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
126691                        type_params,
126692                        visitor,
126693                        &mut *__ast_path,
126694                    )
126695                };
126696                let return_type = {
126697                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Function(
126698                        self::fields::FunctionField::ReturnType,
126699                    ));
126700                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
126701                        return_type,
126702                        visitor,
126703                        &mut *__ast_path,
126704                    )
126705                };
126706                Function {
126707                    params,
126708                    decorators,
126709                    span,
126710                    ctxt,
126711                    body,
126712                    is_generator,
126713                    is_async,
126714                    type_params,
126715                    return_type,
126716                }
126717            }
126718        }
126719    }
126720}
126721#[cfg(any(docsrs, feature = "path"))]
126722#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126723impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for GetterProp {
126724    #[doc = "Calls [FoldAstPath`::fold_getter_prop`] with `self`."]
126725    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126726        <V as FoldAstPath>::fold_getter_prop(visitor, self, __ast_path)
126727    }
126728
126729    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126730        match self {
126731            GetterProp {
126732                span,
126733                key,
126734                type_ann,
126735                body,
126736            } => {
126737                let span = {
126738                    let mut __ast_path = __ast_path.with_guard(AstParentKind::GetterProp(
126739                        self::fields::GetterPropField::Span,
126740                    ));
126741                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126742                        span,
126743                        visitor,
126744                        &mut *__ast_path,
126745                    )
126746                };
126747                let key = {
126748                    let mut __ast_path = __ast_path.with_guard(AstParentKind::GetterProp(
126749                        self::fields::GetterPropField::Key,
126750                    ));
126751                    <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
126752                        key,
126753                        visitor,
126754                        &mut *__ast_path,
126755                    )
126756                };
126757                let type_ann = {
126758                    let mut __ast_path = __ast_path.with_guard(AstParentKind::GetterProp(
126759                        self::fields::GetterPropField::TypeAnn,
126760                    ));
126761                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
126762                        type_ann,
126763                        visitor,
126764                        &mut *__ast_path,
126765                    )
126766                };
126767                let body = {
126768                    let mut __ast_path = __ast_path.with_guard(AstParentKind::GetterProp(
126769                        self::fields::GetterPropField::Body,
126770                    ));
126771                    <Option<BlockStmt> as FoldWithAstPath<V>>::fold_with_ast_path(
126772                        body,
126773                        visitor,
126774                        &mut *__ast_path,
126775                    )
126776                };
126777                GetterProp {
126778                    span,
126779                    key,
126780                    type_ann,
126781                    body,
126782                }
126783            }
126784        }
126785    }
126786}
126787#[cfg(any(docsrs, feature = "path"))]
126788#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126789impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Ident {
126790    #[doc = "Calls [FoldAstPath`::fold_ident`] with `self`."]
126791    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126792        <V as FoldAstPath>::fold_ident(visitor, self, __ast_path)
126793    }
126794
126795    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126796        match self {
126797            Ident {
126798                span,
126799                ctxt,
126800                sym,
126801                optional,
126802            } => {
126803                let span = {
126804                    let mut __ast_path =
126805                        __ast_path.with_guard(AstParentKind::Ident(self::fields::IdentField::Span));
126806                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126807                        span,
126808                        visitor,
126809                        &mut *__ast_path,
126810                    )
126811                };
126812                let ctxt = {
126813                    let mut __ast_path =
126814                        __ast_path.with_guard(AstParentKind::Ident(self::fields::IdentField::Ctxt));
126815                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
126816                        ctxt,
126817                        visitor,
126818                        &mut *__ast_path,
126819                    )
126820                };
126821                let sym = {
126822                    let mut __ast_path =
126823                        __ast_path.with_guard(AstParentKind::Ident(self::fields::IdentField::Sym));
126824                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
126825                        sym,
126826                        visitor,
126827                        &mut *__ast_path,
126828                    )
126829                };
126830                Ident {
126831                    span,
126832                    ctxt,
126833                    sym,
126834                    optional,
126835                }
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 IdentName {
126843    #[doc = "Calls [FoldAstPath`::fold_ident_name`] with `self`."]
126844    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126845        <V as FoldAstPath>::fold_ident_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            IdentName { span, sym } => {
126851                let span = {
126852                    let mut __ast_path = __ast_path
126853                        .with_guard(AstParentKind::IdentName(self::fields::IdentNameField::Span));
126854                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126855                        span,
126856                        visitor,
126857                        &mut *__ast_path,
126858                    )
126859                };
126860                let sym = {
126861                    let mut __ast_path = __ast_path
126862                        .with_guard(AstParentKind::IdentName(self::fields::IdentNameField::Sym));
126863                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
126864                        sym,
126865                        visitor,
126866                        &mut *__ast_path,
126867                    )
126868                };
126869                IdentName { span, sym }
126870            }
126871        }
126872    }
126873}
126874#[cfg(any(docsrs, feature = "path"))]
126875#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126876impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for IfStmt {
126877    #[doc = "Calls [FoldAstPath`::fold_if_stmt`] with `self`."]
126878    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126879        <V as FoldAstPath>::fold_if_stmt(visitor, self, __ast_path)
126880    }
126881
126882    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126883        match self {
126884            IfStmt {
126885                span,
126886                test,
126887                cons,
126888                alt,
126889            } => {
126890                let span = {
126891                    let mut __ast_path = __ast_path
126892                        .with_guard(AstParentKind::IfStmt(self::fields::IfStmtField::Span));
126893                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126894                        span,
126895                        visitor,
126896                        &mut *__ast_path,
126897                    )
126898                };
126899                let test = {
126900                    let mut __ast_path = __ast_path
126901                        .with_guard(AstParentKind::IfStmt(self::fields::IfStmtField::Test));
126902                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
126903                        test,
126904                        visitor,
126905                        &mut *__ast_path,
126906                    )
126907                };
126908                let cons = {
126909                    let mut __ast_path = __ast_path
126910                        .with_guard(AstParentKind::IfStmt(self::fields::IfStmtField::Cons));
126911                    <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
126912                        cons,
126913                        visitor,
126914                        &mut *__ast_path,
126915                    )
126916                };
126917                let alt = {
126918                    let mut __ast_path = __ast_path
126919                        .with_guard(AstParentKind::IfStmt(self::fields::IfStmtField::Alt));
126920                    <Option<Box<Stmt>> as FoldWithAstPath<V>>::fold_with_ast_path(
126921                        alt,
126922                        visitor,
126923                        &mut *__ast_path,
126924                    )
126925                };
126926                IfStmt {
126927                    span,
126928                    test,
126929                    cons,
126930                    alt,
126931                }
126932            }
126933        }
126934    }
126935}
126936#[cfg(any(docsrs, feature = "path"))]
126937#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126938impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Import {
126939    #[doc = "Calls [FoldAstPath`::fold_import`] with `self`."]
126940    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126941        <V as FoldAstPath>::fold_import(visitor, self, __ast_path)
126942    }
126943
126944    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126945        match self {
126946            Import { span, phase } => {
126947                let span = {
126948                    let mut __ast_path = __ast_path
126949                        .with_guard(AstParentKind::Import(self::fields::ImportField::Span));
126950                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126951                        span,
126952                        visitor,
126953                        &mut *__ast_path,
126954                    )
126955                };
126956                let phase = {
126957                    let mut __ast_path = __ast_path
126958                        .with_guard(AstParentKind::Import(self::fields::ImportField::Phase));
126959                    <ImportPhase as FoldWithAstPath<V>>::fold_with_ast_path(
126960                        phase,
126961                        visitor,
126962                        &mut *__ast_path,
126963                    )
126964                };
126965                Import { span, phase }
126966            }
126967        }
126968    }
126969}
126970#[cfg(any(docsrs, feature = "path"))]
126971#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126972impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ImportDecl {
126973    #[doc = "Calls [FoldAstPath`::fold_import_decl`] with `self`."]
126974    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126975        <V as FoldAstPath>::fold_import_decl(visitor, self, __ast_path)
126976    }
126977
126978    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126979        match self {
126980            ImportDecl {
126981                span,
126982                specifiers,
126983                src,
126984                type_only,
126985                with,
126986                phase,
126987            } => {
126988                let span = {
126989                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
126990                        self::fields::ImportDeclField::Span,
126991                    ));
126992                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126993                        span,
126994                        visitor,
126995                        &mut *__ast_path,
126996                    )
126997                };
126998                let specifiers = {
126999                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
127000                        self::fields::ImportDeclField::Specifiers(usize::MAX),
127001                    ));
127002                    <Vec<ImportSpecifier> as FoldWithAstPath<V>>::fold_with_ast_path(
127003                        specifiers,
127004                        visitor,
127005                        &mut *__ast_path,
127006                    )
127007                };
127008                let src = {
127009                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
127010                        self::fields::ImportDeclField::Src,
127011                    ));
127012                    <Box<Str> as FoldWithAstPath<V>>::fold_with_ast_path(
127013                        src,
127014                        visitor,
127015                        &mut *__ast_path,
127016                    )
127017                };
127018                let with = {
127019                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
127020                        self::fields::ImportDeclField::With,
127021                    ));
127022                    <Option<Box<ObjectLit>> as FoldWithAstPath<V>>::fold_with_ast_path(
127023                        with,
127024                        visitor,
127025                        &mut *__ast_path,
127026                    )
127027                };
127028                let phase = {
127029                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
127030                        self::fields::ImportDeclField::Phase,
127031                    ));
127032                    <ImportPhase as FoldWithAstPath<V>>::fold_with_ast_path(
127033                        phase,
127034                        visitor,
127035                        &mut *__ast_path,
127036                    )
127037                };
127038                ImportDecl {
127039                    span,
127040                    specifiers,
127041                    src,
127042                    type_only,
127043                    with,
127044                    phase,
127045                }
127046            }
127047        }
127048    }
127049}
127050#[cfg(any(docsrs, feature = "path"))]
127051#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127052impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ImportDefaultSpecifier {
127053    #[doc = "Calls [FoldAstPath`::fold_import_default_specifier`] with `self`."]
127054    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127055        <V as FoldAstPath>::fold_import_default_specifier(visitor, self, __ast_path)
127056    }
127057
127058    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127059        match self {
127060            ImportDefaultSpecifier { span, local } => {
127061                let span = {
127062                    let mut __ast_path =
127063                        __ast_path.with_guard(AstParentKind::ImportDefaultSpecifier(
127064                            self::fields::ImportDefaultSpecifierField::Span,
127065                        ));
127066                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127067                        span,
127068                        visitor,
127069                        &mut *__ast_path,
127070                    )
127071                };
127072                let local = {
127073                    let mut __ast_path =
127074                        __ast_path.with_guard(AstParentKind::ImportDefaultSpecifier(
127075                            self::fields::ImportDefaultSpecifierField::Local,
127076                        ));
127077                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
127078                        local,
127079                        visitor,
127080                        &mut *__ast_path,
127081                    )
127082                };
127083                ImportDefaultSpecifier { span, local }
127084            }
127085        }
127086    }
127087}
127088#[cfg(any(docsrs, feature = "path"))]
127089#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127090impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ImportNamedSpecifier {
127091    #[doc = "Calls [FoldAstPath`::fold_import_named_specifier`] with `self`."]
127092    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127093        <V as FoldAstPath>::fold_import_named_specifier(visitor, self, __ast_path)
127094    }
127095
127096    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127097        match self {
127098            ImportNamedSpecifier {
127099                span,
127100                local,
127101                imported,
127102                is_type_only,
127103            } => {
127104                let span = {
127105                    let mut __ast_path =
127106                        __ast_path.with_guard(AstParentKind::ImportNamedSpecifier(
127107                            self::fields::ImportNamedSpecifierField::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 local = {
127116                    let mut __ast_path =
127117                        __ast_path.with_guard(AstParentKind::ImportNamedSpecifier(
127118                            self::fields::ImportNamedSpecifierField::Local,
127119                        ));
127120                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
127121                        local,
127122                        visitor,
127123                        &mut *__ast_path,
127124                    )
127125                };
127126                let imported = {
127127                    let mut __ast_path =
127128                        __ast_path.with_guard(AstParentKind::ImportNamedSpecifier(
127129                            self::fields::ImportNamedSpecifierField::Imported,
127130                        ));
127131                    <Option<ModuleExportName> as FoldWithAstPath<V>>::fold_with_ast_path(
127132                        imported,
127133                        visitor,
127134                        &mut *__ast_path,
127135                    )
127136                };
127137                ImportNamedSpecifier {
127138                    span,
127139                    local,
127140                    imported,
127141                    is_type_only,
127142                }
127143            }
127144        }
127145    }
127146}
127147#[cfg(any(docsrs, feature = "path"))]
127148#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127149impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ImportPhase {
127150    #[doc = "Calls [FoldAstPath`::fold_import_phase`] with `self`."]
127151    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127152        <V as FoldAstPath>::fold_import_phase(visitor, self, __ast_path)
127153    }
127154
127155    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127156        match self {
127157            ImportPhase::Evaluation => ImportPhase::Evaluation,
127158            ImportPhase::Source => ImportPhase::Source,
127159            ImportPhase::Defer => ImportPhase::Defer,
127160        }
127161    }
127162}
127163#[cfg(any(docsrs, feature = "path"))]
127164#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127165impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ImportSpecifier {
127166    #[doc = "Calls [FoldAstPath`::fold_import_specifier`] with `self`."]
127167    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127168        <V as FoldAstPath>::fold_import_specifier(visitor, self, __ast_path)
127169    }
127170
127171    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127172        match self {
127173            ImportSpecifier::Named { 0: _field_0 } => {
127174                let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportSpecifier(
127175                    self::fields::ImportSpecifierField::Named,
127176                ));
127177                let _field_0 = <ImportNamedSpecifier as FoldWithAstPath<V>>::fold_with_ast_path(
127178                    _field_0,
127179                    visitor,
127180                    &mut *__ast_path,
127181                );
127182                ImportSpecifier::Named { 0: _field_0 }
127183            }
127184            ImportSpecifier::Default { 0: _field_0 } => {
127185                let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportSpecifier(
127186                    self::fields::ImportSpecifierField::Default,
127187                ));
127188                let _field_0 = <ImportDefaultSpecifier as FoldWithAstPath<V>>::fold_with_ast_path(
127189                    _field_0,
127190                    visitor,
127191                    &mut *__ast_path,
127192                );
127193                ImportSpecifier::Default { 0: _field_0 }
127194            }
127195            ImportSpecifier::Namespace { 0: _field_0 } => {
127196                let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportSpecifier(
127197                    self::fields::ImportSpecifierField::Namespace,
127198                ));
127199                let _field_0 = <ImportStarAsSpecifier as FoldWithAstPath<V>>::fold_with_ast_path(
127200                    _field_0,
127201                    visitor,
127202                    &mut *__ast_path,
127203                );
127204                ImportSpecifier::Namespace { 0: _field_0 }
127205            }
127206        }
127207    }
127208}
127209#[cfg(any(docsrs, feature = "path"))]
127210#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127211impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ImportStarAsSpecifier {
127212    #[doc = "Calls [FoldAstPath`::fold_import_star_as_specifier`] with `self`."]
127213    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127214        <V as FoldAstPath>::fold_import_star_as_specifier(visitor, self, __ast_path)
127215    }
127216
127217    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127218        match self {
127219            ImportStarAsSpecifier { span, local } => {
127220                let span = {
127221                    let mut __ast_path =
127222                        __ast_path.with_guard(AstParentKind::ImportStarAsSpecifier(
127223                            self::fields::ImportStarAsSpecifierField::Span,
127224                        ));
127225                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127226                        span,
127227                        visitor,
127228                        &mut *__ast_path,
127229                    )
127230                };
127231                let local = {
127232                    let mut __ast_path =
127233                        __ast_path.with_guard(AstParentKind::ImportStarAsSpecifier(
127234                            self::fields::ImportStarAsSpecifierField::Local,
127235                        ));
127236                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
127237                        local,
127238                        visitor,
127239                        &mut *__ast_path,
127240                    )
127241                };
127242                ImportStarAsSpecifier { span, local }
127243            }
127244        }
127245    }
127246}
127247#[cfg(any(docsrs, feature = "path"))]
127248#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127249impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ImportWith {
127250    #[doc = "Calls [FoldAstPath`::fold_import_with`] with `self`."]
127251    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127252        <V as FoldAstPath>::fold_import_with(visitor, self, __ast_path)
127253    }
127254
127255    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127256        match self {
127257            ImportWith { span, values } => {
127258                let span = {
127259                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportWith(
127260                        self::fields::ImportWithField::Span,
127261                    ));
127262                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127263                        span,
127264                        visitor,
127265                        &mut *__ast_path,
127266                    )
127267                };
127268                let values = {
127269                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportWith(
127270                        self::fields::ImportWithField::Values(usize::MAX),
127271                    ));
127272                    <Vec<ImportWithItem> as FoldWithAstPath<V>>::fold_with_ast_path(
127273                        values,
127274                        visitor,
127275                        &mut *__ast_path,
127276                    )
127277                };
127278                ImportWith { span, values }
127279            }
127280        }
127281    }
127282}
127283#[cfg(any(docsrs, feature = "path"))]
127284#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127285impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ImportWithItem {
127286    #[doc = "Calls [FoldAstPath`::fold_import_with_item`] with `self`."]
127287    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127288        <V as FoldAstPath>::fold_import_with_item(visitor, self, __ast_path)
127289    }
127290
127291    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127292        match self {
127293            ImportWithItem { key, value } => {
127294                let key = {
127295                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportWithItem(
127296                        self::fields::ImportWithItemField::Key,
127297                    ));
127298                    <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
127299                        key,
127300                        visitor,
127301                        &mut *__ast_path,
127302                    )
127303                };
127304                let value = {
127305                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportWithItem(
127306                        self::fields::ImportWithItemField::Value,
127307                    ));
127308                    <Str as FoldWithAstPath<V>>::fold_with_ast_path(
127309                        value,
127310                        visitor,
127311                        &mut *__ast_path,
127312                    )
127313                };
127314                ImportWithItem { key, value }
127315            }
127316        }
127317    }
127318}
127319#[cfg(any(docsrs, feature = "path"))]
127320#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127321impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Invalid {
127322    #[doc = "Calls [FoldAstPath`::fold_invalid`] with `self`."]
127323    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127324        <V as FoldAstPath>::fold_invalid(visitor, self, __ast_path)
127325    }
127326
127327    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127328        match self {
127329            Invalid { span } => {
127330                let span = {
127331                    let mut __ast_path = __ast_path
127332                        .with_guard(AstParentKind::Invalid(self::fields::InvalidField::Span));
127333                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127334                        span,
127335                        visitor,
127336                        &mut *__ast_path,
127337                    )
127338                };
127339                Invalid { span }
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 JSXAttr {
127347    #[doc = "Calls [FoldAstPath`::fold_jsx_attr`] with `self`."]
127348    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127349        <V as FoldAstPath>::fold_jsx_attr(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            JSXAttr { span, name, value } => {
127355                let span = {
127356                    let mut __ast_path = __ast_path
127357                        .with_guard(AstParentKind::JSXAttr(self::fields::JSXAttrField::Span));
127358                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127359                        span,
127360                        visitor,
127361                        &mut *__ast_path,
127362                    )
127363                };
127364                let name = {
127365                    let mut __ast_path = __ast_path
127366                        .with_guard(AstParentKind::JSXAttr(self::fields::JSXAttrField::Name));
127367                    <JSXAttrName as FoldWithAstPath<V>>::fold_with_ast_path(
127368                        name,
127369                        visitor,
127370                        &mut *__ast_path,
127371                    )
127372                };
127373                let value = {
127374                    let mut __ast_path = __ast_path
127375                        .with_guard(AstParentKind::JSXAttr(self::fields::JSXAttrField::Value));
127376                    <Option<JSXAttrValue> as FoldWithAstPath<V>>::fold_with_ast_path(
127377                        value,
127378                        visitor,
127379                        &mut *__ast_path,
127380                    )
127381                };
127382                JSXAttr { span, name, value }
127383            }
127384        }
127385    }
127386}
127387#[cfg(any(docsrs, feature = "path"))]
127388#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127389impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXAttrName {
127390    #[doc = "Calls [FoldAstPath`::fold_jsx_attr_name`] with `self`."]
127391    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127392        <V as FoldAstPath>::fold_jsx_attr_name(visitor, self, __ast_path)
127393    }
127394
127395    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127396        match self {
127397            JSXAttrName::Ident { 0: _field_0 } => {
127398                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrName(
127399                    self::fields::JSXAttrNameField::Ident,
127400                ));
127401                let _field_0 = <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
127402                    _field_0,
127403                    visitor,
127404                    &mut *__ast_path,
127405                );
127406                JSXAttrName::Ident { 0: _field_0 }
127407            }
127408            JSXAttrName::JSXNamespacedName { 0: _field_0 } => {
127409                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrName(
127410                    self::fields::JSXAttrNameField::JsxnamespacedName,
127411                ));
127412                let _field_0 = <JSXNamespacedName as FoldWithAstPath<V>>::fold_with_ast_path(
127413                    _field_0,
127414                    visitor,
127415                    &mut *__ast_path,
127416                );
127417                JSXAttrName::JSXNamespacedName { 0: _field_0 }
127418            }
127419        }
127420    }
127421}
127422#[cfg(any(docsrs, feature = "path"))]
127423#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127424impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXAttrOrSpread {
127425    #[doc = "Calls [FoldAstPath`::fold_jsx_attr_or_spread`] with `self`."]
127426    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127427        <V as FoldAstPath>::fold_jsx_attr_or_spread(visitor, self, __ast_path)
127428    }
127429
127430    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127431        match self {
127432            JSXAttrOrSpread::JSXAttr { 0: _field_0 } => {
127433                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrOrSpread(
127434                    self::fields::JSXAttrOrSpreadField::Jsxattr,
127435                ));
127436                let _field_0 = <JSXAttr as FoldWithAstPath<V>>::fold_with_ast_path(
127437                    _field_0,
127438                    visitor,
127439                    &mut *__ast_path,
127440                );
127441                JSXAttrOrSpread::JSXAttr { 0: _field_0 }
127442            }
127443            JSXAttrOrSpread::SpreadElement { 0: _field_0 } => {
127444                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrOrSpread(
127445                    self::fields::JSXAttrOrSpreadField::SpreadElement,
127446                ));
127447                let _field_0 = <SpreadElement as FoldWithAstPath<V>>::fold_with_ast_path(
127448                    _field_0,
127449                    visitor,
127450                    &mut *__ast_path,
127451                );
127452                JSXAttrOrSpread::SpreadElement { 0: _field_0 }
127453            }
127454        }
127455    }
127456}
127457#[cfg(any(docsrs, feature = "path"))]
127458#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127459impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXAttrValue {
127460    #[doc = "Calls [FoldAstPath`::fold_jsx_attr_value`] with `self`."]
127461    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127462        <V as FoldAstPath>::fold_jsx_attr_value(visitor, self, __ast_path)
127463    }
127464
127465    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127466        match self {
127467            JSXAttrValue::Lit { 0: _field_0 } => {
127468                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrValue(
127469                    self::fields::JSXAttrValueField::Lit,
127470                ));
127471                let _field_0 = <Lit as FoldWithAstPath<V>>::fold_with_ast_path(
127472                    _field_0,
127473                    visitor,
127474                    &mut *__ast_path,
127475                );
127476                JSXAttrValue::Lit { 0: _field_0 }
127477            }
127478            JSXAttrValue::JSXExprContainer { 0: _field_0 } => {
127479                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrValue(
127480                    self::fields::JSXAttrValueField::JsxexprContainer,
127481                ));
127482                let _field_0 = <JSXExprContainer as FoldWithAstPath<V>>::fold_with_ast_path(
127483                    _field_0,
127484                    visitor,
127485                    &mut *__ast_path,
127486                );
127487                JSXAttrValue::JSXExprContainer { 0: _field_0 }
127488            }
127489            JSXAttrValue::JSXElement { 0: _field_0 } => {
127490                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrValue(
127491                    self::fields::JSXAttrValueField::Jsxelement,
127492                ));
127493                let _field_0 = <Box<JSXElement> as FoldWithAstPath<V>>::fold_with_ast_path(
127494                    _field_0,
127495                    visitor,
127496                    &mut *__ast_path,
127497                );
127498                JSXAttrValue::JSXElement { 0: _field_0 }
127499            }
127500            JSXAttrValue::JSXFragment { 0: _field_0 } => {
127501                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrValue(
127502                    self::fields::JSXAttrValueField::Jsxfragment,
127503                ));
127504                let _field_0 = <JSXFragment as FoldWithAstPath<V>>::fold_with_ast_path(
127505                    _field_0,
127506                    visitor,
127507                    &mut *__ast_path,
127508                );
127509                JSXAttrValue::JSXFragment { 0: _field_0 }
127510            }
127511        }
127512    }
127513}
127514#[cfg(any(docsrs, feature = "path"))]
127515#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127516impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXClosingElement {
127517    #[doc = "Calls [FoldAstPath`::fold_jsx_closing_element`] with `self`."]
127518    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127519        <V as FoldAstPath>::fold_jsx_closing_element(visitor, self, __ast_path)
127520    }
127521
127522    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127523        match self {
127524            JSXClosingElement { span, name } => {
127525                let span = {
127526                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXClosingElement(
127527                        self::fields::JSXClosingElementField::Span,
127528                    ));
127529                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127530                        span,
127531                        visitor,
127532                        &mut *__ast_path,
127533                    )
127534                };
127535                let name = {
127536                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXClosingElement(
127537                        self::fields::JSXClosingElementField::Name,
127538                    ));
127539                    <JSXElementName as FoldWithAstPath<V>>::fold_with_ast_path(
127540                        name,
127541                        visitor,
127542                        &mut *__ast_path,
127543                    )
127544                };
127545                JSXClosingElement { span, name }
127546            }
127547        }
127548    }
127549}
127550#[cfg(any(docsrs, feature = "path"))]
127551#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127552impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXClosingFragment {
127553    #[doc = "Calls [FoldAstPath`::fold_jsx_closing_fragment`] with `self`."]
127554    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127555        <V as FoldAstPath>::fold_jsx_closing_fragment(visitor, self, __ast_path)
127556    }
127557
127558    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127559        match self {
127560            JSXClosingFragment { span } => {
127561                let span = {
127562                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXClosingFragment(
127563                        self::fields::JSXClosingFragmentField::Span,
127564                    ));
127565                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127566                        span,
127567                        visitor,
127568                        &mut *__ast_path,
127569                    )
127570                };
127571                JSXClosingFragment { span }
127572            }
127573        }
127574    }
127575}
127576#[cfg(any(docsrs, feature = "path"))]
127577#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127578impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXElement {
127579    #[doc = "Calls [FoldAstPath`::fold_jsx_element`] with `self`."]
127580    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127581        <V as FoldAstPath>::fold_jsx_element(visitor, self, __ast_path)
127582    }
127583
127584    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127585        match self {
127586            JSXElement {
127587                span,
127588                opening,
127589                children,
127590                closing,
127591            } => {
127592                let span = {
127593                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElement(
127594                        self::fields::JSXElementField::Span,
127595                    ));
127596                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127597                        span,
127598                        visitor,
127599                        &mut *__ast_path,
127600                    )
127601                };
127602                let opening = {
127603                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElement(
127604                        self::fields::JSXElementField::Opening,
127605                    ));
127606                    <JSXOpeningElement as FoldWithAstPath<V>>::fold_with_ast_path(
127607                        opening,
127608                        visitor,
127609                        &mut *__ast_path,
127610                    )
127611                };
127612                let children = {
127613                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElement(
127614                        self::fields::JSXElementField::Children(usize::MAX),
127615                    ));
127616                    <Vec<JSXElementChild> as FoldWithAstPath<V>>::fold_with_ast_path(
127617                        children,
127618                        visitor,
127619                        &mut *__ast_path,
127620                    )
127621                };
127622                let closing = {
127623                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElement(
127624                        self::fields::JSXElementField::Closing,
127625                    ));
127626                    <Option<JSXClosingElement> as FoldWithAstPath<V>>::fold_with_ast_path(
127627                        closing,
127628                        visitor,
127629                        &mut *__ast_path,
127630                    )
127631                };
127632                JSXElement {
127633                    span,
127634                    opening,
127635                    children,
127636                    closing,
127637                }
127638            }
127639        }
127640    }
127641}
127642#[cfg(any(docsrs, feature = "path"))]
127643#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127644impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXElementChild {
127645    #[doc = "Calls [FoldAstPath`::fold_jsx_element_child`] with `self`."]
127646    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127647        <V as FoldAstPath>::fold_jsx_element_child(visitor, self, __ast_path)
127648    }
127649
127650    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127651        match self {
127652            JSXElementChild::JSXText { 0: _field_0 } => {
127653                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
127654                    self::fields::JSXElementChildField::Jsxtext,
127655                ));
127656                let _field_0 = <JSXText as FoldWithAstPath<V>>::fold_with_ast_path(
127657                    _field_0,
127658                    visitor,
127659                    &mut *__ast_path,
127660                );
127661                JSXElementChild::JSXText { 0: _field_0 }
127662            }
127663            JSXElementChild::JSXExprContainer { 0: _field_0 } => {
127664                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
127665                    self::fields::JSXElementChildField::JsxexprContainer,
127666                ));
127667                let _field_0 = <JSXExprContainer as FoldWithAstPath<V>>::fold_with_ast_path(
127668                    _field_0,
127669                    visitor,
127670                    &mut *__ast_path,
127671                );
127672                JSXElementChild::JSXExprContainer { 0: _field_0 }
127673            }
127674            JSXElementChild::JSXSpreadChild { 0: _field_0 } => {
127675                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
127676                    self::fields::JSXElementChildField::JsxspreadChild,
127677                ));
127678                let _field_0 = <JSXSpreadChild as FoldWithAstPath<V>>::fold_with_ast_path(
127679                    _field_0,
127680                    visitor,
127681                    &mut *__ast_path,
127682                );
127683                JSXElementChild::JSXSpreadChild { 0: _field_0 }
127684            }
127685            JSXElementChild::JSXElement { 0: _field_0 } => {
127686                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
127687                    self::fields::JSXElementChildField::Jsxelement,
127688                ));
127689                let _field_0 = <Box<JSXElement> as FoldWithAstPath<V>>::fold_with_ast_path(
127690                    _field_0,
127691                    visitor,
127692                    &mut *__ast_path,
127693                );
127694                JSXElementChild::JSXElement { 0: _field_0 }
127695            }
127696            JSXElementChild::JSXFragment { 0: _field_0 } => {
127697                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
127698                    self::fields::JSXElementChildField::Jsxfragment,
127699                ));
127700                let _field_0 = <JSXFragment as FoldWithAstPath<V>>::fold_with_ast_path(
127701                    _field_0,
127702                    visitor,
127703                    &mut *__ast_path,
127704                );
127705                JSXElementChild::JSXFragment { 0: _field_0 }
127706            }
127707        }
127708    }
127709}
127710#[cfg(any(docsrs, feature = "path"))]
127711#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127712impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXElementName {
127713    #[doc = "Calls [FoldAstPath`::fold_jsx_element_name`] with `self`."]
127714    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127715        <V as FoldAstPath>::fold_jsx_element_name(visitor, self, __ast_path)
127716    }
127717
127718    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127719        match self {
127720            JSXElementName::Ident { 0: _field_0 } => {
127721                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementName(
127722                    self::fields::JSXElementNameField::Ident,
127723                ));
127724                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
127725                    _field_0,
127726                    visitor,
127727                    &mut *__ast_path,
127728                );
127729                JSXElementName::Ident { 0: _field_0 }
127730            }
127731            JSXElementName::JSXMemberExpr { 0: _field_0 } => {
127732                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementName(
127733                    self::fields::JSXElementNameField::JsxmemberExpr,
127734                ));
127735                let _field_0 = <JSXMemberExpr as FoldWithAstPath<V>>::fold_with_ast_path(
127736                    _field_0,
127737                    visitor,
127738                    &mut *__ast_path,
127739                );
127740                JSXElementName::JSXMemberExpr { 0: _field_0 }
127741            }
127742            JSXElementName::JSXNamespacedName { 0: _field_0 } => {
127743                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementName(
127744                    self::fields::JSXElementNameField::JsxnamespacedName,
127745                ));
127746                let _field_0 = <JSXNamespacedName as FoldWithAstPath<V>>::fold_with_ast_path(
127747                    _field_0,
127748                    visitor,
127749                    &mut *__ast_path,
127750                );
127751                JSXElementName::JSXNamespacedName { 0: _field_0 }
127752            }
127753        }
127754    }
127755}
127756#[cfg(any(docsrs, feature = "path"))]
127757#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127758impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXEmptyExpr {
127759    #[doc = "Calls [FoldAstPath`::fold_jsx_empty_expr`] with `self`."]
127760    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127761        <V as FoldAstPath>::fold_jsx_empty_expr(visitor, self, __ast_path)
127762    }
127763
127764    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127765        match self {
127766            JSXEmptyExpr { span } => {
127767                let span = {
127768                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXEmptyExpr(
127769                        self::fields::JSXEmptyExprField::Span,
127770                    ));
127771                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127772                        span,
127773                        visitor,
127774                        &mut *__ast_path,
127775                    )
127776                };
127777                JSXEmptyExpr { span }
127778            }
127779        }
127780    }
127781}
127782#[cfg(any(docsrs, feature = "path"))]
127783#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127784impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXExpr {
127785    #[doc = "Calls [FoldAstPath`::fold_jsx_expr`] with `self`."]
127786    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127787        <V as FoldAstPath>::fold_jsx_expr(visitor, self, __ast_path)
127788    }
127789
127790    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127791        match self {
127792            JSXExpr::JSXEmptyExpr { 0: _field_0 } => {
127793                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXExpr(
127794                    self::fields::JSXExprField::JsxemptyExpr,
127795                ));
127796                let _field_0 = <JSXEmptyExpr as FoldWithAstPath<V>>::fold_with_ast_path(
127797                    _field_0,
127798                    visitor,
127799                    &mut *__ast_path,
127800                );
127801                JSXExpr::JSXEmptyExpr { 0: _field_0 }
127802            }
127803            JSXExpr::Expr { 0: _field_0 } => {
127804                let mut __ast_path =
127805                    __ast_path.with_guard(AstParentKind::JSXExpr(self::fields::JSXExprField::Expr));
127806                let _field_0 = <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
127807                    _field_0,
127808                    visitor,
127809                    &mut *__ast_path,
127810                );
127811                JSXExpr::Expr { 0: _field_0 }
127812            }
127813        }
127814    }
127815}
127816#[cfg(any(docsrs, feature = "path"))]
127817#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127818impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXExprContainer {
127819    #[doc = "Calls [FoldAstPath`::fold_jsx_expr_container`] with `self`."]
127820    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127821        <V as FoldAstPath>::fold_jsx_expr_container(visitor, self, __ast_path)
127822    }
127823
127824    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127825        match self {
127826            JSXExprContainer { span, expr } => {
127827                let span = {
127828                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXExprContainer(
127829                        self::fields::JSXExprContainerField::Span,
127830                    ));
127831                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127832                        span,
127833                        visitor,
127834                        &mut *__ast_path,
127835                    )
127836                };
127837                let expr = {
127838                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXExprContainer(
127839                        self::fields::JSXExprContainerField::Expr,
127840                    ));
127841                    <JSXExpr as FoldWithAstPath<V>>::fold_with_ast_path(
127842                        expr,
127843                        visitor,
127844                        &mut *__ast_path,
127845                    )
127846                };
127847                JSXExprContainer { span, expr }
127848            }
127849        }
127850    }
127851}
127852#[cfg(any(docsrs, feature = "path"))]
127853#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127854impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXFragment {
127855    #[doc = "Calls [FoldAstPath`::fold_jsx_fragment`] with `self`."]
127856    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127857        <V as FoldAstPath>::fold_jsx_fragment(visitor, self, __ast_path)
127858    }
127859
127860    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127861        match self {
127862            JSXFragment {
127863                span,
127864                opening,
127865                children,
127866                closing,
127867            } => {
127868                let span = {
127869                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXFragment(
127870                        self::fields::JSXFragmentField::Span,
127871                    ));
127872                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127873                        span,
127874                        visitor,
127875                        &mut *__ast_path,
127876                    )
127877                };
127878                let opening = {
127879                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXFragment(
127880                        self::fields::JSXFragmentField::Opening,
127881                    ));
127882                    <JSXOpeningFragment as FoldWithAstPath<V>>::fold_with_ast_path(
127883                        opening,
127884                        visitor,
127885                        &mut *__ast_path,
127886                    )
127887                };
127888                let children = {
127889                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXFragment(
127890                        self::fields::JSXFragmentField::Children(usize::MAX),
127891                    ));
127892                    <Vec<JSXElementChild> as FoldWithAstPath<V>>::fold_with_ast_path(
127893                        children,
127894                        visitor,
127895                        &mut *__ast_path,
127896                    )
127897                };
127898                let closing = {
127899                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXFragment(
127900                        self::fields::JSXFragmentField::Closing,
127901                    ));
127902                    <JSXClosingFragment as FoldWithAstPath<V>>::fold_with_ast_path(
127903                        closing,
127904                        visitor,
127905                        &mut *__ast_path,
127906                    )
127907                };
127908                JSXFragment {
127909                    span,
127910                    opening,
127911                    children,
127912                    closing,
127913                }
127914            }
127915        }
127916    }
127917}
127918#[cfg(any(docsrs, feature = "path"))]
127919#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127920impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXMemberExpr {
127921    #[doc = "Calls [FoldAstPath`::fold_jsx_member_expr`] with `self`."]
127922    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127923        <V as FoldAstPath>::fold_jsx_member_expr(visitor, self, __ast_path)
127924    }
127925
127926    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127927        match self {
127928            JSXMemberExpr { span, obj, prop } => {
127929                let span = {
127930                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXMemberExpr(
127931                        self::fields::JSXMemberExprField::Span,
127932                    ));
127933                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127934                        span,
127935                        visitor,
127936                        &mut *__ast_path,
127937                    )
127938                };
127939                let obj = {
127940                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXMemberExpr(
127941                        self::fields::JSXMemberExprField::Obj,
127942                    ));
127943                    <JSXObject as FoldWithAstPath<V>>::fold_with_ast_path(
127944                        obj,
127945                        visitor,
127946                        &mut *__ast_path,
127947                    )
127948                };
127949                let prop = {
127950                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXMemberExpr(
127951                        self::fields::JSXMemberExprField::Prop,
127952                    ));
127953                    <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
127954                        prop,
127955                        visitor,
127956                        &mut *__ast_path,
127957                    )
127958                };
127959                JSXMemberExpr { span, obj, prop }
127960            }
127961        }
127962    }
127963}
127964#[cfg(any(docsrs, feature = "path"))]
127965#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127966impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXNamespacedName {
127967    #[doc = "Calls [FoldAstPath`::fold_jsx_namespaced_name`] with `self`."]
127968    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127969        <V as FoldAstPath>::fold_jsx_namespaced_name(visitor, self, __ast_path)
127970    }
127971
127972    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127973        match self {
127974            JSXNamespacedName { span, ns, name } => {
127975                let span = {
127976                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXNamespacedName(
127977                        self::fields::JSXNamespacedNameField::Span,
127978                    ));
127979                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127980                        span,
127981                        visitor,
127982                        &mut *__ast_path,
127983                    )
127984                };
127985                let ns = {
127986                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXNamespacedName(
127987                        self::fields::JSXNamespacedNameField::Ns,
127988                    ));
127989                    <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
127990                        ns,
127991                        visitor,
127992                        &mut *__ast_path,
127993                    )
127994                };
127995                let name = {
127996                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXNamespacedName(
127997                        self::fields::JSXNamespacedNameField::Name,
127998                    ));
127999                    <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
128000                        name,
128001                        visitor,
128002                        &mut *__ast_path,
128003                    )
128004                };
128005                JSXNamespacedName { span, ns, name }
128006            }
128007        }
128008    }
128009}
128010#[cfg(any(docsrs, feature = "path"))]
128011#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128012impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXObject {
128013    #[doc = "Calls [FoldAstPath`::fold_jsx_object`] with `self`."]
128014    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128015        <V as FoldAstPath>::fold_jsx_object(visitor, self, __ast_path)
128016    }
128017
128018    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128019        match self {
128020            JSXObject::JSXMemberExpr { 0: _field_0 } => {
128021                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXObject(
128022                    self::fields::JSXObjectField::JsxmemberExpr,
128023                ));
128024                let _field_0 = <Box<JSXMemberExpr> as FoldWithAstPath<V>>::fold_with_ast_path(
128025                    _field_0,
128026                    visitor,
128027                    &mut *__ast_path,
128028                );
128029                JSXObject::JSXMemberExpr { 0: _field_0 }
128030            }
128031            JSXObject::Ident { 0: _field_0 } => {
128032                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXObject(
128033                    self::fields::JSXObjectField::Ident,
128034                ));
128035                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
128036                    _field_0,
128037                    visitor,
128038                    &mut *__ast_path,
128039                );
128040                JSXObject::Ident { 0: _field_0 }
128041            }
128042        }
128043    }
128044}
128045#[cfg(any(docsrs, feature = "path"))]
128046#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128047impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXOpeningElement {
128048    #[doc = "Calls [FoldAstPath`::fold_jsx_opening_element`] with `self`."]
128049    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128050        <V as FoldAstPath>::fold_jsx_opening_element(visitor, self, __ast_path)
128051    }
128052
128053    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128054        match self {
128055            JSXOpeningElement {
128056                name,
128057                span,
128058                attrs,
128059                self_closing,
128060                type_args,
128061            } => {
128062                let name = {
128063                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningElement(
128064                        self::fields::JSXOpeningElementField::Name,
128065                    ));
128066                    <JSXElementName as FoldWithAstPath<V>>::fold_with_ast_path(
128067                        name,
128068                        visitor,
128069                        &mut *__ast_path,
128070                    )
128071                };
128072                let span = {
128073                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningElement(
128074                        self::fields::JSXOpeningElementField::Span,
128075                    ));
128076                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128077                        span,
128078                        visitor,
128079                        &mut *__ast_path,
128080                    )
128081                };
128082                let attrs = {
128083                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningElement(
128084                        self::fields::JSXOpeningElementField::Attrs(usize::MAX),
128085                    ));
128086                    <Vec<JSXAttrOrSpread> as FoldWithAstPath<V>>::fold_with_ast_path(
128087                        attrs,
128088                        visitor,
128089                        &mut *__ast_path,
128090                    )
128091                };
128092                let type_args = {
128093                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningElement(
128094                        self::fields::JSXOpeningElementField::TypeArgs,
128095                    ));
128096                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_args , visitor , & mut * __ast_path)
128097                };
128098                JSXOpeningElement {
128099                    name,
128100                    span,
128101                    attrs,
128102                    self_closing,
128103                    type_args,
128104                }
128105            }
128106        }
128107    }
128108}
128109#[cfg(any(docsrs, feature = "path"))]
128110#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128111impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXOpeningFragment {
128112    #[doc = "Calls [FoldAstPath`::fold_jsx_opening_fragment`] with `self`."]
128113    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128114        <V as FoldAstPath>::fold_jsx_opening_fragment(visitor, self, __ast_path)
128115    }
128116
128117    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128118        match self {
128119            JSXOpeningFragment { span } => {
128120                let span = {
128121                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningFragment(
128122                        self::fields::JSXOpeningFragmentField::Span,
128123                    ));
128124                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128125                        span,
128126                        visitor,
128127                        &mut *__ast_path,
128128                    )
128129                };
128130                JSXOpeningFragment { span }
128131            }
128132        }
128133    }
128134}
128135#[cfg(any(docsrs, feature = "path"))]
128136#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128137impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXSpreadChild {
128138    #[doc = "Calls [FoldAstPath`::fold_jsx_spread_child`] with `self`."]
128139    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128140        <V as FoldAstPath>::fold_jsx_spread_child(visitor, self, __ast_path)
128141    }
128142
128143    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128144        match self {
128145            JSXSpreadChild { span, expr } => {
128146                let span = {
128147                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXSpreadChild(
128148                        self::fields::JSXSpreadChildField::Span,
128149                    ));
128150                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128151                        span,
128152                        visitor,
128153                        &mut *__ast_path,
128154                    )
128155                };
128156                let expr = {
128157                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXSpreadChild(
128158                        self::fields::JSXSpreadChildField::Expr,
128159                    ));
128160                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
128161                        expr,
128162                        visitor,
128163                        &mut *__ast_path,
128164                    )
128165                };
128166                JSXSpreadChild { span, expr }
128167            }
128168        }
128169    }
128170}
128171#[cfg(any(docsrs, feature = "path"))]
128172#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128173impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXText {
128174    #[doc = "Calls [FoldAstPath`::fold_jsx_text`] with `self`."]
128175    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128176        <V as FoldAstPath>::fold_jsx_text(visitor, self, __ast_path)
128177    }
128178
128179    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128180        match self {
128181            JSXText { span, value, raw } => {
128182                let span = {
128183                    let mut __ast_path = __ast_path
128184                        .with_guard(AstParentKind::JSXText(self::fields::JSXTextField::Span));
128185                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128186                        span,
128187                        visitor,
128188                        &mut *__ast_path,
128189                    )
128190                };
128191                let value = {
128192                    let mut __ast_path = __ast_path
128193                        .with_guard(AstParentKind::JSXText(self::fields::JSXTextField::Value));
128194                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
128195                        value,
128196                        visitor,
128197                        &mut *__ast_path,
128198                    )
128199                };
128200                let raw = {
128201                    let mut __ast_path = __ast_path
128202                        .with_guard(AstParentKind::JSXText(self::fields::JSXTextField::Raw));
128203                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
128204                        raw,
128205                        visitor,
128206                        &mut *__ast_path,
128207                    )
128208                };
128209                JSXText { span, value, raw }
128210            }
128211        }
128212    }
128213}
128214#[cfg(any(docsrs, feature = "path"))]
128215#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128216impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Key {
128217    #[doc = "Calls [FoldAstPath`::fold_key`] with `self`."]
128218    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128219        <V as FoldAstPath>::fold_key(visitor, self, __ast_path)
128220    }
128221
128222    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128223        match self {
128224            Key::Private { 0: _field_0 } => {
128225                let mut __ast_path =
128226                    __ast_path.with_guard(AstParentKind::Key(self::fields::KeyField::Private));
128227                let _field_0 = <PrivateName as FoldWithAstPath<V>>::fold_with_ast_path(
128228                    _field_0,
128229                    visitor,
128230                    &mut *__ast_path,
128231                );
128232                Key::Private { 0: _field_0 }
128233            }
128234            Key::Public { 0: _field_0 } => {
128235                let mut __ast_path =
128236                    __ast_path.with_guard(AstParentKind::Key(self::fields::KeyField::Public));
128237                let _field_0 = <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
128238                    _field_0,
128239                    visitor,
128240                    &mut *__ast_path,
128241                );
128242                Key::Public { 0: _field_0 }
128243            }
128244        }
128245    }
128246}
128247#[cfg(any(docsrs, feature = "path"))]
128248#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128249impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for KeyValuePatProp {
128250    #[doc = "Calls [FoldAstPath`::fold_key_value_pat_prop`] with `self`."]
128251    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128252        <V as FoldAstPath>::fold_key_value_pat_prop(visitor, self, __ast_path)
128253    }
128254
128255    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128256        match self {
128257            KeyValuePatProp { key, value } => {
128258                let key = {
128259                    let mut __ast_path = __ast_path.with_guard(AstParentKind::KeyValuePatProp(
128260                        self::fields::KeyValuePatPropField::Key,
128261                    ));
128262                    <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
128263                        key,
128264                        visitor,
128265                        &mut *__ast_path,
128266                    )
128267                };
128268                let value = {
128269                    let mut __ast_path = __ast_path.with_guard(AstParentKind::KeyValuePatProp(
128270                        self::fields::KeyValuePatPropField::Value,
128271                    ));
128272                    <Box<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
128273                        value,
128274                        visitor,
128275                        &mut *__ast_path,
128276                    )
128277                };
128278                KeyValuePatProp { key, value }
128279            }
128280        }
128281    }
128282}
128283#[cfg(any(docsrs, feature = "path"))]
128284#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128285impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for KeyValueProp {
128286    #[doc = "Calls [FoldAstPath`::fold_key_value_prop`] with `self`."]
128287    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128288        <V as FoldAstPath>::fold_key_value_prop(visitor, self, __ast_path)
128289    }
128290
128291    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128292        match self {
128293            KeyValueProp { key, value } => {
128294                let key = {
128295                    let mut __ast_path = __ast_path.with_guard(AstParentKind::KeyValueProp(
128296                        self::fields::KeyValuePropField::Key,
128297                    ));
128298                    <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
128299                        key,
128300                        visitor,
128301                        &mut *__ast_path,
128302                    )
128303                };
128304                let value = {
128305                    let mut __ast_path = __ast_path.with_guard(AstParentKind::KeyValueProp(
128306                        self::fields::KeyValuePropField::Value,
128307                    ));
128308                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
128309                        value,
128310                        visitor,
128311                        &mut *__ast_path,
128312                    )
128313                };
128314                KeyValueProp { key, value }
128315            }
128316        }
128317    }
128318}
128319#[cfg(any(docsrs, feature = "path"))]
128320#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128321impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for LabeledStmt {
128322    #[doc = "Calls [FoldAstPath`::fold_labeled_stmt`] with `self`."]
128323    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128324        <V as FoldAstPath>::fold_labeled_stmt(visitor, self, __ast_path)
128325    }
128326
128327    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128328        match self {
128329            LabeledStmt { span, label, body } => {
128330                let span = {
128331                    let mut __ast_path = __ast_path.with_guard(AstParentKind::LabeledStmt(
128332                        self::fields::LabeledStmtField::Span,
128333                    ));
128334                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128335                        span,
128336                        visitor,
128337                        &mut *__ast_path,
128338                    )
128339                };
128340                let label = {
128341                    let mut __ast_path = __ast_path.with_guard(AstParentKind::LabeledStmt(
128342                        self::fields::LabeledStmtField::Label,
128343                    ));
128344                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
128345                        label,
128346                        visitor,
128347                        &mut *__ast_path,
128348                    )
128349                };
128350                let body = {
128351                    let mut __ast_path = __ast_path.with_guard(AstParentKind::LabeledStmt(
128352                        self::fields::LabeledStmtField::Body,
128353                    ));
128354                    <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
128355                        body,
128356                        visitor,
128357                        &mut *__ast_path,
128358                    )
128359                };
128360                LabeledStmt { span, label, body }
128361            }
128362        }
128363    }
128364}
128365#[cfg(any(docsrs, feature = "path"))]
128366#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128367impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Lit {
128368    #[doc = "Calls [FoldAstPath`::fold_lit`] with `self`."]
128369    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128370        <V as FoldAstPath>::fold_lit(visitor, self, __ast_path)
128371    }
128372
128373    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128374        match self {
128375            Lit::Str { 0: _field_0 } => {
128376                let mut __ast_path =
128377                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Str));
128378                let _field_0 = <Str as FoldWithAstPath<V>>::fold_with_ast_path(
128379                    _field_0,
128380                    visitor,
128381                    &mut *__ast_path,
128382                );
128383                Lit::Str { 0: _field_0 }
128384            }
128385            Lit::Bool { 0: _field_0 } => {
128386                let mut __ast_path =
128387                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Bool));
128388                let _field_0 = <Bool as FoldWithAstPath<V>>::fold_with_ast_path(
128389                    _field_0,
128390                    visitor,
128391                    &mut *__ast_path,
128392                );
128393                Lit::Bool { 0: _field_0 }
128394            }
128395            Lit::Null { 0: _field_0 } => {
128396                let mut __ast_path =
128397                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Null));
128398                let _field_0 = <Null as FoldWithAstPath<V>>::fold_with_ast_path(
128399                    _field_0,
128400                    visitor,
128401                    &mut *__ast_path,
128402                );
128403                Lit::Null { 0: _field_0 }
128404            }
128405            Lit::Num { 0: _field_0 } => {
128406                let mut __ast_path =
128407                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Num));
128408                let _field_0 = <Number as FoldWithAstPath<V>>::fold_with_ast_path(
128409                    _field_0,
128410                    visitor,
128411                    &mut *__ast_path,
128412                );
128413                Lit::Num { 0: _field_0 }
128414            }
128415            Lit::BigInt { 0: _field_0 } => {
128416                let mut __ast_path =
128417                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::BigInt));
128418                let _field_0 = <BigInt as FoldWithAstPath<V>>::fold_with_ast_path(
128419                    _field_0,
128420                    visitor,
128421                    &mut *__ast_path,
128422                );
128423                Lit::BigInt { 0: _field_0 }
128424            }
128425            Lit::Regex { 0: _field_0 } => {
128426                let mut __ast_path =
128427                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Regex));
128428                let _field_0 = <Regex as FoldWithAstPath<V>>::fold_with_ast_path(
128429                    _field_0,
128430                    visitor,
128431                    &mut *__ast_path,
128432                );
128433                Lit::Regex { 0: _field_0 }
128434            }
128435            Lit::JSXText { 0: _field_0 } => {
128436                let mut __ast_path =
128437                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Jsxtext));
128438                let _field_0 = <JSXText as FoldWithAstPath<V>>::fold_with_ast_path(
128439                    _field_0,
128440                    visitor,
128441                    &mut *__ast_path,
128442                );
128443                Lit::JSXText { 0: _field_0 }
128444            }
128445        }
128446    }
128447}
128448#[cfg(any(docsrs, feature = "path"))]
128449#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128450impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for MemberExpr {
128451    #[doc = "Calls [FoldAstPath`::fold_member_expr`] with `self`."]
128452    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128453        <V as FoldAstPath>::fold_member_expr(visitor, self, __ast_path)
128454    }
128455
128456    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128457        match self {
128458            MemberExpr { span, obj, prop } => {
128459                let span = {
128460                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberExpr(
128461                        self::fields::MemberExprField::Span,
128462                    ));
128463                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128464                        span,
128465                        visitor,
128466                        &mut *__ast_path,
128467                    )
128468                };
128469                let obj = {
128470                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberExpr(
128471                        self::fields::MemberExprField::Obj,
128472                    ));
128473                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
128474                        obj,
128475                        visitor,
128476                        &mut *__ast_path,
128477                    )
128478                };
128479                let prop = {
128480                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberExpr(
128481                        self::fields::MemberExprField::Prop,
128482                    ));
128483                    <MemberProp as FoldWithAstPath<V>>::fold_with_ast_path(
128484                        prop,
128485                        visitor,
128486                        &mut *__ast_path,
128487                    )
128488                };
128489                MemberExpr { span, obj, prop }
128490            }
128491        }
128492    }
128493}
128494#[cfg(any(docsrs, feature = "path"))]
128495#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128496impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for MemberProp {
128497    #[doc = "Calls [FoldAstPath`::fold_member_prop`] with `self`."]
128498    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128499        <V as FoldAstPath>::fold_member_prop(visitor, self, __ast_path)
128500    }
128501
128502    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128503        match self {
128504            MemberProp::Ident { 0: _field_0 } => {
128505                let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberProp(
128506                    self::fields::MemberPropField::Ident,
128507                ));
128508                let _field_0 = <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
128509                    _field_0,
128510                    visitor,
128511                    &mut *__ast_path,
128512                );
128513                MemberProp::Ident { 0: _field_0 }
128514            }
128515            MemberProp::PrivateName { 0: _field_0 } => {
128516                let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberProp(
128517                    self::fields::MemberPropField::PrivateName,
128518                ));
128519                let _field_0 = <PrivateName as FoldWithAstPath<V>>::fold_with_ast_path(
128520                    _field_0,
128521                    visitor,
128522                    &mut *__ast_path,
128523                );
128524                MemberProp::PrivateName { 0: _field_0 }
128525            }
128526            MemberProp::Computed { 0: _field_0 } => {
128527                let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberProp(
128528                    self::fields::MemberPropField::Computed,
128529                ));
128530                let _field_0 = <ComputedPropName as FoldWithAstPath<V>>::fold_with_ast_path(
128531                    _field_0,
128532                    visitor,
128533                    &mut *__ast_path,
128534                );
128535                MemberProp::Computed { 0: _field_0 }
128536            }
128537        }
128538    }
128539}
128540#[cfg(any(docsrs, feature = "path"))]
128541#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128542impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for MetaPropExpr {
128543    #[doc = "Calls [FoldAstPath`::fold_meta_prop_expr`] with `self`."]
128544    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128545        <V as FoldAstPath>::fold_meta_prop_expr(visitor, self, __ast_path)
128546    }
128547
128548    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128549        match self {
128550            MetaPropExpr { span, kind } => {
128551                let span = {
128552                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MetaPropExpr(
128553                        self::fields::MetaPropExprField::Span,
128554                    ));
128555                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128556                        span,
128557                        visitor,
128558                        &mut *__ast_path,
128559                    )
128560                };
128561                let kind = {
128562                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MetaPropExpr(
128563                        self::fields::MetaPropExprField::Kind,
128564                    ));
128565                    <MetaPropKind as FoldWithAstPath<V>>::fold_with_ast_path(
128566                        kind,
128567                        visitor,
128568                        &mut *__ast_path,
128569                    )
128570                };
128571                MetaPropExpr { span, kind }
128572            }
128573        }
128574    }
128575}
128576#[cfg(any(docsrs, feature = "path"))]
128577#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128578impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for MetaPropKind {
128579    #[doc = "Calls [FoldAstPath`::fold_meta_prop_kind`] with `self`."]
128580    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128581        <V as FoldAstPath>::fold_meta_prop_kind(visitor, self, __ast_path)
128582    }
128583
128584    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128585        match self {
128586            MetaPropKind::NewTarget => MetaPropKind::NewTarget,
128587            MetaPropKind::ImportMeta => MetaPropKind::ImportMeta,
128588        }
128589    }
128590}
128591#[cfg(any(docsrs, feature = "path"))]
128592#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128593impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for MethodKind {
128594    #[doc = "Calls [FoldAstPath`::fold_method_kind`] with `self`."]
128595    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128596        <V as FoldAstPath>::fold_method_kind(visitor, self, __ast_path)
128597    }
128598
128599    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128600        match self {
128601            MethodKind::Method => MethodKind::Method,
128602            MethodKind::Getter => MethodKind::Getter,
128603            MethodKind::Setter => MethodKind::Setter,
128604        }
128605    }
128606}
128607#[cfg(any(docsrs, feature = "path"))]
128608#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128609impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for MethodProp {
128610    #[doc = "Calls [FoldAstPath`::fold_method_prop`] with `self`."]
128611    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128612        <V as FoldAstPath>::fold_method_prop(visitor, self, __ast_path)
128613    }
128614
128615    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128616        match self {
128617            MethodProp { key, function } => {
128618                let key = {
128619                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MethodProp(
128620                        self::fields::MethodPropField::Key,
128621                    ));
128622                    <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
128623                        key,
128624                        visitor,
128625                        &mut *__ast_path,
128626                    )
128627                };
128628                let function = {
128629                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MethodProp(
128630                        self::fields::MethodPropField::Function,
128631                    ));
128632                    <Box<Function> as FoldWithAstPath<V>>::fold_with_ast_path(
128633                        function,
128634                        visitor,
128635                        &mut *__ast_path,
128636                    )
128637                };
128638                MethodProp { key, function }
128639            }
128640        }
128641    }
128642}
128643#[cfg(any(docsrs, feature = "path"))]
128644#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128645impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Module {
128646    #[doc = "Calls [FoldAstPath`::fold_module`] with `self`."]
128647    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128648        <V as FoldAstPath>::fold_module(visitor, self, __ast_path)
128649    }
128650
128651    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128652        match self {
128653            Module {
128654                span,
128655                body,
128656                shebang,
128657            } => {
128658                let span = {
128659                    let mut __ast_path = __ast_path
128660                        .with_guard(AstParentKind::Module(self::fields::ModuleField::Span));
128661                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128662                        span,
128663                        visitor,
128664                        &mut *__ast_path,
128665                    )
128666                };
128667                let body = {
128668                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Module(
128669                        self::fields::ModuleField::Body(usize::MAX),
128670                    ));
128671                    <Vec<ModuleItem> as FoldWithAstPath<V>>::fold_with_ast_path(
128672                        body,
128673                        visitor,
128674                        &mut *__ast_path,
128675                    )
128676                };
128677                let shebang = {
128678                    let mut __ast_path = __ast_path
128679                        .with_guard(AstParentKind::Module(self::fields::ModuleField::Shebang));
128680                    <Option<swc_atoms::Atom> as FoldWithAstPath<V>>::fold_with_ast_path(
128681                        shebang,
128682                        visitor,
128683                        &mut *__ast_path,
128684                    )
128685                };
128686                Module {
128687                    span,
128688                    body,
128689                    shebang,
128690                }
128691            }
128692        }
128693    }
128694}
128695#[cfg(any(docsrs, feature = "path"))]
128696#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128697impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ModuleDecl {
128698    #[doc = "Calls [FoldAstPath`::fold_module_decl`] with `self`."]
128699    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128700        <V as FoldAstPath>::fold_module_decl(visitor, self, __ast_path)
128701    }
128702
128703    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128704        match self {
128705            ModuleDecl::Import { 0: _field_0 } => {
128706                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
128707                    self::fields::ModuleDeclField::Import,
128708                ));
128709                let _field_0 = <ImportDecl as FoldWithAstPath<V>>::fold_with_ast_path(
128710                    _field_0,
128711                    visitor,
128712                    &mut *__ast_path,
128713                );
128714                ModuleDecl::Import { 0: _field_0 }
128715            }
128716            ModuleDecl::ExportDecl { 0: _field_0 } => {
128717                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
128718                    self::fields::ModuleDeclField::ExportDecl,
128719                ));
128720                let _field_0 = <ExportDecl as FoldWithAstPath<V>>::fold_with_ast_path(
128721                    _field_0,
128722                    visitor,
128723                    &mut *__ast_path,
128724                );
128725                ModuleDecl::ExportDecl { 0: _field_0 }
128726            }
128727            ModuleDecl::ExportNamed { 0: _field_0 } => {
128728                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
128729                    self::fields::ModuleDeclField::ExportNamed,
128730                ));
128731                let _field_0 = <NamedExport as FoldWithAstPath<V>>::fold_with_ast_path(
128732                    _field_0,
128733                    visitor,
128734                    &mut *__ast_path,
128735                );
128736                ModuleDecl::ExportNamed { 0: _field_0 }
128737            }
128738            ModuleDecl::ExportDefaultDecl { 0: _field_0 } => {
128739                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
128740                    self::fields::ModuleDeclField::ExportDefaultDecl,
128741                ));
128742                let _field_0 = <ExportDefaultDecl as FoldWithAstPath<V>>::fold_with_ast_path(
128743                    _field_0,
128744                    visitor,
128745                    &mut *__ast_path,
128746                );
128747                ModuleDecl::ExportDefaultDecl { 0: _field_0 }
128748            }
128749            ModuleDecl::ExportDefaultExpr { 0: _field_0 } => {
128750                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
128751                    self::fields::ModuleDeclField::ExportDefaultExpr,
128752                ));
128753                let _field_0 = <ExportDefaultExpr as FoldWithAstPath<V>>::fold_with_ast_path(
128754                    _field_0,
128755                    visitor,
128756                    &mut *__ast_path,
128757                );
128758                ModuleDecl::ExportDefaultExpr { 0: _field_0 }
128759            }
128760            ModuleDecl::ExportAll { 0: _field_0 } => {
128761                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
128762                    self::fields::ModuleDeclField::ExportAll,
128763                ));
128764                let _field_0 = <ExportAll as FoldWithAstPath<V>>::fold_with_ast_path(
128765                    _field_0,
128766                    visitor,
128767                    &mut *__ast_path,
128768                );
128769                ModuleDecl::ExportAll { 0: _field_0 }
128770            }
128771            ModuleDecl::TsImportEquals { 0: _field_0 } => {
128772                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
128773                    self::fields::ModuleDeclField::TsImportEquals,
128774                ));
128775                let _field_0 = <Box<TsImportEqualsDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
128776                    _field_0,
128777                    visitor,
128778                    &mut *__ast_path,
128779                );
128780                ModuleDecl::TsImportEquals { 0: _field_0 }
128781            }
128782            ModuleDecl::TsExportAssignment { 0: _field_0 } => {
128783                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
128784                    self::fields::ModuleDeclField::TsExportAssignment,
128785                ));
128786                let _field_0 = <TsExportAssignment as FoldWithAstPath<V>>::fold_with_ast_path(
128787                    _field_0,
128788                    visitor,
128789                    &mut *__ast_path,
128790                );
128791                ModuleDecl::TsExportAssignment { 0: _field_0 }
128792            }
128793            ModuleDecl::TsNamespaceExport { 0: _field_0 } => {
128794                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
128795                    self::fields::ModuleDeclField::TsNamespaceExport,
128796                ));
128797                let _field_0 = <TsNamespaceExportDecl as FoldWithAstPath<V>>::fold_with_ast_path(
128798                    _field_0,
128799                    visitor,
128800                    &mut *__ast_path,
128801                );
128802                ModuleDecl::TsNamespaceExport { 0: _field_0 }
128803            }
128804        }
128805    }
128806}
128807#[cfg(any(docsrs, feature = "path"))]
128808#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128809impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ModuleExportName {
128810    #[doc = "Calls [FoldAstPath`::fold_module_export_name`] with `self`."]
128811    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128812        <V as FoldAstPath>::fold_module_export_name(visitor, self, __ast_path)
128813    }
128814
128815    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128816        match self {
128817            ModuleExportName::Ident { 0: _field_0 } => {
128818                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleExportName(
128819                    self::fields::ModuleExportNameField::Ident,
128820                ));
128821                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
128822                    _field_0,
128823                    visitor,
128824                    &mut *__ast_path,
128825                );
128826                ModuleExportName::Ident { 0: _field_0 }
128827            }
128828            ModuleExportName::Str { 0: _field_0 } => {
128829                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleExportName(
128830                    self::fields::ModuleExportNameField::Str,
128831                ));
128832                let _field_0 = <Str as FoldWithAstPath<V>>::fold_with_ast_path(
128833                    _field_0,
128834                    visitor,
128835                    &mut *__ast_path,
128836                );
128837                ModuleExportName::Str { 0: _field_0 }
128838            }
128839        }
128840    }
128841}
128842#[cfg(any(docsrs, feature = "path"))]
128843#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128844impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ModuleItem {
128845    #[doc = "Calls [FoldAstPath`::fold_module_item`] with `self`."]
128846    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128847        <V as FoldAstPath>::fold_module_item(visitor, self, __ast_path)
128848    }
128849
128850    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128851        match self {
128852            ModuleItem::ModuleDecl { 0: _field_0 } => {
128853                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleItem(
128854                    self::fields::ModuleItemField::ModuleDecl,
128855                ));
128856                let _field_0 = <ModuleDecl as FoldWithAstPath<V>>::fold_with_ast_path(
128857                    _field_0,
128858                    visitor,
128859                    &mut *__ast_path,
128860                );
128861                ModuleItem::ModuleDecl { 0: _field_0 }
128862            }
128863            ModuleItem::Stmt { 0: _field_0 } => {
128864                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleItem(
128865                    self::fields::ModuleItemField::Stmt,
128866                ));
128867                let _field_0 = <Stmt as FoldWithAstPath<V>>::fold_with_ast_path(
128868                    _field_0,
128869                    visitor,
128870                    &mut *__ast_path,
128871                );
128872                ModuleItem::Stmt { 0: _field_0 }
128873            }
128874        }
128875    }
128876}
128877#[cfg(any(docsrs, feature = "path"))]
128878#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128879impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for NamedExport {
128880    #[doc = "Calls [FoldAstPath`::fold_named_export`] with `self`."]
128881    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128882        <V as FoldAstPath>::fold_named_export(visitor, self, __ast_path)
128883    }
128884
128885    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128886        match self {
128887            NamedExport {
128888                span,
128889                specifiers,
128890                src,
128891                type_only,
128892                with,
128893            } => {
128894                let span = {
128895                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NamedExport(
128896                        self::fields::NamedExportField::Span,
128897                    ));
128898                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128899                        span,
128900                        visitor,
128901                        &mut *__ast_path,
128902                    )
128903                };
128904                let specifiers = {
128905                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NamedExport(
128906                        self::fields::NamedExportField::Specifiers(usize::MAX),
128907                    ));
128908                    <Vec<ExportSpecifier> as FoldWithAstPath<V>>::fold_with_ast_path(
128909                        specifiers,
128910                        visitor,
128911                        &mut *__ast_path,
128912                    )
128913                };
128914                let src = {
128915                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NamedExport(
128916                        self::fields::NamedExportField::Src,
128917                    ));
128918                    <Option<Box<Str>> as FoldWithAstPath<V>>::fold_with_ast_path(
128919                        src,
128920                        visitor,
128921                        &mut *__ast_path,
128922                    )
128923                };
128924                let with = {
128925                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NamedExport(
128926                        self::fields::NamedExportField::With,
128927                    ));
128928                    <Option<Box<ObjectLit>> as FoldWithAstPath<V>>::fold_with_ast_path(
128929                        with,
128930                        visitor,
128931                        &mut *__ast_path,
128932                    )
128933                };
128934                NamedExport {
128935                    span,
128936                    specifiers,
128937                    src,
128938                    type_only,
128939                    with,
128940                }
128941            }
128942        }
128943    }
128944}
128945#[cfg(any(docsrs, feature = "path"))]
128946#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128947impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for NewExpr {
128948    #[doc = "Calls [FoldAstPath`::fold_new_expr`] with `self`."]
128949    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128950        <V as FoldAstPath>::fold_new_expr(visitor, self, __ast_path)
128951    }
128952
128953    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128954        match self {
128955            NewExpr {
128956                span,
128957                ctxt,
128958                callee,
128959                args,
128960                type_args,
128961            } => {
128962                let span = {
128963                    let mut __ast_path = __ast_path
128964                        .with_guard(AstParentKind::NewExpr(self::fields::NewExprField::Span));
128965                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128966                        span,
128967                        visitor,
128968                        &mut *__ast_path,
128969                    )
128970                };
128971                let ctxt = {
128972                    let mut __ast_path = __ast_path
128973                        .with_guard(AstParentKind::NewExpr(self::fields::NewExprField::Ctxt));
128974                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
128975                        ctxt,
128976                        visitor,
128977                        &mut *__ast_path,
128978                    )
128979                };
128980                let callee = {
128981                    let mut __ast_path = __ast_path
128982                        .with_guard(AstParentKind::NewExpr(self::fields::NewExprField::Callee));
128983                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
128984                        callee,
128985                        visitor,
128986                        &mut *__ast_path,
128987                    )
128988                };
128989                let args = {
128990                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NewExpr(
128991                        self::fields::NewExprField::Args(usize::MAX),
128992                    ));
128993                    <Option<Vec<ExprOrSpread>> as FoldWithAstPath<V>>::fold_with_ast_path(
128994                        args,
128995                        visitor,
128996                        &mut *__ast_path,
128997                    )
128998                };
128999                let type_args = {
129000                    let mut __ast_path = __ast_path
129001                        .with_guard(AstParentKind::NewExpr(self::fields::NewExprField::TypeArgs));
129002                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_args , visitor , & mut * __ast_path)
129003                };
129004                NewExpr {
129005                    span,
129006                    ctxt,
129007                    callee,
129008                    args,
129009                    type_args,
129010                }
129011            }
129012        }
129013    }
129014}
129015#[cfg(any(docsrs, feature = "path"))]
129016#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129017impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Null {
129018    #[doc = "Calls [FoldAstPath`::fold_null`] with `self`."]
129019    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129020        <V as FoldAstPath>::fold_null(visitor, self, __ast_path)
129021    }
129022
129023    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129024        match self {
129025            Null { span } => {
129026                let span = {
129027                    let mut __ast_path =
129028                        __ast_path.with_guard(AstParentKind::Null(self::fields::NullField::Span));
129029                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129030                        span,
129031                        visitor,
129032                        &mut *__ast_path,
129033                    )
129034                };
129035                Null { span }
129036            }
129037        }
129038    }
129039}
129040#[cfg(any(docsrs, feature = "path"))]
129041#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129042impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Number {
129043    #[doc = "Calls [FoldAstPath`::fold_number`] with `self`."]
129044    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129045        <V as FoldAstPath>::fold_number(visitor, self, __ast_path)
129046    }
129047
129048    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129049        match self {
129050            Number { span, value, raw } => {
129051                let span = {
129052                    let mut __ast_path = __ast_path
129053                        .with_guard(AstParentKind::Number(self::fields::NumberField::Span));
129054                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129055                        span,
129056                        visitor,
129057                        &mut *__ast_path,
129058                    )
129059                };
129060                let raw = {
129061                    let mut __ast_path = __ast_path
129062                        .with_guard(AstParentKind::Number(self::fields::NumberField::Raw));
129063                    <Option<swc_atoms::Atom> as FoldWithAstPath<V>>::fold_with_ast_path(
129064                        raw,
129065                        visitor,
129066                        &mut *__ast_path,
129067                    )
129068                };
129069                Number { span, value, raw }
129070            }
129071        }
129072    }
129073}
129074#[cfg(any(docsrs, feature = "path"))]
129075#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129076impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ObjectLit {
129077    #[doc = "Calls [FoldAstPath`::fold_object_lit`] with `self`."]
129078    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129079        <V as FoldAstPath>::fold_object_lit(visitor, self, __ast_path)
129080    }
129081
129082    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129083        match self {
129084            ObjectLit { span, props } => {
129085                let span = {
129086                    let mut __ast_path = __ast_path
129087                        .with_guard(AstParentKind::ObjectLit(self::fields::ObjectLitField::Span));
129088                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129089                        span,
129090                        visitor,
129091                        &mut *__ast_path,
129092                    )
129093                };
129094                let props = {
129095                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectLit(
129096                        self::fields::ObjectLitField::Props(usize::MAX),
129097                    ));
129098                    <Vec<PropOrSpread> as FoldWithAstPath<V>>::fold_with_ast_path(
129099                        props,
129100                        visitor,
129101                        &mut *__ast_path,
129102                    )
129103                };
129104                ObjectLit { span, props }
129105            }
129106        }
129107    }
129108}
129109#[cfg(any(docsrs, feature = "path"))]
129110#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129111impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ObjectPat {
129112    #[doc = "Calls [FoldAstPath`::fold_object_pat`] with `self`."]
129113    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129114        <V as FoldAstPath>::fold_object_pat(visitor, self, __ast_path)
129115    }
129116
129117    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129118        match self {
129119            ObjectPat {
129120                span,
129121                props,
129122                optional,
129123                type_ann,
129124            } => {
129125                let span = {
129126                    let mut __ast_path = __ast_path
129127                        .with_guard(AstParentKind::ObjectPat(self::fields::ObjectPatField::Span));
129128                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129129                        span,
129130                        visitor,
129131                        &mut *__ast_path,
129132                    )
129133                };
129134                let props = {
129135                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPat(
129136                        self::fields::ObjectPatField::Props(usize::MAX),
129137                    ));
129138                    <Vec<ObjectPatProp> as FoldWithAstPath<V>>::fold_with_ast_path(
129139                        props,
129140                        visitor,
129141                        &mut *__ast_path,
129142                    )
129143                };
129144                let type_ann = {
129145                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPat(
129146                        self::fields::ObjectPatField::TypeAnn,
129147                    ));
129148                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
129149                        type_ann,
129150                        visitor,
129151                        &mut *__ast_path,
129152                    )
129153                };
129154                ObjectPat {
129155                    span,
129156                    props,
129157                    optional,
129158                    type_ann,
129159                }
129160            }
129161        }
129162    }
129163}
129164#[cfg(any(docsrs, feature = "path"))]
129165#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129166impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ObjectPatProp {
129167    #[doc = "Calls [FoldAstPath`::fold_object_pat_prop`] with `self`."]
129168    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129169        <V as FoldAstPath>::fold_object_pat_prop(visitor, self, __ast_path)
129170    }
129171
129172    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129173        match self {
129174            ObjectPatProp::KeyValue { 0: _field_0 } => {
129175                let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPatProp(
129176                    self::fields::ObjectPatPropField::KeyValue,
129177                ));
129178                let _field_0 = <KeyValuePatProp as FoldWithAstPath<V>>::fold_with_ast_path(
129179                    _field_0,
129180                    visitor,
129181                    &mut *__ast_path,
129182                );
129183                ObjectPatProp::KeyValue { 0: _field_0 }
129184            }
129185            ObjectPatProp::Assign { 0: _field_0 } => {
129186                let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPatProp(
129187                    self::fields::ObjectPatPropField::Assign,
129188                ));
129189                let _field_0 = <AssignPatProp as FoldWithAstPath<V>>::fold_with_ast_path(
129190                    _field_0,
129191                    visitor,
129192                    &mut *__ast_path,
129193                );
129194                ObjectPatProp::Assign { 0: _field_0 }
129195            }
129196            ObjectPatProp::Rest { 0: _field_0 } => {
129197                let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPatProp(
129198                    self::fields::ObjectPatPropField::Rest,
129199                ));
129200                let _field_0 = <RestPat as FoldWithAstPath<V>>::fold_with_ast_path(
129201                    _field_0,
129202                    visitor,
129203                    &mut *__ast_path,
129204                );
129205                ObjectPatProp::Rest { 0: _field_0 }
129206            }
129207        }
129208    }
129209}
129210#[cfg(any(docsrs, feature = "path"))]
129211#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129212impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for OptCall {
129213    #[doc = "Calls [FoldAstPath`::fold_opt_call`] with `self`."]
129214    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129215        <V as FoldAstPath>::fold_opt_call(visitor, self, __ast_path)
129216    }
129217
129218    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129219        match self {
129220            OptCall {
129221                span,
129222                ctxt,
129223                callee,
129224                args,
129225                type_args,
129226            } => {
129227                let span = {
129228                    let mut __ast_path = __ast_path
129229                        .with_guard(AstParentKind::OptCall(self::fields::OptCallField::Span));
129230                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129231                        span,
129232                        visitor,
129233                        &mut *__ast_path,
129234                    )
129235                };
129236                let ctxt = {
129237                    let mut __ast_path = __ast_path
129238                        .with_guard(AstParentKind::OptCall(self::fields::OptCallField::Ctxt));
129239                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
129240                        ctxt,
129241                        visitor,
129242                        &mut *__ast_path,
129243                    )
129244                };
129245                let callee = {
129246                    let mut __ast_path = __ast_path
129247                        .with_guard(AstParentKind::OptCall(self::fields::OptCallField::Callee));
129248                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
129249                        callee,
129250                        visitor,
129251                        &mut *__ast_path,
129252                    )
129253                };
129254                let args = {
129255                    let mut __ast_path = __ast_path.with_guard(AstParentKind::OptCall(
129256                        self::fields::OptCallField::Args(usize::MAX),
129257                    ));
129258                    <Vec<ExprOrSpread> as FoldWithAstPath<V>>::fold_with_ast_path(
129259                        args,
129260                        visitor,
129261                        &mut *__ast_path,
129262                    )
129263                };
129264                let type_args = {
129265                    let mut __ast_path = __ast_path
129266                        .with_guard(AstParentKind::OptCall(self::fields::OptCallField::TypeArgs));
129267                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_args , visitor , & mut * __ast_path)
129268                };
129269                OptCall {
129270                    span,
129271                    ctxt,
129272                    callee,
129273                    args,
129274                    type_args,
129275                }
129276            }
129277        }
129278    }
129279}
129280#[cfg(any(docsrs, feature = "path"))]
129281#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129282impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for OptChainBase {
129283    #[doc = "Calls [FoldAstPath`::fold_opt_chain_base`] with `self`."]
129284    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129285        <V as FoldAstPath>::fold_opt_chain_base(visitor, self, __ast_path)
129286    }
129287
129288    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129289        match self {
129290            OptChainBase::Member { 0: _field_0 } => {
129291                let mut __ast_path = __ast_path.with_guard(AstParentKind::OptChainBase(
129292                    self::fields::OptChainBaseField::Member,
129293                ));
129294                let _field_0 = <MemberExpr as FoldWithAstPath<V>>::fold_with_ast_path(
129295                    _field_0,
129296                    visitor,
129297                    &mut *__ast_path,
129298                );
129299                OptChainBase::Member { 0: _field_0 }
129300            }
129301            OptChainBase::Call { 0: _field_0 } => {
129302                let mut __ast_path = __ast_path.with_guard(AstParentKind::OptChainBase(
129303                    self::fields::OptChainBaseField::Call,
129304                ));
129305                let _field_0 = <OptCall as FoldWithAstPath<V>>::fold_with_ast_path(
129306                    _field_0,
129307                    visitor,
129308                    &mut *__ast_path,
129309                );
129310                OptChainBase::Call { 0: _field_0 }
129311            }
129312        }
129313    }
129314}
129315#[cfg(any(docsrs, feature = "path"))]
129316#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129317impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for OptChainExpr {
129318    #[doc = "Calls [FoldAstPath`::fold_opt_chain_expr`] with `self`."]
129319    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129320        <V as FoldAstPath>::fold_opt_chain_expr(visitor, self, __ast_path)
129321    }
129322
129323    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129324        match self {
129325            OptChainExpr {
129326                span,
129327                optional,
129328                base,
129329            } => {
129330                let span = {
129331                    let mut __ast_path = __ast_path.with_guard(AstParentKind::OptChainExpr(
129332                        self::fields::OptChainExprField::Span,
129333                    ));
129334                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129335                        span,
129336                        visitor,
129337                        &mut *__ast_path,
129338                    )
129339                };
129340                let base = {
129341                    let mut __ast_path = __ast_path.with_guard(AstParentKind::OptChainExpr(
129342                        self::fields::OptChainExprField::Base,
129343                    ));
129344                    <Box<OptChainBase> as FoldWithAstPath<V>>::fold_with_ast_path(
129345                        base,
129346                        visitor,
129347                        &mut *__ast_path,
129348                    )
129349                };
129350                OptChainExpr {
129351                    span,
129352                    optional,
129353                    base,
129354                }
129355            }
129356        }
129357    }
129358}
129359#[cfg(any(docsrs, feature = "path"))]
129360#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129361impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Param {
129362    #[doc = "Calls [FoldAstPath`::fold_param`] with `self`."]
129363    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129364        <V as FoldAstPath>::fold_param(visitor, self, __ast_path)
129365    }
129366
129367    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129368        match self {
129369            Param {
129370                span,
129371                decorators,
129372                pat,
129373            } => {
129374                let span = {
129375                    let mut __ast_path =
129376                        __ast_path.with_guard(AstParentKind::Param(self::fields::ParamField::Span));
129377                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129378                        span,
129379                        visitor,
129380                        &mut *__ast_path,
129381                    )
129382                };
129383                let decorators = {
129384                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Param(
129385                        self::fields::ParamField::Decorators(usize::MAX),
129386                    ));
129387                    <Vec<Decorator> as FoldWithAstPath<V>>::fold_with_ast_path(
129388                        decorators,
129389                        visitor,
129390                        &mut *__ast_path,
129391                    )
129392                };
129393                let pat = {
129394                    let mut __ast_path =
129395                        __ast_path.with_guard(AstParentKind::Param(self::fields::ParamField::Pat));
129396                    <Pat as FoldWithAstPath<V>>::fold_with_ast_path(pat, visitor, &mut *__ast_path)
129397                };
129398                Param {
129399                    span,
129400                    decorators,
129401                    pat,
129402                }
129403            }
129404        }
129405    }
129406}
129407#[cfg(any(docsrs, feature = "path"))]
129408#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129409impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ParamOrTsParamProp {
129410    #[doc = "Calls [FoldAstPath`::fold_param_or_ts_param_prop`] with `self`."]
129411    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129412        <V as FoldAstPath>::fold_param_or_ts_param_prop(visitor, self, __ast_path)
129413    }
129414
129415    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129416        match self {
129417            ParamOrTsParamProp::TsParamProp { 0: _field_0 } => {
129418                let mut __ast_path = __ast_path.with_guard(AstParentKind::ParamOrTsParamProp(
129419                    self::fields::ParamOrTsParamPropField::TsParamProp,
129420                ));
129421                let _field_0 = <TsParamProp as FoldWithAstPath<V>>::fold_with_ast_path(
129422                    _field_0,
129423                    visitor,
129424                    &mut *__ast_path,
129425                );
129426                ParamOrTsParamProp::TsParamProp { 0: _field_0 }
129427            }
129428            ParamOrTsParamProp::Param { 0: _field_0 } => {
129429                let mut __ast_path = __ast_path.with_guard(AstParentKind::ParamOrTsParamProp(
129430                    self::fields::ParamOrTsParamPropField::Param,
129431                ));
129432                let _field_0 = <Param as FoldWithAstPath<V>>::fold_with_ast_path(
129433                    _field_0,
129434                    visitor,
129435                    &mut *__ast_path,
129436                );
129437                ParamOrTsParamProp::Param { 0: _field_0 }
129438            }
129439        }
129440    }
129441}
129442#[cfg(any(docsrs, feature = "path"))]
129443#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129444impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ParenExpr {
129445    #[doc = "Calls [FoldAstPath`::fold_paren_expr`] with `self`."]
129446    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129447        <V as FoldAstPath>::fold_paren_expr(visitor, self, __ast_path)
129448    }
129449
129450    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129451        match self {
129452            ParenExpr { span, expr } => {
129453                let span = {
129454                    let mut __ast_path = __ast_path
129455                        .with_guard(AstParentKind::ParenExpr(self::fields::ParenExprField::Span));
129456                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129457                        span,
129458                        visitor,
129459                        &mut *__ast_path,
129460                    )
129461                };
129462                let expr = {
129463                    let mut __ast_path = __ast_path
129464                        .with_guard(AstParentKind::ParenExpr(self::fields::ParenExprField::Expr));
129465                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
129466                        expr,
129467                        visitor,
129468                        &mut *__ast_path,
129469                    )
129470                };
129471                ParenExpr { span, expr }
129472            }
129473        }
129474    }
129475}
129476#[cfg(any(docsrs, feature = "path"))]
129477#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129478impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Pat {
129479    #[doc = "Calls [FoldAstPath`::fold_pat`] with `self`."]
129480    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129481        <V as FoldAstPath>::fold_pat(visitor, self, __ast_path)
129482    }
129483
129484    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129485        match self {
129486            Pat::Ident { 0: _field_0 } => {
129487                let mut __ast_path =
129488                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Ident));
129489                let _field_0 = <BindingIdent as FoldWithAstPath<V>>::fold_with_ast_path(
129490                    _field_0,
129491                    visitor,
129492                    &mut *__ast_path,
129493                );
129494                Pat::Ident { 0: _field_0 }
129495            }
129496            Pat::Array { 0: _field_0 } => {
129497                let mut __ast_path =
129498                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Array));
129499                let _field_0 = <ArrayPat as FoldWithAstPath<V>>::fold_with_ast_path(
129500                    _field_0,
129501                    visitor,
129502                    &mut *__ast_path,
129503                );
129504                Pat::Array { 0: _field_0 }
129505            }
129506            Pat::Rest { 0: _field_0 } => {
129507                let mut __ast_path =
129508                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Rest));
129509                let _field_0 = <RestPat as FoldWithAstPath<V>>::fold_with_ast_path(
129510                    _field_0,
129511                    visitor,
129512                    &mut *__ast_path,
129513                );
129514                Pat::Rest { 0: _field_0 }
129515            }
129516            Pat::Object { 0: _field_0 } => {
129517                let mut __ast_path =
129518                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Object));
129519                let _field_0 = <ObjectPat as FoldWithAstPath<V>>::fold_with_ast_path(
129520                    _field_0,
129521                    visitor,
129522                    &mut *__ast_path,
129523                );
129524                Pat::Object { 0: _field_0 }
129525            }
129526            Pat::Assign { 0: _field_0 } => {
129527                let mut __ast_path =
129528                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Assign));
129529                let _field_0 = <AssignPat as FoldWithAstPath<V>>::fold_with_ast_path(
129530                    _field_0,
129531                    visitor,
129532                    &mut *__ast_path,
129533                );
129534                Pat::Assign { 0: _field_0 }
129535            }
129536            Pat::Invalid { 0: _field_0 } => {
129537                let mut __ast_path =
129538                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Invalid));
129539                let _field_0 = <Invalid as FoldWithAstPath<V>>::fold_with_ast_path(
129540                    _field_0,
129541                    visitor,
129542                    &mut *__ast_path,
129543                );
129544                Pat::Invalid { 0: _field_0 }
129545            }
129546            Pat::Expr { 0: _field_0 } => {
129547                let mut __ast_path =
129548                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Expr));
129549                let _field_0 = <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
129550                    _field_0,
129551                    visitor,
129552                    &mut *__ast_path,
129553                );
129554                Pat::Expr { 0: _field_0 }
129555            }
129556        }
129557    }
129558}
129559#[cfg(any(docsrs, feature = "path"))]
129560#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129561impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for PrivateMethod {
129562    #[doc = "Calls [FoldAstPath`::fold_private_method`] with `self`."]
129563    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129564        <V as FoldAstPath>::fold_private_method(visitor, self, __ast_path)
129565    }
129566
129567    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129568        match self {
129569            PrivateMethod {
129570                span,
129571                key,
129572                function,
129573                kind,
129574                is_static,
129575                accessibility,
129576                is_abstract,
129577                is_optional,
129578                is_override,
129579            } => {
129580                let span = {
129581                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
129582                        self::fields::PrivateMethodField::Span,
129583                    ));
129584                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129585                        span,
129586                        visitor,
129587                        &mut *__ast_path,
129588                    )
129589                };
129590                let key = {
129591                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
129592                        self::fields::PrivateMethodField::Key,
129593                    ));
129594                    <PrivateName as FoldWithAstPath<V>>::fold_with_ast_path(
129595                        key,
129596                        visitor,
129597                        &mut *__ast_path,
129598                    )
129599                };
129600                let function = {
129601                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
129602                        self::fields::PrivateMethodField::Function,
129603                    ));
129604                    <Box<Function> as FoldWithAstPath<V>>::fold_with_ast_path(
129605                        function,
129606                        visitor,
129607                        &mut *__ast_path,
129608                    )
129609                };
129610                let kind = {
129611                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
129612                        self::fields::PrivateMethodField::Kind,
129613                    ));
129614                    <MethodKind as FoldWithAstPath<V>>::fold_with_ast_path(
129615                        kind,
129616                        visitor,
129617                        &mut *__ast_path,
129618                    )
129619                };
129620                let accessibility = {
129621                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
129622                        self::fields::PrivateMethodField::Accessibility,
129623                    ));
129624                    <Option<Accessibility> as FoldWithAstPath<V>>::fold_with_ast_path(
129625                        accessibility,
129626                        visitor,
129627                        &mut *__ast_path,
129628                    )
129629                };
129630                PrivateMethod {
129631                    span,
129632                    key,
129633                    function,
129634                    kind,
129635                    is_static,
129636                    accessibility,
129637                    is_abstract,
129638                    is_optional,
129639                    is_override,
129640                }
129641            }
129642        }
129643    }
129644}
129645#[cfg(any(docsrs, feature = "path"))]
129646#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129647impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for PrivateName {
129648    #[doc = "Calls [FoldAstPath`::fold_private_name`] with `self`."]
129649    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129650        <V as FoldAstPath>::fold_private_name(visitor, self, __ast_path)
129651    }
129652
129653    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129654        match self {
129655            PrivateName { span, name } => {
129656                let span = {
129657                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateName(
129658                        self::fields::PrivateNameField::Span,
129659                    ));
129660                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129661                        span,
129662                        visitor,
129663                        &mut *__ast_path,
129664                    )
129665                };
129666                let name = {
129667                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateName(
129668                        self::fields::PrivateNameField::Name,
129669                    ));
129670                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
129671                        name,
129672                        visitor,
129673                        &mut *__ast_path,
129674                    )
129675                };
129676                PrivateName { span, name }
129677            }
129678        }
129679    }
129680}
129681#[cfg(any(docsrs, feature = "path"))]
129682#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129683impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for PrivateProp {
129684    #[doc = "Calls [FoldAstPath`::fold_private_prop`] with `self`."]
129685    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129686        <V as FoldAstPath>::fold_private_prop(visitor, self, __ast_path)
129687    }
129688
129689    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129690        match self {
129691            PrivateProp {
129692                span,
129693                ctxt,
129694                key,
129695                value,
129696                type_ann,
129697                is_static,
129698                decorators,
129699                accessibility,
129700                is_optional,
129701                is_override,
129702                readonly,
129703                definite,
129704            } => {
129705                let span = {
129706                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
129707                        self::fields::PrivatePropField::Span,
129708                    ));
129709                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129710                        span,
129711                        visitor,
129712                        &mut *__ast_path,
129713                    )
129714                };
129715                let ctxt = {
129716                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
129717                        self::fields::PrivatePropField::Ctxt,
129718                    ));
129719                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
129720                        ctxt,
129721                        visitor,
129722                        &mut *__ast_path,
129723                    )
129724                };
129725                let key = {
129726                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
129727                        self::fields::PrivatePropField::Key,
129728                    ));
129729                    <PrivateName as FoldWithAstPath<V>>::fold_with_ast_path(
129730                        key,
129731                        visitor,
129732                        &mut *__ast_path,
129733                    )
129734                };
129735                let value = {
129736                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
129737                        self::fields::PrivatePropField::Value,
129738                    ));
129739                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
129740                        value,
129741                        visitor,
129742                        &mut *__ast_path,
129743                    )
129744                };
129745                let type_ann = {
129746                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
129747                        self::fields::PrivatePropField::TypeAnn,
129748                    ));
129749                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
129750                        type_ann,
129751                        visitor,
129752                        &mut *__ast_path,
129753                    )
129754                };
129755                let decorators = {
129756                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
129757                        self::fields::PrivatePropField::Decorators(usize::MAX),
129758                    ));
129759                    <Vec<Decorator> as FoldWithAstPath<V>>::fold_with_ast_path(
129760                        decorators,
129761                        visitor,
129762                        &mut *__ast_path,
129763                    )
129764                };
129765                let accessibility = {
129766                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
129767                        self::fields::PrivatePropField::Accessibility,
129768                    ));
129769                    <Option<Accessibility> as FoldWithAstPath<V>>::fold_with_ast_path(
129770                        accessibility,
129771                        visitor,
129772                        &mut *__ast_path,
129773                    )
129774                };
129775                PrivateProp {
129776                    span,
129777                    ctxt,
129778                    key,
129779                    value,
129780                    type_ann,
129781                    is_static,
129782                    decorators,
129783                    accessibility,
129784                    is_optional,
129785                    is_override,
129786                    readonly,
129787                    definite,
129788                }
129789            }
129790        }
129791    }
129792}
129793#[cfg(any(docsrs, feature = "path"))]
129794#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129795impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Program {
129796    #[doc = "Calls [FoldAstPath`::fold_program`] with `self`."]
129797    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129798        <V as FoldAstPath>::fold_program(visitor, self, __ast_path)
129799    }
129800
129801    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129802        match self {
129803            Program::Module { 0: _field_0 } => {
129804                let mut __ast_path = __ast_path
129805                    .with_guard(AstParentKind::Program(self::fields::ProgramField::Module));
129806                let _field_0 = <Module as FoldWithAstPath<V>>::fold_with_ast_path(
129807                    _field_0,
129808                    visitor,
129809                    &mut *__ast_path,
129810                );
129811                Program::Module { 0: _field_0 }
129812            }
129813            Program::Script { 0: _field_0 } => {
129814                let mut __ast_path = __ast_path
129815                    .with_guard(AstParentKind::Program(self::fields::ProgramField::Script));
129816                let _field_0 = <Script as FoldWithAstPath<V>>::fold_with_ast_path(
129817                    _field_0,
129818                    visitor,
129819                    &mut *__ast_path,
129820                );
129821                Program::Script { 0: _field_0 }
129822            }
129823        }
129824    }
129825}
129826#[cfg(any(docsrs, feature = "path"))]
129827#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129828impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Prop {
129829    #[doc = "Calls [FoldAstPath`::fold_prop`] with `self`."]
129830    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129831        <V as FoldAstPath>::fold_prop(visitor, self, __ast_path)
129832    }
129833
129834    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129835        match self {
129836            Prop::Shorthand { 0: _field_0 } => {
129837                let mut __ast_path =
129838                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Shorthand));
129839                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
129840                    _field_0,
129841                    visitor,
129842                    &mut *__ast_path,
129843                );
129844                Prop::Shorthand { 0: _field_0 }
129845            }
129846            Prop::KeyValue { 0: _field_0 } => {
129847                let mut __ast_path =
129848                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::KeyValue));
129849                let _field_0 = <KeyValueProp as FoldWithAstPath<V>>::fold_with_ast_path(
129850                    _field_0,
129851                    visitor,
129852                    &mut *__ast_path,
129853                );
129854                Prop::KeyValue { 0: _field_0 }
129855            }
129856            Prop::Assign { 0: _field_0 } => {
129857                let mut __ast_path =
129858                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Assign));
129859                let _field_0 = <AssignProp as FoldWithAstPath<V>>::fold_with_ast_path(
129860                    _field_0,
129861                    visitor,
129862                    &mut *__ast_path,
129863                );
129864                Prop::Assign { 0: _field_0 }
129865            }
129866            Prop::Getter { 0: _field_0 } => {
129867                let mut __ast_path =
129868                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Getter));
129869                let _field_0 = <GetterProp as FoldWithAstPath<V>>::fold_with_ast_path(
129870                    _field_0,
129871                    visitor,
129872                    &mut *__ast_path,
129873                );
129874                Prop::Getter { 0: _field_0 }
129875            }
129876            Prop::Setter { 0: _field_0 } => {
129877                let mut __ast_path =
129878                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Setter));
129879                let _field_0 = <SetterProp as FoldWithAstPath<V>>::fold_with_ast_path(
129880                    _field_0,
129881                    visitor,
129882                    &mut *__ast_path,
129883                );
129884                Prop::Setter { 0: _field_0 }
129885            }
129886            Prop::Method { 0: _field_0 } => {
129887                let mut __ast_path =
129888                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Method));
129889                let _field_0 = <MethodProp as FoldWithAstPath<V>>::fold_with_ast_path(
129890                    _field_0,
129891                    visitor,
129892                    &mut *__ast_path,
129893                );
129894                Prop::Method { 0: _field_0 }
129895            }
129896        }
129897    }
129898}
129899#[cfg(any(docsrs, feature = "path"))]
129900#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129901impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for PropName {
129902    #[doc = "Calls [FoldAstPath`::fold_prop_name`] with `self`."]
129903    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129904        <V as FoldAstPath>::fold_prop_name(visitor, self, __ast_path)
129905    }
129906
129907    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129908        match self {
129909            PropName::Ident { 0: _field_0 } => {
129910                let mut __ast_path = __ast_path
129911                    .with_guard(AstParentKind::PropName(self::fields::PropNameField::Ident));
129912                let _field_0 = <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
129913                    _field_0,
129914                    visitor,
129915                    &mut *__ast_path,
129916                );
129917                PropName::Ident { 0: _field_0 }
129918            }
129919            PropName::Str { 0: _field_0 } => {
129920                let mut __ast_path = __ast_path
129921                    .with_guard(AstParentKind::PropName(self::fields::PropNameField::Str));
129922                let _field_0 = <Str as FoldWithAstPath<V>>::fold_with_ast_path(
129923                    _field_0,
129924                    visitor,
129925                    &mut *__ast_path,
129926                );
129927                PropName::Str { 0: _field_0 }
129928            }
129929            PropName::Num { 0: _field_0 } => {
129930                let mut __ast_path = __ast_path
129931                    .with_guard(AstParentKind::PropName(self::fields::PropNameField::Num));
129932                let _field_0 = <Number as FoldWithAstPath<V>>::fold_with_ast_path(
129933                    _field_0,
129934                    visitor,
129935                    &mut *__ast_path,
129936                );
129937                PropName::Num { 0: _field_0 }
129938            }
129939            PropName::Computed { 0: _field_0 } => {
129940                let mut __ast_path = __ast_path.with_guard(AstParentKind::PropName(
129941                    self::fields::PropNameField::Computed,
129942                ));
129943                let _field_0 = <ComputedPropName as FoldWithAstPath<V>>::fold_with_ast_path(
129944                    _field_0,
129945                    visitor,
129946                    &mut *__ast_path,
129947                );
129948                PropName::Computed { 0: _field_0 }
129949            }
129950            PropName::BigInt { 0: _field_0 } => {
129951                let mut __ast_path = __ast_path
129952                    .with_guard(AstParentKind::PropName(self::fields::PropNameField::BigInt));
129953                let _field_0 = <BigInt as FoldWithAstPath<V>>::fold_with_ast_path(
129954                    _field_0,
129955                    visitor,
129956                    &mut *__ast_path,
129957                );
129958                PropName::BigInt { 0: _field_0 }
129959            }
129960        }
129961    }
129962}
129963#[cfg(any(docsrs, feature = "path"))]
129964#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129965impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for PropOrSpread {
129966    #[doc = "Calls [FoldAstPath`::fold_prop_or_spread`] with `self`."]
129967    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129968        <V as FoldAstPath>::fold_prop_or_spread(visitor, self, __ast_path)
129969    }
129970
129971    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129972        match self {
129973            PropOrSpread::Spread { 0: _field_0 } => {
129974                let mut __ast_path = __ast_path.with_guard(AstParentKind::PropOrSpread(
129975                    self::fields::PropOrSpreadField::Spread,
129976                ));
129977                let _field_0 = <SpreadElement as FoldWithAstPath<V>>::fold_with_ast_path(
129978                    _field_0,
129979                    visitor,
129980                    &mut *__ast_path,
129981                );
129982                PropOrSpread::Spread { 0: _field_0 }
129983            }
129984            PropOrSpread::Prop { 0: _field_0 } => {
129985                let mut __ast_path = __ast_path.with_guard(AstParentKind::PropOrSpread(
129986                    self::fields::PropOrSpreadField::Prop,
129987                ));
129988                let _field_0 = <Box<Prop> as FoldWithAstPath<V>>::fold_with_ast_path(
129989                    _field_0,
129990                    visitor,
129991                    &mut *__ast_path,
129992                );
129993                PropOrSpread::Prop { 0: _field_0 }
129994            }
129995        }
129996    }
129997}
129998#[cfg(any(docsrs, feature = "path"))]
129999#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130000impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Regex {
130001    #[doc = "Calls [FoldAstPath`::fold_regex`] with `self`."]
130002    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130003        <V as FoldAstPath>::fold_regex(visitor, self, __ast_path)
130004    }
130005
130006    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130007        match self {
130008            Regex { span, exp, flags } => {
130009                let span = {
130010                    let mut __ast_path =
130011                        __ast_path.with_guard(AstParentKind::Regex(self::fields::RegexField::Span));
130012                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130013                        span,
130014                        visitor,
130015                        &mut *__ast_path,
130016                    )
130017                };
130018                let exp = {
130019                    let mut __ast_path =
130020                        __ast_path.with_guard(AstParentKind::Regex(self::fields::RegexField::Exp));
130021                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
130022                        exp,
130023                        visitor,
130024                        &mut *__ast_path,
130025                    )
130026                };
130027                let flags = {
130028                    let mut __ast_path = __ast_path
130029                        .with_guard(AstParentKind::Regex(self::fields::RegexField::Flags));
130030                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
130031                        flags,
130032                        visitor,
130033                        &mut *__ast_path,
130034                    )
130035                };
130036                Regex { span, exp, flags }
130037            }
130038        }
130039    }
130040}
130041#[cfg(any(docsrs, feature = "path"))]
130042#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130043impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for RestPat {
130044    #[doc = "Calls [FoldAstPath`::fold_rest_pat`] with `self`."]
130045    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130046        <V as FoldAstPath>::fold_rest_pat(visitor, self, __ast_path)
130047    }
130048
130049    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130050        match self {
130051            RestPat {
130052                span,
130053                dot3_token,
130054                arg,
130055                type_ann,
130056            } => {
130057                let span = {
130058                    let mut __ast_path = __ast_path
130059                        .with_guard(AstParentKind::RestPat(self::fields::RestPatField::Span));
130060                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130061                        span,
130062                        visitor,
130063                        &mut *__ast_path,
130064                    )
130065                };
130066                let dot3_token = {
130067                    let mut __ast_path = __ast_path.with_guard(AstParentKind::RestPat(
130068                        self::fields::RestPatField::Dot3Token,
130069                    ));
130070                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130071                        dot3_token,
130072                        visitor,
130073                        &mut *__ast_path,
130074                    )
130075                };
130076                let arg = {
130077                    let mut __ast_path = __ast_path
130078                        .with_guard(AstParentKind::RestPat(self::fields::RestPatField::Arg));
130079                    <Box<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
130080                        arg,
130081                        visitor,
130082                        &mut *__ast_path,
130083                    )
130084                };
130085                let type_ann = {
130086                    let mut __ast_path = __ast_path
130087                        .with_guard(AstParentKind::RestPat(self::fields::RestPatField::TypeAnn));
130088                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
130089                        type_ann,
130090                        visitor,
130091                        &mut *__ast_path,
130092                    )
130093                };
130094                RestPat {
130095                    span,
130096                    dot3_token,
130097                    arg,
130098                    type_ann,
130099                }
130100            }
130101        }
130102    }
130103}
130104#[cfg(any(docsrs, feature = "path"))]
130105#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130106impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ReturnStmt {
130107    #[doc = "Calls [FoldAstPath`::fold_return_stmt`] with `self`."]
130108    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130109        <V as FoldAstPath>::fold_return_stmt(visitor, self, __ast_path)
130110    }
130111
130112    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130113        match self {
130114            ReturnStmt { span, arg } => {
130115                let span = {
130116                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ReturnStmt(
130117                        self::fields::ReturnStmtField::Span,
130118                    ));
130119                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130120                        span,
130121                        visitor,
130122                        &mut *__ast_path,
130123                    )
130124                };
130125                let arg = {
130126                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ReturnStmt(
130127                        self::fields::ReturnStmtField::Arg,
130128                    ));
130129                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
130130                        arg,
130131                        visitor,
130132                        &mut *__ast_path,
130133                    )
130134                };
130135                ReturnStmt { span, arg }
130136            }
130137        }
130138    }
130139}
130140#[cfg(any(docsrs, feature = "path"))]
130141#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130142impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Script {
130143    #[doc = "Calls [FoldAstPath`::fold_script`] with `self`."]
130144    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130145        <V as FoldAstPath>::fold_script(visitor, self, __ast_path)
130146    }
130147
130148    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130149        match self {
130150            Script {
130151                span,
130152                body,
130153                shebang,
130154            } => {
130155                let span = {
130156                    let mut __ast_path = __ast_path
130157                        .with_guard(AstParentKind::Script(self::fields::ScriptField::Span));
130158                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130159                        span,
130160                        visitor,
130161                        &mut *__ast_path,
130162                    )
130163                };
130164                let body = {
130165                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Script(
130166                        self::fields::ScriptField::Body(usize::MAX),
130167                    ));
130168                    <Vec<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
130169                        body,
130170                        visitor,
130171                        &mut *__ast_path,
130172                    )
130173                };
130174                let shebang = {
130175                    let mut __ast_path = __ast_path
130176                        .with_guard(AstParentKind::Script(self::fields::ScriptField::Shebang));
130177                    <Option<swc_atoms::Atom> as FoldWithAstPath<V>>::fold_with_ast_path(
130178                        shebang,
130179                        visitor,
130180                        &mut *__ast_path,
130181                    )
130182                };
130183                Script {
130184                    span,
130185                    body,
130186                    shebang,
130187                }
130188            }
130189        }
130190    }
130191}
130192#[cfg(any(docsrs, feature = "path"))]
130193#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130194impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for SeqExpr {
130195    #[doc = "Calls [FoldAstPath`::fold_seq_expr`] with `self`."]
130196    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130197        <V as FoldAstPath>::fold_seq_expr(visitor, self, __ast_path)
130198    }
130199
130200    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130201        match self {
130202            SeqExpr { span, exprs } => {
130203                let span = {
130204                    let mut __ast_path = __ast_path
130205                        .with_guard(AstParentKind::SeqExpr(self::fields::SeqExprField::Span));
130206                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130207                        span,
130208                        visitor,
130209                        &mut *__ast_path,
130210                    )
130211                };
130212                let exprs = {
130213                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SeqExpr(
130214                        self::fields::SeqExprField::Exprs(usize::MAX),
130215                    ));
130216                    <Vec<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
130217                        exprs,
130218                        visitor,
130219                        &mut *__ast_path,
130220                    )
130221                };
130222                SeqExpr { span, exprs }
130223            }
130224        }
130225    }
130226}
130227#[cfg(any(docsrs, feature = "path"))]
130228#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130229impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for SetterProp {
130230    #[doc = "Calls [FoldAstPath`::fold_setter_prop`] with `self`."]
130231    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130232        <V as FoldAstPath>::fold_setter_prop(visitor, self, __ast_path)
130233    }
130234
130235    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130236        match self {
130237            SetterProp {
130238                span,
130239                key,
130240                this_param,
130241                param,
130242                body,
130243            } => {
130244                let span = {
130245                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
130246                        self::fields::SetterPropField::Span,
130247                    ));
130248                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130249                        span,
130250                        visitor,
130251                        &mut *__ast_path,
130252                    )
130253                };
130254                let key = {
130255                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
130256                        self::fields::SetterPropField::Key,
130257                    ));
130258                    <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
130259                        key,
130260                        visitor,
130261                        &mut *__ast_path,
130262                    )
130263                };
130264                let this_param = {
130265                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
130266                        self::fields::SetterPropField::ThisParam,
130267                    ));
130268                    <Option<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
130269                        this_param,
130270                        visitor,
130271                        &mut *__ast_path,
130272                    )
130273                };
130274                let param = {
130275                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
130276                        self::fields::SetterPropField::Param,
130277                    ));
130278                    <Box<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
130279                        param,
130280                        visitor,
130281                        &mut *__ast_path,
130282                    )
130283                };
130284                let body = {
130285                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
130286                        self::fields::SetterPropField::Body,
130287                    ));
130288                    <Option<BlockStmt> as FoldWithAstPath<V>>::fold_with_ast_path(
130289                        body,
130290                        visitor,
130291                        &mut *__ast_path,
130292                    )
130293                };
130294                SetterProp {
130295                    span,
130296                    key,
130297                    this_param,
130298                    param,
130299                    body,
130300                }
130301            }
130302        }
130303    }
130304}
130305#[cfg(any(docsrs, feature = "path"))]
130306#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130307impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for SimpleAssignTarget {
130308    #[doc = "Calls [FoldAstPath`::fold_simple_assign_target`] with `self`."]
130309    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130310        <V as FoldAstPath>::fold_simple_assign_target(visitor, self, __ast_path)
130311    }
130312
130313    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130314        match self {
130315            SimpleAssignTarget::Ident { 0: _field_0 } => {
130316                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
130317                    self::fields::SimpleAssignTargetField::Ident,
130318                ));
130319                let _field_0 = <BindingIdent as FoldWithAstPath<V>>::fold_with_ast_path(
130320                    _field_0,
130321                    visitor,
130322                    &mut *__ast_path,
130323                );
130324                SimpleAssignTarget::Ident { 0: _field_0 }
130325            }
130326            SimpleAssignTarget::Member { 0: _field_0 } => {
130327                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
130328                    self::fields::SimpleAssignTargetField::Member,
130329                ));
130330                let _field_0 = <MemberExpr as FoldWithAstPath<V>>::fold_with_ast_path(
130331                    _field_0,
130332                    visitor,
130333                    &mut *__ast_path,
130334                );
130335                SimpleAssignTarget::Member { 0: _field_0 }
130336            }
130337            SimpleAssignTarget::SuperProp { 0: _field_0 } => {
130338                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
130339                    self::fields::SimpleAssignTargetField::SuperProp,
130340                ));
130341                let _field_0 = <SuperPropExpr as FoldWithAstPath<V>>::fold_with_ast_path(
130342                    _field_0,
130343                    visitor,
130344                    &mut *__ast_path,
130345                );
130346                SimpleAssignTarget::SuperProp { 0: _field_0 }
130347            }
130348            SimpleAssignTarget::Paren { 0: _field_0 } => {
130349                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
130350                    self::fields::SimpleAssignTargetField::Paren,
130351                ));
130352                let _field_0 = <ParenExpr as FoldWithAstPath<V>>::fold_with_ast_path(
130353                    _field_0,
130354                    visitor,
130355                    &mut *__ast_path,
130356                );
130357                SimpleAssignTarget::Paren { 0: _field_0 }
130358            }
130359            SimpleAssignTarget::OptChain { 0: _field_0 } => {
130360                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
130361                    self::fields::SimpleAssignTargetField::OptChain,
130362                ));
130363                let _field_0 = <OptChainExpr as FoldWithAstPath<V>>::fold_with_ast_path(
130364                    _field_0,
130365                    visitor,
130366                    &mut *__ast_path,
130367                );
130368                SimpleAssignTarget::OptChain { 0: _field_0 }
130369            }
130370            SimpleAssignTarget::TsAs { 0: _field_0 } => {
130371                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
130372                    self::fields::SimpleAssignTargetField::TsAs,
130373                ));
130374                let _field_0 = <TsAsExpr as FoldWithAstPath<V>>::fold_with_ast_path(
130375                    _field_0,
130376                    visitor,
130377                    &mut *__ast_path,
130378                );
130379                SimpleAssignTarget::TsAs { 0: _field_0 }
130380            }
130381            SimpleAssignTarget::TsSatisfies { 0: _field_0 } => {
130382                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
130383                    self::fields::SimpleAssignTargetField::TsSatisfies,
130384                ));
130385                let _field_0 = <TsSatisfiesExpr as FoldWithAstPath<V>>::fold_with_ast_path(
130386                    _field_0,
130387                    visitor,
130388                    &mut *__ast_path,
130389                );
130390                SimpleAssignTarget::TsSatisfies { 0: _field_0 }
130391            }
130392            SimpleAssignTarget::TsNonNull { 0: _field_0 } => {
130393                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
130394                    self::fields::SimpleAssignTargetField::TsNonNull,
130395                ));
130396                let _field_0 = <TsNonNullExpr as FoldWithAstPath<V>>::fold_with_ast_path(
130397                    _field_0,
130398                    visitor,
130399                    &mut *__ast_path,
130400                );
130401                SimpleAssignTarget::TsNonNull { 0: _field_0 }
130402            }
130403            SimpleAssignTarget::TsTypeAssertion { 0: _field_0 } => {
130404                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
130405                    self::fields::SimpleAssignTargetField::TsTypeAssertion,
130406                ));
130407                let _field_0 = <TsTypeAssertion as FoldWithAstPath<V>>::fold_with_ast_path(
130408                    _field_0,
130409                    visitor,
130410                    &mut *__ast_path,
130411                );
130412                SimpleAssignTarget::TsTypeAssertion { 0: _field_0 }
130413            }
130414            SimpleAssignTarget::TsInstantiation { 0: _field_0 } => {
130415                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
130416                    self::fields::SimpleAssignTargetField::TsInstantiation,
130417                ));
130418                let _field_0 = <TsInstantiation as FoldWithAstPath<V>>::fold_with_ast_path(
130419                    _field_0,
130420                    visitor,
130421                    &mut *__ast_path,
130422                );
130423                SimpleAssignTarget::TsInstantiation { 0: _field_0 }
130424            }
130425            SimpleAssignTarget::Invalid { 0: _field_0 } => {
130426                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
130427                    self::fields::SimpleAssignTargetField::Invalid,
130428                ));
130429                let _field_0 = <Invalid as FoldWithAstPath<V>>::fold_with_ast_path(
130430                    _field_0,
130431                    visitor,
130432                    &mut *__ast_path,
130433                );
130434                SimpleAssignTarget::Invalid { 0: _field_0 }
130435            }
130436        }
130437    }
130438}
130439#[cfg(any(docsrs, feature = "path"))]
130440#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130441impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for SpreadElement {
130442    #[doc = "Calls [FoldAstPath`::fold_spread_element`] with `self`."]
130443    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130444        <V as FoldAstPath>::fold_spread_element(visitor, self, __ast_path)
130445    }
130446
130447    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130448        match self {
130449            SpreadElement { dot3_token, expr } => {
130450                let dot3_token = {
130451                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SpreadElement(
130452                        self::fields::SpreadElementField::Dot3Token,
130453                    ));
130454                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130455                        dot3_token,
130456                        visitor,
130457                        &mut *__ast_path,
130458                    )
130459                };
130460                let expr = {
130461                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SpreadElement(
130462                        self::fields::SpreadElementField::Expr,
130463                    ));
130464                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
130465                        expr,
130466                        visitor,
130467                        &mut *__ast_path,
130468                    )
130469                };
130470                SpreadElement { dot3_token, expr }
130471            }
130472        }
130473    }
130474}
130475#[cfg(any(docsrs, feature = "path"))]
130476#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130477impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for StaticBlock {
130478    #[doc = "Calls [FoldAstPath`::fold_static_block`] with `self`."]
130479    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130480        <V as FoldAstPath>::fold_static_block(visitor, self, __ast_path)
130481    }
130482
130483    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130484        match self {
130485            StaticBlock { span, body } => {
130486                let span = {
130487                    let mut __ast_path = __ast_path.with_guard(AstParentKind::StaticBlock(
130488                        self::fields::StaticBlockField::Span,
130489                    ));
130490                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130491                        span,
130492                        visitor,
130493                        &mut *__ast_path,
130494                    )
130495                };
130496                let body = {
130497                    let mut __ast_path = __ast_path.with_guard(AstParentKind::StaticBlock(
130498                        self::fields::StaticBlockField::Body,
130499                    ));
130500                    <BlockStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130501                        body,
130502                        visitor,
130503                        &mut *__ast_path,
130504                    )
130505                };
130506                StaticBlock { span, body }
130507            }
130508        }
130509    }
130510}
130511#[cfg(any(docsrs, feature = "path"))]
130512#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130513impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Stmt {
130514    #[doc = "Calls [FoldAstPath`::fold_stmt`] with `self`."]
130515    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130516        <V as FoldAstPath>::fold_stmt(visitor, self, __ast_path)
130517    }
130518
130519    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130520        match self {
130521            Stmt::Block { 0: _field_0 } => {
130522                let mut __ast_path =
130523                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Block));
130524                let _field_0 = <BlockStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130525                    _field_0,
130526                    visitor,
130527                    &mut *__ast_path,
130528                );
130529                Stmt::Block { 0: _field_0 }
130530            }
130531            Stmt::Empty { 0: _field_0 } => {
130532                let mut __ast_path =
130533                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Empty));
130534                let _field_0 = <EmptyStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130535                    _field_0,
130536                    visitor,
130537                    &mut *__ast_path,
130538                );
130539                Stmt::Empty { 0: _field_0 }
130540            }
130541            Stmt::Debugger { 0: _field_0 } => {
130542                let mut __ast_path =
130543                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Debugger));
130544                let _field_0 = <DebuggerStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130545                    _field_0,
130546                    visitor,
130547                    &mut *__ast_path,
130548                );
130549                Stmt::Debugger { 0: _field_0 }
130550            }
130551            Stmt::With { 0: _field_0 } => {
130552                let mut __ast_path =
130553                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::With));
130554                let _field_0 = <WithStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130555                    _field_0,
130556                    visitor,
130557                    &mut *__ast_path,
130558                );
130559                Stmt::With { 0: _field_0 }
130560            }
130561            Stmt::Return { 0: _field_0 } => {
130562                let mut __ast_path =
130563                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Return));
130564                let _field_0 = <ReturnStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130565                    _field_0,
130566                    visitor,
130567                    &mut *__ast_path,
130568                );
130569                Stmt::Return { 0: _field_0 }
130570            }
130571            Stmt::Labeled { 0: _field_0 } => {
130572                let mut __ast_path =
130573                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Labeled));
130574                let _field_0 = <LabeledStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130575                    _field_0,
130576                    visitor,
130577                    &mut *__ast_path,
130578                );
130579                Stmt::Labeled { 0: _field_0 }
130580            }
130581            Stmt::Break { 0: _field_0 } => {
130582                let mut __ast_path =
130583                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Break));
130584                let _field_0 = <BreakStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130585                    _field_0,
130586                    visitor,
130587                    &mut *__ast_path,
130588                );
130589                Stmt::Break { 0: _field_0 }
130590            }
130591            Stmt::Continue { 0: _field_0 } => {
130592                let mut __ast_path =
130593                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Continue));
130594                let _field_0 = <ContinueStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130595                    _field_0,
130596                    visitor,
130597                    &mut *__ast_path,
130598                );
130599                Stmt::Continue { 0: _field_0 }
130600            }
130601            Stmt::If { 0: _field_0 } => {
130602                let mut __ast_path =
130603                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::If));
130604                let _field_0 = <IfStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130605                    _field_0,
130606                    visitor,
130607                    &mut *__ast_path,
130608                );
130609                Stmt::If { 0: _field_0 }
130610            }
130611            Stmt::Switch { 0: _field_0 } => {
130612                let mut __ast_path =
130613                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Switch));
130614                let _field_0 = <SwitchStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130615                    _field_0,
130616                    visitor,
130617                    &mut *__ast_path,
130618                );
130619                Stmt::Switch { 0: _field_0 }
130620            }
130621            Stmt::Throw { 0: _field_0 } => {
130622                let mut __ast_path =
130623                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Throw));
130624                let _field_0 = <ThrowStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130625                    _field_0,
130626                    visitor,
130627                    &mut *__ast_path,
130628                );
130629                Stmt::Throw { 0: _field_0 }
130630            }
130631            Stmt::Try { 0: _field_0 } => {
130632                let mut __ast_path =
130633                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Try));
130634                let _field_0 = <Box<TryStmt> as FoldWithAstPath<V>>::fold_with_ast_path(
130635                    _field_0,
130636                    visitor,
130637                    &mut *__ast_path,
130638                );
130639                Stmt::Try { 0: _field_0 }
130640            }
130641            Stmt::While { 0: _field_0 } => {
130642                let mut __ast_path =
130643                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::While));
130644                let _field_0 = <WhileStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130645                    _field_0,
130646                    visitor,
130647                    &mut *__ast_path,
130648                );
130649                Stmt::While { 0: _field_0 }
130650            }
130651            Stmt::DoWhile { 0: _field_0 } => {
130652                let mut __ast_path =
130653                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::DoWhile));
130654                let _field_0 = <DoWhileStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130655                    _field_0,
130656                    visitor,
130657                    &mut *__ast_path,
130658                );
130659                Stmt::DoWhile { 0: _field_0 }
130660            }
130661            Stmt::For { 0: _field_0 } => {
130662                let mut __ast_path =
130663                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::For));
130664                let _field_0 = <ForStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130665                    _field_0,
130666                    visitor,
130667                    &mut *__ast_path,
130668                );
130669                Stmt::For { 0: _field_0 }
130670            }
130671            Stmt::ForIn { 0: _field_0 } => {
130672                let mut __ast_path =
130673                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::ForIn));
130674                let _field_0 = <ForInStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130675                    _field_0,
130676                    visitor,
130677                    &mut *__ast_path,
130678                );
130679                Stmt::ForIn { 0: _field_0 }
130680            }
130681            Stmt::ForOf { 0: _field_0 } => {
130682                let mut __ast_path =
130683                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::ForOf));
130684                let _field_0 = <ForOfStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130685                    _field_0,
130686                    visitor,
130687                    &mut *__ast_path,
130688                );
130689                Stmt::ForOf { 0: _field_0 }
130690            }
130691            Stmt::Decl { 0: _field_0 } => {
130692                let mut __ast_path =
130693                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Decl));
130694                let _field_0 = <Decl as FoldWithAstPath<V>>::fold_with_ast_path(
130695                    _field_0,
130696                    visitor,
130697                    &mut *__ast_path,
130698                );
130699                Stmt::Decl { 0: _field_0 }
130700            }
130701            Stmt::Expr { 0: _field_0 } => {
130702                let mut __ast_path =
130703                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Expr));
130704                let _field_0 = <ExprStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130705                    _field_0,
130706                    visitor,
130707                    &mut *__ast_path,
130708                );
130709                Stmt::Expr { 0: _field_0 }
130710            }
130711        }
130712    }
130713}
130714#[cfg(any(docsrs, feature = "path"))]
130715#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130716impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Str {
130717    #[doc = "Calls [FoldAstPath`::fold_str`] with `self`."]
130718    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130719        <V as FoldAstPath>::fold_str(visitor, self, __ast_path)
130720    }
130721
130722    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130723        match self {
130724            Str { span, value, raw } => {
130725                let span = {
130726                    let mut __ast_path =
130727                        __ast_path.with_guard(AstParentKind::Str(self::fields::StrField::Span));
130728                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130729                        span,
130730                        visitor,
130731                        &mut *__ast_path,
130732                    )
130733                };
130734                let value = {
130735                    let mut __ast_path =
130736                        __ast_path.with_guard(AstParentKind::Str(self::fields::StrField::Value));
130737                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
130738                        value,
130739                        visitor,
130740                        &mut *__ast_path,
130741                    )
130742                };
130743                let raw = {
130744                    let mut __ast_path =
130745                        __ast_path.with_guard(AstParentKind::Str(self::fields::StrField::Raw));
130746                    <Option<swc_atoms::Atom> as FoldWithAstPath<V>>::fold_with_ast_path(
130747                        raw,
130748                        visitor,
130749                        &mut *__ast_path,
130750                    )
130751                };
130752                Str { span, value, raw }
130753            }
130754        }
130755    }
130756}
130757#[cfg(any(docsrs, feature = "path"))]
130758#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130759impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Super {
130760    #[doc = "Calls [FoldAstPath`::fold_super`] with `self`."]
130761    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130762        <V as FoldAstPath>::fold_super(visitor, self, __ast_path)
130763    }
130764
130765    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130766        match self {
130767            Super { span } => {
130768                let span = {
130769                    let mut __ast_path =
130770                        __ast_path.with_guard(AstParentKind::Super(self::fields::SuperField::Span));
130771                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130772                        span,
130773                        visitor,
130774                        &mut *__ast_path,
130775                    )
130776                };
130777                Super { span }
130778            }
130779        }
130780    }
130781}
130782#[cfg(any(docsrs, feature = "path"))]
130783#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130784impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for SuperProp {
130785    #[doc = "Calls [FoldAstPath`::fold_super_prop`] with `self`."]
130786    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130787        <V as FoldAstPath>::fold_super_prop(visitor, self, __ast_path)
130788    }
130789
130790    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130791        match self {
130792            SuperProp::Ident { 0: _field_0 } => {
130793                let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperProp(
130794                    self::fields::SuperPropField::Ident,
130795                ));
130796                let _field_0 = <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
130797                    _field_0,
130798                    visitor,
130799                    &mut *__ast_path,
130800                );
130801                SuperProp::Ident { 0: _field_0 }
130802            }
130803            SuperProp::Computed { 0: _field_0 } => {
130804                let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperProp(
130805                    self::fields::SuperPropField::Computed,
130806                ));
130807                let _field_0 = <ComputedPropName as FoldWithAstPath<V>>::fold_with_ast_path(
130808                    _field_0,
130809                    visitor,
130810                    &mut *__ast_path,
130811                );
130812                SuperProp::Computed { 0: _field_0 }
130813            }
130814        }
130815    }
130816}
130817#[cfg(any(docsrs, feature = "path"))]
130818#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130819impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for SuperPropExpr {
130820    #[doc = "Calls [FoldAstPath`::fold_super_prop_expr`] with `self`."]
130821    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130822        <V as FoldAstPath>::fold_super_prop_expr(visitor, self, __ast_path)
130823    }
130824
130825    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130826        match self {
130827            SuperPropExpr { span, obj, prop } => {
130828                let span = {
130829                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperPropExpr(
130830                        self::fields::SuperPropExprField::Span,
130831                    ));
130832                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130833                        span,
130834                        visitor,
130835                        &mut *__ast_path,
130836                    )
130837                };
130838                let obj = {
130839                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperPropExpr(
130840                        self::fields::SuperPropExprField::Obj,
130841                    ));
130842                    <Super as FoldWithAstPath<V>>::fold_with_ast_path(
130843                        obj,
130844                        visitor,
130845                        &mut *__ast_path,
130846                    )
130847                };
130848                let prop = {
130849                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperPropExpr(
130850                        self::fields::SuperPropExprField::Prop,
130851                    ));
130852                    <SuperProp as FoldWithAstPath<V>>::fold_with_ast_path(
130853                        prop,
130854                        visitor,
130855                        &mut *__ast_path,
130856                    )
130857                };
130858                SuperPropExpr { span, obj, prop }
130859            }
130860        }
130861    }
130862}
130863#[cfg(any(docsrs, feature = "path"))]
130864#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130865impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for SwitchCase {
130866    #[doc = "Calls [FoldAstPath`::fold_switch_case`] with `self`."]
130867    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130868        <V as FoldAstPath>::fold_switch_case(visitor, self, __ast_path)
130869    }
130870
130871    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130872        match self {
130873            SwitchCase { span, test, cons } => {
130874                let span = {
130875                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchCase(
130876                        self::fields::SwitchCaseField::Span,
130877                    ));
130878                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130879                        span,
130880                        visitor,
130881                        &mut *__ast_path,
130882                    )
130883                };
130884                let test = {
130885                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchCase(
130886                        self::fields::SwitchCaseField::Test,
130887                    ));
130888                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
130889                        test,
130890                        visitor,
130891                        &mut *__ast_path,
130892                    )
130893                };
130894                let cons = {
130895                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchCase(
130896                        self::fields::SwitchCaseField::Cons(usize::MAX),
130897                    ));
130898                    <Vec<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
130899                        cons,
130900                        visitor,
130901                        &mut *__ast_path,
130902                    )
130903                };
130904                SwitchCase { span, test, cons }
130905            }
130906        }
130907    }
130908}
130909#[cfg(any(docsrs, feature = "path"))]
130910#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130911impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for SwitchStmt {
130912    #[doc = "Calls [FoldAstPath`::fold_switch_stmt`] with `self`."]
130913    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130914        <V as FoldAstPath>::fold_switch_stmt(visitor, self, __ast_path)
130915    }
130916
130917    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130918        match self {
130919            SwitchStmt {
130920                span,
130921                discriminant,
130922                cases,
130923            } => {
130924                let span = {
130925                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchStmt(
130926                        self::fields::SwitchStmtField::Span,
130927                    ));
130928                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130929                        span,
130930                        visitor,
130931                        &mut *__ast_path,
130932                    )
130933                };
130934                let discriminant = {
130935                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchStmt(
130936                        self::fields::SwitchStmtField::Discriminant,
130937                    ));
130938                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
130939                        discriminant,
130940                        visitor,
130941                        &mut *__ast_path,
130942                    )
130943                };
130944                let cases = {
130945                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchStmt(
130946                        self::fields::SwitchStmtField::Cases(usize::MAX),
130947                    ));
130948                    <Vec<SwitchCase> as FoldWithAstPath<V>>::fold_with_ast_path(
130949                        cases,
130950                        visitor,
130951                        &mut *__ast_path,
130952                    )
130953                };
130954                SwitchStmt {
130955                    span,
130956                    discriminant,
130957                    cases,
130958                }
130959            }
130960        }
130961    }
130962}
130963#[cfg(any(docsrs, feature = "path"))]
130964#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130965impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TaggedTpl {
130966    #[doc = "Calls [FoldAstPath`::fold_tagged_tpl`] with `self`."]
130967    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130968        <V as FoldAstPath>::fold_tagged_tpl(visitor, self, __ast_path)
130969    }
130970
130971    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130972        match self {
130973            TaggedTpl {
130974                span,
130975                ctxt,
130976                tag,
130977                type_params,
130978                tpl,
130979            } => {
130980                let span = {
130981                    let mut __ast_path = __ast_path
130982                        .with_guard(AstParentKind::TaggedTpl(self::fields::TaggedTplField::Span));
130983                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130984                        span,
130985                        visitor,
130986                        &mut *__ast_path,
130987                    )
130988                };
130989                let ctxt = {
130990                    let mut __ast_path = __ast_path
130991                        .with_guard(AstParentKind::TaggedTpl(self::fields::TaggedTplField::Ctxt));
130992                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
130993                        ctxt,
130994                        visitor,
130995                        &mut *__ast_path,
130996                    )
130997                };
130998                let tag = {
130999                    let mut __ast_path = __ast_path
131000                        .with_guard(AstParentKind::TaggedTpl(self::fields::TaggedTplField::Tag));
131001                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
131002                        tag,
131003                        visitor,
131004                        &mut *__ast_path,
131005                    )
131006                };
131007                let type_params = {
131008                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TaggedTpl(
131009                        self::fields::TaggedTplField::TypeParams,
131010                    ));
131011                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_params , visitor , & mut * __ast_path)
131012                };
131013                let tpl = {
131014                    let mut __ast_path = __ast_path
131015                        .with_guard(AstParentKind::TaggedTpl(self::fields::TaggedTplField::Tpl));
131016                    <Box<Tpl> as FoldWithAstPath<V>>::fold_with_ast_path(
131017                        tpl,
131018                        visitor,
131019                        &mut *__ast_path,
131020                    )
131021                };
131022                TaggedTpl {
131023                    span,
131024                    ctxt,
131025                    tag,
131026                    type_params,
131027                    tpl,
131028                }
131029            }
131030        }
131031    }
131032}
131033#[cfg(any(docsrs, feature = "path"))]
131034#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131035impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ThisExpr {
131036    #[doc = "Calls [FoldAstPath`::fold_this_expr`] with `self`."]
131037    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131038        <V as FoldAstPath>::fold_this_expr(visitor, self, __ast_path)
131039    }
131040
131041    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131042        match self {
131043            ThisExpr { span } => {
131044                let span = {
131045                    let mut __ast_path = __ast_path
131046                        .with_guard(AstParentKind::ThisExpr(self::fields::ThisExprField::Span));
131047                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131048                        span,
131049                        visitor,
131050                        &mut *__ast_path,
131051                    )
131052                };
131053                ThisExpr { span }
131054            }
131055        }
131056    }
131057}
131058#[cfg(any(docsrs, feature = "path"))]
131059#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131060impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ThrowStmt {
131061    #[doc = "Calls [FoldAstPath`::fold_throw_stmt`] with `self`."]
131062    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131063        <V as FoldAstPath>::fold_throw_stmt(visitor, self, __ast_path)
131064    }
131065
131066    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131067        match self {
131068            ThrowStmt { span, arg } => {
131069                let span = {
131070                    let mut __ast_path = __ast_path
131071                        .with_guard(AstParentKind::ThrowStmt(self::fields::ThrowStmtField::Span));
131072                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131073                        span,
131074                        visitor,
131075                        &mut *__ast_path,
131076                    )
131077                };
131078                let arg = {
131079                    let mut __ast_path = __ast_path
131080                        .with_guard(AstParentKind::ThrowStmt(self::fields::ThrowStmtField::Arg));
131081                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
131082                        arg,
131083                        visitor,
131084                        &mut *__ast_path,
131085                    )
131086                };
131087                ThrowStmt { span, arg }
131088            }
131089        }
131090    }
131091}
131092#[cfg(any(docsrs, feature = "path"))]
131093#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131094impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Tpl {
131095    #[doc = "Calls [FoldAstPath`::fold_tpl`] with `self`."]
131096    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131097        <V as FoldAstPath>::fold_tpl(visitor, self, __ast_path)
131098    }
131099
131100    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131101        match self {
131102            Tpl {
131103                span,
131104                exprs,
131105                quasis,
131106            } => {
131107                let span = {
131108                    let mut __ast_path =
131109                        __ast_path.with_guard(AstParentKind::Tpl(self::fields::TplField::Span));
131110                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131111                        span,
131112                        visitor,
131113                        &mut *__ast_path,
131114                    )
131115                };
131116                let exprs = {
131117                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Tpl(
131118                        self::fields::TplField::Exprs(usize::MAX),
131119                    ));
131120                    <Vec<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
131121                        exprs,
131122                        visitor,
131123                        &mut *__ast_path,
131124                    )
131125                };
131126                let quasis = {
131127                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Tpl(
131128                        self::fields::TplField::Quasis(usize::MAX),
131129                    ));
131130                    <Vec<TplElement> as FoldWithAstPath<V>>::fold_with_ast_path(
131131                        quasis,
131132                        visitor,
131133                        &mut *__ast_path,
131134                    )
131135                };
131136                Tpl {
131137                    span,
131138                    exprs,
131139                    quasis,
131140                }
131141            }
131142        }
131143    }
131144}
131145#[cfg(any(docsrs, feature = "path"))]
131146#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131147impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TplElement {
131148    #[doc = "Calls [FoldAstPath`::fold_tpl_element`] with `self`."]
131149    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131150        <V as FoldAstPath>::fold_tpl_element(visitor, self, __ast_path)
131151    }
131152
131153    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131154        match self {
131155            TplElement {
131156                span,
131157                tail,
131158                cooked,
131159                raw,
131160            } => {
131161                let span = {
131162                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TplElement(
131163                        self::fields::TplElementField::Span,
131164                    ));
131165                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131166                        span,
131167                        visitor,
131168                        &mut *__ast_path,
131169                    )
131170                };
131171                let cooked = {
131172                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TplElement(
131173                        self::fields::TplElementField::Cooked,
131174                    ));
131175                    <Option<swc_atoms::Atom> as FoldWithAstPath<V>>::fold_with_ast_path(
131176                        cooked,
131177                        visitor,
131178                        &mut *__ast_path,
131179                    )
131180                };
131181                let raw = {
131182                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TplElement(
131183                        self::fields::TplElementField::Raw,
131184                    ));
131185                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
131186                        raw,
131187                        visitor,
131188                        &mut *__ast_path,
131189                    )
131190                };
131191                TplElement {
131192                    span,
131193                    tail,
131194                    cooked,
131195                    raw,
131196                }
131197            }
131198        }
131199    }
131200}
131201#[cfg(any(docsrs, feature = "path"))]
131202#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131203impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TruePlusMinus {
131204    #[doc = "Calls [FoldAstPath`::fold_true_plus_minus`] with `self`."]
131205    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131206        <V as FoldAstPath>::fold_true_plus_minus(visitor, self, __ast_path)
131207    }
131208
131209    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131210        match self {
131211            TruePlusMinus::True => TruePlusMinus::True,
131212            TruePlusMinus::Plus => TruePlusMinus::Plus,
131213            TruePlusMinus::Minus => TruePlusMinus::Minus,
131214        }
131215    }
131216}
131217#[cfg(any(docsrs, feature = "path"))]
131218#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131219impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TryStmt {
131220    #[doc = "Calls [FoldAstPath`::fold_try_stmt`] with `self`."]
131221    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131222        <V as FoldAstPath>::fold_try_stmt(visitor, self, __ast_path)
131223    }
131224
131225    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131226        match self {
131227            TryStmt {
131228                span,
131229                block,
131230                handler,
131231                finalizer,
131232            } => {
131233                let span = {
131234                    let mut __ast_path = __ast_path
131235                        .with_guard(AstParentKind::TryStmt(self::fields::TryStmtField::Span));
131236                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131237                        span,
131238                        visitor,
131239                        &mut *__ast_path,
131240                    )
131241                };
131242                let block = {
131243                    let mut __ast_path = __ast_path
131244                        .with_guard(AstParentKind::TryStmt(self::fields::TryStmtField::Block));
131245                    <BlockStmt as FoldWithAstPath<V>>::fold_with_ast_path(
131246                        block,
131247                        visitor,
131248                        &mut *__ast_path,
131249                    )
131250                };
131251                let handler = {
131252                    let mut __ast_path = __ast_path
131253                        .with_guard(AstParentKind::TryStmt(self::fields::TryStmtField::Handler));
131254                    <Option<CatchClause> as FoldWithAstPath<V>>::fold_with_ast_path(
131255                        handler,
131256                        visitor,
131257                        &mut *__ast_path,
131258                    )
131259                };
131260                let finalizer = {
131261                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TryStmt(
131262                        self::fields::TryStmtField::Finalizer,
131263                    ));
131264                    <Option<BlockStmt> as FoldWithAstPath<V>>::fold_with_ast_path(
131265                        finalizer,
131266                        visitor,
131267                        &mut *__ast_path,
131268                    )
131269                };
131270                TryStmt {
131271                    span,
131272                    block,
131273                    handler,
131274                    finalizer,
131275                }
131276            }
131277        }
131278    }
131279}
131280#[cfg(any(docsrs, feature = "path"))]
131281#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131282impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsArrayType {
131283    #[doc = "Calls [FoldAstPath`::fold_ts_array_type`] with `self`."]
131284    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131285        <V as FoldAstPath>::fold_ts_array_type(visitor, self, __ast_path)
131286    }
131287
131288    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131289        match self {
131290            TsArrayType { span, elem_type } => {
131291                let span = {
131292                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsArrayType(
131293                        self::fields::TsArrayTypeField::Span,
131294                    ));
131295                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131296                        span,
131297                        visitor,
131298                        &mut *__ast_path,
131299                    )
131300                };
131301                let elem_type = {
131302                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsArrayType(
131303                        self::fields::TsArrayTypeField::ElemType,
131304                    ));
131305                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
131306                        elem_type,
131307                        visitor,
131308                        &mut *__ast_path,
131309                    )
131310                };
131311                TsArrayType { span, elem_type }
131312            }
131313        }
131314    }
131315}
131316#[cfg(any(docsrs, feature = "path"))]
131317#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131318impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsAsExpr {
131319    #[doc = "Calls [FoldAstPath`::fold_ts_as_expr`] with `self`."]
131320    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131321        <V as FoldAstPath>::fold_ts_as_expr(visitor, self, __ast_path)
131322    }
131323
131324    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131325        match self {
131326            TsAsExpr {
131327                span,
131328                expr,
131329                type_ann,
131330            } => {
131331                let span = {
131332                    let mut __ast_path = __ast_path
131333                        .with_guard(AstParentKind::TsAsExpr(self::fields::TsAsExprField::Span));
131334                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131335                        span,
131336                        visitor,
131337                        &mut *__ast_path,
131338                    )
131339                };
131340                let expr = {
131341                    let mut __ast_path = __ast_path
131342                        .with_guard(AstParentKind::TsAsExpr(self::fields::TsAsExprField::Expr));
131343                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
131344                        expr,
131345                        visitor,
131346                        &mut *__ast_path,
131347                    )
131348                };
131349                let type_ann = {
131350                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsAsExpr(
131351                        self::fields::TsAsExprField::TypeAnn,
131352                    ));
131353                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
131354                        type_ann,
131355                        visitor,
131356                        &mut *__ast_path,
131357                    )
131358                };
131359                TsAsExpr {
131360                    span,
131361                    expr,
131362                    type_ann,
131363                }
131364            }
131365        }
131366    }
131367}
131368#[cfg(any(docsrs, feature = "path"))]
131369#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131370impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsCallSignatureDecl {
131371    #[doc = "Calls [FoldAstPath`::fold_ts_call_signature_decl`] with `self`."]
131372    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131373        <V as FoldAstPath>::fold_ts_call_signature_decl(visitor, self, __ast_path)
131374    }
131375
131376    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131377        match self {
131378            TsCallSignatureDecl {
131379                span,
131380                params,
131381                type_ann,
131382                type_params,
131383            } => {
131384                let span = {
131385                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsCallSignatureDecl(
131386                        self::fields::TsCallSignatureDeclField::Span,
131387                    ));
131388                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131389                        span,
131390                        visitor,
131391                        &mut *__ast_path,
131392                    )
131393                };
131394                let params = {
131395                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsCallSignatureDecl(
131396                        self::fields::TsCallSignatureDeclField::Params(usize::MAX),
131397                    ));
131398                    <Vec<TsFnParam> as FoldWithAstPath<V>>::fold_with_ast_path(
131399                        params,
131400                        visitor,
131401                        &mut *__ast_path,
131402                    )
131403                };
131404                let type_ann = {
131405                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsCallSignatureDecl(
131406                        self::fields::TsCallSignatureDeclField::TypeAnn,
131407                    ));
131408                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
131409                        type_ann,
131410                        visitor,
131411                        &mut *__ast_path,
131412                    )
131413                };
131414                let type_params = {
131415                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsCallSignatureDecl(
131416                        self::fields::TsCallSignatureDeclField::TypeParams,
131417                    ));
131418                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
131419                        type_params,
131420                        visitor,
131421                        &mut *__ast_path,
131422                    )
131423                };
131424                TsCallSignatureDecl {
131425                    span,
131426                    params,
131427                    type_ann,
131428                    type_params,
131429                }
131430            }
131431        }
131432    }
131433}
131434#[cfg(any(docsrs, feature = "path"))]
131435#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131436impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsConditionalType {
131437    #[doc = "Calls [FoldAstPath`::fold_ts_conditional_type`] with `self`."]
131438    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131439        <V as FoldAstPath>::fold_ts_conditional_type(visitor, self, __ast_path)
131440    }
131441
131442    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131443        match self {
131444            TsConditionalType {
131445                span,
131446                check_type,
131447                extends_type,
131448                true_type,
131449                false_type,
131450            } => {
131451                let span = {
131452                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
131453                        self::fields::TsConditionalTypeField::Span,
131454                    ));
131455                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131456                        span,
131457                        visitor,
131458                        &mut *__ast_path,
131459                    )
131460                };
131461                let check_type = {
131462                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
131463                        self::fields::TsConditionalTypeField::CheckType,
131464                    ));
131465                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
131466                        check_type,
131467                        visitor,
131468                        &mut *__ast_path,
131469                    )
131470                };
131471                let extends_type = {
131472                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
131473                        self::fields::TsConditionalTypeField::ExtendsType,
131474                    ));
131475                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
131476                        extends_type,
131477                        visitor,
131478                        &mut *__ast_path,
131479                    )
131480                };
131481                let true_type = {
131482                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
131483                        self::fields::TsConditionalTypeField::TrueType,
131484                    ));
131485                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
131486                        true_type,
131487                        visitor,
131488                        &mut *__ast_path,
131489                    )
131490                };
131491                let false_type = {
131492                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
131493                        self::fields::TsConditionalTypeField::FalseType,
131494                    ));
131495                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
131496                        false_type,
131497                        visitor,
131498                        &mut *__ast_path,
131499                    )
131500                };
131501                TsConditionalType {
131502                    span,
131503                    check_type,
131504                    extends_type,
131505                    true_type,
131506                    false_type,
131507                }
131508            }
131509        }
131510    }
131511}
131512#[cfg(any(docsrs, feature = "path"))]
131513#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131514impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsConstAssertion {
131515    #[doc = "Calls [FoldAstPath`::fold_ts_const_assertion`] with `self`."]
131516    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131517        <V as FoldAstPath>::fold_ts_const_assertion(visitor, self, __ast_path)
131518    }
131519
131520    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131521        match self {
131522            TsConstAssertion { span, expr } => {
131523                let span = {
131524                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstAssertion(
131525                        self::fields::TsConstAssertionField::Span,
131526                    ));
131527                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131528                        span,
131529                        visitor,
131530                        &mut *__ast_path,
131531                    )
131532                };
131533                let expr = {
131534                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstAssertion(
131535                        self::fields::TsConstAssertionField::Expr,
131536                    ));
131537                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
131538                        expr,
131539                        visitor,
131540                        &mut *__ast_path,
131541                    )
131542                };
131543                TsConstAssertion { span, expr }
131544            }
131545        }
131546    }
131547}
131548#[cfg(any(docsrs, feature = "path"))]
131549#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131550impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsConstructSignatureDecl {
131551    #[doc = "Calls [FoldAstPath`::fold_ts_construct_signature_decl`] with `self`."]
131552    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131553        <V as FoldAstPath>::fold_ts_construct_signature_decl(visitor, self, __ast_path)
131554    }
131555
131556    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131557        match self {
131558            TsConstructSignatureDecl {
131559                span,
131560                params,
131561                type_ann,
131562                type_params,
131563            } => {
131564                let span = {
131565                    let mut __ast_path =
131566                        __ast_path.with_guard(AstParentKind::TsConstructSignatureDecl(
131567                            self::fields::TsConstructSignatureDeclField::Span,
131568                        ));
131569                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131570                        span,
131571                        visitor,
131572                        &mut *__ast_path,
131573                    )
131574                };
131575                let params = {
131576                    let mut __ast_path =
131577                        __ast_path.with_guard(AstParentKind::TsConstructSignatureDecl(
131578                            self::fields::TsConstructSignatureDeclField::Params(usize::MAX),
131579                        ));
131580                    <Vec<TsFnParam> as FoldWithAstPath<V>>::fold_with_ast_path(
131581                        params,
131582                        visitor,
131583                        &mut *__ast_path,
131584                    )
131585                };
131586                let type_ann = {
131587                    let mut __ast_path =
131588                        __ast_path.with_guard(AstParentKind::TsConstructSignatureDecl(
131589                            self::fields::TsConstructSignatureDeclField::TypeAnn,
131590                        ));
131591                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
131592                        type_ann,
131593                        visitor,
131594                        &mut *__ast_path,
131595                    )
131596                };
131597                let type_params = {
131598                    let mut __ast_path =
131599                        __ast_path.with_guard(AstParentKind::TsConstructSignatureDecl(
131600                            self::fields::TsConstructSignatureDeclField::TypeParams,
131601                        ));
131602                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
131603                        type_params,
131604                        visitor,
131605                        &mut *__ast_path,
131606                    )
131607                };
131608                TsConstructSignatureDecl {
131609                    span,
131610                    params,
131611                    type_ann,
131612                    type_params,
131613                }
131614            }
131615        }
131616    }
131617}
131618#[cfg(any(docsrs, feature = "path"))]
131619#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131620impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsConstructorType {
131621    #[doc = "Calls [FoldAstPath`::fold_ts_constructor_type`] with `self`."]
131622    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131623        <V as FoldAstPath>::fold_ts_constructor_type(visitor, self, __ast_path)
131624    }
131625
131626    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131627        match self {
131628            TsConstructorType {
131629                span,
131630                params,
131631                type_params,
131632                type_ann,
131633                is_abstract,
131634            } => {
131635                let span = {
131636                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstructorType(
131637                        self::fields::TsConstructorTypeField::Span,
131638                    ));
131639                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131640                        span,
131641                        visitor,
131642                        &mut *__ast_path,
131643                    )
131644                };
131645                let params = {
131646                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstructorType(
131647                        self::fields::TsConstructorTypeField::Params(usize::MAX),
131648                    ));
131649                    <Vec<TsFnParam> as FoldWithAstPath<V>>::fold_with_ast_path(
131650                        params,
131651                        visitor,
131652                        &mut *__ast_path,
131653                    )
131654                };
131655                let type_params = {
131656                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstructorType(
131657                        self::fields::TsConstructorTypeField::TypeParams,
131658                    ));
131659                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
131660                        type_params,
131661                        visitor,
131662                        &mut *__ast_path,
131663                    )
131664                };
131665                let type_ann = {
131666                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstructorType(
131667                        self::fields::TsConstructorTypeField::TypeAnn,
131668                    ));
131669                    <Box<TsTypeAnn> as FoldWithAstPath<V>>::fold_with_ast_path(
131670                        type_ann,
131671                        visitor,
131672                        &mut *__ast_path,
131673                    )
131674                };
131675                TsConstructorType {
131676                    span,
131677                    params,
131678                    type_params,
131679                    type_ann,
131680                    is_abstract,
131681                }
131682            }
131683        }
131684    }
131685}
131686#[cfg(any(docsrs, feature = "path"))]
131687#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131688impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsEntityName {
131689    #[doc = "Calls [FoldAstPath`::fold_ts_entity_name`] with `self`."]
131690    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131691        <V as FoldAstPath>::fold_ts_entity_name(visitor, self, __ast_path)
131692    }
131693
131694    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131695        match self {
131696            TsEntityName::TsQualifiedName { 0: _field_0 } => {
131697                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEntityName(
131698                    self::fields::TsEntityNameField::TsQualifiedName,
131699                ));
131700                let _field_0 = <Box<TsQualifiedName> as FoldWithAstPath<V>>::fold_with_ast_path(
131701                    _field_0,
131702                    visitor,
131703                    &mut *__ast_path,
131704                );
131705                TsEntityName::TsQualifiedName { 0: _field_0 }
131706            }
131707            TsEntityName::Ident { 0: _field_0 } => {
131708                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEntityName(
131709                    self::fields::TsEntityNameField::Ident,
131710                ));
131711                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
131712                    _field_0,
131713                    visitor,
131714                    &mut *__ast_path,
131715                );
131716                TsEntityName::Ident { 0: _field_0 }
131717            }
131718        }
131719    }
131720}
131721#[cfg(any(docsrs, feature = "path"))]
131722#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131723impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsEnumDecl {
131724    #[doc = "Calls [FoldAstPath`::fold_ts_enum_decl`] with `self`."]
131725    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131726        <V as FoldAstPath>::fold_ts_enum_decl(visitor, self, __ast_path)
131727    }
131728
131729    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131730        match self {
131731            TsEnumDecl {
131732                span,
131733                declare,
131734                is_const,
131735                id,
131736                members,
131737            } => {
131738                let span = {
131739                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumDecl(
131740                        self::fields::TsEnumDeclField::Span,
131741                    ));
131742                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131743                        span,
131744                        visitor,
131745                        &mut *__ast_path,
131746                    )
131747                };
131748                let id = {
131749                    let mut __ast_path = __ast_path
131750                        .with_guard(AstParentKind::TsEnumDecl(self::fields::TsEnumDeclField::Id));
131751                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(id, visitor, &mut *__ast_path)
131752                };
131753                let members = {
131754                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumDecl(
131755                        self::fields::TsEnumDeclField::Members(usize::MAX),
131756                    ));
131757                    <Vec<TsEnumMember> as FoldWithAstPath<V>>::fold_with_ast_path(
131758                        members,
131759                        visitor,
131760                        &mut *__ast_path,
131761                    )
131762                };
131763                TsEnumDecl {
131764                    span,
131765                    declare,
131766                    is_const,
131767                    id,
131768                    members,
131769                }
131770            }
131771        }
131772    }
131773}
131774#[cfg(any(docsrs, feature = "path"))]
131775#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131776impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsEnumMember {
131777    #[doc = "Calls [FoldAstPath`::fold_ts_enum_member`] with `self`."]
131778    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131779        <V as FoldAstPath>::fold_ts_enum_member(visitor, self, __ast_path)
131780    }
131781
131782    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131783        match self {
131784            TsEnumMember { span, id, init } => {
131785                let span = {
131786                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMember(
131787                        self::fields::TsEnumMemberField::Span,
131788                    ));
131789                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131790                        span,
131791                        visitor,
131792                        &mut *__ast_path,
131793                    )
131794                };
131795                let id = {
131796                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMember(
131797                        self::fields::TsEnumMemberField::Id,
131798                    ));
131799                    <TsEnumMemberId as FoldWithAstPath<V>>::fold_with_ast_path(
131800                        id,
131801                        visitor,
131802                        &mut *__ast_path,
131803                    )
131804                };
131805                let init = {
131806                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMember(
131807                        self::fields::TsEnumMemberField::Init,
131808                    ));
131809                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
131810                        init,
131811                        visitor,
131812                        &mut *__ast_path,
131813                    )
131814                };
131815                TsEnumMember { span, id, init }
131816            }
131817        }
131818    }
131819}
131820#[cfg(any(docsrs, feature = "path"))]
131821#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131822impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsEnumMemberId {
131823    #[doc = "Calls [FoldAstPath`::fold_ts_enum_member_id`] with `self`."]
131824    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131825        <V as FoldAstPath>::fold_ts_enum_member_id(visitor, self, __ast_path)
131826    }
131827
131828    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131829        match self {
131830            TsEnumMemberId::Ident { 0: _field_0 } => {
131831                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMemberId(
131832                    self::fields::TsEnumMemberIdField::Ident,
131833                ));
131834                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
131835                    _field_0,
131836                    visitor,
131837                    &mut *__ast_path,
131838                );
131839                TsEnumMemberId::Ident { 0: _field_0 }
131840            }
131841            TsEnumMemberId::Str { 0: _field_0 } => {
131842                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMemberId(
131843                    self::fields::TsEnumMemberIdField::Str,
131844                ));
131845                let _field_0 = <Str as FoldWithAstPath<V>>::fold_with_ast_path(
131846                    _field_0,
131847                    visitor,
131848                    &mut *__ast_path,
131849                );
131850                TsEnumMemberId::Str { 0: _field_0 }
131851            }
131852        }
131853    }
131854}
131855#[cfg(any(docsrs, feature = "path"))]
131856#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131857impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsExportAssignment {
131858    #[doc = "Calls [FoldAstPath`::fold_ts_export_assignment`] with `self`."]
131859    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131860        <V as FoldAstPath>::fold_ts_export_assignment(visitor, self, __ast_path)
131861    }
131862
131863    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131864        match self {
131865            TsExportAssignment { span, expr } => {
131866                let span = {
131867                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExportAssignment(
131868                        self::fields::TsExportAssignmentField::Span,
131869                    ));
131870                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131871                        span,
131872                        visitor,
131873                        &mut *__ast_path,
131874                    )
131875                };
131876                let expr = {
131877                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExportAssignment(
131878                        self::fields::TsExportAssignmentField::Expr,
131879                    ));
131880                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
131881                        expr,
131882                        visitor,
131883                        &mut *__ast_path,
131884                    )
131885                };
131886                TsExportAssignment { span, expr }
131887            }
131888        }
131889    }
131890}
131891#[cfg(any(docsrs, feature = "path"))]
131892#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131893impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsExprWithTypeArgs {
131894    #[doc = "Calls [FoldAstPath`::fold_ts_expr_with_type_args`] with `self`."]
131895    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131896        <V as FoldAstPath>::fold_ts_expr_with_type_args(visitor, self, __ast_path)
131897    }
131898
131899    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131900        match self {
131901            TsExprWithTypeArgs {
131902                span,
131903                expr,
131904                type_args,
131905            } => {
131906                let span = {
131907                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExprWithTypeArgs(
131908                        self::fields::TsExprWithTypeArgsField::Span,
131909                    ));
131910                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131911                        span,
131912                        visitor,
131913                        &mut *__ast_path,
131914                    )
131915                };
131916                let expr = {
131917                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExprWithTypeArgs(
131918                        self::fields::TsExprWithTypeArgsField::Expr,
131919                    ));
131920                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
131921                        expr,
131922                        visitor,
131923                        &mut *__ast_path,
131924                    )
131925                };
131926                let type_args = {
131927                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExprWithTypeArgs(
131928                        self::fields::TsExprWithTypeArgsField::TypeArgs,
131929                    ));
131930                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_args , visitor , & mut * __ast_path)
131931                };
131932                TsExprWithTypeArgs {
131933                    span,
131934                    expr,
131935                    type_args,
131936                }
131937            }
131938        }
131939    }
131940}
131941#[cfg(any(docsrs, feature = "path"))]
131942#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131943impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsExternalModuleRef {
131944    #[doc = "Calls [FoldAstPath`::fold_ts_external_module_ref`] with `self`."]
131945    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131946        <V as FoldAstPath>::fold_ts_external_module_ref(visitor, self, __ast_path)
131947    }
131948
131949    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131950        match self {
131951            TsExternalModuleRef { span, expr } => {
131952                let span = {
131953                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExternalModuleRef(
131954                        self::fields::TsExternalModuleRefField::Span,
131955                    ));
131956                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131957                        span,
131958                        visitor,
131959                        &mut *__ast_path,
131960                    )
131961                };
131962                let expr = {
131963                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExternalModuleRef(
131964                        self::fields::TsExternalModuleRefField::Expr,
131965                    ));
131966                    <Str as FoldWithAstPath<V>>::fold_with_ast_path(expr, visitor, &mut *__ast_path)
131967                };
131968                TsExternalModuleRef { span, expr }
131969            }
131970        }
131971    }
131972}
131973#[cfg(any(docsrs, feature = "path"))]
131974#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131975impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsFnOrConstructorType {
131976    #[doc = "Calls [FoldAstPath`::fold_ts_fn_or_constructor_type`] with `self`."]
131977    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131978        <V as FoldAstPath>::fold_ts_fn_or_constructor_type(visitor, self, __ast_path)
131979    }
131980
131981    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131982        match self {
131983            TsFnOrConstructorType::TsFnType { 0: _field_0 } => {
131984                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnOrConstructorType(
131985                    self::fields::TsFnOrConstructorTypeField::TsFnType,
131986                ));
131987                let _field_0 = <TsFnType as FoldWithAstPath<V>>::fold_with_ast_path(
131988                    _field_0,
131989                    visitor,
131990                    &mut *__ast_path,
131991                );
131992                TsFnOrConstructorType::TsFnType { 0: _field_0 }
131993            }
131994            TsFnOrConstructorType::TsConstructorType { 0: _field_0 } => {
131995                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnOrConstructorType(
131996                    self::fields::TsFnOrConstructorTypeField::TsConstructorType,
131997                ));
131998                let _field_0 = <TsConstructorType as FoldWithAstPath<V>>::fold_with_ast_path(
131999                    _field_0,
132000                    visitor,
132001                    &mut *__ast_path,
132002                );
132003                TsFnOrConstructorType::TsConstructorType { 0: _field_0 }
132004            }
132005        }
132006    }
132007}
132008#[cfg(any(docsrs, feature = "path"))]
132009#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132010impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsFnParam {
132011    #[doc = "Calls [FoldAstPath`::fold_ts_fn_param`] with `self`."]
132012    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132013        <V as FoldAstPath>::fold_ts_fn_param(visitor, self, __ast_path)
132014    }
132015
132016    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132017        match self {
132018            TsFnParam::Ident { 0: _field_0 } => {
132019                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnParam(
132020                    self::fields::TsFnParamField::Ident,
132021                ));
132022                let _field_0 = <BindingIdent as FoldWithAstPath<V>>::fold_with_ast_path(
132023                    _field_0,
132024                    visitor,
132025                    &mut *__ast_path,
132026                );
132027                TsFnParam::Ident { 0: _field_0 }
132028            }
132029            TsFnParam::Array { 0: _field_0 } => {
132030                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnParam(
132031                    self::fields::TsFnParamField::Array,
132032                ));
132033                let _field_0 = <ArrayPat as FoldWithAstPath<V>>::fold_with_ast_path(
132034                    _field_0,
132035                    visitor,
132036                    &mut *__ast_path,
132037                );
132038                TsFnParam::Array { 0: _field_0 }
132039            }
132040            TsFnParam::Rest { 0: _field_0 } => {
132041                let mut __ast_path = __ast_path
132042                    .with_guard(AstParentKind::TsFnParam(self::fields::TsFnParamField::Rest));
132043                let _field_0 = <RestPat as FoldWithAstPath<V>>::fold_with_ast_path(
132044                    _field_0,
132045                    visitor,
132046                    &mut *__ast_path,
132047                );
132048                TsFnParam::Rest { 0: _field_0 }
132049            }
132050            TsFnParam::Object { 0: _field_0 } => {
132051                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnParam(
132052                    self::fields::TsFnParamField::Object,
132053                ));
132054                let _field_0 = <ObjectPat as FoldWithAstPath<V>>::fold_with_ast_path(
132055                    _field_0,
132056                    visitor,
132057                    &mut *__ast_path,
132058                );
132059                TsFnParam::Object { 0: _field_0 }
132060            }
132061        }
132062    }
132063}
132064#[cfg(any(docsrs, feature = "path"))]
132065#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132066impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsFnType {
132067    #[doc = "Calls [FoldAstPath`::fold_ts_fn_type`] with `self`."]
132068    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132069        <V as FoldAstPath>::fold_ts_fn_type(visitor, self, __ast_path)
132070    }
132071
132072    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132073        match self {
132074            TsFnType {
132075                span,
132076                params,
132077                type_params,
132078                type_ann,
132079            } => {
132080                let span = {
132081                    let mut __ast_path = __ast_path
132082                        .with_guard(AstParentKind::TsFnType(self::fields::TsFnTypeField::Span));
132083                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132084                        span,
132085                        visitor,
132086                        &mut *__ast_path,
132087                    )
132088                };
132089                let params = {
132090                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnType(
132091                        self::fields::TsFnTypeField::Params(usize::MAX),
132092                    ));
132093                    <Vec<TsFnParam> as FoldWithAstPath<V>>::fold_with_ast_path(
132094                        params,
132095                        visitor,
132096                        &mut *__ast_path,
132097                    )
132098                };
132099                let type_params = {
132100                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnType(
132101                        self::fields::TsFnTypeField::TypeParams,
132102                    ));
132103                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
132104                        type_params,
132105                        visitor,
132106                        &mut *__ast_path,
132107                    )
132108                };
132109                let type_ann = {
132110                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnType(
132111                        self::fields::TsFnTypeField::TypeAnn,
132112                    ));
132113                    <Box<TsTypeAnn> as FoldWithAstPath<V>>::fold_with_ast_path(
132114                        type_ann,
132115                        visitor,
132116                        &mut *__ast_path,
132117                    )
132118                };
132119                TsFnType {
132120                    span,
132121                    params,
132122                    type_params,
132123                    type_ann,
132124                }
132125            }
132126        }
132127    }
132128}
132129#[cfg(any(docsrs, feature = "path"))]
132130#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132131impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsGetterSignature {
132132    #[doc = "Calls [FoldAstPath`::fold_ts_getter_signature`] with `self`."]
132133    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132134        <V as FoldAstPath>::fold_ts_getter_signature(visitor, self, __ast_path)
132135    }
132136
132137    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132138        match self {
132139            TsGetterSignature {
132140                span,
132141                key,
132142                computed,
132143                type_ann,
132144            } => {
132145                let span = {
132146                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsGetterSignature(
132147                        self::fields::TsGetterSignatureField::Span,
132148                    ));
132149                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132150                        span,
132151                        visitor,
132152                        &mut *__ast_path,
132153                    )
132154                };
132155                let key = {
132156                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsGetterSignature(
132157                        self::fields::TsGetterSignatureField::Key,
132158                    ));
132159                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
132160                        key,
132161                        visitor,
132162                        &mut *__ast_path,
132163                    )
132164                };
132165                let type_ann = {
132166                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsGetterSignature(
132167                        self::fields::TsGetterSignatureField::TypeAnn,
132168                    ));
132169                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
132170                        type_ann,
132171                        visitor,
132172                        &mut *__ast_path,
132173                    )
132174                };
132175                TsGetterSignature {
132176                    span,
132177                    key,
132178                    computed,
132179                    type_ann,
132180                }
132181            }
132182        }
132183    }
132184}
132185#[cfg(any(docsrs, feature = "path"))]
132186#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132187impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsImportCallOptions {
132188    #[doc = "Calls [FoldAstPath`::fold_ts_import_call_options`] with `self`."]
132189    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132190        <V as FoldAstPath>::fold_ts_import_call_options(visitor, self, __ast_path)
132191    }
132192
132193    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132194        match self {
132195            TsImportCallOptions { span, with } => {
132196                let span = {
132197                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportCallOptions(
132198                        self::fields::TsImportCallOptionsField::Span,
132199                    ));
132200                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132201                        span,
132202                        visitor,
132203                        &mut *__ast_path,
132204                    )
132205                };
132206                let with = {
132207                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportCallOptions(
132208                        self::fields::TsImportCallOptionsField::With,
132209                    ));
132210                    <Box<ObjectLit> as FoldWithAstPath<V>>::fold_with_ast_path(
132211                        with,
132212                        visitor,
132213                        &mut *__ast_path,
132214                    )
132215                };
132216                TsImportCallOptions { span, with }
132217            }
132218        }
132219    }
132220}
132221#[cfg(any(docsrs, feature = "path"))]
132222#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132223impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsImportEqualsDecl {
132224    #[doc = "Calls [FoldAstPath`::fold_ts_import_equals_decl`] with `self`."]
132225    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132226        <V as FoldAstPath>::fold_ts_import_equals_decl(visitor, self, __ast_path)
132227    }
132228
132229    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132230        match self {
132231            TsImportEqualsDecl {
132232                span,
132233                is_export,
132234                is_type_only,
132235                id,
132236                module_ref,
132237            } => {
132238                let span = {
132239                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportEqualsDecl(
132240                        self::fields::TsImportEqualsDeclField::Span,
132241                    ));
132242                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132243                        span,
132244                        visitor,
132245                        &mut *__ast_path,
132246                    )
132247                };
132248                let id = {
132249                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportEqualsDecl(
132250                        self::fields::TsImportEqualsDeclField::Id,
132251                    ));
132252                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(id, visitor, &mut *__ast_path)
132253                };
132254                let module_ref = {
132255                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportEqualsDecl(
132256                        self::fields::TsImportEqualsDeclField::ModuleRef,
132257                    ));
132258                    <TsModuleRef as FoldWithAstPath<V>>::fold_with_ast_path(
132259                        module_ref,
132260                        visitor,
132261                        &mut *__ast_path,
132262                    )
132263                };
132264                TsImportEqualsDecl {
132265                    span,
132266                    is_export,
132267                    is_type_only,
132268                    id,
132269                    module_ref,
132270                }
132271            }
132272        }
132273    }
132274}
132275#[cfg(any(docsrs, feature = "path"))]
132276#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132277impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsImportType {
132278    #[doc = "Calls [FoldAstPath`::fold_ts_import_type`] with `self`."]
132279    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132280        <V as FoldAstPath>::fold_ts_import_type(visitor, self, __ast_path)
132281    }
132282
132283    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132284        match self {
132285            TsImportType {
132286                span,
132287                arg,
132288                qualifier,
132289                type_args,
132290                attributes,
132291            } => {
132292                let span = {
132293                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
132294                        self::fields::TsImportTypeField::Span,
132295                    ));
132296                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132297                        span,
132298                        visitor,
132299                        &mut *__ast_path,
132300                    )
132301                };
132302                let arg = {
132303                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
132304                        self::fields::TsImportTypeField::Arg,
132305                    ));
132306                    <Str as FoldWithAstPath<V>>::fold_with_ast_path(arg, visitor, &mut *__ast_path)
132307                };
132308                let qualifier = {
132309                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
132310                        self::fields::TsImportTypeField::Qualifier,
132311                    ));
132312                    <Option<TsEntityName> as FoldWithAstPath<V>>::fold_with_ast_path(
132313                        qualifier,
132314                        visitor,
132315                        &mut *__ast_path,
132316                    )
132317                };
132318                let type_args = {
132319                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
132320                        self::fields::TsImportTypeField::TypeArgs,
132321                    ));
132322                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_args , visitor , & mut * __ast_path)
132323                };
132324                let attributes = {
132325                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
132326                        self::fields::TsImportTypeField::Attributes,
132327                    ));
132328                    <Option<TsImportCallOptions> as FoldWithAstPath<V>>::fold_with_ast_path(
132329                        attributes,
132330                        visitor,
132331                        &mut *__ast_path,
132332                    )
132333                };
132334                TsImportType {
132335                    span,
132336                    arg,
132337                    qualifier,
132338                    type_args,
132339                    attributes,
132340                }
132341            }
132342        }
132343    }
132344}
132345#[cfg(any(docsrs, feature = "path"))]
132346#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132347impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsIndexSignature {
132348    #[doc = "Calls [FoldAstPath`::fold_ts_index_signature`] with `self`."]
132349    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132350        <V as FoldAstPath>::fold_ts_index_signature(visitor, self, __ast_path)
132351    }
132352
132353    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132354        match self {
132355            TsIndexSignature {
132356                params,
132357                type_ann,
132358                readonly,
132359                is_static,
132360                span,
132361            } => {
132362                let params = {
132363                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexSignature(
132364                        self::fields::TsIndexSignatureField::Params(usize::MAX),
132365                    ));
132366                    <Vec<TsFnParam> as FoldWithAstPath<V>>::fold_with_ast_path(
132367                        params,
132368                        visitor,
132369                        &mut *__ast_path,
132370                    )
132371                };
132372                let type_ann = {
132373                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexSignature(
132374                        self::fields::TsIndexSignatureField::TypeAnn,
132375                    ));
132376                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
132377                        type_ann,
132378                        visitor,
132379                        &mut *__ast_path,
132380                    )
132381                };
132382                let span = {
132383                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexSignature(
132384                        self::fields::TsIndexSignatureField::Span,
132385                    ));
132386                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132387                        span,
132388                        visitor,
132389                        &mut *__ast_path,
132390                    )
132391                };
132392                TsIndexSignature {
132393                    params,
132394                    type_ann,
132395                    readonly,
132396                    is_static,
132397                    span,
132398                }
132399            }
132400        }
132401    }
132402}
132403#[cfg(any(docsrs, feature = "path"))]
132404#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132405impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsIndexedAccessType {
132406    #[doc = "Calls [FoldAstPath`::fold_ts_indexed_access_type`] with `self`."]
132407    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132408        <V as FoldAstPath>::fold_ts_indexed_access_type(visitor, self, __ast_path)
132409    }
132410
132411    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132412        match self {
132413            TsIndexedAccessType {
132414                span,
132415                readonly,
132416                obj_type,
132417                index_type,
132418            } => {
132419                let span = {
132420                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexedAccessType(
132421                        self::fields::TsIndexedAccessTypeField::Span,
132422                    ));
132423                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132424                        span,
132425                        visitor,
132426                        &mut *__ast_path,
132427                    )
132428                };
132429                let obj_type = {
132430                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexedAccessType(
132431                        self::fields::TsIndexedAccessTypeField::ObjType,
132432                    ));
132433                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
132434                        obj_type,
132435                        visitor,
132436                        &mut *__ast_path,
132437                    )
132438                };
132439                let index_type = {
132440                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexedAccessType(
132441                        self::fields::TsIndexedAccessTypeField::IndexType,
132442                    ));
132443                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
132444                        index_type,
132445                        visitor,
132446                        &mut *__ast_path,
132447                    )
132448                };
132449                TsIndexedAccessType {
132450                    span,
132451                    readonly,
132452                    obj_type,
132453                    index_type,
132454                }
132455            }
132456        }
132457    }
132458}
132459#[cfg(any(docsrs, feature = "path"))]
132460#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132461impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsInferType {
132462    #[doc = "Calls [FoldAstPath`::fold_ts_infer_type`] with `self`."]
132463    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132464        <V as FoldAstPath>::fold_ts_infer_type(visitor, self, __ast_path)
132465    }
132466
132467    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132468        match self {
132469            TsInferType { span, type_param } => {
132470                let span = {
132471                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInferType(
132472                        self::fields::TsInferTypeField::Span,
132473                    ));
132474                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132475                        span,
132476                        visitor,
132477                        &mut *__ast_path,
132478                    )
132479                };
132480                let type_param = {
132481                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInferType(
132482                        self::fields::TsInferTypeField::TypeParam,
132483                    ));
132484                    <TsTypeParam as FoldWithAstPath<V>>::fold_with_ast_path(
132485                        type_param,
132486                        visitor,
132487                        &mut *__ast_path,
132488                    )
132489                };
132490                TsInferType { span, type_param }
132491            }
132492        }
132493    }
132494}
132495#[cfg(any(docsrs, feature = "path"))]
132496#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132497impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsInstantiation {
132498    #[doc = "Calls [FoldAstPath`::fold_ts_instantiation`] with `self`."]
132499    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132500        <V as FoldAstPath>::fold_ts_instantiation(visitor, self, __ast_path)
132501    }
132502
132503    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132504        match self {
132505            TsInstantiation {
132506                span,
132507                expr,
132508                type_args,
132509            } => {
132510                let span = {
132511                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInstantiation(
132512                        self::fields::TsInstantiationField::Span,
132513                    ));
132514                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132515                        span,
132516                        visitor,
132517                        &mut *__ast_path,
132518                    )
132519                };
132520                let expr = {
132521                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInstantiation(
132522                        self::fields::TsInstantiationField::Expr,
132523                    ));
132524                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
132525                        expr,
132526                        visitor,
132527                        &mut *__ast_path,
132528                    )
132529                };
132530                let type_args = {
132531                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInstantiation(
132532                        self::fields::TsInstantiationField::TypeArgs,
132533                    ));
132534                    <Box<TsTypeParamInstantiation> as FoldWithAstPath<V>>::fold_with_ast_path(
132535                        type_args,
132536                        visitor,
132537                        &mut *__ast_path,
132538                    )
132539                };
132540                TsInstantiation {
132541                    span,
132542                    expr,
132543                    type_args,
132544                }
132545            }
132546        }
132547    }
132548}
132549#[cfg(any(docsrs, feature = "path"))]
132550#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132551impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsInterfaceBody {
132552    #[doc = "Calls [FoldAstPath`::fold_ts_interface_body`] with `self`."]
132553    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132554        <V as FoldAstPath>::fold_ts_interface_body(visitor, self, __ast_path)
132555    }
132556
132557    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132558        match self {
132559            TsInterfaceBody { span, body } => {
132560                let span = {
132561                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceBody(
132562                        self::fields::TsInterfaceBodyField::Span,
132563                    ));
132564                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132565                        span,
132566                        visitor,
132567                        &mut *__ast_path,
132568                    )
132569                };
132570                let body = {
132571                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceBody(
132572                        self::fields::TsInterfaceBodyField::Body(usize::MAX),
132573                    ));
132574                    <Vec<TsTypeElement> as FoldWithAstPath<V>>::fold_with_ast_path(
132575                        body,
132576                        visitor,
132577                        &mut *__ast_path,
132578                    )
132579                };
132580                TsInterfaceBody { span, body }
132581            }
132582        }
132583    }
132584}
132585#[cfg(any(docsrs, feature = "path"))]
132586#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132587impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsInterfaceDecl {
132588    #[doc = "Calls [FoldAstPath`::fold_ts_interface_decl`] with `self`."]
132589    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132590        <V as FoldAstPath>::fold_ts_interface_decl(visitor, self, __ast_path)
132591    }
132592
132593    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132594        match self {
132595            TsInterfaceDecl {
132596                span,
132597                id,
132598                declare,
132599                type_params,
132600                extends,
132601                body,
132602            } => {
132603                let span = {
132604                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
132605                        self::fields::TsInterfaceDeclField::Span,
132606                    ));
132607                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132608                        span,
132609                        visitor,
132610                        &mut *__ast_path,
132611                    )
132612                };
132613                let id = {
132614                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
132615                        self::fields::TsInterfaceDeclField::Id,
132616                    ));
132617                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(id, visitor, &mut *__ast_path)
132618                };
132619                let type_params = {
132620                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
132621                        self::fields::TsInterfaceDeclField::TypeParams,
132622                    ));
132623                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
132624                        type_params,
132625                        visitor,
132626                        &mut *__ast_path,
132627                    )
132628                };
132629                let extends = {
132630                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
132631                        self::fields::TsInterfaceDeclField::Extends(usize::MAX),
132632                    ));
132633                    <Vec<TsExprWithTypeArgs> as FoldWithAstPath<V>>::fold_with_ast_path(
132634                        extends,
132635                        visitor,
132636                        &mut *__ast_path,
132637                    )
132638                };
132639                let body = {
132640                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
132641                        self::fields::TsInterfaceDeclField::Body,
132642                    ));
132643                    <TsInterfaceBody as FoldWithAstPath<V>>::fold_with_ast_path(
132644                        body,
132645                        visitor,
132646                        &mut *__ast_path,
132647                    )
132648                };
132649                TsInterfaceDecl {
132650                    span,
132651                    id,
132652                    declare,
132653                    type_params,
132654                    extends,
132655                    body,
132656                }
132657            }
132658        }
132659    }
132660}
132661#[cfg(any(docsrs, feature = "path"))]
132662#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132663impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsIntersectionType {
132664    #[doc = "Calls [FoldAstPath`::fold_ts_intersection_type`] with `self`."]
132665    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132666        <V as FoldAstPath>::fold_ts_intersection_type(visitor, self, __ast_path)
132667    }
132668
132669    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132670        match self {
132671            TsIntersectionType { span, types } => {
132672                let span = {
132673                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIntersectionType(
132674                        self::fields::TsIntersectionTypeField::Span,
132675                    ));
132676                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132677                        span,
132678                        visitor,
132679                        &mut *__ast_path,
132680                    )
132681                };
132682                let types = {
132683                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIntersectionType(
132684                        self::fields::TsIntersectionTypeField::Types(usize::MAX),
132685                    ));
132686                    <Vec<Box<TsType>> as FoldWithAstPath<V>>::fold_with_ast_path(
132687                        types,
132688                        visitor,
132689                        &mut *__ast_path,
132690                    )
132691                };
132692                TsIntersectionType { span, types }
132693            }
132694        }
132695    }
132696}
132697#[cfg(any(docsrs, feature = "path"))]
132698#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132699impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsKeywordType {
132700    #[doc = "Calls [FoldAstPath`::fold_ts_keyword_type`] with `self`."]
132701    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132702        <V as FoldAstPath>::fold_ts_keyword_type(visitor, self, __ast_path)
132703    }
132704
132705    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132706        match self {
132707            TsKeywordType { span, kind } => {
132708                let span = {
132709                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsKeywordType(
132710                        self::fields::TsKeywordTypeField::Span,
132711                    ));
132712                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132713                        span,
132714                        visitor,
132715                        &mut *__ast_path,
132716                    )
132717                };
132718                let kind = {
132719                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsKeywordType(
132720                        self::fields::TsKeywordTypeField::Kind,
132721                    ));
132722                    <TsKeywordTypeKind as FoldWithAstPath<V>>::fold_with_ast_path(
132723                        kind,
132724                        visitor,
132725                        &mut *__ast_path,
132726                    )
132727                };
132728                TsKeywordType { span, kind }
132729            }
132730        }
132731    }
132732}
132733#[cfg(any(docsrs, feature = "path"))]
132734#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132735impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsKeywordTypeKind {
132736    #[doc = "Calls [FoldAstPath`::fold_ts_keyword_type_kind`] with `self`."]
132737    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132738        <V as FoldAstPath>::fold_ts_keyword_type_kind(visitor, self, __ast_path)
132739    }
132740
132741    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132742        match self {
132743            TsKeywordTypeKind::TsAnyKeyword => TsKeywordTypeKind::TsAnyKeyword,
132744            TsKeywordTypeKind::TsUnknownKeyword => TsKeywordTypeKind::TsUnknownKeyword,
132745            TsKeywordTypeKind::TsNumberKeyword => TsKeywordTypeKind::TsNumberKeyword,
132746            TsKeywordTypeKind::TsObjectKeyword => TsKeywordTypeKind::TsObjectKeyword,
132747            TsKeywordTypeKind::TsBooleanKeyword => TsKeywordTypeKind::TsBooleanKeyword,
132748            TsKeywordTypeKind::TsBigIntKeyword => TsKeywordTypeKind::TsBigIntKeyword,
132749            TsKeywordTypeKind::TsStringKeyword => TsKeywordTypeKind::TsStringKeyword,
132750            TsKeywordTypeKind::TsSymbolKeyword => TsKeywordTypeKind::TsSymbolKeyword,
132751            TsKeywordTypeKind::TsVoidKeyword => TsKeywordTypeKind::TsVoidKeyword,
132752            TsKeywordTypeKind::TsUndefinedKeyword => TsKeywordTypeKind::TsUndefinedKeyword,
132753            TsKeywordTypeKind::TsNullKeyword => TsKeywordTypeKind::TsNullKeyword,
132754            TsKeywordTypeKind::TsNeverKeyword => TsKeywordTypeKind::TsNeverKeyword,
132755            TsKeywordTypeKind::TsIntrinsicKeyword => TsKeywordTypeKind::TsIntrinsicKeyword,
132756        }
132757    }
132758}
132759#[cfg(any(docsrs, feature = "path"))]
132760#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132761impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsLit {
132762    #[doc = "Calls [FoldAstPath`::fold_ts_lit`] with `self`."]
132763    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132764        <V as FoldAstPath>::fold_ts_lit(visitor, self, __ast_path)
132765    }
132766
132767    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132768        match self {
132769            TsLit::Number { 0: _field_0 } => {
132770                let mut __ast_path =
132771                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::Number));
132772                let _field_0 = <Number as FoldWithAstPath<V>>::fold_with_ast_path(
132773                    _field_0,
132774                    visitor,
132775                    &mut *__ast_path,
132776                );
132777                TsLit::Number { 0: _field_0 }
132778            }
132779            TsLit::Str { 0: _field_0 } => {
132780                let mut __ast_path =
132781                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::Str));
132782                let _field_0 = <Str as FoldWithAstPath<V>>::fold_with_ast_path(
132783                    _field_0,
132784                    visitor,
132785                    &mut *__ast_path,
132786                );
132787                TsLit::Str { 0: _field_0 }
132788            }
132789            TsLit::Bool { 0: _field_0 } => {
132790                let mut __ast_path =
132791                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::Bool));
132792                let _field_0 = <Bool as FoldWithAstPath<V>>::fold_with_ast_path(
132793                    _field_0,
132794                    visitor,
132795                    &mut *__ast_path,
132796                );
132797                TsLit::Bool { 0: _field_0 }
132798            }
132799            TsLit::BigInt { 0: _field_0 } => {
132800                let mut __ast_path =
132801                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::BigInt));
132802                let _field_0 = <BigInt as FoldWithAstPath<V>>::fold_with_ast_path(
132803                    _field_0,
132804                    visitor,
132805                    &mut *__ast_path,
132806                );
132807                TsLit::BigInt { 0: _field_0 }
132808            }
132809            TsLit::Tpl { 0: _field_0 } => {
132810                let mut __ast_path =
132811                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::Tpl));
132812                let _field_0 = <TsTplLitType as FoldWithAstPath<V>>::fold_with_ast_path(
132813                    _field_0,
132814                    visitor,
132815                    &mut *__ast_path,
132816                );
132817                TsLit::Tpl { 0: _field_0 }
132818            }
132819        }
132820    }
132821}
132822#[cfg(any(docsrs, feature = "path"))]
132823#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132824impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsLitType {
132825    #[doc = "Calls [FoldAstPath`::fold_ts_lit_type`] with `self`."]
132826    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132827        <V as FoldAstPath>::fold_ts_lit_type(visitor, self, __ast_path)
132828    }
132829
132830    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132831        match self {
132832            TsLitType { span, lit } => {
132833                let span = {
132834                    let mut __ast_path = __ast_path
132835                        .with_guard(AstParentKind::TsLitType(self::fields::TsLitTypeField::Span));
132836                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132837                        span,
132838                        visitor,
132839                        &mut *__ast_path,
132840                    )
132841                };
132842                let lit = {
132843                    let mut __ast_path = __ast_path
132844                        .with_guard(AstParentKind::TsLitType(self::fields::TsLitTypeField::Lit));
132845                    <TsLit as FoldWithAstPath<V>>::fold_with_ast_path(
132846                        lit,
132847                        visitor,
132848                        &mut *__ast_path,
132849                    )
132850                };
132851                TsLitType { span, lit }
132852            }
132853        }
132854    }
132855}
132856#[cfg(any(docsrs, feature = "path"))]
132857#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132858impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsMappedType {
132859    #[doc = "Calls [FoldAstPath`::fold_ts_mapped_type`] with `self`."]
132860    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132861        <V as FoldAstPath>::fold_ts_mapped_type(visitor, self, __ast_path)
132862    }
132863
132864    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132865        match self {
132866            TsMappedType {
132867                span,
132868                readonly,
132869                type_param,
132870                name_type,
132871                optional,
132872                type_ann,
132873            } => {
132874                let span = {
132875                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
132876                        self::fields::TsMappedTypeField::Span,
132877                    ));
132878                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132879                        span,
132880                        visitor,
132881                        &mut *__ast_path,
132882                    )
132883                };
132884                let readonly = {
132885                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
132886                        self::fields::TsMappedTypeField::Readonly,
132887                    ));
132888                    <Option<TruePlusMinus> as FoldWithAstPath<V>>::fold_with_ast_path(
132889                        readonly,
132890                        visitor,
132891                        &mut *__ast_path,
132892                    )
132893                };
132894                let type_param = {
132895                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
132896                        self::fields::TsMappedTypeField::TypeParam,
132897                    ));
132898                    <TsTypeParam as FoldWithAstPath<V>>::fold_with_ast_path(
132899                        type_param,
132900                        visitor,
132901                        &mut *__ast_path,
132902                    )
132903                };
132904                let name_type = {
132905                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
132906                        self::fields::TsMappedTypeField::NameType,
132907                    ));
132908                    <Option<Box<TsType>> as FoldWithAstPath<V>>::fold_with_ast_path(
132909                        name_type,
132910                        visitor,
132911                        &mut *__ast_path,
132912                    )
132913                };
132914                let optional = {
132915                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
132916                        self::fields::TsMappedTypeField::Optional,
132917                    ));
132918                    <Option<TruePlusMinus> as FoldWithAstPath<V>>::fold_with_ast_path(
132919                        optional,
132920                        visitor,
132921                        &mut *__ast_path,
132922                    )
132923                };
132924                let type_ann = {
132925                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
132926                        self::fields::TsMappedTypeField::TypeAnn,
132927                    ));
132928                    <Option<Box<TsType>> as FoldWithAstPath<V>>::fold_with_ast_path(
132929                        type_ann,
132930                        visitor,
132931                        &mut *__ast_path,
132932                    )
132933                };
132934                TsMappedType {
132935                    span,
132936                    readonly,
132937                    type_param,
132938                    name_type,
132939                    optional,
132940                    type_ann,
132941                }
132942            }
132943        }
132944    }
132945}
132946#[cfg(any(docsrs, feature = "path"))]
132947#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132948impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsMethodSignature {
132949    #[doc = "Calls [FoldAstPath`::fold_ts_method_signature`] with `self`."]
132950    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132951        <V as FoldAstPath>::fold_ts_method_signature(visitor, self, __ast_path)
132952    }
132953
132954    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132955        match self {
132956            TsMethodSignature {
132957                span,
132958                key,
132959                computed,
132960                optional,
132961                params,
132962                type_ann,
132963                type_params,
132964            } => {
132965                let span = {
132966                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
132967                        self::fields::TsMethodSignatureField::Span,
132968                    ));
132969                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132970                        span,
132971                        visitor,
132972                        &mut *__ast_path,
132973                    )
132974                };
132975                let key = {
132976                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
132977                        self::fields::TsMethodSignatureField::Key,
132978                    ));
132979                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
132980                        key,
132981                        visitor,
132982                        &mut *__ast_path,
132983                    )
132984                };
132985                let params = {
132986                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
132987                        self::fields::TsMethodSignatureField::Params(usize::MAX),
132988                    ));
132989                    <Vec<TsFnParam> as FoldWithAstPath<V>>::fold_with_ast_path(
132990                        params,
132991                        visitor,
132992                        &mut *__ast_path,
132993                    )
132994                };
132995                let type_ann = {
132996                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
132997                        self::fields::TsMethodSignatureField::TypeAnn,
132998                    ));
132999                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
133000                        type_ann,
133001                        visitor,
133002                        &mut *__ast_path,
133003                    )
133004                };
133005                let type_params = {
133006                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
133007                        self::fields::TsMethodSignatureField::TypeParams,
133008                    ));
133009                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
133010                        type_params,
133011                        visitor,
133012                        &mut *__ast_path,
133013                    )
133014                };
133015                TsMethodSignature {
133016                    span,
133017                    key,
133018                    computed,
133019                    optional,
133020                    params,
133021                    type_ann,
133022                    type_params,
133023                }
133024            }
133025        }
133026    }
133027}
133028#[cfg(any(docsrs, feature = "path"))]
133029#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133030impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsModuleBlock {
133031    #[doc = "Calls [FoldAstPath`::fold_ts_module_block`] with `self`."]
133032    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133033        <V as FoldAstPath>::fold_ts_module_block(visitor, self, __ast_path)
133034    }
133035
133036    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133037        match self {
133038            TsModuleBlock { span, body } => {
133039                let span = {
133040                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleBlock(
133041                        self::fields::TsModuleBlockField::Span,
133042                    ));
133043                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133044                        span,
133045                        visitor,
133046                        &mut *__ast_path,
133047                    )
133048                };
133049                let body = {
133050                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleBlock(
133051                        self::fields::TsModuleBlockField::Body(usize::MAX),
133052                    ));
133053                    <Vec<ModuleItem> as FoldWithAstPath<V>>::fold_with_ast_path(
133054                        body,
133055                        visitor,
133056                        &mut *__ast_path,
133057                    )
133058                };
133059                TsModuleBlock { span, body }
133060            }
133061        }
133062    }
133063}
133064#[cfg(any(docsrs, feature = "path"))]
133065#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133066impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsModuleDecl {
133067    #[doc = "Calls [FoldAstPath`::fold_ts_module_decl`] with `self`."]
133068    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133069        <V as FoldAstPath>::fold_ts_module_decl(visitor, self, __ast_path)
133070    }
133071
133072    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133073        match self {
133074            TsModuleDecl {
133075                span,
133076                declare,
133077                global,
133078                namespace,
133079                id,
133080                body,
133081            } => {
133082                let span = {
133083                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleDecl(
133084                        self::fields::TsModuleDeclField::Span,
133085                    ));
133086                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133087                        span,
133088                        visitor,
133089                        &mut *__ast_path,
133090                    )
133091                };
133092                let id = {
133093                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleDecl(
133094                        self::fields::TsModuleDeclField::Id,
133095                    ));
133096                    <TsModuleName as FoldWithAstPath<V>>::fold_with_ast_path(
133097                        id,
133098                        visitor,
133099                        &mut *__ast_path,
133100                    )
133101                };
133102                let body = {
133103                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleDecl(
133104                        self::fields::TsModuleDeclField::Body,
133105                    ));
133106                    <Option<TsNamespaceBody> as FoldWithAstPath<V>>::fold_with_ast_path(
133107                        body,
133108                        visitor,
133109                        &mut *__ast_path,
133110                    )
133111                };
133112                TsModuleDecl {
133113                    span,
133114                    declare,
133115                    global,
133116                    namespace,
133117                    id,
133118                    body,
133119                }
133120            }
133121        }
133122    }
133123}
133124#[cfg(any(docsrs, feature = "path"))]
133125#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133126impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsModuleName {
133127    #[doc = "Calls [FoldAstPath`::fold_ts_module_name`] with `self`."]
133128    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133129        <V as FoldAstPath>::fold_ts_module_name(visitor, self, __ast_path)
133130    }
133131
133132    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133133        match self {
133134            TsModuleName::Ident { 0: _field_0 } => {
133135                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleName(
133136                    self::fields::TsModuleNameField::Ident,
133137                ));
133138                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
133139                    _field_0,
133140                    visitor,
133141                    &mut *__ast_path,
133142                );
133143                TsModuleName::Ident { 0: _field_0 }
133144            }
133145            TsModuleName::Str { 0: _field_0 } => {
133146                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleName(
133147                    self::fields::TsModuleNameField::Str,
133148                ));
133149                let _field_0 = <Str as FoldWithAstPath<V>>::fold_with_ast_path(
133150                    _field_0,
133151                    visitor,
133152                    &mut *__ast_path,
133153                );
133154                TsModuleName::Str { 0: _field_0 }
133155            }
133156        }
133157    }
133158}
133159#[cfg(any(docsrs, feature = "path"))]
133160#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133161impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsModuleRef {
133162    #[doc = "Calls [FoldAstPath`::fold_ts_module_ref`] with `self`."]
133163    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133164        <V as FoldAstPath>::fold_ts_module_ref(visitor, self, __ast_path)
133165    }
133166
133167    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133168        match self {
133169            TsModuleRef::TsEntityName { 0: _field_0 } => {
133170                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleRef(
133171                    self::fields::TsModuleRefField::TsEntityName,
133172                ));
133173                let _field_0 = <TsEntityName as FoldWithAstPath<V>>::fold_with_ast_path(
133174                    _field_0,
133175                    visitor,
133176                    &mut *__ast_path,
133177                );
133178                TsModuleRef::TsEntityName { 0: _field_0 }
133179            }
133180            TsModuleRef::TsExternalModuleRef { 0: _field_0 } => {
133181                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleRef(
133182                    self::fields::TsModuleRefField::TsExternalModuleRef,
133183                ));
133184                let _field_0 = <TsExternalModuleRef as FoldWithAstPath<V>>::fold_with_ast_path(
133185                    _field_0,
133186                    visitor,
133187                    &mut *__ast_path,
133188                );
133189                TsModuleRef::TsExternalModuleRef { 0: _field_0 }
133190            }
133191        }
133192    }
133193}
133194#[cfg(any(docsrs, feature = "path"))]
133195#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133196impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsNamespaceBody {
133197    #[doc = "Calls [FoldAstPath`::fold_ts_namespace_body`] with `self`."]
133198    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133199        <V as FoldAstPath>::fold_ts_namespace_body(visitor, self, __ast_path)
133200    }
133201
133202    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133203        match self {
133204            TsNamespaceBody::TsModuleBlock { 0: _field_0 } => {
133205                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceBody(
133206                    self::fields::TsNamespaceBodyField::TsModuleBlock,
133207                ));
133208                let _field_0 = <TsModuleBlock as FoldWithAstPath<V>>::fold_with_ast_path(
133209                    _field_0,
133210                    visitor,
133211                    &mut *__ast_path,
133212                );
133213                TsNamespaceBody::TsModuleBlock { 0: _field_0 }
133214            }
133215            TsNamespaceBody::TsNamespaceDecl { 0: _field_0 } => {
133216                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceBody(
133217                    self::fields::TsNamespaceBodyField::TsNamespaceDecl,
133218                ));
133219                let _field_0 = <TsNamespaceDecl as FoldWithAstPath<V>>::fold_with_ast_path(
133220                    _field_0,
133221                    visitor,
133222                    &mut *__ast_path,
133223                );
133224                TsNamespaceBody::TsNamespaceDecl { 0: _field_0 }
133225            }
133226        }
133227    }
133228}
133229#[cfg(any(docsrs, feature = "path"))]
133230#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133231impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsNamespaceDecl {
133232    #[doc = "Calls [FoldAstPath`::fold_ts_namespace_decl`] with `self`."]
133233    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133234        <V as FoldAstPath>::fold_ts_namespace_decl(visitor, self, __ast_path)
133235    }
133236
133237    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133238        match self {
133239            TsNamespaceDecl {
133240                span,
133241                declare,
133242                global,
133243                id,
133244                body,
133245            } => {
133246                let span = {
133247                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceDecl(
133248                        self::fields::TsNamespaceDeclField::Span,
133249                    ));
133250                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133251                        span,
133252                        visitor,
133253                        &mut *__ast_path,
133254                    )
133255                };
133256                let id = {
133257                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceDecl(
133258                        self::fields::TsNamespaceDeclField::Id,
133259                    ));
133260                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(id, visitor, &mut *__ast_path)
133261                };
133262                let body = {
133263                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceDecl(
133264                        self::fields::TsNamespaceDeclField::Body,
133265                    ));
133266                    <Box<TsNamespaceBody> as FoldWithAstPath<V>>::fold_with_ast_path(
133267                        body,
133268                        visitor,
133269                        &mut *__ast_path,
133270                    )
133271                };
133272                TsNamespaceDecl {
133273                    span,
133274                    declare,
133275                    global,
133276                    id,
133277                    body,
133278                }
133279            }
133280        }
133281    }
133282}
133283#[cfg(any(docsrs, feature = "path"))]
133284#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133285impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsNamespaceExportDecl {
133286    #[doc = "Calls [FoldAstPath`::fold_ts_namespace_export_decl`] with `self`."]
133287    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133288        <V as FoldAstPath>::fold_ts_namespace_export_decl(visitor, self, __ast_path)
133289    }
133290
133291    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133292        match self {
133293            TsNamespaceExportDecl { span, id } => {
133294                let span = {
133295                    let mut __ast_path =
133296                        __ast_path.with_guard(AstParentKind::TsNamespaceExportDecl(
133297                            self::fields::TsNamespaceExportDeclField::Span,
133298                        ));
133299                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133300                        span,
133301                        visitor,
133302                        &mut *__ast_path,
133303                    )
133304                };
133305                let id = {
133306                    let mut __ast_path =
133307                        __ast_path.with_guard(AstParentKind::TsNamespaceExportDecl(
133308                            self::fields::TsNamespaceExportDeclField::Id,
133309                        ));
133310                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(id, visitor, &mut *__ast_path)
133311                };
133312                TsNamespaceExportDecl { span, id }
133313            }
133314        }
133315    }
133316}
133317#[cfg(any(docsrs, feature = "path"))]
133318#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133319impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsNonNullExpr {
133320    #[doc = "Calls [FoldAstPath`::fold_ts_non_null_expr`] with `self`."]
133321    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133322        <V as FoldAstPath>::fold_ts_non_null_expr(visitor, self, __ast_path)
133323    }
133324
133325    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133326        match self {
133327            TsNonNullExpr { span, expr } => {
133328                let span = {
133329                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNonNullExpr(
133330                        self::fields::TsNonNullExprField::Span,
133331                    ));
133332                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133333                        span,
133334                        visitor,
133335                        &mut *__ast_path,
133336                    )
133337                };
133338                let expr = {
133339                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNonNullExpr(
133340                        self::fields::TsNonNullExprField::Expr,
133341                    ));
133342                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
133343                        expr,
133344                        visitor,
133345                        &mut *__ast_path,
133346                    )
133347                };
133348                TsNonNullExpr { span, expr }
133349            }
133350        }
133351    }
133352}
133353#[cfg(any(docsrs, feature = "path"))]
133354#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133355impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsOptionalType {
133356    #[doc = "Calls [FoldAstPath`::fold_ts_optional_type`] with `self`."]
133357    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133358        <V as FoldAstPath>::fold_ts_optional_type(visitor, self, __ast_path)
133359    }
133360
133361    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133362        match self {
133363            TsOptionalType { span, type_ann } => {
133364                let span = {
133365                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsOptionalType(
133366                        self::fields::TsOptionalTypeField::Span,
133367                    ));
133368                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133369                        span,
133370                        visitor,
133371                        &mut *__ast_path,
133372                    )
133373                };
133374                let type_ann = {
133375                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsOptionalType(
133376                        self::fields::TsOptionalTypeField::TypeAnn,
133377                    ));
133378                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
133379                        type_ann,
133380                        visitor,
133381                        &mut *__ast_path,
133382                    )
133383                };
133384                TsOptionalType { span, type_ann }
133385            }
133386        }
133387    }
133388}
133389#[cfg(any(docsrs, feature = "path"))]
133390#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133391impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsParamProp {
133392    #[doc = "Calls [FoldAstPath`::fold_ts_param_prop`] with `self`."]
133393    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133394        <V as FoldAstPath>::fold_ts_param_prop(visitor, self, __ast_path)
133395    }
133396
133397    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133398        match self {
133399            TsParamProp {
133400                span,
133401                decorators,
133402                accessibility,
133403                is_override,
133404                readonly,
133405                param,
133406            } => {
133407                let span = {
133408                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamProp(
133409                        self::fields::TsParamPropField::Span,
133410                    ));
133411                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133412                        span,
133413                        visitor,
133414                        &mut *__ast_path,
133415                    )
133416                };
133417                let decorators = {
133418                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamProp(
133419                        self::fields::TsParamPropField::Decorators(usize::MAX),
133420                    ));
133421                    <Vec<Decorator> as FoldWithAstPath<V>>::fold_with_ast_path(
133422                        decorators,
133423                        visitor,
133424                        &mut *__ast_path,
133425                    )
133426                };
133427                let accessibility = {
133428                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamProp(
133429                        self::fields::TsParamPropField::Accessibility,
133430                    ));
133431                    <Option<Accessibility> as FoldWithAstPath<V>>::fold_with_ast_path(
133432                        accessibility,
133433                        visitor,
133434                        &mut *__ast_path,
133435                    )
133436                };
133437                let param = {
133438                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamProp(
133439                        self::fields::TsParamPropField::Param,
133440                    ));
133441                    <TsParamPropParam as FoldWithAstPath<V>>::fold_with_ast_path(
133442                        param,
133443                        visitor,
133444                        &mut *__ast_path,
133445                    )
133446                };
133447                TsParamProp {
133448                    span,
133449                    decorators,
133450                    accessibility,
133451                    is_override,
133452                    readonly,
133453                    param,
133454                }
133455            }
133456        }
133457    }
133458}
133459#[cfg(any(docsrs, feature = "path"))]
133460#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133461impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsParamPropParam {
133462    #[doc = "Calls [FoldAstPath`::fold_ts_param_prop_param`] with `self`."]
133463    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133464        <V as FoldAstPath>::fold_ts_param_prop_param(visitor, self, __ast_path)
133465    }
133466
133467    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133468        match self {
133469            TsParamPropParam::Ident { 0: _field_0 } => {
133470                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamPropParam(
133471                    self::fields::TsParamPropParamField::Ident,
133472                ));
133473                let _field_0 = <BindingIdent as FoldWithAstPath<V>>::fold_with_ast_path(
133474                    _field_0,
133475                    visitor,
133476                    &mut *__ast_path,
133477                );
133478                TsParamPropParam::Ident { 0: _field_0 }
133479            }
133480            TsParamPropParam::Assign { 0: _field_0 } => {
133481                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamPropParam(
133482                    self::fields::TsParamPropParamField::Assign,
133483                ));
133484                let _field_0 = <AssignPat as FoldWithAstPath<V>>::fold_with_ast_path(
133485                    _field_0,
133486                    visitor,
133487                    &mut *__ast_path,
133488                );
133489                TsParamPropParam::Assign { 0: _field_0 }
133490            }
133491        }
133492    }
133493}
133494#[cfg(any(docsrs, feature = "path"))]
133495#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133496impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsParenthesizedType {
133497    #[doc = "Calls [FoldAstPath`::fold_ts_parenthesized_type`] with `self`."]
133498    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133499        <V as FoldAstPath>::fold_ts_parenthesized_type(visitor, self, __ast_path)
133500    }
133501
133502    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133503        match self {
133504            TsParenthesizedType { span, type_ann } => {
133505                let span = {
133506                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParenthesizedType(
133507                        self::fields::TsParenthesizedTypeField::Span,
133508                    ));
133509                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133510                        span,
133511                        visitor,
133512                        &mut *__ast_path,
133513                    )
133514                };
133515                let type_ann = {
133516                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParenthesizedType(
133517                        self::fields::TsParenthesizedTypeField::TypeAnn,
133518                    ));
133519                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
133520                        type_ann,
133521                        visitor,
133522                        &mut *__ast_path,
133523                    )
133524                };
133525                TsParenthesizedType { span, type_ann }
133526            }
133527        }
133528    }
133529}
133530#[cfg(any(docsrs, feature = "path"))]
133531#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133532impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsPropertySignature {
133533    #[doc = "Calls [FoldAstPath`::fold_ts_property_signature`] with `self`."]
133534    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133535        <V as FoldAstPath>::fold_ts_property_signature(visitor, self, __ast_path)
133536    }
133537
133538    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133539        match self {
133540            TsPropertySignature {
133541                span,
133542                readonly,
133543                key,
133544                computed,
133545                optional,
133546                type_ann,
133547            } => {
133548                let span = {
133549                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsPropertySignature(
133550                        self::fields::TsPropertySignatureField::Span,
133551                    ));
133552                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133553                        span,
133554                        visitor,
133555                        &mut *__ast_path,
133556                    )
133557                };
133558                let key = {
133559                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsPropertySignature(
133560                        self::fields::TsPropertySignatureField::Key,
133561                    ));
133562                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
133563                        key,
133564                        visitor,
133565                        &mut *__ast_path,
133566                    )
133567                };
133568                let type_ann = {
133569                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsPropertySignature(
133570                        self::fields::TsPropertySignatureField::TypeAnn,
133571                    ));
133572                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
133573                        type_ann,
133574                        visitor,
133575                        &mut *__ast_path,
133576                    )
133577                };
133578                TsPropertySignature {
133579                    span,
133580                    readonly,
133581                    key,
133582                    computed,
133583                    optional,
133584                    type_ann,
133585                }
133586            }
133587        }
133588    }
133589}
133590#[cfg(any(docsrs, feature = "path"))]
133591#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133592impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsQualifiedName {
133593    #[doc = "Calls [FoldAstPath`::fold_ts_qualified_name`] with `self`."]
133594    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133595        <V as FoldAstPath>::fold_ts_qualified_name(visitor, self, __ast_path)
133596    }
133597
133598    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133599        match self {
133600            TsQualifiedName { span, left, right } => {
133601                let span = {
133602                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsQualifiedName(
133603                        self::fields::TsQualifiedNameField::Span,
133604                    ));
133605                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133606                        span,
133607                        visitor,
133608                        &mut *__ast_path,
133609                    )
133610                };
133611                let left = {
133612                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsQualifiedName(
133613                        self::fields::TsQualifiedNameField::Left,
133614                    ));
133615                    <TsEntityName as FoldWithAstPath<V>>::fold_with_ast_path(
133616                        left,
133617                        visitor,
133618                        &mut *__ast_path,
133619                    )
133620                };
133621                let right = {
133622                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsQualifiedName(
133623                        self::fields::TsQualifiedNameField::Right,
133624                    ));
133625                    <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
133626                        right,
133627                        visitor,
133628                        &mut *__ast_path,
133629                    )
133630                };
133631                TsQualifiedName { span, left, right }
133632            }
133633        }
133634    }
133635}
133636#[cfg(any(docsrs, feature = "path"))]
133637#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133638impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsRestType {
133639    #[doc = "Calls [FoldAstPath`::fold_ts_rest_type`] with `self`."]
133640    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133641        <V as FoldAstPath>::fold_ts_rest_type(visitor, self, __ast_path)
133642    }
133643
133644    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133645        match self {
133646            TsRestType { span, type_ann } => {
133647                let span = {
133648                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsRestType(
133649                        self::fields::TsRestTypeField::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 type_ann = {
133658                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsRestType(
133659                        self::fields::TsRestTypeField::TypeAnn,
133660                    ));
133661                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
133662                        type_ann,
133663                        visitor,
133664                        &mut *__ast_path,
133665                    )
133666                };
133667                TsRestType { span, type_ann }
133668            }
133669        }
133670    }
133671}
133672#[cfg(any(docsrs, feature = "path"))]
133673#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133674impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsSatisfiesExpr {
133675    #[doc = "Calls [FoldAstPath`::fold_ts_satisfies_expr`] with `self`."]
133676    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133677        <V as FoldAstPath>::fold_ts_satisfies_expr(visitor, self, __ast_path)
133678    }
133679
133680    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133681        match self {
133682            TsSatisfiesExpr {
133683                span,
133684                expr,
133685                type_ann,
133686            } => {
133687                let span = {
133688                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSatisfiesExpr(
133689                        self::fields::TsSatisfiesExprField::Span,
133690                    ));
133691                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133692                        span,
133693                        visitor,
133694                        &mut *__ast_path,
133695                    )
133696                };
133697                let expr = {
133698                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSatisfiesExpr(
133699                        self::fields::TsSatisfiesExprField::Expr,
133700                    ));
133701                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
133702                        expr,
133703                        visitor,
133704                        &mut *__ast_path,
133705                    )
133706                };
133707                let type_ann = {
133708                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSatisfiesExpr(
133709                        self::fields::TsSatisfiesExprField::TypeAnn,
133710                    ));
133711                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
133712                        type_ann,
133713                        visitor,
133714                        &mut *__ast_path,
133715                    )
133716                };
133717                TsSatisfiesExpr {
133718                    span,
133719                    expr,
133720                    type_ann,
133721                }
133722            }
133723        }
133724    }
133725}
133726#[cfg(any(docsrs, feature = "path"))]
133727#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133728impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsSetterSignature {
133729    #[doc = "Calls [FoldAstPath`::fold_ts_setter_signature`] with `self`."]
133730    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133731        <V as FoldAstPath>::fold_ts_setter_signature(visitor, self, __ast_path)
133732    }
133733
133734    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133735        match self {
133736            TsSetterSignature {
133737                span,
133738                key,
133739                computed,
133740                param,
133741            } => {
133742                let span = {
133743                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSetterSignature(
133744                        self::fields::TsSetterSignatureField::Span,
133745                    ));
133746                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133747                        span,
133748                        visitor,
133749                        &mut *__ast_path,
133750                    )
133751                };
133752                let key = {
133753                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSetterSignature(
133754                        self::fields::TsSetterSignatureField::Key,
133755                    ));
133756                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
133757                        key,
133758                        visitor,
133759                        &mut *__ast_path,
133760                    )
133761                };
133762                let param = {
133763                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSetterSignature(
133764                        self::fields::TsSetterSignatureField::Param,
133765                    ));
133766                    <TsFnParam as FoldWithAstPath<V>>::fold_with_ast_path(
133767                        param,
133768                        visitor,
133769                        &mut *__ast_path,
133770                    )
133771                };
133772                TsSetterSignature {
133773                    span,
133774                    key,
133775                    computed,
133776                    param,
133777                }
133778            }
133779        }
133780    }
133781}
133782#[cfg(any(docsrs, feature = "path"))]
133783#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133784impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsThisType {
133785    #[doc = "Calls [FoldAstPath`::fold_ts_this_type`] with `self`."]
133786    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133787        <V as FoldAstPath>::fold_ts_this_type(visitor, self, __ast_path)
133788    }
133789
133790    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133791        match self {
133792            TsThisType { span } => {
133793                let span = {
133794                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsThisType(
133795                        self::fields::TsThisTypeField::Span,
133796                    ));
133797                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133798                        span,
133799                        visitor,
133800                        &mut *__ast_path,
133801                    )
133802                };
133803                TsThisType { span }
133804            }
133805        }
133806    }
133807}
133808#[cfg(any(docsrs, feature = "path"))]
133809#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133810impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsThisTypeOrIdent {
133811    #[doc = "Calls [FoldAstPath`::fold_ts_this_type_or_ident`] with `self`."]
133812    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133813        <V as FoldAstPath>::fold_ts_this_type_or_ident(visitor, self, __ast_path)
133814    }
133815
133816    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133817        match self {
133818            TsThisTypeOrIdent::TsThisType { 0: _field_0 } => {
133819                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsThisTypeOrIdent(
133820                    self::fields::TsThisTypeOrIdentField::TsThisType,
133821                ));
133822                let _field_0 = <TsThisType as FoldWithAstPath<V>>::fold_with_ast_path(
133823                    _field_0,
133824                    visitor,
133825                    &mut *__ast_path,
133826                );
133827                TsThisTypeOrIdent::TsThisType { 0: _field_0 }
133828            }
133829            TsThisTypeOrIdent::Ident { 0: _field_0 } => {
133830                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsThisTypeOrIdent(
133831                    self::fields::TsThisTypeOrIdentField::Ident,
133832                ));
133833                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
133834                    _field_0,
133835                    visitor,
133836                    &mut *__ast_path,
133837                );
133838                TsThisTypeOrIdent::Ident { 0: _field_0 }
133839            }
133840        }
133841    }
133842}
133843#[cfg(any(docsrs, feature = "path"))]
133844#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133845impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTplLitType {
133846    #[doc = "Calls [FoldAstPath`::fold_ts_tpl_lit_type`] with `self`."]
133847    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133848        <V as FoldAstPath>::fold_ts_tpl_lit_type(visitor, self, __ast_path)
133849    }
133850
133851    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133852        match self {
133853            TsTplLitType {
133854                span,
133855                types,
133856                quasis,
133857            } => {
133858                let span = {
133859                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTplLitType(
133860                        self::fields::TsTplLitTypeField::Span,
133861                    ));
133862                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133863                        span,
133864                        visitor,
133865                        &mut *__ast_path,
133866                    )
133867                };
133868                let types = {
133869                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTplLitType(
133870                        self::fields::TsTplLitTypeField::Types(usize::MAX),
133871                    ));
133872                    <Vec<Box<TsType>> as FoldWithAstPath<V>>::fold_with_ast_path(
133873                        types,
133874                        visitor,
133875                        &mut *__ast_path,
133876                    )
133877                };
133878                let quasis = {
133879                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTplLitType(
133880                        self::fields::TsTplLitTypeField::Quasis(usize::MAX),
133881                    ));
133882                    <Vec<TplElement> as FoldWithAstPath<V>>::fold_with_ast_path(
133883                        quasis,
133884                        visitor,
133885                        &mut *__ast_path,
133886                    )
133887                };
133888                TsTplLitType {
133889                    span,
133890                    types,
133891                    quasis,
133892                }
133893            }
133894        }
133895    }
133896}
133897#[cfg(any(docsrs, feature = "path"))]
133898#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133899impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTupleElement {
133900    #[doc = "Calls [FoldAstPath`::fold_ts_tuple_element`] with `self`."]
133901    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133902        <V as FoldAstPath>::fold_ts_tuple_element(visitor, self, __ast_path)
133903    }
133904
133905    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133906        match self {
133907            TsTupleElement { span, label, ty } => {
133908                let span = {
133909                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleElement(
133910                        self::fields::TsTupleElementField::Span,
133911                    ));
133912                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133913                        span,
133914                        visitor,
133915                        &mut *__ast_path,
133916                    )
133917                };
133918                let label = {
133919                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleElement(
133920                        self::fields::TsTupleElementField::Label,
133921                    ));
133922                    <Option<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
133923                        label,
133924                        visitor,
133925                        &mut *__ast_path,
133926                    )
133927                };
133928                let ty = {
133929                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleElement(
133930                        self::fields::TsTupleElementField::Ty,
133931                    ));
133932                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
133933                        ty,
133934                        visitor,
133935                        &mut *__ast_path,
133936                    )
133937                };
133938                TsTupleElement { span, label, ty }
133939            }
133940        }
133941    }
133942}
133943#[cfg(any(docsrs, feature = "path"))]
133944#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133945impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTupleType {
133946    #[doc = "Calls [FoldAstPath`::fold_ts_tuple_type`] with `self`."]
133947    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133948        <V as FoldAstPath>::fold_ts_tuple_type(visitor, self, __ast_path)
133949    }
133950
133951    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133952        match self {
133953            TsTupleType { span, elem_types } => {
133954                let span = {
133955                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleType(
133956                        self::fields::TsTupleTypeField::Span,
133957                    ));
133958                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133959                        span,
133960                        visitor,
133961                        &mut *__ast_path,
133962                    )
133963                };
133964                let elem_types = {
133965                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleType(
133966                        self::fields::TsTupleTypeField::ElemTypes(usize::MAX),
133967                    ));
133968                    <Vec<TsTupleElement> as FoldWithAstPath<V>>::fold_with_ast_path(
133969                        elem_types,
133970                        visitor,
133971                        &mut *__ast_path,
133972                    )
133973                };
133974                TsTupleType { span, elem_types }
133975            }
133976        }
133977    }
133978}
133979#[cfg(any(docsrs, feature = "path"))]
133980#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133981impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsType {
133982    #[doc = "Calls [FoldAstPath`::fold_ts_type`] with `self`."]
133983    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133984        <V as FoldAstPath>::fold_ts_type(visitor, self, __ast_path)
133985    }
133986
133987    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133988        match self {
133989            TsType::TsKeywordType { 0: _field_0 } => {
133990                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
133991                    self::fields::TsTypeField::TsKeywordType,
133992                ));
133993                let _field_0 = <TsKeywordType as FoldWithAstPath<V>>::fold_with_ast_path(
133994                    _field_0,
133995                    visitor,
133996                    &mut *__ast_path,
133997                );
133998                TsType::TsKeywordType { 0: _field_0 }
133999            }
134000            TsType::TsThisType { 0: _field_0 } => {
134001                let mut __ast_path = __ast_path
134002                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsThisType));
134003                let _field_0 = <TsThisType as FoldWithAstPath<V>>::fold_with_ast_path(
134004                    _field_0,
134005                    visitor,
134006                    &mut *__ast_path,
134007                );
134008                TsType::TsThisType { 0: _field_0 }
134009            }
134010            TsType::TsFnOrConstructorType { 0: _field_0 } => {
134011                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
134012                    self::fields::TsTypeField::TsFnOrConstructorType,
134013                ));
134014                let _field_0 = <TsFnOrConstructorType as FoldWithAstPath<V>>::fold_with_ast_path(
134015                    _field_0,
134016                    visitor,
134017                    &mut *__ast_path,
134018                );
134019                TsType::TsFnOrConstructorType { 0: _field_0 }
134020            }
134021            TsType::TsTypeRef { 0: _field_0 } => {
134022                let mut __ast_path = __ast_path
134023                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsTypeRef));
134024                let _field_0 = <TsTypeRef as FoldWithAstPath<V>>::fold_with_ast_path(
134025                    _field_0,
134026                    visitor,
134027                    &mut *__ast_path,
134028                );
134029                TsType::TsTypeRef { 0: _field_0 }
134030            }
134031            TsType::TsTypeQuery { 0: _field_0 } => {
134032                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
134033                    self::fields::TsTypeField::TsTypeQuery,
134034                ));
134035                let _field_0 = <TsTypeQuery as FoldWithAstPath<V>>::fold_with_ast_path(
134036                    _field_0,
134037                    visitor,
134038                    &mut *__ast_path,
134039                );
134040                TsType::TsTypeQuery { 0: _field_0 }
134041            }
134042            TsType::TsTypeLit { 0: _field_0 } => {
134043                let mut __ast_path = __ast_path
134044                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsTypeLit));
134045                let _field_0 = <TsTypeLit as FoldWithAstPath<V>>::fold_with_ast_path(
134046                    _field_0,
134047                    visitor,
134048                    &mut *__ast_path,
134049                );
134050                TsType::TsTypeLit { 0: _field_0 }
134051            }
134052            TsType::TsArrayType { 0: _field_0 } => {
134053                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
134054                    self::fields::TsTypeField::TsArrayType,
134055                ));
134056                let _field_0 = <TsArrayType as FoldWithAstPath<V>>::fold_with_ast_path(
134057                    _field_0,
134058                    visitor,
134059                    &mut *__ast_path,
134060                );
134061                TsType::TsArrayType { 0: _field_0 }
134062            }
134063            TsType::TsTupleType { 0: _field_0 } => {
134064                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
134065                    self::fields::TsTypeField::TsTupleType,
134066                ));
134067                let _field_0 = <TsTupleType as FoldWithAstPath<V>>::fold_with_ast_path(
134068                    _field_0,
134069                    visitor,
134070                    &mut *__ast_path,
134071                );
134072                TsType::TsTupleType { 0: _field_0 }
134073            }
134074            TsType::TsOptionalType { 0: _field_0 } => {
134075                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
134076                    self::fields::TsTypeField::TsOptionalType,
134077                ));
134078                let _field_0 = <TsOptionalType as FoldWithAstPath<V>>::fold_with_ast_path(
134079                    _field_0,
134080                    visitor,
134081                    &mut *__ast_path,
134082                );
134083                TsType::TsOptionalType { 0: _field_0 }
134084            }
134085            TsType::TsRestType { 0: _field_0 } => {
134086                let mut __ast_path = __ast_path
134087                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsRestType));
134088                let _field_0 = <TsRestType as FoldWithAstPath<V>>::fold_with_ast_path(
134089                    _field_0,
134090                    visitor,
134091                    &mut *__ast_path,
134092                );
134093                TsType::TsRestType { 0: _field_0 }
134094            }
134095            TsType::TsUnionOrIntersectionType { 0: _field_0 } => {
134096                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
134097                    self::fields::TsTypeField::TsUnionOrIntersectionType,
134098                ));
134099                let _field_0 =
134100                    <TsUnionOrIntersectionType as FoldWithAstPath<V>>::fold_with_ast_path(
134101                        _field_0,
134102                        visitor,
134103                        &mut *__ast_path,
134104                    );
134105                TsType::TsUnionOrIntersectionType { 0: _field_0 }
134106            }
134107            TsType::TsConditionalType { 0: _field_0 } => {
134108                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
134109                    self::fields::TsTypeField::TsConditionalType,
134110                ));
134111                let _field_0 = <TsConditionalType as FoldWithAstPath<V>>::fold_with_ast_path(
134112                    _field_0,
134113                    visitor,
134114                    &mut *__ast_path,
134115                );
134116                TsType::TsConditionalType { 0: _field_0 }
134117            }
134118            TsType::TsInferType { 0: _field_0 } => {
134119                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
134120                    self::fields::TsTypeField::TsInferType,
134121                ));
134122                let _field_0 = <TsInferType as FoldWithAstPath<V>>::fold_with_ast_path(
134123                    _field_0,
134124                    visitor,
134125                    &mut *__ast_path,
134126                );
134127                TsType::TsInferType { 0: _field_0 }
134128            }
134129            TsType::TsParenthesizedType { 0: _field_0 } => {
134130                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
134131                    self::fields::TsTypeField::TsParenthesizedType,
134132                ));
134133                let _field_0 = <TsParenthesizedType as FoldWithAstPath<V>>::fold_with_ast_path(
134134                    _field_0,
134135                    visitor,
134136                    &mut *__ast_path,
134137                );
134138                TsType::TsParenthesizedType { 0: _field_0 }
134139            }
134140            TsType::TsTypeOperator { 0: _field_0 } => {
134141                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
134142                    self::fields::TsTypeField::TsTypeOperator,
134143                ));
134144                let _field_0 = <TsTypeOperator as FoldWithAstPath<V>>::fold_with_ast_path(
134145                    _field_0,
134146                    visitor,
134147                    &mut *__ast_path,
134148                );
134149                TsType::TsTypeOperator { 0: _field_0 }
134150            }
134151            TsType::TsIndexedAccessType { 0: _field_0 } => {
134152                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
134153                    self::fields::TsTypeField::TsIndexedAccessType,
134154                ));
134155                let _field_0 = <TsIndexedAccessType as FoldWithAstPath<V>>::fold_with_ast_path(
134156                    _field_0,
134157                    visitor,
134158                    &mut *__ast_path,
134159                );
134160                TsType::TsIndexedAccessType { 0: _field_0 }
134161            }
134162            TsType::TsMappedType { 0: _field_0 } => {
134163                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
134164                    self::fields::TsTypeField::TsMappedType,
134165                ));
134166                let _field_0 = <TsMappedType as FoldWithAstPath<V>>::fold_with_ast_path(
134167                    _field_0,
134168                    visitor,
134169                    &mut *__ast_path,
134170                );
134171                TsType::TsMappedType { 0: _field_0 }
134172            }
134173            TsType::TsLitType { 0: _field_0 } => {
134174                let mut __ast_path = __ast_path
134175                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsLitType));
134176                let _field_0 = <TsLitType as FoldWithAstPath<V>>::fold_with_ast_path(
134177                    _field_0,
134178                    visitor,
134179                    &mut *__ast_path,
134180                );
134181                TsType::TsLitType { 0: _field_0 }
134182            }
134183            TsType::TsTypePredicate { 0: _field_0 } => {
134184                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
134185                    self::fields::TsTypeField::TsTypePredicate,
134186                ));
134187                let _field_0 = <TsTypePredicate as FoldWithAstPath<V>>::fold_with_ast_path(
134188                    _field_0,
134189                    visitor,
134190                    &mut *__ast_path,
134191                );
134192                TsType::TsTypePredicate { 0: _field_0 }
134193            }
134194            TsType::TsImportType { 0: _field_0 } => {
134195                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
134196                    self::fields::TsTypeField::TsImportType,
134197                ));
134198                let _field_0 = <TsImportType as FoldWithAstPath<V>>::fold_with_ast_path(
134199                    _field_0,
134200                    visitor,
134201                    &mut *__ast_path,
134202                );
134203                TsType::TsImportType { 0: _field_0 }
134204            }
134205        }
134206    }
134207}
134208#[cfg(any(docsrs, feature = "path"))]
134209#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134210impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeAliasDecl {
134211    #[doc = "Calls [FoldAstPath`::fold_ts_type_alias_decl`] with `self`."]
134212    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134213        <V as FoldAstPath>::fold_ts_type_alias_decl(visitor, self, __ast_path)
134214    }
134215
134216    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134217        match self {
134218            TsTypeAliasDecl {
134219                span,
134220                declare,
134221                id,
134222                type_params,
134223                type_ann,
134224            } => {
134225                let span = {
134226                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAliasDecl(
134227                        self::fields::TsTypeAliasDeclField::Span,
134228                    ));
134229                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134230                        span,
134231                        visitor,
134232                        &mut *__ast_path,
134233                    )
134234                };
134235                let id = {
134236                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAliasDecl(
134237                        self::fields::TsTypeAliasDeclField::Id,
134238                    ));
134239                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(id, visitor, &mut *__ast_path)
134240                };
134241                let type_params = {
134242                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAliasDecl(
134243                        self::fields::TsTypeAliasDeclField::TypeParams,
134244                    ));
134245                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
134246                        type_params,
134247                        visitor,
134248                        &mut *__ast_path,
134249                    )
134250                };
134251                let type_ann = {
134252                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAliasDecl(
134253                        self::fields::TsTypeAliasDeclField::TypeAnn,
134254                    ));
134255                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
134256                        type_ann,
134257                        visitor,
134258                        &mut *__ast_path,
134259                    )
134260                };
134261                TsTypeAliasDecl {
134262                    span,
134263                    declare,
134264                    id,
134265                    type_params,
134266                    type_ann,
134267                }
134268            }
134269        }
134270    }
134271}
134272#[cfg(any(docsrs, feature = "path"))]
134273#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134274impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeAnn {
134275    #[doc = "Calls [FoldAstPath`::fold_ts_type_ann`] with `self`."]
134276    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134277        <V as FoldAstPath>::fold_ts_type_ann(visitor, self, __ast_path)
134278    }
134279
134280    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134281        match self {
134282            TsTypeAnn { span, type_ann } => {
134283                let span = {
134284                    let mut __ast_path = __ast_path
134285                        .with_guard(AstParentKind::TsTypeAnn(self::fields::TsTypeAnnField::Span));
134286                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134287                        span,
134288                        visitor,
134289                        &mut *__ast_path,
134290                    )
134291                };
134292                let type_ann = {
134293                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAnn(
134294                        self::fields::TsTypeAnnField::TypeAnn,
134295                    ));
134296                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
134297                        type_ann,
134298                        visitor,
134299                        &mut *__ast_path,
134300                    )
134301                };
134302                TsTypeAnn { span, type_ann }
134303            }
134304        }
134305    }
134306}
134307#[cfg(any(docsrs, feature = "path"))]
134308#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134309impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeAssertion {
134310    #[doc = "Calls [FoldAstPath`::fold_ts_type_assertion`] with `self`."]
134311    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134312        <V as FoldAstPath>::fold_ts_type_assertion(visitor, self, __ast_path)
134313    }
134314
134315    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134316        match self {
134317            TsTypeAssertion {
134318                span,
134319                expr,
134320                type_ann,
134321            } => {
134322                let span = {
134323                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAssertion(
134324                        self::fields::TsTypeAssertionField::Span,
134325                    ));
134326                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134327                        span,
134328                        visitor,
134329                        &mut *__ast_path,
134330                    )
134331                };
134332                let expr = {
134333                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAssertion(
134334                        self::fields::TsTypeAssertionField::Expr,
134335                    ));
134336                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
134337                        expr,
134338                        visitor,
134339                        &mut *__ast_path,
134340                    )
134341                };
134342                let type_ann = {
134343                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAssertion(
134344                        self::fields::TsTypeAssertionField::TypeAnn,
134345                    ));
134346                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
134347                        type_ann,
134348                        visitor,
134349                        &mut *__ast_path,
134350                    )
134351                };
134352                TsTypeAssertion {
134353                    span,
134354                    expr,
134355                    type_ann,
134356                }
134357            }
134358        }
134359    }
134360}
134361#[cfg(any(docsrs, feature = "path"))]
134362#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134363impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeElement {
134364    #[doc = "Calls [FoldAstPath`::fold_ts_type_element`] with `self`."]
134365    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134366        <V as FoldAstPath>::fold_ts_type_element(visitor, self, __ast_path)
134367    }
134368
134369    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134370        match self {
134371            TsTypeElement::TsCallSignatureDecl { 0: _field_0 } => {
134372                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
134373                    self::fields::TsTypeElementField::TsCallSignatureDecl,
134374                ));
134375                let _field_0 = <TsCallSignatureDecl as FoldWithAstPath<V>>::fold_with_ast_path(
134376                    _field_0,
134377                    visitor,
134378                    &mut *__ast_path,
134379                );
134380                TsTypeElement::TsCallSignatureDecl { 0: _field_0 }
134381            }
134382            TsTypeElement::TsConstructSignatureDecl { 0: _field_0 } => {
134383                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
134384                    self::fields::TsTypeElementField::TsConstructSignatureDecl,
134385                ));
134386                let _field_0 = <TsConstructSignatureDecl as FoldWithAstPath<V>>::fold_with_ast_path(
134387                    _field_0,
134388                    visitor,
134389                    &mut *__ast_path,
134390                );
134391                TsTypeElement::TsConstructSignatureDecl { 0: _field_0 }
134392            }
134393            TsTypeElement::TsPropertySignature { 0: _field_0 } => {
134394                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
134395                    self::fields::TsTypeElementField::TsPropertySignature,
134396                ));
134397                let _field_0 = <TsPropertySignature as FoldWithAstPath<V>>::fold_with_ast_path(
134398                    _field_0,
134399                    visitor,
134400                    &mut *__ast_path,
134401                );
134402                TsTypeElement::TsPropertySignature { 0: _field_0 }
134403            }
134404            TsTypeElement::TsGetterSignature { 0: _field_0 } => {
134405                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
134406                    self::fields::TsTypeElementField::TsGetterSignature,
134407                ));
134408                let _field_0 = <TsGetterSignature as FoldWithAstPath<V>>::fold_with_ast_path(
134409                    _field_0,
134410                    visitor,
134411                    &mut *__ast_path,
134412                );
134413                TsTypeElement::TsGetterSignature { 0: _field_0 }
134414            }
134415            TsTypeElement::TsSetterSignature { 0: _field_0 } => {
134416                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
134417                    self::fields::TsTypeElementField::TsSetterSignature,
134418                ));
134419                let _field_0 = <TsSetterSignature as FoldWithAstPath<V>>::fold_with_ast_path(
134420                    _field_0,
134421                    visitor,
134422                    &mut *__ast_path,
134423                );
134424                TsTypeElement::TsSetterSignature { 0: _field_0 }
134425            }
134426            TsTypeElement::TsMethodSignature { 0: _field_0 } => {
134427                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
134428                    self::fields::TsTypeElementField::TsMethodSignature,
134429                ));
134430                let _field_0 = <TsMethodSignature as FoldWithAstPath<V>>::fold_with_ast_path(
134431                    _field_0,
134432                    visitor,
134433                    &mut *__ast_path,
134434                );
134435                TsTypeElement::TsMethodSignature { 0: _field_0 }
134436            }
134437            TsTypeElement::TsIndexSignature { 0: _field_0 } => {
134438                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
134439                    self::fields::TsTypeElementField::TsIndexSignature,
134440                ));
134441                let _field_0 = <TsIndexSignature as FoldWithAstPath<V>>::fold_with_ast_path(
134442                    _field_0,
134443                    visitor,
134444                    &mut *__ast_path,
134445                );
134446                TsTypeElement::TsIndexSignature { 0: _field_0 }
134447            }
134448        }
134449    }
134450}
134451#[cfg(any(docsrs, feature = "path"))]
134452#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134453impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeLit {
134454    #[doc = "Calls [FoldAstPath`::fold_ts_type_lit`] with `self`."]
134455    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134456        <V as FoldAstPath>::fold_ts_type_lit(visitor, self, __ast_path)
134457    }
134458
134459    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134460        match self {
134461            TsTypeLit { span, members } => {
134462                let span = {
134463                    let mut __ast_path = __ast_path
134464                        .with_guard(AstParentKind::TsTypeLit(self::fields::TsTypeLitField::Span));
134465                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134466                        span,
134467                        visitor,
134468                        &mut *__ast_path,
134469                    )
134470                };
134471                let members = {
134472                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeLit(
134473                        self::fields::TsTypeLitField::Members(usize::MAX),
134474                    ));
134475                    <Vec<TsTypeElement> as FoldWithAstPath<V>>::fold_with_ast_path(
134476                        members,
134477                        visitor,
134478                        &mut *__ast_path,
134479                    )
134480                };
134481                TsTypeLit { span, members }
134482            }
134483        }
134484    }
134485}
134486#[cfg(any(docsrs, feature = "path"))]
134487#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134488impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeOperator {
134489    #[doc = "Calls [FoldAstPath`::fold_ts_type_operator`] with `self`."]
134490    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134491        <V as FoldAstPath>::fold_ts_type_operator(visitor, self, __ast_path)
134492    }
134493
134494    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134495        match self {
134496            TsTypeOperator { span, op, type_ann } => {
134497                let span = {
134498                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeOperator(
134499                        self::fields::TsTypeOperatorField::Span,
134500                    ));
134501                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134502                        span,
134503                        visitor,
134504                        &mut *__ast_path,
134505                    )
134506                };
134507                let op = {
134508                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeOperator(
134509                        self::fields::TsTypeOperatorField::Op,
134510                    ));
134511                    <TsTypeOperatorOp as FoldWithAstPath<V>>::fold_with_ast_path(
134512                        op,
134513                        visitor,
134514                        &mut *__ast_path,
134515                    )
134516                };
134517                let type_ann = {
134518                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeOperator(
134519                        self::fields::TsTypeOperatorField::TypeAnn,
134520                    ));
134521                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
134522                        type_ann,
134523                        visitor,
134524                        &mut *__ast_path,
134525                    )
134526                };
134527                TsTypeOperator { span, op, type_ann }
134528            }
134529        }
134530    }
134531}
134532#[cfg(any(docsrs, feature = "path"))]
134533#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134534impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeOperatorOp {
134535    #[doc = "Calls [FoldAstPath`::fold_ts_type_operator_op`] with `self`."]
134536    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134537        <V as FoldAstPath>::fold_ts_type_operator_op(visitor, self, __ast_path)
134538    }
134539
134540    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134541        match self {
134542            TsTypeOperatorOp::KeyOf => TsTypeOperatorOp::KeyOf,
134543            TsTypeOperatorOp::Unique => TsTypeOperatorOp::Unique,
134544            TsTypeOperatorOp::ReadOnly => TsTypeOperatorOp::ReadOnly,
134545        }
134546    }
134547}
134548#[cfg(any(docsrs, feature = "path"))]
134549#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134550impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeParam {
134551    #[doc = "Calls [FoldAstPath`::fold_ts_type_param`] with `self`."]
134552    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134553        <V as FoldAstPath>::fold_ts_type_param(visitor, self, __ast_path)
134554    }
134555
134556    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134557        match self {
134558            TsTypeParam {
134559                span,
134560                name,
134561                is_in,
134562                is_out,
134563                is_const,
134564                constraint,
134565                default,
134566            } => {
134567                let span = {
134568                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParam(
134569                        self::fields::TsTypeParamField::Span,
134570                    ));
134571                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134572                        span,
134573                        visitor,
134574                        &mut *__ast_path,
134575                    )
134576                };
134577                let name = {
134578                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParam(
134579                        self::fields::TsTypeParamField::Name,
134580                    ));
134581                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
134582                        name,
134583                        visitor,
134584                        &mut *__ast_path,
134585                    )
134586                };
134587                let constraint = {
134588                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParam(
134589                        self::fields::TsTypeParamField::Constraint,
134590                    ));
134591                    <Option<Box<TsType>> as FoldWithAstPath<V>>::fold_with_ast_path(
134592                        constraint,
134593                        visitor,
134594                        &mut *__ast_path,
134595                    )
134596                };
134597                let default = {
134598                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParam(
134599                        self::fields::TsTypeParamField::Default,
134600                    ));
134601                    <Option<Box<TsType>> as FoldWithAstPath<V>>::fold_with_ast_path(
134602                        default,
134603                        visitor,
134604                        &mut *__ast_path,
134605                    )
134606                };
134607                TsTypeParam {
134608                    span,
134609                    name,
134610                    is_in,
134611                    is_out,
134612                    is_const,
134613                    constraint,
134614                    default,
134615                }
134616            }
134617        }
134618    }
134619}
134620#[cfg(any(docsrs, feature = "path"))]
134621#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134622impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeParamDecl {
134623    #[doc = "Calls [FoldAstPath`::fold_ts_type_param_decl`] with `self`."]
134624    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134625        <V as FoldAstPath>::fold_ts_type_param_decl(visitor, self, __ast_path)
134626    }
134627
134628    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134629        match self {
134630            TsTypeParamDecl { span, params } => {
134631                let span = {
134632                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParamDecl(
134633                        self::fields::TsTypeParamDeclField::Span,
134634                    ));
134635                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134636                        span,
134637                        visitor,
134638                        &mut *__ast_path,
134639                    )
134640                };
134641                let params = {
134642                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParamDecl(
134643                        self::fields::TsTypeParamDeclField::Params(usize::MAX),
134644                    ));
134645                    <Vec<TsTypeParam> as FoldWithAstPath<V>>::fold_with_ast_path(
134646                        params,
134647                        visitor,
134648                        &mut *__ast_path,
134649                    )
134650                };
134651                TsTypeParamDecl { span, params }
134652            }
134653        }
134654    }
134655}
134656#[cfg(any(docsrs, feature = "path"))]
134657#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134658impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeParamInstantiation {
134659    #[doc = "Calls [FoldAstPath`::fold_ts_type_param_instantiation`] with `self`."]
134660    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134661        <V as FoldAstPath>::fold_ts_type_param_instantiation(visitor, self, __ast_path)
134662    }
134663
134664    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134665        match self {
134666            TsTypeParamInstantiation { span, params } => {
134667                let span = {
134668                    let mut __ast_path =
134669                        __ast_path.with_guard(AstParentKind::TsTypeParamInstantiation(
134670                            self::fields::TsTypeParamInstantiationField::Span,
134671                        ));
134672                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134673                        span,
134674                        visitor,
134675                        &mut *__ast_path,
134676                    )
134677                };
134678                let params = {
134679                    let mut __ast_path =
134680                        __ast_path.with_guard(AstParentKind::TsTypeParamInstantiation(
134681                            self::fields::TsTypeParamInstantiationField::Params(usize::MAX),
134682                        ));
134683                    <Vec<Box<TsType>> as FoldWithAstPath<V>>::fold_with_ast_path(
134684                        params,
134685                        visitor,
134686                        &mut *__ast_path,
134687                    )
134688                };
134689                TsTypeParamInstantiation { span, params }
134690            }
134691        }
134692    }
134693}
134694#[cfg(any(docsrs, feature = "path"))]
134695#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134696impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypePredicate {
134697    #[doc = "Calls [FoldAstPath`::fold_ts_type_predicate`] with `self`."]
134698    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134699        <V as FoldAstPath>::fold_ts_type_predicate(visitor, self, __ast_path)
134700    }
134701
134702    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134703        match self {
134704            TsTypePredicate {
134705                span,
134706                asserts,
134707                param_name,
134708                type_ann,
134709            } => {
134710                let span = {
134711                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypePredicate(
134712                        self::fields::TsTypePredicateField::Span,
134713                    ));
134714                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134715                        span,
134716                        visitor,
134717                        &mut *__ast_path,
134718                    )
134719                };
134720                let param_name = {
134721                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypePredicate(
134722                        self::fields::TsTypePredicateField::ParamName,
134723                    ));
134724                    <TsThisTypeOrIdent as FoldWithAstPath<V>>::fold_with_ast_path(
134725                        param_name,
134726                        visitor,
134727                        &mut *__ast_path,
134728                    )
134729                };
134730                let type_ann = {
134731                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypePredicate(
134732                        self::fields::TsTypePredicateField::TypeAnn,
134733                    ));
134734                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
134735                        type_ann,
134736                        visitor,
134737                        &mut *__ast_path,
134738                    )
134739                };
134740                TsTypePredicate {
134741                    span,
134742                    asserts,
134743                    param_name,
134744                    type_ann,
134745                }
134746            }
134747        }
134748    }
134749}
134750#[cfg(any(docsrs, feature = "path"))]
134751#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134752impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeQuery {
134753    #[doc = "Calls [FoldAstPath`::fold_ts_type_query`] with `self`."]
134754    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134755        <V as FoldAstPath>::fold_ts_type_query(visitor, self, __ast_path)
134756    }
134757
134758    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134759        match self {
134760            TsTypeQuery {
134761                span,
134762                expr_name,
134763                type_args,
134764            } => {
134765                let span = {
134766                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQuery(
134767                        self::fields::TsTypeQueryField::Span,
134768                    ));
134769                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134770                        span,
134771                        visitor,
134772                        &mut *__ast_path,
134773                    )
134774                };
134775                let expr_name = {
134776                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQuery(
134777                        self::fields::TsTypeQueryField::ExprName,
134778                    ));
134779                    <TsTypeQueryExpr as FoldWithAstPath<V>>::fold_with_ast_path(
134780                        expr_name,
134781                        visitor,
134782                        &mut *__ast_path,
134783                    )
134784                };
134785                let type_args = {
134786                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQuery(
134787                        self::fields::TsTypeQueryField::TypeArgs,
134788                    ));
134789                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_args , visitor , & mut * __ast_path)
134790                };
134791                TsTypeQuery {
134792                    span,
134793                    expr_name,
134794                    type_args,
134795                }
134796            }
134797        }
134798    }
134799}
134800#[cfg(any(docsrs, feature = "path"))]
134801#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134802impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeQueryExpr {
134803    #[doc = "Calls [FoldAstPath`::fold_ts_type_query_expr`] with `self`."]
134804    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134805        <V as FoldAstPath>::fold_ts_type_query_expr(visitor, self, __ast_path)
134806    }
134807
134808    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134809        match self {
134810            TsTypeQueryExpr::TsEntityName { 0: _field_0 } => {
134811                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQueryExpr(
134812                    self::fields::TsTypeQueryExprField::TsEntityName,
134813                ));
134814                let _field_0 = <TsEntityName as FoldWithAstPath<V>>::fold_with_ast_path(
134815                    _field_0,
134816                    visitor,
134817                    &mut *__ast_path,
134818                );
134819                TsTypeQueryExpr::TsEntityName { 0: _field_0 }
134820            }
134821            TsTypeQueryExpr::Import { 0: _field_0 } => {
134822                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQueryExpr(
134823                    self::fields::TsTypeQueryExprField::Import,
134824                ));
134825                let _field_0 = <TsImportType as FoldWithAstPath<V>>::fold_with_ast_path(
134826                    _field_0,
134827                    visitor,
134828                    &mut *__ast_path,
134829                );
134830                TsTypeQueryExpr::Import { 0: _field_0 }
134831            }
134832        }
134833    }
134834}
134835#[cfg(any(docsrs, feature = "path"))]
134836#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134837impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeRef {
134838    #[doc = "Calls [FoldAstPath`::fold_ts_type_ref`] with `self`."]
134839    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134840        <V as FoldAstPath>::fold_ts_type_ref(visitor, self, __ast_path)
134841    }
134842
134843    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134844        match self {
134845            TsTypeRef {
134846                span,
134847                type_name,
134848                type_params,
134849            } => {
134850                let span = {
134851                    let mut __ast_path = __ast_path
134852                        .with_guard(AstParentKind::TsTypeRef(self::fields::TsTypeRefField::Span));
134853                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134854                        span,
134855                        visitor,
134856                        &mut *__ast_path,
134857                    )
134858                };
134859                let type_name = {
134860                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeRef(
134861                        self::fields::TsTypeRefField::TypeName,
134862                    ));
134863                    <TsEntityName as FoldWithAstPath<V>>::fold_with_ast_path(
134864                        type_name,
134865                        visitor,
134866                        &mut *__ast_path,
134867                    )
134868                };
134869                let type_params = {
134870                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeRef(
134871                        self::fields::TsTypeRefField::TypeParams,
134872                    ));
134873                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_params , visitor , & mut * __ast_path)
134874                };
134875                TsTypeRef {
134876                    span,
134877                    type_name,
134878                    type_params,
134879                }
134880            }
134881        }
134882    }
134883}
134884#[cfg(any(docsrs, feature = "path"))]
134885#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134886impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsUnionOrIntersectionType {
134887    #[doc = "Calls [FoldAstPath`::fold_ts_union_or_intersection_type`] with `self`."]
134888    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134889        <V as FoldAstPath>::fold_ts_union_or_intersection_type(visitor, self, __ast_path)
134890    }
134891
134892    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134893        match self {
134894            TsUnionOrIntersectionType::TsUnionType { 0: _field_0 } => {
134895                let mut __ast_path =
134896                    __ast_path.with_guard(AstParentKind::TsUnionOrIntersectionType(
134897                        self::fields::TsUnionOrIntersectionTypeField::TsUnionType,
134898                    ));
134899                let _field_0 = <TsUnionType as FoldWithAstPath<V>>::fold_with_ast_path(
134900                    _field_0,
134901                    visitor,
134902                    &mut *__ast_path,
134903                );
134904                TsUnionOrIntersectionType::TsUnionType { 0: _field_0 }
134905            }
134906            TsUnionOrIntersectionType::TsIntersectionType { 0: _field_0 } => {
134907                let mut __ast_path =
134908                    __ast_path.with_guard(AstParentKind::TsUnionOrIntersectionType(
134909                        self::fields::TsUnionOrIntersectionTypeField::TsIntersectionType,
134910                    ));
134911                let _field_0 = <TsIntersectionType as FoldWithAstPath<V>>::fold_with_ast_path(
134912                    _field_0,
134913                    visitor,
134914                    &mut *__ast_path,
134915                );
134916                TsUnionOrIntersectionType::TsIntersectionType { 0: _field_0 }
134917            }
134918        }
134919    }
134920}
134921#[cfg(any(docsrs, feature = "path"))]
134922#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134923impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsUnionType {
134924    #[doc = "Calls [FoldAstPath`::fold_ts_union_type`] with `self`."]
134925    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134926        <V as FoldAstPath>::fold_ts_union_type(visitor, self, __ast_path)
134927    }
134928
134929    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134930        match self {
134931            TsUnionType { span, types } => {
134932                let span = {
134933                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsUnionType(
134934                        self::fields::TsUnionTypeField::Span,
134935                    ));
134936                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134937                        span,
134938                        visitor,
134939                        &mut *__ast_path,
134940                    )
134941                };
134942                let types = {
134943                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsUnionType(
134944                        self::fields::TsUnionTypeField::Types(usize::MAX),
134945                    ));
134946                    <Vec<Box<TsType>> as FoldWithAstPath<V>>::fold_with_ast_path(
134947                        types,
134948                        visitor,
134949                        &mut *__ast_path,
134950                    )
134951                };
134952                TsUnionType { span, types }
134953            }
134954        }
134955    }
134956}
134957#[cfg(any(docsrs, feature = "path"))]
134958#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134959impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for UnaryExpr {
134960    #[doc = "Calls [FoldAstPath`::fold_unary_expr`] with `self`."]
134961    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134962        <V as FoldAstPath>::fold_unary_expr(visitor, self, __ast_path)
134963    }
134964
134965    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134966        match self {
134967            UnaryExpr { span, op, arg } => {
134968                let span = {
134969                    let mut __ast_path = __ast_path
134970                        .with_guard(AstParentKind::UnaryExpr(self::fields::UnaryExprField::Span));
134971                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134972                        span,
134973                        visitor,
134974                        &mut *__ast_path,
134975                    )
134976                };
134977                let op = {
134978                    let mut __ast_path = __ast_path
134979                        .with_guard(AstParentKind::UnaryExpr(self::fields::UnaryExprField::Op));
134980                    <UnaryOp as FoldWithAstPath<V>>::fold_with_ast_path(
134981                        op,
134982                        visitor,
134983                        &mut *__ast_path,
134984                    )
134985                };
134986                let arg = {
134987                    let mut __ast_path = __ast_path
134988                        .with_guard(AstParentKind::UnaryExpr(self::fields::UnaryExprField::Arg));
134989                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
134990                        arg,
134991                        visitor,
134992                        &mut *__ast_path,
134993                    )
134994                };
134995                UnaryExpr { span, op, arg }
134996            }
134997        }
134998    }
134999}
135000#[cfg(any(docsrs, feature = "path"))]
135001#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135002impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for UnaryOp {
135003    #[doc = "Calls [FoldAstPath`::fold_unary_op`] with `self`."]
135004    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135005        <V as FoldAstPath>::fold_unary_op(visitor, self, __ast_path)
135006    }
135007
135008    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135009        match self {
135010            UnaryOp::Minus => UnaryOp::Minus,
135011            UnaryOp::Plus => UnaryOp::Plus,
135012            UnaryOp::Bang => UnaryOp::Bang,
135013            UnaryOp::Tilde => UnaryOp::Tilde,
135014            UnaryOp::TypeOf => UnaryOp::TypeOf,
135015            UnaryOp::Void => UnaryOp::Void,
135016            UnaryOp::Delete => UnaryOp::Delete,
135017        }
135018    }
135019}
135020#[cfg(any(docsrs, feature = "path"))]
135021#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135022impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for UpdateExpr {
135023    #[doc = "Calls [FoldAstPath`::fold_update_expr`] with `self`."]
135024    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135025        <V as FoldAstPath>::fold_update_expr(visitor, self, __ast_path)
135026    }
135027
135028    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135029        match self {
135030            UpdateExpr {
135031                span,
135032                op,
135033                prefix,
135034                arg,
135035            } => {
135036                let span = {
135037                    let mut __ast_path = __ast_path.with_guard(AstParentKind::UpdateExpr(
135038                        self::fields::UpdateExprField::Span,
135039                    ));
135040                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
135041                        span,
135042                        visitor,
135043                        &mut *__ast_path,
135044                    )
135045                };
135046                let op = {
135047                    let mut __ast_path = __ast_path
135048                        .with_guard(AstParentKind::UpdateExpr(self::fields::UpdateExprField::Op));
135049                    <UpdateOp as FoldWithAstPath<V>>::fold_with_ast_path(
135050                        op,
135051                        visitor,
135052                        &mut *__ast_path,
135053                    )
135054                };
135055                let arg = {
135056                    let mut __ast_path = __ast_path.with_guard(AstParentKind::UpdateExpr(
135057                        self::fields::UpdateExprField::Arg,
135058                    ));
135059                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
135060                        arg,
135061                        visitor,
135062                        &mut *__ast_path,
135063                    )
135064                };
135065                UpdateExpr {
135066                    span,
135067                    op,
135068                    prefix,
135069                    arg,
135070                }
135071            }
135072        }
135073    }
135074}
135075#[cfg(any(docsrs, feature = "path"))]
135076#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135077impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for UpdateOp {
135078    #[doc = "Calls [FoldAstPath`::fold_update_op`] with `self`."]
135079    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135080        <V as FoldAstPath>::fold_update_op(visitor, self, __ast_path)
135081    }
135082
135083    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135084        match self {
135085            UpdateOp::PlusPlus => UpdateOp::PlusPlus,
135086            UpdateOp::MinusMinus => UpdateOp::MinusMinus,
135087        }
135088    }
135089}
135090#[cfg(any(docsrs, feature = "path"))]
135091#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135092impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for UsingDecl {
135093    #[doc = "Calls [FoldAstPath`::fold_using_decl`] with `self`."]
135094    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135095        <V as FoldAstPath>::fold_using_decl(visitor, self, __ast_path)
135096    }
135097
135098    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135099        match self {
135100            UsingDecl {
135101                span,
135102                is_await,
135103                decls,
135104            } => {
135105                let span = {
135106                    let mut __ast_path = __ast_path
135107                        .with_guard(AstParentKind::UsingDecl(self::fields::UsingDeclField::Span));
135108                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
135109                        span,
135110                        visitor,
135111                        &mut *__ast_path,
135112                    )
135113                };
135114                let decls = {
135115                    let mut __ast_path = __ast_path.with_guard(AstParentKind::UsingDecl(
135116                        self::fields::UsingDeclField::Decls(usize::MAX),
135117                    ));
135118                    <Vec<VarDeclarator> as FoldWithAstPath<V>>::fold_with_ast_path(
135119                        decls,
135120                        visitor,
135121                        &mut *__ast_path,
135122                    )
135123                };
135124                UsingDecl {
135125                    span,
135126                    is_await,
135127                    decls,
135128                }
135129            }
135130        }
135131    }
135132}
135133#[cfg(any(docsrs, feature = "path"))]
135134#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135135impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for VarDecl {
135136    #[doc = "Calls [FoldAstPath`::fold_var_decl`] with `self`."]
135137    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135138        <V as FoldAstPath>::fold_var_decl(visitor, self, __ast_path)
135139    }
135140
135141    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135142        match self {
135143            VarDecl {
135144                span,
135145                ctxt,
135146                kind,
135147                declare,
135148                decls,
135149            } => {
135150                let span = {
135151                    let mut __ast_path = __ast_path
135152                        .with_guard(AstParentKind::VarDecl(self::fields::VarDeclField::Span));
135153                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
135154                        span,
135155                        visitor,
135156                        &mut *__ast_path,
135157                    )
135158                };
135159                let ctxt = {
135160                    let mut __ast_path = __ast_path
135161                        .with_guard(AstParentKind::VarDecl(self::fields::VarDeclField::Ctxt));
135162                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
135163                        ctxt,
135164                        visitor,
135165                        &mut *__ast_path,
135166                    )
135167                };
135168                let kind = {
135169                    let mut __ast_path = __ast_path
135170                        .with_guard(AstParentKind::VarDecl(self::fields::VarDeclField::Kind));
135171                    <VarDeclKind as FoldWithAstPath<V>>::fold_with_ast_path(
135172                        kind,
135173                        visitor,
135174                        &mut *__ast_path,
135175                    )
135176                };
135177                let decls = {
135178                    let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDecl(
135179                        self::fields::VarDeclField::Decls(usize::MAX),
135180                    ));
135181                    <Vec<VarDeclarator> as FoldWithAstPath<V>>::fold_with_ast_path(
135182                        decls,
135183                        visitor,
135184                        &mut *__ast_path,
135185                    )
135186                };
135187                VarDecl {
135188                    span,
135189                    ctxt,
135190                    kind,
135191                    declare,
135192                    decls,
135193                }
135194            }
135195        }
135196    }
135197}
135198#[cfg(any(docsrs, feature = "path"))]
135199#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135200impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for VarDeclKind {
135201    #[doc = "Calls [FoldAstPath`::fold_var_decl_kind`] with `self`."]
135202    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135203        <V as FoldAstPath>::fold_var_decl_kind(visitor, self, __ast_path)
135204    }
135205
135206    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135207        match self {
135208            VarDeclKind::Var => VarDeclKind::Var,
135209            VarDeclKind::Let => VarDeclKind::Let,
135210            VarDeclKind::Const => VarDeclKind::Const,
135211        }
135212    }
135213}
135214#[cfg(any(docsrs, feature = "path"))]
135215#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135216impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for VarDeclOrExpr {
135217    #[doc = "Calls [FoldAstPath`::fold_var_decl_or_expr`] with `self`."]
135218    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135219        <V as FoldAstPath>::fold_var_decl_or_expr(visitor, self, __ast_path)
135220    }
135221
135222    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135223        match self {
135224            VarDeclOrExpr::VarDecl { 0: _field_0 } => {
135225                let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclOrExpr(
135226                    self::fields::VarDeclOrExprField::VarDecl,
135227                ));
135228                let _field_0 = <Box<VarDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
135229                    _field_0,
135230                    visitor,
135231                    &mut *__ast_path,
135232                );
135233                VarDeclOrExpr::VarDecl { 0: _field_0 }
135234            }
135235            VarDeclOrExpr::Expr { 0: _field_0 } => {
135236                let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclOrExpr(
135237                    self::fields::VarDeclOrExprField::Expr,
135238                ));
135239                let _field_0 = <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
135240                    _field_0,
135241                    visitor,
135242                    &mut *__ast_path,
135243                );
135244                VarDeclOrExpr::Expr { 0: _field_0 }
135245            }
135246        }
135247    }
135248}
135249#[cfg(any(docsrs, feature = "path"))]
135250#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135251impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for VarDeclarator {
135252    #[doc = "Calls [FoldAstPath`::fold_var_declarator`] with `self`."]
135253    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135254        <V as FoldAstPath>::fold_var_declarator(visitor, self, __ast_path)
135255    }
135256
135257    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135258        match self {
135259            VarDeclarator {
135260                span,
135261                name,
135262                init,
135263                definite,
135264            } => {
135265                let span = {
135266                    let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclarator(
135267                        self::fields::VarDeclaratorField::Span,
135268                    ));
135269                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
135270                        span,
135271                        visitor,
135272                        &mut *__ast_path,
135273                    )
135274                };
135275                let name = {
135276                    let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclarator(
135277                        self::fields::VarDeclaratorField::Name,
135278                    ));
135279                    <Pat as FoldWithAstPath<V>>::fold_with_ast_path(name, visitor, &mut *__ast_path)
135280                };
135281                let init = {
135282                    let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclarator(
135283                        self::fields::VarDeclaratorField::Init,
135284                    ));
135285                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
135286                        init,
135287                        visitor,
135288                        &mut *__ast_path,
135289                    )
135290                };
135291                VarDeclarator {
135292                    span,
135293                    name,
135294                    init,
135295                    definite,
135296                }
135297            }
135298        }
135299    }
135300}
135301#[cfg(any(docsrs, feature = "path"))]
135302#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135303impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for WhileStmt {
135304    #[doc = "Calls [FoldAstPath`::fold_while_stmt`] with `self`."]
135305    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135306        <V as FoldAstPath>::fold_while_stmt(visitor, self, __ast_path)
135307    }
135308
135309    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135310        match self {
135311            WhileStmt { span, test, body } => {
135312                let span = {
135313                    let mut __ast_path = __ast_path
135314                        .with_guard(AstParentKind::WhileStmt(self::fields::WhileStmtField::Span));
135315                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
135316                        span,
135317                        visitor,
135318                        &mut *__ast_path,
135319                    )
135320                };
135321                let test = {
135322                    let mut __ast_path = __ast_path
135323                        .with_guard(AstParentKind::WhileStmt(self::fields::WhileStmtField::Test));
135324                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
135325                        test,
135326                        visitor,
135327                        &mut *__ast_path,
135328                    )
135329                };
135330                let body = {
135331                    let mut __ast_path = __ast_path
135332                        .with_guard(AstParentKind::WhileStmt(self::fields::WhileStmtField::Body));
135333                    <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
135334                        body,
135335                        visitor,
135336                        &mut *__ast_path,
135337                    )
135338                };
135339                WhileStmt { span, test, body }
135340            }
135341        }
135342    }
135343}
135344#[cfg(any(docsrs, feature = "path"))]
135345#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135346impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for WithStmt {
135347    #[doc = "Calls [FoldAstPath`::fold_with_stmt`] with `self`."]
135348    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135349        <V as FoldAstPath>::fold_with_stmt(visitor, self, __ast_path)
135350    }
135351
135352    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135353        match self {
135354            WithStmt { span, obj, body } => {
135355                let span = {
135356                    let mut __ast_path = __ast_path
135357                        .with_guard(AstParentKind::WithStmt(self::fields::WithStmtField::Span));
135358                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
135359                        span,
135360                        visitor,
135361                        &mut *__ast_path,
135362                    )
135363                };
135364                let obj = {
135365                    let mut __ast_path = __ast_path
135366                        .with_guard(AstParentKind::WithStmt(self::fields::WithStmtField::Obj));
135367                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
135368                        obj,
135369                        visitor,
135370                        &mut *__ast_path,
135371                    )
135372                };
135373                let body = {
135374                    let mut __ast_path = __ast_path
135375                        .with_guard(AstParentKind::WithStmt(self::fields::WithStmtField::Body));
135376                    <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
135377                        body,
135378                        visitor,
135379                        &mut *__ast_path,
135380                    )
135381                };
135382                WithStmt { span, obj, body }
135383            }
135384        }
135385    }
135386}
135387#[cfg(any(docsrs, feature = "path"))]
135388#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135389impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for YieldExpr {
135390    #[doc = "Calls [FoldAstPath`::fold_yield_expr`] with `self`."]
135391    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135392        <V as FoldAstPath>::fold_yield_expr(visitor, self, __ast_path)
135393    }
135394
135395    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135396        match self {
135397            YieldExpr {
135398                span,
135399                arg,
135400                delegate,
135401            } => {
135402                let span = {
135403                    let mut __ast_path = __ast_path
135404                        .with_guard(AstParentKind::YieldExpr(self::fields::YieldExprField::Span));
135405                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
135406                        span,
135407                        visitor,
135408                        &mut *__ast_path,
135409                    )
135410                };
135411                let arg = {
135412                    let mut __ast_path = __ast_path
135413                        .with_guard(AstParentKind::YieldExpr(self::fields::YieldExprField::Arg));
135414                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
135415                        arg,
135416                        visitor,
135417                        &mut *__ast_path,
135418                    )
135419                };
135420                YieldExpr {
135421                    span,
135422                    arg,
135423                    delegate,
135424                }
135425            }
135426        }
135427    }
135428}
135429#[cfg(any(docsrs, feature = "path"))]
135430#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135431impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for swc_atoms::Atom {
135432    #[doc = "Calls [FoldAstPath`::fold_atom`] with `self`. (Extra impl)"]
135433    #[inline]
135434    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135435        <V as FoldAstPath>::fold_atom(visitor, self, __ast_path)
135436    }
135437
135438    #[inline]
135439    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135440        self
135441    }
135442}
135443#[cfg(any(docsrs, feature = "path"))]
135444#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135445impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for BigIntValue {
135446    #[doc = "Calls [FoldAstPath`::fold_big_int_value`] with `self`. (Extra impl)"]
135447    #[inline]
135448    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135449        <V as FoldAstPath>::fold_big_int_value(visitor, self, __ast_path)
135450    }
135451
135452    #[inline]
135453    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135454        self
135455    }
135456}
135457#[cfg(any(docsrs, feature = "path"))]
135458#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135459impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<ClassMember> {
135460    #[doc = "Calls [FoldAstPath`::fold_class_members`] with `self`. (Extra impl)"]
135461    #[inline]
135462    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135463        <V as FoldAstPath>::fold_class_members(visitor, self, __ast_path)
135464    }
135465
135466    #[inline]
135467    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135468        self.into_iter()
135469            .enumerate()
135470            .map(|(__idx, item)| {
135471                let mut __ast_path = __ast_path.with_index_guard(__idx);
135472                <ClassMember as FoldWithAstPath<V>>::fold_with_ast_path(
135473                    item,
135474                    visitor,
135475                    &mut *__ast_path,
135476                )
135477            })
135478            .collect()
135479    }
135480}
135481#[cfg(any(docsrs, feature = "path"))]
135482#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135483impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<Decorator> {
135484    #[doc = "Calls [FoldAstPath`::fold_decorators`] with `self`. (Extra impl)"]
135485    #[inline]
135486    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135487        <V as FoldAstPath>::fold_decorators(visitor, self, __ast_path)
135488    }
135489
135490    #[inline]
135491    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135492        self.into_iter()
135493            .enumerate()
135494            .map(|(__idx, item)| {
135495                let mut __ast_path = __ast_path.with_index_guard(__idx);
135496                <Decorator as FoldWithAstPath<V>>::fold_with_ast_path(
135497                    item,
135498                    visitor,
135499                    &mut *__ast_path,
135500                )
135501            })
135502            .collect()
135503    }
135504}
135505#[cfg(any(docsrs, feature = "path"))]
135506#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135507impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<ExportSpecifier> {
135508    #[doc = "Calls [FoldAstPath`::fold_export_specifiers`] with `self`. (Extra impl)"]
135509    #[inline]
135510    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135511        <V as FoldAstPath>::fold_export_specifiers(visitor, self, __ast_path)
135512    }
135513
135514    #[inline]
135515    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135516        self.into_iter()
135517            .enumerate()
135518            .map(|(__idx, item)| {
135519                let mut __ast_path = __ast_path.with_index_guard(__idx);
135520                <ExportSpecifier as FoldWithAstPath<V>>::fold_with_ast_path(
135521                    item,
135522                    visitor,
135523                    &mut *__ast_path,
135524                )
135525            })
135526            .collect()
135527    }
135528}
135529#[cfg(any(docsrs, feature = "path"))]
135530#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135531impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<ExprOrSpread> {
135532    #[doc = "Calls [FoldAstPath`::fold_expr_or_spreads`] with `self`. (Extra impl)"]
135533    #[inline]
135534    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135535        <V as FoldAstPath>::fold_expr_or_spreads(visitor, self, __ast_path)
135536    }
135537
135538    #[inline]
135539    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135540        self.into_iter()
135541            .enumerate()
135542            .map(|(__idx, item)| {
135543                let mut __ast_path = __ast_path.with_index_guard(__idx);
135544                <ExprOrSpread as FoldWithAstPath<V>>::fold_with_ast_path(
135545                    item,
135546                    visitor,
135547                    &mut *__ast_path,
135548                )
135549            })
135550            .collect()
135551    }
135552}
135553#[cfg(any(docsrs, feature = "path"))]
135554#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135555impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<Box<Expr>> {
135556    #[doc = "Calls [FoldAstPath`::fold_exprs`] with `self`. (Extra impl)"]
135557    #[inline]
135558    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135559        <V as FoldAstPath>::fold_exprs(visitor, self, __ast_path)
135560    }
135561
135562    #[inline]
135563    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135564        self.into_iter()
135565            .enumerate()
135566            .map(|(__idx, item)| {
135567                let mut __ast_path = __ast_path.with_index_guard(__idx);
135568                <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
135569                    item,
135570                    visitor,
135571                    &mut *__ast_path,
135572                )
135573            })
135574            .collect()
135575    }
135576}
135577#[cfg(any(docsrs, feature = "path"))]
135578#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135579impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<ImportSpecifier> {
135580    #[doc = "Calls [FoldAstPath`::fold_import_specifiers`] with `self`. (Extra impl)"]
135581    #[inline]
135582    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135583        <V as FoldAstPath>::fold_import_specifiers(visitor, self, __ast_path)
135584    }
135585
135586    #[inline]
135587    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135588        self.into_iter()
135589            .enumerate()
135590            .map(|(__idx, item)| {
135591                let mut __ast_path = __ast_path.with_index_guard(__idx);
135592                <ImportSpecifier as FoldWithAstPath<V>>::fold_with_ast_path(
135593                    item,
135594                    visitor,
135595                    &mut *__ast_path,
135596                )
135597            })
135598            .collect()
135599    }
135600}
135601#[cfg(any(docsrs, feature = "path"))]
135602#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135603impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<ImportWithItem> {
135604    #[doc = "Calls [FoldAstPath`::fold_import_with_items`] with `self`. (Extra impl)"]
135605    #[inline]
135606    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135607        <V as FoldAstPath>::fold_import_with_items(visitor, self, __ast_path)
135608    }
135609
135610    #[inline]
135611    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135612        self.into_iter()
135613            .enumerate()
135614            .map(|(__idx, item)| {
135615                let mut __ast_path = __ast_path.with_index_guard(__idx);
135616                <ImportWithItem as FoldWithAstPath<V>>::fold_with_ast_path(
135617                    item,
135618                    visitor,
135619                    &mut *__ast_path,
135620                )
135621            })
135622            .collect()
135623    }
135624}
135625#[cfg(any(docsrs, feature = "path"))]
135626#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135627impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<JSXAttrOrSpread> {
135628    #[doc = "Calls [FoldAstPath`::fold_jsx_attr_or_spreads`] with `self`. (Extra impl)"]
135629    #[inline]
135630    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135631        <V as FoldAstPath>::fold_jsx_attr_or_spreads(visitor, self, __ast_path)
135632    }
135633
135634    #[inline]
135635    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135636        self.into_iter()
135637            .enumerate()
135638            .map(|(__idx, item)| {
135639                let mut __ast_path = __ast_path.with_index_guard(__idx);
135640                <JSXAttrOrSpread as FoldWithAstPath<V>>::fold_with_ast_path(
135641                    item,
135642                    visitor,
135643                    &mut *__ast_path,
135644                )
135645            })
135646            .collect()
135647    }
135648}
135649#[cfg(any(docsrs, feature = "path"))]
135650#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135651impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<JSXElementChild> {
135652    #[doc = "Calls [FoldAstPath`::fold_jsx_element_childs`] with `self`. (Extra impl)"]
135653    #[inline]
135654    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135655        <V as FoldAstPath>::fold_jsx_element_childs(visitor, self, __ast_path)
135656    }
135657
135658    #[inline]
135659    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135660        self.into_iter()
135661            .enumerate()
135662            .map(|(__idx, item)| {
135663                let mut __ast_path = __ast_path.with_index_guard(__idx);
135664                <JSXElementChild as FoldWithAstPath<V>>::fold_with_ast_path(
135665                    item,
135666                    visitor,
135667                    &mut *__ast_path,
135668                )
135669            })
135670            .collect()
135671    }
135672}
135673#[cfg(any(docsrs, feature = "path"))]
135674#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135675impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<ModuleItem> {
135676    #[doc = "Calls [FoldAstPath`::fold_module_items`] with `self`. (Extra impl)"]
135677    #[inline]
135678    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135679        <V as FoldAstPath>::fold_module_items(visitor, self, __ast_path)
135680    }
135681
135682    #[inline]
135683    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135684        self.into_iter()
135685            .enumerate()
135686            .map(|(__idx, item)| {
135687                let mut __ast_path = __ast_path.with_index_guard(__idx);
135688                <ModuleItem as FoldWithAstPath<V>>::fold_with_ast_path(
135689                    item,
135690                    visitor,
135691                    &mut *__ast_path,
135692                )
135693            })
135694            .collect()
135695    }
135696}
135697#[cfg(any(docsrs, feature = "path"))]
135698#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135699impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<ObjectPatProp> {
135700    #[doc = "Calls [FoldAstPath`::fold_object_pat_props`] with `self`. (Extra impl)"]
135701    #[inline]
135702    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135703        <V as FoldAstPath>::fold_object_pat_props(visitor, self, __ast_path)
135704    }
135705
135706    #[inline]
135707    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135708        self.into_iter()
135709            .enumerate()
135710            .map(|(__idx, item)| {
135711                let mut __ast_path = __ast_path.with_index_guard(__idx);
135712                <ObjectPatProp as FoldWithAstPath<V>>::fold_with_ast_path(
135713                    item,
135714                    visitor,
135715                    &mut *__ast_path,
135716                )
135717            })
135718            .collect()
135719    }
135720}
135721#[cfg(any(docsrs, feature = "path"))]
135722#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135723impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Accessibility> {
135724    #[doc = "Calls [FoldAstPath`::fold_opt_accessibility`] with `self`. (Extra impl)"]
135725    #[inline]
135726    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135727        <V as FoldAstPath>::fold_opt_accessibility(visitor, self, __ast_path)
135728    }
135729
135730    #[inline]
135731    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135732        self.map(|inner| {
135733            <Accessibility as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135734        })
135735    }
135736}
135737#[cfg(any(docsrs, feature = "path"))]
135738#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135739impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<swc_atoms::Atom> {
135740    #[doc = "Calls [FoldAstPath`::fold_opt_atom`] with `self`. (Extra impl)"]
135741    #[inline]
135742    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135743        <V as FoldAstPath>::fold_opt_atom(visitor, self, __ast_path)
135744    }
135745
135746    #[inline]
135747    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135748        self.map(|inner| {
135749            <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135750        })
135751    }
135752}
135753#[cfg(any(docsrs, feature = "path"))]
135754#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135755impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<BlockStmt> {
135756    #[doc = "Calls [FoldAstPath`::fold_opt_block_stmt`] with `self`. (Extra impl)"]
135757    #[inline]
135758    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135759        <V as FoldAstPath>::fold_opt_block_stmt(visitor, self, __ast_path)
135760    }
135761
135762    #[inline]
135763    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135764        self.map(|inner| {
135765            <BlockStmt as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135766        })
135767    }
135768}
135769#[cfg(any(docsrs, feature = "path"))]
135770#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135771impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<CatchClause> {
135772    #[doc = "Calls [FoldAstPath`::fold_opt_catch_clause`] with `self`. (Extra impl)"]
135773    #[inline]
135774    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135775        <V as FoldAstPath>::fold_opt_catch_clause(visitor, self, __ast_path)
135776    }
135777
135778    #[inline]
135779    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135780        self.map(|inner| {
135781            <CatchClause as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135782        })
135783    }
135784}
135785#[cfg(any(docsrs, feature = "path"))]
135786#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135787impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Box<Expr>> {
135788    #[doc = "Calls [FoldAstPath`::fold_opt_expr`] with `self`. (Extra impl)"]
135789    #[inline]
135790    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135791        <V as FoldAstPath>::fold_opt_expr(visitor, self, __ast_path)
135792    }
135793
135794    #[inline]
135795    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135796        self.map(|inner| {
135797            <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135798        })
135799    }
135800}
135801#[cfg(any(docsrs, feature = "path"))]
135802#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135803impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<ExprOrSpread> {
135804    #[doc = "Calls [FoldAstPath`::fold_opt_expr_or_spread`] with `self`. (Extra impl)"]
135805    #[inline]
135806    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135807        <V as FoldAstPath>::fold_opt_expr_or_spread(visitor, self, __ast_path)
135808    }
135809
135810    #[inline]
135811    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135812        self.map(|inner| {
135813            <ExprOrSpread as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135814        })
135815    }
135816}
135817#[cfg(any(docsrs, feature = "path"))]
135818#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135819impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Vec<ExprOrSpread>> {
135820    #[doc = "Calls [FoldAstPath`::fold_opt_expr_or_spreads`] with `self`. (Extra impl)"]
135821    #[inline]
135822    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135823        <V as FoldAstPath>::fold_opt_expr_or_spreads(visitor, self, __ast_path)
135824    }
135825
135826    #[inline]
135827    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135828        self.map(|inner| {
135829            <Vec<ExprOrSpread> as FoldWithAstPath<V>>::fold_with_ast_path(
135830                inner, visitor, __ast_path,
135831            )
135832        })
135833    }
135834}
135835#[cfg(any(docsrs, feature = "path"))]
135836#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135837impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Ident> {
135838    #[doc = "Calls [FoldAstPath`::fold_opt_ident`] with `self`. (Extra impl)"]
135839    #[inline]
135840    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135841        <V as FoldAstPath>::fold_opt_ident(visitor, self, __ast_path)
135842    }
135843
135844    #[inline]
135845    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135846        self.map(|inner| {
135847            <Ident as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135848        })
135849    }
135850}
135851#[cfg(any(docsrs, feature = "path"))]
135852#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135853impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<JSXAttrValue> {
135854    #[doc = "Calls [FoldAstPath`::fold_opt_jsx_attr_value`] with `self`. (Extra impl)"]
135855    #[inline]
135856    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135857        <V as FoldAstPath>::fold_opt_jsx_attr_value(visitor, self, __ast_path)
135858    }
135859
135860    #[inline]
135861    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135862        self.map(|inner| {
135863            <JSXAttrValue as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135864        })
135865    }
135866}
135867#[cfg(any(docsrs, feature = "path"))]
135868#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135869impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<JSXClosingElement> {
135870    #[doc = "Calls [FoldAstPath`::fold_opt_jsx_closing_element`] with `self`. (Extra impl)"]
135871    #[inline]
135872    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135873        <V as FoldAstPath>::fold_opt_jsx_closing_element(visitor, self, __ast_path)
135874    }
135875
135876    #[inline]
135877    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135878        self.map(|inner| {
135879            <JSXClosingElement as FoldWithAstPath<V>>::fold_with_ast_path(
135880                inner, visitor, __ast_path,
135881            )
135882        })
135883    }
135884}
135885#[cfg(any(docsrs, feature = "path"))]
135886#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135887impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<ModuleExportName> {
135888    #[doc = "Calls [FoldAstPath`::fold_opt_module_export_name`] with `self`. (Extra impl)"]
135889    #[inline]
135890    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135891        <V as FoldAstPath>::fold_opt_module_export_name(visitor, self, __ast_path)
135892    }
135893
135894    #[inline]
135895    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135896        self.map(|inner| {
135897            <ModuleExportName as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135898        })
135899    }
135900}
135901#[cfg(any(docsrs, feature = "path"))]
135902#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135903impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Box<ObjectLit>> {
135904    #[doc = "Calls [FoldAstPath`::fold_opt_object_lit`] with `self`. (Extra impl)"]
135905    #[inline]
135906    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135907        <V as FoldAstPath>::fold_opt_object_lit(visitor, self, __ast_path)
135908    }
135909
135910    #[inline]
135911    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135912        self.map(|inner| {
135913            <Box<ObjectLit> as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135914        })
135915    }
135916}
135917#[cfg(any(docsrs, feature = "path"))]
135918#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135919impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Pat> {
135920    #[doc = "Calls [FoldAstPath`::fold_opt_pat`] with `self`. (Extra impl)"]
135921    #[inline]
135922    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135923        <V as FoldAstPath>::fold_opt_pat(visitor, self, __ast_path)
135924    }
135925
135926    #[inline]
135927    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135928        self.map(|inner| {
135929            <Pat as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135930        })
135931    }
135932}
135933#[cfg(any(docsrs, feature = "path"))]
135934#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135935impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<swc_common::Span> {
135936    #[doc = "Calls [FoldAstPath`::fold_opt_span`] with `self`. (Extra impl)"]
135937    #[inline]
135938    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135939        <V as FoldAstPath>::fold_opt_span(visitor, self, __ast_path)
135940    }
135941
135942    #[inline]
135943    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135944        self.map(|inner| {
135945            <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135946        })
135947    }
135948}
135949#[cfg(any(docsrs, feature = "path"))]
135950#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135951impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Box<Stmt>> {
135952    #[doc = "Calls [FoldAstPath`::fold_opt_stmt`] with `self`. (Extra impl)"]
135953    #[inline]
135954    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135955        <V as FoldAstPath>::fold_opt_stmt(visitor, self, __ast_path)
135956    }
135957
135958    #[inline]
135959    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135960        self.map(|inner| {
135961            <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135962        })
135963    }
135964}
135965#[cfg(any(docsrs, feature = "path"))]
135966#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135967impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Box<Str>> {
135968    #[doc = "Calls [FoldAstPath`::fold_opt_str`] with `self`. (Extra impl)"]
135969    #[inline]
135970    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135971        <V as FoldAstPath>::fold_opt_str(visitor, self, __ast_path)
135972    }
135973
135974    #[inline]
135975    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135976        self.map(|inner| {
135977            <Box<Str> as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135978        })
135979    }
135980}
135981#[cfg(any(docsrs, feature = "path"))]
135982#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135983impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<TruePlusMinus> {
135984    #[doc = "Calls [FoldAstPath`::fold_opt_true_plus_minus`] with `self`. (Extra impl)"]
135985    #[inline]
135986    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135987        <V as FoldAstPath>::fold_opt_true_plus_minus(visitor, self, __ast_path)
135988    }
135989
135990    #[inline]
135991    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135992        self.map(|inner| {
135993            <TruePlusMinus as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135994        })
135995    }
135996}
135997#[cfg(any(docsrs, feature = "path"))]
135998#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135999impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<TsEntityName> {
136000    #[doc = "Calls [FoldAstPath`::fold_opt_ts_entity_name`] with `self`. (Extra impl)"]
136001    #[inline]
136002    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136003        <V as FoldAstPath>::fold_opt_ts_entity_name(visitor, self, __ast_path)
136004    }
136005
136006    #[inline]
136007    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136008        self.map(|inner| {
136009            <TsEntityName as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
136010        })
136011    }
136012}
136013#[cfg(any(docsrs, feature = "path"))]
136014#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136015impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<TsImportCallOptions> {
136016    #[doc = "Calls [FoldAstPath`::fold_opt_ts_import_call_options`] with `self`. (Extra impl)"]
136017    #[inline]
136018    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136019        <V as FoldAstPath>::fold_opt_ts_import_call_options(visitor, self, __ast_path)
136020    }
136021
136022    #[inline]
136023    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136024        self.map(|inner| {
136025            <TsImportCallOptions as FoldWithAstPath<V>>::fold_with_ast_path(
136026                inner, visitor, __ast_path,
136027            )
136028        })
136029    }
136030}
136031#[cfg(any(docsrs, feature = "path"))]
136032#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136033impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<TsNamespaceBody> {
136034    #[doc = "Calls [FoldAstPath`::fold_opt_ts_namespace_body`] with `self`. (Extra impl)"]
136035    #[inline]
136036    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136037        <V as FoldAstPath>::fold_opt_ts_namespace_body(visitor, self, __ast_path)
136038    }
136039
136040    #[inline]
136041    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136042        self.map(|inner| {
136043            <TsNamespaceBody as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
136044        })
136045    }
136046}
136047#[cfg(any(docsrs, feature = "path"))]
136048#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136049impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Box<TsType>> {
136050    #[doc = "Calls [FoldAstPath`::fold_opt_ts_type`] with `self`. (Extra impl)"]
136051    #[inline]
136052    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136053        <V as FoldAstPath>::fold_opt_ts_type(visitor, self, __ast_path)
136054    }
136055
136056    #[inline]
136057    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136058        self.map(|inner| {
136059            <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
136060        })
136061    }
136062}
136063#[cfg(any(docsrs, feature = "path"))]
136064#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136065impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Box<TsTypeAnn>> {
136066    #[doc = "Calls [FoldAstPath`::fold_opt_ts_type_ann`] with `self`. (Extra impl)"]
136067    #[inline]
136068    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136069        <V as FoldAstPath>::fold_opt_ts_type_ann(visitor, self, __ast_path)
136070    }
136071
136072    #[inline]
136073    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136074        self.map(|inner| {
136075            <Box<TsTypeAnn> as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
136076        })
136077    }
136078}
136079#[cfg(any(docsrs, feature = "path"))]
136080#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136081impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Box<TsTypeParamDecl>> {
136082    #[doc = "Calls [FoldAstPath`::fold_opt_ts_type_param_decl`] with `self`. (Extra impl)"]
136083    #[inline]
136084    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136085        <V as FoldAstPath>::fold_opt_ts_type_param_decl(visitor, self, __ast_path)
136086    }
136087
136088    #[inline]
136089    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136090        self.map(|inner| {
136091            <Box<TsTypeParamDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
136092                inner, visitor, __ast_path,
136093            )
136094        })
136095    }
136096}
136097#[cfg(any(docsrs, feature = "path"))]
136098#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136099impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Box<TsTypeParamInstantiation>> {
136100    #[doc = "Calls [FoldAstPath`::fold_opt_ts_type_param_instantiation`] with `self`. (Extra impl)"]
136101    #[inline]
136102    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136103        <V as FoldAstPath>::fold_opt_ts_type_param_instantiation(visitor, self, __ast_path)
136104    }
136105
136106    #[inline]
136107    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136108        self.map(|inner| {
136109            <Box<TsTypeParamInstantiation> as FoldWithAstPath<V>>::fold_with_ast_path(
136110                inner, visitor, __ast_path,
136111            )
136112        })
136113    }
136114}
136115#[cfg(any(docsrs, feature = "path"))]
136116#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136117impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<VarDeclOrExpr> {
136118    #[doc = "Calls [FoldAstPath`::fold_opt_var_decl_or_expr`] with `self`. (Extra impl)"]
136119    #[inline]
136120    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136121        <V as FoldAstPath>::fold_opt_var_decl_or_expr(visitor, self, __ast_path)
136122    }
136123
136124    #[inline]
136125    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136126        self.map(|inner| {
136127            <VarDeclOrExpr as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
136128        })
136129    }
136130}
136131#[cfg(any(docsrs, feature = "path"))]
136132#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136133impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<Option<ExprOrSpread>> {
136134    #[doc = "Calls [FoldAstPath`::fold_opt_vec_expr_or_spreads`] with `self`. (Extra impl)"]
136135    #[inline]
136136    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136137        <V as FoldAstPath>::fold_opt_vec_expr_or_spreads(visitor, self, __ast_path)
136138    }
136139
136140    #[inline]
136141    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136142        self.into_iter()
136143            .enumerate()
136144            .map(|(__idx, item)| {
136145                let mut __ast_path = __ast_path.with_index_guard(__idx);
136146                <Option<ExprOrSpread> as FoldWithAstPath<V>>::fold_with_ast_path(
136147                    item,
136148                    visitor,
136149                    &mut *__ast_path,
136150                )
136151            })
136152            .collect()
136153    }
136154}
136155#[cfg(any(docsrs, feature = "path"))]
136156#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136157impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<Option<Pat>> {
136158    #[doc = "Calls [FoldAstPath`::fold_opt_vec_pats`] with `self`. (Extra impl)"]
136159    #[inline]
136160    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136161        <V as FoldAstPath>::fold_opt_vec_pats(visitor, self, __ast_path)
136162    }
136163
136164    #[inline]
136165    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136166        self.into_iter()
136167            .enumerate()
136168            .map(|(__idx, item)| {
136169                let mut __ast_path = __ast_path.with_index_guard(__idx);
136170                <Option<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
136171                    item,
136172                    visitor,
136173                    &mut *__ast_path,
136174                )
136175            })
136176            .collect()
136177    }
136178}
136179#[cfg(any(docsrs, feature = "path"))]
136180#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136181impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<ParamOrTsParamProp> {
136182    #[doc = "Calls [FoldAstPath`::fold_param_or_ts_param_props`] with `self`. (Extra impl)"]
136183    #[inline]
136184    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136185        <V as FoldAstPath>::fold_param_or_ts_param_props(visitor, self, __ast_path)
136186    }
136187
136188    #[inline]
136189    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136190        self.into_iter()
136191            .enumerate()
136192            .map(|(__idx, item)| {
136193                let mut __ast_path = __ast_path.with_index_guard(__idx);
136194                <ParamOrTsParamProp as FoldWithAstPath<V>>::fold_with_ast_path(
136195                    item,
136196                    visitor,
136197                    &mut *__ast_path,
136198                )
136199            })
136200            .collect()
136201    }
136202}
136203#[cfg(any(docsrs, feature = "path"))]
136204#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136205impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<Param> {
136206    #[doc = "Calls [FoldAstPath`::fold_params`] with `self`. (Extra impl)"]
136207    #[inline]
136208    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136209        <V as FoldAstPath>::fold_params(visitor, self, __ast_path)
136210    }
136211
136212    #[inline]
136213    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136214        self.into_iter()
136215            .enumerate()
136216            .map(|(__idx, item)| {
136217                let mut __ast_path = __ast_path.with_index_guard(__idx);
136218                <Param as FoldWithAstPath<V>>::fold_with_ast_path(item, visitor, &mut *__ast_path)
136219            })
136220            .collect()
136221    }
136222}
136223#[cfg(any(docsrs, feature = "path"))]
136224#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136225impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<Pat> {
136226    #[doc = "Calls [FoldAstPath`::fold_pats`] with `self`. (Extra impl)"]
136227    #[inline]
136228    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136229        <V as FoldAstPath>::fold_pats(visitor, self, __ast_path)
136230    }
136231
136232    #[inline]
136233    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136234        self.into_iter()
136235            .enumerate()
136236            .map(|(__idx, item)| {
136237                let mut __ast_path = __ast_path.with_index_guard(__idx);
136238                <Pat as FoldWithAstPath<V>>::fold_with_ast_path(item, visitor, &mut *__ast_path)
136239            })
136240            .collect()
136241    }
136242}
136243#[cfg(any(docsrs, feature = "path"))]
136244#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136245impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<PropOrSpread> {
136246    #[doc = "Calls [FoldAstPath`::fold_prop_or_spreads`] with `self`. (Extra impl)"]
136247    #[inline]
136248    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136249        <V as FoldAstPath>::fold_prop_or_spreads(visitor, self, __ast_path)
136250    }
136251
136252    #[inline]
136253    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136254        self.into_iter()
136255            .enumerate()
136256            .map(|(__idx, item)| {
136257                let mut __ast_path = __ast_path.with_index_guard(__idx);
136258                <PropOrSpread as FoldWithAstPath<V>>::fold_with_ast_path(
136259                    item,
136260                    visitor,
136261                    &mut *__ast_path,
136262                )
136263            })
136264            .collect()
136265    }
136266}
136267#[cfg(any(docsrs, feature = "path"))]
136268#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136269impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for swc_common::Span {
136270    #[doc = "Calls [FoldAstPath`::fold_span`] with `self`. (Extra impl)"]
136271    #[inline]
136272    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136273        <V as FoldAstPath>::fold_span(visitor, self, __ast_path)
136274    }
136275
136276    #[inline]
136277    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136278        self
136279    }
136280}
136281#[cfg(any(docsrs, feature = "path"))]
136282#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136283impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<Stmt> {
136284    #[doc = "Calls [FoldAstPath`::fold_stmts`] with `self`. (Extra impl)"]
136285    #[inline]
136286    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136287        <V as FoldAstPath>::fold_stmts(visitor, self, __ast_path)
136288    }
136289
136290    #[inline]
136291    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136292        self.into_iter()
136293            .enumerate()
136294            .map(|(__idx, item)| {
136295                let mut __ast_path = __ast_path.with_index_guard(__idx);
136296                <Stmt as FoldWithAstPath<V>>::fold_with_ast_path(item, visitor, &mut *__ast_path)
136297            })
136298            .collect()
136299    }
136300}
136301#[cfg(any(docsrs, feature = "path"))]
136302#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136303impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<SwitchCase> {
136304    #[doc = "Calls [FoldAstPath`::fold_switch_cases`] with `self`. (Extra impl)"]
136305    #[inline]
136306    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136307        <V as FoldAstPath>::fold_switch_cases(visitor, self, __ast_path)
136308    }
136309
136310    #[inline]
136311    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136312        self.into_iter()
136313            .enumerate()
136314            .map(|(__idx, item)| {
136315                let mut __ast_path = __ast_path.with_index_guard(__idx);
136316                <SwitchCase as FoldWithAstPath<V>>::fold_with_ast_path(
136317                    item,
136318                    visitor,
136319                    &mut *__ast_path,
136320                )
136321            })
136322            .collect()
136323    }
136324}
136325#[cfg(any(docsrs, feature = "path"))]
136326#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136327impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for swc_common::SyntaxContext {
136328    #[doc = "Calls [FoldAstPath`::fold_syntax_context`] with `self`. (Extra impl)"]
136329    #[inline]
136330    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136331        <V as FoldAstPath>::fold_syntax_context(visitor, self, __ast_path)
136332    }
136333
136334    #[inline]
136335    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136336        self
136337    }
136338}
136339#[cfg(any(docsrs, feature = "path"))]
136340#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136341impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<TplElement> {
136342    #[doc = "Calls [FoldAstPath`::fold_tpl_elements`] with `self`. (Extra impl)"]
136343    #[inline]
136344    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136345        <V as FoldAstPath>::fold_tpl_elements(visitor, self, __ast_path)
136346    }
136347
136348    #[inline]
136349    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136350        self.into_iter()
136351            .enumerate()
136352            .map(|(__idx, item)| {
136353                let mut __ast_path = __ast_path.with_index_guard(__idx);
136354                <TplElement as FoldWithAstPath<V>>::fold_with_ast_path(
136355                    item,
136356                    visitor,
136357                    &mut *__ast_path,
136358                )
136359            })
136360            .collect()
136361    }
136362}
136363#[cfg(any(docsrs, feature = "path"))]
136364#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136365impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<TsEnumMember> {
136366    #[doc = "Calls [FoldAstPath`::fold_ts_enum_members`] with `self`. (Extra impl)"]
136367    #[inline]
136368    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136369        <V as FoldAstPath>::fold_ts_enum_members(visitor, self, __ast_path)
136370    }
136371
136372    #[inline]
136373    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136374        self.into_iter()
136375            .enumerate()
136376            .map(|(__idx, item)| {
136377                let mut __ast_path = __ast_path.with_index_guard(__idx);
136378                <TsEnumMember as FoldWithAstPath<V>>::fold_with_ast_path(
136379                    item,
136380                    visitor,
136381                    &mut *__ast_path,
136382                )
136383            })
136384            .collect()
136385    }
136386}
136387#[cfg(any(docsrs, feature = "path"))]
136388#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136389impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<TsExprWithTypeArgs> {
136390    #[doc = "Calls [FoldAstPath`::fold_ts_expr_with_type_argss`] with `self`. (Extra impl)"]
136391    #[inline]
136392    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136393        <V as FoldAstPath>::fold_ts_expr_with_type_argss(visitor, self, __ast_path)
136394    }
136395
136396    #[inline]
136397    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136398        self.into_iter()
136399            .enumerate()
136400            .map(|(__idx, item)| {
136401                let mut __ast_path = __ast_path.with_index_guard(__idx);
136402                <TsExprWithTypeArgs as FoldWithAstPath<V>>::fold_with_ast_path(
136403                    item,
136404                    visitor,
136405                    &mut *__ast_path,
136406                )
136407            })
136408            .collect()
136409    }
136410}
136411#[cfg(any(docsrs, feature = "path"))]
136412#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136413impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<TsFnParam> {
136414    #[doc = "Calls [FoldAstPath`::fold_ts_fn_params`] with `self`. (Extra impl)"]
136415    #[inline]
136416    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136417        <V as FoldAstPath>::fold_ts_fn_params(visitor, self, __ast_path)
136418    }
136419
136420    #[inline]
136421    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136422        self.into_iter()
136423            .enumerate()
136424            .map(|(__idx, item)| {
136425                let mut __ast_path = __ast_path.with_index_guard(__idx);
136426                <TsFnParam as FoldWithAstPath<V>>::fold_with_ast_path(
136427                    item,
136428                    visitor,
136429                    &mut *__ast_path,
136430                )
136431            })
136432            .collect()
136433    }
136434}
136435#[cfg(any(docsrs, feature = "path"))]
136436#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136437impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<TsTupleElement> {
136438    #[doc = "Calls [FoldAstPath`::fold_ts_tuple_elements`] with `self`. (Extra impl)"]
136439    #[inline]
136440    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136441        <V as FoldAstPath>::fold_ts_tuple_elements(visitor, self, __ast_path)
136442    }
136443
136444    #[inline]
136445    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136446        self.into_iter()
136447            .enumerate()
136448            .map(|(__idx, item)| {
136449                let mut __ast_path = __ast_path.with_index_guard(__idx);
136450                <TsTupleElement as FoldWithAstPath<V>>::fold_with_ast_path(
136451                    item,
136452                    visitor,
136453                    &mut *__ast_path,
136454                )
136455            })
136456            .collect()
136457    }
136458}
136459#[cfg(any(docsrs, feature = "path"))]
136460#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136461impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<TsTypeElement> {
136462    #[doc = "Calls [FoldAstPath`::fold_ts_type_elements`] with `self`. (Extra impl)"]
136463    #[inline]
136464    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136465        <V as FoldAstPath>::fold_ts_type_elements(visitor, self, __ast_path)
136466    }
136467
136468    #[inline]
136469    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136470        self.into_iter()
136471            .enumerate()
136472            .map(|(__idx, item)| {
136473                let mut __ast_path = __ast_path.with_index_guard(__idx);
136474                <TsTypeElement as FoldWithAstPath<V>>::fold_with_ast_path(
136475                    item,
136476                    visitor,
136477                    &mut *__ast_path,
136478                )
136479            })
136480            .collect()
136481    }
136482}
136483#[cfg(any(docsrs, feature = "path"))]
136484#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136485impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<TsTypeParam> {
136486    #[doc = "Calls [FoldAstPath`::fold_ts_type_params`] with `self`. (Extra impl)"]
136487    #[inline]
136488    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136489        <V as FoldAstPath>::fold_ts_type_params(visitor, self, __ast_path)
136490    }
136491
136492    #[inline]
136493    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136494        self.into_iter()
136495            .enumerate()
136496            .map(|(__idx, item)| {
136497                let mut __ast_path = __ast_path.with_index_guard(__idx);
136498                <TsTypeParam as FoldWithAstPath<V>>::fold_with_ast_path(
136499                    item,
136500                    visitor,
136501                    &mut *__ast_path,
136502                )
136503            })
136504            .collect()
136505    }
136506}
136507#[cfg(any(docsrs, feature = "path"))]
136508#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136509impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<Box<TsType>> {
136510    #[doc = "Calls [FoldAstPath`::fold_ts_types`] with `self`. (Extra impl)"]
136511    #[inline]
136512    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136513        <V as FoldAstPath>::fold_ts_types(visitor, self, __ast_path)
136514    }
136515
136516    #[inline]
136517    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136518        self.into_iter()
136519            .enumerate()
136520            .map(|(__idx, item)| {
136521                let mut __ast_path = __ast_path.with_index_guard(__idx);
136522                <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
136523                    item,
136524                    visitor,
136525                    &mut *__ast_path,
136526                )
136527            })
136528            .collect()
136529    }
136530}
136531#[cfg(any(docsrs, feature = "path"))]
136532#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136533impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<VarDeclarator> {
136534    #[doc = "Calls [FoldAstPath`::fold_var_declarators`] with `self`. (Extra impl)"]
136535    #[inline]
136536    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136537        <V as FoldAstPath>::fold_var_declarators(visitor, self, __ast_path)
136538    }
136539
136540    #[inline]
136541    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136542        self.into_iter()
136543            .enumerate()
136544            .map(|(__idx, item)| {
136545                let mut __ast_path = __ast_path.with_index_guard(__idx);
136546                <VarDeclarator as FoldWithAstPath<V>>::fold_with_ast_path(
136547                    item,
136548                    visitor,
136549                    &mut *__ast_path,
136550                )
136551            })
136552            .collect()
136553    }
136554}
136555#[cfg(any(docsrs, feature = "path"))]
136556#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
136557impl<V, T> FoldWithAstPath<V> for std::boxed::Box<T>
136558where
136559    V: ?Sized + FoldAstPath,
136560    T: FoldWithAstPath<V>,
136561{
136562    #[inline]
136563    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136564        swc_visit::util::map::Map::map(self, |inner| {
136565            <T as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
136566        })
136567    }
136568
136569    #[inline]
136570    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
136571        swc_visit::util::map::Map::map(self, |inner| {
136572            <T as FoldWithAstPath<V>>::fold_children_with_ast_path(inner, visitor, __ast_path)
136573        })
136574    }
136575}
136576#[cfg(any(docsrs, feature = "path"))]
136577pub type AstKindPath = swc_visit::AstKindPath<AstParentKind>;
136578#[cfg(any(docsrs, feature = "path"))]
136579pub type AstNodePath<'ast> = swc_visit::AstNodePath<AstParentNodeRef<'ast>>;
136580#[cfg(any(docsrs, feature = "path"))]
136581pub mod fields {
136582    use swc_ecma_ast::*;
136583    #[inline(always)]
136584    fn assert_initial_index(idx: usize, index: usize) {
136585        #[cfg(debug_assertions)]
136586        if !(idx == usize::MAX || index == usize::MAX) {
136587            {
136588                panic!("Should be usize::MAX");
136589            }
136590        }
136591    }
136592    impl AccessibilityField {
136593        #[inline(always)]
136594        pub(crate) fn set_index(&mut self, _: usize) {
136595            swc_visit::wrong_ast_path();
136596        }
136597    }
136598    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136599    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136600    pub enum AccessibilityField {
136601        #[doc = "Represents [`Accessibility::Public`]"]
136602        Public,
136603        #[doc = "Represents [`Accessibility::Protected`]"]
136604        Protected,
136605        #[doc = "Represents [`Accessibility::Private`]"]
136606        Private,
136607    }
136608    impl ArrayLitField {
136609        pub(crate) fn set_index(&mut self, index: usize) {
136610            match self {
136611                Self::Elems(idx) => {
136612                    assert_initial_index(*idx, index);
136613                    *idx = index;
136614                }
136615                _ => swc_visit::wrong_ast_path(),
136616            }
136617        }
136618    }
136619    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136620    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136621    pub enum ArrayLitField {
136622        #[doc = "Represents [`ArrayLit::span`]"]
136623        Span,
136624        #[doc = "Represents [`ArrayLit::elems`]"]
136625        Elems(usize),
136626    }
136627    impl ArrayPatField {
136628        pub(crate) fn set_index(&mut self, index: usize) {
136629            match self {
136630                Self::Elems(idx) => {
136631                    assert_initial_index(*idx, index);
136632                    *idx = index;
136633                }
136634                _ => swc_visit::wrong_ast_path(),
136635            }
136636        }
136637    }
136638    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136639    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136640    pub enum ArrayPatField {
136641        #[doc = "Represents [`ArrayPat::span`]"]
136642        Span,
136643        #[doc = "Represents [`ArrayPat::elems`]"]
136644        Elems(usize),
136645        #[doc = "Represents [`ArrayPat::optional`]"]
136646        Optional,
136647        #[doc = "Represents [`ArrayPat::type_ann`]"]
136648        TypeAnn,
136649    }
136650    impl ArrowExprField {
136651        pub(crate) fn set_index(&mut self, index: usize) {
136652            match self {
136653                Self::Params(idx) => {
136654                    assert_initial_index(*idx, index);
136655                    *idx = index;
136656                }
136657                _ => swc_visit::wrong_ast_path(),
136658            }
136659        }
136660    }
136661    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136662    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136663    pub enum ArrowExprField {
136664        #[doc = "Represents [`ArrowExpr::span`]"]
136665        Span,
136666        #[doc = "Represents [`ArrowExpr::ctxt`]"]
136667        Ctxt,
136668        #[doc = "Represents [`ArrowExpr::params`]"]
136669        Params(usize),
136670        #[doc = "Represents [`ArrowExpr::body`]"]
136671        Body,
136672        #[doc = "Represents [`ArrowExpr::is_async`]"]
136673        IsAsync,
136674        #[doc = "Represents [`ArrowExpr::is_generator`]"]
136675        IsGenerator,
136676        #[doc = "Represents [`ArrowExpr::type_params`]"]
136677        TypeParams,
136678        #[doc = "Represents [`ArrowExpr::return_type`]"]
136679        ReturnType,
136680    }
136681    impl AssignExprField {
136682        pub(crate) fn set_index(&mut self, index: usize) {
136683            match self {
136684                _ => swc_visit::wrong_ast_path(),
136685            }
136686        }
136687    }
136688    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136689    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136690    pub enum AssignExprField {
136691        #[doc = "Represents [`AssignExpr::span`]"]
136692        Span,
136693        #[doc = "Represents [`AssignExpr::op`]"]
136694        Op,
136695        #[doc = "Represents [`AssignExpr::left`]"]
136696        Left,
136697        #[doc = "Represents [`AssignExpr::right`]"]
136698        Right,
136699    }
136700    impl AssignOpField {
136701        #[inline(always)]
136702        pub(crate) fn set_index(&mut self, _: usize) {
136703            swc_visit::wrong_ast_path();
136704        }
136705    }
136706    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136707    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136708    pub enum AssignOpField {
136709        #[doc = "Represents [`AssignOp::Assign`]"]
136710        Assign,
136711        #[doc = "Represents [`AssignOp::AddAssign`]"]
136712        AddAssign,
136713        #[doc = "Represents [`AssignOp::SubAssign`]"]
136714        SubAssign,
136715        #[doc = "Represents [`AssignOp::MulAssign`]"]
136716        MulAssign,
136717        #[doc = "Represents [`AssignOp::DivAssign`]"]
136718        DivAssign,
136719        #[doc = "Represents [`AssignOp::ModAssign`]"]
136720        ModAssign,
136721        #[doc = "Represents [`AssignOp::LShiftAssign`]"]
136722        LshiftAssign,
136723        #[doc = "Represents [`AssignOp::RShiftAssign`]"]
136724        RshiftAssign,
136725        #[doc = "Represents [`AssignOp::ZeroFillRShiftAssign`]"]
136726        ZeroFillRShiftAssign,
136727        #[doc = "Represents [`AssignOp::BitOrAssign`]"]
136728        BitOrAssign,
136729        #[doc = "Represents [`AssignOp::BitXorAssign`]"]
136730        BitXorAssign,
136731        #[doc = "Represents [`AssignOp::BitAndAssign`]"]
136732        BitAndAssign,
136733        #[doc = "Represents [`AssignOp::ExpAssign`]"]
136734        ExpAssign,
136735        #[doc = "Represents [`AssignOp::AndAssign`]"]
136736        AndAssign,
136737        #[doc = "Represents [`AssignOp::OrAssign`]"]
136738        OrAssign,
136739        #[doc = "Represents [`AssignOp::NullishAssign`]"]
136740        NullishAssign,
136741    }
136742    impl AssignPatField {
136743        pub(crate) fn set_index(&mut self, index: usize) {
136744            match self {
136745                _ => swc_visit::wrong_ast_path(),
136746            }
136747        }
136748    }
136749    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136750    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136751    pub enum AssignPatField {
136752        #[doc = "Represents [`AssignPat::span`]"]
136753        Span,
136754        #[doc = "Represents [`AssignPat::left`]"]
136755        Left,
136756        #[doc = "Represents [`AssignPat::right`]"]
136757        Right,
136758    }
136759    impl AssignPatPropField {
136760        pub(crate) fn set_index(&mut self, index: usize) {
136761            match self {
136762                _ => swc_visit::wrong_ast_path(),
136763            }
136764        }
136765    }
136766    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136767    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136768    pub enum AssignPatPropField {
136769        #[doc = "Represents [`AssignPatProp::span`]"]
136770        Span,
136771        #[doc = "Represents [`AssignPatProp::key`]"]
136772        Key,
136773        #[doc = "Represents [`AssignPatProp::value`]"]
136774        Value,
136775    }
136776    impl AssignPropField {
136777        pub(crate) fn set_index(&mut self, index: usize) {
136778            match self {
136779                _ => swc_visit::wrong_ast_path(),
136780            }
136781        }
136782    }
136783    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136784    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136785    pub enum AssignPropField {
136786        #[doc = "Represents [`AssignProp::span`]"]
136787        Span,
136788        #[doc = "Represents [`AssignProp::key`]"]
136789        Key,
136790        #[doc = "Represents [`AssignProp::value`]"]
136791        Value,
136792    }
136793    impl AssignTargetField {
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 AssignTargetField {
136802        #[doc = "Represents [`AssignTarget::Simple`]"]
136803        Simple,
136804        #[doc = "Represents [`AssignTarget::Pat`]"]
136805        Pat,
136806    }
136807    impl AssignTargetPatField {
136808        #[inline(always)]
136809        pub(crate) fn set_index(&mut self, _: usize) {
136810            swc_visit::wrong_ast_path();
136811        }
136812    }
136813    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136814    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136815    pub enum AssignTargetPatField {
136816        #[doc = "Represents [`AssignTargetPat::Array`]"]
136817        Array,
136818        #[doc = "Represents [`AssignTargetPat::Object`]"]
136819        Object,
136820        #[doc = "Represents [`AssignTargetPat::Invalid`]"]
136821        Invalid,
136822    }
136823    impl AutoAccessorField {
136824        pub(crate) fn set_index(&mut self, index: usize) {
136825            match self {
136826                Self::Decorators(idx) => {
136827                    assert_initial_index(*idx, index);
136828                    *idx = index;
136829                }
136830                _ => swc_visit::wrong_ast_path(),
136831            }
136832        }
136833    }
136834    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136835    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136836    pub enum AutoAccessorField {
136837        #[doc = "Represents [`AutoAccessor::span`]"]
136838        Span,
136839        #[doc = "Represents [`AutoAccessor::key`]"]
136840        Key,
136841        #[doc = "Represents [`AutoAccessor::value`]"]
136842        Value,
136843        #[doc = "Represents [`AutoAccessor::type_ann`]"]
136844        TypeAnn,
136845        #[doc = "Represents [`AutoAccessor::is_static`]"]
136846        IsStatic,
136847        #[doc = "Represents [`AutoAccessor::decorators`]"]
136848        Decorators(usize),
136849        #[doc = "Represents [`AutoAccessor::accessibility`]"]
136850        Accessibility,
136851        #[doc = "Represents [`AutoAccessor::is_abstract`]"]
136852        IsAbstract,
136853        #[doc = "Represents [`AutoAccessor::is_override`]"]
136854        IsOverride,
136855        #[doc = "Represents [`AutoAccessor::definite`]"]
136856        Definite,
136857    }
136858    impl AwaitExprField {
136859        pub(crate) fn set_index(&mut self, index: usize) {
136860            match self {
136861                _ => swc_visit::wrong_ast_path(),
136862            }
136863        }
136864    }
136865    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136866    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136867    pub enum AwaitExprField {
136868        #[doc = "Represents [`AwaitExpr::span`]"]
136869        Span,
136870        #[doc = "Represents [`AwaitExpr::arg`]"]
136871        Arg,
136872    }
136873    impl BigIntField {
136874        pub(crate) fn set_index(&mut self, index: usize) {
136875            match self {
136876                _ => swc_visit::wrong_ast_path(),
136877            }
136878        }
136879    }
136880    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136881    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136882    pub enum BigIntField {
136883        #[doc = "Represents [`BigInt::span`]"]
136884        Span,
136885        #[doc = "Represents [`BigInt::value`]"]
136886        Value,
136887        #[doc = "Represents [`BigInt::raw`]"]
136888        Raw,
136889    }
136890    impl BinExprField {
136891        pub(crate) fn set_index(&mut self, index: usize) {
136892            match self {
136893                _ => swc_visit::wrong_ast_path(),
136894            }
136895        }
136896    }
136897    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136898    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136899    pub enum BinExprField {
136900        #[doc = "Represents [`BinExpr::span`]"]
136901        Span,
136902        #[doc = "Represents [`BinExpr::op`]"]
136903        Op,
136904        #[doc = "Represents [`BinExpr::left`]"]
136905        Left,
136906        #[doc = "Represents [`BinExpr::right`]"]
136907        Right,
136908    }
136909    impl BinaryOpField {
136910        #[inline(always)]
136911        pub(crate) fn set_index(&mut self, _: usize) {
136912            swc_visit::wrong_ast_path();
136913        }
136914    }
136915    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136916    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136917    pub enum BinaryOpField {
136918        #[doc = "Represents [`BinaryOp::EqEq`]"]
136919        EqEq,
136920        #[doc = "Represents [`BinaryOp::NotEq`]"]
136921        NotEq,
136922        #[doc = "Represents [`BinaryOp::EqEqEq`]"]
136923        EqEqEq,
136924        #[doc = "Represents [`BinaryOp::NotEqEq`]"]
136925        NotEqEq,
136926        #[doc = "Represents [`BinaryOp::Lt`]"]
136927        Lt,
136928        #[doc = "Represents [`BinaryOp::LtEq`]"]
136929        LtEq,
136930        #[doc = "Represents [`BinaryOp::Gt`]"]
136931        Gt,
136932        #[doc = "Represents [`BinaryOp::GtEq`]"]
136933        GtEq,
136934        #[doc = "Represents [`BinaryOp::LShift`]"]
136935        Lshift,
136936        #[doc = "Represents [`BinaryOp::RShift`]"]
136937        Rshift,
136938        #[doc = "Represents [`BinaryOp::ZeroFillRShift`]"]
136939        ZeroFillRShift,
136940        #[doc = "Represents [`BinaryOp::Add`]"]
136941        Add,
136942        #[doc = "Represents [`BinaryOp::Sub`]"]
136943        Sub,
136944        #[doc = "Represents [`BinaryOp::Mul`]"]
136945        Mul,
136946        #[doc = "Represents [`BinaryOp::Div`]"]
136947        Div,
136948        #[doc = "Represents [`BinaryOp::Mod`]"]
136949        Mod,
136950        #[doc = "Represents [`BinaryOp::BitOr`]"]
136951        BitOr,
136952        #[doc = "Represents [`BinaryOp::BitXor`]"]
136953        BitXor,
136954        #[doc = "Represents [`BinaryOp::BitAnd`]"]
136955        BitAnd,
136956        #[doc = "Represents [`BinaryOp::LogicalOr`]"]
136957        LogicalOr,
136958        #[doc = "Represents [`BinaryOp::LogicalAnd`]"]
136959        LogicalAnd,
136960        #[doc = "Represents [`BinaryOp::In`]"]
136961        In,
136962        #[doc = "Represents [`BinaryOp::InstanceOf`]"]
136963        InstanceOf,
136964        #[doc = "Represents [`BinaryOp::Exp`]"]
136965        Exp,
136966        #[doc = "Represents [`BinaryOp::NullishCoalescing`]"]
136967        NullishCoalescing,
136968    }
136969    impl BindingIdentField {
136970        pub(crate) fn set_index(&mut self, index: usize) {
136971            match self {
136972                _ => swc_visit::wrong_ast_path(),
136973            }
136974        }
136975    }
136976    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136977    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136978    pub enum BindingIdentField {
136979        #[doc = "Represents [`BindingIdent::id`]"]
136980        Id,
136981        #[doc = "Represents [`BindingIdent::type_ann`]"]
136982        TypeAnn,
136983    }
136984    impl BlockStmtField {
136985        pub(crate) fn set_index(&mut self, index: usize) {
136986            match self {
136987                Self::Stmts(idx) => {
136988                    assert_initial_index(*idx, index);
136989                    *idx = index;
136990                }
136991                _ => swc_visit::wrong_ast_path(),
136992            }
136993        }
136994    }
136995    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136996    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136997    pub enum BlockStmtField {
136998        #[doc = "Represents [`BlockStmt::span`]"]
136999        Span,
137000        #[doc = "Represents [`BlockStmt::ctxt`]"]
137001        Ctxt,
137002        #[doc = "Represents [`BlockStmt::stmts`]"]
137003        Stmts(usize),
137004    }
137005    impl BlockStmtOrExprField {
137006        #[inline(always)]
137007        pub(crate) fn set_index(&mut self, _: usize) {
137008            swc_visit::wrong_ast_path();
137009        }
137010    }
137011    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137012    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137013    pub enum BlockStmtOrExprField {
137014        #[doc = "Represents [`BlockStmtOrExpr::BlockStmt`]"]
137015        BlockStmt,
137016        #[doc = "Represents [`BlockStmtOrExpr::Expr`]"]
137017        Expr,
137018    }
137019    impl BoolField {
137020        pub(crate) fn set_index(&mut self, index: usize) {
137021            match self {
137022                _ => swc_visit::wrong_ast_path(),
137023            }
137024        }
137025    }
137026    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137027    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137028    pub enum BoolField {
137029        #[doc = "Represents [`Bool::span`]"]
137030        Span,
137031        #[doc = "Represents [`Bool::value`]"]
137032        Value,
137033    }
137034    impl BreakStmtField {
137035        pub(crate) fn set_index(&mut self, index: usize) {
137036            match self {
137037                _ => swc_visit::wrong_ast_path(),
137038            }
137039        }
137040    }
137041    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137042    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137043    pub enum BreakStmtField {
137044        #[doc = "Represents [`BreakStmt::span`]"]
137045        Span,
137046        #[doc = "Represents [`BreakStmt::label`]"]
137047        Label,
137048    }
137049    impl CallExprField {
137050        pub(crate) fn set_index(&mut self, index: usize) {
137051            match self {
137052                Self::Args(idx) => {
137053                    assert_initial_index(*idx, index);
137054                    *idx = index;
137055                }
137056                _ => swc_visit::wrong_ast_path(),
137057            }
137058        }
137059    }
137060    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137061    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137062    pub enum CallExprField {
137063        #[doc = "Represents [`CallExpr::span`]"]
137064        Span,
137065        #[doc = "Represents [`CallExpr::ctxt`]"]
137066        Ctxt,
137067        #[doc = "Represents [`CallExpr::callee`]"]
137068        Callee,
137069        #[doc = "Represents [`CallExpr::args`]"]
137070        Args(usize),
137071        #[doc = "Represents [`CallExpr::type_args`]"]
137072        TypeArgs,
137073    }
137074    impl CalleeField {
137075        #[inline(always)]
137076        pub(crate) fn set_index(&mut self, _: usize) {
137077            swc_visit::wrong_ast_path();
137078        }
137079    }
137080    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137081    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137082    pub enum CalleeField {
137083        #[doc = "Represents [`Callee::Super`]"]
137084        Super,
137085        #[doc = "Represents [`Callee::Import`]"]
137086        Import,
137087        #[doc = "Represents [`Callee::Expr`]"]
137088        Expr,
137089    }
137090    impl CatchClauseField {
137091        pub(crate) fn set_index(&mut self, index: usize) {
137092            match self {
137093                _ => swc_visit::wrong_ast_path(),
137094            }
137095        }
137096    }
137097    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137098    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137099    pub enum CatchClauseField {
137100        #[doc = "Represents [`CatchClause::span`]"]
137101        Span,
137102        #[doc = "Represents [`CatchClause::param`]"]
137103        Param,
137104        #[doc = "Represents [`CatchClause::body`]"]
137105        Body,
137106    }
137107    impl ClassField {
137108        pub(crate) fn set_index(&mut self, index: usize) {
137109            match self {
137110                Self::Decorators(idx) => {
137111                    assert_initial_index(*idx, index);
137112                    *idx = index;
137113                }
137114                Self::Body(idx) => {
137115                    assert_initial_index(*idx, index);
137116                    *idx = index;
137117                }
137118                Self::Implements(idx) => {
137119                    assert_initial_index(*idx, index);
137120                    *idx = index;
137121                }
137122                _ => swc_visit::wrong_ast_path(),
137123            }
137124        }
137125    }
137126    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137127    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137128    pub enum ClassField {
137129        #[doc = "Represents [`Class::span`]"]
137130        Span,
137131        #[doc = "Represents [`Class::ctxt`]"]
137132        Ctxt,
137133        #[doc = "Represents [`Class::decorators`]"]
137134        Decorators(usize),
137135        #[doc = "Represents [`Class::body`]"]
137136        Body(usize),
137137        #[doc = "Represents [`Class::super_class`]"]
137138        SuperClass,
137139        #[doc = "Represents [`Class::is_abstract`]"]
137140        IsAbstract,
137141        #[doc = "Represents [`Class::type_params`]"]
137142        TypeParams,
137143        #[doc = "Represents [`Class::super_type_params`]"]
137144        SuperTypeParams,
137145        #[doc = "Represents [`Class::implements`]"]
137146        Implements(usize),
137147    }
137148    impl ClassDeclField {
137149        pub(crate) fn set_index(&mut self, index: usize) {
137150            match self {
137151                _ => swc_visit::wrong_ast_path(),
137152            }
137153        }
137154    }
137155    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137156    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137157    pub enum ClassDeclField {
137158        #[doc = "Represents [`ClassDecl::ident`]"]
137159        Ident,
137160        #[doc = "Represents [`ClassDecl::declare`]"]
137161        Declare,
137162        #[doc = "Represents [`ClassDecl::class`]"]
137163        Class,
137164    }
137165    impl ClassExprField {
137166        pub(crate) fn set_index(&mut self, index: usize) {
137167            match self {
137168                _ => swc_visit::wrong_ast_path(),
137169            }
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 ClassExprField {
137175        #[doc = "Represents [`ClassExpr::ident`]"]
137176        Ident,
137177        #[doc = "Represents [`ClassExpr::class`]"]
137178        Class,
137179    }
137180    impl ClassMemberField {
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 ClassMemberField {
137189        #[doc = "Represents [`ClassMember::Constructor`]"]
137190        Constructor,
137191        #[doc = "Represents [`ClassMember::Method`]"]
137192        Method,
137193        #[doc = "Represents [`ClassMember::PrivateMethod`]"]
137194        PrivateMethod,
137195        #[doc = "Represents [`ClassMember::ClassProp`]"]
137196        ClassProp,
137197        #[doc = "Represents [`ClassMember::PrivateProp`]"]
137198        PrivateProp,
137199        #[doc = "Represents [`ClassMember::TsIndexSignature`]"]
137200        TsIndexSignature,
137201        #[doc = "Represents [`ClassMember::Empty`]"]
137202        Empty,
137203        #[doc = "Represents [`ClassMember::StaticBlock`]"]
137204        StaticBlock,
137205        #[doc = "Represents [`ClassMember::AutoAccessor`]"]
137206        AutoAccessor,
137207    }
137208    impl ClassMethodField {
137209        pub(crate) fn set_index(&mut self, index: usize) {
137210            match self {
137211                _ => swc_visit::wrong_ast_path(),
137212            }
137213        }
137214    }
137215    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137216    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137217    pub enum ClassMethodField {
137218        #[doc = "Represents [`ClassMethod::span`]"]
137219        Span,
137220        #[doc = "Represents [`ClassMethod::key`]"]
137221        Key,
137222        #[doc = "Represents [`ClassMethod::function`]"]
137223        Function,
137224        #[doc = "Represents [`ClassMethod::kind`]"]
137225        Kind,
137226        #[doc = "Represents [`ClassMethod::is_static`]"]
137227        IsStatic,
137228        #[doc = "Represents [`ClassMethod::accessibility`]"]
137229        Accessibility,
137230        #[doc = "Represents [`ClassMethod::is_abstract`]"]
137231        IsAbstract,
137232        #[doc = "Represents [`ClassMethod::is_optional`]"]
137233        IsOptional,
137234        #[doc = "Represents [`ClassMethod::is_override`]"]
137235        IsOverride,
137236    }
137237    impl ClassPropField {
137238        pub(crate) fn set_index(&mut self, index: usize) {
137239            match self {
137240                Self::Decorators(idx) => {
137241                    assert_initial_index(*idx, index);
137242                    *idx = index;
137243                }
137244                _ => swc_visit::wrong_ast_path(),
137245            }
137246        }
137247    }
137248    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137249    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137250    pub enum ClassPropField {
137251        #[doc = "Represents [`ClassProp::span`]"]
137252        Span,
137253        #[doc = "Represents [`ClassProp::key`]"]
137254        Key,
137255        #[doc = "Represents [`ClassProp::value`]"]
137256        Value,
137257        #[doc = "Represents [`ClassProp::type_ann`]"]
137258        TypeAnn,
137259        #[doc = "Represents [`ClassProp::is_static`]"]
137260        IsStatic,
137261        #[doc = "Represents [`ClassProp::decorators`]"]
137262        Decorators(usize),
137263        #[doc = "Represents [`ClassProp::accessibility`]"]
137264        Accessibility,
137265        #[doc = "Represents [`ClassProp::is_abstract`]"]
137266        IsAbstract,
137267        #[doc = "Represents [`ClassProp::is_optional`]"]
137268        IsOptional,
137269        #[doc = "Represents [`ClassProp::is_override`]"]
137270        IsOverride,
137271        #[doc = "Represents [`ClassProp::readonly`]"]
137272        Readonly,
137273        #[doc = "Represents [`ClassProp::declare`]"]
137274        Declare,
137275        #[doc = "Represents [`ClassProp::definite`]"]
137276        Definite,
137277    }
137278    impl ComputedPropNameField {
137279        pub(crate) fn set_index(&mut self, index: usize) {
137280            match self {
137281                _ => swc_visit::wrong_ast_path(),
137282            }
137283        }
137284    }
137285    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137286    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137287    pub enum ComputedPropNameField {
137288        #[doc = "Represents [`ComputedPropName::span`]"]
137289        Span,
137290        #[doc = "Represents [`ComputedPropName::expr`]"]
137291        Expr,
137292    }
137293    impl CondExprField {
137294        pub(crate) fn set_index(&mut self, index: usize) {
137295            match self {
137296                _ => swc_visit::wrong_ast_path(),
137297            }
137298        }
137299    }
137300    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137301    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137302    pub enum CondExprField {
137303        #[doc = "Represents [`CondExpr::span`]"]
137304        Span,
137305        #[doc = "Represents [`CondExpr::test`]"]
137306        Test,
137307        #[doc = "Represents [`CondExpr::cons`]"]
137308        Cons,
137309        #[doc = "Represents [`CondExpr::alt`]"]
137310        Alt,
137311    }
137312    impl ConstructorField {
137313        pub(crate) fn set_index(&mut self, index: usize) {
137314            match self {
137315                Self::Params(idx) => {
137316                    assert_initial_index(*idx, index);
137317                    *idx = index;
137318                }
137319                _ => swc_visit::wrong_ast_path(),
137320            }
137321        }
137322    }
137323    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137324    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137325    pub enum ConstructorField {
137326        #[doc = "Represents [`Constructor::span`]"]
137327        Span,
137328        #[doc = "Represents [`Constructor::ctxt`]"]
137329        Ctxt,
137330        #[doc = "Represents [`Constructor::key`]"]
137331        Key,
137332        #[doc = "Represents [`Constructor::params`]"]
137333        Params(usize),
137334        #[doc = "Represents [`Constructor::body`]"]
137335        Body,
137336        #[doc = "Represents [`Constructor::accessibility`]"]
137337        Accessibility,
137338        #[doc = "Represents [`Constructor::is_optional`]"]
137339        IsOptional,
137340    }
137341    impl ContinueStmtField {
137342        pub(crate) fn set_index(&mut self, index: usize) {
137343            match self {
137344                _ => swc_visit::wrong_ast_path(),
137345            }
137346        }
137347    }
137348    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137349    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137350    pub enum ContinueStmtField {
137351        #[doc = "Represents [`ContinueStmt::span`]"]
137352        Span,
137353        #[doc = "Represents [`ContinueStmt::label`]"]
137354        Label,
137355    }
137356    impl DebuggerStmtField {
137357        pub(crate) fn set_index(&mut self, index: usize) {
137358            match self {
137359                _ => swc_visit::wrong_ast_path(),
137360            }
137361        }
137362    }
137363    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137364    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137365    pub enum DebuggerStmtField {
137366        #[doc = "Represents [`DebuggerStmt::span`]"]
137367        Span,
137368    }
137369    impl DeclField {
137370        #[inline(always)]
137371        pub(crate) fn set_index(&mut self, _: usize) {
137372            swc_visit::wrong_ast_path();
137373        }
137374    }
137375    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137376    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137377    pub enum DeclField {
137378        #[doc = "Represents [`Decl::Class`]"]
137379        Class,
137380        #[doc = "Represents [`Decl::Fn`]"]
137381        Fn,
137382        #[doc = "Represents [`Decl::Var`]"]
137383        Var,
137384        #[doc = "Represents [`Decl::Using`]"]
137385        Using,
137386        #[doc = "Represents [`Decl::TsInterface`]"]
137387        TsInterface,
137388        #[doc = "Represents [`Decl::TsTypeAlias`]"]
137389        TsTypeAlias,
137390        #[doc = "Represents [`Decl::TsEnum`]"]
137391        TsEnum,
137392        #[doc = "Represents [`Decl::TsModule`]"]
137393        TsModule,
137394    }
137395    impl DecoratorField {
137396        pub(crate) fn set_index(&mut self, index: usize) {
137397            match self {
137398                _ => swc_visit::wrong_ast_path(),
137399            }
137400        }
137401    }
137402    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137403    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137404    pub enum DecoratorField {
137405        #[doc = "Represents [`Decorator::span`]"]
137406        Span,
137407        #[doc = "Represents [`Decorator::expr`]"]
137408        Expr,
137409    }
137410    impl DefaultDeclField {
137411        #[inline(always)]
137412        pub(crate) fn set_index(&mut self, _: usize) {
137413            swc_visit::wrong_ast_path();
137414        }
137415    }
137416    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137417    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137418    pub enum DefaultDeclField {
137419        #[doc = "Represents [`DefaultDecl::Class`]"]
137420        Class,
137421        #[doc = "Represents [`DefaultDecl::Fn`]"]
137422        Fn,
137423        #[doc = "Represents [`DefaultDecl::TsInterfaceDecl`]"]
137424        TsInterfaceDecl,
137425    }
137426    impl DoWhileStmtField {
137427        pub(crate) fn set_index(&mut self, index: usize) {
137428            match self {
137429                _ => swc_visit::wrong_ast_path(),
137430            }
137431        }
137432    }
137433    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137434    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137435    pub enum DoWhileStmtField {
137436        #[doc = "Represents [`DoWhileStmt::span`]"]
137437        Span,
137438        #[doc = "Represents [`DoWhileStmt::test`]"]
137439        Test,
137440        #[doc = "Represents [`DoWhileStmt::body`]"]
137441        Body,
137442    }
137443    impl EmptyStmtField {
137444        pub(crate) fn set_index(&mut self, index: usize) {
137445            match self {
137446                _ => swc_visit::wrong_ast_path(),
137447            }
137448        }
137449    }
137450    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137451    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137452    pub enum EmptyStmtField {
137453        #[doc = "Represents [`EmptyStmt::span`]"]
137454        Span,
137455    }
137456    impl ExportAllField {
137457        pub(crate) fn set_index(&mut self, index: usize) {
137458            match self {
137459                _ => swc_visit::wrong_ast_path(),
137460            }
137461        }
137462    }
137463    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137464    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137465    pub enum ExportAllField {
137466        #[doc = "Represents [`ExportAll::span`]"]
137467        Span,
137468        #[doc = "Represents [`ExportAll::src`]"]
137469        Src,
137470        #[doc = "Represents [`ExportAll::type_only`]"]
137471        TypeOnly,
137472        #[doc = "Represents [`ExportAll::with`]"]
137473        With,
137474    }
137475    impl ExportDeclField {
137476        pub(crate) fn set_index(&mut self, index: usize) {
137477            match self {
137478                _ => swc_visit::wrong_ast_path(),
137479            }
137480        }
137481    }
137482    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137483    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137484    pub enum ExportDeclField {
137485        #[doc = "Represents [`ExportDecl::span`]"]
137486        Span,
137487        #[doc = "Represents [`ExportDecl::decl`]"]
137488        Decl,
137489    }
137490    impl ExportDefaultDeclField {
137491        pub(crate) fn set_index(&mut self, index: usize) {
137492            match self {
137493                _ => swc_visit::wrong_ast_path(),
137494            }
137495        }
137496    }
137497    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137498    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137499    pub enum ExportDefaultDeclField {
137500        #[doc = "Represents [`ExportDefaultDecl::span`]"]
137501        Span,
137502        #[doc = "Represents [`ExportDefaultDecl::decl`]"]
137503        Decl,
137504    }
137505    impl ExportDefaultExprField {
137506        pub(crate) fn set_index(&mut self, index: usize) {
137507            match self {
137508                _ => swc_visit::wrong_ast_path(),
137509            }
137510        }
137511    }
137512    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137513    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137514    pub enum ExportDefaultExprField {
137515        #[doc = "Represents [`ExportDefaultExpr::span`]"]
137516        Span,
137517        #[doc = "Represents [`ExportDefaultExpr::expr`]"]
137518        Expr,
137519    }
137520    impl ExportDefaultSpecifierField {
137521        pub(crate) fn set_index(&mut self, index: usize) {
137522            match self {
137523                _ => swc_visit::wrong_ast_path(),
137524            }
137525        }
137526    }
137527    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137528    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137529    pub enum ExportDefaultSpecifierField {
137530        #[doc = "Represents [`ExportDefaultSpecifier::exported`]"]
137531        Exported,
137532    }
137533    impl ExportNamedSpecifierField {
137534        pub(crate) fn set_index(&mut self, index: usize) {
137535            match self {
137536                _ => swc_visit::wrong_ast_path(),
137537            }
137538        }
137539    }
137540    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137541    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137542    pub enum ExportNamedSpecifierField {
137543        #[doc = "Represents [`ExportNamedSpecifier::span`]"]
137544        Span,
137545        #[doc = "Represents [`ExportNamedSpecifier::orig`]"]
137546        Orig,
137547        #[doc = "Represents [`ExportNamedSpecifier::exported`]"]
137548        Exported,
137549        #[doc = "Represents [`ExportNamedSpecifier::is_type_only`]"]
137550        IsTypeOnly,
137551    }
137552    impl ExportNamespaceSpecifierField {
137553        pub(crate) fn set_index(&mut self, index: usize) {
137554            match self {
137555                _ => swc_visit::wrong_ast_path(),
137556            }
137557        }
137558    }
137559    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137560    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137561    pub enum ExportNamespaceSpecifierField {
137562        #[doc = "Represents [`ExportNamespaceSpecifier::span`]"]
137563        Span,
137564        #[doc = "Represents [`ExportNamespaceSpecifier::name`]"]
137565        Name,
137566    }
137567    impl ExportSpecifierField {
137568        #[inline(always)]
137569        pub(crate) fn set_index(&mut self, _: usize) {
137570            swc_visit::wrong_ast_path();
137571        }
137572    }
137573    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137574    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137575    pub enum ExportSpecifierField {
137576        #[doc = "Represents [`ExportSpecifier::Namespace`]"]
137577        Namespace,
137578        #[doc = "Represents [`ExportSpecifier::Default`]"]
137579        Default,
137580        #[doc = "Represents [`ExportSpecifier::Named`]"]
137581        Named,
137582    }
137583    impl ExprField {
137584        #[inline(always)]
137585        pub(crate) fn set_index(&mut self, _: usize) {
137586            swc_visit::wrong_ast_path();
137587        }
137588    }
137589    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137590    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137591    pub enum ExprField {
137592        #[doc = "Represents [`Expr::This`]"]
137593        This,
137594        #[doc = "Represents [`Expr::Array`]"]
137595        Array,
137596        #[doc = "Represents [`Expr::Object`]"]
137597        Object,
137598        #[doc = "Represents [`Expr::Fn`]"]
137599        Fn,
137600        #[doc = "Represents [`Expr::Unary`]"]
137601        Unary,
137602        #[doc = "Represents [`Expr::Update`]"]
137603        Update,
137604        #[doc = "Represents [`Expr::Bin`]"]
137605        Bin,
137606        #[doc = "Represents [`Expr::Assign`]"]
137607        Assign,
137608        #[doc = "Represents [`Expr::Member`]"]
137609        Member,
137610        #[doc = "Represents [`Expr::SuperProp`]"]
137611        SuperProp,
137612        #[doc = "Represents [`Expr::Cond`]"]
137613        Cond,
137614        #[doc = "Represents [`Expr::Call`]"]
137615        Call,
137616        #[doc = "Represents [`Expr::New`]"]
137617        New,
137618        #[doc = "Represents [`Expr::Seq`]"]
137619        Seq,
137620        #[doc = "Represents [`Expr::Ident`]"]
137621        Ident,
137622        #[doc = "Represents [`Expr::Lit`]"]
137623        Lit,
137624        #[doc = "Represents [`Expr::Tpl`]"]
137625        Tpl,
137626        #[doc = "Represents [`Expr::TaggedTpl`]"]
137627        TaggedTpl,
137628        #[doc = "Represents [`Expr::Arrow`]"]
137629        Arrow,
137630        #[doc = "Represents [`Expr::Class`]"]
137631        Class,
137632        #[doc = "Represents [`Expr::Yield`]"]
137633        Yield,
137634        #[doc = "Represents [`Expr::MetaProp`]"]
137635        MetaProp,
137636        #[doc = "Represents [`Expr::Await`]"]
137637        Await,
137638        #[doc = "Represents [`Expr::Paren`]"]
137639        Paren,
137640        #[doc = "Represents [`Expr::JSXMember`]"]
137641        Jsxmember,
137642        #[doc = "Represents [`Expr::JSXNamespacedName`]"]
137643        JsxnamespacedName,
137644        #[doc = "Represents [`Expr::JSXEmpty`]"]
137645        Jsxempty,
137646        #[doc = "Represents [`Expr::JSXElement`]"]
137647        Jsxelement,
137648        #[doc = "Represents [`Expr::JSXFragment`]"]
137649        Jsxfragment,
137650        #[doc = "Represents [`Expr::TsTypeAssertion`]"]
137651        TsTypeAssertion,
137652        #[doc = "Represents [`Expr::TsConstAssertion`]"]
137653        TsConstAssertion,
137654        #[doc = "Represents [`Expr::TsNonNull`]"]
137655        TsNonNull,
137656        #[doc = "Represents [`Expr::TsAs`]"]
137657        TsAs,
137658        #[doc = "Represents [`Expr::TsInstantiation`]"]
137659        TsInstantiation,
137660        #[doc = "Represents [`Expr::TsSatisfies`]"]
137661        TsSatisfies,
137662        #[doc = "Represents [`Expr::PrivateName`]"]
137663        PrivateName,
137664        #[doc = "Represents [`Expr::OptChain`]"]
137665        OptChain,
137666        #[doc = "Represents [`Expr::Invalid`]"]
137667        Invalid,
137668    }
137669    impl ExprOrSpreadField {
137670        pub(crate) fn set_index(&mut self, index: usize) {
137671            match self {
137672                _ => swc_visit::wrong_ast_path(),
137673            }
137674        }
137675    }
137676    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137677    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137678    pub enum ExprOrSpreadField {
137679        #[doc = "Represents [`ExprOrSpread::spread`]"]
137680        Spread,
137681        #[doc = "Represents [`ExprOrSpread::expr`]"]
137682        Expr,
137683    }
137684    impl ExprStmtField {
137685        pub(crate) fn set_index(&mut self, index: usize) {
137686            match self {
137687                _ => swc_visit::wrong_ast_path(),
137688            }
137689        }
137690    }
137691    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137692    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137693    pub enum ExprStmtField {
137694        #[doc = "Represents [`ExprStmt::span`]"]
137695        Span,
137696        #[doc = "Represents [`ExprStmt::expr`]"]
137697        Expr,
137698    }
137699    impl FnDeclField {
137700        pub(crate) fn set_index(&mut self, index: usize) {
137701            match self {
137702                _ => swc_visit::wrong_ast_path(),
137703            }
137704        }
137705    }
137706    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137707    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137708    pub enum FnDeclField {
137709        #[doc = "Represents [`FnDecl::ident`]"]
137710        Ident,
137711        #[doc = "Represents [`FnDecl::declare`]"]
137712        Declare,
137713        #[doc = "Represents [`FnDecl::function`]"]
137714        Function,
137715    }
137716    impl FnExprField {
137717        pub(crate) fn set_index(&mut self, index: usize) {
137718            match self {
137719                _ => swc_visit::wrong_ast_path(),
137720            }
137721        }
137722    }
137723    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137724    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137725    pub enum FnExprField {
137726        #[doc = "Represents [`FnExpr::ident`]"]
137727        Ident,
137728        #[doc = "Represents [`FnExpr::function`]"]
137729        Function,
137730    }
137731    impl ForHeadField {
137732        #[inline(always)]
137733        pub(crate) fn set_index(&mut self, _: usize) {
137734            swc_visit::wrong_ast_path();
137735        }
137736    }
137737    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137738    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137739    pub enum ForHeadField {
137740        #[doc = "Represents [`ForHead::VarDecl`]"]
137741        VarDecl,
137742        #[doc = "Represents [`ForHead::UsingDecl`]"]
137743        UsingDecl,
137744        #[doc = "Represents [`ForHead::Pat`]"]
137745        Pat,
137746    }
137747    impl ForInStmtField {
137748        pub(crate) fn set_index(&mut self, index: usize) {
137749            match self {
137750                _ => swc_visit::wrong_ast_path(),
137751            }
137752        }
137753    }
137754    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137755    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137756    pub enum ForInStmtField {
137757        #[doc = "Represents [`ForInStmt::span`]"]
137758        Span,
137759        #[doc = "Represents [`ForInStmt::left`]"]
137760        Left,
137761        #[doc = "Represents [`ForInStmt::right`]"]
137762        Right,
137763        #[doc = "Represents [`ForInStmt::body`]"]
137764        Body,
137765    }
137766    impl ForOfStmtField {
137767        pub(crate) fn set_index(&mut self, index: usize) {
137768            match self {
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 ForOfStmtField {
137776        #[doc = "Represents [`ForOfStmt::span`]"]
137777        Span,
137778        #[doc = "Represents [`ForOfStmt::is_await`]"]
137779        IsAwait,
137780        #[doc = "Represents [`ForOfStmt::left`]"]
137781        Left,
137782        #[doc = "Represents [`ForOfStmt::right`]"]
137783        Right,
137784        #[doc = "Represents [`ForOfStmt::body`]"]
137785        Body,
137786    }
137787    impl ForStmtField {
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 ForStmtField {
137797        #[doc = "Represents [`ForStmt::span`]"]
137798        Span,
137799        #[doc = "Represents [`ForStmt::init`]"]
137800        Init,
137801        #[doc = "Represents [`ForStmt::test`]"]
137802        Test,
137803        #[doc = "Represents [`ForStmt::update`]"]
137804        Update,
137805        #[doc = "Represents [`ForStmt::body`]"]
137806        Body,
137807    }
137808    impl FunctionField {
137809        pub(crate) fn set_index(&mut self, index: usize) {
137810            match self {
137811                Self::Params(idx) => {
137812                    assert_initial_index(*idx, index);
137813                    *idx = index;
137814                }
137815                Self::Decorators(idx) => {
137816                    assert_initial_index(*idx, index);
137817                    *idx = index;
137818                }
137819                _ => swc_visit::wrong_ast_path(),
137820            }
137821        }
137822    }
137823    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137824    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137825    pub enum FunctionField {
137826        #[doc = "Represents [`Function::params`]"]
137827        Params(usize),
137828        #[doc = "Represents [`Function::decorators`]"]
137829        Decorators(usize),
137830        #[doc = "Represents [`Function::span`]"]
137831        Span,
137832        #[doc = "Represents [`Function::ctxt`]"]
137833        Ctxt,
137834        #[doc = "Represents [`Function::body`]"]
137835        Body,
137836        #[doc = "Represents [`Function::is_generator`]"]
137837        IsGenerator,
137838        #[doc = "Represents [`Function::is_async`]"]
137839        IsAsync,
137840        #[doc = "Represents [`Function::type_params`]"]
137841        TypeParams,
137842        #[doc = "Represents [`Function::return_type`]"]
137843        ReturnType,
137844    }
137845    impl GetterPropField {
137846        pub(crate) fn set_index(&mut self, index: usize) {
137847            match self {
137848                _ => swc_visit::wrong_ast_path(),
137849            }
137850        }
137851    }
137852    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137853    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137854    pub enum GetterPropField {
137855        #[doc = "Represents [`GetterProp::span`]"]
137856        Span,
137857        #[doc = "Represents [`GetterProp::key`]"]
137858        Key,
137859        #[doc = "Represents [`GetterProp::type_ann`]"]
137860        TypeAnn,
137861        #[doc = "Represents [`GetterProp::body`]"]
137862        Body,
137863    }
137864    impl IdentField {
137865        pub(crate) fn set_index(&mut self, index: usize) {
137866            match self {
137867                _ => swc_visit::wrong_ast_path(),
137868            }
137869        }
137870    }
137871    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137872    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137873    pub enum IdentField {
137874        #[doc = "Represents [`Ident::span`]"]
137875        Span,
137876        #[doc = "Represents [`Ident::ctxt`]"]
137877        Ctxt,
137878        #[doc = "Represents [`Ident::sym`]"]
137879        Sym,
137880        #[doc = "Represents [`Ident::optional`]"]
137881        Optional,
137882    }
137883    impl IdentNameField {
137884        pub(crate) fn set_index(&mut self, index: usize) {
137885            match self {
137886                _ => swc_visit::wrong_ast_path(),
137887            }
137888        }
137889    }
137890    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137891    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137892    pub enum IdentNameField {
137893        #[doc = "Represents [`IdentName::span`]"]
137894        Span,
137895        #[doc = "Represents [`IdentName::sym`]"]
137896        Sym,
137897    }
137898    impl IfStmtField {
137899        pub(crate) fn set_index(&mut self, index: usize) {
137900            match self {
137901                _ => swc_visit::wrong_ast_path(),
137902            }
137903        }
137904    }
137905    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137906    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137907    pub enum IfStmtField {
137908        #[doc = "Represents [`IfStmt::span`]"]
137909        Span,
137910        #[doc = "Represents [`IfStmt::test`]"]
137911        Test,
137912        #[doc = "Represents [`IfStmt::cons`]"]
137913        Cons,
137914        #[doc = "Represents [`IfStmt::alt`]"]
137915        Alt,
137916    }
137917    impl ImportField {
137918        pub(crate) fn set_index(&mut self, index: usize) {
137919            match self {
137920                _ => swc_visit::wrong_ast_path(),
137921            }
137922        }
137923    }
137924    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137925    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137926    pub enum ImportField {
137927        #[doc = "Represents [`Import::span`]"]
137928        Span,
137929        #[doc = "Represents [`Import::phase`]"]
137930        Phase,
137931    }
137932    impl ImportDeclField {
137933        pub(crate) fn set_index(&mut self, index: usize) {
137934            match self {
137935                Self::Specifiers(idx) => {
137936                    assert_initial_index(*idx, index);
137937                    *idx = index;
137938                }
137939                _ => swc_visit::wrong_ast_path(),
137940            }
137941        }
137942    }
137943    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137944    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137945    pub enum ImportDeclField {
137946        #[doc = "Represents [`ImportDecl::span`]"]
137947        Span,
137948        #[doc = "Represents [`ImportDecl::specifiers`]"]
137949        Specifiers(usize),
137950        #[doc = "Represents [`ImportDecl::src`]"]
137951        Src,
137952        #[doc = "Represents [`ImportDecl::type_only`]"]
137953        TypeOnly,
137954        #[doc = "Represents [`ImportDecl::with`]"]
137955        With,
137956        #[doc = "Represents [`ImportDecl::phase`]"]
137957        Phase,
137958    }
137959    impl ImportDefaultSpecifierField {
137960        pub(crate) fn set_index(&mut self, index: usize) {
137961            match self {
137962                _ => swc_visit::wrong_ast_path(),
137963            }
137964        }
137965    }
137966    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137967    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137968    pub enum ImportDefaultSpecifierField {
137969        #[doc = "Represents [`ImportDefaultSpecifier::span`]"]
137970        Span,
137971        #[doc = "Represents [`ImportDefaultSpecifier::local`]"]
137972        Local,
137973    }
137974    impl ImportNamedSpecifierField {
137975        pub(crate) fn set_index(&mut self, index: usize) {
137976            match self {
137977                _ => swc_visit::wrong_ast_path(),
137978            }
137979        }
137980    }
137981    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137982    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137983    pub enum ImportNamedSpecifierField {
137984        #[doc = "Represents [`ImportNamedSpecifier::span`]"]
137985        Span,
137986        #[doc = "Represents [`ImportNamedSpecifier::local`]"]
137987        Local,
137988        #[doc = "Represents [`ImportNamedSpecifier::imported`]"]
137989        Imported,
137990        #[doc = "Represents [`ImportNamedSpecifier::is_type_only`]"]
137991        IsTypeOnly,
137992    }
137993    impl ImportPhaseField {
137994        #[inline(always)]
137995        pub(crate) fn set_index(&mut self, _: usize) {
137996            swc_visit::wrong_ast_path();
137997        }
137998    }
137999    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138000    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138001    pub enum ImportPhaseField {
138002        #[doc = "Represents [`ImportPhase::Evaluation`]"]
138003        Evaluation,
138004        #[doc = "Represents [`ImportPhase::Source`]"]
138005        Source,
138006        #[doc = "Represents [`ImportPhase::Defer`]"]
138007        Defer,
138008    }
138009    impl ImportSpecifierField {
138010        #[inline(always)]
138011        pub(crate) fn set_index(&mut self, _: usize) {
138012            swc_visit::wrong_ast_path();
138013        }
138014    }
138015    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138016    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138017    pub enum ImportSpecifierField {
138018        #[doc = "Represents [`ImportSpecifier::Named`]"]
138019        Named,
138020        #[doc = "Represents [`ImportSpecifier::Default`]"]
138021        Default,
138022        #[doc = "Represents [`ImportSpecifier::Namespace`]"]
138023        Namespace,
138024    }
138025    impl ImportStarAsSpecifierField {
138026        pub(crate) fn set_index(&mut self, index: usize) {
138027            match self {
138028                _ => swc_visit::wrong_ast_path(),
138029            }
138030        }
138031    }
138032    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138033    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138034    pub enum ImportStarAsSpecifierField {
138035        #[doc = "Represents [`ImportStarAsSpecifier::span`]"]
138036        Span,
138037        #[doc = "Represents [`ImportStarAsSpecifier::local`]"]
138038        Local,
138039    }
138040    impl ImportWithField {
138041        pub(crate) fn set_index(&mut self, index: usize) {
138042            match self {
138043                Self::Values(idx) => {
138044                    assert_initial_index(*idx, index);
138045                    *idx = index;
138046                }
138047                _ => swc_visit::wrong_ast_path(),
138048            }
138049        }
138050    }
138051    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138052    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138053    pub enum ImportWithField {
138054        #[doc = "Represents [`ImportWith::span`]"]
138055        Span,
138056        #[doc = "Represents [`ImportWith::values`]"]
138057        Values(usize),
138058    }
138059    impl ImportWithItemField {
138060        pub(crate) fn set_index(&mut self, index: usize) {
138061            match self {
138062                _ => swc_visit::wrong_ast_path(),
138063            }
138064        }
138065    }
138066    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138067    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138068    pub enum ImportWithItemField {
138069        #[doc = "Represents [`ImportWithItem::key`]"]
138070        Key,
138071        #[doc = "Represents [`ImportWithItem::value`]"]
138072        Value,
138073    }
138074    impl InvalidField {
138075        pub(crate) fn set_index(&mut self, index: usize) {
138076            match self {
138077                _ => swc_visit::wrong_ast_path(),
138078            }
138079        }
138080    }
138081    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138082    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138083    pub enum InvalidField {
138084        #[doc = "Represents [`Invalid::span`]"]
138085        Span,
138086    }
138087    impl JSXAttrField {
138088        pub(crate) fn set_index(&mut self, index: usize) {
138089            match self {
138090                _ => swc_visit::wrong_ast_path(),
138091            }
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 JSXAttrField {
138097        #[doc = "Represents [`JSXAttr::span`]"]
138098        Span,
138099        #[doc = "Represents [`JSXAttr::name`]"]
138100        Name,
138101        #[doc = "Represents [`JSXAttr::value`]"]
138102        Value,
138103    }
138104    impl JSXAttrNameField {
138105        #[inline(always)]
138106        pub(crate) fn set_index(&mut self, _: usize) {
138107            swc_visit::wrong_ast_path();
138108        }
138109    }
138110    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138111    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138112    pub enum JSXAttrNameField {
138113        #[doc = "Represents [`JSXAttrName::Ident`]"]
138114        Ident,
138115        #[doc = "Represents [`JSXAttrName::JSXNamespacedName`]"]
138116        JsxnamespacedName,
138117    }
138118    impl JSXAttrOrSpreadField {
138119        #[inline(always)]
138120        pub(crate) fn set_index(&mut self, _: usize) {
138121            swc_visit::wrong_ast_path();
138122        }
138123    }
138124    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138125    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138126    pub enum JSXAttrOrSpreadField {
138127        #[doc = "Represents [`JSXAttrOrSpread::JSXAttr`]"]
138128        Jsxattr,
138129        #[doc = "Represents [`JSXAttrOrSpread::SpreadElement`]"]
138130        SpreadElement,
138131    }
138132    impl JSXAttrValueField {
138133        #[inline(always)]
138134        pub(crate) fn set_index(&mut self, _: usize) {
138135            swc_visit::wrong_ast_path();
138136        }
138137    }
138138    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138139    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138140    pub enum JSXAttrValueField {
138141        #[doc = "Represents [`JSXAttrValue::Lit`]"]
138142        Lit,
138143        #[doc = "Represents [`JSXAttrValue::JSXExprContainer`]"]
138144        JsxexprContainer,
138145        #[doc = "Represents [`JSXAttrValue::JSXElement`]"]
138146        Jsxelement,
138147        #[doc = "Represents [`JSXAttrValue::JSXFragment`]"]
138148        Jsxfragment,
138149    }
138150    impl JSXClosingElementField {
138151        pub(crate) fn set_index(&mut self, index: usize) {
138152            match self {
138153                _ => swc_visit::wrong_ast_path(),
138154            }
138155        }
138156    }
138157    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138158    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138159    pub enum JSXClosingElementField {
138160        #[doc = "Represents [`JSXClosingElement::span`]"]
138161        Span,
138162        #[doc = "Represents [`JSXClosingElement::name`]"]
138163        Name,
138164    }
138165    impl JSXClosingFragmentField {
138166        pub(crate) fn set_index(&mut self, index: usize) {
138167            match self {
138168                _ => swc_visit::wrong_ast_path(),
138169            }
138170        }
138171    }
138172    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138173    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138174    pub enum JSXClosingFragmentField {
138175        #[doc = "Represents [`JSXClosingFragment::span`]"]
138176        Span,
138177    }
138178    impl JSXElementField {
138179        pub(crate) fn set_index(&mut self, index: usize) {
138180            match self {
138181                Self::Children(idx) => {
138182                    assert_initial_index(*idx, index);
138183                    *idx = index;
138184                }
138185                _ => swc_visit::wrong_ast_path(),
138186            }
138187        }
138188    }
138189    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138190    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138191    pub enum JSXElementField {
138192        #[doc = "Represents [`JSXElement::span`]"]
138193        Span,
138194        #[doc = "Represents [`JSXElement::opening`]"]
138195        Opening,
138196        #[doc = "Represents [`JSXElement::children`]"]
138197        Children(usize),
138198        #[doc = "Represents [`JSXElement::closing`]"]
138199        Closing,
138200    }
138201    impl JSXElementChildField {
138202        #[inline(always)]
138203        pub(crate) fn set_index(&mut self, _: usize) {
138204            swc_visit::wrong_ast_path();
138205        }
138206    }
138207    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138208    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138209    pub enum JSXElementChildField {
138210        #[doc = "Represents [`JSXElementChild::JSXText`]"]
138211        Jsxtext,
138212        #[doc = "Represents [`JSXElementChild::JSXExprContainer`]"]
138213        JsxexprContainer,
138214        #[doc = "Represents [`JSXElementChild::JSXSpreadChild`]"]
138215        JsxspreadChild,
138216        #[doc = "Represents [`JSXElementChild::JSXElement`]"]
138217        Jsxelement,
138218        #[doc = "Represents [`JSXElementChild::JSXFragment`]"]
138219        Jsxfragment,
138220    }
138221    impl JSXElementNameField {
138222        #[inline(always)]
138223        pub(crate) fn set_index(&mut self, _: usize) {
138224            swc_visit::wrong_ast_path();
138225        }
138226    }
138227    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138228    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138229    pub enum JSXElementNameField {
138230        #[doc = "Represents [`JSXElementName::Ident`]"]
138231        Ident,
138232        #[doc = "Represents [`JSXElementName::JSXMemberExpr`]"]
138233        JsxmemberExpr,
138234        #[doc = "Represents [`JSXElementName::JSXNamespacedName`]"]
138235        JsxnamespacedName,
138236    }
138237    impl JSXEmptyExprField {
138238        pub(crate) fn set_index(&mut self, index: usize) {
138239            match self {
138240                _ => swc_visit::wrong_ast_path(),
138241            }
138242        }
138243    }
138244    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138245    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138246    pub enum JSXEmptyExprField {
138247        #[doc = "Represents [`JSXEmptyExpr::span`]"]
138248        Span,
138249    }
138250    impl JSXExprField {
138251        #[inline(always)]
138252        pub(crate) fn set_index(&mut self, _: usize) {
138253            swc_visit::wrong_ast_path();
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 JSXExprField {
138259        #[doc = "Represents [`JSXExpr::JSXEmptyExpr`]"]
138260        JsxemptyExpr,
138261        #[doc = "Represents [`JSXExpr::Expr`]"]
138262        Expr,
138263    }
138264    impl JSXExprContainerField {
138265        pub(crate) fn set_index(&mut self, index: usize) {
138266            match self {
138267                _ => swc_visit::wrong_ast_path(),
138268            }
138269        }
138270    }
138271    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138272    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138273    pub enum JSXExprContainerField {
138274        #[doc = "Represents [`JSXExprContainer::span`]"]
138275        Span,
138276        #[doc = "Represents [`JSXExprContainer::expr`]"]
138277        Expr,
138278    }
138279    impl JSXFragmentField {
138280        pub(crate) fn set_index(&mut self, index: usize) {
138281            match self {
138282                Self::Children(idx) => {
138283                    assert_initial_index(*idx, index);
138284                    *idx = index;
138285                }
138286                _ => swc_visit::wrong_ast_path(),
138287            }
138288        }
138289    }
138290    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138291    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138292    pub enum JSXFragmentField {
138293        #[doc = "Represents [`JSXFragment::span`]"]
138294        Span,
138295        #[doc = "Represents [`JSXFragment::opening`]"]
138296        Opening,
138297        #[doc = "Represents [`JSXFragment::children`]"]
138298        Children(usize),
138299        #[doc = "Represents [`JSXFragment::closing`]"]
138300        Closing,
138301    }
138302    impl JSXMemberExprField {
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 JSXMemberExprField {
138312        #[doc = "Represents [`JSXMemberExpr::span`]"]
138313        Span,
138314        #[doc = "Represents [`JSXMemberExpr::obj`]"]
138315        Obj,
138316        #[doc = "Represents [`JSXMemberExpr::prop`]"]
138317        Prop,
138318    }
138319    impl JSXNamespacedNameField {
138320        pub(crate) fn set_index(&mut self, index: usize) {
138321            match self {
138322                _ => swc_visit::wrong_ast_path(),
138323            }
138324        }
138325    }
138326    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138327    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138328    pub enum JSXNamespacedNameField {
138329        #[doc = "Represents [`JSXNamespacedName::span`]"]
138330        Span,
138331        #[doc = "Represents [`JSXNamespacedName::ns`]"]
138332        Ns,
138333        #[doc = "Represents [`JSXNamespacedName::name`]"]
138334        Name,
138335    }
138336    impl JSXObjectField {
138337        #[inline(always)]
138338        pub(crate) fn set_index(&mut self, _: usize) {
138339            swc_visit::wrong_ast_path();
138340        }
138341    }
138342    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138343    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138344    pub enum JSXObjectField {
138345        #[doc = "Represents [`JSXObject::JSXMemberExpr`]"]
138346        JsxmemberExpr,
138347        #[doc = "Represents [`JSXObject::Ident`]"]
138348        Ident,
138349    }
138350    impl JSXOpeningElementField {
138351        pub(crate) fn set_index(&mut self, index: usize) {
138352            match self {
138353                Self::Attrs(idx) => {
138354                    assert_initial_index(*idx, index);
138355                    *idx = index;
138356                }
138357                _ => swc_visit::wrong_ast_path(),
138358            }
138359        }
138360    }
138361    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138362    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138363    pub enum JSXOpeningElementField {
138364        #[doc = "Represents [`JSXOpeningElement::name`]"]
138365        Name,
138366        #[doc = "Represents [`JSXOpeningElement::span`]"]
138367        Span,
138368        #[doc = "Represents [`JSXOpeningElement::attrs`]"]
138369        Attrs(usize),
138370        #[doc = "Represents [`JSXOpeningElement::self_closing`]"]
138371        SelfClosing,
138372        #[doc = "Represents [`JSXOpeningElement::type_args`]"]
138373        TypeArgs,
138374    }
138375    impl JSXOpeningFragmentField {
138376        pub(crate) fn set_index(&mut self, index: usize) {
138377            match self {
138378                _ => swc_visit::wrong_ast_path(),
138379            }
138380        }
138381    }
138382    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138383    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138384    pub enum JSXOpeningFragmentField {
138385        #[doc = "Represents [`JSXOpeningFragment::span`]"]
138386        Span,
138387    }
138388    impl JSXSpreadChildField {
138389        pub(crate) fn set_index(&mut self, index: usize) {
138390            match self {
138391                _ => swc_visit::wrong_ast_path(),
138392            }
138393        }
138394    }
138395    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138396    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138397    pub enum JSXSpreadChildField {
138398        #[doc = "Represents [`JSXSpreadChild::span`]"]
138399        Span,
138400        #[doc = "Represents [`JSXSpreadChild::expr`]"]
138401        Expr,
138402    }
138403    impl JSXTextField {
138404        pub(crate) fn set_index(&mut self, index: usize) {
138405            match self {
138406                _ => swc_visit::wrong_ast_path(),
138407            }
138408        }
138409    }
138410    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138411    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138412    pub enum JSXTextField {
138413        #[doc = "Represents [`JSXText::span`]"]
138414        Span,
138415        #[doc = "Represents [`JSXText::value`]"]
138416        Value,
138417        #[doc = "Represents [`JSXText::raw`]"]
138418        Raw,
138419    }
138420    impl KeyField {
138421        #[inline(always)]
138422        pub(crate) fn set_index(&mut self, _: usize) {
138423            swc_visit::wrong_ast_path();
138424        }
138425    }
138426    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138427    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138428    pub enum KeyField {
138429        #[doc = "Represents [`Key::Private`]"]
138430        Private,
138431        #[doc = "Represents [`Key::Public`]"]
138432        Public,
138433    }
138434    impl KeyValuePatPropField {
138435        pub(crate) fn set_index(&mut self, index: usize) {
138436            match self {
138437                _ => swc_visit::wrong_ast_path(),
138438            }
138439        }
138440    }
138441    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138442    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138443    pub enum KeyValuePatPropField {
138444        #[doc = "Represents [`KeyValuePatProp::key`]"]
138445        Key,
138446        #[doc = "Represents [`KeyValuePatProp::value`]"]
138447        Value,
138448    }
138449    impl KeyValuePropField {
138450        pub(crate) fn set_index(&mut self, index: usize) {
138451            match self {
138452                _ => swc_visit::wrong_ast_path(),
138453            }
138454        }
138455    }
138456    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138457    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138458    pub enum KeyValuePropField {
138459        #[doc = "Represents [`KeyValueProp::key`]"]
138460        Key,
138461        #[doc = "Represents [`KeyValueProp::value`]"]
138462        Value,
138463    }
138464    impl LabeledStmtField {
138465        pub(crate) fn set_index(&mut self, index: usize) {
138466            match self {
138467                _ => swc_visit::wrong_ast_path(),
138468            }
138469        }
138470    }
138471    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138472    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138473    pub enum LabeledStmtField {
138474        #[doc = "Represents [`LabeledStmt::span`]"]
138475        Span,
138476        #[doc = "Represents [`LabeledStmt::label`]"]
138477        Label,
138478        #[doc = "Represents [`LabeledStmt::body`]"]
138479        Body,
138480    }
138481    impl LitField {
138482        #[inline(always)]
138483        pub(crate) fn set_index(&mut self, _: usize) {
138484            swc_visit::wrong_ast_path();
138485        }
138486    }
138487    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138488    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138489    pub enum LitField {
138490        #[doc = "Represents [`Lit::Str`]"]
138491        Str,
138492        #[doc = "Represents [`Lit::Bool`]"]
138493        Bool,
138494        #[doc = "Represents [`Lit::Null`]"]
138495        Null,
138496        #[doc = "Represents [`Lit::Num`]"]
138497        Num,
138498        #[doc = "Represents [`Lit::BigInt`]"]
138499        BigInt,
138500        #[doc = "Represents [`Lit::Regex`]"]
138501        Regex,
138502        #[doc = "Represents [`Lit::JSXText`]"]
138503        Jsxtext,
138504    }
138505    impl MemberExprField {
138506        pub(crate) fn set_index(&mut self, index: usize) {
138507            match self {
138508                _ => swc_visit::wrong_ast_path(),
138509            }
138510        }
138511    }
138512    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138513    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138514    pub enum MemberExprField {
138515        #[doc = "Represents [`MemberExpr::span`]"]
138516        Span,
138517        #[doc = "Represents [`MemberExpr::obj`]"]
138518        Obj,
138519        #[doc = "Represents [`MemberExpr::prop`]"]
138520        Prop,
138521    }
138522    impl MemberPropField {
138523        #[inline(always)]
138524        pub(crate) fn set_index(&mut self, _: usize) {
138525            swc_visit::wrong_ast_path();
138526        }
138527    }
138528    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138529    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138530    pub enum MemberPropField {
138531        #[doc = "Represents [`MemberProp::Ident`]"]
138532        Ident,
138533        #[doc = "Represents [`MemberProp::PrivateName`]"]
138534        PrivateName,
138535        #[doc = "Represents [`MemberProp::Computed`]"]
138536        Computed,
138537    }
138538    impl MetaPropExprField {
138539        pub(crate) fn set_index(&mut self, index: usize) {
138540            match self {
138541                _ => swc_visit::wrong_ast_path(),
138542            }
138543        }
138544    }
138545    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138546    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138547    pub enum MetaPropExprField {
138548        #[doc = "Represents [`MetaPropExpr::span`]"]
138549        Span,
138550        #[doc = "Represents [`MetaPropExpr::kind`]"]
138551        Kind,
138552    }
138553    impl MetaPropKindField {
138554        #[inline(always)]
138555        pub(crate) fn set_index(&mut self, _: usize) {
138556            swc_visit::wrong_ast_path();
138557        }
138558    }
138559    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138560    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138561    pub enum MetaPropKindField {
138562        #[doc = "Represents [`MetaPropKind::NewTarget`]"]
138563        NewTarget,
138564        #[doc = "Represents [`MetaPropKind::ImportMeta`]"]
138565        ImportMeta,
138566    }
138567    impl MethodKindField {
138568        #[inline(always)]
138569        pub(crate) fn set_index(&mut self, _: usize) {
138570            swc_visit::wrong_ast_path();
138571        }
138572    }
138573    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138574    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138575    pub enum MethodKindField {
138576        #[doc = "Represents [`MethodKind::Method`]"]
138577        Method,
138578        #[doc = "Represents [`MethodKind::Getter`]"]
138579        Getter,
138580        #[doc = "Represents [`MethodKind::Setter`]"]
138581        Setter,
138582    }
138583    impl MethodPropField {
138584        pub(crate) fn set_index(&mut self, index: usize) {
138585            match self {
138586                _ => swc_visit::wrong_ast_path(),
138587            }
138588        }
138589    }
138590    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138591    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138592    pub enum MethodPropField {
138593        #[doc = "Represents [`MethodProp::key`]"]
138594        Key,
138595        #[doc = "Represents [`MethodProp::function`]"]
138596        Function,
138597    }
138598    impl ModuleField {
138599        pub(crate) fn set_index(&mut self, index: usize) {
138600            match self {
138601                Self::Body(idx) => {
138602                    assert_initial_index(*idx, index);
138603                    *idx = index;
138604                }
138605                _ => swc_visit::wrong_ast_path(),
138606            }
138607        }
138608    }
138609    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138610    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138611    pub enum ModuleField {
138612        #[doc = "Represents [`Module::span`]"]
138613        Span,
138614        #[doc = "Represents [`Module::body`]"]
138615        Body(usize),
138616        #[doc = "Represents [`Module::shebang`]"]
138617        Shebang,
138618    }
138619    impl ModuleDeclField {
138620        #[inline(always)]
138621        pub(crate) fn set_index(&mut self, _: usize) {
138622            swc_visit::wrong_ast_path();
138623        }
138624    }
138625    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138626    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138627    pub enum ModuleDeclField {
138628        #[doc = "Represents [`ModuleDecl::Import`]"]
138629        Import,
138630        #[doc = "Represents [`ModuleDecl::ExportDecl`]"]
138631        ExportDecl,
138632        #[doc = "Represents [`ModuleDecl::ExportNamed`]"]
138633        ExportNamed,
138634        #[doc = "Represents [`ModuleDecl::ExportDefaultDecl`]"]
138635        ExportDefaultDecl,
138636        #[doc = "Represents [`ModuleDecl::ExportDefaultExpr`]"]
138637        ExportDefaultExpr,
138638        #[doc = "Represents [`ModuleDecl::ExportAll`]"]
138639        ExportAll,
138640        #[doc = "Represents [`ModuleDecl::TsImportEquals`]"]
138641        TsImportEquals,
138642        #[doc = "Represents [`ModuleDecl::TsExportAssignment`]"]
138643        TsExportAssignment,
138644        #[doc = "Represents [`ModuleDecl::TsNamespaceExport`]"]
138645        TsNamespaceExport,
138646    }
138647    impl ModuleExportNameField {
138648        #[inline(always)]
138649        pub(crate) fn set_index(&mut self, _: usize) {
138650            swc_visit::wrong_ast_path();
138651        }
138652    }
138653    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138654    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138655    pub enum ModuleExportNameField {
138656        #[doc = "Represents [`ModuleExportName::Ident`]"]
138657        Ident,
138658        #[doc = "Represents [`ModuleExportName::Str`]"]
138659        Str,
138660    }
138661    impl ModuleItemField {
138662        #[inline(always)]
138663        pub(crate) fn set_index(&mut self, _: usize) {
138664            swc_visit::wrong_ast_path();
138665        }
138666    }
138667    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138668    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138669    pub enum ModuleItemField {
138670        #[doc = "Represents [`ModuleItem::ModuleDecl`]"]
138671        ModuleDecl,
138672        #[doc = "Represents [`ModuleItem::Stmt`]"]
138673        Stmt,
138674    }
138675    impl NamedExportField {
138676        pub(crate) fn set_index(&mut self, index: usize) {
138677            match self {
138678                Self::Specifiers(idx) => {
138679                    assert_initial_index(*idx, index);
138680                    *idx = index;
138681                }
138682                _ => swc_visit::wrong_ast_path(),
138683            }
138684        }
138685    }
138686    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138687    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138688    pub enum NamedExportField {
138689        #[doc = "Represents [`NamedExport::span`]"]
138690        Span,
138691        #[doc = "Represents [`NamedExport::specifiers`]"]
138692        Specifiers(usize),
138693        #[doc = "Represents [`NamedExport::src`]"]
138694        Src,
138695        #[doc = "Represents [`NamedExport::type_only`]"]
138696        TypeOnly,
138697        #[doc = "Represents [`NamedExport::with`]"]
138698        With,
138699    }
138700    impl NewExprField {
138701        pub(crate) fn set_index(&mut self, index: usize) {
138702            match self {
138703                Self::Args(idx) => {
138704                    assert_initial_index(*idx, index);
138705                    *idx = index;
138706                }
138707                _ => swc_visit::wrong_ast_path(),
138708            }
138709        }
138710    }
138711    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138712    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138713    pub enum NewExprField {
138714        #[doc = "Represents [`NewExpr::span`]"]
138715        Span,
138716        #[doc = "Represents [`NewExpr::ctxt`]"]
138717        Ctxt,
138718        #[doc = "Represents [`NewExpr::callee`]"]
138719        Callee,
138720        #[doc = "Represents [`NewExpr::args`]"]
138721        Args(usize),
138722        #[doc = "Represents [`NewExpr::type_args`]"]
138723        TypeArgs,
138724    }
138725    impl NullField {
138726        pub(crate) fn set_index(&mut self, index: usize) {
138727            match self {
138728                _ => swc_visit::wrong_ast_path(),
138729            }
138730        }
138731    }
138732    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138733    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138734    pub enum NullField {
138735        #[doc = "Represents [`Null::span`]"]
138736        Span,
138737    }
138738    impl NumberField {
138739        pub(crate) fn set_index(&mut self, index: usize) {
138740            match self {
138741                _ => swc_visit::wrong_ast_path(),
138742            }
138743        }
138744    }
138745    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138746    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138747    pub enum NumberField {
138748        #[doc = "Represents [`Number::span`]"]
138749        Span,
138750        #[doc = "Represents [`Number::value`]"]
138751        Value,
138752        #[doc = "Represents [`Number::raw`]"]
138753        Raw,
138754    }
138755    impl ObjectLitField {
138756        pub(crate) fn set_index(&mut self, index: usize) {
138757            match self {
138758                Self::Props(idx) => {
138759                    assert_initial_index(*idx, index);
138760                    *idx = index;
138761                }
138762                _ => swc_visit::wrong_ast_path(),
138763            }
138764        }
138765    }
138766    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138767    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138768    pub enum ObjectLitField {
138769        #[doc = "Represents [`ObjectLit::span`]"]
138770        Span,
138771        #[doc = "Represents [`ObjectLit::props`]"]
138772        Props(usize),
138773    }
138774    impl ObjectPatField {
138775        pub(crate) fn set_index(&mut self, index: usize) {
138776            match self {
138777                Self::Props(idx) => {
138778                    assert_initial_index(*idx, index);
138779                    *idx = index;
138780                }
138781                _ => swc_visit::wrong_ast_path(),
138782            }
138783        }
138784    }
138785    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138786    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138787    pub enum ObjectPatField {
138788        #[doc = "Represents [`ObjectPat::span`]"]
138789        Span,
138790        #[doc = "Represents [`ObjectPat::props`]"]
138791        Props(usize),
138792        #[doc = "Represents [`ObjectPat::optional`]"]
138793        Optional,
138794        #[doc = "Represents [`ObjectPat::type_ann`]"]
138795        TypeAnn,
138796    }
138797    impl ObjectPatPropField {
138798        #[inline(always)]
138799        pub(crate) fn set_index(&mut self, _: usize) {
138800            swc_visit::wrong_ast_path();
138801        }
138802    }
138803    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138804    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138805    pub enum ObjectPatPropField {
138806        #[doc = "Represents [`ObjectPatProp::KeyValue`]"]
138807        KeyValue,
138808        #[doc = "Represents [`ObjectPatProp::Assign`]"]
138809        Assign,
138810        #[doc = "Represents [`ObjectPatProp::Rest`]"]
138811        Rest,
138812    }
138813    impl OptCallField {
138814        pub(crate) fn set_index(&mut self, index: usize) {
138815            match self {
138816                Self::Args(idx) => {
138817                    assert_initial_index(*idx, index);
138818                    *idx = index;
138819                }
138820                _ => swc_visit::wrong_ast_path(),
138821            }
138822        }
138823    }
138824    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138825    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138826    pub enum OptCallField {
138827        #[doc = "Represents [`OptCall::span`]"]
138828        Span,
138829        #[doc = "Represents [`OptCall::ctxt`]"]
138830        Ctxt,
138831        #[doc = "Represents [`OptCall::callee`]"]
138832        Callee,
138833        #[doc = "Represents [`OptCall::args`]"]
138834        Args(usize),
138835        #[doc = "Represents [`OptCall::type_args`]"]
138836        TypeArgs,
138837    }
138838    impl OptChainBaseField {
138839        #[inline(always)]
138840        pub(crate) fn set_index(&mut self, _: usize) {
138841            swc_visit::wrong_ast_path();
138842        }
138843    }
138844    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138845    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138846    pub enum OptChainBaseField {
138847        #[doc = "Represents [`OptChainBase::Member`]"]
138848        Member,
138849        #[doc = "Represents [`OptChainBase::Call`]"]
138850        Call,
138851    }
138852    impl OptChainExprField {
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 OptChainExprField {
138862        #[doc = "Represents [`OptChainExpr::span`]"]
138863        Span,
138864        #[doc = "Represents [`OptChainExpr::optional`]"]
138865        Optional,
138866        #[doc = "Represents [`OptChainExpr::base`]"]
138867        Base,
138868    }
138869    impl ParamField {
138870        pub(crate) fn set_index(&mut self, index: usize) {
138871            match self {
138872                Self::Decorators(idx) => {
138873                    assert_initial_index(*idx, index);
138874                    *idx = index;
138875                }
138876                _ => swc_visit::wrong_ast_path(),
138877            }
138878        }
138879    }
138880    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138881    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138882    pub enum ParamField {
138883        #[doc = "Represents [`Param::span`]"]
138884        Span,
138885        #[doc = "Represents [`Param::decorators`]"]
138886        Decorators(usize),
138887        #[doc = "Represents [`Param::pat`]"]
138888        Pat,
138889    }
138890    impl ParamOrTsParamPropField {
138891        #[inline(always)]
138892        pub(crate) fn set_index(&mut self, _: usize) {
138893            swc_visit::wrong_ast_path();
138894        }
138895    }
138896    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138897    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138898    pub enum ParamOrTsParamPropField {
138899        #[doc = "Represents [`ParamOrTsParamProp::TsParamProp`]"]
138900        TsParamProp,
138901        #[doc = "Represents [`ParamOrTsParamProp::Param`]"]
138902        Param,
138903    }
138904    impl ParenExprField {
138905        pub(crate) fn set_index(&mut self, index: usize) {
138906            match self {
138907                _ => swc_visit::wrong_ast_path(),
138908            }
138909        }
138910    }
138911    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138912    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138913    pub enum ParenExprField {
138914        #[doc = "Represents [`ParenExpr::span`]"]
138915        Span,
138916        #[doc = "Represents [`ParenExpr::expr`]"]
138917        Expr,
138918    }
138919    impl PatField {
138920        #[inline(always)]
138921        pub(crate) fn set_index(&mut self, _: usize) {
138922            swc_visit::wrong_ast_path();
138923        }
138924    }
138925    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138926    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138927    pub enum PatField {
138928        #[doc = "Represents [`Pat::Ident`]"]
138929        Ident,
138930        #[doc = "Represents [`Pat::Array`]"]
138931        Array,
138932        #[doc = "Represents [`Pat::Rest`]"]
138933        Rest,
138934        #[doc = "Represents [`Pat::Object`]"]
138935        Object,
138936        #[doc = "Represents [`Pat::Assign`]"]
138937        Assign,
138938        #[doc = "Represents [`Pat::Invalid`]"]
138939        Invalid,
138940        #[doc = "Represents [`Pat::Expr`]"]
138941        Expr,
138942    }
138943    impl PrivateMethodField {
138944        pub(crate) fn set_index(&mut self, index: usize) {
138945            match self {
138946                _ => swc_visit::wrong_ast_path(),
138947            }
138948        }
138949    }
138950    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138951    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138952    pub enum PrivateMethodField {
138953        #[doc = "Represents [`PrivateMethod::span`]"]
138954        Span,
138955        #[doc = "Represents [`PrivateMethod::key`]"]
138956        Key,
138957        #[doc = "Represents [`PrivateMethod::function`]"]
138958        Function,
138959        #[doc = "Represents [`PrivateMethod::kind`]"]
138960        Kind,
138961        #[doc = "Represents [`PrivateMethod::is_static`]"]
138962        IsStatic,
138963        #[doc = "Represents [`PrivateMethod::accessibility`]"]
138964        Accessibility,
138965        #[doc = "Represents [`PrivateMethod::is_abstract`]"]
138966        IsAbstract,
138967        #[doc = "Represents [`PrivateMethod::is_optional`]"]
138968        IsOptional,
138969        #[doc = "Represents [`PrivateMethod::is_override`]"]
138970        IsOverride,
138971    }
138972    impl PrivateNameField {
138973        pub(crate) fn set_index(&mut self, index: usize) {
138974            match self {
138975                _ => swc_visit::wrong_ast_path(),
138976            }
138977        }
138978    }
138979    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138980    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138981    pub enum PrivateNameField {
138982        #[doc = "Represents [`PrivateName::span`]"]
138983        Span,
138984        #[doc = "Represents [`PrivateName::name`]"]
138985        Name,
138986    }
138987    impl PrivatePropField {
138988        pub(crate) fn set_index(&mut self, index: usize) {
138989            match self {
138990                Self::Decorators(idx) => {
138991                    assert_initial_index(*idx, index);
138992                    *idx = index;
138993                }
138994                _ => swc_visit::wrong_ast_path(),
138995            }
138996        }
138997    }
138998    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138999    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139000    pub enum PrivatePropField {
139001        #[doc = "Represents [`PrivateProp::span`]"]
139002        Span,
139003        #[doc = "Represents [`PrivateProp::ctxt`]"]
139004        Ctxt,
139005        #[doc = "Represents [`PrivateProp::key`]"]
139006        Key,
139007        #[doc = "Represents [`PrivateProp::value`]"]
139008        Value,
139009        #[doc = "Represents [`PrivateProp::type_ann`]"]
139010        TypeAnn,
139011        #[doc = "Represents [`PrivateProp::is_static`]"]
139012        IsStatic,
139013        #[doc = "Represents [`PrivateProp::decorators`]"]
139014        Decorators(usize),
139015        #[doc = "Represents [`PrivateProp::accessibility`]"]
139016        Accessibility,
139017        #[doc = "Represents [`PrivateProp::is_optional`]"]
139018        IsOptional,
139019        #[doc = "Represents [`PrivateProp::is_override`]"]
139020        IsOverride,
139021        #[doc = "Represents [`PrivateProp::readonly`]"]
139022        Readonly,
139023        #[doc = "Represents [`PrivateProp::definite`]"]
139024        Definite,
139025    }
139026    impl ProgramField {
139027        #[inline(always)]
139028        pub(crate) fn set_index(&mut self, _: usize) {
139029            swc_visit::wrong_ast_path();
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 ProgramField {
139035        #[doc = "Represents [`Program::Module`]"]
139036        Module,
139037        #[doc = "Represents [`Program::Script`]"]
139038        Script,
139039    }
139040    impl PropField {
139041        #[inline(always)]
139042        pub(crate) fn set_index(&mut self, _: usize) {
139043            swc_visit::wrong_ast_path();
139044        }
139045    }
139046    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139047    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139048    pub enum PropField {
139049        #[doc = "Represents [`Prop::Shorthand`]"]
139050        Shorthand,
139051        #[doc = "Represents [`Prop::KeyValue`]"]
139052        KeyValue,
139053        #[doc = "Represents [`Prop::Assign`]"]
139054        Assign,
139055        #[doc = "Represents [`Prop::Getter`]"]
139056        Getter,
139057        #[doc = "Represents [`Prop::Setter`]"]
139058        Setter,
139059        #[doc = "Represents [`Prop::Method`]"]
139060        Method,
139061    }
139062    impl PropNameField {
139063        #[inline(always)]
139064        pub(crate) fn set_index(&mut self, _: usize) {
139065            swc_visit::wrong_ast_path();
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 PropNameField {
139071        #[doc = "Represents [`PropName::Ident`]"]
139072        Ident,
139073        #[doc = "Represents [`PropName::Str`]"]
139074        Str,
139075        #[doc = "Represents [`PropName::Num`]"]
139076        Num,
139077        #[doc = "Represents [`PropName::Computed`]"]
139078        Computed,
139079        #[doc = "Represents [`PropName::BigInt`]"]
139080        BigInt,
139081    }
139082    impl PropOrSpreadField {
139083        #[inline(always)]
139084        pub(crate) fn set_index(&mut self, _: usize) {
139085            swc_visit::wrong_ast_path();
139086        }
139087    }
139088    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139089    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139090    pub enum PropOrSpreadField {
139091        #[doc = "Represents [`PropOrSpread::Spread`]"]
139092        Spread,
139093        #[doc = "Represents [`PropOrSpread::Prop`]"]
139094        Prop,
139095    }
139096    impl RegexField {
139097        pub(crate) fn set_index(&mut self, index: usize) {
139098            match self {
139099                _ => swc_visit::wrong_ast_path(),
139100            }
139101        }
139102    }
139103    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139104    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139105    pub enum RegexField {
139106        #[doc = "Represents [`Regex::span`]"]
139107        Span,
139108        #[doc = "Represents [`Regex::exp`]"]
139109        Exp,
139110        #[doc = "Represents [`Regex::flags`]"]
139111        Flags,
139112    }
139113    impl RestPatField {
139114        pub(crate) fn set_index(&mut self, index: usize) {
139115            match self {
139116                _ => swc_visit::wrong_ast_path(),
139117            }
139118        }
139119    }
139120    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139121    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139122    pub enum RestPatField {
139123        #[doc = "Represents [`RestPat::span`]"]
139124        Span,
139125        #[doc = "Represents [`RestPat::dot3_token`]"]
139126        Dot3Token,
139127        #[doc = "Represents [`RestPat::arg`]"]
139128        Arg,
139129        #[doc = "Represents [`RestPat::type_ann`]"]
139130        TypeAnn,
139131    }
139132    impl ReturnStmtField {
139133        pub(crate) fn set_index(&mut self, index: usize) {
139134            match self {
139135                _ => swc_visit::wrong_ast_path(),
139136            }
139137        }
139138    }
139139    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139140    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139141    pub enum ReturnStmtField {
139142        #[doc = "Represents [`ReturnStmt::span`]"]
139143        Span,
139144        #[doc = "Represents [`ReturnStmt::arg`]"]
139145        Arg,
139146    }
139147    impl ScriptField {
139148        pub(crate) fn set_index(&mut self, index: usize) {
139149            match self {
139150                Self::Body(idx) => {
139151                    assert_initial_index(*idx, index);
139152                    *idx = index;
139153                }
139154                _ => swc_visit::wrong_ast_path(),
139155            }
139156        }
139157    }
139158    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139159    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139160    pub enum ScriptField {
139161        #[doc = "Represents [`Script::span`]"]
139162        Span,
139163        #[doc = "Represents [`Script::body`]"]
139164        Body(usize),
139165        #[doc = "Represents [`Script::shebang`]"]
139166        Shebang,
139167    }
139168    impl SeqExprField {
139169        pub(crate) fn set_index(&mut self, index: usize) {
139170            match self {
139171                Self::Exprs(idx) => {
139172                    assert_initial_index(*idx, index);
139173                    *idx = index;
139174                }
139175                _ => swc_visit::wrong_ast_path(),
139176            }
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 SeqExprField {
139182        #[doc = "Represents [`SeqExpr::span`]"]
139183        Span,
139184        #[doc = "Represents [`SeqExpr::exprs`]"]
139185        Exprs(usize),
139186    }
139187    impl SetterPropField {
139188        pub(crate) fn set_index(&mut self, index: usize) {
139189            match self {
139190                _ => swc_visit::wrong_ast_path(),
139191            }
139192        }
139193    }
139194    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139195    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139196    pub enum SetterPropField {
139197        #[doc = "Represents [`SetterProp::span`]"]
139198        Span,
139199        #[doc = "Represents [`SetterProp::key`]"]
139200        Key,
139201        #[doc = "Represents [`SetterProp::this_param`]"]
139202        ThisParam,
139203        #[doc = "Represents [`SetterProp::param`]"]
139204        Param,
139205        #[doc = "Represents [`SetterProp::body`]"]
139206        Body,
139207    }
139208    impl SimpleAssignTargetField {
139209        #[inline(always)]
139210        pub(crate) fn set_index(&mut self, _: usize) {
139211            swc_visit::wrong_ast_path();
139212        }
139213    }
139214    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139215    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139216    pub enum SimpleAssignTargetField {
139217        #[doc = "Represents [`SimpleAssignTarget::Ident`]"]
139218        Ident,
139219        #[doc = "Represents [`SimpleAssignTarget::Member`]"]
139220        Member,
139221        #[doc = "Represents [`SimpleAssignTarget::SuperProp`]"]
139222        SuperProp,
139223        #[doc = "Represents [`SimpleAssignTarget::Paren`]"]
139224        Paren,
139225        #[doc = "Represents [`SimpleAssignTarget::OptChain`]"]
139226        OptChain,
139227        #[doc = "Represents [`SimpleAssignTarget::TsAs`]"]
139228        TsAs,
139229        #[doc = "Represents [`SimpleAssignTarget::TsSatisfies`]"]
139230        TsSatisfies,
139231        #[doc = "Represents [`SimpleAssignTarget::TsNonNull`]"]
139232        TsNonNull,
139233        #[doc = "Represents [`SimpleAssignTarget::TsTypeAssertion`]"]
139234        TsTypeAssertion,
139235        #[doc = "Represents [`SimpleAssignTarget::TsInstantiation`]"]
139236        TsInstantiation,
139237        #[doc = "Represents [`SimpleAssignTarget::Invalid`]"]
139238        Invalid,
139239    }
139240    impl SpreadElementField {
139241        pub(crate) fn set_index(&mut self, index: usize) {
139242            match self {
139243                _ => swc_visit::wrong_ast_path(),
139244            }
139245        }
139246    }
139247    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139248    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139249    pub enum SpreadElementField {
139250        #[doc = "Represents [`SpreadElement::dot3_token`]"]
139251        Dot3Token,
139252        #[doc = "Represents [`SpreadElement::expr`]"]
139253        Expr,
139254    }
139255    impl StaticBlockField {
139256        pub(crate) fn set_index(&mut self, index: usize) {
139257            match self {
139258                _ => swc_visit::wrong_ast_path(),
139259            }
139260        }
139261    }
139262    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139263    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139264    pub enum StaticBlockField {
139265        #[doc = "Represents [`StaticBlock::span`]"]
139266        Span,
139267        #[doc = "Represents [`StaticBlock::body`]"]
139268        Body,
139269    }
139270    impl StmtField {
139271        #[inline(always)]
139272        pub(crate) fn set_index(&mut self, _: usize) {
139273            swc_visit::wrong_ast_path();
139274        }
139275    }
139276    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139277    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139278    pub enum StmtField {
139279        #[doc = "Represents [`Stmt::Block`]"]
139280        Block,
139281        #[doc = "Represents [`Stmt::Empty`]"]
139282        Empty,
139283        #[doc = "Represents [`Stmt::Debugger`]"]
139284        Debugger,
139285        #[doc = "Represents [`Stmt::With`]"]
139286        With,
139287        #[doc = "Represents [`Stmt::Return`]"]
139288        Return,
139289        #[doc = "Represents [`Stmt::Labeled`]"]
139290        Labeled,
139291        #[doc = "Represents [`Stmt::Break`]"]
139292        Break,
139293        #[doc = "Represents [`Stmt::Continue`]"]
139294        Continue,
139295        #[doc = "Represents [`Stmt::If`]"]
139296        If,
139297        #[doc = "Represents [`Stmt::Switch`]"]
139298        Switch,
139299        #[doc = "Represents [`Stmt::Throw`]"]
139300        Throw,
139301        #[doc = "Represents [`Stmt::Try`]"]
139302        Try,
139303        #[doc = "Represents [`Stmt::While`]"]
139304        While,
139305        #[doc = "Represents [`Stmt::DoWhile`]"]
139306        DoWhile,
139307        #[doc = "Represents [`Stmt::For`]"]
139308        For,
139309        #[doc = "Represents [`Stmt::ForIn`]"]
139310        ForIn,
139311        #[doc = "Represents [`Stmt::ForOf`]"]
139312        ForOf,
139313        #[doc = "Represents [`Stmt::Decl`]"]
139314        Decl,
139315        #[doc = "Represents [`Stmt::Expr`]"]
139316        Expr,
139317    }
139318    impl StrField {
139319        pub(crate) fn set_index(&mut self, index: usize) {
139320            match self {
139321                _ => swc_visit::wrong_ast_path(),
139322            }
139323        }
139324    }
139325    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139326    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139327    pub enum StrField {
139328        #[doc = "Represents [`Str::span`]"]
139329        Span,
139330        #[doc = "Represents [`Str::value`]"]
139331        Value,
139332        #[doc = "Represents [`Str::raw`]"]
139333        Raw,
139334    }
139335    impl SuperField {
139336        pub(crate) fn set_index(&mut self, index: usize) {
139337            match self {
139338                _ => swc_visit::wrong_ast_path(),
139339            }
139340        }
139341    }
139342    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139343    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139344    pub enum SuperField {
139345        #[doc = "Represents [`Super::span`]"]
139346        Span,
139347    }
139348    impl SuperPropField {
139349        #[inline(always)]
139350        pub(crate) fn set_index(&mut self, _: usize) {
139351            swc_visit::wrong_ast_path();
139352        }
139353    }
139354    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139355    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139356    pub enum SuperPropField {
139357        #[doc = "Represents [`SuperProp::Ident`]"]
139358        Ident,
139359        #[doc = "Represents [`SuperProp::Computed`]"]
139360        Computed,
139361    }
139362    impl SuperPropExprField {
139363        pub(crate) fn set_index(&mut self, index: usize) {
139364            match self {
139365                _ => swc_visit::wrong_ast_path(),
139366            }
139367        }
139368    }
139369    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139370    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139371    pub enum SuperPropExprField {
139372        #[doc = "Represents [`SuperPropExpr::span`]"]
139373        Span,
139374        #[doc = "Represents [`SuperPropExpr::obj`]"]
139375        Obj,
139376        #[doc = "Represents [`SuperPropExpr::prop`]"]
139377        Prop,
139378    }
139379    impl SwitchCaseField {
139380        pub(crate) fn set_index(&mut self, index: usize) {
139381            match self {
139382                Self::Cons(idx) => {
139383                    assert_initial_index(*idx, index);
139384                    *idx = index;
139385                }
139386                _ => swc_visit::wrong_ast_path(),
139387            }
139388        }
139389    }
139390    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139391    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139392    pub enum SwitchCaseField {
139393        #[doc = "Represents [`SwitchCase::span`]"]
139394        Span,
139395        #[doc = "Represents [`SwitchCase::test`]"]
139396        Test,
139397        #[doc = "Represents [`SwitchCase::cons`]"]
139398        Cons(usize),
139399    }
139400    impl SwitchStmtField {
139401        pub(crate) fn set_index(&mut self, index: usize) {
139402            match self {
139403                Self::Cases(idx) => {
139404                    assert_initial_index(*idx, index);
139405                    *idx = index;
139406                }
139407                _ => swc_visit::wrong_ast_path(),
139408            }
139409        }
139410    }
139411    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139412    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139413    pub enum SwitchStmtField {
139414        #[doc = "Represents [`SwitchStmt::span`]"]
139415        Span,
139416        #[doc = "Represents [`SwitchStmt::discriminant`]"]
139417        Discriminant,
139418        #[doc = "Represents [`SwitchStmt::cases`]"]
139419        Cases(usize),
139420    }
139421    impl TaggedTplField {
139422        pub(crate) fn set_index(&mut self, index: usize) {
139423            match self {
139424                _ => swc_visit::wrong_ast_path(),
139425            }
139426        }
139427    }
139428    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139429    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139430    pub enum TaggedTplField {
139431        #[doc = "Represents [`TaggedTpl::span`]"]
139432        Span,
139433        #[doc = "Represents [`TaggedTpl::ctxt`]"]
139434        Ctxt,
139435        #[doc = "Represents [`TaggedTpl::tag`]"]
139436        Tag,
139437        #[doc = "Represents [`TaggedTpl::type_params`]"]
139438        TypeParams,
139439        #[doc = "Represents [`TaggedTpl::tpl`]"]
139440        Tpl,
139441    }
139442    impl ThisExprField {
139443        pub(crate) fn set_index(&mut self, index: usize) {
139444            match self {
139445                _ => swc_visit::wrong_ast_path(),
139446            }
139447        }
139448    }
139449    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139450    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139451    pub enum ThisExprField {
139452        #[doc = "Represents [`ThisExpr::span`]"]
139453        Span,
139454    }
139455    impl ThrowStmtField {
139456        pub(crate) fn set_index(&mut self, index: usize) {
139457            match self {
139458                _ => swc_visit::wrong_ast_path(),
139459            }
139460        }
139461    }
139462    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139463    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139464    pub enum ThrowStmtField {
139465        #[doc = "Represents [`ThrowStmt::span`]"]
139466        Span,
139467        #[doc = "Represents [`ThrowStmt::arg`]"]
139468        Arg,
139469    }
139470    impl TplField {
139471        pub(crate) fn set_index(&mut self, index: usize) {
139472            match self {
139473                Self::Exprs(idx) => {
139474                    assert_initial_index(*idx, index);
139475                    *idx = index;
139476                }
139477                Self::Quasis(idx) => {
139478                    assert_initial_index(*idx, index);
139479                    *idx = index;
139480                }
139481                _ => swc_visit::wrong_ast_path(),
139482            }
139483        }
139484    }
139485    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139486    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139487    pub enum TplField {
139488        #[doc = "Represents [`Tpl::span`]"]
139489        Span,
139490        #[doc = "Represents [`Tpl::exprs`]"]
139491        Exprs(usize),
139492        #[doc = "Represents [`Tpl::quasis`]"]
139493        Quasis(usize),
139494    }
139495    impl TplElementField {
139496        pub(crate) fn set_index(&mut self, index: usize) {
139497            match self {
139498                _ => swc_visit::wrong_ast_path(),
139499            }
139500        }
139501    }
139502    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139503    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139504    pub enum TplElementField {
139505        #[doc = "Represents [`TplElement::span`]"]
139506        Span,
139507        #[doc = "Represents [`TplElement::tail`]"]
139508        Tail,
139509        #[doc = "Represents [`TplElement::cooked`]"]
139510        Cooked,
139511        #[doc = "Represents [`TplElement::raw`]"]
139512        Raw,
139513    }
139514    impl TruePlusMinusField {
139515        #[inline(always)]
139516        pub(crate) fn set_index(&mut self, _: usize) {
139517            swc_visit::wrong_ast_path();
139518        }
139519    }
139520    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139521    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139522    pub enum TruePlusMinusField {
139523        #[doc = "Represents [`TruePlusMinus::True`]"]
139524        True,
139525        #[doc = "Represents [`TruePlusMinus::Plus`]"]
139526        Plus,
139527        #[doc = "Represents [`TruePlusMinus::Minus`]"]
139528        Minus,
139529    }
139530    impl TryStmtField {
139531        pub(crate) fn set_index(&mut self, index: usize) {
139532            match self {
139533                _ => swc_visit::wrong_ast_path(),
139534            }
139535        }
139536    }
139537    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139538    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139539    pub enum TryStmtField {
139540        #[doc = "Represents [`TryStmt::span`]"]
139541        Span,
139542        #[doc = "Represents [`TryStmt::block`]"]
139543        Block,
139544        #[doc = "Represents [`TryStmt::handler`]"]
139545        Handler,
139546        #[doc = "Represents [`TryStmt::finalizer`]"]
139547        Finalizer,
139548    }
139549    impl TsArrayTypeField {
139550        pub(crate) fn set_index(&mut self, index: usize) {
139551            match self {
139552                _ => swc_visit::wrong_ast_path(),
139553            }
139554        }
139555    }
139556    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139557    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139558    pub enum TsArrayTypeField {
139559        #[doc = "Represents [`TsArrayType::span`]"]
139560        Span,
139561        #[doc = "Represents [`TsArrayType::elem_type`]"]
139562        ElemType,
139563    }
139564    impl TsAsExprField {
139565        pub(crate) fn set_index(&mut self, index: usize) {
139566            match self {
139567                _ => swc_visit::wrong_ast_path(),
139568            }
139569        }
139570    }
139571    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139572    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139573    pub enum TsAsExprField {
139574        #[doc = "Represents [`TsAsExpr::span`]"]
139575        Span,
139576        #[doc = "Represents [`TsAsExpr::expr`]"]
139577        Expr,
139578        #[doc = "Represents [`TsAsExpr::type_ann`]"]
139579        TypeAnn,
139580    }
139581    impl TsCallSignatureDeclField {
139582        pub(crate) fn set_index(&mut self, index: usize) {
139583            match self {
139584                Self::Params(idx) => {
139585                    assert_initial_index(*idx, index);
139586                    *idx = index;
139587                }
139588                _ => swc_visit::wrong_ast_path(),
139589            }
139590        }
139591    }
139592    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139593    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139594    pub enum TsCallSignatureDeclField {
139595        #[doc = "Represents [`TsCallSignatureDecl::span`]"]
139596        Span,
139597        #[doc = "Represents [`TsCallSignatureDecl::params`]"]
139598        Params(usize),
139599        #[doc = "Represents [`TsCallSignatureDecl::type_ann`]"]
139600        TypeAnn,
139601        #[doc = "Represents [`TsCallSignatureDecl::type_params`]"]
139602        TypeParams,
139603    }
139604    impl TsConditionalTypeField {
139605        pub(crate) fn set_index(&mut self, index: usize) {
139606            match self {
139607                _ => swc_visit::wrong_ast_path(),
139608            }
139609        }
139610    }
139611    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139612    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139613    pub enum TsConditionalTypeField {
139614        #[doc = "Represents [`TsConditionalType::span`]"]
139615        Span,
139616        #[doc = "Represents [`TsConditionalType::check_type`]"]
139617        CheckType,
139618        #[doc = "Represents [`TsConditionalType::extends_type`]"]
139619        ExtendsType,
139620        #[doc = "Represents [`TsConditionalType::true_type`]"]
139621        TrueType,
139622        #[doc = "Represents [`TsConditionalType::false_type`]"]
139623        FalseType,
139624    }
139625    impl TsConstAssertionField {
139626        pub(crate) fn set_index(&mut self, index: usize) {
139627            match self {
139628                _ => swc_visit::wrong_ast_path(),
139629            }
139630        }
139631    }
139632    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139633    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139634    pub enum TsConstAssertionField {
139635        #[doc = "Represents [`TsConstAssertion::span`]"]
139636        Span,
139637        #[doc = "Represents [`TsConstAssertion::expr`]"]
139638        Expr,
139639    }
139640    impl TsConstructSignatureDeclField {
139641        pub(crate) fn set_index(&mut self, index: usize) {
139642            match self {
139643                Self::Params(idx) => {
139644                    assert_initial_index(*idx, index);
139645                    *idx = index;
139646                }
139647                _ => swc_visit::wrong_ast_path(),
139648            }
139649        }
139650    }
139651    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139652    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139653    pub enum TsConstructSignatureDeclField {
139654        #[doc = "Represents [`TsConstructSignatureDecl::span`]"]
139655        Span,
139656        #[doc = "Represents [`TsConstructSignatureDecl::params`]"]
139657        Params(usize),
139658        #[doc = "Represents [`TsConstructSignatureDecl::type_ann`]"]
139659        TypeAnn,
139660        #[doc = "Represents [`TsConstructSignatureDecl::type_params`]"]
139661        TypeParams,
139662    }
139663    impl TsConstructorTypeField {
139664        pub(crate) fn set_index(&mut self, index: usize) {
139665            match self {
139666                Self::Params(idx) => {
139667                    assert_initial_index(*idx, index);
139668                    *idx = index;
139669                }
139670                _ => swc_visit::wrong_ast_path(),
139671            }
139672        }
139673    }
139674    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139675    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139676    pub enum TsConstructorTypeField {
139677        #[doc = "Represents [`TsConstructorType::span`]"]
139678        Span,
139679        #[doc = "Represents [`TsConstructorType::params`]"]
139680        Params(usize),
139681        #[doc = "Represents [`TsConstructorType::type_params`]"]
139682        TypeParams,
139683        #[doc = "Represents [`TsConstructorType::type_ann`]"]
139684        TypeAnn,
139685        #[doc = "Represents [`TsConstructorType::is_abstract`]"]
139686        IsAbstract,
139687    }
139688    impl TsEntityNameField {
139689        #[inline(always)]
139690        pub(crate) fn set_index(&mut self, _: usize) {
139691            swc_visit::wrong_ast_path();
139692        }
139693    }
139694    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139695    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139696    pub enum TsEntityNameField {
139697        #[doc = "Represents [`TsEntityName::TsQualifiedName`]"]
139698        TsQualifiedName,
139699        #[doc = "Represents [`TsEntityName::Ident`]"]
139700        Ident,
139701    }
139702    impl TsEnumDeclField {
139703        pub(crate) fn set_index(&mut self, index: usize) {
139704            match self {
139705                Self::Members(idx) => {
139706                    assert_initial_index(*idx, index);
139707                    *idx = index;
139708                }
139709                _ => swc_visit::wrong_ast_path(),
139710            }
139711        }
139712    }
139713    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139714    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139715    pub enum TsEnumDeclField {
139716        #[doc = "Represents [`TsEnumDecl::span`]"]
139717        Span,
139718        #[doc = "Represents [`TsEnumDecl::declare`]"]
139719        Declare,
139720        #[doc = "Represents [`TsEnumDecl::is_const`]"]
139721        IsConst,
139722        #[doc = "Represents [`TsEnumDecl::id`]"]
139723        Id,
139724        #[doc = "Represents [`TsEnumDecl::members`]"]
139725        Members(usize),
139726    }
139727    impl TsEnumMemberField {
139728        pub(crate) fn set_index(&mut self, index: usize) {
139729            match self {
139730                _ => swc_visit::wrong_ast_path(),
139731            }
139732        }
139733    }
139734    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139735    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139736    pub enum TsEnumMemberField {
139737        #[doc = "Represents [`TsEnumMember::span`]"]
139738        Span,
139739        #[doc = "Represents [`TsEnumMember::id`]"]
139740        Id,
139741        #[doc = "Represents [`TsEnumMember::init`]"]
139742        Init,
139743    }
139744    impl TsEnumMemberIdField {
139745        #[inline(always)]
139746        pub(crate) fn set_index(&mut self, _: usize) {
139747            swc_visit::wrong_ast_path();
139748        }
139749    }
139750    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139751    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139752    pub enum TsEnumMemberIdField {
139753        #[doc = "Represents [`TsEnumMemberId::Ident`]"]
139754        Ident,
139755        #[doc = "Represents [`TsEnumMemberId::Str`]"]
139756        Str,
139757    }
139758    impl TsExportAssignmentField {
139759        pub(crate) fn set_index(&mut self, index: usize) {
139760            match self {
139761                _ => swc_visit::wrong_ast_path(),
139762            }
139763        }
139764    }
139765    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139766    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139767    pub enum TsExportAssignmentField {
139768        #[doc = "Represents [`TsExportAssignment::span`]"]
139769        Span,
139770        #[doc = "Represents [`TsExportAssignment::expr`]"]
139771        Expr,
139772    }
139773    impl TsExprWithTypeArgsField {
139774        pub(crate) fn set_index(&mut self, index: usize) {
139775            match self {
139776                _ => swc_visit::wrong_ast_path(),
139777            }
139778        }
139779    }
139780    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139781    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139782    pub enum TsExprWithTypeArgsField {
139783        #[doc = "Represents [`TsExprWithTypeArgs::span`]"]
139784        Span,
139785        #[doc = "Represents [`TsExprWithTypeArgs::expr`]"]
139786        Expr,
139787        #[doc = "Represents [`TsExprWithTypeArgs::type_args`]"]
139788        TypeArgs,
139789    }
139790    impl TsExternalModuleRefField {
139791        pub(crate) fn set_index(&mut self, index: usize) {
139792            match self {
139793                _ => swc_visit::wrong_ast_path(),
139794            }
139795        }
139796    }
139797    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139798    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139799    pub enum TsExternalModuleRefField {
139800        #[doc = "Represents [`TsExternalModuleRef::span`]"]
139801        Span,
139802        #[doc = "Represents [`TsExternalModuleRef::expr`]"]
139803        Expr,
139804    }
139805    impl TsFnOrConstructorTypeField {
139806        #[inline(always)]
139807        pub(crate) fn set_index(&mut self, _: usize) {
139808            swc_visit::wrong_ast_path();
139809        }
139810    }
139811    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139812    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139813    pub enum TsFnOrConstructorTypeField {
139814        #[doc = "Represents [`TsFnOrConstructorType::TsFnType`]"]
139815        TsFnType,
139816        #[doc = "Represents [`TsFnOrConstructorType::TsConstructorType`]"]
139817        TsConstructorType,
139818    }
139819    impl TsFnParamField {
139820        #[inline(always)]
139821        pub(crate) fn set_index(&mut self, _: usize) {
139822            swc_visit::wrong_ast_path();
139823        }
139824    }
139825    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139826    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139827    pub enum TsFnParamField {
139828        #[doc = "Represents [`TsFnParam::Ident`]"]
139829        Ident,
139830        #[doc = "Represents [`TsFnParam::Array`]"]
139831        Array,
139832        #[doc = "Represents [`TsFnParam::Rest`]"]
139833        Rest,
139834        #[doc = "Represents [`TsFnParam::Object`]"]
139835        Object,
139836    }
139837    impl TsFnTypeField {
139838        pub(crate) fn set_index(&mut self, index: usize) {
139839            match self {
139840                Self::Params(idx) => {
139841                    assert_initial_index(*idx, index);
139842                    *idx = index;
139843                }
139844                _ => swc_visit::wrong_ast_path(),
139845            }
139846        }
139847    }
139848    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139849    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139850    pub enum TsFnTypeField {
139851        #[doc = "Represents [`TsFnType::span`]"]
139852        Span,
139853        #[doc = "Represents [`TsFnType::params`]"]
139854        Params(usize),
139855        #[doc = "Represents [`TsFnType::type_params`]"]
139856        TypeParams,
139857        #[doc = "Represents [`TsFnType::type_ann`]"]
139858        TypeAnn,
139859    }
139860    impl TsGetterSignatureField {
139861        pub(crate) fn set_index(&mut self, index: usize) {
139862            match self {
139863                _ => swc_visit::wrong_ast_path(),
139864            }
139865        }
139866    }
139867    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139868    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139869    pub enum TsGetterSignatureField {
139870        #[doc = "Represents [`TsGetterSignature::span`]"]
139871        Span,
139872        #[doc = "Represents [`TsGetterSignature::key`]"]
139873        Key,
139874        #[doc = "Represents [`TsGetterSignature::computed`]"]
139875        Computed,
139876        #[doc = "Represents [`TsGetterSignature::type_ann`]"]
139877        TypeAnn,
139878    }
139879    impl TsImportCallOptionsField {
139880        pub(crate) fn set_index(&mut self, index: usize) {
139881            match self {
139882                _ => swc_visit::wrong_ast_path(),
139883            }
139884        }
139885    }
139886    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139887    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139888    pub enum TsImportCallOptionsField {
139889        #[doc = "Represents [`TsImportCallOptions::span`]"]
139890        Span,
139891        #[doc = "Represents [`TsImportCallOptions::with`]"]
139892        With,
139893    }
139894    impl TsImportEqualsDeclField {
139895        pub(crate) fn set_index(&mut self, index: usize) {
139896            match self {
139897                _ => swc_visit::wrong_ast_path(),
139898            }
139899        }
139900    }
139901    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139902    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139903    pub enum TsImportEqualsDeclField {
139904        #[doc = "Represents [`TsImportEqualsDecl::span`]"]
139905        Span,
139906        #[doc = "Represents [`TsImportEqualsDecl::is_export`]"]
139907        IsExport,
139908        #[doc = "Represents [`TsImportEqualsDecl::is_type_only`]"]
139909        IsTypeOnly,
139910        #[doc = "Represents [`TsImportEqualsDecl::id`]"]
139911        Id,
139912        #[doc = "Represents [`TsImportEqualsDecl::module_ref`]"]
139913        ModuleRef,
139914    }
139915    impl TsImportTypeField {
139916        pub(crate) fn set_index(&mut self, index: usize) {
139917            match self {
139918                _ => swc_visit::wrong_ast_path(),
139919            }
139920        }
139921    }
139922    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139923    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139924    pub enum TsImportTypeField {
139925        #[doc = "Represents [`TsImportType::span`]"]
139926        Span,
139927        #[doc = "Represents [`TsImportType::arg`]"]
139928        Arg,
139929        #[doc = "Represents [`TsImportType::qualifier`]"]
139930        Qualifier,
139931        #[doc = "Represents [`TsImportType::type_args`]"]
139932        TypeArgs,
139933        #[doc = "Represents [`TsImportType::attributes`]"]
139934        Attributes,
139935    }
139936    impl TsIndexSignatureField {
139937        pub(crate) fn set_index(&mut self, index: usize) {
139938            match self {
139939                Self::Params(idx) => {
139940                    assert_initial_index(*idx, index);
139941                    *idx = index;
139942                }
139943                _ => swc_visit::wrong_ast_path(),
139944            }
139945        }
139946    }
139947    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139948    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139949    pub enum TsIndexSignatureField {
139950        #[doc = "Represents [`TsIndexSignature::params`]"]
139951        Params(usize),
139952        #[doc = "Represents [`TsIndexSignature::type_ann`]"]
139953        TypeAnn,
139954        #[doc = "Represents [`TsIndexSignature::readonly`]"]
139955        Readonly,
139956        #[doc = "Represents [`TsIndexSignature::is_static`]"]
139957        IsStatic,
139958        #[doc = "Represents [`TsIndexSignature::span`]"]
139959        Span,
139960    }
139961    impl TsIndexedAccessTypeField {
139962        pub(crate) fn set_index(&mut self, index: usize) {
139963            match self {
139964                _ => swc_visit::wrong_ast_path(),
139965            }
139966        }
139967    }
139968    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139969    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139970    pub enum TsIndexedAccessTypeField {
139971        #[doc = "Represents [`TsIndexedAccessType::span`]"]
139972        Span,
139973        #[doc = "Represents [`TsIndexedAccessType::readonly`]"]
139974        Readonly,
139975        #[doc = "Represents [`TsIndexedAccessType::obj_type`]"]
139976        ObjType,
139977        #[doc = "Represents [`TsIndexedAccessType::index_type`]"]
139978        IndexType,
139979    }
139980    impl TsInferTypeField {
139981        pub(crate) fn set_index(&mut self, index: usize) {
139982            match self {
139983                _ => swc_visit::wrong_ast_path(),
139984            }
139985        }
139986    }
139987    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139988    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139989    pub enum TsInferTypeField {
139990        #[doc = "Represents [`TsInferType::span`]"]
139991        Span,
139992        #[doc = "Represents [`TsInferType::type_param`]"]
139993        TypeParam,
139994    }
139995    impl TsInstantiationField {
139996        pub(crate) fn set_index(&mut self, index: usize) {
139997            match self {
139998                _ => swc_visit::wrong_ast_path(),
139999            }
140000        }
140001    }
140002    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140003    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140004    pub enum TsInstantiationField {
140005        #[doc = "Represents [`TsInstantiation::span`]"]
140006        Span,
140007        #[doc = "Represents [`TsInstantiation::expr`]"]
140008        Expr,
140009        #[doc = "Represents [`TsInstantiation::type_args`]"]
140010        TypeArgs,
140011    }
140012    impl TsInterfaceBodyField {
140013        pub(crate) fn set_index(&mut self, index: usize) {
140014            match self {
140015                Self::Body(idx) => {
140016                    assert_initial_index(*idx, index);
140017                    *idx = index;
140018                }
140019                _ => swc_visit::wrong_ast_path(),
140020            }
140021        }
140022    }
140023    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140024    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140025    pub enum TsInterfaceBodyField {
140026        #[doc = "Represents [`TsInterfaceBody::span`]"]
140027        Span,
140028        #[doc = "Represents [`TsInterfaceBody::body`]"]
140029        Body(usize),
140030    }
140031    impl TsInterfaceDeclField {
140032        pub(crate) fn set_index(&mut self, index: usize) {
140033            match self {
140034                Self::Extends(idx) => {
140035                    assert_initial_index(*idx, index);
140036                    *idx = index;
140037                }
140038                _ => swc_visit::wrong_ast_path(),
140039            }
140040        }
140041    }
140042    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140043    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140044    pub enum TsInterfaceDeclField {
140045        #[doc = "Represents [`TsInterfaceDecl::span`]"]
140046        Span,
140047        #[doc = "Represents [`TsInterfaceDecl::id`]"]
140048        Id,
140049        #[doc = "Represents [`TsInterfaceDecl::declare`]"]
140050        Declare,
140051        #[doc = "Represents [`TsInterfaceDecl::type_params`]"]
140052        TypeParams,
140053        #[doc = "Represents [`TsInterfaceDecl::extends`]"]
140054        Extends(usize),
140055        #[doc = "Represents [`TsInterfaceDecl::body`]"]
140056        Body,
140057    }
140058    impl TsIntersectionTypeField {
140059        pub(crate) fn set_index(&mut self, index: usize) {
140060            match self {
140061                Self::Types(idx) => {
140062                    assert_initial_index(*idx, index);
140063                    *idx = index;
140064                }
140065                _ => swc_visit::wrong_ast_path(),
140066            }
140067        }
140068    }
140069    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140070    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140071    pub enum TsIntersectionTypeField {
140072        #[doc = "Represents [`TsIntersectionType::span`]"]
140073        Span,
140074        #[doc = "Represents [`TsIntersectionType::types`]"]
140075        Types(usize),
140076    }
140077    impl TsKeywordTypeField {
140078        pub(crate) fn set_index(&mut self, index: usize) {
140079            match self {
140080                _ => swc_visit::wrong_ast_path(),
140081            }
140082        }
140083    }
140084    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140085    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140086    pub enum TsKeywordTypeField {
140087        #[doc = "Represents [`TsKeywordType::span`]"]
140088        Span,
140089        #[doc = "Represents [`TsKeywordType::kind`]"]
140090        Kind,
140091    }
140092    impl TsKeywordTypeKindField {
140093        #[inline(always)]
140094        pub(crate) fn set_index(&mut self, _: usize) {
140095            swc_visit::wrong_ast_path();
140096        }
140097    }
140098    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140099    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140100    pub enum TsKeywordTypeKindField {
140101        #[doc = "Represents [`TsKeywordTypeKind::TsAnyKeyword`]"]
140102        TsAnyKeyword,
140103        #[doc = "Represents [`TsKeywordTypeKind::TsUnknownKeyword`]"]
140104        TsUnknownKeyword,
140105        #[doc = "Represents [`TsKeywordTypeKind::TsNumberKeyword`]"]
140106        TsNumberKeyword,
140107        #[doc = "Represents [`TsKeywordTypeKind::TsObjectKeyword`]"]
140108        TsObjectKeyword,
140109        #[doc = "Represents [`TsKeywordTypeKind::TsBooleanKeyword`]"]
140110        TsBooleanKeyword,
140111        #[doc = "Represents [`TsKeywordTypeKind::TsBigIntKeyword`]"]
140112        TsBigIntKeyword,
140113        #[doc = "Represents [`TsKeywordTypeKind::TsStringKeyword`]"]
140114        TsStringKeyword,
140115        #[doc = "Represents [`TsKeywordTypeKind::TsSymbolKeyword`]"]
140116        TsSymbolKeyword,
140117        #[doc = "Represents [`TsKeywordTypeKind::TsVoidKeyword`]"]
140118        TsVoidKeyword,
140119        #[doc = "Represents [`TsKeywordTypeKind::TsUndefinedKeyword`]"]
140120        TsUndefinedKeyword,
140121        #[doc = "Represents [`TsKeywordTypeKind::TsNullKeyword`]"]
140122        TsNullKeyword,
140123        #[doc = "Represents [`TsKeywordTypeKind::TsNeverKeyword`]"]
140124        TsNeverKeyword,
140125        #[doc = "Represents [`TsKeywordTypeKind::TsIntrinsicKeyword`]"]
140126        TsIntrinsicKeyword,
140127    }
140128    impl TsLitField {
140129        #[inline(always)]
140130        pub(crate) fn set_index(&mut self, _: usize) {
140131            swc_visit::wrong_ast_path();
140132        }
140133    }
140134    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140135    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140136    pub enum TsLitField {
140137        #[doc = "Represents [`TsLit::Number`]"]
140138        Number,
140139        #[doc = "Represents [`TsLit::Str`]"]
140140        Str,
140141        #[doc = "Represents [`TsLit::Bool`]"]
140142        Bool,
140143        #[doc = "Represents [`TsLit::BigInt`]"]
140144        BigInt,
140145        #[doc = "Represents [`TsLit::Tpl`]"]
140146        Tpl,
140147    }
140148    impl TsLitTypeField {
140149        pub(crate) fn set_index(&mut self, index: usize) {
140150            match self {
140151                _ => swc_visit::wrong_ast_path(),
140152            }
140153        }
140154    }
140155    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140156    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140157    pub enum TsLitTypeField {
140158        #[doc = "Represents [`TsLitType::span`]"]
140159        Span,
140160        #[doc = "Represents [`TsLitType::lit`]"]
140161        Lit,
140162    }
140163    impl TsMappedTypeField {
140164        pub(crate) fn set_index(&mut self, index: usize) {
140165            match self {
140166                _ => swc_visit::wrong_ast_path(),
140167            }
140168        }
140169    }
140170    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140171    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140172    pub enum TsMappedTypeField {
140173        #[doc = "Represents [`TsMappedType::span`]"]
140174        Span,
140175        #[doc = "Represents [`TsMappedType::readonly`]"]
140176        Readonly,
140177        #[doc = "Represents [`TsMappedType::type_param`]"]
140178        TypeParam,
140179        #[doc = "Represents [`TsMappedType::name_type`]"]
140180        NameType,
140181        #[doc = "Represents [`TsMappedType::optional`]"]
140182        Optional,
140183        #[doc = "Represents [`TsMappedType::type_ann`]"]
140184        TypeAnn,
140185    }
140186    impl TsMethodSignatureField {
140187        pub(crate) fn set_index(&mut self, index: usize) {
140188            match self {
140189                Self::Params(idx) => {
140190                    assert_initial_index(*idx, index);
140191                    *idx = index;
140192                }
140193                _ => swc_visit::wrong_ast_path(),
140194            }
140195        }
140196    }
140197    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140198    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140199    pub enum TsMethodSignatureField {
140200        #[doc = "Represents [`TsMethodSignature::span`]"]
140201        Span,
140202        #[doc = "Represents [`TsMethodSignature::key`]"]
140203        Key,
140204        #[doc = "Represents [`TsMethodSignature::computed`]"]
140205        Computed,
140206        #[doc = "Represents [`TsMethodSignature::optional`]"]
140207        Optional,
140208        #[doc = "Represents [`TsMethodSignature::params`]"]
140209        Params(usize),
140210        #[doc = "Represents [`TsMethodSignature::type_ann`]"]
140211        TypeAnn,
140212        #[doc = "Represents [`TsMethodSignature::type_params`]"]
140213        TypeParams,
140214    }
140215    impl TsModuleBlockField {
140216        pub(crate) fn set_index(&mut self, index: usize) {
140217            match self {
140218                Self::Body(idx) => {
140219                    assert_initial_index(*idx, index);
140220                    *idx = index;
140221                }
140222                _ => swc_visit::wrong_ast_path(),
140223            }
140224        }
140225    }
140226    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140227    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140228    pub enum TsModuleBlockField {
140229        #[doc = "Represents [`TsModuleBlock::span`]"]
140230        Span,
140231        #[doc = "Represents [`TsModuleBlock::body`]"]
140232        Body(usize),
140233    }
140234    impl TsModuleDeclField {
140235        pub(crate) fn set_index(&mut self, index: usize) {
140236            match self {
140237                _ => swc_visit::wrong_ast_path(),
140238            }
140239        }
140240    }
140241    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140242    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140243    pub enum TsModuleDeclField {
140244        #[doc = "Represents [`TsModuleDecl::span`]"]
140245        Span,
140246        #[doc = "Represents [`TsModuleDecl::declare`]"]
140247        Declare,
140248        #[doc = "Represents [`TsModuleDecl::global`]"]
140249        Global,
140250        #[doc = "Represents [`TsModuleDecl::namespace`]"]
140251        Namespace,
140252        #[doc = "Represents [`TsModuleDecl::id`]"]
140253        Id,
140254        #[doc = "Represents [`TsModuleDecl::body`]"]
140255        Body,
140256    }
140257    impl TsModuleNameField {
140258        #[inline(always)]
140259        pub(crate) fn set_index(&mut self, _: usize) {
140260            swc_visit::wrong_ast_path();
140261        }
140262    }
140263    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140264    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140265    pub enum TsModuleNameField {
140266        #[doc = "Represents [`TsModuleName::Ident`]"]
140267        Ident,
140268        #[doc = "Represents [`TsModuleName::Str`]"]
140269        Str,
140270    }
140271    impl TsModuleRefField {
140272        #[inline(always)]
140273        pub(crate) fn set_index(&mut self, _: usize) {
140274            swc_visit::wrong_ast_path();
140275        }
140276    }
140277    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140278    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140279    pub enum TsModuleRefField {
140280        #[doc = "Represents [`TsModuleRef::TsEntityName`]"]
140281        TsEntityName,
140282        #[doc = "Represents [`TsModuleRef::TsExternalModuleRef`]"]
140283        TsExternalModuleRef,
140284    }
140285    impl TsNamespaceBodyField {
140286        #[inline(always)]
140287        pub(crate) fn set_index(&mut self, _: usize) {
140288            swc_visit::wrong_ast_path();
140289        }
140290    }
140291    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140292    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140293    pub enum TsNamespaceBodyField {
140294        #[doc = "Represents [`TsNamespaceBody::TsModuleBlock`]"]
140295        TsModuleBlock,
140296        #[doc = "Represents [`TsNamespaceBody::TsNamespaceDecl`]"]
140297        TsNamespaceDecl,
140298    }
140299    impl TsNamespaceDeclField {
140300        pub(crate) fn set_index(&mut self, index: usize) {
140301            match self {
140302                _ => swc_visit::wrong_ast_path(),
140303            }
140304        }
140305    }
140306    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140307    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140308    pub enum TsNamespaceDeclField {
140309        #[doc = "Represents [`TsNamespaceDecl::span`]"]
140310        Span,
140311        #[doc = "Represents [`TsNamespaceDecl::declare`]"]
140312        Declare,
140313        #[doc = "Represents [`TsNamespaceDecl::global`]"]
140314        Global,
140315        #[doc = "Represents [`TsNamespaceDecl::id`]"]
140316        Id,
140317        #[doc = "Represents [`TsNamespaceDecl::body`]"]
140318        Body,
140319    }
140320    impl TsNamespaceExportDeclField {
140321        pub(crate) fn set_index(&mut self, index: usize) {
140322            match self {
140323                _ => swc_visit::wrong_ast_path(),
140324            }
140325        }
140326    }
140327    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140328    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140329    pub enum TsNamespaceExportDeclField {
140330        #[doc = "Represents [`TsNamespaceExportDecl::span`]"]
140331        Span,
140332        #[doc = "Represents [`TsNamespaceExportDecl::id`]"]
140333        Id,
140334    }
140335    impl TsNonNullExprField {
140336        pub(crate) fn set_index(&mut self, index: usize) {
140337            match self {
140338                _ => swc_visit::wrong_ast_path(),
140339            }
140340        }
140341    }
140342    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140343    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140344    pub enum TsNonNullExprField {
140345        #[doc = "Represents [`TsNonNullExpr::span`]"]
140346        Span,
140347        #[doc = "Represents [`TsNonNullExpr::expr`]"]
140348        Expr,
140349    }
140350    impl TsOptionalTypeField {
140351        pub(crate) fn set_index(&mut self, index: usize) {
140352            match self {
140353                _ => swc_visit::wrong_ast_path(),
140354            }
140355        }
140356    }
140357    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140358    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140359    pub enum TsOptionalTypeField {
140360        #[doc = "Represents [`TsOptionalType::span`]"]
140361        Span,
140362        #[doc = "Represents [`TsOptionalType::type_ann`]"]
140363        TypeAnn,
140364    }
140365    impl TsParamPropField {
140366        pub(crate) fn set_index(&mut self, index: usize) {
140367            match self {
140368                Self::Decorators(idx) => {
140369                    assert_initial_index(*idx, index);
140370                    *idx = index;
140371                }
140372                _ => swc_visit::wrong_ast_path(),
140373            }
140374        }
140375    }
140376    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140377    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140378    pub enum TsParamPropField {
140379        #[doc = "Represents [`TsParamProp::span`]"]
140380        Span,
140381        #[doc = "Represents [`TsParamProp::decorators`]"]
140382        Decorators(usize),
140383        #[doc = "Represents [`TsParamProp::accessibility`]"]
140384        Accessibility,
140385        #[doc = "Represents [`TsParamProp::is_override`]"]
140386        IsOverride,
140387        #[doc = "Represents [`TsParamProp::readonly`]"]
140388        Readonly,
140389        #[doc = "Represents [`TsParamProp::param`]"]
140390        Param,
140391    }
140392    impl TsParamPropParamField {
140393        #[inline(always)]
140394        pub(crate) fn set_index(&mut self, _: usize) {
140395            swc_visit::wrong_ast_path();
140396        }
140397    }
140398    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140399    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140400    pub enum TsParamPropParamField {
140401        #[doc = "Represents [`TsParamPropParam::Ident`]"]
140402        Ident,
140403        #[doc = "Represents [`TsParamPropParam::Assign`]"]
140404        Assign,
140405    }
140406    impl TsParenthesizedTypeField {
140407        pub(crate) fn set_index(&mut self, index: usize) {
140408            match self {
140409                _ => swc_visit::wrong_ast_path(),
140410            }
140411        }
140412    }
140413    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140414    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140415    pub enum TsParenthesizedTypeField {
140416        #[doc = "Represents [`TsParenthesizedType::span`]"]
140417        Span,
140418        #[doc = "Represents [`TsParenthesizedType::type_ann`]"]
140419        TypeAnn,
140420    }
140421    impl TsPropertySignatureField {
140422        pub(crate) fn set_index(&mut self, index: usize) {
140423            match self {
140424                _ => swc_visit::wrong_ast_path(),
140425            }
140426        }
140427    }
140428    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140429    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140430    pub enum TsPropertySignatureField {
140431        #[doc = "Represents [`TsPropertySignature::span`]"]
140432        Span,
140433        #[doc = "Represents [`TsPropertySignature::readonly`]"]
140434        Readonly,
140435        #[doc = "Represents [`TsPropertySignature::key`]"]
140436        Key,
140437        #[doc = "Represents [`TsPropertySignature::computed`]"]
140438        Computed,
140439        #[doc = "Represents [`TsPropertySignature::optional`]"]
140440        Optional,
140441        #[doc = "Represents [`TsPropertySignature::type_ann`]"]
140442        TypeAnn,
140443    }
140444    impl TsQualifiedNameField {
140445        pub(crate) fn set_index(&mut self, index: usize) {
140446            match self {
140447                _ => swc_visit::wrong_ast_path(),
140448            }
140449        }
140450    }
140451    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140452    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140453    pub enum TsQualifiedNameField {
140454        #[doc = "Represents [`TsQualifiedName::span`]"]
140455        Span,
140456        #[doc = "Represents [`TsQualifiedName::left`]"]
140457        Left,
140458        #[doc = "Represents [`TsQualifiedName::right`]"]
140459        Right,
140460    }
140461    impl TsRestTypeField {
140462        pub(crate) fn set_index(&mut self, index: usize) {
140463            match self {
140464                _ => swc_visit::wrong_ast_path(),
140465            }
140466        }
140467    }
140468    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140469    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140470    pub enum TsRestTypeField {
140471        #[doc = "Represents [`TsRestType::span`]"]
140472        Span,
140473        #[doc = "Represents [`TsRestType::type_ann`]"]
140474        TypeAnn,
140475    }
140476    impl TsSatisfiesExprField {
140477        pub(crate) fn set_index(&mut self, index: usize) {
140478            match self {
140479                _ => swc_visit::wrong_ast_path(),
140480            }
140481        }
140482    }
140483    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140484    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140485    pub enum TsSatisfiesExprField {
140486        #[doc = "Represents [`TsSatisfiesExpr::span`]"]
140487        Span,
140488        #[doc = "Represents [`TsSatisfiesExpr::expr`]"]
140489        Expr,
140490        #[doc = "Represents [`TsSatisfiesExpr::type_ann`]"]
140491        TypeAnn,
140492    }
140493    impl TsSetterSignatureField {
140494        pub(crate) fn set_index(&mut self, index: usize) {
140495            match self {
140496                _ => swc_visit::wrong_ast_path(),
140497            }
140498        }
140499    }
140500    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140501    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140502    pub enum TsSetterSignatureField {
140503        #[doc = "Represents [`TsSetterSignature::span`]"]
140504        Span,
140505        #[doc = "Represents [`TsSetterSignature::key`]"]
140506        Key,
140507        #[doc = "Represents [`TsSetterSignature::computed`]"]
140508        Computed,
140509        #[doc = "Represents [`TsSetterSignature::param`]"]
140510        Param,
140511    }
140512    impl TsThisTypeField {
140513        pub(crate) fn set_index(&mut self, index: usize) {
140514            match self {
140515                _ => swc_visit::wrong_ast_path(),
140516            }
140517        }
140518    }
140519    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140520    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140521    pub enum TsThisTypeField {
140522        #[doc = "Represents [`TsThisType::span`]"]
140523        Span,
140524    }
140525    impl TsThisTypeOrIdentField {
140526        #[inline(always)]
140527        pub(crate) fn set_index(&mut self, _: usize) {
140528            swc_visit::wrong_ast_path();
140529        }
140530    }
140531    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140532    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140533    pub enum TsThisTypeOrIdentField {
140534        #[doc = "Represents [`TsThisTypeOrIdent::TsThisType`]"]
140535        TsThisType,
140536        #[doc = "Represents [`TsThisTypeOrIdent::Ident`]"]
140537        Ident,
140538    }
140539    impl TsTplLitTypeField {
140540        pub(crate) fn set_index(&mut self, index: usize) {
140541            match self {
140542                Self::Types(idx) => {
140543                    assert_initial_index(*idx, index);
140544                    *idx = index;
140545                }
140546                Self::Quasis(idx) => {
140547                    assert_initial_index(*idx, index);
140548                    *idx = index;
140549                }
140550                _ => swc_visit::wrong_ast_path(),
140551            }
140552        }
140553    }
140554    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140555    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140556    pub enum TsTplLitTypeField {
140557        #[doc = "Represents [`TsTplLitType::span`]"]
140558        Span,
140559        #[doc = "Represents [`TsTplLitType::types`]"]
140560        Types(usize),
140561        #[doc = "Represents [`TsTplLitType::quasis`]"]
140562        Quasis(usize),
140563    }
140564    impl TsTupleElementField {
140565        pub(crate) fn set_index(&mut self, index: usize) {
140566            match self {
140567                _ => swc_visit::wrong_ast_path(),
140568            }
140569        }
140570    }
140571    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140572    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140573    pub enum TsTupleElementField {
140574        #[doc = "Represents [`TsTupleElement::span`]"]
140575        Span,
140576        #[doc = "Represents [`TsTupleElement::label`]"]
140577        Label,
140578        #[doc = "Represents [`TsTupleElement::ty`]"]
140579        Ty,
140580    }
140581    impl TsTupleTypeField {
140582        pub(crate) fn set_index(&mut self, index: usize) {
140583            match self {
140584                Self::ElemTypes(idx) => {
140585                    assert_initial_index(*idx, index);
140586                    *idx = index;
140587                }
140588                _ => swc_visit::wrong_ast_path(),
140589            }
140590        }
140591    }
140592    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140593    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140594    pub enum TsTupleTypeField {
140595        #[doc = "Represents [`TsTupleType::span`]"]
140596        Span,
140597        #[doc = "Represents [`TsTupleType::elem_types`]"]
140598        ElemTypes(usize),
140599    }
140600    impl TsTypeField {
140601        #[inline(always)]
140602        pub(crate) fn set_index(&mut self, _: usize) {
140603            swc_visit::wrong_ast_path();
140604        }
140605    }
140606    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140607    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140608    pub enum TsTypeField {
140609        #[doc = "Represents [`TsType::TsKeywordType`]"]
140610        TsKeywordType,
140611        #[doc = "Represents [`TsType::TsThisType`]"]
140612        TsThisType,
140613        #[doc = "Represents [`TsType::TsFnOrConstructorType`]"]
140614        TsFnOrConstructorType,
140615        #[doc = "Represents [`TsType::TsTypeRef`]"]
140616        TsTypeRef,
140617        #[doc = "Represents [`TsType::TsTypeQuery`]"]
140618        TsTypeQuery,
140619        #[doc = "Represents [`TsType::TsTypeLit`]"]
140620        TsTypeLit,
140621        #[doc = "Represents [`TsType::TsArrayType`]"]
140622        TsArrayType,
140623        #[doc = "Represents [`TsType::TsTupleType`]"]
140624        TsTupleType,
140625        #[doc = "Represents [`TsType::TsOptionalType`]"]
140626        TsOptionalType,
140627        #[doc = "Represents [`TsType::TsRestType`]"]
140628        TsRestType,
140629        #[doc = "Represents [`TsType::TsUnionOrIntersectionType`]"]
140630        TsUnionOrIntersectionType,
140631        #[doc = "Represents [`TsType::TsConditionalType`]"]
140632        TsConditionalType,
140633        #[doc = "Represents [`TsType::TsInferType`]"]
140634        TsInferType,
140635        #[doc = "Represents [`TsType::TsParenthesizedType`]"]
140636        TsParenthesizedType,
140637        #[doc = "Represents [`TsType::TsTypeOperator`]"]
140638        TsTypeOperator,
140639        #[doc = "Represents [`TsType::TsIndexedAccessType`]"]
140640        TsIndexedAccessType,
140641        #[doc = "Represents [`TsType::TsMappedType`]"]
140642        TsMappedType,
140643        #[doc = "Represents [`TsType::TsLitType`]"]
140644        TsLitType,
140645        #[doc = "Represents [`TsType::TsTypePredicate`]"]
140646        TsTypePredicate,
140647        #[doc = "Represents [`TsType::TsImportType`]"]
140648        TsImportType,
140649    }
140650    impl TsTypeAliasDeclField {
140651        pub(crate) fn set_index(&mut self, index: usize) {
140652            match self {
140653                _ => swc_visit::wrong_ast_path(),
140654            }
140655        }
140656    }
140657    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140658    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140659    pub enum TsTypeAliasDeclField {
140660        #[doc = "Represents [`TsTypeAliasDecl::span`]"]
140661        Span,
140662        #[doc = "Represents [`TsTypeAliasDecl::declare`]"]
140663        Declare,
140664        #[doc = "Represents [`TsTypeAliasDecl::id`]"]
140665        Id,
140666        #[doc = "Represents [`TsTypeAliasDecl::type_params`]"]
140667        TypeParams,
140668        #[doc = "Represents [`TsTypeAliasDecl::type_ann`]"]
140669        TypeAnn,
140670    }
140671    impl TsTypeAnnField {
140672        pub(crate) fn set_index(&mut self, index: usize) {
140673            match self {
140674                _ => swc_visit::wrong_ast_path(),
140675            }
140676        }
140677    }
140678    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140679    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140680    pub enum TsTypeAnnField {
140681        #[doc = "Represents [`TsTypeAnn::span`]"]
140682        Span,
140683        #[doc = "Represents [`TsTypeAnn::type_ann`]"]
140684        TypeAnn,
140685    }
140686    impl TsTypeAssertionField {
140687        pub(crate) fn set_index(&mut self, index: usize) {
140688            match self {
140689                _ => swc_visit::wrong_ast_path(),
140690            }
140691        }
140692    }
140693    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140694    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140695    pub enum TsTypeAssertionField {
140696        #[doc = "Represents [`TsTypeAssertion::span`]"]
140697        Span,
140698        #[doc = "Represents [`TsTypeAssertion::expr`]"]
140699        Expr,
140700        #[doc = "Represents [`TsTypeAssertion::type_ann`]"]
140701        TypeAnn,
140702    }
140703    impl TsTypeElementField {
140704        #[inline(always)]
140705        pub(crate) fn set_index(&mut self, _: usize) {
140706            swc_visit::wrong_ast_path();
140707        }
140708    }
140709    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140710    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140711    pub enum TsTypeElementField {
140712        #[doc = "Represents [`TsTypeElement::TsCallSignatureDecl`]"]
140713        TsCallSignatureDecl,
140714        #[doc = "Represents [`TsTypeElement::TsConstructSignatureDecl`]"]
140715        TsConstructSignatureDecl,
140716        #[doc = "Represents [`TsTypeElement::TsPropertySignature`]"]
140717        TsPropertySignature,
140718        #[doc = "Represents [`TsTypeElement::TsGetterSignature`]"]
140719        TsGetterSignature,
140720        #[doc = "Represents [`TsTypeElement::TsSetterSignature`]"]
140721        TsSetterSignature,
140722        #[doc = "Represents [`TsTypeElement::TsMethodSignature`]"]
140723        TsMethodSignature,
140724        #[doc = "Represents [`TsTypeElement::TsIndexSignature`]"]
140725        TsIndexSignature,
140726    }
140727    impl TsTypeLitField {
140728        pub(crate) fn set_index(&mut self, index: usize) {
140729            match self {
140730                Self::Members(idx) => {
140731                    assert_initial_index(*idx, index);
140732                    *idx = index;
140733                }
140734                _ => swc_visit::wrong_ast_path(),
140735            }
140736        }
140737    }
140738    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140739    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140740    pub enum TsTypeLitField {
140741        #[doc = "Represents [`TsTypeLit::span`]"]
140742        Span,
140743        #[doc = "Represents [`TsTypeLit::members`]"]
140744        Members(usize),
140745    }
140746    impl TsTypeOperatorField {
140747        pub(crate) fn set_index(&mut self, index: usize) {
140748            match self {
140749                _ => swc_visit::wrong_ast_path(),
140750            }
140751        }
140752    }
140753    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140754    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140755    pub enum TsTypeOperatorField {
140756        #[doc = "Represents [`TsTypeOperator::span`]"]
140757        Span,
140758        #[doc = "Represents [`TsTypeOperator::op`]"]
140759        Op,
140760        #[doc = "Represents [`TsTypeOperator::type_ann`]"]
140761        TypeAnn,
140762    }
140763    impl TsTypeOperatorOpField {
140764        #[inline(always)]
140765        pub(crate) fn set_index(&mut self, _: usize) {
140766            swc_visit::wrong_ast_path();
140767        }
140768    }
140769    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140770    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140771    pub enum TsTypeOperatorOpField {
140772        #[doc = "Represents [`TsTypeOperatorOp::KeyOf`]"]
140773        KeyOf,
140774        #[doc = "Represents [`TsTypeOperatorOp::Unique`]"]
140775        Unique,
140776        #[doc = "Represents [`TsTypeOperatorOp::ReadOnly`]"]
140777        ReadOnly,
140778    }
140779    impl TsTypeParamField {
140780        pub(crate) fn set_index(&mut self, index: usize) {
140781            match self {
140782                _ => swc_visit::wrong_ast_path(),
140783            }
140784        }
140785    }
140786    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140787    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140788    pub enum TsTypeParamField {
140789        #[doc = "Represents [`TsTypeParam::span`]"]
140790        Span,
140791        #[doc = "Represents [`TsTypeParam::name`]"]
140792        Name,
140793        #[doc = "Represents [`TsTypeParam::is_in`]"]
140794        IsIn,
140795        #[doc = "Represents [`TsTypeParam::is_out`]"]
140796        IsOut,
140797        #[doc = "Represents [`TsTypeParam::is_const`]"]
140798        IsConst,
140799        #[doc = "Represents [`TsTypeParam::constraint`]"]
140800        Constraint,
140801        #[doc = "Represents [`TsTypeParam::default`]"]
140802        Default,
140803    }
140804    impl TsTypeParamDeclField {
140805        pub(crate) fn set_index(&mut self, index: usize) {
140806            match self {
140807                Self::Params(idx) => {
140808                    assert_initial_index(*idx, index);
140809                    *idx = index;
140810                }
140811                _ => swc_visit::wrong_ast_path(),
140812            }
140813        }
140814    }
140815    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140816    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140817    pub enum TsTypeParamDeclField {
140818        #[doc = "Represents [`TsTypeParamDecl::span`]"]
140819        Span,
140820        #[doc = "Represents [`TsTypeParamDecl::params`]"]
140821        Params(usize),
140822    }
140823    impl TsTypeParamInstantiationField {
140824        pub(crate) fn set_index(&mut self, index: usize) {
140825            match self {
140826                Self::Params(idx) => {
140827                    assert_initial_index(*idx, index);
140828                    *idx = index;
140829                }
140830                _ => swc_visit::wrong_ast_path(),
140831            }
140832        }
140833    }
140834    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140835    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140836    pub enum TsTypeParamInstantiationField {
140837        #[doc = "Represents [`TsTypeParamInstantiation::span`]"]
140838        Span,
140839        #[doc = "Represents [`TsTypeParamInstantiation::params`]"]
140840        Params(usize),
140841    }
140842    impl TsTypePredicateField {
140843        pub(crate) fn set_index(&mut self, index: usize) {
140844            match self {
140845                _ => swc_visit::wrong_ast_path(),
140846            }
140847        }
140848    }
140849    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140850    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140851    pub enum TsTypePredicateField {
140852        #[doc = "Represents [`TsTypePredicate::span`]"]
140853        Span,
140854        #[doc = "Represents [`TsTypePredicate::asserts`]"]
140855        Asserts,
140856        #[doc = "Represents [`TsTypePredicate::param_name`]"]
140857        ParamName,
140858        #[doc = "Represents [`TsTypePredicate::type_ann`]"]
140859        TypeAnn,
140860    }
140861    impl TsTypeQueryField {
140862        pub(crate) fn set_index(&mut self, index: usize) {
140863            match self {
140864                _ => swc_visit::wrong_ast_path(),
140865            }
140866        }
140867    }
140868    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140869    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140870    pub enum TsTypeQueryField {
140871        #[doc = "Represents [`TsTypeQuery::span`]"]
140872        Span,
140873        #[doc = "Represents [`TsTypeQuery::expr_name`]"]
140874        ExprName,
140875        #[doc = "Represents [`TsTypeQuery::type_args`]"]
140876        TypeArgs,
140877    }
140878    impl TsTypeQueryExprField {
140879        #[inline(always)]
140880        pub(crate) fn set_index(&mut self, _: usize) {
140881            swc_visit::wrong_ast_path();
140882        }
140883    }
140884    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140885    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140886    pub enum TsTypeQueryExprField {
140887        #[doc = "Represents [`TsTypeQueryExpr::TsEntityName`]"]
140888        TsEntityName,
140889        #[doc = "Represents [`TsTypeQueryExpr::Import`]"]
140890        Import,
140891    }
140892    impl TsTypeRefField {
140893        pub(crate) fn set_index(&mut self, index: usize) {
140894            match self {
140895                _ => swc_visit::wrong_ast_path(),
140896            }
140897        }
140898    }
140899    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140900    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140901    pub enum TsTypeRefField {
140902        #[doc = "Represents [`TsTypeRef::span`]"]
140903        Span,
140904        #[doc = "Represents [`TsTypeRef::type_name`]"]
140905        TypeName,
140906        #[doc = "Represents [`TsTypeRef::type_params`]"]
140907        TypeParams,
140908    }
140909    impl TsUnionOrIntersectionTypeField {
140910        #[inline(always)]
140911        pub(crate) fn set_index(&mut self, _: usize) {
140912            swc_visit::wrong_ast_path();
140913        }
140914    }
140915    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140916    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140917    pub enum TsUnionOrIntersectionTypeField {
140918        #[doc = "Represents [`TsUnionOrIntersectionType::TsUnionType`]"]
140919        TsUnionType,
140920        #[doc = "Represents [`TsUnionOrIntersectionType::TsIntersectionType`]"]
140921        TsIntersectionType,
140922    }
140923    impl TsUnionTypeField {
140924        pub(crate) fn set_index(&mut self, index: usize) {
140925            match self {
140926                Self::Types(idx) => {
140927                    assert_initial_index(*idx, index);
140928                    *idx = index;
140929                }
140930                _ => swc_visit::wrong_ast_path(),
140931            }
140932        }
140933    }
140934    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140935    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140936    pub enum TsUnionTypeField {
140937        #[doc = "Represents [`TsUnionType::span`]"]
140938        Span,
140939        #[doc = "Represents [`TsUnionType::types`]"]
140940        Types(usize),
140941    }
140942    impl UnaryExprField {
140943        pub(crate) fn set_index(&mut self, index: usize) {
140944            match self {
140945                _ => swc_visit::wrong_ast_path(),
140946            }
140947        }
140948    }
140949    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140950    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140951    pub enum UnaryExprField {
140952        #[doc = "Represents [`UnaryExpr::span`]"]
140953        Span,
140954        #[doc = "Represents [`UnaryExpr::op`]"]
140955        Op,
140956        #[doc = "Represents [`UnaryExpr::arg`]"]
140957        Arg,
140958    }
140959    impl UnaryOpField {
140960        #[inline(always)]
140961        pub(crate) fn set_index(&mut self, _: usize) {
140962            swc_visit::wrong_ast_path();
140963        }
140964    }
140965    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140966    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140967    pub enum UnaryOpField {
140968        #[doc = "Represents [`UnaryOp::Minus`]"]
140969        Minus,
140970        #[doc = "Represents [`UnaryOp::Plus`]"]
140971        Plus,
140972        #[doc = "Represents [`UnaryOp::Bang`]"]
140973        Bang,
140974        #[doc = "Represents [`UnaryOp::Tilde`]"]
140975        Tilde,
140976        #[doc = "Represents [`UnaryOp::TypeOf`]"]
140977        TypeOf,
140978        #[doc = "Represents [`UnaryOp::Void`]"]
140979        Void,
140980        #[doc = "Represents [`UnaryOp::Delete`]"]
140981        Delete,
140982    }
140983    impl UpdateExprField {
140984        pub(crate) fn set_index(&mut self, index: usize) {
140985            match self {
140986                _ => swc_visit::wrong_ast_path(),
140987            }
140988        }
140989    }
140990    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140991    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140992    pub enum UpdateExprField {
140993        #[doc = "Represents [`UpdateExpr::span`]"]
140994        Span,
140995        #[doc = "Represents [`UpdateExpr::op`]"]
140996        Op,
140997        #[doc = "Represents [`UpdateExpr::prefix`]"]
140998        Prefix,
140999        #[doc = "Represents [`UpdateExpr::arg`]"]
141000        Arg,
141001    }
141002    impl UpdateOpField {
141003        #[inline(always)]
141004        pub(crate) fn set_index(&mut self, _: usize) {
141005            swc_visit::wrong_ast_path();
141006        }
141007    }
141008    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
141009    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
141010    pub enum UpdateOpField {
141011        #[doc = "Represents [`UpdateOp::PlusPlus`]"]
141012        PlusPlus,
141013        #[doc = "Represents [`UpdateOp::MinusMinus`]"]
141014        MinusMinus,
141015    }
141016    impl UsingDeclField {
141017        pub(crate) fn set_index(&mut self, index: usize) {
141018            match self {
141019                Self::Decls(idx) => {
141020                    assert_initial_index(*idx, index);
141021                    *idx = index;
141022                }
141023                _ => swc_visit::wrong_ast_path(),
141024            }
141025        }
141026    }
141027    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
141028    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
141029    pub enum UsingDeclField {
141030        #[doc = "Represents [`UsingDecl::span`]"]
141031        Span,
141032        #[doc = "Represents [`UsingDecl::is_await`]"]
141033        IsAwait,
141034        #[doc = "Represents [`UsingDecl::decls`]"]
141035        Decls(usize),
141036    }
141037    impl VarDeclField {
141038        pub(crate) fn set_index(&mut self, index: usize) {
141039            match self {
141040                Self::Decls(idx) => {
141041                    assert_initial_index(*idx, index);
141042                    *idx = index;
141043                }
141044                _ => swc_visit::wrong_ast_path(),
141045            }
141046        }
141047    }
141048    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
141049    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
141050    pub enum VarDeclField {
141051        #[doc = "Represents [`VarDecl::span`]"]
141052        Span,
141053        #[doc = "Represents [`VarDecl::ctxt`]"]
141054        Ctxt,
141055        #[doc = "Represents [`VarDecl::kind`]"]
141056        Kind,
141057        #[doc = "Represents [`VarDecl::declare`]"]
141058        Declare,
141059        #[doc = "Represents [`VarDecl::decls`]"]
141060        Decls(usize),
141061    }
141062    impl VarDeclKindField {
141063        #[inline(always)]
141064        pub(crate) fn set_index(&mut self, _: usize) {
141065            swc_visit::wrong_ast_path();
141066        }
141067    }
141068    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
141069    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
141070    pub enum VarDeclKindField {
141071        #[doc = "Represents [`VarDeclKind::Var`]"]
141072        Var,
141073        #[doc = "Represents [`VarDeclKind::Let`]"]
141074        Let,
141075        #[doc = "Represents [`VarDeclKind::Const`]"]
141076        Const,
141077    }
141078    impl VarDeclOrExprField {
141079        #[inline(always)]
141080        pub(crate) fn set_index(&mut self, _: usize) {
141081            swc_visit::wrong_ast_path();
141082        }
141083    }
141084    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
141085    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
141086    pub enum VarDeclOrExprField {
141087        #[doc = "Represents [`VarDeclOrExpr::VarDecl`]"]
141088        VarDecl,
141089        #[doc = "Represents [`VarDeclOrExpr::Expr`]"]
141090        Expr,
141091    }
141092    impl VarDeclaratorField {
141093        pub(crate) fn set_index(&mut self, index: usize) {
141094            match self {
141095                _ => swc_visit::wrong_ast_path(),
141096            }
141097        }
141098    }
141099    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
141100    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
141101    pub enum VarDeclaratorField {
141102        #[doc = "Represents [`VarDeclarator::span`]"]
141103        Span,
141104        #[doc = "Represents [`VarDeclarator::name`]"]
141105        Name,
141106        #[doc = "Represents [`VarDeclarator::init`]"]
141107        Init,
141108        #[doc = "Represents [`VarDeclarator::definite`]"]
141109        Definite,
141110    }
141111    impl WhileStmtField {
141112        pub(crate) fn set_index(&mut self, index: usize) {
141113            match self {
141114                _ => swc_visit::wrong_ast_path(),
141115            }
141116        }
141117    }
141118    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
141119    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
141120    pub enum WhileStmtField {
141121        #[doc = "Represents [`WhileStmt::span`]"]
141122        Span,
141123        #[doc = "Represents [`WhileStmt::test`]"]
141124        Test,
141125        #[doc = "Represents [`WhileStmt::body`]"]
141126        Body,
141127    }
141128    impl WithStmtField {
141129        pub(crate) fn set_index(&mut self, index: usize) {
141130            match self {
141131                _ => swc_visit::wrong_ast_path(),
141132            }
141133        }
141134    }
141135    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
141136    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
141137    pub enum WithStmtField {
141138        #[doc = "Represents [`WithStmt::span`]"]
141139        Span,
141140        #[doc = "Represents [`WithStmt::obj`]"]
141141        Obj,
141142        #[doc = "Represents [`WithStmt::body`]"]
141143        Body,
141144    }
141145    impl YieldExprField {
141146        pub(crate) fn set_index(&mut self, index: usize) {
141147            match self {
141148                _ => swc_visit::wrong_ast_path(),
141149            }
141150        }
141151    }
141152    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
141153    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
141154    pub enum YieldExprField {
141155        #[doc = "Represents [`YieldExpr::span`]"]
141156        Span,
141157        #[doc = "Represents [`YieldExpr::arg`]"]
141158        Arg,
141159        #[doc = "Represents [`YieldExpr::delegate`]"]
141160        Delegate,
141161    }
141162    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
141163    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
141164    pub enum AstParentKind {
141165        Accessibility(AccessibilityField),
141166        ArrayLit(ArrayLitField),
141167        ArrayPat(ArrayPatField),
141168        ArrowExpr(ArrowExprField),
141169        AssignExpr(AssignExprField),
141170        AssignOp(AssignOpField),
141171        AssignPat(AssignPatField),
141172        AssignPatProp(AssignPatPropField),
141173        AssignProp(AssignPropField),
141174        AssignTarget(AssignTargetField),
141175        AssignTargetPat(AssignTargetPatField),
141176        AutoAccessor(AutoAccessorField),
141177        AwaitExpr(AwaitExprField),
141178        BigInt(BigIntField),
141179        BinExpr(BinExprField),
141180        BinaryOp(BinaryOpField),
141181        BindingIdent(BindingIdentField),
141182        BlockStmt(BlockStmtField),
141183        BlockStmtOrExpr(BlockStmtOrExprField),
141184        Bool(BoolField),
141185        BreakStmt(BreakStmtField),
141186        CallExpr(CallExprField),
141187        Callee(CalleeField),
141188        CatchClause(CatchClauseField),
141189        Class(ClassField),
141190        ClassDecl(ClassDeclField),
141191        ClassExpr(ClassExprField),
141192        ClassMember(ClassMemberField),
141193        ClassMethod(ClassMethodField),
141194        ClassProp(ClassPropField),
141195        ComputedPropName(ComputedPropNameField),
141196        CondExpr(CondExprField),
141197        Constructor(ConstructorField),
141198        ContinueStmt(ContinueStmtField),
141199        DebuggerStmt(DebuggerStmtField),
141200        Decl(DeclField),
141201        Decorator(DecoratorField),
141202        DefaultDecl(DefaultDeclField),
141203        DoWhileStmt(DoWhileStmtField),
141204        EmptyStmt(EmptyStmtField),
141205        ExportAll(ExportAllField),
141206        ExportDecl(ExportDeclField),
141207        ExportDefaultDecl(ExportDefaultDeclField),
141208        ExportDefaultExpr(ExportDefaultExprField),
141209        ExportDefaultSpecifier(ExportDefaultSpecifierField),
141210        ExportNamedSpecifier(ExportNamedSpecifierField),
141211        ExportNamespaceSpecifier(ExportNamespaceSpecifierField),
141212        ExportSpecifier(ExportSpecifierField),
141213        Expr(ExprField),
141214        ExprOrSpread(ExprOrSpreadField),
141215        ExprStmt(ExprStmtField),
141216        FnDecl(FnDeclField),
141217        FnExpr(FnExprField),
141218        ForHead(ForHeadField),
141219        ForInStmt(ForInStmtField),
141220        ForOfStmt(ForOfStmtField),
141221        ForStmt(ForStmtField),
141222        Function(FunctionField),
141223        GetterProp(GetterPropField),
141224        Ident(IdentField),
141225        IdentName(IdentNameField),
141226        IfStmt(IfStmtField),
141227        Import(ImportField),
141228        ImportDecl(ImportDeclField),
141229        ImportDefaultSpecifier(ImportDefaultSpecifierField),
141230        ImportNamedSpecifier(ImportNamedSpecifierField),
141231        ImportPhase(ImportPhaseField),
141232        ImportSpecifier(ImportSpecifierField),
141233        ImportStarAsSpecifier(ImportStarAsSpecifierField),
141234        ImportWith(ImportWithField),
141235        ImportWithItem(ImportWithItemField),
141236        Invalid(InvalidField),
141237        JSXAttr(JSXAttrField),
141238        JSXAttrName(JSXAttrNameField),
141239        JSXAttrOrSpread(JSXAttrOrSpreadField),
141240        JSXAttrValue(JSXAttrValueField),
141241        JSXClosingElement(JSXClosingElementField),
141242        JSXClosingFragment(JSXClosingFragmentField),
141243        JSXElement(JSXElementField),
141244        JSXElementChild(JSXElementChildField),
141245        JSXElementName(JSXElementNameField),
141246        JSXEmptyExpr(JSXEmptyExprField),
141247        JSXExpr(JSXExprField),
141248        JSXExprContainer(JSXExprContainerField),
141249        JSXFragment(JSXFragmentField),
141250        JSXMemberExpr(JSXMemberExprField),
141251        JSXNamespacedName(JSXNamespacedNameField),
141252        JSXObject(JSXObjectField),
141253        JSXOpeningElement(JSXOpeningElementField),
141254        JSXOpeningFragment(JSXOpeningFragmentField),
141255        JSXSpreadChild(JSXSpreadChildField),
141256        JSXText(JSXTextField),
141257        Key(KeyField),
141258        KeyValuePatProp(KeyValuePatPropField),
141259        KeyValueProp(KeyValuePropField),
141260        LabeledStmt(LabeledStmtField),
141261        Lit(LitField),
141262        MemberExpr(MemberExprField),
141263        MemberProp(MemberPropField),
141264        MetaPropExpr(MetaPropExprField),
141265        MetaPropKind(MetaPropKindField),
141266        MethodKind(MethodKindField),
141267        MethodProp(MethodPropField),
141268        Module(ModuleField),
141269        ModuleDecl(ModuleDeclField),
141270        ModuleExportName(ModuleExportNameField),
141271        ModuleItem(ModuleItemField),
141272        NamedExport(NamedExportField),
141273        NewExpr(NewExprField),
141274        Null(NullField),
141275        Number(NumberField),
141276        ObjectLit(ObjectLitField),
141277        ObjectPat(ObjectPatField),
141278        ObjectPatProp(ObjectPatPropField),
141279        OptCall(OptCallField),
141280        OptChainBase(OptChainBaseField),
141281        OptChainExpr(OptChainExprField),
141282        Param(ParamField),
141283        ParamOrTsParamProp(ParamOrTsParamPropField),
141284        ParenExpr(ParenExprField),
141285        Pat(PatField),
141286        PrivateMethod(PrivateMethodField),
141287        PrivateName(PrivateNameField),
141288        PrivateProp(PrivatePropField),
141289        Program(ProgramField),
141290        Prop(PropField),
141291        PropName(PropNameField),
141292        PropOrSpread(PropOrSpreadField),
141293        Regex(RegexField),
141294        RestPat(RestPatField),
141295        ReturnStmt(ReturnStmtField),
141296        Script(ScriptField),
141297        SeqExpr(SeqExprField),
141298        SetterProp(SetterPropField),
141299        SimpleAssignTarget(SimpleAssignTargetField),
141300        SpreadElement(SpreadElementField),
141301        StaticBlock(StaticBlockField),
141302        Stmt(StmtField),
141303        Str(StrField),
141304        Super(SuperField),
141305        SuperProp(SuperPropField),
141306        SuperPropExpr(SuperPropExprField),
141307        SwitchCase(SwitchCaseField),
141308        SwitchStmt(SwitchStmtField),
141309        TaggedTpl(TaggedTplField),
141310        ThisExpr(ThisExprField),
141311        ThrowStmt(ThrowStmtField),
141312        Tpl(TplField),
141313        TplElement(TplElementField),
141314        TruePlusMinus(TruePlusMinusField),
141315        TryStmt(TryStmtField),
141316        TsArrayType(TsArrayTypeField),
141317        TsAsExpr(TsAsExprField),
141318        TsCallSignatureDecl(TsCallSignatureDeclField),
141319        TsConditionalType(TsConditionalTypeField),
141320        TsConstAssertion(TsConstAssertionField),
141321        TsConstructSignatureDecl(TsConstructSignatureDeclField),
141322        TsConstructorType(TsConstructorTypeField),
141323        TsEntityName(TsEntityNameField),
141324        TsEnumDecl(TsEnumDeclField),
141325        TsEnumMember(TsEnumMemberField),
141326        TsEnumMemberId(TsEnumMemberIdField),
141327        TsExportAssignment(TsExportAssignmentField),
141328        TsExprWithTypeArgs(TsExprWithTypeArgsField),
141329        TsExternalModuleRef(TsExternalModuleRefField),
141330        TsFnOrConstructorType(TsFnOrConstructorTypeField),
141331        TsFnParam(TsFnParamField),
141332        TsFnType(TsFnTypeField),
141333        TsGetterSignature(TsGetterSignatureField),
141334        TsImportCallOptions(TsImportCallOptionsField),
141335        TsImportEqualsDecl(TsImportEqualsDeclField),
141336        TsImportType(TsImportTypeField),
141337        TsIndexSignature(TsIndexSignatureField),
141338        TsIndexedAccessType(TsIndexedAccessTypeField),
141339        TsInferType(TsInferTypeField),
141340        TsInstantiation(TsInstantiationField),
141341        TsInterfaceBody(TsInterfaceBodyField),
141342        TsInterfaceDecl(TsInterfaceDeclField),
141343        TsIntersectionType(TsIntersectionTypeField),
141344        TsKeywordType(TsKeywordTypeField),
141345        TsKeywordTypeKind(TsKeywordTypeKindField),
141346        TsLit(TsLitField),
141347        TsLitType(TsLitTypeField),
141348        TsMappedType(TsMappedTypeField),
141349        TsMethodSignature(TsMethodSignatureField),
141350        TsModuleBlock(TsModuleBlockField),
141351        TsModuleDecl(TsModuleDeclField),
141352        TsModuleName(TsModuleNameField),
141353        TsModuleRef(TsModuleRefField),
141354        TsNamespaceBody(TsNamespaceBodyField),
141355        TsNamespaceDecl(TsNamespaceDeclField),
141356        TsNamespaceExportDecl(TsNamespaceExportDeclField),
141357        TsNonNullExpr(TsNonNullExprField),
141358        TsOptionalType(TsOptionalTypeField),
141359        TsParamProp(TsParamPropField),
141360        TsParamPropParam(TsParamPropParamField),
141361        TsParenthesizedType(TsParenthesizedTypeField),
141362        TsPropertySignature(TsPropertySignatureField),
141363        TsQualifiedName(TsQualifiedNameField),
141364        TsRestType(TsRestTypeField),
141365        TsSatisfiesExpr(TsSatisfiesExprField),
141366        TsSetterSignature(TsSetterSignatureField),
141367        TsThisType(TsThisTypeField),
141368        TsThisTypeOrIdent(TsThisTypeOrIdentField),
141369        TsTplLitType(TsTplLitTypeField),
141370        TsTupleElement(TsTupleElementField),
141371        TsTupleType(TsTupleTypeField),
141372        TsType(TsTypeField),
141373        TsTypeAliasDecl(TsTypeAliasDeclField),
141374        TsTypeAnn(TsTypeAnnField),
141375        TsTypeAssertion(TsTypeAssertionField),
141376        TsTypeElement(TsTypeElementField),
141377        TsTypeLit(TsTypeLitField),
141378        TsTypeOperator(TsTypeOperatorField),
141379        TsTypeOperatorOp(TsTypeOperatorOpField),
141380        TsTypeParam(TsTypeParamField),
141381        TsTypeParamDecl(TsTypeParamDeclField),
141382        TsTypeParamInstantiation(TsTypeParamInstantiationField),
141383        TsTypePredicate(TsTypePredicateField),
141384        TsTypeQuery(TsTypeQueryField),
141385        TsTypeQueryExpr(TsTypeQueryExprField),
141386        TsTypeRef(TsTypeRefField),
141387        TsUnionOrIntersectionType(TsUnionOrIntersectionTypeField),
141388        TsUnionType(TsUnionTypeField),
141389        UnaryExpr(UnaryExprField),
141390        UnaryOp(UnaryOpField),
141391        UpdateExpr(UpdateExprField),
141392        UpdateOp(UpdateOpField),
141393        UsingDecl(UsingDeclField),
141394        VarDecl(VarDeclField),
141395        VarDeclKind(VarDeclKindField),
141396        VarDeclOrExpr(VarDeclOrExprField),
141397        VarDeclarator(VarDeclaratorField),
141398        WhileStmt(WhileStmtField),
141399        WithStmt(WithStmtField),
141400        YieldExpr(YieldExprField),
141401    }
141402    impl ::swc_visit::ParentKind for AstParentKind {
141403        #[inline]
141404        fn set_index(&mut self, index: usize) {
141405            match self {
141406                Self::Accessibility(v) => v.set_index(index),
141407                Self::ArrayLit(v) => v.set_index(index),
141408                Self::ArrayPat(v) => v.set_index(index),
141409                Self::ArrowExpr(v) => v.set_index(index),
141410                Self::AssignExpr(v) => v.set_index(index),
141411                Self::AssignOp(v) => v.set_index(index),
141412                Self::AssignPat(v) => v.set_index(index),
141413                Self::AssignPatProp(v) => v.set_index(index),
141414                Self::AssignProp(v) => v.set_index(index),
141415                Self::AssignTarget(v) => v.set_index(index),
141416                Self::AssignTargetPat(v) => v.set_index(index),
141417                Self::AutoAccessor(v) => v.set_index(index),
141418                Self::AwaitExpr(v) => v.set_index(index),
141419                Self::BigInt(v) => v.set_index(index),
141420                Self::BinExpr(v) => v.set_index(index),
141421                Self::BinaryOp(v) => v.set_index(index),
141422                Self::BindingIdent(v) => v.set_index(index),
141423                Self::BlockStmt(v) => v.set_index(index),
141424                Self::BlockStmtOrExpr(v) => v.set_index(index),
141425                Self::Bool(v) => v.set_index(index),
141426                Self::BreakStmt(v) => v.set_index(index),
141427                Self::CallExpr(v) => v.set_index(index),
141428                Self::Callee(v) => v.set_index(index),
141429                Self::CatchClause(v) => v.set_index(index),
141430                Self::Class(v) => v.set_index(index),
141431                Self::ClassDecl(v) => v.set_index(index),
141432                Self::ClassExpr(v) => v.set_index(index),
141433                Self::ClassMember(v) => v.set_index(index),
141434                Self::ClassMethod(v) => v.set_index(index),
141435                Self::ClassProp(v) => v.set_index(index),
141436                Self::ComputedPropName(v) => v.set_index(index),
141437                Self::CondExpr(v) => v.set_index(index),
141438                Self::Constructor(v) => v.set_index(index),
141439                Self::ContinueStmt(v) => v.set_index(index),
141440                Self::DebuggerStmt(v) => v.set_index(index),
141441                Self::Decl(v) => v.set_index(index),
141442                Self::Decorator(v) => v.set_index(index),
141443                Self::DefaultDecl(v) => v.set_index(index),
141444                Self::DoWhileStmt(v) => v.set_index(index),
141445                Self::EmptyStmt(v) => v.set_index(index),
141446                Self::ExportAll(v) => v.set_index(index),
141447                Self::ExportDecl(v) => v.set_index(index),
141448                Self::ExportDefaultDecl(v) => v.set_index(index),
141449                Self::ExportDefaultExpr(v) => v.set_index(index),
141450                Self::ExportDefaultSpecifier(v) => v.set_index(index),
141451                Self::ExportNamedSpecifier(v) => v.set_index(index),
141452                Self::ExportNamespaceSpecifier(v) => v.set_index(index),
141453                Self::ExportSpecifier(v) => v.set_index(index),
141454                Self::Expr(v) => v.set_index(index),
141455                Self::ExprOrSpread(v) => v.set_index(index),
141456                Self::ExprStmt(v) => v.set_index(index),
141457                Self::FnDecl(v) => v.set_index(index),
141458                Self::FnExpr(v) => v.set_index(index),
141459                Self::ForHead(v) => v.set_index(index),
141460                Self::ForInStmt(v) => v.set_index(index),
141461                Self::ForOfStmt(v) => v.set_index(index),
141462                Self::ForStmt(v) => v.set_index(index),
141463                Self::Function(v) => v.set_index(index),
141464                Self::GetterProp(v) => v.set_index(index),
141465                Self::Ident(v) => v.set_index(index),
141466                Self::IdentName(v) => v.set_index(index),
141467                Self::IfStmt(v) => v.set_index(index),
141468                Self::Import(v) => v.set_index(index),
141469                Self::ImportDecl(v) => v.set_index(index),
141470                Self::ImportDefaultSpecifier(v) => v.set_index(index),
141471                Self::ImportNamedSpecifier(v) => v.set_index(index),
141472                Self::ImportPhase(v) => v.set_index(index),
141473                Self::ImportSpecifier(v) => v.set_index(index),
141474                Self::ImportStarAsSpecifier(v) => v.set_index(index),
141475                Self::ImportWith(v) => v.set_index(index),
141476                Self::ImportWithItem(v) => v.set_index(index),
141477                Self::Invalid(v) => v.set_index(index),
141478                Self::JSXAttr(v) => v.set_index(index),
141479                Self::JSXAttrName(v) => v.set_index(index),
141480                Self::JSXAttrOrSpread(v) => v.set_index(index),
141481                Self::JSXAttrValue(v) => v.set_index(index),
141482                Self::JSXClosingElement(v) => v.set_index(index),
141483                Self::JSXClosingFragment(v) => v.set_index(index),
141484                Self::JSXElement(v) => v.set_index(index),
141485                Self::JSXElementChild(v) => v.set_index(index),
141486                Self::JSXElementName(v) => v.set_index(index),
141487                Self::JSXEmptyExpr(v) => v.set_index(index),
141488                Self::JSXExpr(v) => v.set_index(index),
141489                Self::JSXExprContainer(v) => v.set_index(index),
141490                Self::JSXFragment(v) => v.set_index(index),
141491                Self::JSXMemberExpr(v) => v.set_index(index),
141492                Self::JSXNamespacedName(v) => v.set_index(index),
141493                Self::JSXObject(v) => v.set_index(index),
141494                Self::JSXOpeningElement(v) => v.set_index(index),
141495                Self::JSXOpeningFragment(v) => v.set_index(index),
141496                Self::JSXSpreadChild(v) => v.set_index(index),
141497                Self::JSXText(v) => v.set_index(index),
141498                Self::Key(v) => v.set_index(index),
141499                Self::KeyValuePatProp(v) => v.set_index(index),
141500                Self::KeyValueProp(v) => v.set_index(index),
141501                Self::LabeledStmt(v) => v.set_index(index),
141502                Self::Lit(v) => v.set_index(index),
141503                Self::MemberExpr(v) => v.set_index(index),
141504                Self::MemberProp(v) => v.set_index(index),
141505                Self::MetaPropExpr(v) => v.set_index(index),
141506                Self::MetaPropKind(v) => v.set_index(index),
141507                Self::MethodKind(v) => v.set_index(index),
141508                Self::MethodProp(v) => v.set_index(index),
141509                Self::Module(v) => v.set_index(index),
141510                Self::ModuleDecl(v) => v.set_index(index),
141511                Self::ModuleExportName(v) => v.set_index(index),
141512                Self::ModuleItem(v) => v.set_index(index),
141513                Self::NamedExport(v) => v.set_index(index),
141514                Self::NewExpr(v) => v.set_index(index),
141515                Self::Null(v) => v.set_index(index),
141516                Self::Number(v) => v.set_index(index),
141517                Self::ObjectLit(v) => v.set_index(index),
141518                Self::ObjectPat(v) => v.set_index(index),
141519                Self::ObjectPatProp(v) => v.set_index(index),
141520                Self::OptCall(v) => v.set_index(index),
141521                Self::OptChainBase(v) => v.set_index(index),
141522                Self::OptChainExpr(v) => v.set_index(index),
141523                Self::Param(v) => v.set_index(index),
141524                Self::ParamOrTsParamProp(v) => v.set_index(index),
141525                Self::ParenExpr(v) => v.set_index(index),
141526                Self::Pat(v) => v.set_index(index),
141527                Self::PrivateMethod(v) => v.set_index(index),
141528                Self::PrivateName(v) => v.set_index(index),
141529                Self::PrivateProp(v) => v.set_index(index),
141530                Self::Program(v) => v.set_index(index),
141531                Self::Prop(v) => v.set_index(index),
141532                Self::PropName(v) => v.set_index(index),
141533                Self::PropOrSpread(v) => v.set_index(index),
141534                Self::Regex(v) => v.set_index(index),
141535                Self::RestPat(v) => v.set_index(index),
141536                Self::ReturnStmt(v) => v.set_index(index),
141537                Self::Script(v) => v.set_index(index),
141538                Self::SeqExpr(v) => v.set_index(index),
141539                Self::SetterProp(v) => v.set_index(index),
141540                Self::SimpleAssignTarget(v) => v.set_index(index),
141541                Self::SpreadElement(v) => v.set_index(index),
141542                Self::StaticBlock(v) => v.set_index(index),
141543                Self::Stmt(v) => v.set_index(index),
141544                Self::Str(v) => v.set_index(index),
141545                Self::Super(v) => v.set_index(index),
141546                Self::SuperProp(v) => v.set_index(index),
141547                Self::SuperPropExpr(v) => v.set_index(index),
141548                Self::SwitchCase(v) => v.set_index(index),
141549                Self::SwitchStmt(v) => v.set_index(index),
141550                Self::TaggedTpl(v) => v.set_index(index),
141551                Self::ThisExpr(v) => v.set_index(index),
141552                Self::ThrowStmt(v) => v.set_index(index),
141553                Self::Tpl(v) => v.set_index(index),
141554                Self::TplElement(v) => v.set_index(index),
141555                Self::TruePlusMinus(v) => v.set_index(index),
141556                Self::TryStmt(v) => v.set_index(index),
141557                Self::TsArrayType(v) => v.set_index(index),
141558                Self::TsAsExpr(v) => v.set_index(index),
141559                Self::TsCallSignatureDecl(v) => v.set_index(index),
141560                Self::TsConditionalType(v) => v.set_index(index),
141561                Self::TsConstAssertion(v) => v.set_index(index),
141562                Self::TsConstructSignatureDecl(v) => v.set_index(index),
141563                Self::TsConstructorType(v) => v.set_index(index),
141564                Self::TsEntityName(v) => v.set_index(index),
141565                Self::TsEnumDecl(v) => v.set_index(index),
141566                Self::TsEnumMember(v) => v.set_index(index),
141567                Self::TsEnumMemberId(v) => v.set_index(index),
141568                Self::TsExportAssignment(v) => v.set_index(index),
141569                Self::TsExprWithTypeArgs(v) => v.set_index(index),
141570                Self::TsExternalModuleRef(v) => v.set_index(index),
141571                Self::TsFnOrConstructorType(v) => v.set_index(index),
141572                Self::TsFnParam(v) => v.set_index(index),
141573                Self::TsFnType(v) => v.set_index(index),
141574                Self::TsGetterSignature(v) => v.set_index(index),
141575                Self::TsImportCallOptions(v) => v.set_index(index),
141576                Self::TsImportEqualsDecl(v) => v.set_index(index),
141577                Self::TsImportType(v) => v.set_index(index),
141578                Self::TsIndexSignature(v) => v.set_index(index),
141579                Self::TsIndexedAccessType(v) => v.set_index(index),
141580                Self::TsInferType(v) => v.set_index(index),
141581                Self::TsInstantiation(v) => v.set_index(index),
141582                Self::TsInterfaceBody(v) => v.set_index(index),
141583                Self::TsInterfaceDecl(v) => v.set_index(index),
141584                Self::TsIntersectionType(v) => v.set_index(index),
141585                Self::TsKeywordType(v) => v.set_index(index),
141586                Self::TsKeywordTypeKind(v) => v.set_index(index),
141587                Self::TsLit(v) => v.set_index(index),
141588                Self::TsLitType(v) => v.set_index(index),
141589                Self::TsMappedType(v) => v.set_index(index),
141590                Self::TsMethodSignature(v) => v.set_index(index),
141591                Self::TsModuleBlock(v) => v.set_index(index),
141592                Self::TsModuleDecl(v) => v.set_index(index),
141593                Self::TsModuleName(v) => v.set_index(index),
141594                Self::TsModuleRef(v) => v.set_index(index),
141595                Self::TsNamespaceBody(v) => v.set_index(index),
141596                Self::TsNamespaceDecl(v) => v.set_index(index),
141597                Self::TsNamespaceExportDecl(v) => v.set_index(index),
141598                Self::TsNonNullExpr(v) => v.set_index(index),
141599                Self::TsOptionalType(v) => v.set_index(index),
141600                Self::TsParamProp(v) => v.set_index(index),
141601                Self::TsParamPropParam(v) => v.set_index(index),
141602                Self::TsParenthesizedType(v) => v.set_index(index),
141603                Self::TsPropertySignature(v) => v.set_index(index),
141604                Self::TsQualifiedName(v) => v.set_index(index),
141605                Self::TsRestType(v) => v.set_index(index),
141606                Self::TsSatisfiesExpr(v) => v.set_index(index),
141607                Self::TsSetterSignature(v) => v.set_index(index),
141608                Self::TsThisType(v) => v.set_index(index),
141609                Self::TsThisTypeOrIdent(v) => v.set_index(index),
141610                Self::TsTplLitType(v) => v.set_index(index),
141611                Self::TsTupleElement(v) => v.set_index(index),
141612                Self::TsTupleType(v) => v.set_index(index),
141613                Self::TsType(v) => v.set_index(index),
141614                Self::TsTypeAliasDecl(v) => v.set_index(index),
141615                Self::TsTypeAnn(v) => v.set_index(index),
141616                Self::TsTypeAssertion(v) => v.set_index(index),
141617                Self::TsTypeElement(v) => v.set_index(index),
141618                Self::TsTypeLit(v) => v.set_index(index),
141619                Self::TsTypeOperator(v) => v.set_index(index),
141620                Self::TsTypeOperatorOp(v) => v.set_index(index),
141621                Self::TsTypeParam(v) => v.set_index(index),
141622                Self::TsTypeParamDecl(v) => v.set_index(index),
141623                Self::TsTypeParamInstantiation(v) => v.set_index(index),
141624                Self::TsTypePredicate(v) => v.set_index(index),
141625                Self::TsTypeQuery(v) => v.set_index(index),
141626                Self::TsTypeQueryExpr(v) => v.set_index(index),
141627                Self::TsTypeRef(v) => v.set_index(index),
141628                Self::TsUnionOrIntersectionType(v) => v.set_index(index),
141629                Self::TsUnionType(v) => v.set_index(index),
141630                Self::UnaryExpr(v) => v.set_index(index),
141631                Self::UnaryOp(v) => v.set_index(index),
141632                Self::UpdateExpr(v) => v.set_index(index),
141633                Self::UpdateOp(v) => v.set_index(index),
141634                Self::UsingDecl(v) => v.set_index(index),
141635                Self::VarDecl(v) => v.set_index(index),
141636                Self::VarDeclKind(v) => v.set_index(index),
141637                Self::VarDeclOrExpr(v) => v.set_index(index),
141638                Self::VarDeclarator(v) => v.set_index(index),
141639                Self::WhileStmt(v) => v.set_index(index),
141640                Self::WithStmt(v) => v.set_index(index),
141641                Self::YieldExpr(v) => v.set_index(index),
141642            }
141643        }
141644    }
141645    #[derive(Debug, Clone, Copy)]
141646    pub enum AstParentNodeRef<'ast> {
141647        Accessibility(&'ast Accessibility, AccessibilityField),
141648        ArrayLit(&'ast ArrayLit, ArrayLitField),
141649        ArrayPat(&'ast ArrayPat, ArrayPatField),
141650        ArrowExpr(&'ast ArrowExpr, ArrowExprField),
141651        AssignExpr(&'ast AssignExpr, AssignExprField),
141652        AssignOp(&'ast AssignOp, AssignOpField),
141653        AssignPat(&'ast AssignPat, AssignPatField),
141654        AssignPatProp(&'ast AssignPatProp, AssignPatPropField),
141655        AssignProp(&'ast AssignProp, AssignPropField),
141656        AssignTarget(&'ast AssignTarget, AssignTargetField),
141657        AssignTargetPat(&'ast AssignTargetPat, AssignTargetPatField),
141658        AutoAccessor(&'ast AutoAccessor, AutoAccessorField),
141659        AwaitExpr(&'ast AwaitExpr, AwaitExprField),
141660        BigInt(&'ast BigInt, BigIntField),
141661        BinExpr(&'ast BinExpr, BinExprField),
141662        BinaryOp(&'ast BinaryOp, BinaryOpField),
141663        BindingIdent(&'ast BindingIdent, BindingIdentField),
141664        BlockStmt(&'ast BlockStmt, BlockStmtField),
141665        BlockStmtOrExpr(&'ast BlockStmtOrExpr, BlockStmtOrExprField),
141666        Bool(&'ast Bool, BoolField),
141667        BreakStmt(&'ast BreakStmt, BreakStmtField),
141668        CallExpr(&'ast CallExpr, CallExprField),
141669        Callee(&'ast Callee, CalleeField),
141670        CatchClause(&'ast CatchClause, CatchClauseField),
141671        Class(&'ast Class, ClassField),
141672        ClassDecl(&'ast ClassDecl, ClassDeclField),
141673        ClassExpr(&'ast ClassExpr, ClassExprField),
141674        ClassMember(&'ast ClassMember, ClassMemberField),
141675        ClassMethod(&'ast ClassMethod, ClassMethodField),
141676        ClassProp(&'ast ClassProp, ClassPropField),
141677        ComputedPropName(&'ast ComputedPropName, ComputedPropNameField),
141678        CondExpr(&'ast CondExpr, CondExprField),
141679        Constructor(&'ast Constructor, ConstructorField),
141680        ContinueStmt(&'ast ContinueStmt, ContinueStmtField),
141681        DebuggerStmt(&'ast DebuggerStmt, DebuggerStmtField),
141682        Decl(&'ast Decl, DeclField),
141683        Decorator(&'ast Decorator, DecoratorField),
141684        DefaultDecl(&'ast DefaultDecl, DefaultDeclField),
141685        DoWhileStmt(&'ast DoWhileStmt, DoWhileStmtField),
141686        EmptyStmt(&'ast EmptyStmt, EmptyStmtField),
141687        ExportAll(&'ast ExportAll, ExportAllField),
141688        ExportDecl(&'ast ExportDecl, ExportDeclField),
141689        ExportDefaultDecl(&'ast ExportDefaultDecl, ExportDefaultDeclField),
141690        ExportDefaultExpr(&'ast ExportDefaultExpr, ExportDefaultExprField),
141691        ExportDefaultSpecifier(&'ast ExportDefaultSpecifier, ExportDefaultSpecifierField),
141692        ExportNamedSpecifier(&'ast ExportNamedSpecifier, ExportNamedSpecifierField),
141693        ExportNamespaceSpecifier(
141694            &'ast ExportNamespaceSpecifier,
141695            ExportNamespaceSpecifierField,
141696        ),
141697        ExportSpecifier(&'ast ExportSpecifier, ExportSpecifierField),
141698        Expr(&'ast Expr, ExprField),
141699        ExprOrSpread(&'ast ExprOrSpread, ExprOrSpreadField),
141700        ExprStmt(&'ast ExprStmt, ExprStmtField),
141701        FnDecl(&'ast FnDecl, FnDeclField),
141702        FnExpr(&'ast FnExpr, FnExprField),
141703        ForHead(&'ast ForHead, ForHeadField),
141704        ForInStmt(&'ast ForInStmt, ForInStmtField),
141705        ForOfStmt(&'ast ForOfStmt, ForOfStmtField),
141706        ForStmt(&'ast ForStmt, ForStmtField),
141707        Function(&'ast Function, FunctionField),
141708        GetterProp(&'ast GetterProp, GetterPropField),
141709        Ident(&'ast Ident, IdentField),
141710        IdentName(&'ast IdentName, IdentNameField),
141711        IfStmt(&'ast IfStmt, IfStmtField),
141712        Import(&'ast Import, ImportField),
141713        ImportDecl(&'ast ImportDecl, ImportDeclField),
141714        ImportDefaultSpecifier(&'ast ImportDefaultSpecifier, ImportDefaultSpecifierField),
141715        ImportNamedSpecifier(&'ast ImportNamedSpecifier, ImportNamedSpecifierField),
141716        ImportPhase(&'ast ImportPhase, ImportPhaseField),
141717        ImportSpecifier(&'ast ImportSpecifier, ImportSpecifierField),
141718        ImportStarAsSpecifier(&'ast ImportStarAsSpecifier, ImportStarAsSpecifierField),
141719        ImportWith(&'ast ImportWith, ImportWithField),
141720        ImportWithItem(&'ast ImportWithItem, ImportWithItemField),
141721        Invalid(&'ast Invalid, InvalidField),
141722        JSXAttr(&'ast JSXAttr, JSXAttrField),
141723        JSXAttrName(&'ast JSXAttrName, JSXAttrNameField),
141724        JSXAttrOrSpread(&'ast JSXAttrOrSpread, JSXAttrOrSpreadField),
141725        JSXAttrValue(&'ast JSXAttrValue, JSXAttrValueField),
141726        JSXClosingElement(&'ast JSXClosingElement, JSXClosingElementField),
141727        JSXClosingFragment(&'ast JSXClosingFragment, JSXClosingFragmentField),
141728        JSXElement(&'ast JSXElement, JSXElementField),
141729        JSXElementChild(&'ast JSXElementChild, JSXElementChildField),
141730        JSXElementName(&'ast JSXElementName, JSXElementNameField),
141731        JSXEmptyExpr(&'ast JSXEmptyExpr, JSXEmptyExprField),
141732        JSXExpr(&'ast JSXExpr, JSXExprField),
141733        JSXExprContainer(&'ast JSXExprContainer, JSXExprContainerField),
141734        JSXFragment(&'ast JSXFragment, JSXFragmentField),
141735        JSXMemberExpr(&'ast JSXMemberExpr, JSXMemberExprField),
141736        JSXNamespacedName(&'ast JSXNamespacedName, JSXNamespacedNameField),
141737        JSXObject(&'ast JSXObject, JSXObjectField),
141738        JSXOpeningElement(&'ast JSXOpeningElement, JSXOpeningElementField),
141739        JSXOpeningFragment(&'ast JSXOpeningFragment, JSXOpeningFragmentField),
141740        JSXSpreadChild(&'ast JSXSpreadChild, JSXSpreadChildField),
141741        JSXText(&'ast JSXText, JSXTextField),
141742        Key(&'ast Key, KeyField),
141743        KeyValuePatProp(&'ast KeyValuePatProp, KeyValuePatPropField),
141744        KeyValueProp(&'ast KeyValueProp, KeyValuePropField),
141745        LabeledStmt(&'ast LabeledStmt, LabeledStmtField),
141746        Lit(&'ast Lit, LitField),
141747        MemberExpr(&'ast MemberExpr, MemberExprField),
141748        MemberProp(&'ast MemberProp, MemberPropField),
141749        MetaPropExpr(&'ast MetaPropExpr, MetaPropExprField),
141750        MetaPropKind(&'ast MetaPropKind, MetaPropKindField),
141751        MethodKind(&'ast MethodKind, MethodKindField),
141752        MethodProp(&'ast MethodProp, MethodPropField),
141753        Module(&'ast Module, ModuleField),
141754        ModuleDecl(&'ast ModuleDecl, ModuleDeclField),
141755        ModuleExportName(&'ast ModuleExportName, ModuleExportNameField),
141756        ModuleItem(&'ast ModuleItem, ModuleItemField),
141757        NamedExport(&'ast NamedExport, NamedExportField),
141758        NewExpr(&'ast NewExpr, NewExprField),
141759        Null(&'ast Null, NullField),
141760        Number(&'ast Number, NumberField),
141761        ObjectLit(&'ast ObjectLit, ObjectLitField),
141762        ObjectPat(&'ast ObjectPat, ObjectPatField),
141763        ObjectPatProp(&'ast ObjectPatProp, ObjectPatPropField),
141764        OptCall(&'ast OptCall, OptCallField),
141765        OptChainBase(&'ast OptChainBase, OptChainBaseField),
141766        OptChainExpr(&'ast OptChainExpr, OptChainExprField),
141767        Param(&'ast Param, ParamField),
141768        ParamOrTsParamProp(&'ast ParamOrTsParamProp, ParamOrTsParamPropField),
141769        ParenExpr(&'ast ParenExpr, ParenExprField),
141770        Pat(&'ast Pat, PatField),
141771        PrivateMethod(&'ast PrivateMethod, PrivateMethodField),
141772        PrivateName(&'ast PrivateName, PrivateNameField),
141773        PrivateProp(&'ast PrivateProp, PrivatePropField),
141774        Program(&'ast Program, ProgramField),
141775        Prop(&'ast Prop, PropField),
141776        PropName(&'ast PropName, PropNameField),
141777        PropOrSpread(&'ast PropOrSpread, PropOrSpreadField),
141778        Regex(&'ast Regex, RegexField),
141779        RestPat(&'ast RestPat, RestPatField),
141780        ReturnStmt(&'ast ReturnStmt, ReturnStmtField),
141781        Script(&'ast Script, ScriptField),
141782        SeqExpr(&'ast SeqExpr, SeqExprField),
141783        SetterProp(&'ast SetterProp, SetterPropField),
141784        SimpleAssignTarget(&'ast SimpleAssignTarget, SimpleAssignTargetField),
141785        SpreadElement(&'ast SpreadElement, SpreadElementField),
141786        StaticBlock(&'ast StaticBlock, StaticBlockField),
141787        Stmt(&'ast Stmt, StmtField),
141788        Str(&'ast Str, StrField),
141789        Super(&'ast Super, SuperField),
141790        SuperProp(&'ast SuperProp, SuperPropField),
141791        SuperPropExpr(&'ast SuperPropExpr, SuperPropExprField),
141792        SwitchCase(&'ast SwitchCase, SwitchCaseField),
141793        SwitchStmt(&'ast SwitchStmt, SwitchStmtField),
141794        TaggedTpl(&'ast TaggedTpl, TaggedTplField),
141795        ThisExpr(&'ast ThisExpr, ThisExprField),
141796        ThrowStmt(&'ast ThrowStmt, ThrowStmtField),
141797        Tpl(&'ast Tpl, TplField),
141798        TplElement(&'ast TplElement, TplElementField),
141799        TruePlusMinus(&'ast TruePlusMinus, TruePlusMinusField),
141800        TryStmt(&'ast TryStmt, TryStmtField),
141801        TsArrayType(&'ast TsArrayType, TsArrayTypeField),
141802        TsAsExpr(&'ast TsAsExpr, TsAsExprField),
141803        TsCallSignatureDecl(&'ast TsCallSignatureDecl, TsCallSignatureDeclField),
141804        TsConditionalType(&'ast TsConditionalType, TsConditionalTypeField),
141805        TsConstAssertion(&'ast TsConstAssertion, TsConstAssertionField),
141806        TsConstructSignatureDecl(
141807            &'ast TsConstructSignatureDecl,
141808            TsConstructSignatureDeclField,
141809        ),
141810        TsConstructorType(&'ast TsConstructorType, TsConstructorTypeField),
141811        TsEntityName(&'ast TsEntityName, TsEntityNameField),
141812        TsEnumDecl(&'ast TsEnumDecl, TsEnumDeclField),
141813        TsEnumMember(&'ast TsEnumMember, TsEnumMemberField),
141814        TsEnumMemberId(&'ast TsEnumMemberId, TsEnumMemberIdField),
141815        TsExportAssignment(&'ast TsExportAssignment, TsExportAssignmentField),
141816        TsExprWithTypeArgs(&'ast TsExprWithTypeArgs, TsExprWithTypeArgsField),
141817        TsExternalModuleRef(&'ast TsExternalModuleRef, TsExternalModuleRefField),
141818        TsFnOrConstructorType(&'ast TsFnOrConstructorType, TsFnOrConstructorTypeField),
141819        TsFnParam(&'ast TsFnParam, TsFnParamField),
141820        TsFnType(&'ast TsFnType, TsFnTypeField),
141821        TsGetterSignature(&'ast TsGetterSignature, TsGetterSignatureField),
141822        TsImportCallOptions(&'ast TsImportCallOptions, TsImportCallOptionsField),
141823        TsImportEqualsDecl(&'ast TsImportEqualsDecl, TsImportEqualsDeclField),
141824        TsImportType(&'ast TsImportType, TsImportTypeField),
141825        TsIndexSignature(&'ast TsIndexSignature, TsIndexSignatureField),
141826        TsIndexedAccessType(&'ast TsIndexedAccessType, TsIndexedAccessTypeField),
141827        TsInferType(&'ast TsInferType, TsInferTypeField),
141828        TsInstantiation(&'ast TsInstantiation, TsInstantiationField),
141829        TsInterfaceBody(&'ast TsInterfaceBody, TsInterfaceBodyField),
141830        TsInterfaceDecl(&'ast TsInterfaceDecl, TsInterfaceDeclField),
141831        TsIntersectionType(&'ast TsIntersectionType, TsIntersectionTypeField),
141832        TsKeywordType(&'ast TsKeywordType, TsKeywordTypeField),
141833        TsKeywordTypeKind(&'ast TsKeywordTypeKind, TsKeywordTypeKindField),
141834        TsLit(&'ast TsLit, TsLitField),
141835        TsLitType(&'ast TsLitType, TsLitTypeField),
141836        TsMappedType(&'ast TsMappedType, TsMappedTypeField),
141837        TsMethodSignature(&'ast TsMethodSignature, TsMethodSignatureField),
141838        TsModuleBlock(&'ast TsModuleBlock, TsModuleBlockField),
141839        TsModuleDecl(&'ast TsModuleDecl, TsModuleDeclField),
141840        TsModuleName(&'ast TsModuleName, TsModuleNameField),
141841        TsModuleRef(&'ast TsModuleRef, TsModuleRefField),
141842        TsNamespaceBody(&'ast TsNamespaceBody, TsNamespaceBodyField),
141843        TsNamespaceDecl(&'ast TsNamespaceDecl, TsNamespaceDeclField),
141844        TsNamespaceExportDecl(&'ast TsNamespaceExportDecl, TsNamespaceExportDeclField),
141845        TsNonNullExpr(&'ast TsNonNullExpr, TsNonNullExprField),
141846        TsOptionalType(&'ast TsOptionalType, TsOptionalTypeField),
141847        TsParamProp(&'ast TsParamProp, TsParamPropField),
141848        TsParamPropParam(&'ast TsParamPropParam, TsParamPropParamField),
141849        TsParenthesizedType(&'ast TsParenthesizedType, TsParenthesizedTypeField),
141850        TsPropertySignature(&'ast TsPropertySignature, TsPropertySignatureField),
141851        TsQualifiedName(&'ast TsQualifiedName, TsQualifiedNameField),
141852        TsRestType(&'ast TsRestType, TsRestTypeField),
141853        TsSatisfiesExpr(&'ast TsSatisfiesExpr, TsSatisfiesExprField),
141854        TsSetterSignature(&'ast TsSetterSignature, TsSetterSignatureField),
141855        TsThisType(&'ast TsThisType, TsThisTypeField),
141856        TsThisTypeOrIdent(&'ast TsThisTypeOrIdent, TsThisTypeOrIdentField),
141857        TsTplLitType(&'ast TsTplLitType, TsTplLitTypeField),
141858        TsTupleElement(&'ast TsTupleElement, TsTupleElementField),
141859        TsTupleType(&'ast TsTupleType, TsTupleTypeField),
141860        TsType(&'ast TsType, TsTypeField),
141861        TsTypeAliasDecl(&'ast TsTypeAliasDecl, TsTypeAliasDeclField),
141862        TsTypeAnn(&'ast TsTypeAnn, TsTypeAnnField),
141863        TsTypeAssertion(&'ast TsTypeAssertion, TsTypeAssertionField),
141864        TsTypeElement(&'ast TsTypeElement, TsTypeElementField),
141865        TsTypeLit(&'ast TsTypeLit, TsTypeLitField),
141866        TsTypeOperator(&'ast TsTypeOperator, TsTypeOperatorField),
141867        TsTypeOperatorOp(&'ast TsTypeOperatorOp, TsTypeOperatorOpField),
141868        TsTypeParam(&'ast TsTypeParam, TsTypeParamField),
141869        TsTypeParamDecl(&'ast TsTypeParamDecl, TsTypeParamDeclField),
141870        TsTypeParamInstantiation(
141871            &'ast TsTypeParamInstantiation,
141872            TsTypeParamInstantiationField,
141873        ),
141874        TsTypePredicate(&'ast TsTypePredicate, TsTypePredicateField),
141875        TsTypeQuery(&'ast TsTypeQuery, TsTypeQueryField),
141876        TsTypeQueryExpr(&'ast TsTypeQueryExpr, TsTypeQueryExprField),
141877        TsTypeRef(&'ast TsTypeRef, TsTypeRefField),
141878        TsUnionOrIntersectionType(
141879            &'ast TsUnionOrIntersectionType,
141880            TsUnionOrIntersectionTypeField,
141881        ),
141882        TsUnionType(&'ast TsUnionType, TsUnionTypeField),
141883        UnaryExpr(&'ast UnaryExpr, UnaryExprField),
141884        UnaryOp(&'ast UnaryOp, UnaryOpField),
141885        UpdateExpr(&'ast UpdateExpr, UpdateExprField),
141886        UpdateOp(&'ast UpdateOp, UpdateOpField),
141887        UsingDecl(&'ast UsingDecl, UsingDeclField),
141888        VarDecl(&'ast VarDecl, VarDeclField),
141889        VarDeclKind(&'ast VarDeclKind, VarDeclKindField),
141890        VarDeclOrExpr(&'ast VarDeclOrExpr, VarDeclOrExprField),
141891        VarDeclarator(&'ast VarDeclarator, VarDeclaratorField),
141892        WhileStmt(&'ast WhileStmt, WhileStmtField),
141893        WithStmt(&'ast WithStmt, WithStmtField),
141894        YieldExpr(&'ast YieldExpr, YieldExprField),
141895    }
141896    impl<'ast> ::swc_visit::NodeRef for AstParentNodeRef<'ast> {
141897        type ParentKind = AstParentKind;
141898
141899        #[inline(always)]
141900        fn kind(&self) -> AstParentKind {
141901            self.kind()
141902        }
141903
141904        fn set_index(&mut self, index: usize) {
141905            match self {
141906                Self::Accessibility(_, __field_kind) => __field_kind.set_index(index),
141907                Self::ArrayLit(_, __field_kind) => __field_kind.set_index(index),
141908                Self::ArrayPat(_, __field_kind) => __field_kind.set_index(index),
141909                Self::ArrowExpr(_, __field_kind) => __field_kind.set_index(index),
141910                Self::AssignExpr(_, __field_kind) => __field_kind.set_index(index),
141911                Self::AssignOp(_, __field_kind) => __field_kind.set_index(index),
141912                Self::AssignPat(_, __field_kind) => __field_kind.set_index(index),
141913                Self::AssignPatProp(_, __field_kind) => __field_kind.set_index(index),
141914                Self::AssignProp(_, __field_kind) => __field_kind.set_index(index),
141915                Self::AssignTarget(_, __field_kind) => __field_kind.set_index(index),
141916                Self::AssignTargetPat(_, __field_kind) => __field_kind.set_index(index),
141917                Self::AutoAccessor(_, __field_kind) => __field_kind.set_index(index),
141918                Self::AwaitExpr(_, __field_kind) => __field_kind.set_index(index),
141919                Self::BigInt(_, __field_kind) => __field_kind.set_index(index),
141920                Self::BinExpr(_, __field_kind) => __field_kind.set_index(index),
141921                Self::BinaryOp(_, __field_kind) => __field_kind.set_index(index),
141922                Self::BindingIdent(_, __field_kind) => __field_kind.set_index(index),
141923                Self::BlockStmt(_, __field_kind) => __field_kind.set_index(index),
141924                Self::BlockStmtOrExpr(_, __field_kind) => __field_kind.set_index(index),
141925                Self::Bool(_, __field_kind) => __field_kind.set_index(index),
141926                Self::BreakStmt(_, __field_kind) => __field_kind.set_index(index),
141927                Self::CallExpr(_, __field_kind) => __field_kind.set_index(index),
141928                Self::Callee(_, __field_kind) => __field_kind.set_index(index),
141929                Self::CatchClause(_, __field_kind) => __field_kind.set_index(index),
141930                Self::Class(_, __field_kind) => __field_kind.set_index(index),
141931                Self::ClassDecl(_, __field_kind) => __field_kind.set_index(index),
141932                Self::ClassExpr(_, __field_kind) => __field_kind.set_index(index),
141933                Self::ClassMember(_, __field_kind) => __field_kind.set_index(index),
141934                Self::ClassMethod(_, __field_kind) => __field_kind.set_index(index),
141935                Self::ClassProp(_, __field_kind) => __field_kind.set_index(index),
141936                Self::ComputedPropName(_, __field_kind) => __field_kind.set_index(index),
141937                Self::CondExpr(_, __field_kind) => __field_kind.set_index(index),
141938                Self::Constructor(_, __field_kind) => __field_kind.set_index(index),
141939                Self::ContinueStmt(_, __field_kind) => __field_kind.set_index(index),
141940                Self::DebuggerStmt(_, __field_kind) => __field_kind.set_index(index),
141941                Self::Decl(_, __field_kind) => __field_kind.set_index(index),
141942                Self::Decorator(_, __field_kind) => __field_kind.set_index(index),
141943                Self::DefaultDecl(_, __field_kind) => __field_kind.set_index(index),
141944                Self::DoWhileStmt(_, __field_kind) => __field_kind.set_index(index),
141945                Self::EmptyStmt(_, __field_kind) => __field_kind.set_index(index),
141946                Self::ExportAll(_, __field_kind) => __field_kind.set_index(index),
141947                Self::ExportDecl(_, __field_kind) => __field_kind.set_index(index),
141948                Self::ExportDefaultDecl(_, __field_kind) => __field_kind.set_index(index),
141949                Self::ExportDefaultExpr(_, __field_kind) => __field_kind.set_index(index),
141950                Self::ExportDefaultSpecifier(_, __field_kind) => __field_kind.set_index(index),
141951                Self::ExportNamedSpecifier(_, __field_kind) => __field_kind.set_index(index),
141952                Self::ExportNamespaceSpecifier(_, __field_kind) => __field_kind.set_index(index),
141953                Self::ExportSpecifier(_, __field_kind) => __field_kind.set_index(index),
141954                Self::Expr(_, __field_kind) => __field_kind.set_index(index),
141955                Self::ExprOrSpread(_, __field_kind) => __field_kind.set_index(index),
141956                Self::ExprStmt(_, __field_kind) => __field_kind.set_index(index),
141957                Self::FnDecl(_, __field_kind) => __field_kind.set_index(index),
141958                Self::FnExpr(_, __field_kind) => __field_kind.set_index(index),
141959                Self::ForHead(_, __field_kind) => __field_kind.set_index(index),
141960                Self::ForInStmt(_, __field_kind) => __field_kind.set_index(index),
141961                Self::ForOfStmt(_, __field_kind) => __field_kind.set_index(index),
141962                Self::ForStmt(_, __field_kind) => __field_kind.set_index(index),
141963                Self::Function(_, __field_kind) => __field_kind.set_index(index),
141964                Self::GetterProp(_, __field_kind) => __field_kind.set_index(index),
141965                Self::Ident(_, __field_kind) => __field_kind.set_index(index),
141966                Self::IdentName(_, __field_kind) => __field_kind.set_index(index),
141967                Self::IfStmt(_, __field_kind) => __field_kind.set_index(index),
141968                Self::Import(_, __field_kind) => __field_kind.set_index(index),
141969                Self::ImportDecl(_, __field_kind) => __field_kind.set_index(index),
141970                Self::ImportDefaultSpecifier(_, __field_kind) => __field_kind.set_index(index),
141971                Self::ImportNamedSpecifier(_, __field_kind) => __field_kind.set_index(index),
141972                Self::ImportPhase(_, __field_kind) => __field_kind.set_index(index),
141973                Self::ImportSpecifier(_, __field_kind) => __field_kind.set_index(index),
141974                Self::ImportStarAsSpecifier(_, __field_kind) => __field_kind.set_index(index),
141975                Self::ImportWith(_, __field_kind) => __field_kind.set_index(index),
141976                Self::ImportWithItem(_, __field_kind) => __field_kind.set_index(index),
141977                Self::Invalid(_, __field_kind) => __field_kind.set_index(index),
141978                Self::JSXAttr(_, __field_kind) => __field_kind.set_index(index),
141979                Self::JSXAttrName(_, __field_kind) => __field_kind.set_index(index),
141980                Self::JSXAttrOrSpread(_, __field_kind) => __field_kind.set_index(index),
141981                Self::JSXAttrValue(_, __field_kind) => __field_kind.set_index(index),
141982                Self::JSXClosingElement(_, __field_kind) => __field_kind.set_index(index),
141983                Self::JSXClosingFragment(_, __field_kind) => __field_kind.set_index(index),
141984                Self::JSXElement(_, __field_kind) => __field_kind.set_index(index),
141985                Self::JSXElementChild(_, __field_kind) => __field_kind.set_index(index),
141986                Self::JSXElementName(_, __field_kind) => __field_kind.set_index(index),
141987                Self::JSXEmptyExpr(_, __field_kind) => __field_kind.set_index(index),
141988                Self::JSXExpr(_, __field_kind) => __field_kind.set_index(index),
141989                Self::JSXExprContainer(_, __field_kind) => __field_kind.set_index(index),
141990                Self::JSXFragment(_, __field_kind) => __field_kind.set_index(index),
141991                Self::JSXMemberExpr(_, __field_kind) => __field_kind.set_index(index),
141992                Self::JSXNamespacedName(_, __field_kind) => __field_kind.set_index(index),
141993                Self::JSXObject(_, __field_kind) => __field_kind.set_index(index),
141994                Self::JSXOpeningElement(_, __field_kind) => __field_kind.set_index(index),
141995                Self::JSXOpeningFragment(_, __field_kind) => __field_kind.set_index(index),
141996                Self::JSXSpreadChild(_, __field_kind) => __field_kind.set_index(index),
141997                Self::JSXText(_, __field_kind) => __field_kind.set_index(index),
141998                Self::Key(_, __field_kind) => __field_kind.set_index(index),
141999                Self::KeyValuePatProp(_, __field_kind) => __field_kind.set_index(index),
142000                Self::KeyValueProp(_, __field_kind) => __field_kind.set_index(index),
142001                Self::LabeledStmt(_, __field_kind) => __field_kind.set_index(index),
142002                Self::Lit(_, __field_kind) => __field_kind.set_index(index),
142003                Self::MemberExpr(_, __field_kind) => __field_kind.set_index(index),
142004                Self::MemberProp(_, __field_kind) => __field_kind.set_index(index),
142005                Self::MetaPropExpr(_, __field_kind) => __field_kind.set_index(index),
142006                Self::MetaPropKind(_, __field_kind) => __field_kind.set_index(index),
142007                Self::MethodKind(_, __field_kind) => __field_kind.set_index(index),
142008                Self::MethodProp(_, __field_kind) => __field_kind.set_index(index),
142009                Self::Module(_, __field_kind) => __field_kind.set_index(index),
142010                Self::ModuleDecl(_, __field_kind) => __field_kind.set_index(index),
142011                Self::ModuleExportName(_, __field_kind) => __field_kind.set_index(index),
142012                Self::ModuleItem(_, __field_kind) => __field_kind.set_index(index),
142013                Self::NamedExport(_, __field_kind) => __field_kind.set_index(index),
142014                Self::NewExpr(_, __field_kind) => __field_kind.set_index(index),
142015                Self::Null(_, __field_kind) => __field_kind.set_index(index),
142016                Self::Number(_, __field_kind) => __field_kind.set_index(index),
142017                Self::ObjectLit(_, __field_kind) => __field_kind.set_index(index),
142018                Self::ObjectPat(_, __field_kind) => __field_kind.set_index(index),
142019                Self::ObjectPatProp(_, __field_kind) => __field_kind.set_index(index),
142020                Self::OptCall(_, __field_kind) => __field_kind.set_index(index),
142021                Self::OptChainBase(_, __field_kind) => __field_kind.set_index(index),
142022                Self::OptChainExpr(_, __field_kind) => __field_kind.set_index(index),
142023                Self::Param(_, __field_kind) => __field_kind.set_index(index),
142024                Self::ParamOrTsParamProp(_, __field_kind) => __field_kind.set_index(index),
142025                Self::ParenExpr(_, __field_kind) => __field_kind.set_index(index),
142026                Self::Pat(_, __field_kind) => __field_kind.set_index(index),
142027                Self::PrivateMethod(_, __field_kind) => __field_kind.set_index(index),
142028                Self::PrivateName(_, __field_kind) => __field_kind.set_index(index),
142029                Self::PrivateProp(_, __field_kind) => __field_kind.set_index(index),
142030                Self::Program(_, __field_kind) => __field_kind.set_index(index),
142031                Self::Prop(_, __field_kind) => __field_kind.set_index(index),
142032                Self::PropName(_, __field_kind) => __field_kind.set_index(index),
142033                Self::PropOrSpread(_, __field_kind) => __field_kind.set_index(index),
142034                Self::Regex(_, __field_kind) => __field_kind.set_index(index),
142035                Self::RestPat(_, __field_kind) => __field_kind.set_index(index),
142036                Self::ReturnStmt(_, __field_kind) => __field_kind.set_index(index),
142037                Self::Script(_, __field_kind) => __field_kind.set_index(index),
142038                Self::SeqExpr(_, __field_kind) => __field_kind.set_index(index),
142039                Self::SetterProp(_, __field_kind) => __field_kind.set_index(index),
142040                Self::SimpleAssignTarget(_, __field_kind) => __field_kind.set_index(index),
142041                Self::SpreadElement(_, __field_kind) => __field_kind.set_index(index),
142042                Self::StaticBlock(_, __field_kind) => __field_kind.set_index(index),
142043                Self::Stmt(_, __field_kind) => __field_kind.set_index(index),
142044                Self::Str(_, __field_kind) => __field_kind.set_index(index),
142045                Self::Super(_, __field_kind) => __field_kind.set_index(index),
142046                Self::SuperProp(_, __field_kind) => __field_kind.set_index(index),
142047                Self::SuperPropExpr(_, __field_kind) => __field_kind.set_index(index),
142048                Self::SwitchCase(_, __field_kind) => __field_kind.set_index(index),
142049                Self::SwitchStmt(_, __field_kind) => __field_kind.set_index(index),
142050                Self::TaggedTpl(_, __field_kind) => __field_kind.set_index(index),
142051                Self::ThisExpr(_, __field_kind) => __field_kind.set_index(index),
142052                Self::ThrowStmt(_, __field_kind) => __field_kind.set_index(index),
142053                Self::Tpl(_, __field_kind) => __field_kind.set_index(index),
142054                Self::TplElement(_, __field_kind) => __field_kind.set_index(index),
142055                Self::TruePlusMinus(_, __field_kind) => __field_kind.set_index(index),
142056                Self::TryStmt(_, __field_kind) => __field_kind.set_index(index),
142057                Self::TsArrayType(_, __field_kind) => __field_kind.set_index(index),
142058                Self::TsAsExpr(_, __field_kind) => __field_kind.set_index(index),
142059                Self::TsCallSignatureDecl(_, __field_kind) => __field_kind.set_index(index),
142060                Self::TsConditionalType(_, __field_kind) => __field_kind.set_index(index),
142061                Self::TsConstAssertion(_, __field_kind) => __field_kind.set_index(index),
142062                Self::TsConstructSignatureDecl(_, __field_kind) => __field_kind.set_index(index),
142063                Self::TsConstructorType(_, __field_kind) => __field_kind.set_index(index),
142064                Self::TsEntityName(_, __field_kind) => __field_kind.set_index(index),
142065                Self::TsEnumDecl(_, __field_kind) => __field_kind.set_index(index),
142066                Self::TsEnumMember(_, __field_kind) => __field_kind.set_index(index),
142067                Self::TsEnumMemberId(_, __field_kind) => __field_kind.set_index(index),
142068                Self::TsExportAssignment(_, __field_kind) => __field_kind.set_index(index),
142069                Self::TsExprWithTypeArgs(_, __field_kind) => __field_kind.set_index(index),
142070                Self::TsExternalModuleRef(_, __field_kind) => __field_kind.set_index(index),
142071                Self::TsFnOrConstructorType(_, __field_kind) => __field_kind.set_index(index),
142072                Self::TsFnParam(_, __field_kind) => __field_kind.set_index(index),
142073                Self::TsFnType(_, __field_kind) => __field_kind.set_index(index),
142074                Self::TsGetterSignature(_, __field_kind) => __field_kind.set_index(index),
142075                Self::TsImportCallOptions(_, __field_kind) => __field_kind.set_index(index),
142076                Self::TsImportEqualsDecl(_, __field_kind) => __field_kind.set_index(index),
142077                Self::TsImportType(_, __field_kind) => __field_kind.set_index(index),
142078                Self::TsIndexSignature(_, __field_kind) => __field_kind.set_index(index),
142079                Self::TsIndexedAccessType(_, __field_kind) => __field_kind.set_index(index),
142080                Self::TsInferType(_, __field_kind) => __field_kind.set_index(index),
142081                Self::TsInstantiation(_, __field_kind) => __field_kind.set_index(index),
142082                Self::TsInterfaceBody(_, __field_kind) => __field_kind.set_index(index),
142083                Self::TsInterfaceDecl(_, __field_kind) => __field_kind.set_index(index),
142084                Self::TsIntersectionType(_, __field_kind) => __field_kind.set_index(index),
142085                Self::TsKeywordType(_, __field_kind) => __field_kind.set_index(index),
142086                Self::TsKeywordTypeKind(_, __field_kind) => __field_kind.set_index(index),
142087                Self::TsLit(_, __field_kind) => __field_kind.set_index(index),
142088                Self::TsLitType(_, __field_kind) => __field_kind.set_index(index),
142089                Self::TsMappedType(_, __field_kind) => __field_kind.set_index(index),
142090                Self::TsMethodSignature(_, __field_kind) => __field_kind.set_index(index),
142091                Self::TsModuleBlock(_, __field_kind) => __field_kind.set_index(index),
142092                Self::TsModuleDecl(_, __field_kind) => __field_kind.set_index(index),
142093                Self::TsModuleName(_, __field_kind) => __field_kind.set_index(index),
142094                Self::TsModuleRef(_, __field_kind) => __field_kind.set_index(index),
142095                Self::TsNamespaceBody(_, __field_kind) => __field_kind.set_index(index),
142096                Self::TsNamespaceDecl(_, __field_kind) => __field_kind.set_index(index),
142097                Self::TsNamespaceExportDecl(_, __field_kind) => __field_kind.set_index(index),
142098                Self::TsNonNullExpr(_, __field_kind) => __field_kind.set_index(index),
142099                Self::TsOptionalType(_, __field_kind) => __field_kind.set_index(index),
142100                Self::TsParamProp(_, __field_kind) => __field_kind.set_index(index),
142101                Self::TsParamPropParam(_, __field_kind) => __field_kind.set_index(index),
142102                Self::TsParenthesizedType(_, __field_kind) => __field_kind.set_index(index),
142103                Self::TsPropertySignature(_, __field_kind) => __field_kind.set_index(index),
142104                Self::TsQualifiedName(_, __field_kind) => __field_kind.set_index(index),
142105                Self::TsRestType(_, __field_kind) => __field_kind.set_index(index),
142106                Self::TsSatisfiesExpr(_, __field_kind) => __field_kind.set_index(index),
142107                Self::TsSetterSignature(_, __field_kind) => __field_kind.set_index(index),
142108                Self::TsThisType(_, __field_kind) => __field_kind.set_index(index),
142109                Self::TsThisTypeOrIdent(_, __field_kind) => __field_kind.set_index(index),
142110                Self::TsTplLitType(_, __field_kind) => __field_kind.set_index(index),
142111                Self::TsTupleElement(_, __field_kind) => __field_kind.set_index(index),
142112                Self::TsTupleType(_, __field_kind) => __field_kind.set_index(index),
142113                Self::TsType(_, __field_kind) => __field_kind.set_index(index),
142114                Self::TsTypeAliasDecl(_, __field_kind) => __field_kind.set_index(index),
142115                Self::TsTypeAnn(_, __field_kind) => __field_kind.set_index(index),
142116                Self::TsTypeAssertion(_, __field_kind) => __field_kind.set_index(index),
142117                Self::TsTypeElement(_, __field_kind) => __field_kind.set_index(index),
142118                Self::TsTypeLit(_, __field_kind) => __field_kind.set_index(index),
142119                Self::TsTypeOperator(_, __field_kind) => __field_kind.set_index(index),
142120                Self::TsTypeOperatorOp(_, __field_kind) => __field_kind.set_index(index),
142121                Self::TsTypeParam(_, __field_kind) => __field_kind.set_index(index),
142122                Self::TsTypeParamDecl(_, __field_kind) => __field_kind.set_index(index),
142123                Self::TsTypeParamInstantiation(_, __field_kind) => __field_kind.set_index(index),
142124                Self::TsTypePredicate(_, __field_kind) => __field_kind.set_index(index),
142125                Self::TsTypeQuery(_, __field_kind) => __field_kind.set_index(index),
142126                Self::TsTypeQueryExpr(_, __field_kind) => __field_kind.set_index(index),
142127                Self::TsTypeRef(_, __field_kind) => __field_kind.set_index(index),
142128                Self::TsUnionOrIntersectionType(_, __field_kind) => __field_kind.set_index(index),
142129                Self::TsUnionType(_, __field_kind) => __field_kind.set_index(index),
142130                Self::UnaryExpr(_, __field_kind) => __field_kind.set_index(index),
142131                Self::UnaryOp(_, __field_kind) => __field_kind.set_index(index),
142132                Self::UpdateExpr(_, __field_kind) => __field_kind.set_index(index),
142133                Self::UpdateOp(_, __field_kind) => __field_kind.set_index(index),
142134                Self::UsingDecl(_, __field_kind) => __field_kind.set_index(index),
142135                Self::VarDecl(_, __field_kind) => __field_kind.set_index(index),
142136                Self::VarDeclKind(_, __field_kind) => __field_kind.set_index(index),
142137                Self::VarDeclOrExpr(_, __field_kind) => __field_kind.set_index(index),
142138                Self::VarDeclarator(_, __field_kind) => __field_kind.set_index(index),
142139                Self::WhileStmt(_, __field_kind) => __field_kind.set_index(index),
142140                Self::WithStmt(_, __field_kind) => __field_kind.set_index(index),
142141                Self::YieldExpr(_, __field_kind) => __field_kind.set_index(index),
142142            }
142143        }
142144    }
142145    #[cfg(any(docsrs, feature = "path"))]
142146    impl<'ast> AstParentNodeRef<'ast> {
142147        #[inline]
142148        pub fn kind(&self) -> AstParentKind {
142149            match self {
142150                Self::Accessibility(_, __field_kind) => AstParentKind::Accessibility(*__field_kind),
142151                Self::ArrayLit(_, __field_kind) => AstParentKind::ArrayLit(*__field_kind),
142152                Self::ArrayPat(_, __field_kind) => AstParentKind::ArrayPat(*__field_kind),
142153                Self::ArrowExpr(_, __field_kind) => AstParentKind::ArrowExpr(*__field_kind),
142154                Self::AssignExpr(_, __field_kind) => AstParentKind::AssignExpr(*__field_kind),
142155                Self::AssignOp(_, __field_kind) => AstParentKind::AssignOp(*__field_kind),
142156                Self::AssignPat(_, __field_kind) => AstParentKind::AssignPat(*__field_kind),
142157                Self::AssignPatProp(_, __field_kind) => AstParentKind::AssignPatProp(*__field_kind),
142158                Self::AssignProp(_, __field_kind) => AstParentKind::AssignProp(*__field_kind),
142159                Self::AssignTarget(_, __field_kind) => AstParentKind::AssignTarget(*__field_kind),
142160                Self::AssignTargetPat(_, __field_kind) => {
142161                    AstParentKind::AssignTargetPat(*__field_kind)
142162                }
142163                Self::AutoAccessor(_, __field_kind) => AstParentKind::AutoAccessor(*__field_kind),
142164                Self::AwaitExpr(_, __field_kind) => AstParentKind::AwaitExpr(*__field_kind),
142165                Self::BigInt(_, __field_kind) => AstParentKind::BigInt(*__field_kind),
142166                Self::BinExpr(_, __field_kind) => AstParentKind::BinExpr(*__field_kind),
142167                Self::BinaryOp(_, __field_kind) => AstParentKind::BinaryOp(*__field_kind),
142168                Self::BindingIdent(_, __field_kind) => AstParentKind::BindingIdent(*__field_kind),
142169                Self::BlockStmt(_, __field_kind) => AstParentKind::BlockStmt(*__field_kind),
142170                Self::BlockStmtOrExpr(_, __field_kind) => {
142171                    AstParentKind::BlockStmtOrExpr(*__field_kind)
142172                }
142173                Self::Bool(_, __field_kind) => AstParentKind::Bool(*__field_kind),
142174                Self::BreakStmt(_, __field_kind) => AstParentKind::BreakStmt(*__field_kind),
142175                Self::CallExpr(_, __field_kind) => AstParentKind::CallExpr(*__field_kind),
142176                Self::Callee(_, __field_kind) => AstParentKind::Callee(*__field_kind),
142177                Self::CatchClause(_, __field_kind) => AstParentKind::CatchClause(*__field_kind),
142178                Self::Class(_, __field_kind) => AstParentKind::Class(*__field_kind),
142179                Self::ClassDecl(_, __field_kind) => AstParentKind::ClassDecl(*__field_kind),
142180                Self::ClassExpr(_, __field_kind) => AstParentKind::ClassExpr(*__field_kind),
142181                Self::ClassMember(_, __field_kind) => AstParentKind::ClassMember(*__field_kind),
142182                Self::ClassMethod(_, __field_kind) => AstParentKind::ClassMethod(*__field_kind),
142183                Self::ClassProp(_, __field_kind) => AstParentKind::ClassProp(*__field_kind),
142184                Self::ComputedPropName(_, __field_kind) => {
142185                    AstParentKind::ComputedPropName(*__field_kind)
142186                }
142187                Self::CondExpr(_, __field_kind) => AstParentKind::CondExpr(*__field_kind),
142188                Self::Constructor(_, __field_kind) => AstParentKind::Constructor(*__field_kind),
142189                Self::ContinueStmt(_, __field_kind) => AstParentKind::ContinueStmt(*__field_kind),
142190                Self::DebuggerStmt(_, __field_kind) => AstParentKind::DebuggerStmt(*__field_kind),
142191                Self::Decl(_, __field_kind) => AstParentKind::Decl(*__field_kind),
142192                Self::Decorator(_, __field_kind) => AstParentKind::Decorator(*__field_kind),
142193                Self::DefaultDecl(_, __field_kind) => AstParentKind::DefaultDecl(*__field_kind),
142194                Self::DoWhileStmt(_, __field_kind) => AstParentKind::DoWhileStmt(*__field_kind),
142195                Self::EmptyStmt(_, __field_kind) => AstParentKind::EmptyStmt(*__field_kind),
142196                Self::ExportAll(_, __field_kind) => AstParentKind::ExportAll(*__field_kind),
142197                Self::ExportDecl(_, __field_kind) => AstParentKind::ExportDecl(*__field_kind),
142198                Self::ExportDefaultDecl(_, __field_kind) => {
142199                    AstParentKind::ExportDefaultDecl(*__field_kind)
142200                }
142201                Self::ExportDefaultExpr(_, __field_kind) => {
142202                    AstParentKind::ExportDefaultExpr(*__field_kind)
142203                }
142204                Self::ExportDefaultSpecifier(_, __field_kind) => {
142205                    AstParentKind::ExportDefaultSpecifier(*__field_kind)
142206                }
142207                Self::ExportNamedSpecifier(_, __field_kind) => {
142208                    AstParentKind::ExportNamedSpecifier(*__field_kind)
142209                }
142210                Self::ExportNamespaceSpecifier(_, __field_kind) => {
142211                    AstParentKind::ExportNamespaceSpecifier(*__field_kind)
142212                }
142213                Self::ExportSpecifier(_, __field_kind) => {
142214                    AstParentKind::ExportSpecifier(*__field_kind)
142215                }
142216                Self::Expr(_, __field_kind) => AstParentKind::Expr(*__field_kind),
142217                Self::ExprOrSpread(_, __field_kind) => AstParentKind::ExprOrSpread(*__field_kind),
142218                Self::ExprStmt(_, __field_kind) => AstParentKind::ExprStmt(*__field_kind),
142219                Self::FnDecl(_, __field_kind) => AstParentKind::FnDecl(*__field_kind),
142220                Self::FnExpr(_, __field_kind) => AstParentKind::FnExpr(*__field_kind),
142221                Self::ForHead(_, __field_kind) => AstParentKind::ForHead(*__field_kind),
142222                Self::ForInStmt(_, __field_kind) => AstParentKind::ForInStmt(*__field_kind),
142223                Self::ForOfStmt(_, __field_kind) => AstParentKind::ForOfStmt(*__field_kind),
142224                Self::ForStmt(_, __field_kind) => AstParentKind::ForStmt(*__field_kind),
142225                Self::Function(_, __field_kind) => AstParentKind::Function(*__field_kind),
142226                Self::GetterProp(_, __field_kind) => AstParentKind::GetterProp(*__field_kind),
142227                Self::Ident(_, __field_kind) => AstParentKind::Ident(*__field_kind),
142228                Self::IdentName(_, __field_kind) => AstParentKind::IdentName(*__field_kind),
142229                Self::IfStmt(_, __field_kind) => AstParentKind::IfStmt(*__field_kind),
142230                Self::Import(_, __field_kind) => AstParentKind::Import(*__field_kind),
142231                Self::ImportDecl(_, __field_kind) => AstParentKind::ImportDecl(*__field_kind),
142232                Self::ImportDefaultSpecifier(_, __field_kind) => {
142233                    AstParentKind::ImportDefaultSpecifier(*__field_kind)
142234                }
142235                Self::ImportNamedSpecifier(_, __field_kind) => {
142236                    AstParentKind::ImportNamedSpecifier(*__field_kind)
142237                }
142238                Self::ImportPhase(_, __field_kind) => AstParentKind::ImportPhase(*__field_kind),
142239                Self::ImportSpecifier(_, __field_kind) => {
142240                    AstParentKind::ImportSpecifier(*__field_kind)
142241                }
142242                Self::ImportStarAsSpecifier(_, __field_kind) => {
142243                    AstParentKind::ImportStarAsSpecifier(*__field_kind)
142244                }
142245                Self::ImportWith(_, __field_kind) => AstParentKind::ImportWith(*__field_kind),
142246                Self::ImportWithItem(_, __field_kind) => {
142247                    AstParentKind::ImportWithItem(*__field_kind)
142248                }
142249                Self::Invalid(_, __field_kind) => AstParentKind::Invalid(*__field_kind),
142250                Self::JSXAttr(_, __field_kind) => AstParentKind::JSXAttr(*__field_kind),
142251                Self::JSXAttrName(_, __field_kind) => AstParentKind::JSXAttrName(*__field_kind),
142252                Self::JSXAttrOrSpread(_, __field_kind) => {
142253                    AstParentKind::JSXAttrOrSpread(*__field_kind)
142254                }
142255                Self::JSXAttrValue(_, __field_kind) => AstParentKind::JSXAttrValue(*__field_kind),
142256                Self::JSXClosingElement(_, __field_kind) => {
142257                    AstParentKind::JSXClosingElement(*__field_kind)
142258                }
142259                Self::JSXClosingFragment(_, __field_kind) => {
142260                    AstParentKind::JSXClosingFragment(*__field_kind)
142261                }
142262                Self::JSXElement(_, __field_kind) => AstParentKind::JSXElement(*__field_kind),
142263                Self::JSXElementChild(_, __field_kind) => {
142264                    AstParentKind::JSXElementChild(*__field_kind)
142265                }
142266                Self::JSXElementName(_, __field_kind) => {
142267                    AstParentKind::JSXElementName(*__field_kind)
142268                }
142269                Self::JSXEmptyExpr(_, __field_kind) => AstParentKind::JSXEmptyExpr(*__field_kind),
142270                Self::JSXExpr(_, __field_kind) => AstParentKind::JSXExpr(*__field_kind),
142271                Self::JSXExprContainer(_, __field_kind) => {
142272                    AstParentKind::JSXExprContainer(*__field_kind)
142273                }
142274                Self::JSXFragment(_, __field_kind) => AstParentKind::JSXFragment(*__field_kind),
142275                Self::JSXMemberExpr(_, __field_kind) => AstParentKind::JSXMemberExpr(*__field_kind),
142276                Self::JSXNamespacedName(_, __field_kind) => {
142277                    AstParentKind::JSXNamespacedName(*__field_kind)
142278                }
142279                Self::JSXObject(_, __field_kind) => AstParentKind::JSXObject(*__field_kind),
142280                Self::JSXOpeningElement(_, __field_kind) => {
142281                    AstParentKind::JSXOpeningElement(*__field_kind)
142282                }
142283                Self::JSXOpeningFragment(_, __field_kind) => {
142284                    AstParentKind::JSXOpeningFragment(*__field_kind)
142285                }
142286                Self::JSXSpreadChild(_, __field_kind) => {
142287                    AstParentKind::JSXSpreadChild(*__field_kind)
142288                }
142289                Self::JSXText(_, __field_kind) => AstParentKind::JSXText(*__field_kind),
142290                Self::Key(_, __field_kind) => AstParentKind::Key(*__field_kind),
142291                Self::KeyValuePatProp(_, __field_kind) => {
142292                    AstParentKind::KeyValuePatProp(*__field_kind)
142293                }
142294                Self::KeyValueProp(_, __field_kind) => AstParentKind::KeyValueProp(*__field_kind),
142295                Self::LabeledStmt(_, __field_kind) => AstParentKind::LabeledStmt(*__field_kind),
142296                Self::Lit(_, __field_kind) => AstParentKind::Lit(*__field_kind),
142297                Self::MemberExpr(_, __field_kind) => AstParentKind::MemberExpr(*__field_kind),
142298                Self::MemberProp(_, __field_kind) => AstParentKind::MemberProp(*__field_kind),
142299                Self::MetaPropExpr(_, __field_kind) => AstParentKind::MetaPropExpr(*__field_kind),
142300                Self::MetaPropKind(_, __field_kind) => AstParentKind::MetaPropKind(*__field_kind),
142301                Self::MethodKind(_, __field_kind) => AstParentKind::MethodKind(*__field_kind),
142302                Self::MethodProp(_, __field_kind) => AstParentKind::MethodProp(*__field_kind),
142303                Self::Module(_, __field_kind) => AstParentKind::Module(*__field_kind),
142304                Self::ModuleDecl(_, __field_kind) => AstParentKind::ModuleDecl(*__field_kind),
142305                Self::ModuleExportName(_, __field_kind) => {
142306                    AstParentKind::ModuleExportName(*__field_kind)
142307                }
142308                Self::ModuleItem(_, __field_kind) => AstParentKind::ModuleItem(*__field_kind),
142309                Self::NamedExport(_, __field_kind) => AstParentKind::NamedExport(*__field_kind),
142310                Self::NewExpr(_, __field_kind) => AstParentKind::NewExpr(*__field_kind),
142311                Self::Null(_, __field_kind) => AstParentKind::Null(*__field_kind),
142312                Self::Number(_, __field_kind) => AstParentKind::Number(*__field_kind),
142313                Self::ObjectLit(_, __field_kind) => AstParentKind::ObjectLit(*__field_kind),
142314                Self::ObjectPat(_, __field_kind) => AstParentKind::ObjectPat(*__field_kind),
142315                Self::ObjectPatProp(_, __field_kind) => AstParentKind::ObjectPatProp(*__field_kind),
142316                Self::OptCall(_, __field_kind) => AstParentKind::OptCall(*__field_kind),
142317                Self::OptChainBase(_, __field_kind) => AstParentKind::OptChainBase(*__field_kind),
142318                Self::OptChainExpr(_, __field_kind) => AstParentKind::OptChainExpr(*__field_kind),
142319                Self::Param(_, __field_kind) => AstParentKind::Param(*__field_kind),
142320                Self::ParamOrTsParamProp(_, __field_kind) => {
142321                    AstParentKind::ParamOrTsParamProp(*__field_kind)
142322                }
142323                Self::ParenExpr(_, __field_kind) => AstParentKind::ParenExpr(*__field_kind),
142324                Self::Pat(_, __field_kind) => AstParentKind::Pat(*__field_kind),
142325                Self::PrivateMethod(_, __field_kind) => AstParentKind::PrivateMethod(*__field_kind),
142326                Self::PrivateName(_, __field_kind) => AstParentKind::PrivateName(*__field_kind),
142327                Self::PrivateProp(_, __field_kind) => AstParentKind::PrivateProp(*__field_kind),
142328                Self::Program(_, __field_kind) => AstParentKind::Program(*__field_kind),
142329                Self::Prop(_, __field_kind) => AstParentKind::Prop(*__field_kind),
142330                Self::PropName(_, __field_kind) => AstParentKind::PropName(*__field_kind),
142331                Self::PropOrSpread(_, __field_kind) => AstParentKind::PropOrSpread(*__field_kind),
142332                Self::Regex(_, __field_kind) => AstParentKind::Regex(*__field_kind),
142333                Self::RestPat(_, __field_kind) => AstParentKind::RestPat(*__field_kind),
142334                Self::ReturnStmt(_, __field_kind) => AstParentKind::ReturnStmt(*__field_kind),
142335                Self::Script(_, __field_kind) => AstParentKind::Script(*__field_kind),
142336                Self::SeqExpr(_, __field_kind) => AstParentKind::SeqExpr(*__field_kind),
142337                Self::SetterProp(_, __field_kind) => AstParentKind::SetterProp(*__field_kind),
142338                Self::SimpleAssignTarget(_, __field_kind) => {
142339                    AstParentKind::SimpleAssignTarget(*__field_kind)
142340                }
142341                Self::SpreadElement(_, __field_kind) => AstParentKind::SpreadElement(*__field_kind),
142342                Self::StaticBlock(_, __field_kind) => AstParentKind::StaticBlock(*__field_kind),
142343                Self::Stmt(_, __field_kind) => AstParentKind::Stmt(*__field_kind),
142344                Self::Str(_, __field_kind) => AstParentKind::Str(*__field_kind),
142345                Self::Super(_, __field_kind) => AstParentKind::Super(*__field_kind),
142346                Self::SuperProp(_, __field_kind) => AstParentKind::SuperProp(*__field_kind),
142347                Self::SuperPropExpr(_, __field_kind) => AstParentKind::SuperPropExpr(*__field_kind),
142348                Self::SwitchCase(_, __field_kind) => AstParentKind::SwitchCase(*__field_kind),
142349                Self::SwitchStmt(_, __field_kind) => AstParentKind::SwitchStmt(*__field_kind),
142350                Self::TaggedTpl(_, __field_kind) => AstParentKind::TaggedTpl(*__field_kind),
142351                Self::ThisExpr(_, __field_kind) => AstParentKind::ThisExpr(*__field_kind),
142352                Self::ThrowStmt(_, __field_kind) => AstParentKind::ThrowStmt(*__field_kind),
142353                Self::Tpl(_, __field_kind) => AstParentKind::Tpl(*__field_kind),
142354                Self::TplElement(_, __field_kind) => AstParentKind::TplElement(*__field_kind),
142355                Self::TruePlusMinus(_, __field_kind) => AstParentKind::TruePlusMinus(*__field_kind),
142356                Self::TryStmt(_, __field_kind) => AstParentKind::TryStmt(*__field_kind),
142357                Self::TsArrayType(_, __field_kind) => AstParentKind::TsArrayType(*__field_kind),
142358                Self::TsAsExpr(_, __field_kind) => AstParentKind::TsAsExpr(*__field_kind),
142359                Self::TsCallSignatureDecl(_, __field_kind) => {
142360                    AstParentKind::TsCallSignatureDecl(*__field_kind)
142361                }
142362                Self::TsConditionalType(_, __field_kind) => {
142363                    AstParentKind::TsConditionalType(*__field_kind)
142364                }
142365                Self::TsConstAssertion(_, __field_kind) => {
142366                    AstParentKind::TsConstAssertion(*__field_kind)
142367                }
142368                Self::TsConstructSignatureDecl(_, __field_kind) => {
142369                    AstParentKind::TsConstructSignatureDecl(*__field_kind)
142370                }
142371                Self::TsConstructorType(_, __field_kind) => {
142372                    AstParentKind::TsConstructorType(*__field_kind)
142373                }
142374                Self::TsEntityName(_, __field_kind) => AstParentKind::TsEntityName(*__field_kind),
142375                Self::TsEnumDecl(_, __field_kind) => AstParentKind::TsEnumDecl(*__field_kind),
142376                Self::TsEnumMember(_, __field_kind) => AstParentKind::TsEnumMember(*__field_kind),
142377                Self::TsEnumMemberId(_, __field_kind) => {
142378                    AstParentKind::TsEnumMemberId(*__field_kind)
142379                }
142380                Self::TsExportAssignment(_, __field_kind) => {
142381                    AstParentKind::TsExportAssignment(*__field_kind)
142382                }
142383                Self::TsExprWithTypeArgs(_, __field_kind) => {
142384                    AstParentKind::TsExprWithTypeArgs(*__field_kind)
142385                }
142386                Self::TsExternalModuleRef(_, __field_kind) => {
142387                    AstParentKind::TsExternalModuleRef(*__field_kind)
142388                }
142389                Self::TsFnOrConstructorType(_, __field_kind) => {
142390                    AstParentKind::TsFnOrConstructorType(*__field_kind)
142391                }
142392                Self::TsFnParam(_, __field_kind) => AstParentKind::TsFnParam(*__field_kind),
142393                Self::TsFnType(_, __field_kind) => AstParentKind::TsFnType(*__field_kind),
142394                Self::TsGetterSignature(_, __field_kind) => {
142395                    AstParentKind::TsGetterSignature(*__field_kind)
142396                }
142397                Self::TsImportCallOptions(_, __field_kind) => {
142398                    AstParentKind::TsImportCallOptions(*__field_kind)
142399                }
142400                Self::TsImportEqualsDecl(_, __field_kind) => {
142401                    AstParentKind::TsImportEqualsDecl(*__field_kind)
142402                }
142403                Self::TsImportType(_, __field_kind) => AstParentKind::TsImportType(*__field_kind),
142404                Self::TsIndexSignature(_, __field_kind) => {
142405                    AstParentKind::TsIndexSignature(*__field_kind)
142406                }
142407                Self::TsIndexedAccessType(_, __field_kind) => {
142408                    AstParentKind::TsIndexedAccessType(*__field_kind)
142409                }
142410                Self::TsInferType(_, __field_kind) => AstParentKind::TsInferType(*__field_kind),
142411                Self::TsInstantiation(_, __field_kind) => {
142412                    AstParentKind::TsInstantiation(*__field_kind)
142413                }
142414                Self::TsInterfaceBody(_, __field_kind) => {
142415                    AstParentKind::TsInterfaceBody(*__field_kind)
142416                }
142417                Self::TsInterfaceDecl(_, __field_kind) => {
142418                    AstParentKind::TsInterfaceDecl(*__field_kind)
142419                }
142420                Self::TsIntersectionType(_, __field_kind) => {
142421                    AstParentKind::TsIntersectionType(*__field_kind)
142422                }
142423                Self::TsKeywordType(_, __field_kind) => AstParentKind::TsKeywordType(*__field_kind),
142424                Self::TsKeywordTypeKind(_, __field_kind) => {
142425                    AstParentKind::TsKeywordTypeKind(*__field_kind)
142426                }
142427                Self::TsLit(_, __field_kind) => AstParentKind::TsLit(*__field_kind),
142428                Self::TsLitType(_, __field_kind) => AstParentKind::TsLitType(*__field_kind),
142429                Self::TsMappedType(_, __field_kind) => AstParentKind::TsMappedType(*__field_kind),
142430                Self::TsMethodSignature(_, __field_kind) => {
142431                    AstParentKind::TsMethodSignature(*__field_kind)
142432                }
142433                Self::TsModuleBlock(_, __field_kind) => AstParentKind::TsModuleBlock(*__field_kind),
142434                Self::TsModuleDecl(_, __field_kind) => AstParentKind::TsModuleDecl(*__field_kind),
142435                Self::TsModuleName(_, __field_kind) => AstParentKind::TsModuleName(*__field_kind),
142436                Self::TsModuleRef(_, __field_kind) => AstParentKind::TsModuleRef(*__field_kind),
142437                Self::TsNamespaceBody(_, __field_kind) => {
142438                    AstParentKind::TsNamespaceBody(*__field_kind)
142439                }
142440                Self::TsNamespaceDecl(_, __field_kind) => {
142441                    AstParentKind::TsNamespaceDecl(*__field_kind)
142442                }
142443                Self::TsNamespaceExportDecl(_, __field_kind) => {
142444                    AstParentKind::TsNamespaceExportDecl(*__field_kind)
142445                }
142446                Self::TsNonNullExpr(_, __field_kind) => AstParentKind::TsNonNullExpr(*__field_kind),
142447                Self::TsOptionalType(_, __field_kind) => {
142448                    AstParentKind::TsOptionalType(*__field_kind)
142449                }
142450                Self::TsParamProp(_, __field_kind) => AstParentKind::TsParamProp(*__field_kind),
142451                Self::TsParamPropParam(_, __field_kind) => {
142452                    AstParentKind::TsParamPropParam(*__field_kind)
142453                }
142454                Self::TsParenthesizedType(_, __field_kind) => {
142455                    AstParentKind::TsParenthesizedType(*__field_kind)
142456                }
142457                Self::TsPropertySignature(_, __field_kind) => {
142458                    AstParentKind::TsPropertySignature(*__field_kind)
142459                }
142460                Self::TsQualifiedName(_, __field_kind) => {
142461                    AstParentKind::TsQualifiedName(*__field_kind)
142462                }
142463                Self::TsRestType(_, __field_kind) => AstParentKind::TsRestType(*__field_kind),
142464                Self::TsSatisfiesExpr(_, __field_kind) => {
142465                    AstParentKind::TsSatisfiesExpr(*__field_kind)
142466                }
142467                Self::TsSetterSignature(_, __field_kind) => {
142468                    AstParentKind::TsSetterSignature(*__field_kind)
142469                }
142470                Self::TsThisType(_, __field_kind) => AstParentKind::TsThisType(*__field_kind),
142471                Self::TsThisTypeOrIdent(_, __field_kind) => {
142472                    AstParentKind::TsThisTypeOrIdent(*__field_kind)
142473                }
142474                Self::TsTplLitType(_, __field_kind) => AstParentKind::TsTplLitType(*__field_kind),
142475                Self::TsTupleElement(_, __field_kind) => {
142476                    AstParentKind::TsTupleElement(*__field_kind)
142477                }
142478                Self::TsTupleType(_, __field_kind) => AstParentKind::TsTupleType(*__field_kind),
142479                Self::TsType(_, __field_kind) => AstParentKind::TsType(*__field_kind),
142480                Self::TsTypeAliasDecl(_, __field_kind) => {
142481                    AstParentKind::TsTypeAliasDecl(*__field_kind)
142482                }
142483                Self::TsTypeAnn(_, __field_kind) => AstParentKind::TsTypeAnn(*__field_kind),
142484                Self::TsTypeAssertion(_, __field_kind) => {
142485                    AstParentKind::TsTypeAssertion(*__field_kind)
142486                }
142487                Self::TsTypeElement(_, __field_kind) => AstParentKind::TsTypeElement(*__field_kind),
142488                Self::TsTypeLit(_, __field_kind) => AstParentKind::TsTypeLit(*__field_kind),
142489                Self::TsTypeOperator(_, __field_kind) => {
142490                    AstParentKind::TsTypeOperator(*__field_kind)
142491                }
142492                Self::TsTypeOperatorOp(_, __field_kind) => {
142493                    AstParentKind::TsTypeOperatorOp(*__field_kind)
142494                }
142495                Self::TsTypeParam(_, __field_kind) => AstParentKind::TsTypeParam(*__field_kind),
142496                Self::TsTypeParamDecl(_, __field_kind) => {
142497                    AstParentKind::TsTypeParamDecl(*__field_kind)
142498                }
142499                Self::TsTypeParamInstantiation(_, __field_kind) => {
142500                    AstParentKind::TsTypeParamInstantiation(*__field_kind)
142501                }
142502                Self::TsTypePredicate(_, __field_kind) => {
142503                    AstParentKind::TsTypePredicate(*__field_kind)
142504                }
142505                Self::TsTypeQuery(_, __field_kind) => AstParentKind::TsTypeQuery(*__field_kind),
142506                Self::TsTypeQueryExpr(_, __field_kind) => {
142507                    AstParentKind::TsTypeQueryExpr(*__field_kind)
142508                }
142509                Self::TsTypeRef(_, __field_kind) => AstParentKind::TsTypeRef(*__field_kind),
142510                Self::TsUnionOrIntersectionType(_, __field_kind) => {
142511                    AstParentKind::TsUnionOrIntersectionType(*__field_kind)
142512                }
142513                Self::TsUnionType(_, __field_kind) => AstParentKind::TsUnionType(*__field_kind),
142514                Self::UnaryExpr(_, __field_kind) => AstParentKind::UnaryExpr(*__field_kind),
142515                Self::UnaryOp(_, __field_kind) => AstParentKind::UnaryOp(*__field_kind),
142516                Self::UpdateExpr(_, __field_kind) => AstParentKind::UpdateExpr(*__field_kind),
142517                Self::UpdateOp(_, __field_kind) => AstParentKind::UpdateOp(*__field_kind),
142518                Self::UsingDecl(_, __field_kind) => AstParentKind::UsingDecl(*__field_kind),
142519                Self::VarDecl(_, __field_kind) => AstParentKind::VarDecl(*__field_kind),
142520                Self::VarDeclKind(_, __field_kind) => AstParentKind::VarDeclKind(*__field_kind),
142521                Self::VarDeclOrExpr(_, __field_kind) => AstParentKind::VarDeclOrExpr(*__field_kind),
142522                Self::VarDeclarator(_, __field_kind) => AstParentKind::VarDeclarator(*__field_kind),
142523                Self::WhileStmt(_, __field_kind) => AstParentKind::WhileStmt(*__field_kind),
142524                Self::WithStmt(_, __field_kind) => AstParentKind::WithStmt(*__field_kind),
142525                Self::YieldExpr(_, __field_kind) => AstParentKind::YieldExpr(*__field_kind),
142526            }
142527        }
142528    }
142529}
142530impl<'ast> From<&'ast Accessibility> for NodeRef<'ast> {
142531    fn from(node: &'ast Accessibility) -> Self {
142532        NodeRef::Accessibility(node)
142533    }
142534}
142535impl<'ast> From<&'ast ArrayLit> for NodeRef<'ast> {
142536    fn from(node: &'ast ArrayLit) -> Self {
142537        NodeRef::ArrayLit(node)
142538    }
142539}
142540impl<'ast> From<&'ast ArrayPat> for NodeRef<'ast> {
142541    fn from(node: &'ast ArrayPat) -> Self {
142542        NodeRef::ArrayPat(node)
142543    }
142544}
142545impl<'ast> From<&'ast ArrowExpr> for NodeRef<'ast> {
142546    fn from(node: &'ast ArrowExpr) -> Self {
142547        NodeRef::ArrowExpr(node)
142548    }
142549}
142550impl<'ast> From<&'ast AssignExpr> for NodeRef<'ast> {
142551    fn from(node: &'ast AssignExpr) -> Self {
142552        NodeRef::AssignExpr(node)
142553    }
142554}
142555impl<'ast> From<&'ast AssignOp> for NodeRef<'ast> {
142556    fn from(node: &'ast AssignOp) -> Self {
142557        NodeRef::AssignOp(node)
142558    }
142559}
142560impl<'ast> From<&'ast AssignPat> for NodeRef<'ast> {
142561    fn from(node: &'ast AssignPat) -> Self {
142562        NodeRef::AssignPat(node)
142563    }
142564}
142565impl<'ast> From<&'ast AssignPatProp> for NodeRef<'ast> {
142566    fn from(node: &'ast AssignPatProp) -> Self {
142567        NodeRef::AssignPatProp(node)
142568    }
142569}
142570impl<'ast> From<&'ast AssignProp> for NodeRef<'ast> {
142571    fn from(node: &'ast AssignProp) -> Self {
142572        NodeRef::AssignProp(node)
142573    }
142574}
142575impl<'ast> From<&'ast AssignTarget> for NodeRef<'ast> {
142576    fn from(node: &'ast AssignTarget) -> Self {
142577        NodeRef::AssignTarget(node)
142578    }
142579}
142580impl<'ast> From<&'ast AssignTargetPat> for NodeRef<'ast> {
142581    fn from(node: &'ast AssignTargetPat) -> Self {
142582        NodeRef::AssignTargetPat(node)
142583    }
142584}
142585impl<'ast> From<&'ast AutoAccessor> for NodeRef<'ast> {
142586    fn from(node: &'ast AutoAccessor) -> Self {
142587        NodeRef::AutoAccessor(node)
142588    }
142589}
142590impl<'ast> From<&'ast AwaitExpr> for NodeRef<'ast> {
142591    fn from(node: &'ast AwaitExpr) -> Self {
142592        NodeRef::AwaitExpr(node)
142593    }
142594}
142595impl<'ast> From<&'ast BigInt> for NodeRef<'ast> {
142596    fn from(node: &'ast BigInt) -> Self {
142597        NodeRef::BigInt(node)
142598    }
142599}
142600impl<'ast> From<&'ast BinExpr> for NodeRef<'ast> {
142601    fn from(node: &'ast BinExpr) -> Self {
142602        NodeRef::BinExpr(node)
142603    }
142604}
142605impl<'ast> From<&'ast BinaryOp> for NodeRef<'ast> {
142606    fn from(node: &'ast BinaryOp) -> Self {
142607        NodeRef::BinaryOp(node)
142608    }
142609}
142610impl<'ast> From<&'ast BindingIdent> for NodeRef<'ast> {
142611    fn from(node: &'ast BindingIdent) -> Self {
142612        NodeRef::BindingIdent(node)
142613    }
142614}
142615impl<'ast> From<&'ast BlockStmt> for NodeRef<'ast> {
142616    fn from(node: &'ast BlockStmt) -> Self {
142617        NodeRef::BlockStmt(node)
142618    }
142619}
142620impl<'ast> From<&'ast BlockStmtOrExpr> for NodeRef<'ast> {
142621    fn from(node: &'ast BlockStmtOrExpr) -> Self {
142622        NodeRef::BlockStmtOrExpr(node)
142623    }
142624}
142625impl<'ast> From<&'ast Bool> for NodeRef<'ast> {
142626    fn from(node: &'ast Bool) -> Self {
142627        NodeRef::Bool(node)
142628    }
142629}
142630impl<'ast> From<&'ast BreakStmt> for NodeRef<'ast> {
142631    fn from(node: &'ast BreakStmt) -> Self {
142632        NodeRef::BreakStmt(node)
142633    }
142634}
142635impl<'ast> From<&'ast CallExpr> for NodeRef<'ast> {
142636    fn from(node: &'ast CallExpr) -> Self {
142637        NodeRef::CallExpr(node)
142638    }
142639}
142640impl<'ast> From<&'ast Callee> for NodeRef<'ast> {
142641    fn from(node: &'ast Callee) -> Self {
142642        NodeRef::Callee(node)
142643    }
142644}
142645impl<'ast> From<&'ast CatchClause> for NodeRef<'ast> {
142646    fn from(node: &'ast CatchClause) -> Self {
142647        NodeRef::CatchClause(node)
142648    }
142649}
142650impl<'ast> From<&'ast Class> for NodeRef<'ast> {
142651    fn from(node: &'ast Class) -> Self {
142652        NodeRef::Class(node)
142653    }
142654}
142655impl<'ast> From<&'ast ClassDecl> for NodeRef<'ast> {
142656    fn from(node: &'ast ClassDecl) -> Self {
142657        NodeRef::ClassDecl(node)
142658    }
142659}
142660impl<'ast> From<&'ast ClassExpr> for NodeRef<'ast> {
142661    fn from(node: &'ast ClassExpr) -> Self {
142662        NodeRef::ClassExpr(node)
142663    }
142664}
142665impl<'ast> From<&'ast ClassMember> for NodeRef<'ast> {
142666    fn from(node: &'ast ClassMember) -> Self {
142667        NodeRef::ClassMember(node)
142668    }
142669}
142670impl<'ast> From<&'ast ClassMethod> for NodeRef<'ast> {
142671    fn from(node: &'ast ClassMethod) -> Self {
142672        NodeRef::ClassMethod(node)
142673    }
142674}
142675impl<'ast> From<&'ast ClassProp> for NodeRef<'ast> {
142676    fn from(node: &'ast ClassProp) -> Self {
142677        NodeRef::ClassProp(node)
142678    }
142679}
142680impl<'ast> From<&'ast ComputedPropName> for NodeRef<'ast> {
142681    fn from(node: &'ast ComputedPropName) -> Self {
142682        NodeRef::ComputedPropName(node)
142683    }
142684}
142685impl<'ast> From<&'ast CondExpr> for NodeRef<'ast> {
142686    fn from(node: &'ast CondExpr) -> Self {
142687        NodeRef::CondExpr(node)
142688    }
142689}
142690impl<'ast> From<&'ast Constructor> for NodeRef<'ast> {
142691    fn from(node: &'ast Constructor) -> Self {
142692        NodeRef::Constructor(node)
142693    }
142694}
142695impl<'ast> From<&'ast ContinueStmt> for NodeRef<'ast> {
142696    fn from(node: &'ast ContinueStmt) -> Self {
142697        NodeRef::ContinueStmt(node)
142698    }
142699}
142700impl<'ast> From<&'ast DebuggerStmt> for NodeRef<'ast> {
142701    fn from(node: &'ast DebuggerStmt) -> Self {
142702        NodeRef::DebuggerStmt(node)
142703    }
142704}
142705impl<'ast> From<&'ast Decl> for NodeRef<'ast> {
142706    fn from(node: &'ast Decl) -> Self {
142707        NodeRef::Decl(node)
142708    }
142709}
142710impl<'ast> From<&'ast Decorator> for NodeRef<'ast> {
142711    fn from(node: &'ast Decorator) -> Self {
142712        NodeRef::Decorator(node)
142713    }
142714}
142715impl<'ast> From<&'ast DefaultDecl> for NodeRef<'ast> {
142716    fn from(node: &'ast DefaultDecl) -> Self {
142717        NodeRef::DefaultDecl(node)
142718    }
142719}
142720impl<'ast> From<&'ast DoWhileStmt> for NodeRef<'ast> {
142721    fn from(node: &'ast DoWhileStmt) -> Self {
142722        NodeRef::DoWhileStmt(node)
142723    }
142724}
142725impl<'ast> From<&'ast EmptyStmt> for NodeRef<'ast> {
142726    fn from(node: &'ast EmptyStmt) -> Self {
142727        NodeRef::EmptyStmt(node)
142728    }
142729}
142730impl<'ast> From<&'ast ExportAll> for NodeRef<'ast> {
142731    fn from(node: &'ast ExportAll) -> Self {
142732        NodeRef::ExportAll(node)
142733    }
142734}
142735impl<'ast> From<&'ast ExportDecl> for NodeRef<'ast> {
142736    fn from(node: &'ast ExportDecl) -> Self {
142737        NodeRef::ExportDecl(node)
142738    }
142739}
142740impl<'ast> From<&'ast ExportDefaultDecl> for NodeRef<'ast> {
142741    fn from(node: &'ast ExportDefaultDecl) -> Self {
142742        NodeRef::ExportDefaultDecl(node)
142743    }
142744}
142745impl<'ast> From<&'ast ExportDefaultExpr> for NodeRef<'ast> {
142746    fn from(node: &'ast ExportDefaultExpr) -> Self {
142747        NodeRef::ExportDefaultExpr(node)
142748    }
142749}
142750impl<'ast> From<&'ast ExportDefaultSpecifier> for NodeRef<'ast> {
142751    fn from(node: &'ast ExportDefaultSpecifier) -> Self {
142752        NodeRef::ExportDefaultSpecifier(node)
142753    }
142754}
142755impl<'ast> From<&'ast ExportNamedSpecifier> for NodeRef<'ast> {
142756    fn from(node: &'ast ExportNamedSpecifier) -> Self {
142757        NodeRef::ExportNamedSpecifier(node)
142758    }
142759}
142760impl<'ast> From<&'ast ExportNamespaceSpecifier> for NodeRef<'ast> {
142761    fn from(node: &'ast ExportNamespaceSpecifier) -> Self {
142762        NodeRef::ExportNamespaceSpecifier(node)
142763    }
142764}
142765impl<'ast> From<&'ast ExportSpecifier> for NodeRef<'ast> {
142766    fn from(node: &'ast ExportSpecifier) -> Self {
142767        NodeRef::ExportSpecifier(node)
142768    }
142769}
142770impl<'ast> From<&'ast Expr> for NodeRef<'ast> {
142771    fn from(node: &'ast Expr) -> Self {
142772        NodeRef::Expr(node)
142773    }
142774}
142775impl<'ast> From<&'ast ExprOrSpread> for NodeRef<'ast> {
142776    fn from(node: &'ast ExprOrSpread) -> Self {
142777        NodeRef::ExprOrSpread(node)
142778    }
142779}
142780impl<'ast> From<&'ast ExprStmt> for NodeRef<'ast> {
142781    fn from(node: &'ast ExprStmt) -> Self {
142782        NodeRef::ExprStmt(node)
142783    }
142784}
142785impl<'ast> From<&'ast FnDecl> for NodeRef<'ast> {
142786    fn from(node: &'ast FnDecl) -> Self {
142787        NodeRef::FnDecl(node)
142788    }
142789}
142790impl<'ast> From<&'ast FnExpr> for NodeRef<'ast> {
142791    fn from(node: &'ast FnExpr) -> Self {
142792        NodeRef::FnExpr(node)
142793    }
142794}
142795impl<'ast> From<&'ast ForHead> for NodeRef<'ast> {
142796    fn from(node: &'ast ForHead) -> Self {
142797        NodeRef::ForHead(node)
142798    }
142799}
142800impl<'ast> From<&'ast ForInStmt> for NodeRef<'ast> {
142801    fn from(node: &'ast ForInStmt) -> Self {
142802        NodeRef::ForInStmt(node)
142803    }
142804}
142805impl<'ast> From<&'ast ForOfStmt> for NodeRef<'ast> {
142806    fn from(node: &'ast ForOfStmt) -> Self {
142807        NodeRef::ForOfStmt(node)
142808    }
142809}
142810impl<'ast> From<&'ast ForStmt> for NodeRef<'ast> {
142811    fn from(node: &'ast ForStmt) -> Self {
142812        NodeRef::ForStmt(node)
142813    }
142814}
142815impl<'ast> From<&'ast Function> for NodeRef<'ast> {
142816    fn from(node: &'ast Function) -> Self {
142817        NodeRef::Function(node)
142818    }
142819}
142820impl<'ast> From<&'ast GetterProp> for NodeRef<'ast> {
142821    fn from(node: &'ast GetterProp) -> Self {
142822        NodeRef::GetterProp(node)
142823    }
142824}
142825impl<'ast> From<&'ast Ident> for NodeRef<'ast> {
142826    fn from(node: &'ast Ident) -> Self {
142827        NodeRef::Ident(node)
142828    }
142829}
142830impl<'ast> From<&'ast IdentName> for NodeRef<'ast> {
142831    fn from(node: &'ast IdentName) -> Self {
142832        NodeRef::IdentName(node)
142833    }
142834}
142835impl<'ast> From<&'ast IfStmt> for NodeRef<'ast> {
142836    fn from(node: &'ast IfStmt) -> Self {
142837        NodeRef::IfStmt(node)
142838    }
142839}
142840impl<'ast> From<&'ast Import> for NodeRef<'ast> {
142841    fn from(node: &'ast Import) -> Self {
142842        NodeRef::Import(node)
142843    }
142844}
142845impl<'ast> From<&'ast ImportDecl> for NodeRef<'ast> {
142846    fn from(node: &'ast ImportDecl) -> Self {
142847        NodeRef::ImportDecl(node)
142848    }
142849}
142850impl<'ast> From<&'ast ImportDefaultSpecifier> for NodeRef<'ast> {
142851    fn from(node: &'ast ImportDefaultSpecifier) -> Self {
142852        NodeRef::ImportDefaultSpecifier(node)
142853    }
142854}
142855impl<'ast> From<&'ast ImportNamedSpecifier> for NodeRef<'ast> {
142856    fn from(node: &'ast ImportNamedSpecifier) -> Self {
142857        NodeRef::ImportNamedSpecifier(node)
142858    }
142859}
142860impl<'ast> From<&'ast ImportPhase> for NodeRef<'ast> {
142861    fn from(node: &'ast ImportPhase) -> Self {
142862        NodeRef::ImportPhase(node)
142863    }
142864}
142865impl<'ast> From<&'ast ImportSpecifier> for NodeRef<'ast> {
142866    fn from(node: &'ast ImportSpecifier) -> Self {
142867        NodeRef::ImportSpecifier(node)
142868    }
142869}
142870impl<'ast> From<&'ast ImportStarAsSpecifier> for NodeRef<'ast> {
142871    fn from(node: &'ast ImportStarAsSpecifier) -> Self {
142872        NodeRef::ImportStarAsSpecifier(node)
142873    }
142874}
142875impl<'ast> From<&'ast ImportWith> for NodeRef<'ast> {
142876    fn from(node: &'ast ImportWith) -> Self {
142877        NodeRef::ImportWith(node)
142878    }
142879}
142880impl<'ast> From<&'ast ImportWithItem> for NodeRef<'ast> {
142881    fn from(node: &'ast ImportWithItem) -> Self {
142882        NodeRef::ImportWithItem(node)
142883    }
142884}
142885impl<'ast> From<&'ast Invalid> for NodeRef<'ast> {
142886    fn from(node: &'ast Invalid) -> Self {
142887        NodeRef::Invalid(node)
142888    }
142889}
142890impl<'ast> From<&'ast JSXAttr> for NodeRef<'ast> {
142891    fn from(node: &'ast JSXAttr) -> Self {
142892        NodeRef::JSXAttr(node)
142893    }
142894}
142895impl<'ast> From<&'ast JSXAttrName> for NodeRef<'ast> {
142896    fn from(node: &'ast JSXAttrName) -> Self {
142897        NodeRef::JSXAttrName(node)
142898    }
142899}
142900impl<'ast> From<&'ast JSXAttrOrSpread> for NodeRef<'ast> {
142901    fn from(node: &'ast JSXAttrOrSpread) -> Self {
142902        NodeRef::JSXAttrOrSpread(node)
142903    }
142904}
142905impl<'ast> From<&'ast JSXAttrValue> for NodeRef<'ast> {
142906    fn from(node: &'ast JSXAttrValue) -> Self {
142907        NodeRef::JSXAttrValue(node)
142908    }
142909}
142910impl<'ast> From<&'ast JSXClosingElement> for NodeRef<'ast> {
142911    fn from(node: &'ast JSXClosingElement) -> Self {
142912        NodeRef::JSXClosingElement(node)
142913    }
142914}
142915impl<'ast> From<&'ast JSXClosingFragment> for NodeRef<'ast> {
142916    fn from(node: &'ast JSXClosingFragment) -> Self {
142917        NodeRef::JSXClosingFragment(node)
142918    }
142919}
142920impl<'ast> From<&'ast JSXElement> for NodeRef<'ast> {
142921    fn from(node: &'ast JSXElement) -> Self {
142922        NodeRef::JSXElement(node)
142923    }
142924}
142925impl<'ast> From<&'ast JSXElementChild> for NodeRef<'ast> {
142926    fn from(node: &'ast JSXElementChild) -> Self {
142927        NodeRef::JSXElementChild(node)
142928    }
142929}
142930impl<'ast> From<&'ast JSXElementName> for NodeRef<'ast> {
142931    fn from(node: &'ast JSXElementName) -> Self {
142932        NodeRef::JSXElementName(node)
142933    }
142934}
142935impl<'ast> From<&'ast JSXEmptyExpr> for NodeRef<'ast> {
142936    fn from(node: &'ast JSXEmptyExpr) -> Self {
142937        NodeRef::JSXEmptyExpr(node)
142938    }
142939}
142940impl<'ast> From<&'ast JSXExpr> for NodeRef<'ast> {
142941    fn from(node: &'ast JSXExpr) -> Self {
142942        NodeRef::JSXExpr(node)
142943    }
142944}
142945impl<'ast> From<&'ast JSXExprContainer> for NodeRef<'ast> {
142946    fn from(node: &'ast JSXExprContainer) -> Self {
142947        NodeRef::JSXExprContainer(node)
142948    }
142949}
142950impl<'ast> From<&'ast JSXFragment> for NodeRef<'ast> {
142951    fn from(node: &'ast JSXFragment) -> Self {
142952        NodeRef::JSXFragment(node)
142953    }
142954}
142955impl<'ast> From<&'ast JSXMemberExpr> for NodeRef<'ast> {
142956    fn from(node: &'ast JSXMemberExpr) -> Self {
142957        NodeRef::JSXMemberExpr(node)
142958    }
142959}
142960impl<'ast> From<&'ast JSXNamespacedName> for NodeRef<'ast> {
142961    fn from(node: &'ast JSXNamespacedName) -> Self {
142962        NodeRef::JSXNamespacedName(node)
142963    }
142964}
142965impl<'ast> From<&'ast JSXObject> for NodeRef<'ast> {
142966    fn from(node: &'ast JSXObject) -> Self {
142967        NodeRef::JSXObject(node)
142968    }
142969}
142970impl<'ast> From<&'ast JSXOpeningElement> for NodeRef<'ast> {
142971    fn from(node: &'ast JSXOpeningElement) -> Self {
142972        NodeRef::JSXOpeningElement(node)
142973    }
142974}
142975impl<'ast> From<&'ast JSXOpeningFragment> for NodeRef<'ast> {
142976    fn from(node: &'ast JSXOpeningFragment) -> Self {
142977        NodeRef::JSXOpeningFragment(node)
142978    }
142979}
142980impl<'ast> From<&'ast JSXSpreadChild> for NodeRef<'ast> {
142981    fn from(node: &'ast JSXSpreadChild) -> Self {
142982        NodeRef::JSXSpreadChild(node)
142983    }
142984}
142985impl<'ast> From<&'ast JSXText> for NodeRef<'ast> {
142986    fn from(node: &'ast JSXText) -> Self {
142987        NodeRef::JSXText(node)
142988    }
142989}
142990impl<'ast> From<&'ast Key> for NodeRef<'ast> {
142991    fn from(node: &'ast Key) -> Self {
142992        NodeRef::Key(node)
142993    }
142994}
142995impl<'ast> From<&'ast KeyValuePatProp> for NodeRef<'ast> {
142996    fn from(node: &'ast KeyValuePatProp) -> Self {
142997        NodeRef::KeyValuePatProp(node)
142998    }
142999}
143000impl<'ast> From<&'ast KeyValueProp> for NodeRef<'ast> {
143001    fn from(node: &'ast KeyValueProp) -> Self {
143002        NodeRef::KeyValueProp(node)
143003    }
143004}
143005impl<'ast> From<&'ast LabeledStmt> for NodeRef<'ast> {
143006    fn from(node: &'ast LabeledStmt) -> Self {
143007        NodeRef::LabeledStmt(node)
143008    }
143009}
143010impl<'ast> From<&'ast Lit> for NodeRef<'ast> {
143011    fn from(node: &'ast Lit) -> Self {
143012        NodeRef::Lit(node)
143013    }
143014}
143015impl<'ast> From<&'ast MemberExpr> for NodeRef<'ast> {
143016    fn from(node: &'ast MemberExpr) -> Self {
143017        NodeRef::MemberExpr(node)
143018    }
143019}
143020impl<'ast> From<&'ast MemberProp> for NodeRef<'ast> {
143021    fn from(node: &'ast MemberProp) -> Self {
143022        NodeRef::MemberProp(node)
143023    }
143024}
143025impl<'ast> From<&'ast MetaPropExpr> for NodeRef<'ast> {
143026    fn from(node: &'ast MetaPropExpr) -> Self {
143027        NodeRef::MetaPropExpr(node)
143028    }
143029}
143030impl<'ast> From<&'ast MetaPropKind> for NodeRef<'ast> {
143031    fn from(node: &'ast MetaPropKind) -> Self {
143032        NodeRef::MetaPropKind(node)
143033    }
143034}
143035impl<'ast> From<&'ast MethodKind> for NodeRef<'ast> {
143036    fn from(node: &'ast MethodKind) -> Self {
143037        NodeRef::MethodKind(node)
143038    }
143039}
143040impl<'ast> From<&'ast MethodProp> for NodeRef<'ast> {
143041    fn from(node: &'ast MethodProp) -> Self {
143042        NodeRef::MethodProp(node)
143043    }
143044}
143045impl<'ast> From<&'ast Module> for NodeRef<'ast> {
143046    fn from(node: &'ast Module) -> Self {
143047        NodeRef::Module(node)
143048    }
143049}
143050impl<'ast> From<&'ast ModuleDecl> for NodeRef<'ast> {
143051    fn from(node: &'ast ModuleDecl) -> Self {
143052        NodeRef::ModuleDecl(node)
143053    }
143054}
143055impl<'ast> From<&'ast ModuleExportName> for NodeRef<'ast> {
143056    fn from(node: &'ast ModuleExportName) -> Self {
143057        NodeRef::ModuleExportName(node)
143058    }
143059}
143060impl<'ast> From<&'ast ModuleItem> for NodeRef<'ast> {
143061    fn from(node: &'ast ModuleItem) -> Self {
143062        NodeRef::ModuleItem(node)
143063    }
143064}
143065impl<'ast> From<&'ast NamedExport> for NodeRef<'ast> {
143066    fn from(node: &'ast NamedExport) -> Self {
143067        NodeRef::NamedExport(node)
143068    }
143069}
143070impl<'ast> From<&'ast NewExpr> for NodeRef<'ast> {
143071    fn from(node: &'ast NewExpr) -> Self {
143072        NodeRef::NewExpr(node)
143073    }
143074}
143075impl<'ast> From<&'ast Null> for NodeRef<'ast> {
143076    fn from(node: &'ast Null) -> Self {
143077        NodeRef::Null(node)
143078    }
143079}
143080impl<'ast> From<&'ast Number> for NodeRef<'ast> {
143081    fn from(node: &'ast Number) -> Self {
143082        NodeRef::Number(node)
143083    }
143084}
143085impl<'ast> From<&'ast ObjectLit> for NodeRef<'ast> {
143086    fn from(node: &'ast ObjectLit) -> Self {
143087        NodeRef::ObjectLit(node)
143088    }
143089}
143090impl<'ast> From<&'ast ObjectPat> for NodeRef<'ast> {
143091    fn from(node: &'ast ObjectPat) -> Self {
143092        NodeRef::ObjectPat(node)
143093    }
143094}
143095impl<'ast> From<&'ast ObjectPatProp> for NodeRef<'ast> {
143096    fn from(node: &'ast ObjectPatProp) -> Self {
143097        NodeRef::ObjectPatProp(node)
143098    }
143099}
143100impl<'ast> From<&'ast OptCall> for NodeRef<'ast> {
143101    fn from(node: &'ast OptCall) -> Self {
143102        NodeRef::OptCall(node)
143103    }
143104}
143105impl<'ast> From<&'ast OptChainBase> for NodeRef<'ast> {
143106    fn from(node: &'ast OptChainBase) -> Self {
143107        NodeRef::OptChainBase(node)
143108    }
143109}
143110impl<'ast> From<&'ast OptChainExpr> for NodeRef<'ast> {
143111    fn from(node: &'ast OptChainExpr) -> Self {
143112        NodeRef::OptChainExpr(node)
143113    }
143114}
143115impl<'ast> From<&'ast Param> for NodeRef<'ast> {
143116    fn from(node: &'ast Param) -> Self {
143117        NodeRef::Param(node)
143118    }
143119}
143120impl<'ast> From<&'ast ParamOrTsParamProp> for NodeRef<'ast> {
143121    fn from(node: &'ast ParamOrTsParamProp) -> Self {
143122        NodeRef::ParamOrTsParamProp(node)
143123    }
143124}
143125impl<'ast> From<&'ast ParenExpr> for NodeRef<'ast> {
143126    fn from(node: &'ast ParenExpr) -> Self {
143127        NodeRef::ParenExpr(node)
143128    }
143129}
143130impl<'ast> From<&'ast Pat> for NodeRef<'ast> {
143131    fn from(node: &'ast Pat) -> Self {
143132        NodeRef::Pat(node)
143133    }
143134}
143135impl<'ast> From<&'ast PrivateMethod> for NodeRef<'ast> {
143136    fn from(node: &'ast PrivateMethod) -> Self {
143137        NodeRef::PrivateMethod(node)
143138    }
143139}
143140impl<'ast> From<&'ast PrivateName> for NodeRef<'ast> {
143141    fn from(node: &'ast PrivateName) -> Self {
143142        NodeRef::PrivateName(node)
143143    }
143144}
143145impl<'ast> From<&'ast PrivateProp> for NodeRef<'ast> {
143146    fn from(node: &'ast PrivateProp) -> Self {
143147        NodeRef::PrivateProp(node)
143148    }
143149}
143150impl<'ast> From<&'ast Program> for NodeRef<'ast> {
143151    fn from(node: &'ast Program) -> Self {
143152        NodeRef::Program(node)
143153    }
143154}
143155impl<'ast> From<&'ast Prop> for NodeRef<'ast> {
143156    fn from(node: &'ast Prop) -> Self {
143157        NodeRef::Prop(node)
143158    }
143159}
143160impl<'ast> From<&'ast PropName> for NodeRef<'ast> {
143161    fn from(node: &'ast PropName) -> Self {
143162        NodeRef::PropName(node)
143163    }
143164}
143165impl<'ast> From<&'ast PropOrSpread> for NodeRef<'ast> {
143166    fn from(node: &'ast PropOrSpread) -> Self {
143167        NodeRef::PropOrSpread(node)
143168    }
143169}
143170impl<'ast> From<&'ast Regex> for NodeRef<'ast> {
143171    fn from(node: &'ast Regex) -> Self {
143172        NodeRef::Regex(node)
143173    }
143174}
143175impl<'ast> From<&'ast RestPat> for NodeRef<'ast> {
143176    fn from(node: &'ast RestPat) -> Self {
143177        NodeRef::RestPat(node)
143178    }
143179}
143180impl<'ast> From<&'ast ReturnStmt> for NodeRef<'ast> {
143181    fn from(node: &'ast ReturnStmt) -> Self {
143182        NodeRef::ReturnStmt(node)
143183    }
143184}
143185impl<'ast> From<&'ast Script> for NodeRef<'ast> {
143186    fn from(node: &'ast Script) -> Self {
143187        NodeRef::Script(node)
143188    }
143189}
143190impl<'ast> From<&'ast SeqExpr> for NodeRef<'ast> {
143191    fn from(node: &'ast SeqExpr) -> Self {
143192        NodeRef::SeqExpr(node)
143193    }
143194}
143195impl<'ast> From<&'ast SetterProp> for NodeRef<'ast> {
143196    fn from(node: &'ast SetterProp) -> Self {
143197        NodeRef::SetterProp(node)
143198    }
143199}
143200impl<'ast> From<&'ast SimpleAssignTarget> for NodeRef<'ast> {
143201    fn from(node: &'ast SimpleAssignTarget) -> Self {
143202        NodeRef::SimpleAssignTarget(node)
143203    }
143204}
143205impl<'ast> From<&'ast SpreadElement> for NodeRef<'ast> {
143206    fn from(node: &'ast SpreadElement) -> Self {
143207        NodeRef::SpreadElement(node)
143208    }
143209}
143210impl<'ast> From<&'ast StaticBlock> for NodeRef<'ast> {
143211    fn from(node: &'ast StaticBlock) -> Self {
143212        NodeRef::StaticBlock(node)
143213    }
143214}
143215impl<'ast> From<&'ast Stmt> for NodeRef<'ast> {
143216    fn from(node: &'ast Stmt) -> Self {
143217        NodeRef::Stmt(node)
143218    }
143219}
143220impl<'ast> From<&'ast Str> for NodeRef<'ast> {
143221    fn from(node: &'ast Str) -> Self {
143222        NodeRef::Str(node)
143223    }
143224}
143225impl<'ast> From<&'ast Super> for NodeRef<'ast> {
143226    fn from(node: &'ast Super) -> Self {
143227        NodeRef::Super(node)
143228    }
143229}
143230impl<'ast> From<&'ast SuperProp> for NodeRef<'ast> {
143231    fn from(node: &'ast SuperProp) -> Self {
143232        NodeRef::SuperProp(node)
143233    }
143234}
143235impl<'ast> From<&'ast SuperPropExpr> for NodeRef<'ast> {
143236    fn from(node: &'ast SuperPropExpr) -> Self {
143237        NodeRef::SuperPropExpr(node)
143238    }
143239}
143240impl<'ast> From<&'ast SwitchCase> for NodeRef<'ast> {
143241    fn from(node: &'ast SwitchCase) -> Self {
143242        NodeRef::SwitchCase(node)
143243    }
143244}
143245impl<'ast> From<&'ast SwitchStmt> for NodeRef<'ast> {
143246    fn from(node: &'ast SwitchStmt) -> Self {
143247        NodeRef::SwitchStmt(node)
143248    }
143249}
143250impl<'ast> From<&'ast TaggedTpl> for NodeRef<'ast> {
143251    fn from(node: &'ast TaggedTpl) -> Self {
143252        NodeRef::TaggedTpl(node)
143253    }
143254}
143255impl<'ast> From<&'ast ThisExpr> for NodeRef<'ast> {
143256    fn from(node: &'ast ThisExpr) -> Self {
143257        NodeRef::ThisExpr(node)
143258    }
143259}
143260impl<'ast> From<&'ast ThrowStmt> for NodeRef<'ast> {
143261    fn from(node: &'ast ThrowStmt) -> Self {
143262        NodeRef::ThrowStmt(node)
143263    }
143264}
143265impl<'ast> From<&'ast Tpl> for NodeRef<'ast> {
143266    fn from(node: &'ast Tpl) -> Self {
143267        NodeRef::Tpl(node)
143268    }
143269}
143270impl<'ast> From<&'ast TplElement> for NodeRef<'ast> {
143271    fn from(node: &'ast TplElement) -> Self {
143272        NodeRef::TplElement(node)
143273    }
143274}
143275impl<'ast> From<&'ast TruePlusMinus> for NodeRef<'ast> {
143276    fn from(node: &'ast TruePlusMinus) -> Self {
143277        NodeRef::TruePlusMinus(node)
143278    }
143279}
143280impl<'ast> From<&'ast TryStmt> for NodeRef<'ast> {
143281    fn from(node: &'ast TryStmt) -> Self {
143282        NodeRef::TryStmt(node)
143283    }
143284}
143285impl<'ast> From<&'ast TsArrayType> for NodeRef<'ast> {
143286    fn from(node: &'ast TsArrayType) -> Self {
143287        NodeRef::TsArrayType(node)
143288    }
143289}
143290impl<'ast> From<&'ast TsAsExpr> for NodeRef<'ast> {
143291    fn from(node: &'ast TsAsExpr) -> Self {
143292        NodeRef::TsAsExpr(node)
143293    }
143294}
143295impl<'ast> From<&'ast TsCallSignatureDecl> for NodeRef<'ast> {
143296    fn from(node: &'ast TsCallSignatureDecl) -> Self {
143297        NodeRef::TsCallSignatureDecl(node)
143298    }
143299}
143300impl<'ast> From<&'ast TsConditionalType> for NodeRef<'ast> {
143301    fn from(node: &'ast TsConditionalType) -> Self {
143302        NodeRef::TsConditionalType(node)
143303    }
143304}
143305impl<'ast> From<&'ast TsConstAssertion> for NodeRef<'ast> {
143306    fn from(node: &'ast TsConstAssertion) -> Self {
143307        NodeRef::TsConstAssertion(node)
143308    }
143309}
143310impl<'ast> From<&'ast TsConstructSignatureDecl> for NodeRef<'ast> {
143311    fn from(node: &'ast TsConstructSignatureDecl) -> Self {
143312        NodeRef::TsConstructSignatureDecl(node)
143313    }
143314}
143315impl<'ast> From<&'ast TsConstructorType> for NodeRef<'ast> {
143316    fn from(node: &'ast TsConstructorType) -> Self {
143317        NodeRef::TsConstructorType(node)
143318    }
143319}
143320impl<'ast> From<&'ast TsEntityName> for NodeRef<'ast> {
143321    fn from(node: &'ast TsEntityName) -> Self {
143322        NodeRef::TsEntityName(node)
143323    }
143324}
143325impl<'ast> From<&'ast TsEnumDecl> for NodeRef<'ast> {
143326    fn from(node: &'ast TsEnumDecl) -> Self {
143327        NodeRef::TsEnumDecl(node)
143328    }
143329}
143330impl<'ast> From<&'ast TsEnumMember> for NodeRef<'ast> {
143331    fn from(node: &'ast TsEnumMember) -> Self {
143332        NodeRef::TsEnumMember(node)
143333    }
143334}
143335impl<'ast> From<&'ast TsEnumMemberId> for NodeRef<'ast> {
143336    fn from(node: &'ast TsEnumMemberId) -> Self {
143337        NodeRef::TsEnumMemberId(node)
143338    }
143339}
143340impl<'ast> From<&'ast TsExportAssignment> for NodeRef<'ast> {
143341    fn from(node: &'ast TsExportAssignment) -> Self {
143342        NodeRef::TsExportAssignment(node)
143343    }
143344}
143345impl<'ast> From<&'ast TsExprWithTypeArgs> for NodeRef<'ast> {
143346    fn from(node: &'ast TsExprWithTypeArgs) -> Self {
143347        NodeRef::TsExprWithTypeArgs(node)
143348    }
143349}
143350impl<'ast> From<&'ast TsExternalModuleRef> for NodeRef<'ast> {
143351    fn from(node: &'ast TsExternalModuleRef) -> Self {
143352        NodeRef::TsExternalModuleRef(node)
143353    }
143354}
143355impl<'ast> From<&'ast TsFnOrConstructorType> for NodeRef<'ast> {
143356    fn from(node: &'ast TsFnOrConstructorType) -> Self {
143357        NodeRef::TsFnOrConstructorType(node)
143358    }
143359}
143360impl<'ast> From<&'ast TsFnParam> for NodeRef<'ast> {
143361    fn from(node: &'ast TsFnParam) -> Self {
143362        NodeRef::TsFnParam(node)
143363    }
143364}
143365impl<'ast> From<&'ast TsFnType> for NodeRef<'ast> {
143366    fn from(node: &'ast TsFnType) -> Self {
143367        NodeRef::TsFnType(node)
143368    }
143369}
143370impl<'ast> From<&'ast TsGetterSignature> for NodeRef<'ast> {
143371    fn from(node: &'ast TsGetterSignature) -> Self {
143372        NodeRef::TsGetterSignature(node)
143373    }
143374}
143375impl<'ast> From<&'ast TsImportCallOptions> for NodeRef<'ast> {
143376    fn from(node: &'ast TsImportCallOptions) -> Self {
143377        NodeRef::TsImportCallOptions(node)
143378    }
143379}
143380impl<'ast> From<&'ast TsImportEqualsDecl> for NodeRef<'ast> {
143381    fn from(node: &'ast TsImportEqualsDecl) -> Self {
143382        NodeRef::TsImportEqualsDecl(node)
143383    }
143384}
143385impl<'ast> From<&'ast TsImportType> for NodeRef<'ast> {
143386    fn from(node: &'ast TsImportType) -> Self {
143387        NodeRef::TsImportType(node)
143388    }
143389}
143390impl<'ast> From<&'ast TsIndexSignature> for NodeRef<'ast> {
143391    fn from(node: &'ast TsIndexSignature) -> Self {
143392        NodeRef::TsIndexSignature(node)
143393    }
143394}
143395impl<'ast> From<&'ast TsIndexedAccessType> for NodeRef<'ast> {
143396    fn from(node: &'ast TsIndexedAccessType) -> Self {
143397        NodeRef::TsIndexedAccessType(node)
143398    }
143399}
143400impl<'ast> From<&'ast TsInferType> for NodeRef<'ast> {
143401    fn from(node: &'ast TsInferType) -> Self {
143402        NodeRef::TsInferType(node)
143403    }
143404}
143405impl<'ast> From<&'ast TsInstantiation> for NodeRef<'ast> {
143406    fn from(node: &'ast TsInstantiation) -> Self {
143407        NodeRef::TsInstantiation(node)
143408    }
143409}
143410impl<'ast> From<&'ast TsInterfaceBody> for NodeRef<'ast> {
143411    fn from(node: &'ast TsInterfaceBody) -> Self {
143412        NodeRef::TsInterfaceBody(node)
143413    }
143414}
143415impl<'ast> From<&'ast TsInterfaceDecl> for NodeRef<'ast> {
143416    fn from(node: &'ast TsInterfaceDecl) -> Self {
143417        NodeRef::TsInterfaceDecl(node)
143418    }
143419}
143420impl<'ast> From<&'ast TsIntersectionType> for NodeRef<'ast> {
143421    fn from(node: &'ast TsIntersectionType) -> Self {
143422        NodeRef::TsIntersectionType(node)
143423    }
143424}
143425impl<'ast> From<&'ast TsKeywordType> for NodeRef<'ast> {
143426    fn from(node: &'ast TsKeywordType) -> Self {
143427        NodeRef::TsKeywordType(node)
143428    }
143429}
143430impl<'ast> From<&'ast TsKeywordTypeKind> for NodeRef<'ast> {
143431    fn from(node: &'ast TsKeywordTypeKind) -> Self {
143432        NodeRef::TsKeywordTypeKind(node)
143433    }
143434}
143435impl<'ast> From<&'ast TsLit> for NodeRef<'ast> {
143436    fn from(node: &'ast TsLit) -> Self {
143437        NodeRef::TsLit(node)
143438    }
143439}
143440impl<'ast> From<&'ast TsLitType> for NodeRef<'ast> {
143441    fn from(node: &'ast TsLitType) -> Self {
143442        NodeRef::TsLitType(node)
143443    }
143444}
143445impl<'ast> From<&'ast TsMappedType> for NodeRef<'ast> {
143446    fn from(node: &'ast TsMappedType) -> Self {
143447        NodeRef::TsMappedType(node)
143448    }
143449}
143450impl<'ast> From<&'ast TsMethodSignature> for NodeRef<'ast> {
143451    fn from(node: &'ast TsMethodSignature) -> Self {
143452        NodeRef::TsMethodSignature(node)
143453    }
143454}
143455impl<'ast> From<&'ast TsModuleBlock> for NodeRef<'ast> {
143456    fn from(node: &'ast TsModuleBlock) -> Self {
143457        NodeRef::TsModuleBlock(node)
143458    }
143459}
143460impl<'ast> From<&'ast TsModuleDecl> for NodeRef<'ast> {
143461    fn from(node: &'ast TsModuleDecl) -> Self {
143462        NodeRef::TsModuleDecl(node)
143463    }
143464}
143465impl<'ast> From<&'ast TsModuleName> for NodeRef<'ast> {
143466    fn from(node: &'ast TsModuleName) -> Self {
143467        NodeRef::TsModuleName(node)
143468    }
143469}
143470impl<'ast> From<&'ast TsModuleRef> for NodeRef<'ast> {
143471    fn from(node: &'ast TsModuleRef) -> Self {
143472        NodeRef::TsModuleRef(node)
143473    }
143474}
143475impl<'ast> From<&'ast TsNamespaceBody> for NodeRef<'ast> {
143476    fn from(node: &'ast TsNamespaceBody) -> Self {
143477        NodeRef::TsNamespaceBody(node)
143478    }
143479}
143480impl<'ast> From<&'ast TsNamespaceDecl> for NodeRef<'ast> {
143481    fn from(node: &'ast TsNamespaceDecl) -> Self {
143482        NodeRef::TsNamespaceDecl(node)
143483    }
143484}
143485impl<'ast> From<&'ast TsNamespaceExportDecl> for NodeRef<'ast> {
143486    fn from(node: &'ast TsNamespaceExportDecl) -> Self {
143487        NodeRef::TsNamespaceExportDecl(node)
143488    }
143489}
143490impl<'ast> From<&'ast TsNonNullExpr> for NodeRef<'ast> {
143491    fn from(node: &'ast TsNonNullExpr) -> Self {
143492        NodeRef::TsNonNullExpr(node)
143493    }
143494}
143495impl<'ast> From<&'ast TsOptionalType> for NodeRef<'ast> {
143496    fn from(node: &'ast TsOptionalType) -> Self {
143497        NodeRef::TsOptionalType(node)
143498    }
143499}
143500impl<'ast> From<&'ast TsParamProp> for NodeRef<'ast> {
143501    fn from(node: &'ast TsParamProp) -> Self {
143502        NodeRef::TsParamProp(node)
143503    }
143504}
143505impl<'ast> From<&'ast TsParamPropParam> for NodeRef<'ast> {
143506    fn from(node: &'ast TsParamPropParam) -> Self {
143507        NodeRef::TsParamPropParam(node)
143508    }
143509}
143510impl<'ast> From<&'ast TsParenthesizedType> for NodeRef<'ast> {
143511    fn from(node: &'ast TsParenthesizedType) -> Self {
143512        NodeRef::TsParenthesizedType(node)
143513    }
143514}
143515impl<'ast> From<&'ast TsPropertySignature> for NodeRef<'ast> {
143516    fn from(node: &'ast TsPropertySignature) -> Self {
143517        NodeRef::TsPropertySignature(node)
143518    }
143519}
143520impl<'ast> From<&'ast TsQualifiedName> for NodeRef<'ast> {
143521    fn from(node: &'ast TsQualifiedName) -> Self {
143522        NodeRef::TsQualifiedName(node)
143523    }
143524}
143525impl<'ast> From<&'ast TsRestType> for NodeRef<'ast> {
143526    fn from(node: &'ast TsRestType) -> Self {
143527        NodeRef::TsRestType(node)
143528    }
143529}
143530impl<'ast> From<&'ast TsSatisfiesExpr> for NodeRef<'ast> {
143531    fn from(node: &'ast TsSatisfiesExpr) -> Self {
143532        NodeRef::TsSatisfiesExpr(node)
143533    }
143534}
143535impl<'ast> From<&'ast TsSetterSignature> for NodeRef<'ast> {
143536    fn from(node: &'ast TsSetterSignature) -> Self {
143537        NodeRef::TsSetterSignature(node)
143538    }
143539}
143540impl<'ast> From<&'ast TsThisType> for NodeRef<'ast> {
143541    fn from(node: &'ast TsThisType) -> Self {
143542        NodeRef::TsThisType(node)
143543    }
143544}
143545impl<'ast> From<&'ast TsThisTypeOrIdent> for NodeRef<'ast> {
143546    fn from(node: &'ast TsThisTypeOrIdent) -> Self {
143547        NodeRef::TsThisTypeOrIdent(node)
143548    }
143549}
143550impl<'ast> From<&'ast TsTplLitType> for NodeRef<'ast> {
143551    fn from(node: &'ast TsTplLitType) -> Self {
143552        NodeRef::TsTplLitType(node)
143553    }
143554}
143555impl<'ast> From<&'ast TsTupleElement> for NodeRef<'ast> {
143556    fn from(node: &'ast TsTupleElement) -> Self {
143557        NodeRef::TsTupleElement(node)
143558    }
143559}
143560impl<'ast> From<&'ast TsTupleType> for NodeRef<'ast> {
143561    fn from(node: &'ast TsTupleType) -> Self {
143562        NodeRef::TsTupleType(node)
143563    }
143564}
143565impl<'ast> From<&'ast TsType> for NodeRef<'ast> {
143566    fn from(node: &'ast TsType) -> Self {
143567        NodeRef::TsType(node)
143568    }
143569}
143570impl<'ast> From<&'ast TsTypeAliasDecl> for NodeRef<'ast> {
143571    fn from(node: &'ast TsTypeAliasDecl) -> Self {
143572        NodeRef::TsTypeAliasDecl(node)
143573    }
143574}
143575impl<'ast> From<&'ast TsTypeAnn> for NodeRef<'ast> {
143576    fn from(node: &'ast TsTypeAnn) -> Self {
143577        NodeRef::TsTypeAnn(node)
143578    }
143579}
143580impl<'ast> From<&'ast TsTypeAssertion> for NodeRef<'ast> {
143581    fn from(node: &'ast TsTypeAssertion) -> Self {
143582        NodeRef::TsTypeAssertion(node)
143583    }
143584}
143585impl<'ast> From<&'ast TsTypeElement> for NodeRef<'ast> {
143586    fn from(node: &'ast TsTypeElement) -> Self {
143587        NodeRef::TsTypeElement(node)
143588    }
143589}
143590impl<'ast> From<&'ast TsTypeLit> for NodeRef<'ast> {
143591    fn from(node: &'ast TsTypeLit) -> Self {
143592        NodeRef::TsTypeLit(node)
143593    }
143594}
143595impl<'ast> From<&'ast TsTypeOperator> for NodeRef<'ast> {
143596    fn from(node: &'ast TsTypeOperator) -> Self {
143597        NodeRef::TsTypeOperator(node)
143598    }
143599}
143600impl<'ast> From<&'ast TsTypeOperatorOp> for NodeRef<'ast> {
143601    fn from(node: &'ast TsTypeOperatorOp) -> Self {
143602        NodeRef::TsTypeOperatorOp(node)
143603    }
143604}
143605impl<'ast> From<&'ast TsTypeParam> for NodeRef<'ast> {
143606    fn from(node: &'ast TsTypeParam) -> Self {
143607        NodeRef::TsTypeParam(node)
143608    }
143609}
143610impl<'ast> From<&'ast TsTypeParamDecl> for NodeRef<'ast> {
143611    fn from(node: &'ast TsTypeParamDecl) -> Self {
143612        NodeRef::TsTypeParamDecl(node)
143613    }
143614}
143615impl<'ast> From<&'ast TsTypeParamInstantiation> for NodeRef<'ast> {
143616    fn from(node: &'ast TsTypeParamInstantiation) -> Self {
143617        NodeRef::TsTypeParamInstantiation(node)
143618    }
143619}
143620impl<'ast> From<&'ast TsTypePredicate> for NodeRef<'ast> {
143621    fn from(node: &'ast TsTypePredicate) -> Self {
143622        NodeRef::TsTypePredicate(node)
143623    }
143624}
143625impl<'ast> From<&'ast TsTypeQuery> for NodeRef<'ast> {
143626    fn from(node: &'ast TsTypeQuery) -> Self {
143627        NodeRef::TsTypeQuery(node)
143628    }
143629}
143630impl<'ast> From<&'ast TsTypeQueryExpr> for NodeRef<'ast> {
143631    fn from(node: &'ast TsTypeQueryExpr) -> Self {
143632        NodeRef::TsTypeQueryExpr(node)
143633    }
143634}
143635impl<'ast> From<&'ast TsTypeRef> for NodeRef<'ast> {
143636    fn from(node: &'ast TsTypeRef) -> Self {
143637        NodeRef::TsTypeRef(node)
143638    }
143639}
143640impl<'ast> From<&'ast TsUnionOrIntersectionType> for NodeRef<'ast> {
143641    fn from(node: &'ast TsUnionOrIntersectionType) -> Self {
143642        NodeRef::TsUnionOrIntersectionType(node)
143643    }
143644}
143645impl<'ast> From<&'ast TsUnionType> for NodeRef<'ast> {
143646    fn from(node: &'ast TsUnionType) -> Self {
143647        NodeRef::TsUnionType(node)
143648    }
143649}
143650impl<'ast> From<&'ast UnaryExpr> for NodeRef<'ast> {
143651    fn from(node: &'ast UnaryExpr) -> Self {
143652        NodeRef::UnaryExpr(node)
143653    }
143654}
143655impl<'ast> From<&'ast UnaryOp> for NodeRef<'ast> {
143656    fn from(node: &'ast UnaryOp) -> Self {
143657        NodeRef::UnaryOp(node)
143658    }
143659}
143660impl<'ast> From<&'ast UpdateExpr> for NodeRef<'ast> {
143661    fn from(node: &'ast UpdateExpr) -> Self {
143662        NodeRef::UpdateExpr(node)
143663    }
143664}
143665impl<'ast> From<&'ast UpdateOp> for NodeRef<'ast> {
143666    fn from(node: &'ast UpdateOp) -> Self {
143667        NodeRef::UpdateOp(node)
143668    }
143669}
143670impl<'ast> From<&'ast UsingDecl> for NodeRef<'ast> {
143671    fn from(node: &'ast UsingDecl) -> Self {
143672        NodeRef::UsingDecl(node)
143673    }
143674}
143675impl<'ast> From<&'ast VarDecl> for NodeRef<'ast> {
143676    fn from(node: &'ast VarDecl) -> Self {
143677        NodeRef::VarDecl(node)
143678    }
143679}
143680impl<'ast> From<&'ast VarDeclKind> for NodeRef<'ast> {
143681    fn from(node: &'ast VarDeclKind) -> Self {
143682        NodeRef::VarDeclKind(node)
143683    }
143684}
143685impl<'ast> From<&'ast VarDeclOrExpr> for NodeRef<'ast> {
143686    fn from(node: &'ast VarDeclOrExpr) -> Self {
143687        NodeRef::VarDeclOrExpr(node)
143688    }
143689}
143690impl<'ast> From<&'ast VarDeclarator> for NodeRef<'ast> {
143691    fn from(node: &'ast VarDeclarator) -> Self {
143692        NodeRef::VarDeclarator(node)
143693    }
143694}
143695impl<'ast> From<&'ast WhileStmt> for NodeRef<'ast> {
143696    fn from(node: &'ast WhileStmt) -> Self {
143697        NodeRef::WhileStmt(node)
143698    }
143699}
143700impl<'ast> From<&'ast WithStmt> for NodeRef<'ast> {
143701    fn from(node: &'ast WithStmt) -> Self {
143702        NodeRef::WithStmt(node)
143703    }
143704}
143705impl<'ast> From<&'ast YieldExpr> for NodeRef<'ast> {
143706    fn from(node: &'ast YieldExpr) -> Self {
143707        NodeRef::YieldExpr(node)
143708    }
143709}
143710#[derive(Debug, Clone, Copy)]
143711pub enum NodeRef<'ast> {
143712    Accessibility(&'ast Accessibility),
143713    ArrayLit(&'ast ArrayLit),
143714    ArrayPat(&'ast ArrayPat),
143715    ArrowExpr(&'ast ArrowExpr),
143716    AssignExpr(&'ast AssignExpr),
143717    AssignOp(&'ast AssignOp),
143718    AssignPat(&'ast AssignPat),
143719    AssignPatProp(&'ast AssignPatProp),
143720    AssignProp(&'ast AssignProp),
143721    AssignTarget(&'ast AssignTarget),
143722    AssignTargetPat(&'ast AssignTargetPat),
143723    AutoAccessor(&'ast AutoAccessor),
143724    AwaitExpr(&'ast AwaitExpr),
143725    BigInt(&'ast BigInt),
143726    BinExpr(&'ast BinExpr),
143727    BinaryOp(&'ast BinaryOp),
143728    BindingIdent(&'ast BindingIdent),
143729    BlockStmt(&'ast BlockStmt),
143730    BlockStmtOrExpr(&'ast BlockStmtOrExpr),
143731    Bool(&'ast Bool),
143732    BreakStmt(&'ast BreakStmt),
143733    CallExpr(&'ast CallExpr),
143734    Callee(&'ast Callee),
143735    CatchClause(&'ast CatchClause),
143736    Class(&'ast Class),
143737    ClassDecl(&'ast ClassDecl),
143738    ClassExpr(&'ast ClassExpr),
143739    ClassMember(&'ast ClassMember),
143740    ClassMethod(&'ast ClassMethod),
143741    ClassProp(&'ast ClassProp),
143742    ComputedPropName(&'ast ComputedPropName),
143743    CondExpr(&'ast CondExpr),
143744    Constructor(&'ast Constructor),
143745    ContinueStmt(&'ast ContinueStmt),
143746    DebuggerStmt(&'ast DebuggerStmt),
143747    Decl(&'ast Decl),
143748    Decorator(&'ast Decorator),
143749    DefaultDecl(&'ast DefaultDecl),
143750    DoWhileStmt(&'ast DoWhileStmt),
143751    EmptyStmt(&'ast EmptyStmt),
143752    ExportAll(&'ast ExportAll),
143753    ExportDecl(&'ast ExportDecl),
143754    ExportDefaultDecl(&'ast ExportDefaultDecl),
143755    ExportDefaultExpr(&'ast ExportDefaultExpr),
143756    ExportDefaultSpecifier(&'ast ExportDefaultSpecifier),
143757    ExportNamedSpecifier(&'ast ExportNamedSpecifier),
143758    ExportNamespaceSpecifier(&'ast ExportNamespaceSpecifier),
143759    ExportSpecifier(&'ast ExportSpecifier),
143760    Expr(&'ast Expr),
143761    ExprOrSpread(&'ast ExprOrSpread),
143762    ExprStmt(&'ast ExprStmt),
143763    FnDecl(&'ast FnDecl),
143764    FnExpr(&'ast FnExpr),
143765    ForHead(&'ast ForHead),
143766    ForInStmt(&'ast ForInStmt),
143767    ForOfStmt(&'ast ForOfStmt),
143768    ForStmt(&'ast ForStmt),
143769    Function(&'ast Function),
143770    GetterProp(&'ast GetterProp),
143771    Ident(&'ast Ident),
143772    IdentName(&'ast IdentName),
143773    IfStmt(&'ast IfStmt),
143774    Import(&'ast Import),
143775    ImportDecl(&'ast ImportDecl),
143776    ImportDefaultSpecifier(&'ast ImportDefaultSpecifier),
143777    ImportNamedSpecifier(&'ast ImportNamedSpecifier),
143778    ImportPhase(&'ast ImportPhase),
143779    ImportSpecifier(&'ast ImportSpecifier),
143780    ImportStarAsSpecifier(&'ast ImportStarAsSpecifier),
143781    ImportWith(&'ast ImportWith),
143782    ImportWithItem(&'ast ImportWithItem),
143783    Invalid(&'ast Invalid),
143784    JSXAttr(&'ast JSXAttr),
143785    JSXAttrName(&'ast JSXAttrName),
143786    JSXAttrOrSpread(&'ast JSXAttrOrSpread),
143787    JSXAttrValue(&'ast JSXAttrValue),
143788    JSXClosingElement(&'ast JSXClosingElement),
143789    JSXClosingFragment(&'ast JSXClosingFragment),
143790    JSXElement(&'ast JSXElement),
143791    JSXElementChild(&'ast JSXElementChild),
143792    JSXElementName(&'ast JSXElementName),
143793    JSXEmptyExpr(&'ast JSXEmptyExpr),
143794    JSXExpr(&'ast JSXExpr),
143795    JSXExprContainer(&'ast JSXExprContainer),
143796    JSXFragment(&'ast JSXFragment),
143797    JSXMemberExpr(&'ast JSXMemberExpr),
143798    JSXNamespacedName(&'ast JSXNamespacedName),
143799    JSXObject(&'ast JSXObject),
143800    JSXOpeningElement(&'ast JSXOpeningElement),
143801    JSXOpeningFragment(&'ast JSXOpeningFragment),
143802    JSXSpreadChild(&'ast JSXSpreadChild),
143803    JSXText(&'ast JSXText),
143804    Key(&'ast Key),
143805    KeyValuePatProp(&'ast KeyValuePatProp),
143806    KeyValueProp(&'ast KeyValueProp),
143807    LabeledStmt(&'ast LabeledStmt),
143808    Lit(&'ast Lit),
143809    MemberExpr(&'ast MemberExpr),
143810    MemberProp(&'ast MemberProp),
143811    MetaPropExpr(&'ast MetaPropExpr),
143812    MetaPropKind(&'ast MetaPropKind),
143813    MethodKind(&'ast MethodKind),
143814    MethodProp(&'ast MethodProp),
143815    Module(&'ast Module),
143816    ModuleDecl(&'ast ModuleDecl),
143817    ModuleExportName(&'ast ModuleExportName),
143818    ModuleItem(&'ast ModuleItem),
143819    NamedExport(&'ast NamedExport),
143820    NewExpr(&'ast NewExpr),
143821    Null(&'ast Null),
143822    Number(&'ast Number),
143823    ObjectLit(&'ast ObjectLit),
143824    ObjectPat(&'ast ObjectPat),
143825    ObjectPatProp(&'ast ObjectPatProp),
143826    OptCall(&'ast OptCall),
143827    OptChainBase(&'ast OptChainBase),
143828    OptChainExpr(&'ast OptChainExpr),
143829    Param(&'ast Param),
143830    ParamOrTsParamProp(&'ast ParamOrTsParamProp),
143831    ParenExpr(&'ast ParenExpr),
143832    Pat(&'ast Pat),
143833    PrivateMethod(&'ast PrivateMethod),
143834    PrivateName(&'ast PrivateName),
143835    PrivateProp(&'ast PrivateProp),
143836    Program(&'ast Program),
143837    Prop(&'ast Prop),
143838    PropName(&'ast PropName),
143839    PropOrSpread(&'ast PropOrSpread),
143840    Regex(&'ast Regex),
143841    RestPat(&'ast RestPat),
143842    ReturnStmt(&'ast ReturnStmt),
143843    Script(&'ast Script),
143844    SeqExpr(&'ast SeqExpr),
143845    SetterProp(&'ast SetterProp),
143846    SimpleAssignTarget(&'ast SimpleAssignTarget),
143847    SpreadElement(&'ast SpreadElement),
143848    StaticBlock(&'ast StaticBlock),
143849    Stmt(&'ast Stmt),
143850    Str(&'ast Str),
143851    Super(&'ast Super),
143852    SuperProp(&'ast SuperProp),
143853    SuperPropExpr(&'ast SuperPropExpr),
143854    SwitchCase(&'ast SwitchCase),
143855    SwitchStmt(&'ast SwitchStmt),
143856    TaggedTpl(&'ast TaggedTpl),
143857    ThisExpr(&'ast ThisExpr),
143858    ThrowStmt(&'ast ThrowStmt),
143859    Tpl(&'ast Tpl),
143860    TplElement(&'ast TplElement),
143861    TruePlusMinus(&'ast TruePlusMinus),
143862    TryStmt(&'ast TryStmt),
143863    TsArrayType(&'ast TsArrayType),
143864    TsAsExpr(&'ast TsAsExpr),
143865    TsCallSignatureDecl(&'ast TsCallSignatureDecl),
143866    TsConditionalType(&'ast TsConditionalType),
143867    TsConstAssertion(&'ast TsConstAssertion),
143868    TsConstructSignatureDecl(&'ast TsConstructSignatureDecl),
143869    TsConstructorType(&'ast TsConstructorType),
143870    TsEntityName(&'ast TsEntityName),
143871    TsEnumDecl(&'ast TsEnumDecl),
143872    TsEnumMember(&'ast TsEnumMember),
143873    TsEnumMemberId(&'ast TsEnumMemberId),
143874    TsExportAssignment(&'ast TsExportAssignment),
143875    TsExprWithTypeArgs(&'ast TsExprWithTypeArgs),
143876    TsExternalModuleRef(&'ast TsExternalModuleRef),
143877    TsFnOrConstructorType(&'ast TsFnOrConstructorType),
143878    TsFnParam(&'ast TsFnParam),
143879    TsFnType(&'ast TsFnType),
143880    TsGetterSignature(&'ast TsGetterSignature),
143881    TsImportCallOptions(&'ast TsImportCallOptions),
143882    TsImportEqualsDecl(&'ast TsImportEqualsDecl),
143883    TsImportType(&'ast TsImportType),
143884    TsIndexSignature(&'ast TsIndexSignature),
143885    TsIndexedAccessType(&'ast TsIndexedAccessType),
143886    TsInferType(&'ast TsInferType),
143887    TsInstantiation(&'ast TsInstantiation),
143888    TsInterfaceBody(&'ast TsInterfaceBody),
143889    TsInterfaceDecl(&'ast TsInterfaceDecl),
143890    TsIntersectionType(&'ast TsIntersectionType),
143891    TsKeywordType(&'ast TsKeywordType),
143892    TsKeywordTypeKind(&'ast TsKeywordTypeKind),
143893    TsLit(&'ast TsLit),
143894    TsLitType(&'ast TsLitType),
143895    TsMappedType(&'ast TsMappedType),
143896    TsMethodSignature(&'ast TsMethodSignature),
143897    TsModuleBlock(&'ast TsModuleBlock),
143898    TsModuleDecl(&'ast TsModuleDecl),
143899    TsModuleName(&'ast TsModuleName),
143900    TsModuleRef(&'ast TsModuleRef),
143901    TsNamespaceBody(&'ast TsNamespaceBody),
143902    TsNamespaceDecl(&'ast TsNamespaceDecl),
143903    TsNamespaceExportDecl(&'ast TsNamespaceExportDecl),
143904    TsNonNullExpr(&'ast TsNonNullExpr),
143905    TsOptionalType(&'ast TsOptionalType),
143906    TsParamProp(&'ast TsParamProp),
143907    TsParamPropParam(&'ast TsParamPropParam),
143908    TsParenthesizedType(&'ast TsParenthesizedType),
143909    TsPropertySignature(&'ast TsPropertySignature),
143910    TsQualifiedName(&'ast TsQualifiedName),
143911    TsRestType(&'ast TsRestType),
143912    TsSatisfiesExpr(&'ast TsSatisfiesExpr),
143913    TsSetterSignature(&'ast TsSetterSignature),
143914    TsThisType(&'ast TsThisType),
143915    TsThisTypeOrIdent(&'ast TsThisTypeOrIdent),
143916    TsTplLitType(&'ast TsTplLitType),
143917    TsTupleElement(&'ast TsTupleElement),
143918    TsTupleType(&'ast TsTupleType),
143919    TsType(&'ast TsType),
143920    TsTypeAliasDecl(&'ast TsTypeAliasDecl),
143921    TsTypeAnn(&'ast TsTypeAnn),
143922    TsTypeAssertion(&'ast TsTypeAssertion),
143923    TsTypeElement(&'ast TsTypeElement),
143924    TsTypeLit(&'ast TsTypeLit),
143925    TsTypeOperator(&'ast TsTypeOperator),
143926    TsTypeOperatorOp(&'ast TsTypeOperatorOp),
143927    TsTypeParam(&'ast TsTypeParam),
143928    TsTypeParamDecl(&'ast TsTypeParamDecl),
143929    TsTypeParamInstantiation(&'ast TsTypeParamInstantiation),
143930    TsTypePredicate(&'ast TsTypePredicate),
143931    TsTypeQuery(&'ast TsTypeQuery),
143932    TsTypeQueryExpr(&'ast TsTypeQueryExpr),
143933    TsTypeRef(&'ast TsTypeRef),
143934    TsUnionOrIntersectionType(&'ast TsUnionOrIntersectionType),
143935    TsUnionType(&'ast TsUnionType),
143936    UnaryExpr(&'ast UnaryExpr),
143937    UnaryOp(&'ast UnaryOp),
143938    UpdateExpr(&'ast UpdateExpr),
143939    UpdateOp(&'ast UpdateOp),
143940    UsingDecl(&'ast UsingDecl),
143941    VarDecl(&'ast VarDecl),
143942    VarDeclKind(&'ast VarDeclKind),
143943    VarDeclOrExpr(&'ast VarDeclOrExpr),
143944    VarDeclarator(&'ast VarDeclarator),
143945    WhileStmt(&'ast WhileStmt),
143946    WithStmt(&'ast WithStmt),
143947    YieldExpr(&'ast YieldExpr),
143948}
143949impl<'ast> NodeRef<'ast> {
143950    #[doc = r" This is not a part of semver-stable API. It is experimental and subject to change."]
143951    #[allow(unreachable_patterns)]
143952    pub fn experimental_raw_children<'a>(&'a self) -> Box<dyn 'a + Iterator<Item = NodeRef<'ast>>> {
143953        match self {
143954            NodeRef::Accessibility(node) => match node {
143955                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143956            },
143957            NodeRef::ArrayLit(node) => {
143958                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
143959                    node.elems.iter().flat_map(|item| {
143960                        item.iter()
143961                            .flat_map(|item| ::std::iter::once(NodeRef::ExprOrSpread(&item)))
143962                    }),
143963                );
143964                Box::new(iterator)
143965            }
143966            NodeRef::ArrayPat(node) => {
143967                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143968                    .chain(node.elems.iter().flat_map(|item| {
143969                        item.iter()
143970                            .flat_map(|item| ::std::iter::once(NodeRef::Pat(&item)))
143971                    }))
143972                    .chain(node.type_ann.iter().flat_map(|item| {
143973                        let item = &*item;
143974                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
143975                    }));
143976                Box::new(iterator)
143977            }
143978            NodeRef::ArrowExpr(node) => {
143979                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143980                    .chain(
143981                        node.params
143982                            .iter()
143983                            .flat_map(|item| ::std::iter::once(NodeRef::Pat(&item))),
143984                    )
143985                    .chain({
143986                        let item = &*node.body;
143987                        ::std::iter::once(NodeRef::BlockStmtOrExpr(&item))
143988                    })
143989                    .chain(node.type_params.iter().flat_map(|item| {
143990                        let item = &*item;
143991                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
143992                    }))
143993                    .chain(node.return_type.iter().flat_map(|item| {
143994                        let item = &*item;
143995                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
143996                    }));
143997                Box::new(iterator)
143998            }
143999            NodeRef::AssignExpr(node) => {
144000                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144001                    .chain(::std::iter::once(NodeRef::AssignOp(&node.op)))
144002                    .chain(::std::iter::once(NodeRef::AssignTarget(&node.left)))
144003                    .chain({
144004                        let item = &*node.right;
144005                        ::std::iter::once(NodeRef::Expr(&item))
144006                    });
144007                Box::new(iterator)
144008            }
144009            NodeRef::AssignOp(node) => match node {
144010                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144011            },
144012            NodeRef::AssignPat(node) => {
144013                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144014                    .chain({
144015                        let item = &*node.left;
144016                        ::std::iter::once(NodeRef::Pat(&item))
144017                    })
144018                    .chain({
144019                        let item = &*node.right;
144020                        ::std::iter::once(NodeRef::Expr(&item))
144021                    });
144022                Box::new(iterator)
144023            }
144024            NodeRef::AssignPatProp(node) => {
144025                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144026                    .chain(::std::iter::once(NodeRef::BindingIdent(&node.key)))
144027                    .chain(node.value.iter().flat_map(|item| {
144028                        let item = &*item;
144029                        ::std::iter::once(NodeRef::Expr(&item))
144030                    }));
144031                Box::new(iterator)
144032            }
144033            NodeRef::AssignProp(node) => {
144034                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144035                    .chain(::std::iter::once(NodeRef::Ident(&node.key)))
144036                    .chain({
144037                        let item = &*node.value;
144038                        ::std::iter::once(NodeRef::Expr(&item))
144039                    });
144040                Box::new(iterator)
144041            }
144042            NodeRef::AssignTarget(node) => match node {
144043                AssignTarget::Simple(v0) => {
144044                    Box::new(::std::iter::once(NodeRef::SimpleAssignTarget(v0)))
144045                }
144046                AssignTarget::Pat(v0) => Box::new(::std::iter::once(NodeRef::AssignTargetPat(v0))),
144047                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144048            },
144049            NodeRef::AssignTargetPat(node) => match node {
144050                AssignTargetPat::Array(v0) => Box::new(::std::iter::once(NodeRef::ArrayPat(v0))),
144051                AssignTargetPat::Object(v0) => Box::new(::std::iter::once(NodeRef::ObjectPat(v0))),
144052                AssignTargetPat::Invalid(v0) => Box::new(::std::iter::once(NodeRef::Invalid(v0))),
144053                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144054            },
144055            NodeRef::AutoAccessor(node) => {
144056                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144057                    .chain(::std::iter::once(NodeRef::Key(&node.key)))
144058                    .chain(node.value.iter().flat_map(|item| {
144059                        let item = &*item;
144060                        ::std::iter::once(NodeRef::Expr(&item))
144061                    }))
144062                    .chain(node.type_ann.iter().flat_map(|item| {
144063                        let item = &*item;
144064                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
144065                    }))
144066                    .chain(
144067                        node.decorators
144068                            .iter()
144069                            .flat_map(|item| ::std::iter::once(NodeRef::Decorator(&item))),
144070                    )
144071                    .chain(
144072                        node.accessibility
144073                            .iter()
144074                            .flat_map(|item| ::std::iter::once(NodeRef::Accessibility(&item))),
144075                    );
144076                Box::new(iterator)
144077            }
144078            NodeRef::AwaitExpr(node) => {
144079                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144080                    let item = &*node.arg;
144081                    ::std::iter::once(NodeRef::Expr(&item))
144082                });
144083                Box::new(iterator)
144084            }
144085            NodeRef::BigInt(node) => {
144086                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144087                Box::new(iterator)
144088            }
144089            NodeRef::BinExpr(node) => {
144090                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144091                    .chain(::std::iter::once(NodeRef::BinaryOp(&node.op)))
144092                    .chain({
144093                        let item = &*node.left;
144094                        ::std::iter::once(NodeRef::Expr(&item))
144095                    })
144096                    .chain({
144097                        let item = &*node.right;
144098                        ::std::iter::once(NodeRef::Expr(&item))
144099                    });
144100                Box::new(iterator)
144101            }
144102            NodeRef::BinaryOp(node) => match node {
144103                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144104            },
144105            NodeRef::BindingIdent(node) => {
144106                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144107                    .chain(::std::iter::once(NodeRef::Ident(&node.id)))
144108                    .chain(node.type_ann.iter().flat_map(|item| {
144109                        let item = &*item;
144110                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
144111                    }));
144112                Box::new(iterator)
144113            }
144114            NodeRef::BlockStmt(node) => {
144115                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
144116                    node.stmts
144117                        .iter()
144118                        .flat_map(|item| ::std::iter::once(NodeRef::Stmt(&item))),
144119                );
144120                Box::new(iterator)
144121            }
144122            NodeRef::BlockStmtOrExpr(node) => match node {
144123                BlockStmtOrExpr::BlockStmt(v0) => {
144124                    Box::new(::std::iter::once(NodeRef::BlockStmt(v0)))
144125                }
144126                BlockStmtOrExpr::Expr(v0) => Box::new(::std::iter::once(NodeRef::Expr(v0))),
144127                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144128            },
144129            NodeRef::Bool(node) => {
144130                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144131                Box::new(iterator)
144132            }
144133            NodeRef::BreakStmt(node) => {
144134                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
144135                    node.label
144136                        .iter()
144137                        .flat_map(|item| ::std::iter::once(NodeRef::Ident(&item))),
144138                );
144139                Box::new(iterator)
144140            }
144141            NodeRef::CallExpr(node) => {
144142                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144143                    .chain(::std::iter::once(NodeRef::Callee(&node.callee)))
144144                    .chain(
144145                        node.args
144146                            .iter()
144147                            .flat_map(|item| ::std::iter::once(NodeRef::ExprOrSpread(&item))),
144148                    )
144149                    .chain(node.type_args.iter().flat_map(|item| {
144150                        let item = &*item;
144151                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
144152                    }));
144153                Box::new(iterator)
144154            }
144155            NodeRef::Callee(node) => match node {
144156                Callee::Super(v0) => Box::new(::std::iter::once(NodeRef::Super(v0))),
144157                Callee::Import(v0) => Box::new(::std::iter::once(NodeRef::Import(v0))),
144158                Callee::Expr(v0) => Box::new(::std::iter::once(NodeRef::Expr(v0))),
144159                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144160            },
144161            NodeRef::CatchClause(node) => {
144162                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144163                    .chain(
144164                        node.param
144165                            .iter()
144166                            .flat_map(|item| ::std::iter::once(NodeRef::Pat(&item))),
144167                    )
144168                    .chain(::std::iter::once(NodeRef::BlockStmt(&node.body)));
144169                Box::new(iterator)
144170            }
144171            NodeRef::Class(node) => {
144172                let iterator =
144173                    ::std::iter::empty::<NodeRef<'ast>>()
144174                        .chain(
144175                            node.decorators
144176                                .iter()
144177                                .flat_map(|item| ::std::iter::once(NodeRef::Decorator(&item))),
144178                        )
144179                        .chain(
144180                            node.body
144181                                .iter()
144182                                .flat_map(|item| ::std::iter::once(NodeRef::ClassMember(&item))),
144183                        )
144184                        .chain(node.super_class.iter().flat_map(|item| {
144185                            let item = &*item;
144186                            ::std::iter::once(NodeRef::Expr(&item))
144187                        }))
144188                        .chain(node.type_params.iter().flat_map(|item| {
144189                            let item = &*item;
144190                            ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
144191                        }))
144192                        .chain(node.super_type_params.iter().flat_map(|item| {
144193                            let item = &*item;
144194                            ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
144195                        }))
144196                        .chain(node.implements.iter().flat_map(|item| {
144197                            ::std::iter::once(NodeRef::TsExprWithTypeArgs(&item))
144198                        }));
144199                Box::new(iterator)
144200            }
144201            NodeRef::ClassDecl(node) => {
144202                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144203                    .chain(::std::iter::once(NodeRef::Ident(&node.ident)))
144204                    .chain({
144205                        let item = &*node.class;
144206                        ::std::iter::once(NodeRef::Class(&item))
144207                    });
144208                Box::new(iterator)
144209            }
144210            NodeRef::ClassExpr(node) => {
144211                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144212                    .chain(
144213                        node.ident
144214                            .iter()
144215                            .flat_map(|item| ::std::iter::once(NodeRef::Ident(&item))),
144216                    )
144217                    .chain({
144218                        let item = &*node.class;
144219                        ::std::iter::once(NodeRef::Class(&item))
144220                    });
144221                Box::new(iterator)
144222            }
144223            NodeRef::ClassMember(node) => match node {
144224                ClassMember::Constructor(v0) => {
144225                    Box::new(::std::iter::once(NodeRef::Constructor(v0)))
144226                }
144227                ClassMember::Method(v0) => Box::new(::std::iter::once(NodeRef::ClassMethod(v0))),
144228                ClassMember::PrivateMethod(v0) => {
144229                    Box::new(::std::iter::once(NodeRef::PrivateMethod(v0)))
144230                }
144231                ClassMember::ClassProp(v0) => Box::new(::std::iter::once(NodeRef::ClassProp(v0))),
144232                ClassMember::PrivateProp(v0) => {
144233                    Box::new(::std::iter::once(NodeRef::PrivateProp(v0)))
144234                }
144235                ClassMember::TsIndexSignature(v0) => {
144236                    Box::new(::std::iter::once(NodeRef::TsIndexSignature(v0)))
144237                }
144238                ClassMember::Empty(v0) => Box::new(::std::iter::once(NodeRef::EmptyStmt(v0))),
144239                ClassMember::StaticBlock(v0) => {
144240                    Box::new(::std::iter::once(NodeRef::StaticBlock(v0)))
144241                }
144242                ClassMember::AutoAccessor(v0) => {
144243                    Box::new(::std::iter::once(NodeRef::AutoAccessor(v0)))
144244                }
144245                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144246            },
144247            NodeRef::ClassMethod(node) => {
144248                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144249                    .chain(::std::iter::once(NodeRef::PropName(&node.key)))
144250                    .chain({
144251                        let item = &*node.function;
144252                        ::std::iter::once(NodeRef::Function(&item))
144253                    })
144254                    .chain(::std::iter::once(NodeRef::MethodKind(&node.kind)))
144255                    .chain(
144256                        node.accessibility
144257                            .iter()
144258                            .flat_map(|item| ::std::iter::once(NodeRef::Accessibility(&item))),
144259                    );
144260                Box::new(iterator)
144261            }
144262            NodeRef::ClassProp(node) => {
144263                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144264                    .chain(::std::iter::once(NodeRef::PropName(&node.key)))
144265                    .chain(node.value.iter().flat_map(|item| {
144266                        let item = &*item;
144267                        ::std::iter::once(NodeRef::Expr(&item))
144268                    }))
144269                    .chain(node.type_ann.iter().flat_map(|item| {
144270                        let item = &*item;
144271                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
144272                    }))
144273                    .chain(
144274                        node.decorators
144275                            .iter()
144276                            .flat_map(|item| ::std::iter::once(NodeRef::Decorator(&item))),
144277                    )
144278                    .chain(
144279                        node.accessibility
144280                            .iter()
144281                            .flat_map(|item| ::std::iter::once(NodeRef::Accessibility(&item))),
144282                    );
144283                Box::new(iterator)
144284            }
144285            NodeRef::ComputedPropName(node) => {
144286                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144287                    let item = &*node.expr;
144288                    ::std::iter::once(NodeRef::Expr(&item))
144289                });
144290                Box::new(iterator)
144291            }
144292            NodeRef::CondExpr(node) => {
144293                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144294                    .chain({
144295                        let item = &*node.test;
144296                        ::std::iter::once(NodeRef::Expr(&item))
144297                    })
144298                    .chain({
144299                        let item = &*node.cons;
144300                        ::std::iter::once(NodeRef::Expr(&item))
144301                    })
144302                    .chain({
144303                        let item = &*node.alt;
144304                        ::std::iter::once(NodeRef::Expr(&item))
144305                    });
144306                Box::new(iterator)
144307            }
144308            NodeRef::Constructor(node) => {
144309                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144310                    .chain(::std::iter::once(NodeRef::PropName(&node.key)))
144311                    .chain(
144312                        node.params
144313                            .iter()
144314                            .flat_map(|item| ::std::iter::once(NodeRef::ParamOrTsParamProp(&item))),
144315                    )
144316                    .chain(
144317                        node.body
144318                            .iter()
144319                            .flat_map(|item| ::std::iter::once(NodeRef::BlockStmt(&item))),
144320                    )
144321                    .chain(
144322                        node.accessibility
144323                            .iter()
144324                            .flat_map(|item| ::std::iter::once(NodeRef::Accessibility(&item))),
144325                    );
144326                Box::new(iterator)
144327            }
144328            NodeRef::ContinueStmt(node) => {
144329                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
144330                    node.label
144331                        .iter()
144332                        .flat_map(|item| ::std::iter::once(NodeRef::Ident(&item))),
144333                );
144334                Box::new(iterator)
144335            }
144336            NodeRef::DebuggerStmt(node) => {
144337                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144338                Box::new(iterator)
144339            }
144340            NodeRef::Decl(node) => match node {
144341                Decl::Class(v0) => Box::new(::std::iter::once(NodeRef::ClassDecl(v0))),
144342                Decl::Fn(v0) => Box::new(::std::iter::once(NodeRef::FnDecl(v0))),
144343                Decl::Var(v0) => Box::new(::std::iter::once(NodeRef::VarDecl(v0))),
144344                Decl::Using(v0) => Box::new(::std::iter::once(NodeRef::UsingDecl(v0))),
144345                Decl::TsInterface(v0) => Box::new(::std::iter::once(NodeRef::TsInterfaceDecl(v0))),
144346                Decl::TsTypeAlias(v0) => Box::new(::std::iter::once(NodeRef::TsTypeAliasDecl(v0))),
144347                Decl::TsEnum(v0) => Box::new(::std::iter::once(NodeRef::TsEnumDecl(v0))),
144348                Decl::TsModule(v0) => Box::new(::std::iter::once(NodeRef::TsModuleDecl(v0))),
144349                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144350            },
144351            NodeRef::Decorator(node) => {
144352                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144353                    let item = &*node.expr;
144354                    ::std::iter::once(NodeRef::Expr(&item))
144355                });
144356                Box::new(iterator)
144357            }
144358            NodeRef::DefaultDecl(node) => match node {
144359                DefaultDecl::Class(v0) => Box::new(::std::iter::once(NodeRef::ClassExpr(v0))),
144360                DefaultDecl::Fn(v0) => Box::new(::std::iter::once(NodeRef::FnExpr(v0))),
144361                DefaultDecl::TsInterfaceDecl(v0) => {
144362                    Box::new(::std::iter::once(NodeRef::TsInterfaceDecl(v0)))
144363                }
144364                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144365            },
144366            NodeRef::DoWhileStmt(node) => {
144367                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144368                    .chain({
144369                        let item = &*node.test;
144370                        ::std::iter::once(NodeRef::Expr(&item))
144371                    })
144372                    .chain({
144373                        let item = &*node.body;
144374                        ::std::iter::once(NodeRef::Stmt(&item))
144375                    });
144376                Box::new(iterator)
144377            }
144378            NodeRef::EmptyStmt(node) => {
144379                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144380                Box::new(iterator)
144381            }
144382            NodeRef::ExportAll(node) => {
144383                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144384                    .chain({
144385                        let item = &*node.src;
144386                        ::std::iter::once(NodeRef::Str(&item))
144387                    })
144388                    .chain(node.with.iter().flat_map(|item| {
144389                        let item = &*item;
144390                        ::std::iter::once(NodeRef::ObjectLit(&item))
144391                    }));
144392                Box::new(iterator)
144393            }
144394            NodeRef::ExportDecl(node) => {
144395                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144396                    .chain(::std::iter::once(NodeRef::Decl(&node.decl)));
144397                Box::new(iterator)
144398            }
144399            NodeRef::ExportDefaultDecl(node) => {
144400                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144401                    .chain(::std::iter::once(NodeRef::DefaultDecl(&node.decl)));
144402                Box::new(iterator)
144403            }
144404            NodeRef::ExportDefaultExpr(node) => {
144405                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144406                    let item = &*node.expr;
144407                    ::std::iter::once(NodeRef::Expr(&item))
144408                });
144409                Box::new(iterator)
144410            }
144411            NodeRef::ExportDefaultSpecifier(node) => {
144412                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144413                    .chain(::std::iter::once(NodeRef::Ident(&node.exported)));
144414                Box::new(iterator)
144415            }
144416            NodeRef::ExportNamedSpecifier(node) => {
144417                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144418                    .chain(::std::iter::once(NodeRef::ModuleExportName(&node.orig)))
144419                    .chain(
144420                        node.exported
144421                            .iter()
144422                            .flat_map(|item| ::std::iter::once(NodeRef::ModuleExportName(&item))),
144423                    );
144424                Box::new(iterator)
144425            }
144426            NodeRef::ExportNamespaceSpecifier(node) => {
144427                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144428                    .chain(::std::iter::once(NodeRef::ModuleExportName(&node.name)));
144429                Box::new(iterator)
144430            }
144431            NodeRef::ExportSpecifier(node) => match node {
144432                ExportSpecifier::Namespace(v0) => {
144433                    Box::new(::std::iter::once(NodeRef::ExportNamespaceSpecifier(v0)))
144434                }
144435                ExportSpecifier::Default(v0) => {
144436                    Box::new(::std::iter::once(NodeRef::ExportDefaultSpecifier(v0)))
144437                }
144438                ExportSpecifier::Named(v0) => {
144439                    Box::new(::std::iter::once(NodeRef::ExportNamedSpecifier(v0)))
144440                }
144441                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144442            },
144443            NodeRef::Expr(node) => match node {
144444                Expr::This(v0) => Box::new(::std::iter::once(NodeRef::ThisExpr(v0))),
144445                Expr::Array(v0) => Box::new(::std::iter::once(NodeRef::ArrayLit(v0))),
144446                Expr::Object(v0) => Box::new(::std::iter::once(NodeRef::ObjectLit(v0))),
144447                Expr::Fn(v0) => Box::new(::std::iter::once(NodeRef::FnExpr(v0))),
144448                Expr::Unary(v0) => Box::new(::std::iter::once(NodeRef::UnaryExpr(v0))),
144449                Expr::Update(v0) => Box::new(::std::iter::once(NodeRef::UpdateExpr(v0))),
144450                Expr::Bin(v0) => Box::new(::std::iter::once(NodeRef::BinExpr(v0))),
144451                Expr::Assign(v0) => Box::new(::std::iter::once(NodeRef::AssignExpr(v0))),
144452                Expr::Member(v0) => Box::new(::std::iter::once(NodeRef::MemberExpr(v0))),
144453                Expr::SuperProp(v0) => Box::new(::std::iter::once(NodeRef::SuperPropExpr(v0))),
144454                Expr::Cond(v0) => Box::new(::std::iter::once(NodeRef::CondExpr(v0))),
144455                Expr::Call(v0) => Box::new(::std::iter::once(NodeRef::CallExpr(v0))),
144456                Expr::New(v0) => Box::new(::std::iter::once(NodeRef::NewExpr(v0))),
144457                Expr::Seq(v0) => Box::new(::std::iter::once(NodeRef::SeqExpr(v0))),
144458                Expr::Ident(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
144459                Expr::Lit(v0) => Box::new(::std::iter::once(NodeRef::Lit(v0))),
144460                Expr::Tpl(v0) => Box::new(::std::iter::once(NodeRef::Tpl(v0))),
144461                Expr::TaggedTpl(v0) => Box::new(::std::iter::once(NodeRef::TaggedTpl(v0))),
144462                Expr::Arrow(v0) => Box::new(::std::iter::once(NodeRef::ArrowExpr(v0))),
144463                Expr::Class(v0) => Box::new(::std::iter::once(NodeRef::ClassExpr(v0))),
144464                Expr::Yield(v0) => Box::new(::std::iter::once(NodeRef::YieldExpr(v0))),
144465                Expr::MetaProp(v0) => Box::new(::std::iter::once(NodeRef::MetaPropExpr(v0))),
144466                Expr::Await(v0) => Box::new(::std::iter::once(NodeRef::AwaitExpr(v0))),
144467                Expr::Paren(v0) => Box::new(::std::iter::once(NodeRef::ParenExpr(v0))),
144468                Expr::JSXMember(v0) => Box::new(::std::iter::once(NodeRef::JSXMemberExpr(v0))),
144469                Expr::JSXNamespacedName(v0) => {
144470                    Box::new(::std::iter::once(NodeRef::JSXNamespacedName(v0)))
144471                }
144472                Expr::JSXEmpty(v0) => Box::new(::std::iter::once(NodeRef::JSXEmptyExpr(v0))),
144473                Expr::JSXElement(v0) => Box::new(::std::iter::once(NodeRef::JSXElement(v0))),
144474                Expr::JSXFragment(v0) => Box::new(::std::iter::once(NodeRef::JSXFragment(v0))),
144475                Expr::TsTypeAssertion(v0) => {
144476                    Box::new(::std::iter::once(NodeRef::TsTypeAssertion(v0)))
144477                }
144478                Expr::TsConstAssertion(v0) => {
144479                    Box::new(::std::iter::once(NodeRef::TsConstAssertion(v0)))
144480                }
144481                Expr::TsNonNull(v0) => Box::new(::std::iter::once(NodeRef::TsNonNullExpr(v0))),
144482                Expr::TsAs(v0) => Box::new(::std::iter::once(NodeRef::TsAsExpr(v0))),
144483                Expr::TsInstantiation(v0) => {
144484                    Box::new(::std::iter::once(NodeRef::TsInstantiation(v0)))
144485                }
144486                Expr::TsSatisfies(v0) => Box::new(::std::iter::once(NodeRef::TsSatisfiesExpr(v0))),
144487                Expr::PrivateName(v0) => Box::new(::std::iter::once(NodeRef::PrivateName(v0))),
144488                Expr::OptChain(v0) => Box::new(::std::iter::once(NodeRef::OptChainExpr(v0))),
144489                Expr::Invalid(v0) => Box::new(::std::iter::once(NodeRef::Invalid(v0))),
144490                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144491            },
144492            NodeRef::ExprOrSpread(node) => {
144493                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144494                    let item = &*node.expr;
144495                    ::std::iter::once(NodeRef::Expr(&item))
144496                });
144497                Box::new(iterator)
144498            }
144499            NodeRef::ExprStmt(node) => {
144500                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144501                    let item = &*node.expr;
144502                    ::std::iter::once(NodeRef::Expr(&item))
144503                });
144504                Box::new(iterator)
144505            }
144506            NodeRef::FnDecl(node) => {
144507                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144508                    .chain(::std::iter::once(NodeRef::Ident(&node.ident)))
144509                    .chain({
144510                        let item = &*node.function;
144511                        ::std::iter::once(NodeRef::Function(&item))
144512                    });
144513                Box::new(iterator)
144514            }
144515            NodeRef::FnExpr(node) => {
144516                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144517                    .chain(
144518                        node.ident
144519                            .iter()
144520                            .flat_map(|item| ::std::iter::once(NodeRef::Ident(&item))),
144521                    )
144522                    .chain({
144523                        let item = &*node.function;
144524                        ::std::iter::once(NodeRef::Function(&item))
144525                    });
144526                Box::new(iterator)
144527            }
144528            NodeRef::ForHead(node) => match node {
144529                ForHead::VarDecl(v0) => Box::new(::std::iter::once(NodeRef::VarDecl(v0))),
144530                ForHead::UsingDecl(v0) => Box::new(::std::iter::once(NodeRef::UsingDecl(v0))),
144531                ForHead::Pat(v0) => Box::new(::std::iter::once(NodeRef::Pat(v0))),
144532                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144533            },
144534            NodeRef::ForInStmt(node) => {
144535                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144536                    .chain(::std::iter::once(NodeRef::ForHead(&node.left)))
144537                    .chain({
144538                        let item = &*node.right;
144539                        ::std::iter::once(NodeRef::Expr(&item))
144540                    })
144541                    .chain({
144542                        let item = &*node.body;
144543                        ::std::iter::once(NodeRef::Stmt(&item))
144544                    });
144545                Box::new(iterator)
144546            }
144547            NodeRef::ForOfStmt(node) => {
144548                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144549                    .chain(::std::iter::once(NodeRef::ForHead(&node.left)))
144550                    .chain({
144551                        let item = &*node.right;
144552                        ::std::iter::once(NodeRef::Expr(&item))
144553                    })
144554                    .chain({
144555                        let item = &*node.body;
144556                        ::std::iter::once(NodeRef::Stmt(&item))
144557                    });
144558                Box::new(iterator)
144559            }
144560            NodeRef::ForStmt(node) => {
144561                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144562                    .chain(
144563                        node.init
144564                            .iter()
144565                            .flat_map(|item| ::std::iter::once(NodeRef::VarDeclOrExpr(&item))),
144566                    )
144567                    .chain(node.test.iter().flat_map(|item| {
144568                        let item = &*item;
144569                        ::std::iter::once(NodeRef::Expr(&item))
144570                    }))
144571                    .chain(node.update.iter().flat_map(|item| {
144572                        let item = &*item;
144573                        ::std::iter::once(NodeRef::Expr(&item))
144574                    }))
144575                    .chain({
144576                        let item = &*node.body;
144577                        ::std::iter::once(NodeRef::Stmt(&item))
144578                    });
144579                Box::new(iterator)
144580            }
144581            NodeRef::Function(node) => {
144582                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144583                    .chain(
144584                        node.params
144585                            .iter()
144586                            .flat_map(|item| ::std::iter::once(NodeRef::Param(&item))),
144587                    )
144588                    .chain(
144589                        node.decorators
144590                            .iter()
144591                            .flat_map(|item| ::std::iter::once(NodeRef::Decorator(&item))),
144592                    )
144593                    .chain(
144594                        node.body
144595                            .iter()
144596                            .flat_map(|item| ::std::iter::once(NodeRef::BlockStmt(&item))),
144597                    )
144598                    .chain(node.type_params.iter().flat_map(|item| {
144599                        let item = &*item;
144600                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
144601                    }))
144602                    .chain(node.return_type.iter().flat_map(|item| {
144603                        let item = &*item;
144604                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
144605                    }));
144606                Box::new(iterator)
144607            }
144608            NodeRef::GetterProp(node) => {
144609                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144610                    .chain(::std::iter::once(NodeRef::PropName(&node.key)))
144611                    .chain(node.type_ann.iter().flat_map(|item| {
144612                        let item = &*item;
144613                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
144614                    }))
144615                    .chain(
144616                        node.body
144617                            .iter()
144618                            .flat_map(|item| ::std::iter::once(NodeRef::BlockStmt(&item))),
144619                    );
144620                Box::new(iterator)
144621            }
144622            NodeRef::Ident(node) => {
144623                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144624                Box::new(iterator)
144625            }
144626            NodeRef::IdentName(node) => {
144627                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144628                Box::new(iterator)
144629            }
144630            NodeRef::IfStmt(node) => {
144631                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144632                    .chain({
144633                        let item = &*node.test;
144634                        ::std::iter::once(NodeRef::Expr(&item))
144635                    })
144636                    .chain({
144637                        let item = &*node.cons;
144638                        ::std::iter::once(NodeRef::Stmt(&item))
144639                    })
144640                    .chain(node.alt.iter().flat_map(|item| {
144641                        let item = &*item;
144642                        ::std::iter::once(NodeRef::Stmt(&item))
144643                    }));
144644                Box::new(iterator)
144645            }
144646            NodeRef::Import(node) => {
144647                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144648                    .chain(::std::iter::once(NodeRef::ImportPhase(&node.phase)));
144649                Box::new(iterator)
144650            }
144651            NodeRef::ImportDecl(node) => {
144652                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144653                    .chain(
144654                        node.specifiers
144655                            .iter()
144656                            .flat_map(|item| ::std::iter::once(NodeRef::ImportSpecifier(&item))),
144657                    )
144658                    .chain({
144659                        let item = &*node.src;
144660                        ::std::iter::once(NodeRef::Str(&item))
144661                    })
144662                    .chain(node.with.iter().flat_map(|item| {
144663                        let item = &*item;
144664                        ::std::iter::once(NodeRef::ObjectLit(&item))
144665                    }))
144666                    .chain(::std::iter::once(NodeRef::ImportPhase(&node.phase)));
144667                Box::new(iterator)
144668            }
144669            NodeRef::ImportDefaultSpecifier(node) => {
144670                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144671                    .chain(::std::iter::once(NodeRef::Ident(&node.local)));
144672                Box::new(iterator)
144673            }
144674            NodeRef::ImportNamedSpecifier(node) => {
144675                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144676                    .chain(::std::iter::once(NodeRef::Ident(&node.local)))
144677                    .chain(
144678                        node.imported
144679                            .iter()
144680                            .flat_map(|item| ::std::iter::once(NodeRef::ModuleExportName(&item))),
144681                    );
144682                Box::new(iterator)
144683            }
144684            NodeRef::ImportPhase(node) => match node {
144685                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144686            },
144687            NodeRef::ImportSpecifier(node) => match node {
144688                ImportSpecifier::Named(v0) => {
144689                    Box::new(::std::iter::once(NodeRef::ImportNamedSpecifier(v0)))
144690                }
144691                ImportSpecifier::Default(v0) => {
144692                    Box::new(::std::iter::once(NodeRef::ImportDefaultSpecifier(v0)))
144693                }
144694                ImportSpecifier::Namespace(v0) => {
144695                    Box::new(::std::iter::once(NodeRef::ImportStarAsSpecifier(v0)))
144696                }
144697                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144698            },
144699            NodeRef::ImportStarAsSpecifier(node) => {
144700                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144701                    .chain(::std::iter::once(NodeRef::Ident(&node.local)));
144702                Box::new(iterator)
144703            }
144704            NodeRef::ImportWith(node) => {
144705                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
144706                    node.values
144707                        .iter()
144708                        .flat_map(|item| ::std::iter::once(NodeRef::ImportWithItem(&item))),
144709                );
144710                Box::new(iterator)
144711            }
144712            NodeRef::ImportWithItem(node) => {
144713                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144714                    .chain(::std::iter::once(NodeRef::IdentName(&node.key)))
144715                    .chain(::std::iter::once(NodeRef::Str(&node.value)));
144716                Box::new(iterator)
144717            }
144718            NodeRef::Invalid(node) => {
144719                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144720                Box::new(iterator)
144721            }
144722            NodeRef::JSXAttr(node) => {
144723                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144724                    .chain(::std::iter::once(NodeRef::JSXAttrName(&node.name)))
144725                    .chain(
144726                        node.value
144727                            .iter()
144728                            .flat_map(|item| ::std::iter::once(NodeRef::JSXAttrValue(&item))),
144729                    );
144730                Box::new(iterator)
144731            }
144732            NodeRef::JSXAttrName(node) => match node {
144733                JSXAttrName::Ident(v0) => Box::new(::std::iter::once(NodeRef::IdentName(v0))),
144734                JSXAttrName::JSXNamespacedName(v0) => {
144735                    Box::new(::std::iter::once(NodeRef::JSXNamespacedName(v0)))
144736                }
144737                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144738            },
144739            NodeRef::JSXAttrOrSpread(node) => match node {
144740                JSXAttrOrSpread::JSXAttr(v0) => Box::new(::std::iter::once(NodeRef::JSXAttr(v0))),
144741                JSXAttrOrSpread::SpreadElement(v0) => {
144742                    Box::new(::std::iter::once(NodeRef::SpreadElement(v0)))
144743                }
144744                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144745            },
144746            NodeRef::JSXAttrValue(node) => match node {
144747                JSXAttrValue::Lit(v0) => Box::new(::std::iter::once(NodeRef::Lit(v0))),
144748                JSXAttrValue::JSXExprContainer(v0) => {
144749                    Box::new(::std::iter::once(NodeRef::JSXExprContainer(v0)))
144750                }
144751                JSXAttrValue::JSXElement(v0) => {
144752                    Box::new(::std::iter::once(NodeRef::JSXElement(v0)))
144753                }
144754                JSXAttrValue::JSXFragment(v0) => {
144755                    Box::new(::std::iter::once(NodeRef::JSXFragment(v0)))
144756                }
144757                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144758            },
144759            NodeRef::JSXClosingElement(node) => {
144760                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144761                    .chain(::std::iter::once(NodeRef::JSXElementName(&node.name)));
144762                Box::new(iterator)
144763            }
144764            NodeRef::JSXClosingFragment(node) => {
144765                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144766                Box::new(iterator)
144767            }
144768            NodeRef::JSXElement(node) => {
144769                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144770                    .chain(::std::iter::once(NodeRef::JSXOpeningElement(&node.opening)))
144771                    .chain(
144772                        node.children
144773                            .iter()
144774                            .flat_map(|item| ::std::iter::once(NodeRef::JSXElementChild(&item))),
144775                    )
144776                    .chain(
144777                        node.closing
144778                            .iter()
144779                            .flat_map(|item| ::std::iter::once(NodeRef::JSXClosingElement(&item))),
144780                    );
144781                Box::new(iterator)
144782            }
144783            NodeRef::JSXElementChild(node) => match node {
144784                JSXElementChild::JSXText(v0) => Box::new(::std::iter::once(NodeRef::JSXText(v0))),
144785                JSXElementChild::JSXExprContainer(v0) => {
144786                    Box::new(::std::iter::once(NodeRef::JSXExprContainer(v0)))
144787                }
144788                JSXElementChild::JSXSpreadChild(v0) => {
144789                    Box::new(::std::iter::once(NodeRef::JSXSpreadChild(v0)))
144790                }
144791                JSXElementChild::JSXElement(v0) => {
144792                    Box::new(::std::iter::once(NodeRef::JSXElement(v0)))
144793                }
144794                JSXElementChild::JSXFragment(v0) => {
144795                    Box::new(::std::iter::once(NodeRef::JSXFragment(v0)))
144796                }
144797                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144798            },
144799            NodeRef::JSXElementName(node) => match node {
144800                JSXElementName::Ident(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
144801                JSXElementName::JSXMemberExpr(v0) => {
144802                    Box::new(::std::iter::once(NodeRef::JSXMemberExpr(v0)))
144803                }
144804                JSXElementName::JSXNamespacedName(v0) => {
144805                    Box::new(::std::iter::once(NodeRef::JSXNamespacedName(v0)))
144806                }
144807                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144808            },
144809            NodeRef::JSXEmptyExpr(node) => {
144810                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144811                Box::new(iterator)
144812            }
144813            NodeRef::JSXExpr(node) => match node {
144814                JSXExpr::JSXEmptyExpr(v0) => Box::new(::std::iter::once(NodeRef::JSXEmptyExpr(v0))),
144815                JSXExpr::Expr(v0) => Box::new(::std::iter::once(NodeRef::Expr(v0))),
144816                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144817            },
144818            NodeRef::JSXExprContainer(node) => {
144819                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144820                    .chain(::std::iter::once(NodeRef::JSXExpr(&node.expr)));
144821                Box::new(iterator)
144822            }
144823            NodeRef::JSXFragment(node) => {
144824                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144825                    .chain(::std::iter::once(NodeRef::JSXOpeningFragment(
144826                        &node.opening,
144827                    )))
144828                    .chain(
144829                        node.children
144830                            .iter()
144831                            .flat_map(|item| ::std::iter::once(NodeRef::JSXElementChild(&item))),
144832                    )
144833                    .chain(::std::iter::once(NodeRef::JSXClosingFragment(
144834                        &node.closing,
144835                    )));
144836                Box::new(iterator)
144837            }
144838            NodeRef::JSXMemberExpr(node) => {
144839                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144840                    .chain(::std::iter::once(NodeRef::JSXObject(&node.obj)))
144841                    .chain(::std::iter::once(NodeRef::IdentName(&node.prop)));
144842                Box::new(iterator)
144843            }
144844            NodeRef::JSXNamespacedName(node) => {
144845                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144846                    .chain(::std::iter::once(NodeRef::IdentName(&node.ns)))
144847                    .chain(::std::iter::once(NodeRef::IdentName(&node.name)));
144848                Box::new(iterator)
144849            }
144850            NodeRef::JSXObject(node) => match node {
144851                JSXObject::JSXMemberExpr(v0) => {
144852                    Box::new(::std::iter::once(NodeRef::JSXMemberExpr(v0)))
144853                }
144854                JSXObject::Ident(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
144855                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144856            },
144857            NodeRef::JSXOpeningElement(node) => {
144858                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144859                    .chain(::std::iter::once(NodeRef::JSXElementName(&node.name)))
144860                    .chain(
144861                        node.attrs
144862                            .iter()
144863                            .flat_map(|item| ::std::iter::once(NodeRef::JSXAttrOrSpread(&item))),
144864                    )
144865                    .chain(node.type_args.iter().flat_map(|item| {
144866                        let item = &*item;
144867                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
144868                    }));
144869                Box::new(iterator)
144870            }
144871            NodeRef::JSXOpeningFragment(node) => {
144872                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144873                Box::new(iterator)
144874            }
144875            NodeRef::JSXSpreadChild(node) => {
144876                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144877                    let item = &*node.expr;
144878                    ::std::iter::once(NodeRef::Expr(&item))
144879                });
144880                Box::new(iterator)
144881            }
144882            NodeRef::JSXText(node) => {
144883                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144884                Box::new(iterator)
144885            }
144886            NodeRef::Key(node) => match node {
144887                Key::Private(v0) => Box::new(::std::iter::once(NodeRef::PrivateName(v0))),
144888                Key::Public(v0) => Box::new(::std::iter::once(NodeRef::PropName(v0))),
144889                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144890            },
144891            NodeRef::KeyValuePatProp(node) => {
144892                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144893                    .chain(::std::iter::once(NodeRef::PropName(&node.key)))
144894                    .chain({
144895                        let item = &*node.value;
144896                        ::std::iter::once(NodeRef::Pat(&item))
144897                    });
144898                Box::new(iterator)
144899            }
144900            NodeRef::KeyValueProp(node) => {
144901                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144902                    .chain(::std::iter::once(NodeRef::PropName(&node.key)))
144903                    .chain({
144904                        let item = &*node.value;
144905                        ::std::iter::once(NodeRef::Expr(&item))
144906                    });
144907                Box::new(iterator)
144908            }
144909            NodeRef::LabeledStmt(node) => {
144910                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144911                    .chain(::std::iter::once(NodeRef::Ident(&node.label)))
144912                    .chain({
144913                        let item = &*node.body;
144914                        ::std::iter::once(NodeRef::Stmt(&item))
144915                    });
144916                Box::new(iterator)
144917            }
144918            NodeRef::Lit(node) => match node {
144919                Lit::Str(v0) => Box::new(::std::iter::once(NodeRef::Str(v0))),
144920                Lit::Bool(v0) => Box::new(::std::iter::once(NodeRef::Bool(v0))),
144921                Lit::Null(v0) => Box::new(::std::iter::once(NodeRef::Null(v0))),
144922                Lit::Num(v0) => Box::new(::std::iter::once(NodeRef::Number(v0))),
144923                Lit::BigInt(v0) => Box::new(::std::iter::once(NodeRef::BigInt(v0))),
144924                Lit::Regex(v0) => Box::new(::std::iter::once(NodeRef::Regex(v0))),
144925                Lit::JSXText(v0) => Box::new(::std::iter::once(NodeRef::JSXText(v0))),
144926                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144927            },
144928            NodeRef::MemberExpr(node) => {
144929                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144930                    .chain({
144931                        let item = &*node.obj;
144932                        ::std::iter::once(NodeRef::Expr(&item))
144933                    })
144934                    .chain(::std::iter::once(NodeRef::MemberProp(&node.prop)));
144935                Box::new(iterator)
144936            }
144937            NodeRef::MemberProp(node) => match node {
144938                MemberProp::Ident(v0) => Box::new(::std::iter::once(NodeRef::IdentName(v0))),
144939                MemberProp::PrivateName(v0) => {
144940                    Box::new(::std::iter::once(NodeRef::PrivateName(v0)))
144941                }
144942                MemberProp::Computed(v0) => {
144943                    Box::new(::std::iter::once(NodeRef::ComputedPropName(v0)))
144944                }
144945                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144946            },
144947            NodeRef::MetaPropExpr(node) => {
144948                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144949                    .chain(::std::iter::once(NodeRef::MetaPropKind(&node.kind)));
144950                Box::new(iterator)
144951            }
144952            NodeRef::MetaPropKind(node) => match node {
144953                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144954            },
144955            NodeRef::MethodKind(node) => match node {
144956                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144957            },
144958            NodeRef::MethodProp(node) => {
144959                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144960                    .chain(::std::iter::once(NodeRef::PropName(&node.key)))
144961                    .chain({
144962                        let item = &*node.function;
144963                        ::std::iter::once(NodeRef::Function(&item))
144964                    });
144965                Box::new(iterator)
144966            }
144967            NodeRef::Module(node) => {
144968                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
144969                    node.body
144970                        .iter()
144971                        .flat_map(|item| ::std::iter::once(NodeRef::ModuleItem(&item))),
144972                );
144973                Box::new(iterator)
144974            }
144975            NodeRef::ModuleDecl(node) => match node {
144976                ModuleDecl::Import(v0) => Box::new(::std::iter::once(NodeRef::ImportDecl(v0))),
144977                ModuleDecl::ExportDecl(v0) => Box::new(::std::iter::once(NodeRef::ExportDecl(v0))),
144978                ModuleDecl::ExportNamed(v0) => {
144979                    Box::new(::std::iter::once(NodeRef::NamedExport(v0)))
144980                }
144981                ModuleDecl::ExportDefaultDecl(v0) => {
144982                    Box::new(::std::iter::once(NodeRef::ExportDefaultDecl(v0)))
144983                }
144984                ModuleDecl::ExportDefaultExpr(v0) => {
144985                    Box::new(::std::iter::once(NodeRef::ExportDefaultExpr(v0)))
144986                }
144987                ModuleDecl::ExportAll(v0) => Box::new(::std::iter::once(NodeRef::ExportAll(v0))),
144988                ModuleDecl::TsImportEquals(v0) => {
144989                    Box::new(::std::iter::once(NodeRef::TsImportEqualsDecl(v0)))
144990                }
144991                ModuleDecl::TsExportAssignment(v0) => {
144992                    Box::new(::std::iter::once(NodeRef::TsExportAssignment(v0)))
144993                }
144994                ModuleDecl::TsNamespaceExport(v0) => {
144995                    Box::new(::std::iter::once(NodeRef::TsNamespaceExportDecl(v0)))
144996                }
144997                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144998            },
144999            NodeRef::ModuleExportName(node) => match node {
145000                ModuleExportName::Ident(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
145001                ModuleExportName::Str(v0) => Box::new(::std::iter::once(NodeRef::Str(v0))),
145002                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145003            },
145004            NodeRef::ModuleItem(node) => match node {
145005                ModuleItem::ModuleDecl(v0) => Box::new(::std::iter::once(NodeRef::ModuleDecl(v0))),
145006                ModuleItem::Stmt(v0) => Box::new(::std::iter::once(NodeRef::Stmt(v0))),
145007                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145008            },
145009            NodeRef::NamedExport(node) => {
145010                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145011                    .chain(
145012                        node.specifiers
145013                            .iter()
145014                            .flat_map(|item| ::std::iter::once(NodeRef::ExportSpecifier(&item))),
145015                    )
145016                    .chain(node.src.iter().flat_map(|item| {
145017                        let item = &*item;
145018                        ::std::iter::once(NodeRef::Str(&item))
145019                    }))
145020                    .chain(node.with.iter().flat_map(|item| {
145021                        let item = &*item;
145022                        ::std::iter::once(NodeRef::ObjectLit(&item))
145023                    }));
145024                Box::new(iterator)
145025            }
145026            NodeRef::NewExpr(node) => {
145027                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145028                    .chain({
145029                        let item = &*node.callee;
145030                        ::std::iter::once(NodeRef::Expr(&item))
145031                    })
145032                    .chain(node.args.iter().flat_map(|item| {
145033                        item.iter()
145034                            .flat_map(|item| ::std::iter::once(NodeRef::ExprOrSpread(&item)))
145035                    }))
145036                    .chain(node.type_args.iter().flat_map(|item| {
145037                        let item = &*item;
145038                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
145039                    }));
145040                Box::new(iterator)
145041            }
145042            NodeRef::Null(node) => {
145043                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
145044                Box::new(iterator)
145045            }
145046            NodeRef::Number(node) => {
145047                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
145048                Box::new(iterator)
145049            }
145050            NodeRef::ObjectLit(node) => {
145051                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
145052                    node.props
145053                        .iter()
145054                        .flat_map(|item| ::std::iter::once(NodeRef::PropOrSpread(&item))),
145055                );
145056                Box::new(iterator)
145057            }
145058            NodeRef::ObjectPat(node) => {
145059                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145060                    .chain(
145061                        node.props
145062                            .iter()
145063                            .flat_map(|item| ::std::iter::once(NodeRef::ObjectPatProp(&item))),
145064                    )
145065                    .chain(node.type_ann.iter().flat_map(|item| {
145066                        let item = &*item;
145067                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
145068                    }));
145069                Box::new(iterator)
145070            }
145071            NodeRef::ObjectPatProp(node) => match node {
145072                ObjectPatProp::KeyValue(v0) => {
145073                    Box::new(::std::iter::once(NodeRef::KeyValuePatProp(v0)))
145074                }
145075                ObjectPatProp::Assign(v0) => {
145076                    Box::new(::std::iter::once(NodeRef::AssignPatProp(v0)))
145077                }
145078                ObjectPatProp::Rest(v0) => Box::new(::std::iter::once(NodeRef::RestPat(v0))),
145079                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145080            },
145081            NodeRef::OptCall(node) => {
145082                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145083                    .chain({
145084                        let item = &*node.callee;
145085                        ::std::iter::once(NodeRef::Expr(&item))
145086                    })
145087                    .chain(
145088                        node.args
145089                            .iter()
145090                            .flat_map(|item| ::std::iter::once(NodeRef::ExprOrSpread(&item))),
145091                    )
145092                    .chain(node.type_args.iter().flat_map(|item| {
145093                        let item = &*item;
145094                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
145095                    }));
145096                Box::new(iterator)
145097            }
145098            NodeRef::OptChainBase(node) => match node {
145099                OptChainBase::Member(v0) => Box::new(::std::iter::once(NodeRef::MemberExpr(v0))),
145100                OptChainBase::Call(v0) => Box::new(::std::iter::once(NodeRef::OptCall(v0))),
145101                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145102            },
145103            NodeRef::OptChainExpr(node) => {
145104                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
145105                    let item = &*node.base;
145106                    ::std::iter::once(NodeRef::OptChainBase(&item))
145107                });
145108                Box::new(iterator)
145109            }
145110            NodeRef::Param(node) => {
145111                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145112                    .chain(
145113                        node.decorators
145114                            .iter()
145115                            .flat_map(|item| ::std::iter::once(NodeRef::Decorator(&item))),
145116                    )
145117                    .chain(::std::iter::once(NodeRef::Pat(&node.pat)));
145118                Box::new(iterator)
145119            }
145120            NodeRef::ParamOrTsParamProp(node) => match node {
145121                ParamOrTsParamProp::TsParamProp(v0) => {
145122                    Box::new(::std::iter::once(NodeRef::TsParamProp(v0)))
145123                }
145124                ParamOrTsParamProp::Param(v0) => Box::new(::std::iter::once(NodeRef::Param(v0))),
145125                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145126            },
145127            NodeRef::ParenExpr(node) => {
145128                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
145129                    let item = &*node.expr;
145130                    ::std::iter::once(NodeRef::Expr(&item))
145131                });
145132                Box::new(iterator)
145133            }
145134            NodeRef::Pat(node) => match node {
145135                Pat::Ident(v0) => Box::new(::std::iter::once(NodeRef::BindingIdent(v0))),
145136                Pat::Array(v0) => Box::new(::std::iter::once(NodeRef::ArrayPat(v0))),
145137                Pat::Rest(v0) => Box::new(::std::iter::once(NodeRef::RestPat(v0))),
145138                Pat::Object(v0) => Box::new(::std::iter::once(NodeRef::ObjectPat(v0))),
145139                Pat::Assign(v0) => Box::new(::std::iter::once(NodeRef::AssignPat(v0))),
145140                Pat::Invalid(v0) => Box::new(::std::iter::once(NodeRef::Invalid(v0))),
145141                Pat::Expr(v0) => Box::new(::std::iter::once(NodeRef::Expr(v0))),
145142                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145143            },
145144            NodeRef::PrivateMethod(node) => {
145145                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145146                    .chain(::std::iter::once(NodeRef::PrivateName(&node.key)))
145147                    .chain({
145148                        let item = &*node.function;
145149                        ::std::iter::once(NodeRef::Function(&item))
145150                    })
145151                    .chain(::std::iter::once(NodeRef::MethodKind(&node.kind)))
145152                    .chain(
145153                        node.accessibility
145154                            .iter()
145155                            .flat_map(|item| ::std::iter::once(NodeRef::Accessibility(&item))),
145156                    );
145157                Box::new(iterator)
145158            }
145159            NodeRef::PrivateName(node) => {
145160                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
145161                Box::new(iterator)
145162            }
145163            NodeRef::PrivateProp(node) => {
145164                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145165                    .chain(::std::iter::once(NodeRef::PrivateName(&node.key)))
145166                    .chain(node.value.iter().flat_map(|item| {
145167                        let item = &*item;
145168                        ::std::iter::once(NodeRef::Expr(&item))
145169                    }))
145170                    .chain(node.type_ann.iter().flat_map(|item| {
145171                        let item = &*item;
145172                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
145173                    }))
145174                    .chain(
145175                        node.decorators
145176                            .iter()
145177                            .flat_map(|item| ::std::iter::once(NodeRef::Decorator(&item))),
145178                    )
145179                    .chain(
145180                        node.accessibility
145181                            .iter()
145182                            .flat_map(|item| ::std::iter::once(NodeRef::Accessibility(&item))),
145183                    );
145184                Box::new(iterator)
145185            }
145186            NodeRef::Program(node) => match node {
145187                Program::Module(v0) => Box::new(::std::iter::once(NodeRef::Module(v0))),
145188                Program::Script(v0) => Box::new(::std::iter::once(NodeRef::Script(v0))),
145189                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145190            },
145191            NodeRef::Prop(node) => match node {
145192                Prop::Shorthand(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
145193                Prop::KeyValue(v0) => Box::new(::std::iter::once(NodeRef::KeyValueProp(v0))),
145194                Prop::Assign(v0) => Box::new(::std::iter::once(NodeRef::AssignProp(v0))),
145195                Prop::Getter(v0) => Box::new(::std::iter::once(NodeRef::GetterProp(v0))),
145196                Prop::Setter(v0) => Box::new(::std::iter::once(NodeRef::SetterProp(v0))),
145197                Prop::Method(v0) => Box::new(::std::iter::once(NodeRef::MethodProp(v0))),
145198                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145199            },
145200            NodeRef::PropName(node) => match node {
145201                PropName::Ident(v0) => Box::new(::std::iter::once(NodeRef::IdentName(v0))),
145202                PropName::Str(v0) => Box::new(::std::iter::once(NodeRef::Str(v0))),
145203                PropName::Num(v0) => Box::new(::std::iter::once(NodeRef::Number(v0))),
145204                PropName::Computed(v0) => {
145205                    Box::new(::std::iter::once(NodeRef::ComputedPropName(v0)))
145206                }
145207                PropName::BigInt(v0) => Box::new(::std::iter::once(NodeRef::BigInt(v0))),
145208                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145209            },
145210            NodeRef::PropOrSpread(node) => match node {
145211                PropOrSpread::Spread(v0) => Box::new(::std::iter::once(NodeRef::SpreadElement(v0))),
145212                PropOrSpread::Prop(v0) => Box::new(::std::iter::once(NodeRef::Prop(v0))),
145213                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145214            },
145215            NodeRef::Regex(node) => {
145216                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
145217                Box::new(iterator)
145218            }
145219            NodeRef::RestPat(node) => {
145220                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145221                    .chain({
145222                        let item = &*node.arg;
145223                        ::std::iter::once(NodeRef::Pat(&item))
145224                    })
145225                    .chain(node.type_ann.iter().flat_map(|item| {
145226                        let item = &*item;
145227                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
145228                    }));
145229                Box::new(iterator)
145230            }
145231            NodeRef::ReturnStmt(node) => {
145232                let iterator =
145233                    ::std::iter::empty::<NodeRef<'ast>>().chain(node.arg.iter().flat_map(|item| {
145234                        let item = &*item;
145235                        ::std::iter::once(NodeRef::Expr(&item))
145236                    }));
145237                Box::new(iterator)
145238            }
145239            NodeRef::Script(node) => {
145240                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
145241                    node.body
145242                        .iter()
145243                        .flat_map(|item| ::std::iter::once(NodeRef::Stmt(&item))),
145244                );
145245                Box::new(iterator)
145246            }
145247            NodeRef::SeqExpr(node) => {
145248                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
145249                    node.exprs.iter().flat_map(|item| {
145250                        let item = &*item;
145251                        ::std::iter::once(NodeRef::Expr(&item))
145252                    }),
145253                );
145254                Box::new(iterator)
145255            }
145256            NodeRef::SetterProp(node) => {
145257                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145258                    .chain(::std::iter::once(NodeRef::PropName(&node.key)))
145259                    .chain(
145260                        node.this_param
145261                            .iter()
145262                            .flat_map(|item| ::std::iter::once(NodeRef::Pat(&item))),
145263                    )
145264                    .chain({
145265                        let item = &*node.param;
145266                        ::std::iter::once(NodeRef::Pat(&item))
145267                    })
145268                    .chain(
145269                        node.body
145270                            .iter()
145271                            .flat_map(|item| ::std::iter::once(NodeRef::BlockStmt(&item))),
145272                    );
145273                Box::new(iterator)
145274            }
145275            NodeRef::SimpleAssignTarget(node) => match node {
145276                SimpleAssignTarget::Ident(v0) => {
145277                    Box::new(::std::iter::once(NodeRef::BindingIdent(v0)))
145278                }
145279                SimpleAssignTarget::Member(v0) => {
145280                    Box::new(::std::iter::once(NodeRef::MemberExpr(v0)))
145281                }
145282                SimpleAssignTarget::SuperProp(v0) => {
145283                    Box::new(::std::iter::once(NodeRef::SuperPropExpr(v0)))
145284                }
145285                SimpleAssignTarget::Paren(v0) => {
145286                    Box::new(::std::iter::once(NodeRef::ParenExpr(v0)))
145287                }
145288                SimpleAssignTarget::OptChain(v0) => {
145289                    Box::new(::std::iter::once(NodeRef::OptChainExpr(v0)))
145290                }
145291                SimpleAssignTarget::TsAs(v0) => Box::new(::std::iter::once(NodeRef::TsAsExpr(v0))),
145292                SimpleAssignTarget::TsSatisfies(v0) => {
145293                    Box::new(::std::iter::once(NodeRef::TsSatisfiesExpr(v0)))
145294                }
145295                SimpleAssignTarget::TsNonNull(v0) => {
145296                    Box::new(::std::iter::once(NodeRef::TsNonNullExpr(v0)))
145297                }
145298                SimpleAssignTarget::TsTypeAssertion(v0) => {
145299                    Box::new(::std::iter::once(NodeRef::TsTypeAssertion(v0)))
145300                }
145301                SimpleAssignTarget::TsInstantiation(v0) => {
145302                    Box::new(::std::iter::once(NodeRef::TsInstantiation(v0)))
145303                }
145304                SimpleAssignTarget::Invalid(v0) => {
145305                    Box::new(::std::iter::once(NodeRef::Invalid(v0)))
145306                }
145307                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145308            },
145309            NodeRef::SpreadElement(node) => {
145310                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
145311                    let item = &*node.expr;
145312                    ::std::iter::once(NodeRef::Expr(&item))
145313                });
145314                Box::new(iterator)
145315            }
145316            NodeRef::StaticBlock(node) => {
145317                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145318                    .chain(::std::iter::once(NodeRef::BlockStmt(&node.body)));
145319                Box::new(iterator)
145320            }
145321            NodeRef::Stmt(node) => match node {
145322                Stmt::Block(v0) => Box::new(::std::iter::once(NodeRef::BlockStmt(v0))),
145323                Stmt::Empty(v0) => Box::new(::std::iter::once(NodeRef::EmptyStmt(v0))),
145324                Stmt::Debugger(v0) => Box::new(::std::iter::once(NodeRef::DebuggerStmt(v0))),
145325                Stmt::With(v0) => Box::new(::std::iter::once(NodeRef::WithStmt(v0))),
145326                Stmt::Return(v0) => Box::new(::std::iter::once(NodeRef::ReturnStmt(v0))),
145327                Stmt::Labeled(v0) => Box::new(::std::iter::once(NodeRef::LabeledStmt(v0))),
145328                Stmt::Break(v0) => Box::new(::std::iter::once(NodeRef::BreakStmt(v0))),
145329                Stmt::Continue(v0) => Box::new(::std::iter::once(NodeRef::ContinueStmt(v0))),
145330                Stmt::If(v0) => Box::new(::std::iter::once(NodeRef::IfStmt(v0))),
145331                Stmt::Switch(v0) => Box::new(::std::iter::once(NodeRef::SwitchStmt(v0))),
145332                Stmt::Throw(v0) => Box::new(::std::iter::once(NodeRef::ThrowStmt(v0))),
145333                Stmt::Try(v0) => Box::new(::std::iter::once(NodeRef::TryStmt(v0))),
145334                Stmt::While(v0) => Box::new(::std::iter::once(NodeRef::WhileStmt(v0))),
145335                Stmt::DoWhile(v0) => Box::new(::std::iter::once(NodeRef::DoWhileStmt(v0))),
145336                Stmt::For(v0) => Box::new(::std::iter::once(NodeRef::ForStmt(v0))),
145337                Stmt::ForIn(v0) => Box::new(::std::iter::once(NodeRef::ForInStmt(v0))),
145338                Stmt::ForOf(v0) => Box::new(::std::iter::once(NodeRef::ForOfStmt(v0))),
145339                Stmt::Decl(v0) => Box::new(::std::iter::once(NodeRef::Decl(v0))),
145340                Stmt::Expr(v0) => Box::new(::std::iter::once(NodeRef::ExprStmt(v0))),
145341                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145342            },
145343            NodeRef::Str(node) => {
145344                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
145345                Box::new(iterator)
145346            }
145347            NodeRef::Super(node) => {
145348                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
145349                Box::new(iterator)
145350            }
145351            NodeRef::SuperProp(node) => match node {
145352                SuperProp::Ident(v0) => Box::new(::std::iter::once(NodeRef::IdentName(v0))),
145353                SuperProp::Computed(v0) => {
145354                    Box::new(::std::iter::once(NodeRef::ComputedPropName(v0)))
145355                }
145356                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145357            },
145358            NodeRef::SuperPropExpr(node) => {
145359                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145360                    .chain(::std::iter::once(NodeRef::Super(&node.obj)))
145361                    .chain(::std::iter::once(NodeRef::SuperProp(&node.prop)));
145362                Box::new(iterator)
145363            }
145364            NodeRef::SwitchCase(node) => {
145365                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145366                    .chain(node.test.iter().flat_map(|item| {
145367                        let item = &*item;
145368                        ::std::iter::once(NodeRef::Expr(&item))
145369                    }))
145370                    .chain(
145371                        node.cons
145372                            .iter()
145373                            .flat_map(|item| ::std::iter::once(NodeRef::Stmt(&item))),
145374                    );
145375                Box::new(iterator)
145376            }
145377            NodeRef::SwitchStmt(node) => {
145378                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145379                    .chain({
145380                        let item = &*node.discriminant;
145381                        ::std::iter::once(NodeRef::Expr(&item))
145382                    })
145383                    .chain(
145384                        node.cases
145385                            .iter()
145386                            .flat_map(|item| ::std::iter::once(NodeRef::SwitchCase(&item))),
145387                    );
145388                Box::new(iterator)
145389            }
145390            NodeRef::TaggedTpl(node) => {
145391                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145392                    .chain({
145393                        let item = &*node.tag;
145394                        ::std::iter::once(NodeRef::Expr(&item))
145395                    })
145396                    .chain(node.type_params.iter().flat_map(|item| {
145397                        let item = &*item;
145398                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
145399                    }))
145400                    .chain({
145401                        let item = &*node.tpl;
145402                        ::std::iter::once(NodeRef::Tpl(&item))
145403                    });
145404                Box::new(iterator)
145405            }
145406            NodeRef::ThisExpr(node) => {
145407                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
145408                Box::new(iterator)
145409            }
145410            NodeRef::ThrowStmt(node) => {
145411                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
145412                    let item = &*node.arg;
145413                    ::std::iter::once(NodeRef::Expr(&item))
145414                });
145415                Box::new(iterator)
145416            }
145417            NodeRef::Tpl(node) => {
145418                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145419                    .chain(node.exprs.iter().flat_map(|item| {
145420                        let item = &*item;
145421                        ::std::iter::once(NodeRef::Expr(&item))
145422                    }))
145423                    .chain(
145424                        node.quasis
145425                            .iter()
145426                            .flat_map(|item| ::std::iter::once(NodeRef::TplElement(&item))),
145427                    );
145428                Box::new(iterator)
145429            }
145430            NodeRef::TplElement(node) => {
145431                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
145432                Box::new(iterator)
145433            }
145434            NodeRef::TruePlusMinus(node) => match node {
145435                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145436            },
145437            NodeRef::TryStmt(node) => {
145438                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145439                    .chain(::std::iter::once(NodeRef::BlockStmt(&node.block)))
145440                    .chain(
145441                        node.handler
145442                            .iter()
145443                            .flat_map(|item| ::std::iter::once(NodeRef::CatchClause(&item))),
145444                    )
145445                    .chain(
145446                        node.finalizer
145447                            .iter()
145448                            .flat_map(|item| ::std::iter::once(NodeRef::BlockStmt(&item))),
145449                    );
145450                Box::new(iterator)
145451            }
145452            NodeRef::TsArrayType(node) => {
145453                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
145454                    let item = &*node.elem_type;
145455                    ::std::iter::once(NodeRef::TsType(&item))
145456                });
145457                Box::new(iterator)
145458            }
145459            NodeRef::TsAsExpr(node) => {
145460                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145461                    .chain({
145462                        let item = &*node.expr;
145463                        ::std::iter::once(NodeRef::Expr(&item))
145464                    })
145465                    .chain({
145466                        let item = &*node.type_ann;
145467                        ::std::iter::once(NodeRef::TsType(&item))
145468                    });
145469                Box::new(iterator)
145470            }
145471            NodeRef::TsCallSignatureDecl(node) => {
145472                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145473                    .chain(
145474                        node.params
145475                            .iter()
145476                            .flat_map(|item| ::std::iter::once(NodeRef::TsFnParam(&item))),
145477                    )
145478                    .chain(node.type_ann.iter().flat_map(|item| {
145479                        let item = &*item;
145480                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
145481                    }))
145482                    .chain(node.type_params.iter().flat_map(|item| {
145483                        let item = &*item;
145484                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
145485                    }));
145486                Box::new(iterator)
145487            }
145488            NodeRef::TsConditionalType(node) => {
145489                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145490                    .chain({
145491                        let item = &*node.check_type;
145492                        ::std::iter::once(NodeRef::TsType(&item))
145493                    })
145494                    .chain({
145495                        let item = &*node.extends_type;
145496                        ::std::iter::once(NodeRef::TsType(&item))
145497                    })
145498                    .chain({
145499                        let item = &*node.true_type;
145500                        ::std::iter::once(NodeRef::TsType(&item))
145501                    })
145502                    .chain({
145503                        let item = &*node.false_type;
145504                        ::std::iter::once(NodeRef::TsType(&item))
145505                    });
145506                Box::new(iterator)
145507            }
145508            NodeRef::TsConstAssertion(node) => {
145509                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
145510                    let item = &*node.expr;
145511                    ::std::iter::once(NodeRef::Expr(&item))
145512                });
145513                Box::new(iterator)
145514            }
145515            NodeRef::TsConstructSignatureDecl(node) => {
145516                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145517                    .chain(
145518                        node.params
145519                            .iter()
145520                            .flat_map(|item| ::std::iter::once(NodeRef::TsFnParam(&item))),
145521                    )
145522                    .chain(node.type_ann.iter().flat_map(|item| {
145523                        let item = &*item;
145524                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
145525                    }))
145526                    .chain(node.type_params.iter().flat_map(|item| {
145527                        let item = &*item;
145528                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
145529                    }));
145530                Box::new(iterator)
145531            }
145532            NodeRef::TsConstructorType(node) => {
145533                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145534                    .chain(
145535                        node.params
145536                            .iter()
145537                            .flat_map(|item| ::std::iter::once(NodeRef::TsFnParam(&item))),
145538                    )
145539                    .chain(node.type_params.iter().flat_map(|item| {
145540                        let item = &*item;
145541                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
145542                    }))
145543                    .chain({
145544                        let item = &*node.type_ann;
145545                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
145546                    });
145547                Box::new(iterator)
145548            }
145549            NodeRef::TsEntityName(node) => match node {
145550                TsEntityName::TsQualifiedName(v0) => {
145551                    Box::new(::std::iter::once(NodeRef::TsQualifiedName(v0)))
145552                }
145553                TsEntityName::Ident(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
145554                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145555            },
145556            NodeRef::TsEnumDecl(node) => {
145557                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145558                    .chain(::std::iter::once(NodeRef::Ident(&node.id)))
145559                    .chain(
145560                        node.members
145561                            .iter()
145562                            .flat_map(|item| ::std::iter::once(NodeRef::TsEnumMember(&item))),
145563                    );
145564                Box::new(iterator)
145565            }
145566            NodeRef::TsEnumMember(node) => {
145567                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145568                    .chain(::std::iter::once(NodeRef::TsEnumMemberId(&node.id)))
145569                    .chain(node.init.iter().flat_map(|item| {
145570                        let item = &*item;
145571                        ::std::iter::once(NodeRef::Expr(&item))
145572                    }));
145573                Box::new(iterator)
145574            }
145575            NodeRef::TsEnumMemberId(node) => match node {
145576                TsEnumMemberId::Ident(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
145577                TsEnumMemberId::Str(v0) => Box::new(::std::iter::once(NodeRef::Str(v0))),
145578                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145579            },
145580            NodeRef::TsExportAssignment(node) => {
145581                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
145582                    let item = &*node.expr;
145583                    ::std::iter::once(NodeRef::Expr(&item))
145584                });
145585                Box::new(iterator)
145586            }
145587            NodeRef::TsExprWithTypeArgs(node) => {
145588                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145589                    .chain({
145590                        let item = &*node.expr;
145591                        ::std::iter::once(NodeRef::Expr(&item))
145592                    })
145593                    .chain(node.type_args.iter().flat_map(|item| {
145594                        let item = &*item;
145595                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
145596                    }));
145597                Box::new(iterator)
145598            }
145599            NodeRef::TsExternalModuleRef(node) => {
145600                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145601                    .chain(::std::iter::once(NodeRef::Str(&node.expr)));
145602                Box::new(iterator)
145603            }
145604            NodeRef::TsFnOrConstructorType(node) => match node {
145605                TsFnOrConstructorType::TsFnType(v0) => {
145606                    Box::new(::std::iter::once(NodeRef::TsFnType(v0)))
145607                }
145608                TsFnOrConstructorType::TsConstructorType(v0) => {
145609                    Box::new(::std::iter::once(NodeRef::TsConstructorType(v0)))
145610                }
145611                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145612            },
145613            NodeRef::TsFnParam(node) => match node {
145614                TsFnParam::Ident(v0) => Box::new(::std::iter::once(NodeRef::BindingIdent(v0))),
145615                TsFnParam::Array(v0) => Box::new(::std::iter::once(NodeRef::ArrayPat(v0))),
145616                TsFnParam::Rest(v0) => Box::new(::std::iter::once(NodeRef::RestPat(v0))),
145617                TsFnParam::Object(v0) => Box::new(::std::iter::once(NodeRef::ObjectPat(v0))),
145618                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145619            },
145620            NodeRef::TsFnType(node) => {
145621                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145622                    .chain(
145623                        node.params
145624                            .iter()
145625                            .flat_map(|item| ::std::iter::once(NodeRef::TsFnParam(&item))),
145626                    )
145627                    .chain(node.type_params.iter().flat_map(|item| {
145628                        let item = &*item;
145629                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
145630                    }))
145631                    .chain({
145632                        let item = &*node.type_ann;
145633                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
145634                    });
145635                Box::new(iterator)
145636            }
145637            NodeRef::TsGetterSignature(node) => {
145638                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145639                    .chain({
145640                        let item = &*node.key;
145641                        ::std::iter::once(NodeRef::Expr(&item))
145642                    })
145643                    .chain(node.type_ann.iter().flat_map(|item| {
145644                        let item = &*item;
145645                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
145646                    }));
145647                Box::new(iterator)
145648            }
145649            NodeRef::TsImportCallOptions(node) => {
145650                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
145651                    let item = &*node.with;
145652                    ::std::iter::once(NodeRef::ObjectLit(&item))
145653                });
145654                Box::new(iterator)
145655            }
145656            NodeRef::TsImportEqualsDecl(node) => {
145657                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145658                    .chain(::std::iter::once(NodeRef::Ident(&node.id)))
145659                    .chain(::std::iter::once(NodeRef::TsModuleRef(&node.module_ref)));
145660                Box::new(iterator)
145661            }
145662            NodeRef::TsImportType(node) => {
145663                let iterator =
145664                    ::std::iter::empty::<NodeRef<'ast>>()
145665                        .chain(::std::iter::once(NodeRef::Str(&node.arg)))
145666                        .chain(
145667                            node.qualifier
145668                                .iter()
145669                                .flat_map(|item| ::std::iter::once(NodeRef::TsEntityName(&item))),
145670                        )
145671                        .chain(node.type_args.iter().flat_map(|item| {
145672                            let item = &*item;
145673                            ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
145674                        }))
145675                        .chain(node.attributes.iter().flat_map(|item| {
145676                            ::std::iter::once(NodeRef::TsImportCallOptions(&item))
145677                        }));
145678                Box::new(iterator)
145679            }
145680            NodeRef::TsIndexSignature(node) => {
145681                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145682                    .chain(
145683                        node.params
145684                            .iter()
145685                            .flat_map(|item| ::std::iter::once(NodeRef::TsFnParam(&item))),
145686                    )
145687                    .chain(node.type_ann.iter().flat_map(|item| {
145688                        let item = &*item;
145689                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
145690                    }));
145691                Box::new(iterator)
145692            }
145693            NodeRef::TsIndexedAccessType(node) => {
145694                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145695                    .chain({
145696                        let item = &*node.obj_type;
145697                        ::std::iter::once(NodeRef::TsType(&item))
145698                    })
145699                    .chain({
145700                        let item = &*node.index_type;
145701                        ::std::iter::once(NodeRef::TsType(&item))
145702                    });
145703                Box::new(iterator)
145704            }
145705            NodeRef::TsInferType(node) => {
145706                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145707                    .chain(::std::iter::once(NodeRef::TsTypeParam(&node.type_param)));
145708                Box::new(iterator)
145709            }
145710            NodeRef::TsInstantiation(node) => {
145711                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145712                    .chain({
145713                        let item = &*node.expr;
145714                        ::std::iter::once(NodeRef::Expr(&item))
145715                    })
145716                    .chain({
145717                        let item = &*node.type_args;
145718                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
145719                    });
145720                Box::new(iterator)
145721            }
145722            NodeRef::TsInterfaceBody(node) => {
145723                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
145724                    node.body
145725                        .iter()
145726                        .flat_map(|item| ::std::iter::once(NodeRef::TsTypeElement(&item))),
145727                );
145728                Box::new(iterator)
145729            }
145730            NodeRef::TsInterfaceDecl(node) => {
145731                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145732                    .chain(::std::iter::once(NodeRef::Ident(&node.id)))
145733                    .chain(node.type_params.iter().flat_map(|item| {
145734                        let item = &*item;
145735                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
145736                    }))
145737                    .chain(
145738                        node.extends
145739                            .iter()
145740                            .flat_map(|item| ::std::iter::once(NodeRef::TsExprWithTypeArgs(&item))),
145741                    )
145742                    .chain(::std::iter::once(NodeRef::TsInterfaceBody(&node.body)));
145743                Box::new(iterator)
145744            }
145745            NodeRef::TsIntersectionType(node) => {
145746                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
145747                    node.types.iter().flat_map(|item| {
145748                        let item = &*item;
145749                        ::std::iter::once(NodeRef::TsType(&item))
145750                    }),
145751                );
145752                Box::new(iterator)
145753            }
145754            NodeRef::TsKeywordType(node) => {
145755                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145756                    .chain(::std::iter::once(NodeRef::TsKeywordTypeKind(&node.kind)));
145757                Box::new(iterator)
145758            }
145759            NodeRef::TsKeywordTypeKind(node) => match node {
145760                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145761            },
145762            NodeRef::TsLit(node) => match node {
145763                TsLit::Number(v0) => Box::new(::std::iter::once(NodeRef::Number(v0))),
145764                TsLit::Str(v0) => Box::new(::std::iter::once(NodeRef::Str(v0))),
145765                TsLit::Bool(v0) => Box::new(::std::iter::once(NodeRef::Bool(v0))),
145766                TsLit::BigInt(v0) => Box::new(::std::iter::once(NodeRef::BigInt(v0))),
145767                TsLit::Tpl(v0) => Box::new(::std::iter::once(NodeRef::TsTplLitType(v0))),
145768                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145769            },
145770            NodeRef::TsLitType(node) => {
145771                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145772                    .chain(::std::iter::once(NodeRef::TsLit(&node.lit)));
145773                Box::new(iterator)
145774            }
145775            NodeRef::TsMappedType(node) => {
145776                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145777                    .chain(
145778                        node.readonly
145779                            .iter()
145780                            .flat_map(|item| ::std::iter::once(NodeRef::TruePlusMinus(&item))),
145781                    )
145782                    .chain(::std::iter::once(NodeRef::TsTypeParam(&node.type_param)))
145783                    .chain(node.name_type.iter().flat_map(|item| {
145784                        let item = &*item;
145785                        ::std::iter::once(NodeRef::TsType(&item))
145786                    }))
145787                    .chain(
145788                        node.optional
145789                            .iter()
145790                            .flat_map(|item| ::std::iter::once(NodeRef::TruePlusMinus(&item))),
145791                    )
145792                    .chain(node.type_ann.iter().flat_map(|item| {
145793                        let item = &*item;
145794                        ::std::iter::once(NodeRef::TsType(&item))
145795                    }));
145796                Box::new(iterator)
145797            }
145798            NodeRef::TsMethodSignature(node) => {
145799                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145800                    .chain({
145801                        let item = &*node.key;
145802                        ::std::iter::once(NodeRef::Expr(&item))
145803                    })
145804                    .chain(
145805                        node.params
145806                            .iter()
145807                            .flat_map(|item| ::std::iter::once(NodeRef::TsFnParam(&item))),
145808                    )
145809                    .chain(node.type_ann.iter().flat_map(|item| {
145810                        let item = &*item;
145811                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
145812                    }))
145813                    .chain(node.type_params.iter().flat_map(|item| {
145814                        let item = &*item;
145815                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
145816                    }));
145817                Box::new(iterator)
145818            }
145819            NodeRef::TsModuleBlock(node) => {
145820                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
145821                    node.body
145822                        .iter()
145823                        .flat_map(|item| ::std::iter::once(NodeRef::ModuleItem(&item))),
145824                );
145825                Box::new(iterator)
145826            }
145827            NodeRef::TsModuleDecl(node) => {
145828                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145829                    .chain(::std::iter::once(NodeRef::TsModuleName(&node.id)))
145830                    .chain(
145831                        node.body
145832                            .iter()
145833                            .flat_map(|item| ::std::iter::once(NodeRef::TsNamespaceBody(&item))),
145834                    );
145835                Box::new(iterator)
145836            }
145837            NodeRef::TsModuleName(node) => match node {
145838                TsModuleName::Ident(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
145839                TsModuleName::Str(v0) => Box::new(::std::iter::once(NodeRef::Str(v0))),
145840                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145841            },
145842            NodeRef::TsModuleRef(node) => match node {
145843                TsModuleRef::TsEntityName(v0) => {
145844                    Box::new(::std::iter::once(NodeRef::TsEntityName(v0)))
145845                }
145846                TsModuleRef::TsExternalModuleRef(v0) => {
145847                    Box::new(::std::iter::once(NodeRef::TsExternalModuleRef(v0)))
145848                }
145849                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145850            },
145851            NodeRef::TsNamespaceBody(node) => match node {
145852                TsNamespaceBody::TsModuleBlock(v0) => {
145853                    Box::new(::std::iter::once(NodeRef::TsModuleBlock(v0)))
145854                }
145855                TsNamespaceBody::TsNamespaceDecl(v0) => {
145856                    Box::new(::std::iter::once(NodeRef::TsNamespaceDecl(v0)))
145857                }
145858                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145859            },
145860            NodeRef::TsNamespaceDecl(node) => {
145861                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145862                    .chain(::std::iter::once(NodeRef::Ident(&node.id)))
145863                    .chain({
145864                        let item = &*node.body;
145865                        ::std::iter::once(NodeRef::TsNamespaceBody(&item))
145866                    });
145867                Box::new(iterator)
145868            }
145869            NodeRef::TsNamespaceExportDecl(node) => {
145870                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145871                    .chain(::std::iter::once(NodeRef::Ident(&node.id)));
145872                Box::new(iterator)
145873            }
145874            NodeRef::TsNonNullExpr(node) => {
145875                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
145876                    let item = &*node.expr;
145877                    ::std::iter::once(NodeRef::Expr(&item))
145878                });
145879                Box::new(iterator)
145880            }
145881            NodeRef::TsOptionalType(node) => {
145882                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
145883                    let item = &*node.type_ann;
145884                    ::std::iter::once(NodeRef::TsType(&item))
145885                });
145886                Box::new(iterator)
145887            }
145888            NodeRef::TsParamProp(node) => {
145889                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145890                    .chain(
145891                        node.decorators
145892                            .iter()
145893                            .flat_map(|item| ::std::iter::once(NodeRef::Decorator(&item))),
145894                    )
145895                    .chain(
145896                        node.accessibility
145897                            .iter()
145898                            .flat_map(|item| ::std::iter::once(NodeRef::Accessibility(&item))),
145899                    )
145900                    .chain(::std::iter::once(NodeRef::TsParamPropParam(&node.param)));
145901                Box::new(iterator)
145902            }
145903            NodeRef::TsParamPropParam(node) => match node {
145904                TsParamPropParam::Ident(v0) => {
145905                    Box::new(::std::iter::once(NodeRef::BindingIdent(v0)))
145906                }
145907                TsParamPropParam::Assign(v0) => Box::new(::std::iter::once(NodeRef::AssignPat(v0))),
145908                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145909            },
145910            NodeRef::TsParenthesizedType(node) => {
145911                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
145912                    let item = &*node.type_ann;
145913                    ::std::iter::once(NodeRef::TsType(&item))
145914                });
145915                Box::new(iterator)
145916            }
145917            NodeRef::TsPropertySignature(node) => {
145918                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145919                    .chain({
145920                        let item = &*node.key;
145921                        ::std::iter::once(NodeRef::Expr(&item))
145922                    })
145923                    .chain(node.type_ann.iter().flat_map(|item| {
145924                        let item = &*item;
145925                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
145926                    }));
145927                Box::new(iterator)
145928            }
145929            NodeRef::TsQualifiedName(node) => {
145930                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145931                    .chain(::std::iter::once(NodeRef::TsEntityName(&node.left)))
145932                    .chain(::std::iter::once(NodeRef::IdentName(&node.right)));
145933                Box::new(iterator)
145934            }
145935            NodeRef::TsRestType(node) => {
145936                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
145937                    let item = &*node.type_ann;
145938                    ::std::iter::once(NodeRef::TsType(&item))
145939                });
145940                Box::new(iterator)
145941            }
145942            NodeRef::TsSatisfiesExpr(node) => {
145943                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145944                    .chain({
145945                        let item = &*node.expr;
145946                        ::std::iter::once(NodeRef::Expr(&item))
145947                    })
145948                    .chain({
145949                        let item = &*node.type_ann;
145950                        ::std::iter::once(NodeRef::TsType(&item))
145951                    });
145952                Box::new(iterator)
145953            }
145954            NodeRef::TsSetterSignature(node) => {
145955                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145956                    .chain({
145957                        let item = &*node.key;
145958                        ::std::iter::once(NodeRef::Expr(&item))
145959                    })
145960                    .chain(::std::iter::once(NodeRef::TsFnParam(&node.param)));
145961                Box::new(iterator)
145962            }
145963            NodeRef::TsThisType(node) => {
145964                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
145965                Box::new(iterator)
145966            }
145967            NodeRef::TsThisTypeOrIdent(node) => match node {
145968                TsThisTypeOrIdent::TsThisType(v0) => {
145969                    Box::new(::std::iter::once(NodeRef::TsThisType(v0)))
145970                }
145971                TsThisTypeOrIdent::Ident(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
145972                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145973            },
145974            NodeRef::TsTplLitType(node) => {
145975                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145976                    .chain(node.types.iter().flat_map(|item| {
145977                        let item = &*item;
145978                        ::std::iter::once(NodeRef::TsType(&item))
145979                    }))
145980                    .chain(
145981                        node.quasis
145982                            .iter()
145983                            .flat_map(|item| ::std::iter::once(NodeRef::TplElement(&item))),
145984                    );
145985                Box::new(iterator)
145986            }
145987            NodeRef::TsTupleElement(node) => {
145988                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145989                    .chain(
145990                        node.label
145991                            .iter()
145992                            .flat_map(|item| ::std::iter::once(NodeRef::Pat(&item))),
145993                    )
145994                    .chain({
145995                        let item = &*node.ty;
145996                        ::std::iter::once(NodeRef::TsType(&item))
145997                    });
145998                Box::new(iterator)
145999            }
146000            NodeRef::TsTupleType(node) => {
146001                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
146002                    node.elem_types
146003                        .iter()
146004                        .flat_map(|item| ::std::iter::once(NodeRef::TsTupleElement(&item))),
146005                );
146006                Box::new(iterator)
146007            }
146008            NodeRef::TsType(node) => match node {
146009                TsType::TsKeywordType(v0) => {
146010                    Box::new(::std::iter::once(NodeRef::TsKeywordType(v0)))
146011                }
146012                TsType::TsThisType(v0) => Box::new(::std::iter::once(NodeRef::TsThisType(v0))),
146013                TsType::TsFnOrConstructorType(v0) => {
146014                    Box::new(::std::iter::once(NodeRef::TsFnOrConstructorType(v0)))
146015                }
146016                TsType::TsTypeRef(v0) => Box::new(::std::iter::once(NodeRef::TsTypeRef(v0))),
146017                TsType::TsTypeQuery(v0) => Box::new(::std::iter::once(NodeRef::TsTypeQuery(v0))),
146018                TsType::TsTypeLit(v0) => Box::new(::std::iter::once(NodeRef::TsTypeLit(v0))),
146019                TsType::TsArrayType(v0) => Box::new(::std::iter::once(NodeRef::TsArrayType(v0))),
146020                TsType::TsTupleType(v0) => Box::new(::std::iter::once(NodeRef::TsTupleType(v0))),
146021                TsType::TsOptionalType(v0) => {
146022                    Box::new(::std::iter::once(NodeRef::TsOptionalType(v0)))
146023                }
146024                TsType::TsRestType(v0) => Box::new(::std::iter::once(NodeRef::TsRestType(v0))),
146025                TsType::TsUnionOrIntersectionType(v0) => {
146026                    Box::new(::std::iter::once(NodeRef::TsUnionOrIntersectionType(v0)))
146027                }
146028                TsType::TsConditionalType(v0) => {
146029                    Box::new(::std::iter::once(NodeRef::TsConditionalType(v0)))
146030                }
146031                TsType::TsInferType(v0) => Box::new(::std::iter::once(NodeRef::TsInferType(v0))),
146032                TsType::TsParenthesizedType(v0) => {
146033                    Box::new(::std::iter::once(NodeRef::TsParenthesizedType(v0)))
146034                }
146035                TsType::TsTypeOperator(v0) => {
146036                    Box::new(::std::iter::once(NodeRef::TsTypeOperator(v0)))
146037                }
146038                TsType::TsIndexedAccessType(v0) => {
146039                    Box::new(::std::iter::once(NodeRef::TsIndexedAccessType(v0)))
146040                }
146041                TsType::TsMappedType(v0) => Box::new(::std::iter::once(NodeRef::TsMappedType(v0))),
146042                TsType::TsLitType(v0) => Box::new(::std::iter::once(NodeRef::TsLitType(v0))),
146043                TsType::TsTypePredicate(v0) => {
146044                    Box::new(::std::iter::once(NodeRef::TsTypePredicate(v0)))
146045                }
146046                TsType::TsImportType(v0) => Box::new(::std::iter::once(NodeRef::TsImportType(v0))),
146047                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
146048            },
146049            NodeRef::TsTypeAliasDecl(node) => {
146050                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
146051                    .chain(::std::iter::once(NodeRef::Ident(&node.id)))
146052                    .chain(node.type_params.iter().flat_map(|item| {
146053                        let item = &*item;
146054                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
146055                    }))
146056                    .chain({
146057                        let item = &*node.type_ann;
146058                        ::std::iter::once(NodeRef::TsType(&item))
146059                    });
146060                Box::new(iterator)
146061            }
146062            NodeRef::TsTypeAnn(node) => {
146063                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
146064                    let item = &*node.type_ann;
146065                    ::std::iter::once(NodeRef::TsType(&item))
146066                });
146067                Box::new(iterator)
146068            }
146069            NodeRef::TsTypeAssertion(node) => {
146070                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
146071                    .chain({
146072                        let item = &*node.expr;
146073                        ::std::iter::once(NodeRef::Expr(&item))
146074                    })
146075                    .chain({
146076                        let item = &*node.type_ann;
146077                        ::std::iter::once(NodeRef::TsType(&item))
146078                    });
146079                Box::new(iterator)
146080            }
146081            NodeRef::TsTypeElement(node) => match node {
146082                TsTypeElement::TsCallSignatureDecl(v0) => {
146083                    Box::new(::std::iter::once(NodeRef::TsCallSignatureDecl(v0)))
146084                }
146085                TsTypeElement::TsConstructSignatureDecl(v0) => {
146086                    Box::new(::std::iter::once(NodeRef::TsConstructSignatureDecl(v0)))
146087                }
146088                TsTypeElement::TsPropertySignature(v0) => {
146089                    Box::new(::std::iter::once(NodeRef::TsPropertySignature(v0)))
146090                }
146091                TsTypeElement::TsGetterSignature(v0) => {
146092                    Box::new(::std::iter::once(NodeRef::TsGetterSignature(v0)))
146093                }
146094                TsTypeElement::TsSetterSignature(v0) => {
146095                    Box::new(::std::iter::once(NodeRef::TsSetterSignature(v0)))
146096                }
146097                TsTypeElement::TsMethodSignature(v0) => {
146098                    Box::new(::std::iter::once(NodeRef::TsMethodSignature(v0)))
146099                }
146100                TsTypeElement::TsIndexSignature(v0) => {
146101                    Box::new(::std::iter::once(NodeRef::TsIndexSignature(v0)))
146102                }
146103                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
146104            },
146105            NodeRef::TsTypeLit(node) => {
146106                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
146107                    node.members
146108                        .iter()
146109                        .flat_map(|item| ::std::iter::once(NodeRef::TsTypeElement(&item))),
146110                );
146111                Box::new(iterator)
146112            }
146113            NodeRef::TsTypeOperator(node) => {
146114                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
146115                    .chain(::std::iter::once(NodeRef::TsTypeOperatorOp(&node.op)))
146116                    .chain({
146117                        let item = &*node.type_ann;
146118                        ::std::iter::once(NodeRef::TsType(&item))
146119                    });
146120                Box::new(iterator)
146121            }
146122            NodeRef::TsTypeOperatorOp(node) => match node {
146123                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
146124            },
146125            NodeRef::TsTypeParam(node) => {
146126                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
146127                    .chain(::std::iter::once(NodeRef::Ident(&node.name)))
146128                    .chain(node.constraint.iter().flat_map(|item| {
146129                        let item = &*item;
146130                        ::std::iter::once(NodeRef::TsType(&item))
146131                    }))
146132                    .chain(node.default.iter().flat_map(|item| {
146133                        let item = &*item;
146134                        ::std::iter::once(NodeRef::TsType(&item))
146135                    }));
146136                Box::new(iterator)
146137            }
146138            NodeRef::TsTypeParamDecl(node) => {
146139                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
146140                    node.params
146141                        .iter()
146142                        .flat_map(|item| ::std::iter::once(NodeRef::TsTypeParam(&item))),
146143                );
146144                Box::new(iterator)
146145            }
146146            NodeRef::TsTypeParamInstantiation(node) => {
146147                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
146148                    node.params.iter().flat_map(|item| {
146149                        let item = &*item;
146150                        ::std::iter::once(NodeRef::TsType(&item))
146151                    }),
146152                );
146153                Box::new(iterator)
146154            }
146155            NodeRef::TsTypePredicate(node) => {
146156                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
146157                    .chain(::std::iter::once(NodeRef::TsThisTypeOrIdent(
146158                        &node.param_name,
146159                    )))
146160                    .chain(node.type_ann.iter().flat_map(|item| {
146161                        let item = &*item;
146162                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
146163                    }));
146164                Box::new(iterator)
146165            }
146166            NodeRef::TsTypeQuery(node) => {
146167                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
146168                    .chain(::std::iter::once(NodeRef::TsTypeQueryExpr(&node.expr_name)))
146169                    .chain(node.type_args.iter().flat_map(|item| {
146170                        let item = &*item;
146171                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
146172                    }));
146173                Box::new(iterator)
146174            }
146175            NodeRef::TsTypeQueryExpr(node) => match node {
146176                TsTypeQueryExpr::TsEntityName(v0) => {
146177                    Box::new(::std::iter::once(NodeRef::TsEntityName(v0)))
146178                }
146179                TsTypeQueryExpr::Import(v0) => {
146180                    Box::new(::std::iter::once(NodeRef::TsImportType(v0)))
146181                }
146182                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
146183            },
146184            NodeRef::TsTypeRef(node) => {
146185                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
146186                    .chain(::std::iter::once(NodeRef::TsEntityName(&node.type_name)))
146187                    .chain(node.type_params.iter().flat_map(|item| {
146188                        let item = &*item;
146189                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
146190                    }));
146191                Box::new(iterator)
146192            }
146193            NodeRef::TsUnionOrIntersectionType(node) => match node {
146194                TsUnionOrIntersectionType::TsUnionType(v0) => {
146195                    Box::new(::std::iter::once(NodeRef::TsUnionType(v0)))
146196                }
146197                TsUnionOrIntersectionType::TsIntersectionType(v0) => {
146198                    Box::new(::std::iter::once(NodeRef::TsIntersectionType(v0)))
146199                }
146200                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
146201            },
146202            NodeRef::TsUnionType(node) => {
146203                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
146204                    node.types.iter().flat_map(|item| {
146205                        let item = &*item;
146206                        ::std::iter::once(NodeRef::TsType(&item))
146207                    }),
146208                );
146209                Box::new(iterator)
146210            }
146211            NodeRef::UnaryExpr(node) => {
146212                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
146213                    .chain(::std::iter::once(NodeRef::UnaryOp(&node.op)))
146214                    .chain({
146215                        let item = &*node.arg;
146216                        ::std::iter::once(NodeRef::Expr(&item))
146217                    });
146218                Box::new(iterator)
146219            }
146220            NodeRef::UnaryOp(node) => match node {
146221                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
146222            },
146223            NodeRef::UpdateExpr(node) => {
146224                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
146225                    .chain(::std::iter::once(NodeRef::UpdateOp(&node.op)))
146226                    .chain({
146227                        let item = &*node.arg;
146228                        ::std::iter::once(NodeRef::Expr(&item))
146229                    });
146230                Box::new(iterator)
146231            }
146232            NodeRef::UpdateOp(node) => match node {
146233                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
146234            },
146235            NodeRef::UsingDecl(node) => {
146236                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
146237                    node.decls
146238                        .iter()
146239                        .flat_map(|item| ::std::iter::once(NodeRef::VarDeclarator(&item))),
146240                );
146241                Box::new(iterator)
146242            }
146243            NodeRef::VarDecl(node) => {
146244                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
146245                    .chain(::std::iter::once(NodeRef::VarDeclKind(&node.kind)))
146246                    .chain(
146247                        node.decls
146248                            .iter()
146249                            .flat_map(|item| ::std::iter::once(NodeRef::VarDeclarator(&item))),
146250                    );
146251                Box::new(iterator)
146252            }
146253            NodeRef::VarDeclKind(node) => match node {
146254                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
146255            },
146256            NodeRef::VarDeclOrExpr(node) => match node {
146257                VarDeclOrExpr::VarDecl(v0) => Box::new(::std::iter::once(NodeRef::VarDecl(v0))),
146258                VarDeclOrExpr::Expr(v0) => Box::new(::std::iter::once(NodeRef::Expr(v0))),
146259                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
146260            },
146261            NodeRef::VarDeclarator(node) => {
146262                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
146263                    .chain(::std::iter::once(NodeRef::Pat(&node.name)))
146264                    .chain(node.init.iter().flat_map(|item| {
146265                        let item = &*item;
146266                        ::std::iter::once(NodeRef::Expr(&item))
146267                    }));
146268                Box::new(iterator)
146269            }
146270            NodeRef::WhileStmt(node) => {
146271                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
146272                    .chain({
146273                        let item = &*node.test;
146274                        ::std::iter::once(NodeRef::Expr(&item))
146275                    })
146276                    .chain({
146277                        let item = &*node.body;
146278                        ::std::iter::once(NodeRef::Stmt(&item))
146279                    });
146280                Box::new(iterator)
146281            }
146282            NodeRef::WithStmt(node) => {
146283                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
146284                    .chain({
146285                        let item = &*node.obj;
146286                        ::std::iter::once(NodeRef::Expr(&item))
146287                    })
146288                    .chain({
146289                        let item = &*node.body;
146290                        ::std::iter::once(NodeRef::Stmt(&item))
146291                    });
146292                Box::new(iterator)
146293            }
146294            NodeRef::YieldExpr(node) => {
146295                let iterator =
146296                    ::std::iter::empty::<NodeRef<'ast>>().chain(node.arg.iter().flat_map(|item| {
146297                        let item = &*item;
146298                        ::std::iter::once(NodeRef::Expr(&item))
146299                    }));
146300                Box::new(iterator)
146301            }
146302        }
146303    }
146304}
146305impl<'ast> NodeRef<'ast> {
146306    #[doc = r" Visit all nodes in self in preorder."]
146307    #[doc = r""]
146308    #[doc = r" This is not a part of semver-stable API. It is"]
146309    #[doc = r" experimental and subject to change."]
146310    pub fn experimental_traverse(&'ast self) -> Box<dyn 'ast + Iterator<Item = NodeRef<'ast>>> {
146311        let mut queue = std::collections::VecDeque::<NodeRef<'ast>>::new();
146312        queue.push_back(*self);
146313        Box::new(std::iter::from_fn(move || {
146314            let node: NodeRef<'ast> = queue.pop_front()?;
146315            {
146316                let children = node.experimental_raw_children();
146317                queue.extend(children);
146318            }
146319            Some(node)
146320        }))
146321    }
146322}
146323#[cfg(any(docsrs, feature = "path"))]
146324pub use self::fields::{AstParentKind, AstParentNodeRef};