oxc_ast/generated/
derive_get_span.rs

1// Auto-generated code, DO NOT EDIT DIRECTLY!
2// To edit this generated file you have to edit `tasks/ast_tools/src/derives/get_span.rs`.
3
4#![expect(clippy::match_same_arms)]
5
6use oxc_span::{GetSpan, Span};
7
8use crate::ast::js::*;
9use crate::ast::jsx::*;
10use crate::ast::literal::*;
11use crate::ast::ts::*;
12
13impl GetSpan for Program<'_> {
14    #[inline]
15    fn span(&self) -> Span {
16        self.span
17    }
18}
19
20impl GetSpan for Expression<'_> {
21    fn span(&self) -> Span {
22        match self {
23            Self::BooleanLiteral(it) => GetSpan::span(&**it),
24            Self::NullLiteral(it) => GetSpan::span(&**it),
25            Self::NumericLiteral(it) => GetSpan::span(&**it),
26            Self::BigIntLiteral(it) => GetSpan::span(&**it),
27            Self::RegExpLiteral(it) => GetSpan::span(&**it),
28            Self::StringLiteral(it) => GetSpan::span(&**it),
29            Self::TemplateLiteral(it) => GetSpan::span(&**it),
30            Self::Identifier(it) => GetSpan::span(&**it),
31            Self::MetaProperty(it) => GetSpan::span(&**it),
32            Self::Super(it) => GetSpan::span(&**it),
33            Self::ArrayExpression(it) => GetSpan::span(&**it),
34            Self::ArrowFunctionExpression(it) => GetSpan::span(&**it),
35            Self::AssignmentExpression(it) => GetSpan::span(&**it),
36            Self::AwaitExpression(it) => GetSpan::span(&**it),
37            Self::BinaryExpression(it) => GetSpan::span(&**it),
38            Self::CallExpression(it) => GetSpan::span(&**it),
39            Self::ChainExpression(it) => GetSpan::span(&**it),
40            Self::ClassExpression(it) => GetSpan::span(&**it),
41            Self::ConditionalExpression(it) => GetSpan::span(&**it),
42            Self::FunctionExpression(it) => GetSpan::span(&**it),
43            Self::ImportExpression(it) => GetSpan::span(&**it),
44            Self::LogicalExpression(it) => GetSpan::span(&**it),
45            Self::NewExpression(it) => GetSpan::span(&**it),
46            Self::ObjectExpression(it) => GetSpan::span(&**it),
47            Self::ParenthesizedExpression(it) => GetSpan::span(&**it),
48            Self::SequenceExpression(it) => GetSpan::span(&**it),
49            Self::TaggedTemplateExpression(it) => GetSpan::span(&**it),
50            Self::ThisExpression(it) => GetSpan::span(&**it),
51            Self::UnaryExpression(it) => GetSpan::span(&**it),
52            Self::UpdateExpression(it) => GetSpan::span(&**it),
53            Self::YieldExpression(it) => GetSpan::span(&**it),
54            Self::PrivateInExpression(it) => GetSpan::span(&**it),
55            Self::JSXElement(it) => GetSpan::span(&**it),
56            Self::JSXFragment(it) => GetSpan::span(&**it),
57            Self::TSAsExpression(it) => GetSpan::span(&**it),
58            Self::TSSatisfiesExpression(it) => GetSpan::span(&**it),
59            Self::TSTypeAssertion(it) => GetSpan::span(&**it),
60            Self::TSNonNullExpression(it) => GetSpan::span(&**it),
61            Self::TSInstantiationExpression(it) => GetSpan::span(&**it),
62            Self::V8IntrinsicExpression(it) => GetSpan::span(&**it),
63            Self::ComputedMemberExpression(it) => GetSpan::span(&**it),
64            Self::StaticMemberExpression(it) => GetSpan::span(&**it),
65            Self::PrivateFieldExpression(it) => GetSpan::span(&**it),
66        }
67    }
68}
69
70impl GetSpan for IdentifierName<'_> {
71    #[inline]
72    fn span(&self) -> Span {
73        self.span
74    }
75}
76
77impl GetSpan for IdentifierReference<'_> {
78    #[inline]
79    fn span(&self) -> Span {
80        self.span
81    }
82}
83
84impl GetSpan for BindingIdentifier<'_> {
85    #[inline]
86    fn span(&self) -> Span {
87        self.span
88    }
89}
90
91impl GetSpan for LabelIdentifier<'_> {
92    #[inline]
93    fn span(&self) -> Span {
94        self.span
95    }
96}
97
98impl GetSpan for ThisExpression {
99    #[inline]
100    fn span(&self) -> Span {
101        self.span
102    }
103}
104
105impl GetSpan for ArrayExpression<'_> {
106    #[inline]
107    fn span(&self) -> Span {
108        self.span
109    }
110}
111
112impl GetSpan for ArrayExpressionElement<'_> {
113    fn span(&self) -> Span {
114        match self {
115            Self::SpreadElement(it) => GetSpan::span(&**it),
116            Self::Elision(it) => GetSpan::span(it),
117            Self::BooleanLiteral(it) => GetSpan::span(&**it),
118            Self::NullLiteral(it) => GetSpan::span(&**it),
119            Self::NumericLiteral(it) => GetSpan::span(&**it),
120            Self::BigIntLiteral(it) => GetSpan::span(&**it),
121            Self::RegExpLiteral(it) => GetSpan::span(&**it),
122            Self::StringLiteral(it) => GetSpan::span(&**it),
123            Self::TemplateLiteral(it) => GetSpan::span(&**it),
124            Self::Identifier(it) => GetSpan::span(&**it),
125            Self::MetaProperty(it) => GetSpan::span(&**it),
126            Self::Super(it) => GetSpan::span(&**it),
127            Self::ArrayExpression(it) => GetSpan::span(&**it),
128            Self::ArrowFunctionExpression(it) => GetSpan::span(&**it),
129            Self::AssignmentExpression(it) => GetSpan::span(&**it),
130            Self::AwaitExpression(it) => GetSpan::span(&**it),
131            Self::BinaryExpression(it) => GetSpan::span(&**it),
132            Self::CallExpression(it) => GetSpan::span(&**it),
133            Self::ChainExpression(it) => GetSpan::span(&**it),
134            Self::ClassExpression(it) => GetSpan::span(&**it),
135            Self::ConditionalExpression(it) => GetSpan::span(&**it),
136            Self::FunctionExpression(it) => GetSpan::span(&**it),
137            Self::ImportExpression(it) => GetSpan::span(&**it),
138            Self::LogicalExpression(it) => GetSpan::span(&**it),
139            Self::NewExpression(it) => GetSpan::span(&**it),
140            Self::ObjectExpression(it) => GetSpan::span(&**it),
141            Self::ParenthesizedExpression(it) => GetSpan::span(&**it),
142            Self::SequenceExpression(it) => GetSpan::span(&**it),
143            Self::TaggedTemplateExpression(it) => GetSpan::span(&**it),
144            Self::ThisExpression(it) => GetSpan::span(&**it),
145            Self::UnaryExpression(it) => GetSpan::span(&**it),
146            Self::UpdateExpression(it) => GetSpan::span(&**it),
147            Self::YieldExpression(it) => GetSpan::span(&**it),
148            Self::PrivateInExpression(it) => GetSpan::span(&**it),
149            Self::JSXElement(it) => GetSpan::span(&**it),
150            Self::JSXFragment(it) => GetSpan::span(&**it),
151            Self::TSAsExpression(it) => GetSpan::span(&**it),
152            Self::TSSatisfiesExpression(it) => GetSpan::span(&**it),
153            Self::TSTypeAssertion(it) => GetSpan::span(&**it),
154            Self::TSNonNullExpression(it) => GetSpan::span(&**it),
155            Self::TSInstantiationExpression(it) => GetSpan::span(&**it),
156            Self::V8IntrinsicExpression(it) => GetSpan::span(&**it),
157            Self::ComputedMemberExpression(it) => GetSpan::span(&**it),
158            Self::StaticMemberExpression(it) => GetSpan::span(&**it),
159            Self::PrivateFieldExpression(it) => GetSpan::span(&**it),
160        }
161    }
162}
163
164impl GetSpan for Elision {
165    #[inline]
166    fn span(&self) -> Span {
167        self.span
168    }
169}
170
171impl GetSpan for ObjectExpression<'_> {
172    #[inline]
173    fn span(&self) -> Span {
174        self.span
175    }
176}
177
178impl GetSpan for ObjectPropertyKind<'_> {
179    fn span(&self) -> Span {
180        match self {
181            Self::ObjectProperty(it) => GetSpan::span(&**it),
182            Self::SpreadProperty(it) => GetSpan::span(&**it),
183        }
184    }
185}
186
187impl GetSpan for ObjectProperty<'_> {
188    #[inline]
189    fn span(&self) -> Span {
190        self.span
191    }
192}
193
194impl GetSpan for PropertyKey<'_> {
195    fn span(&self) -> Span {
196        match self {
197            Self::StaticIdentifier(it) => GetSpan::span(&**it),
198            Self::PrivateIdentifier(it) => GetSpan::span(&**it),
199            Self::BooleanLiteral(it) => GetSpan::span(&**it),
200            Self::NullLiteral(it) => GetSpan::span(&**it),
201            Self::NumericLiteral(it) => GetSpan::span(&**it),
202            Self::BigIntLiteral(it) => GetSpan::span(&**it),
203            Self::RegExpLiteral(it) => GetSpan::span(&**it),
204            Self::StringLiteral(it) => GetSpan::span(&**it),
205            Self::TemplateLiteral(it) => GetSpan::span(&**it),
206            Self::Identifier(it) => GetSpan::span(&**it),
207            Self::MetaProperty(it) => GetSpan::span(&**it),
208            Self::Super(it) => GetSpan::span(&**it),
209            Self::ArrayExpression(it) => GetSpan::span(&**it),
210            Self::ArrowFunctionExpression(it) => GetSpan::span(&**it),
211            Self::AssignmentExpression(it) => GetSpan::span(&**it),
212            Self::AwaitExpression(it) => GetSpan::span(&**it),
213            Self::BinaryExpression(it) => GetSpan::span(&**it),
214            Self::CallExpression(it) => GetSpan::span(&**it),
215            Self::ChainExpression(it) => GetSpan::span(&**it),
216            Self::ClassExpression(it) => GetSpan::span(&**it),
217            Self::ConditionalExpression(it) => GetSpan::span(&**it),
218            Self::FunctionExpression(it) => GetSpan::span(&**it),
219            Self::ImportExpression(it) => GetSpan::span(&**it),
220            Self::LogicalExpression(it) => GetSpan::span(&**it),
221            Self::NewExpression(it) => GetSpan::span(&**it),
222            Self::ObjectExpression(it) => GetSpan::span(&**it),
223            Self::ParenthesizedExpression(it) => GetSpan::span(&**it),
224            Self::SequenceExpression(it) => GetSpan::span(&**it),
225            Self::TaggedTemplateExpression(it) => GetSpan::span(&**it),
226            Self::ThisExpression(it) => GetSpan::span(&**it),
227            Self::UnaryExpression(it) => GetSpan::span(&**it),
228            Self::UpdateExpression(it) => GetSpan::span(&**it),
229            Self::YieldExpression(it) => GetSpan::span(&**it),
230            Self::PrivateInExpression(it) => GetSpan::span(&**it),
231            Self::JSXElement(it) => GetSpan::span(&**it),
232            Self::JSXFragment(it) => GetSpan::span(&**it),
233            Self::TSAsExpression(it) => GetSpan::span(&**it),
234            Self::TSSatisfiesExpression(it) => GetSpan::span(&**it),
235            Self::TSTypeAssertion(it) => GetSpan::span(&**it),
236            Self::TSNonNullExpression(it) => GetSpan::span(&**it),
237            Self::TSInstantiationExpression(it) => GetSpan::span(&**it),
238            Self::V8IntrinsicExpression(it) => GetSpan::span(&**it),
239            Self::ComputedMemberExpression(it) => GetSpan::span(&**it),
240            Self::StaticMemberExpression(it) => GetSpan::span(&**it),
241            Self::PrivateFieldExpression(it) => GetSpan::span(&**it),
242        }
243    }
244}
245
246impl GetSpan for TemplateLiteral<'_> {
247    #[inline]
248    fn span(&self) -> Span {
249        self.span
250    }
251}
252
253impl GetSpan for TaggedTemplateExpression<'_> {
254    #[inline]
255    fn span(&self) -> Span {
256        self.span
257    }
258}
259
260impl GetSpan for TemplateElement<'_> {
261    #[inline]
262    fn span(&self) -> Span {
263        self.span
264    }
265}
266
267impl GetSpan for MemberExpression<'_> {
268    fn span(&self) -> Span {
269        match self {
270            Self::ComputedMemberExpression(it) => GetSpan::span(&**it),
271            Self::StaticMemberExpression(it) => GetSpan::span(&**it),
272            Self::PrivateFieldExpression(it) => GetSpan::span(&**it),
273        }
274    }
275}
276
277impl GetSpan for ComputedMemberExpression<'_> {
278    #[inline]
279    fn span(&self) -> Span {
280        self.span
281    }
282}
283
284impl GetSpan for StaticMemberExpression<'_> {
285    #[inline]
286    fn span(&self) -> Span {
287        self.span
288    }
289}
290
291impl GetSpan for PrivateFieldExpression<'_> {
292    #[inline]
293    fn span(&self) -> Span {
294        self.span
295    }
296}
297
298impl GetSpan for CallExpression<'_> {
299    #[inline]
300    fn span(&self) -> Span {
301        self.span
302    }
303}
304
305impl GetSpan for NewExpression<'_> {
306    #[inline]
307    fn span(&self) -> Span {
308        self.span
309    }
310}
311
312impl GetSpan for MetaProperty<'_> {
313    #[inline]
314    fn span(&self) -> Span {
315        self.span
316    }
317}
318
319impl GetSpan for SpreadElement<'_> {
320    #[inline]
321    fn span(&self) -> Span {
322        self.span
323    }
324}
325
326impl GetSpan for Argument<'_> {
327    fn span(&self) -> Span {
328        match self {
329            Self::SpreadElement(it) => GetSpan::span(&**it),
330            Self::BooleanLiteral(it) => GetSpan::span(&**it),
331            Self::NullLiteral(it) => GetSpan::span(&**it),
332            Self::NumericLiteral(it) => GetSpan::span(&**it),
333            Self::BigIntLiteral(it) => GetSpan::span(&**it),
334            Self::RegExpLiteral(it) => GetSpan::span(&**it),
335            Self::StringLiteral(it) => GetSpan::span(&**it),
336            Self::TemplateLiteral(it) => GetSpan::span(&**it),
337            Self::Identifier(it) => GetSpan::span(&**it),
338            Self::MetaProperty(it) => GetSpan::span(&**it),
339            Self::Super(it) => GetSpan::span(&**it),
340            Self::ArrayExpression(it) => GetSpan::span(&**it),
341            Self::ArrowFunctionExpression(it) => GetSpan::span(&**it),
342            Self::AssignmentExpression(it) => GetSpan::span(&**it),
343            Self::AwaitExpression(it) => GetSpan::span(&**it),
344            Self::BinaryExpression(it) => GetSpan::span(&**it),
345            Self::CallExpression(it) => GetSpan::span(&**it),
346            Self::ChainExpression(it) => GetSpan::span(&**it),
347            Self::ClassExpression(it) => GetSpan::span(&**it),
348            Self::ConditionalExpression(it) => GetSpan::span(&**it),
349            Self::FunctionExpression(it) => GetSpan::span(&**it),
350            Self::ImportExpression(it) => GetSpan::span(&**it),
351            Self::LogicalExpression(it) => GetSpan::span(&**it),
352            Self::NewExpression(it) => GetSpan::span(&**it),
353            Self::ObjectExpression(it) => GetSpan::span(&**it),
354            Self::ParenthesizedExpression(it) => GetSpan::span(&**it),
355            Self::SequenceExpression(it) => GetSpan::span(&**it),
356            Self::TaggedTemplateExpression(it) => GetSpan::span(&**it),
357            Self::ThisExpression(it) => GetSpan::span(&**it),
358            Self::UnaryExpression(it) => GetSpan::span(&**it),
359            Self::UpdateExpression(it) => GetSpan::span(&**it),
360            Self::YieldExpression(it) => GetSpan::span(&**it),
361            Self::PrivateInExpression(it) => GetSpan::span(&**it),
362            Self::JSXElement(it) => GetSpan::span(&**it),
363            Self::JSXFragment(it) => GetSpan::span(&**it),
364            Self::TSAsExpression(it) => GetSpan::span(&**it),
365            Self::TSSatisfiesExpression(it) => GetSpan::span(&**it),
366            Self::TSTypeAssertion(it) => GetSpan::span(&**it),
367            Self::TSNonNullExpression(it) => GetSpan::span(&**it),
368            Self::TSInstantiationExpression(it) => GetSpan::span(&**it),
369            Self::V8IntrinsicExpression(it) => GetSpan::span(&**it),
370            Self::ComputedMemberExpression(it) => GetSpan::span(&**it),
371            Self::StaticMemberExpression(it) => GetSpan::span(&**it),
372            Self::PrivateFieldExpression(it) => GetSpan::span(&**it),
373        }
374    }
375}
376
377impl GetSpan for UpdateExpression<'_> {
378    #[inline]
379    fn span(&self) -> Span {
380        self.span
381    }
382}
383
384impl GetSpan for UnaryExpression<'_> {
385    #[inline]
386    fn span(&self) -> Span {
387        self.span
388    }
389}
390
391impl GetSpan for BinaryExpression<'_> {
392    #[inline]
393    fn span(&self) -> Span {
394        self.span
395    }
396}
397
398impl GetSpan for PrivateInExpression<'_> {
399    #[inline]
400    fn span(&self) -> Span {
401        self.span
402    }
403}
404
405impl GetSpan for LogicalExpression<'_> {
406    #[inline]
407    fn span(&self) -> Span {
408        self.span
409    }
410}
411
412impl GetSpan for ConditionalExpression<'_> {
413    #[inline]
414    fn span(&self) -> Span {
415        self.span
416    }
417}
418
419impl GetSpan for AssignmentExpression<'_> {
420    #[inline]
421    fn span(&self) -> Span {
422        self.span
423    }
424}
425
426impl GetSpan for AssignmentTarget<'_> {
427    fn span(&self) -> Span {
428        match self {
429            Self::AssignmentTargetIdentifier(it) => GetSpan::span(&**it),
430            Self::TSAsExpression(it) => GetSpan::span(&**it),
431            Self::TSSatisfiesExpression(it) => GetSpan::span(&**it),
432            Self::TSNonNullExpression(it) => GetSpan::span(&**it),
433            Self::TSTypeAssertion(it) => GetSpan::span(&**it),
434            Self::ComputedMemberExpression(it) => GetSpan::span(&**it),
435            Self::StaticMemberExpression(it) => GetSpan::span(&**it),
436            Self::PrivateFieldExpression(it) => GetSpan::span(&**it),
437            Self::ArrayAssignmentTarget(it) => GetSpan::span(&**it),
438            Self::ObjectAssignmentTarget(it) => GetSpan::span(&**it),
439        }
440    }
441}
442
443impl GetSpan for SimpleAssignmentTarget<'_> {
444    fn span(&self) -> Span {
445        match self {
446            Self::AssignmentTargetIdentifier(it) => GetSpan::span(&**it),
447            Self::TSAsExpression(it) => GetSpan::span(&**it),
448            Self::TSSatisfiesExpression(it) => GetSpan::span(&**it),
449            Self::TSNonNullExpression(it) => GetSpan::span(&**it),
450            Self::TSTypeAssertion(it) => GetSpan::span(&**it),
451            Self::ComputedMemberExpression(it) => GetSpan::span(&**it),
452            Self::StaticMemberExpression(it) => GetSpan::span(&**it),
453            Self::PrivateFieldExpression(it) => GetSpan::span(&**it),
454        }
455    }
456}
457
458impl GetSpan for AssignmentTargetPattern<'_> {
459    fn span(&self) -> Span {
460        match self {
461            Self::ArrayAssignmentTarget(it) => GetSpan::span(&**it),
462            Self::ObjectAssignmentTarget(it) => GetSpan::span(&**it),
463        }
464    }
465}
466
467impl GetSpan for ArrayAssignmentTarget<'_> {
468    #[inline]
469    fn span(&self) -> Span {
470        self.span
471    }
472}
473
474impl GetSpan for ObjectAssignmentTarget<'_> {
475    #[inline]
476    fn span(&self) -> Span {
477        self.span
478    }
479}
480
481impl GetSpan for AssignmentTargetRest<'_> {
482    #[inline]
483    fn span(&self) -> Span {
484        self.span
485    }
486}
487
488impl GetSpan for AssignmentTargetMaybeDefault<'_> {
489    fn span(&self) -> Span {
490        match self {
491            Self::AssignmentTargetWithDefault(it) => GetSpan::span(&**it),
492            Self::AssignmentTargetIdentifier(it) => GetSpan::span(&**it),
493            Self::TSAsExpression(it) => GetSpan::span(&**it),
494            Self::TSSatisfiesExpression(it) => GetSpan::span(&**it),
495            Self::TSNonNullExpression(it) => GetSpan::span(&**it),
496            Self::TSTypeAssertion(it) => GetSpan::span(&**it),
497            Self::ComputedMemberExpression(it) => GetSpan::span(&**it),
498            Self::StaticMemberExpression(it) => GetSpan::span(&**it),
499            Self::PrivateFieldExpression(it) => GetSpan::span(&**it),
500            Self::ArrayAssignmentTarget(it) => GetSpan::span(&**it),
501            Self::ObjectAssignmentTarget(it) => GetSpan::span(&**it),
502        }
503    }
504}
505
506impl GetSpan for AssignmentTargetWithDefault<'_> {
507    #[inline]
508    fn span(&self) -> Span {
509        self.span
510    }
511}
512
513impl GetSpan for AssignmentTargetProperty<'_> {
514    fn span(&self) -> Span {
515        match self {
516            Self::AssignmentTargetPropertyIdentifier(it) => GetSpan::span(&**it),
517            Self::AssignmentTargetPropertyProperty(it) => GetSpan::span(&**it),
518        }
519    }
520}
521
522impl GetSpan for AssignmentTargetPropertyIdentifier<'_> {
523    #[inline]
524    fn span(&self) -> Span {
525        self.span
526    }
527}
528
529impl GetSpan for AssignmentTargetPropertyProperty<'_> {
530    #[inline]
531    fn span(&self) -> Span {
532        self.span
533    }
534}
535
536impl GetSpan for SequenceExpression<'_> {
537    #[inline]
538    fn span(&self) -> Span {
539        self.span
540    }
541}
542
543impl GetSpan for Super {
544    #[inline]
545    fn span(&self) -> Span {
546        self.span
547    }
548}
549
550impl GetSpan for AwaitExpression<'_> {
551    #[inline]
552    fn span(&self) -> Span {
553        self.span
554    }
555}
556
557impl GetSpan for ChainExpression<'_> {
558    #[inline]
559    fn span(&self) -> Span {
560        self.span
561    }
562}
563
564impl GetSpan for ChainElement<'_> {
565    fn span(&self) -> Span {
566        match self {
567            Self::CallExpression(it) => GetSpan::span(&**it),
568            Self::TSNonNullExpression(it) => GetSpan::span(&**it),
569            Self::ComputedMemberExpression(it) => GetSpan::span(&**it),
570            Self::StaticMemberExpression(it) => GetSpan::span(&**it),
571            Self::PrivateFieldExpression(it) => GetSpan::span(&**it),
572        }
573    }
574}
575
576impl GetSpan for ParenthesizedExpression<'_> {
577    #[inline]
578    fn span(&self) -> Span {
579        self.span
580    }
581}
582
583impl GetSpan for Statement<'_> {
584    fn span(&self) -> Span {
585        match self {
586            Self::BlockStatement(it) => GetSpan::span(&**it),
587            Self::BreakStatement(it) => GetSpan::span(&**it),
588            Self::ContinueStatement(it) => GetSpan::span(&**it),
589            Self::DebuggerStatement(it) => GetSpan::span(&**it),
590            Self::DoWhileStatement(it) => GetSpan::span(&**it),
591            Self::EmptyStatement(it) => GetSpan::span(&**it),
592            Self::ExpressionStatement(it) => GetSpan::span(&**it),
593            Self::ForInStatement(it) => GetSpan::span(&**it),
594            Self::ForOfStatement(it) => GetSpan::span(&**it),
595            Self::ForStatement(it) => GetSpan::span(&**it),
596            Self::IfStatement(it) => GetSpan::span(&**it),
597            Self::LabeledStatement(it) => GetSpan::span(&**it),
598            Self::ReturnStatement(it) => GetSpan::span(&**it),
599            Self::SwitchStatement(it) => GetSpan::span(&**it),
600            Self::ThrowStatement(it) => GetSpan::span(&**it),
601            Self::TryStatement(it) => GetSpan::span(&**it),
602            Self::WhileStatement(it) => GetSpan::span(&**it),
603            Self::WithStatement(it) => GetSpan::span(&**it),
604            Self::VariableDeclaration(it) => GetSpan::span(&**it),
605            Self::FunctionDeclaration(it) => GetSpan::span(&**it),
606            Self::ClassDeclaration(it) => GetSpan::span(&**it),
607            Self::TSTypeAliasDeclaration(it) => GetSpan::span(&**it),
608            Self::TSInterfaceDeclaration(it) => GetSpan::span(&**it),
609            Self::TSEnumDeclaration(it) => GetSpan::span(&**it),
610            Self::TSModuleDeclaration(it) => GetSpan::span(&**it),
611            Self::TSGlobalDeclaration(it) => GetSpan::span(&**it),
612            Self::TSImportEqualsDeclaration(it) => GetSpan::span(&**it),
613            Self::ImportDeclaration(it) => GetSpan::span(&**it),
614            Self::ExportAllDeclaration(it) => GetSpan::span(&**it),
615            Self::ExportDefaultDeclaration(it) => GetSpan::span(&**it),
616            Self::ExportNamedDeclaration(it) => GetSpan::span(&**it),
617            Self::TSExportAssignment(it) => GetSpan::span(&**it),
618            Self::TSNamespaceExportDeclaration(it) => GetSpan::span(&**it),
619        }
620    }
621}
622
623impl GetSpan for Directive<'_> {
624    #[inline]
625    fn span(&self) -> Span {
626        self.span
627    }
628}
629
630impl GetSpan for Hashbang<'_> {
631    #[inline]
632    fn span(&self) -> Span {
633        self.span
634    }
635}
636
637impl GetSpan for BlockStatement<'_> {
638    #[inline]
639    fn span(&self) -> Span {
640        self.span
641    }
642}
643
644impl GetSpan for Declaration<'_> {
645    fn span(&self) -> Span {
646        match self {
647            Self::VariableDeclaration(it) => GetSpan::span(&**it),
648            Self::FunctionDeclaration(it) => GetSpan::span(&**it),
649            Self::ClassDeclaration(it) => GetSpan::span(&**it),
650            Self::TSTypeAliasDeclaration(it) => GetSpan::span(&**it),
651            Self::TSInterfaceDeclaration(it) => GetSpan::span(&**it),
652            Self::TSEnumDeclaration(it) => GetSpan::span(&**it),
653            Self::TSModuleDeclaration(it) => GetSpan::span(&**it),
654            Self::TSGlobalDeclaration(it) => GetSpan::span(&**it),
655            Self::TSImportEqualsDeclaration(it) => GetSpan::span(&**it),
656        }
657    }
658}
659
660impl GetSpan for VariableDeclaration<'_> {
661    #[inline]
662    fn span(&self) -> Span {
663        self.span
664    }
665}
666
667impl GetSpan for VariableDeclarator<'_> {
668    #[inline]
669    fn span(&self) -> Span {
670        self.span
671    }
672}
673
674impl GetSpan for EmptyStatement {
675    #[inline]
676    fn span(&self) -> Span {
677        self.span
678    }
679}
680
681impl GetSpan for ExpressionStatement<'_> {
682    #[inline]
683    fn span(&self) -> Span {
684        self.span
685    }
686}
687
688impl GetSpan for IfStatement<'_> {
689    #[inline]
690    fn span(&self) -> Span {
691        self.span
692    }
693}
694
695impl GetSpan for DoWhileStatement<'_> {
696    #[inline]
697    fn span(&self) -> Span {
698        self.span
699    }
700}
701
702impl GetSpan for WhileStatement<'_> {
703    #[inline]
704    fn span(&self) -> Span {
705        self.span
706    }
707}
708
709impl GetSpan for ForStatement<'_> {
710    #[inline]
711    fn span(&self) -> Span {
712        self.span
713    }
714}
715
716impl GetSpan for ForStatementInit<'_> {
717    fn span(&self) -> Span {
718        match self {
719            Self::VariableDeclaration(it) => GetSpan::span(&**it),
720            Self::BooleanLiteral(it) => GetSpan::span(&**it),
721            Self::NullLiteral(it) => GetSpan::span(&**it),
722            Self::NumericLiteral(it) => GetSpan::span(&**it),
723            Self::BigIntLiteral(it) => GetSpan::span(&**it),
724            Self::RegExpLiteral(it) => GetSpan::span(&**it),
725            Self::StringLiteral(it) => GetSpan::span(&**it),
726            Self::TemplateLiteral(it) => GetSpan::span(&**it),
727            Self::Identifier(it) => GetSpan::span(&**it),
728            Self::MetaProperty(it) => GetSpan::span(&**it),
729            Self::Super(it) => GetSpan::span(&**it),
730            Self::ArrayExpression(it) => GetSpan::span(&**it),
731            Self::ArrowFunctionExpression(it) => GetSpan::span(&**it),
732            Self::AssignmentExpression(it) => GetSpan::span(&**it),
733            Self::AwaitExpression(it) => GetSpan::span(&**it),
734            Self::BinaryExpression(it) => GetSpan::span(&**it),
735            Self::CallExpression(it) => GetSpan::span(&**it),
736            Self::ChainExpression(it) => GetSpan::span(&**it),
737            Self::ClassExpression(it) => GetSpan::span(&**it),
738            Self::ConditionalExpression(it) => GetSpan::span(&**it),
739            Self::FunctionExpression(it) => GetSpan::span(&**it),
740            Self::ImportExpression(it) => GetSpan::span(&**it),
741            Self::LogicalExpression(it) => GetSpan::span(&**it),
742            Self::NewExpression(it) => GetSpan::span(&**it),
743            Self::ObjectExpression(it) => GetSpan::span(&**it),
744            Self::ParenthesizedExpression(it) => GetSpan::span(&**it),
745            Self::SequenceExpression(it) => GetSpan::span(&**it),
746            Self::TaggedTemplateExpression(it) => GetSpan::span(&**it),
747            Self::ThisExpression(it) => GetSpan::span(&**it),
748            Self::UnaryExpression(it) => GetSpan::span(&**it),
749            Self::UpdateExpression(it) => GetSpan::span(&**it),
750            Self::YieldExpression(it) => GetSpan::span(&**it),
751            Self::PrivateInExpression(it) => GetSpan::span(&**it),
752            Self::JSXElement(it) => GetSpan::span(&**it),
753            Self::JSXFragment(it) => GetSpan::span(&**it),
754            Self::TSAsExpression(it) => GetSpan::span(&**it),
755            Self::TSSatisfiesExpression(it) => GetSpan::span(&**it),
756            Self::TSTypeAssertion(it) => GetSpan::span(&**it),
757            Self::TSNonNullExpression(it) => GetSpan::span(&**it),
758            Self::TSInstantiationExpression(it) => GetSpan::span(&**it),
759            Self::V8IntrinsicExpression(it) => GetSpan::span(&**it),
760            Self::ComputedMemberExpression(it) => GetSpan::span(&**it),
761            Self::StaticMemberExpression(it) => GetSpan::span(&**it),
762            Self::PrivateFieldExpression(it) => GetSpan::span(&**it),
763        }
764    }
765}
766
767impl GetSpan for ForInStatement<'_> {
768    #[inline]
769    fn span(&self) -> Span {
770        self.span
771    }
772}
773
774impl GetSpan for ForStatementLeft<'_> {
775    fn span(&self) -> Span {
776        match self {
777            Self::VariableDeclaration(it) => GetSpan::span(&**it),
778            Self::AssignmentTargetIdentifier(it) => GetSpan::span(&**it),
779            Self::TSAsExpression(it) => GetSpan::span(&**it),
780            Self::TSSatisfiesExpression(it) => GetSpan::span(&**it),
781            Self::TSNonNullExpression(it) => GetSpan::span(&**it),
782            Self::TSTypeAssertion(it) => GetSpan::span(&**it),
783            Self::ComputedMemberExpression(it) => GetSpan::span(&**it),
784            Self::StaticMemberExpression(it) => GetSpan::span(&**it),
785            Self::PrivateFieldExpression(it) => GetSpan::span(&**it),
786            Self::ArrayAssignmentTarget(it) => GetSpan::span(&**it),
787            Self::ObjectAssignmentTarget(it) => GetSpan::span(&**it),
788        }
789    }
790}
791
792impl GetSpan for ForOfStatement<'_> {
793    #[inline]
794    fn span(&self) -> Span {
795        self.span
796    }
797}
798
799impl GetSpan for ContinueStatement<'_> {
800    #[inline]
801    fn span(&self) -> Span {
802        self.span
803    }
804}
805
806impl GetSpan for BreakStatement<'_> {
807    #[inline]
808    fn span(&self) -> Span {
809        self.span
810    }
811}
812
813impl GetSpan for ReturnStatement<'_> {
814    #[inline]
815    fn span(&self) -> Span {
816        self.span
817    }
818}
819
820impl GetSpan for WithStatement<'_> {
821    #[inline]
822    fn span(&self) -> Span {
823        self.span
824    }
825}
826
827impl GetSpan for SwitchStatement<'_> {
828    #[inline]
829    fn span(&self) -> Span {
830        self.span
831    }
832}
833
834impl GetSpan for SwitchCase<'_> {
835    #[inline]
836    fn span(&self) -> Span {
837        self.span
838    }
839}
840
841impl GetSpan for LabeledStatement<'_> {
842    #[inline]
843    fn span(&self) -> Span {
844        self.span
845    }
846}
847
848impl GetSpan for ThrowStatement<'_> {
849    #[inline]
850    fn span(&self) -> Span {
851        self.span
852    }
853}
854
855impl GetSpan for TryStatement<'_> {
856    #[inline]
857    fn span(&self) -> Span {
858        self.span
859    }
860}
861
862impl GetSpan for CatchClause<'_> {
863    #[inline]
864    fn span(&self) -> Span {
865        self.span
866    }
867}
868
869impl GetSpan for CatchParameter<'_> {
870    #[inline]
871    fn span(&self) -> Span {
872        self.span
873    }
874}
875
876impl GetSpan for DebuggerStatement {
877    #[inline]
878    fn span(&self) -> Span {
879        self.span
880    }
881}
882
883impl GetSpan for BindingPattern<'_> {
884    #[inline]
885    fn span(&self) -> Span {
886        GetSpan::span(&self.kind)
887    }
888}
889
890impl GetSpan for BindingPatternKind<'_> {
891    fn span(&self) -> Span {
892        match self {
893            Self::BindingIdentifier(it) => GetSpan::span(&**it),
894            Self::ObjectPattern(it) => GetSpan::span(&**it),
895            Self::ArrayPattern(it) => GetSpan::span(&**it),
896            Self::AssignmentPattern(it) => GetSpan::span(&**it),
897        }
898    }
899}
900
901impl GetSpan for AssignmentPattern<'_> {
902    #[inline]
903    fn span(&self) -> Span {
904        self.span
905    }
906}
907
908impl GetSpan for ObjectPattern<'_> {
909    #[inline]
910    fn span(&self) -> Span {
911        self.span
912    }
913}
914
915impl GetSpan for BindingProperty<'_> {
916    #[inline]
917    fn span(&self) -> Span {
918        self.span
919    }
920}
921
922impl GetSpan for ArrayPattern<'_> {
923    #[inline]
924    fn span(&self) -> Span {
925        self.span
926    }
927}
928
929impl GetSpan for BindingRestElement<'_> {
930    #[inline]
931    fn span(&self) -> Span {
932        self.span
933    }
934}
935
936impl GetSpan for Function<'_> {
937    #[inline]
938    fn span(&self) -> Span {
939        self.span
940    }
941}
942
943impl GetSpan for FormalParameters<'_> {
944    #[inline]
945    fn span(&self) -> Span {
946        self.span
947    }
948}
949
950impl GetSpan for FormalParameter<'_> {
951    #[inline]
952    fn span(&self) -> Span {
953        self.span
954    }
955}
956
957impl GetSpan for FunctionBody<'_> {
958    #[inline]
959    fn span(&self) -> Span {
960        self.span
961    }
962}
963
964impl GetSpan for ArrowFunctionExpression<'_> {
965    #[inline]
966    fn span(&self) -> Span {
967        self.span
968    }
969}
970
971impl GetSpan for YieldExpression<'_> {
972    #[inline]
973    fn span(&self) -> Span {
974        self.span
975    }
976}
977
978impl GetSpan for Class<'_> {
979    #[inline]
980    fn span(&self) -> Span {
981        self.span
982    }
983}
984
985impl GetSpan for ClassBody<'_> {
986    #[inline]
987    fn span(&self) -> Span {
988        self.span
989    }
990}
991
992impl GetSpan for ClassElement<'_> {
993    fn span(&self) -> Span {
994        match self {
995            Self::StaticBlock(it) => GetSpan::span(&**it),
996            Self::MethodDefinition(it) => GetSpan::span(&**it),
997            Self::PropertyDefinition(it) => GetSpan::span(&**it),
998            Self::AccessorProperty(it) => GetSpan::span(&**it),
999            Self::TSIndexSignature(it) => GetSpan::span(&**it),
1000        }
1001    }
1002}
1003
1004impl GetSpan for MethodDefinition<'_> {
1005    #[inline]
1006    fn span(&self) -> Span {
1007        self.span
1008    }
1009}
1010
1011impl GetSpan for PropertyDefinition<'_> {
1012    #[inline]
1013    fn span(&self) -> Span {
1014        self.span
1015    }
1016}
1017
1018impl GetSpan for PrivateIdentifier<'_> {
1019    #[inline]
1020    fn span(&self) -> Span {
1021        self.span
1022    }
1023}
1024
1025impl GetSpan for StaticBlock<'_> {
1026    #[inline]
1027    fn span(&self) -> Span {
1028        self.span
1029    }
1030}
1031
1032impl GetSpan for ModuleDeclaration<'_> {
1033    fn span(&self) -> Span {
1034        match self {
1035            Self::ImportDeclaration(it) => GetSpan::span(&**it),
1036            Self::ExportAllDeclaration(it) => GetSpan::span(&**it),
1037            Self::ExportDefaultDeclaration(it) => GetSpan::span(&**it),
1038            Self::ExportNamedDeclaration(it) => GetSpan::span(&**it),
1039            Self::TSExportAssignment(it) => GetSpan::span(&**it),
1040            Self::TSNamespaceExportDeclaration(it) => GetSpan::span(&**it),
1041        }
1042    }
1043}
1044
1045impl GetSpan for AccessorProperty<'_> {
1046    #[inline]
1047    fn span(&self) -> Span {
1048        self.span
1049    }
1050}
1051
1052impl GetSpan for ImportExpression<'_> {
1053    #[inline]
1054    fn span(&self) -> Span {
1055        self.span
1056    }
1057}
1058
1059impl GetSpan for ImportDeclaration<'_> {
1060    #[inline]
1061    fn span(&self) -> Span {
1062        self.span
1063    }
1064}
1065
1066impl GetSpan for ImportDeclarationSpecifier<'_> {
1067    fn span(&self) -> Span {
1068        match self {
1069            Self::ImportSpecifier(it) => GetSpan::span(&**it),
1070            Self::ImportDefaultSpecifier(it) => GetSpan::span(&**it),
1071            Self::ImportNamespaceSpecifier(it) => GetSpan::span(&**it),
1072        }
1073    }
1074}
1075
1076impl GetSpan for ImportSpecifier<'_> {
1077    #[inline]
1078    fn span(&self) -> Span {
1079        self.span
1080    }
1081}
1082
1083impl GetSpan for ImportDefaultSpecifier<'_> {
1084    #[inline]
1085    fn span(&self) -> Span {
1086        self.span
1087    }
1088}
1089
1090impl GetSpan for ImportNamespaceSpecifier<'_> {
1091    #[inline]
1092    fn span(&self) -> Span {
1093        self.span
1094    }
1095}
1096
1097impl GetSpan for WithClause<'_> {
1098    #[inline]
1099    fn span(&self) -> Span {
1100        self.span
1101    }
1102}
1103
1104impl GetSpan for ImportAttribute<'_> {
1105    #[inline]
1106    fn span(&self) -> Span {
1107        self.span
1108    }
1109}
1110
1111impl GetSpan for ImportAttributeKey<'_> {
1112    fn span(&self) -> Span {
1113        match self {
1114            Self::Identifier(it) => GetSpan::span(it),
1115            Self::StringLiteral(it) => GetSpan::span(it),
1116        }
1117    }
1118}
1119
1120impl GetSpan for ExportNamedDeclaration<'_> {
1121    #[inline]
1122    fn span(&self) -> Span {
1123        self.span
1124    }
1125}
1126
1127impl GetSpan for ExportDefaultDeclaration<'_> {
1128    #[inline]
1129    fn span(&self) -> Span {
1130        self.span
1131    }
1132}
1133
1134impl GetSpan for ExportAllDeclaration<'_> {
1135    #[inline]
1136    fn span(&self) -> Span {
1137        self.span
1138    }
1139}
1140
1141impl GetSpan for ExportSpecifier<'_> {
1142    #[inline]
1143    fn span(&self) -> Span {
1144        self.span
1145    }
1146}
1147
1148impl GetSpan for ExportDefaultDeclarationKind<'_> {
1149    fn span(&self) -> Span {
1150        match self {
1151            Self::FunctionDeclaration(it) => GetSpan::span(&**it),
1152            Self::ClassDeclaration(it) => GetSpan::span(&**it),
1153            Self::TSInterfaceDeclaration(it) => GetSpan::span(&**it),
1154            Self::BooleanLiteral(it) => GetSpan::span(&**it),
1155            Self::NullLiteral(it) => GetSpan::span(&**it),
1156            Self::NumericLiteral(it) => GetSpan::span(&**it),
1157            Self::BigIntLiteral(it) => GetSpan::span(&**it),
1158            Self::RegExpLiteral(it) => GetSpan::span(&**it),
1159            Self::StringLiteral(it) => GetSpan::span(&**it),
1160            Self::TemplateLiteral(it) => GetSpan::span(&**it),
1161            Self::Identifier(it) => GetSpan::span(&**it),
1162            Self::MetaProperty(it) => GetSpan::span(&**it),
1163            Self::Super(it) => GetSpan::span(&**it),
1164            Self::ArrayExpression(it) => GetSpan::span(&**it),
1165            Self::ArrowFunctionExpression(it) => GetSpan::span(&**it),
1166            Self::AssignmentExpression(it) => GetSpan::span(&**it),
1167            Self::AwaitExpression(it) => GetSpan::span(&**it),
1168            Self::BinaryExpression(it) => GetSpan::span(&**it),
1169            Self::CallExpression(it) => GetSpan::span(&**it),
1170            Self::ChainExpression(it) => GetSpan::span(&**it),
1171            Self::ClassExpression(it) => GetSpan::span(&**it),
1172            Self::ConditionalExpression(it) => GetSpan::span(&**it),
1173            Self::FunctionExpression(it) => GetSpan::span(&**it),
1174            Self::ImportExpression(it) => GetSpan::span(&**it),
1175            Self::LogicalExpression(it) => GetSpan::span(&**it),
1176            Self::NewExpression(it) => GetSpan::span(&**it),
1177            Self::ObjectExpression(it) => GetSpan::span(&**it),
1178            Self::ParenthesizedExpression(it) => GetSpan::span(&**it),
1179            Self::SequenceExpression(it) => GetSpan::span(&**it),
1180            Self::TaggedTemplateExpression(it) => GetSpan::span(&**it),
1181            Self::ThisExpression(it) => GetSpan::span(&**it),
1182            Self::UnaryExpression(it) => GetSpan::span(&**it),
1183            Self::UpdateExpression(it) => GetSpan::span(&**it),
1184            Self::YieldExpression(it) => GetSpan::span(&**it),
1185            Self::PrivateInExpression(it) => GetSpan::span(&**it),
1186            Self::JSXElement(it) => GetSpan::span(&**it),
1187            Self::JSXFragment(it) => GetSpan::span(&**it),
1188            Self::TSAsExpression(it) => GetSpan::span(&**it),
1189            Self::TSSatisfiesExpression(it) => GetSpan::span(&**it),
1190            Self::TSTypeAssertion(it) => GetSpan::span(&**it),
1191            Self::TSNonNullExpression(it) => GetSpan::span(&**it),
1192            Self::TSInstantiationExpression(it) => GetSpan::span(&**it),
1193            Self::V8IntrinsicExpression(it) => GetSpan::span(&**it),
1194            Self::ComputedMemberExpression(it) => GetSpan::span(&**it),
1195            Self::StaticMemberExpression(it) => GetSpan::span(&**it),
1196            Self::PrivateFieldExpression(it) => GetSpan::span(&**it),
1197        }
1198    }
1199}
1200
1201impl GetSpan for ModuleExportName<'_> {
1202    fn span(&self) -> Span {
1203        match self {
1204            Self::IdentifierName(it) => GetSpan::span(it),
1205            Self::IdentifierReference(it) => GetSpan::span(it),
1206            Self::StringLiteral(it) => GetSpan::span(it),
1207        }
1208    }
1209}
1210
1211impl GetSpan for V8IntrinsicExpression<'_> {
1212    #[inline]
1213    fn span(&self) -> Span {
1214        self.span
1215    }
1216}
1217
1218impl GetSpan for BooleanLiteral {
1219    #[inline]
1220    fn span(&self) -> Span {
1221        self.span
1222    }
1223}
1224
1225impl GetSpan for NullLiteral {
1226    #[inline]
1227    fn span(&self) -> Span {
1228        self.span
1229    }
1230}
1231
1232impl GetSpan for NumericLiteral<'_> {
1233    #[inline]
1234    fn span(&self) -> Span {
1235        self.span
1236    }
1237}
1238
1239impl GetSpan for StringLiteral<'_> {
1240    #[inline]
1241    fn span(&self) -> Span {
1242        self.span
1243    }
1244}
1245
1246impl GetSpan for BigIntLiteral<'_> {
1247    #[inline]
1248    fn span(&self) -> Span {
1249        self.span
1250    }
1251}
1252
1253impl GetSpan for RegExpLiteral<'_> {
1254    #[inline]
1255    fn span(&self) -> Span {
1256        self.span
1257    }
1258}
1259
1260impl GetSpan for JSXElement<'_> {
1261    #[inline]
1262    fn span(&self) -> Span {
1263        self.span
1264    }
1265}
1266
1267impl GetSpan for JSXOpeningElement<'_> {
1268    #[inline]
1269    fn span(&self) -> Span {
1270        self.span
1271    }
1272}
1273
1274impl GetSpan for JSXClosingElement<'_> {
1275    #[inline]
1276    fn span(&self) -> Span {
1277        self.span
1278    }
1279}
1280
1281impl GetSpan for JSXFragment<'_> {
1282    #[inline]
1283    fn span(&self) -> Span {
1284        self.span
1285    }
1286}
1287
1288impl GetSpan for JSXOpeningFragment {
1289    #[inline]
1290    fn span(&self) -> Span {
1291        self.span
1292    }
1293}
1294
1295impl GetSpan for JSXClosingFragment {
1296    #[inline]
1297    fn span(&self) -> Span {
1298        self.span
1299    }
1300}
1301
1302impl GetSpan for JSXElementName<'_> {
1303    fn span(&self) -> Span {
1304        match self {
1305            Self::Identifier(it) => GetSpan::span(&**it),
1306            Self::IdentifierReference(it) => GetSpan::span(&**it),
1307            Self::NamespacedName(it) => GetSpan::span(&**it),
1308            Self::MemberExpression(it) => GetSpan::span(&**it),
1309            Self::ThisExpression(it) => GetSpan::span(&**it),
1310        }
1311    }
1312}
1313
1314impl GetSpan for JSXNamespacedName<'_> {
1315    #[inline]
1316    fn span(&self) -> Span {
1317        self.span
1318    }
1319}
1320
1321impl GetSpan for JSXMemberExpression<'_> {
1322    #[inline]
1323    fn span(&self) -> Span {
1324        self.span
1325    }
1326}
1327
1328impl GetSpan for JSXMemberExpressionObject<'_> {
1329    fn span(&self) -> Span {
1330        match self {
1331            Self::IdentifierReference(it) => GetSpan::span(&**it),
1332            Self::MemberExpression(it) => GetSpan::span(&**it),
1333            Self::ThisExpression(it) => GetSpan::span(&**it),
1334        }
1335    }
1336}
1337
1338impl GetSpan for JSXExpressionContainer<'_> {
1339    #[inline]
1340    fn span(&self) -> Span {
1341        self.span
1342    }
1343}
1344
1345impl GetSpan for JSXExpression<'_> {
1346    fn span(&self) -> Span {
1347        match self {
1348            Self::EmptyExpression(it) => GetSpan::span(it),
1349            Self::BooleanLiteral(it) => GetSpan::span(&**it),
1350            Self::NullLiteral(it) => GetSpan::span(&**it),
1351            Self::NumericLiteral(it) => GetSpan::span(&**it),
1352            Self::BigIntLiteral(it) => GetSpan::span(&**it),
1353            Self::RegExpLiteral(it) => GetSpan::span(&**it),
1354            Self::StringLiteral(it) => GetSpan::span(&**it),
1355            Self::TemplateLiteral(it) => GetSpan::span(&**it),
1356            Self::Identifier(it) => GetSpan::span(&**it),
1357            Self::MetaProperty(it) => GetSpan::span(&**it),
1358            Self::Super(it) => GetSpan::span(&**it),
1359            Self::ArrayExpression(it) => GetSpan::span(&**it),
1360            Self::ArrowFunctionExpression(it) => GetSpan::span(&**it),
1361            Self::AssignmentExpression(it) => GetSpan::span(&**it),
1362            Self::AwaitExpression(it) => GetSpan::span(&**it),
1363            Self::BinaryExpression(it) => GetSpan::span(&**it),
1364            Self::CallExpression(it) => GetSpan::span(&**it),
1365            Self::ChainExpression(it) => GetSpan::span(&**it),
1366            Self::ClassExpression(it) => GetSpan::span(&**it),
1367            Self::ConditionalExpression(it) => GetSpan::span(&**it),
1368            Self::FunctionExpression(it) => GetSpan::span(&**it),
1369            Self::ImportExpression(it) => GetSpan::span(&**it),
1370            Self::LogicalExpression(it) => GetSpan::span(&**it),
1371            Self::NewExpression(it) => GetSpan::span(&**it),
1372            Self::ObjectExpression(it) => GetSpan::span(&**it),
1373            Self::ParenthesizedExpression(it) => GetSpan::span(&**it),
1374            Self::SequenceExpression(it) => GetSpan::span(&**it),
1375            Self::TaggedTemplateExpression(it) => GetSpan::span(&**it),
1376            Self::ThisExpression(it) => GetSpan::span(&**it),
1377            Self::UnaryExpression(it) => GetSpan::span(&**it),
1378            Self::UpdateExpression(it) => GetSpan::span(&**it),
1379            Self::YieldExpression(it) => GetSpan::span(&**it),
1380            Self::PrivateInExpression(it) => GetSpan::span(&**it),
1381            Self::JSXElement(it) => GetSpan::span(&**it),
1382            Self::JSXFragment(it) => GetSpan::span(&**it),
1383            Self::TSAsExpression(it) => GetSpan::span(&**it),
1384            Self::TSSatisfiesExpression(it) => GetSpan::span(&**it),
1385            Self::TSTypeAssertion(it) => GetSpan::span(&**it),
1386            Self::TSNonNullExpression(it) => GetSpan::span(&**it),
1387            Self::TSInstantiationExpression(it) => GetSpan::span(&**it),
1388            Self::V8IntrinsicExpression(it) => GetSpan::span(&**it),
1389            Self::ComputedMemberExpression(it) => GetSpan::span(&**it),
1390            Self::StaticMemberExpression(it) => GetSpan::span(&**it),
1391            Self::PrivateFieldExpression(it) => GetSpan::span(&**it),
1392        }
1393    }
1394}
1395
1396impl GetSpan for JSXEmptyExpression {
1397    #[inline]
1398    fn span(&self) -> Span {
1399        self.span
1400    }
1401}
1402
1403impl GetSpan for JSXAttributeItem<'_> {
1404    fn span(&self) -> Span {
1405        match self {
1406            Self::Attribute(it) => GetSpan::span(&**it),
1407            Self::SpreadAttribute(it) => GetSpan::span(&**it),
1408        }
1409    }
1410}
1411
1412impl GetSpan for JSXAttribute<'_> {
1413    #[inline]
1414    fn span(&self) -> Span {
1415        self.span
1416    }
1417}
1418
1419impl GetSpan for JSXSpreadAttribute<'_> {
1420    #[inline]
1421    fn span(&self) -> Span {
1422        self.span
1423    }
1424}
1425
1426impl GetSpan for JSXAttributeName<'_> {
1427    fn span(&self) -> Span {
1428        match self {
1429            Self::Identifier(it) => GetSpan::span(&**it),
1430            Self::NamespacedName(it) => GetSpan::span(&**it),
1431        }
1432    }
1433}
1434
1435impl GetSpan for JSXAttributeValue<'_> {
1436    fn span(&self) -> Span {
1437        match self {
1438            Self::StringLiteral(it) => GetSpan::span(&**it),
1439            Self::ExpressionContainer(it) => GetSpan::span(&**it),
1440            Self::Element(it) => GetSpan::span(&**it),
1441            Self::Fragment(it) => GetSpan::span(&**it),
1442        }
1443    }
1444}
1445
1446impl GetSpan for JSXIdentifier<'_> {
1447    #[inline]
1448    fn span(&self) -> Span {
1449        self.span
1450    }
1451}
1452
1453impl GetSpan for JSXChild<'_> {
1454    fn span(&self) -> Span {
1455        match self {
1456            Self::Text(it) => GetSpan::span(&**it),
1457            Self::Element(it) => GetSpan::span(&**it),
1458            Self::Fragment(it) => GetSpan::span(&**it),
1459            Self::ExpressionContainer(it) => GetSpan::span(&**it),
1460            Self::Spread(it) => GetSpan::span(&**it),
1461        }
1462    }
1463}
1464
1465impl GetSpan for JSXSpreadChild<'_> {
1466    #[inline]
1467    fn span(&self) -> Span {
1468        self.span
1469    }
1470}
1471
1472impl GetSpan for JSXText<'_> {
1473    #[inline]
1474    fn span(&self) -> Span {
1475        self.span
1476    }
1477}
1478
1479impl GetSpan for TSThisParameter<'_> {
1480    #[inline]
1481    fn span(&self) -> Span {
1482        self.span
1483    }
1484}
1485
1486impl GetSpan for TSEnumDeclaration<'_> {
1487    #[inline]
1488    fn span(&self) -> Span {
1489        self.span
1490    }
1491}
1492
1493impl GetSpan for TSEnumBody<'_> {
1494    #[inline]
1495    fn span(&self) -> Span {
1496        self.span
1497    }
1498}
1499
1500impl GetSpan for TSEnumMember<'_> {
1501    #[inline]
1502    fn span(&self) -> Span {
1503        self.span
1504    }
1505}
1506
1507impl GetSpan for TSEnumMemberName<'_> {
1508    fn span(&self) -> Span {
1509        match self {
1510            Self::Identifier(it) => GetSpan::span(&**it),
1511            Self::String(it) => GetSpan::span(&**it),
1512            Self::ComputedString(it) => GetSpan::span(&**it),
1513            Self::ComputedTemplateString(it) => GetSpan::span(&**it),
1514        }
1515    }
1516}
1517
1518impl GetSpan for TSTypeAnnotation<'_> {
1519    #[inline]
1520    fn span(&self) -> Span {
1521        self.span
1522    }
1523}
1524
1525impl GetSpan for TSLiteralType<'_> {
1526    #[inline]
1527    fn span(&self) -> Span {
1528        self.span
1529    }
1530}
1531
1532impl GetSpan for TSLiteral<'_> {
1533    fn span(&self) -> Span {
1534        match self {
1535            Self::BooleanLiteral(it) => GetSpan::span(&**it),
1536            Self::NumericLiteral(it) => GetSpan::span(&**it),
1537            Self::BigIntLiteral(it) => GetSpan::span(&**it),
1538            Self::StringLiteral(it) => GetSpan::span(&**it),
1539            Self::TemplateLiteral(it) => GetSpan::span(&**it),
1540            Self::UnaryExpression(it) => GetSpan::span(&**it),
1541        }
1542    }
1543}
1544
1545impl GetSpan for TSType<'_> {
1546    fn span(&self) -> Span {
1547        match self {
1548            Self::TSAnyKeyword(it) => GetSpan::span(&**it),
1549            Self::TSBigIntKeyword(it) => GetSpan::span(&**it),
1550            Self::TSBooleanKeyword(it) => GetSpan::span(&**it),
1551            Self::TSIntrinsicKeyword(it) => GetSpan::span(&**it),
1552            Self::TSNeverKeyword(it) => GetSpan::span(&**it),
1553            Self::TSNullKeyword(it) => GetSpan::span(&**it),
1554            Self::TSNumberKeyword(it) => GetSpan::span(&**it),
1555            Self::TSObjectKeyword(it) => GetSpan::span(&**it),
1556            Self::TSStringKeyword(it) => GetSpan::span(&**it),
1557            Self::TSSymbolKeyword(it) => GetSpan::span(&**it),
1558            Self::TSUndefinedKeyword(it) => GetSpan::span(&**it),
1559            Self::TSUnknownKeyword(it) => GetSpan::span(&**it),
1560            Self::TSVoidKeyword(it) => GetSpan::span(&**it),
1561            Self::TSArrayType(it) => GetSpan::span(&**it),
1562            Self::TSConditionalType(it) => GetSpan::span(&**it),
1563            Self::TSConstructorType(it) => GetSpan::span(&**it),
1564            Self::TSFunctionType(it) => GetSpan::span(&**it),
1565            Self::TSImportType(it) => GetSpan::span(&**it),
1566            Self::TSIndexedAccessType(it) => GetSpan::span(&**it),
1567            Self::TSInferType(it) => GetSpan::span(&**it),
1568            Self::TSIntersectionType(it) => GetSpan::span(&**it),
1569            Self::TSLiteralType(it) => GetSpan::span(&**it),
1570            Self::TSMappedType(it) => GetSpan::span(&**it),
1571            Self::TSNamedTupleMember(it) => GetSpan::span(&**it),
1572            Self::TSTemplateLiteralType(it) => GetSpan::span(&**it),
1573            Self::TSThisType(it) => GetSpan::span(&**it),
1574            Self::TSTupleType(it) => GetSpan::span(&**it),
1575            Self::TSTypeLiteral(it) => GetSpan::span(&**it),
1576            Self::TSTypeOperatorType(it) => GetSpan::span(&**it),
1577            Self::TSTypePredicate(it) => GetSpan::span(&**it),
1578            Self::TSTypeQuery(it) => GetSpan::span(&**it),
1579            Self::TSTypeReference(it) => GetSpan::span(&**it),
1580            Self::TSUnionType(it) => GetSpan::span(&**it),
1581            Self::TSParenthesizedType(it) => GetSpan::span(&**it),
1582            Self::JSDocNullableType(it) => GetSpan::span(&**it),
1583            Self::JSDocNonNullableType(it) => GetSpan::span(&**it),
1584            Self::JSDocUnknownType(it) => GetSpan::span(&**it),
1585        }
1586    }
1587}
1588
1589impl GetSpan for TSConditionalType<'_> {
1590    #[inline]
1591    fn span(&self) -> Span {
1592        self.span
1593    }
1594}
1595
1596impl GetSpan for TSUnionType<'_> {
1597    #[inline]
1598    fn span(&self) -> Span {
1599        self.span
1600    }
1601}
1602
1603impl GetSpan for TSIntersectionType<'_> {
1604    #[inline]
1605    fn span(&self) -> Span {
1606        self.span
1607    }
1608}
1609
1610impl GetSpan for TSParenthesizedType<'_> {
1611    #[inline]
1612    fn span(&self) -> Span {
1613        self.span
1614    }
1615}
1616
1617impl GetSpan for TSTypeOperator<'_> {
1618    #[inline]
1619    fn span(&self) -> Span {
1620        self.span
1621    }
1622}
1623
1624impl GetSpan for TSArrayType<'_> {
1625    #[inline]
1626    fn span(&self) -> Span {
1627        self.span
1628    }
1629}
1630
1631impl GetSpan for TSIndexedAccessType<'_> {
1632    #[inline]
1633    fn span(&self) -> Span {
1634        self.span
1635    }
1636}
1637
1638impl GetSpan for TSTupleType<'_> {
1639    #[inline]
1640    fn span(&self) -> Span {
1641        self.span
1642    }
1643}
1644
1645impl GetSpan for TSNamedTupleMember<'_> {
1646    #[inline]
1647    fn span(&self) -> Span {
1648        self.span
1649    }
1650}
1651
1652impl GetSpan for TSOptionalType<'_> {
1653    #[inline]
1654    fn span(&self) -> Span {
1655        self.span
1656    }
1657}
1658
1659impl GetSpan for TSRestType<'_> {
1660    #[inline]
1661    fn span(&self) -> Span {
1662        self.span
1663    }
1664}
1665
1666impl GetSpan for TSTupleElement<'_> {
1667    fn span(&self) -> Span {
1668        match self {
1669            Self::TSOptionalType(it) => GetSpan::span(&**it),
1670            Self::TSRestType(it) => GetSpan::span(&**it),
1671            Self::TSAnyKeyword(it) => GetSpan::span(&**it),
1672            Self::TSBigIntKeyword(it) => GetSpan::span(&**it),
1673            Self::TSBooleanKeyword(it) => GetSpan::span(&**it),
1674            Self::TSIntrinsicKeyword(it) => GetSpan::span(&**it),
1675            Self::TSNeverKeyword(it) => GetSpan::span(&**it),
1676            Self::TSNullKeyword(it) => GetSpan::span(&**it),
1677            Self::TSNumberKeyword(it) => GetSpan::span(&**it),
1678            Self::TSObjectKeyword(it) => GetSpan::span(&**it),
1679            Self::TSStringKeyword(it) => GetSpan::span(&**it),
1680            Self::TSSymbolKeyword(it) => GetSpan::span(&**it),
1681            Self::TSUndefinedKeyword(it) => GetSpan::span(&**it),
1682            Self::TSUnknownKeyword(it) => GetSpan::span(&**it),
1683            Self::TSVoidKeyword(it) => GetSpan::span(&**it),
1684            Self::TSArrayType(it) => GetSpan::span(&**it),
1685            Self::TSConditionalType(it) => GetSpan::span(&**it),
1686            Self::TSConstructorType(it) => GetSpan::span(&**it),
1687            Self::TSFunctionType(it) => GetSpan::span(&**it),
1688            Self::TSImportType(it) => GetSpan::span(&**it),
1689            Self::TSIndexedAccessType(it) => GetSpan::span(&**it),
1690            Self::TSInferType(it) => GetSpan::span(&**it),
1691            Self::TSIntersectionType(it) => GetSpan::span(&**it),
1692            Self::TSLiteralType(it) => GetSpan::span(&**it),
1693            Self::TSMappedType(it) => GetSpan::span(&**it),
1694            Self::TSNamedTupleMember(it) => GetSpan::span(&**it),
1695            Self::TSTemplateLiteralType(it) => GetSpan::span(&**it),
1696            Self::TSThisType(it) => GetSpan::span(&**it),
1697            Self::TSTupleType(it) => GetSpan::span(&**it),
1698            Self::TSTypeLiteral(it) => GetSpan::span(&**it),
1699            Self::TSTypeOperatorType(it) => GetSpan::span(&**it),
1700            Self::TSTypePredicate(it) => GetSpan::span(&**it),
1701            Self::TSTypeQuery(it) => GetSpan::span(&**it),
1702            Self::TSTypeReference(it) => GetSpan::span(&**it),
1703            Self::TSUnionType(it) => GetSpan::span(&**it),
1704            Self::TSParenthesizedType(it) => GetSpan::span(&**it),
1705            Self::JSDocNullableType(it) => GetSpan::span(&**it),
1706            Self::JSDocNonNullableType(it) => GetSpan::span(&**it),
1707            Self::JSDocUnknownType(it) => GetSpan::span(&**it),
1708        }
1709    }
1710}
1711
1712impl GetSpan for TSAnyKeyword {
1713    #[inline]
1714    fn span(&self) -> Span {
1715        self.span
1716    }
1717}
1718
1719impl GetSpan for TSStringKeyword {
1720    #[inline]
1721    fn span(&self) -> Span {
1722        self.span
1723    }
1724}
1725
1726impl GetSpan for TSBooleanKeyword {
1727    #[inline]
1728    fn span(&self) -> Span {
1729        self.span
1730    }
1731}
1732
1733impl GetSpan for TSNumberKeyword {
1734    #[inline]
1735    fn span(&self) -> Span {
1736        self.span
1737    }
1738}
1739
1740impl GetSpan for TSNeverKeyword {
1741    #[inline]
1742    fn span(&self) -> Span {
1743        self.span
1744    }
1745}
1746
1747impl GetSpan for TSIntrinsicKeyword {
1748    #[inline]
1749    fn span(&self) -> Span {
1750        self.span
1751    }
1752}
1753
1754impl GetSpan for TSUnknownKeyword {
1755    #[inline]
1756    fn span(&self) -> Span {
1757        self.span
1758    }
1759}
1760
1761impl GetSpan for TSNullKeyword {
1762    #[inline]
1763    fn span(&self) -> Span {
1764        self.span
1765    }
1766}
1767
1768impl GetSpan for TSUndefinedKeyword {
1769    #[inline]
1770    fn span(&self) -> Span {
1771        self.span
1772    }
1773}
1774
1775impl GetSpan for TSVoidKeyword {
1776    #[inline]
1777    fn span(&self) -> Span {
1778        self.span
1779    }
1780}
1781
1782impl GetSpan for TSSymbolKeyword {
1783    #[inline]
1784    fn span(&self) -> Span {
1785        self.span
1786    }
1787}
1788
1789impl GetSpan for TSThisType {
1790    #[inline]
1791    fn span(&self) -> Span {
1792        self.span
1793    }
1794}
1795
1796impl GetSpan for TSObjectKeyword {
1797    #[inline]
1798    fn span(&self) -> Span {
1799        self.span
1800    }
1801}
1802
1803impl GetSpan for TSBigIntKeyword {
1804    #[inline]
1805    fn span(&self) -> Span {
1806        self.span
1807    }
1808}
1809
1810impl GetSpan for TSTypeReference<'_> {
1811    #[inline]
1812    fn span(&self) -> Span {
1813        self.span
1814    }
1815}
1816
1817impl GetSpan for TSTypeName<'_> {
1818    fn span(&self) -> Span {
1819        match self {
1820            Self::IdentifierReference(it) => GetSpan::span(&**it),
1821            Self::QualifiedName(it) => GetSpan::span(&**it),
1822            Self::ThisExpression(it) => GetSpan::span(&**it),
1823        }
1824    }
1825}
1826
1827impl GetSpan for TSQualifiedName<'_> {
1828    #[inline]
1829    fn span(&self) -> Span {
1830        self.span
1831    }
1832}
1833
1834impl GetSpan for TSTypeParameterInstantiation<'_> {
1835    #[inline]
1836    fn span(&self) -> Span {
1837        self.span
1838    }
1839}
1840
1841impl GetSpan for TSTypeParameter<'_> {
1842    #[inline]
1843    fn span(&self) -> Span {
1844        self.span
1845    }
1846}
1847
1848impl GetSpan for TSTypeParameterDeclaration<'_> {
1849    #[inline]
1850    fn span(&self) -> Span {
1851        self.span
1852    }
1853}
1854
1855impl GetSpan for TSTypeAliasDeclaration<'_> {
1856    #[inline]
1857    fn span(&self) -> Span {
1858        self.span
1859    }
1860}
1861
1862impl GetSpan for TSClassImplements<'_> {
1863    #[inline]
1864    fn span(&self) -> Span {
1865        self.span
1866    }
1867}
1868
1869impl GetSpan for TSInterfaceDeclaration<'_> {
1870    #[inline]
1871    fn span(&self) -> Span {
1872        self.span
1873    }
1874}
1875
1876impl GetSpan for TSInterfaceBody<'_> {
1877    #[inline]
1878    fn span(&self) -> Span {
1879        self.span
1880    }
1881}
1882
1883impl GetSpan for TSPropertySignature<'_> {
1884    #[inline]
1885    fn span(&self) -> Span {
1886        self.span
1887    }
1888}
1889
1890impl GetSpan for TSSignature<'_> {
1891    fn span(&self) -> Span {
1892        match self {
1893            Self::TSIndexSignature(it) => GetSpan::span(&**it),
1894            Self::TSPropertySignature(it) => GetSpan::span(&**it),
1895            Self::TSCallSignatureDeclaration(it) => GetSpan::span(&**it),
1896            Self::TSConstructSignatureDeclaration(it) => GetSpan::span(&**it),
1897            Self::TSMethodSignature(it) => GetSpan::span(&**it),
1898        }
1899    }
1900}
1901
1902impl GetSpan for TSIndexSignature<'_> {
1903    #[inline]
1904    fn span(&self) -> Span {
1905        self.span
1906    }
1907}
1908
1909impl GetSpan for TSCallSignatureDeclaration<'_> {
1910    #[inline]
1911    fn span(&self) -> Span {
1912        self.span
1913    }
1914}
1915
1916impl GetSpan for TSMethodSignature<'_> {
1917    #[inline]
1918    fn span(&self) -> Span {
1919        self.span
1920    }
1921}
1922
1923impl GetSpan for TSConstructSignatureDeclaration<'_> {
1924    #[inline]
1925    fn span(&self) -> Span {
1926        self.span
1927    }
1928}
1929
1930impl GetSpan for TSIndexSignatureName<'_> {
1931    #[inline]
1932    fn span(&self) -> Span {
1933        self.span
1934    }
1935}
1936
1937impl GetSpan for TSInterfaceHeritage<'_> {
1938    #[inline]
1939    fn span(&self) -> Span {
1940        self.span
1941    }
1942}
1943
1944impl GetSpan for TSTypePredicate<'_> {
1945    #[inline]
1946    fn span(&self) -> Span {
1947        self.span
1948    }
1949}
1950
1951impl GetSpan for TSTypePredicateName<'_> {
1952    fn span(&self) -> Span {
1953        match self {
1954            Self::Identifier(it) => GetSpan::span(&**it),
1955            Self::This(it) => GetSpan::span(it),
1956        }
1957    }
1958}
1959
1960impl GetSpan for TSModuleDeclaration<'_> {
1961    #[inline]
1962    fn span(&self) -> Span {
1963        self.span
1964    }
1965}
1966
1967impl GetSpan for TSModuleDeclarationName<'_> {
1968    fn span(&self) -> Span {
1969        match self {
1970            Self::Identifier(it) => GetSpan::span(it),
1971            Self::StringLiteral(it) => GetSpan::span(it),
1972        }
1973    }
1974}
1975
1976impl GetSpan for TSModuleDeclarationBody<'_> {
1977    fn span(&self) -> Span {
1978        match self {
1979            Self::TSModuleDeclaration(it) => GetSpan::span(&**it),
1980            Self::TSModuleBlock(it) => GetSpan::span(&**it),
1981        }
1982    }
1983}
1984
1985impl GetSpan for TSGlobalDeclaration<'_> {
1986    #[inline]
1987    fn span(&self) -> Span {
1988        self.span
1989    }
1990}
1991
1992impl GetSpan for TSModuleBlock<'_> {
1993    #[inline]
1994    fn span(&self) -> Span {
1995        self.span
1996    }
1997}
1998
1999impl GetSpan for TSTypeLiteral<'_> {
2000    #[inline]
2001    fn span(&self) -> Span {
2002        self.span
2003    }
2004}
2005
2006impl GetSpan for TSInferType<'_> {
2007    #[inline]
2008    fn span(&self) -> Span {
2009        self.span
2010    }
2011}
2012
2013impl GetSpan for TSTypeQuery<'_> {
2014    #[inline]
2015    fn span(&self) -> Span {
2016        self.span
2017    }
2018}
2019
2020impl GetSpan for TSTypeQueryExprName<'_> {
2021    fn span(&self) -> Span {
2022        match self {
2023            Self::TSImportType(it) => GetSpan::span(&**it),
2024            Self::IdentifierReference(it) => GetSpan::span(&**it),
2025            Self::QualifiedName(it) => GetSpan::span(&**it),
2026            Self::ThisExpression(it) => GetSpan::span(&**it),
2027        }
2028    }
2029}
2030
2031impl GetSpan for TSImportType<'_> {
2032    #[inline]
2033    fn span(&self) -> Span {
2034        self.span
2035    }
2036}
2037
2038impl GetSpan for TSImportTypeQualifier<'_> {
2039    fn span(&self) -> Span {
2040        match self {
2041            Self::Identifier(it) => GetSpan::span(&**it),
2042            Self::QualifiedName(it) => GetSpan::span(&**it),
2043        }
2044    }
2045}
2046
2047impl GetSpan for TSImportTypeQualifiedName<'_> {
2048    #[inline]
2049    fn span(&self) -> Span {
2050        self.span
2051    }
2052}
2053
2054impl GetSpan for TSFunctionType<'_> {
2055    #[inline]
2056    fn span(&self) -> Span {
2057        self.span
2058    }
2059}
2060
2061impl GetSpan for TSConstructorType<'_> {
2062    #[inline]
2063    fn span(&self) -> Span {
2064        self.span
2065    }
2066}
2067
2068impl GetSpan for TSMappedType<'_> {
2069    #[inline]
2070    fn span(&self) -> Span {
2071        self.span
2072    }
2073}
2074
2075impl GetSpan for TSTemplateLiteralType<'_> {
2076    #[inline]
2077    fn span(&self) -> Span {
2078        self.span
2079    }
2080}
2081
2082impl GetSpan for TSAsExpression<'_> {
2083    #[inline]
2084    fn span(&self) -> Span {
2085        self.span
2086    }
2087}
2088
2089impl GetSpan for TSSatisfiesExpression<'_> {
2090    #[inline]
2091    fn span(&self) -> Span {
2092        self.span
2093    }
2094}
2095
2096impl GetSpan for TSTypeAssertion<'_> {
2097    #[inline]
2098    fn span(&self) -> Span {
2099        self.span
2100    }
2101}
2102
2103impl GetSpan for TSImportEqualsDeclaration<'_> {
2104    #[inline]
2105    fn span(&self) -> Span {
2106        self.span
2107    }
2108}
2109
2110impl GetSpan for TSModuleReference<'_> {
2111    fn span(&self) -> Span {
2112        match self {
2113            Self::ExternalModuleReference(it) => GetSpan::span(&**it),
2114            Self::IdentifierReference(it) => GetSpan::span(&**it),
2115            Self::QualifiedName(it) => GetSpan::span(&**it),
2116            Self::ThisExpression(it) => GetSpan::span(&**it),
2117        }
2118    }
2119}
2120
2121impl GetSpan for TSExternalModuleReference<'_> {
2122    #[inline]
2123    fn span(&self) -> Span {
2124        self.span
2125    }
2126}
2127
2128impl GetSpan for TSNonNullExpression<'_> {
2129    #[inline]
2130    fn span(&self) -> Span {
2131        self.span
2132    }
2133}
2134
2135impl GetSpan for Decorator<'_> {
2136    #[inline]
2137    fn span(&self) -> Span {
2138        self.span
2139    }
2140}
2141
2142impl GetSpan for TSExportAssignment<'_> {
2143    #[inline]
2144    fn span(&self) -> Span {
2145        self.span
2146    }
2147}
2148
2149impl GetSpan for TSNamespaceExportDeclaration<'_> {
2150    #[inline]
2151    fn span(&self) -> Span {
2152        self.span
2153    }
2154}
2155
2156impl GetSpan for TSInstantiationExpression<'_> {
2157    #[inline]
2158    fn span(&self) -> Span {
2159        self.span
2160    }
2161}
2162
2163impl GetSpan for JSDocNullableType<'_> {
2164    #[inline]
2165    fn span(&self) -> Span {
2166        self.span
2167    }
2168}
2169
2170impl GetSpan for JSDocNonNullableType<'_> {
2171    #[inline]
2172    fn span(&self) -> Span {
2173        self.span
2174    }
2175}
2176
2177impl GetSpan for JSDocUnknownType {
2178    #[inline]
2179    fn span(&self) -> Span {
2180        self.span
2181    }
2182}