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