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::TSImportEqualsDeclaration(it) => GetSpan::span(&**it),
612            Self::ImportDeclaration(it) => GetSpan::span(&**it),
613            Self::ExportAllDeclaration(it) => GetSpan::span(&**it),
614            Self::ExportDefaultDeclaration(it) => GetSpan::span(&**it),
615            Self::ExportNamedDeclaration(it) => GetSpan::span(&**it),
616            Self::TSExportAssignment(it) => GetSpan::span(&**it),
617            Self::TSNamespaceExportDeclaration(it) => GetSpan::span(&**it),
618        }
619    }
620}
621
622impl GetSpan for Directive<'_> {
623    #[inline]
624    fn span(&self) -> Span {
625        self.span
626    }
627}
628
629impl GetSpan for Hashbang<'_> {
630    #[inline]
631    fn span(&self) -> Span {
632        self.span
633    }
634}
635
636impl GetSpan for BlockStatement<'_> {
637    #[inline]
638    fn span(&self) -> Span {
639        self.span
640    }
641}
642
643impl GetSpan for Declaration<'_> {
644    fn span(&self) -> Span {
645        match self {
646            Self::VariableDeclaration(it) => GetSpan::span(&**it),
647            Self::FunctionDeclaration(it) => GetSpan::span(&**it),
648            Self::ClassDeclaration(it) => GetSpan::span(&**it),
649            Self::TSTypeAliasDeclaration(it) => GetSpan::span(&**it),
650            Self::TSInterfaceDeclaration(it) => GetSpan::span(&**it),
651            Self::TSEnumDeclaration(it) => GetSpan::span(&**it),
652            Self::TSModuleDeclaration(it) => GetSpan::span(&**it),
653            Self::TSImportEqualsDeclaration(it) => GetSpan::span(&**it),
654        }
655    }
656}
657
658impl GetSpan for VariableDeclaration<'_> {
659    #[inline]
660    fn span(&self) -> Span {
661        self.span
662    }
663}
664
665impl GetSpan for VariableDeclarator<'_> {
666    #[inline]
667    fn span(&self) -> Span {
668        self.span
669    }
670}
671
672impl GetSpan for EmptyStatement {
673    #[inline]
674    fn span(&self) -> Span {
675        self.span
676    }
677}
678
679impl GetSpan for ExpressionStatement<'_> {
680    #[inline]
681    fn span(&self) -> Span {
682        self.span
683    }
684}
685
686impl GetSpan for IfStatement<'_> {
687    #[inline]
688    fn span(&self) -> Span {
689        self.span
690    }
691}
692
693impl GetSpan for DoWhileStatement<'_> {
694    #[inline]
695    fn span(&self) -> Span {
696        self.span
697    }
698}
699
700impl GetSpan for WhileStatement<'_> {
701    #[inline]
702    fn span(&self) -> Span {
703        self.span
704    }
705}
706
707impl GetSpan for ForStatement<'_> {
708    #[inline]
709    fn span(&self) -> Span {
710        self.span
711    }
712}
713
714impl GetSpan for ForStatementInit<'_> {
715    fn span(&self) -> Span {
716        match self {
717            Self::VariableDeclaration(it) => GetSpan::span(&**it),
718            Self::BooleanLiteral(it) => GetSpan::span(&**it),
719            Self::NullLiteral(it) => GetSpan::span(&**it),
720            Self::NumericLiteral(it) => GetSpan::span(&**it),
721            Self::BigIntLiteral(it) => GetSpan::span(&**it),
722            Self::RegExpLiteral(it) => GetSpan::span(&**it),
723            Self::StringLiteral(it) => GetSpan::span(&**it),
724            Self::TemplateLiteral(it) => GetSpan::span(&**it),
725            Self::Identifier(it) => GetSpan::span(&**it),
726            Self::MetaProperty(it) => GetSpan::span(&**it),
727            Self::Super(it) => GetSpan::span(&**it),
728            Self::ArrayExpression(it) => GetSpan::span(&**it),
729            Self::ArrowFunctionExpression(it) => GetSpan::span(&**it),
730            Self::AssignmentExpression(it) => GetSpan::span(&**it),
731            Self::AwaitExpression(it) => GetSpan::span(&**it),
732            Self::BinaryExpression(it) => GetSpan::span(&**it),
733            Self::CallExpression(it) => GetSpan::span(&**it),
734            Self::ChainExpression(it) => GetSpan::span(&**it),
735            Self::ClassExpression(it) => GetSpan::span(&**it),
736            Self::ConditionalExpression(it) => GetSpan::span(&**it),
737            Self::FunctionExpression(it) => GetSpan::span(&**it),
738            Self::ImportExpression(it) => GetSpan::span(&**it),
739            Self::LogicalExpression(it) => GetSpan::span(&**it),
740            Self::NewExpression(it) => GetSpan::span(&**it),
741            Self::ObjectExpression(it) => GetSpan::span(&**it),
742            Self::ParenthesizedExpression(it) => GetSpan::span(&**it),
743            Self::SequenceExpression(it) => GetSpan::span(&**it),
744            Self::TaggedTemplateExpression(it) => GetSpan::span(&**it),
745            Self::ThisExpression(it) => GetSpan::span(&**it),
746            Self::UnaryExpression(it) => GetSpan::span(&**it),
747            Self::UpdateExpression(it) => GetSpan::span(&**it),
748            Self::YieldExpression(it) => GetSpan::span(&**it),
749            Self::PrivateInExpression(it) => GetSpan::span(&**it),
750            Self::JSXElement(it) => GetSpan::span(&**it),
751            Self::JSXFragment(it) => GetSpan::span(&**it),
752            Self::TSAsExpression(it) => GetSpan::span(&**it),
753            Self::TSSatisfiesExpression(it) => GetSpan::span(&**it),
754            Self::TSTypeAssertion(it) => GetSpan::span(&**it),
755            Self::TSNonNullExpression(it) => GetSpan::span(&**it),
756            Self::TSInstantiationExpression(it) => GetSpan::span(&**it),
757            Self::V8IntrinsicExpression(it) => GetSpan::span(&**it),
758            Self::ComputedMemberExpression(it) => GetSpan::span(&**it),
759            Self::StaticMemberExpression(it) => GetSpan::span(&**it),
760            Self::PrivateFieldExpression(it) => GetSpan::span(&**it),
761        }
762    }
763}
764
765impl GetSpan for ForInStatement<'_> {
766    #[inline]
767    fn span(&self) -> Span {
768        self.span
769    }
770}
771
772impl GetSpan for ForStatementLeft<'_> {
773    fn span(&self) -> Span {
774        match self {
775            Self::VariableDeclaration(it) => GetSpan::span(&**it),
776            Self::AssignmentTargetIdentifier(it) => GetSpan::span(&**it),
777            Self::TSAsExpression(it) => GetSpan::span(&**it),
778            Self::TSSatisfiesExpression(it) => GetSpan::span(&**it),
779            Self::TSNonNullExpression(it) => GetSpan::span(&**it),
780            Self::TSTypeAssertion(it) => GetSpan::span(&**it),
781            Self::ComputedMemberExpression(it) => GetSpan::span(&**it),
782            Self::StaticMemberExpression(it) => GetSpan::span(&**it),
783            Self::PrivateFieldExpression(it) => GetSpan::span(&**it),
784            Self::ArrayAssignmentTarget(it) => GetSpan::span(&**it),
785            Self::ObjectAssignmentTarget(it) => GetSpan::span(&**it),
786        }
787    }
788}
789
790impl GetSpan for ForOfStatement<'_> {
791    #[inline]
792    fn span(&self) -> Span {
793        self.span
794    }
795}
796
797impl GetSpan for ContinueStatement<'_> {
798    #[inline]
799    fn span(&self) -> Span {
800        self.span
801    }
802}
803
804impl GetSpan for BreakStatement<'_> {
805    #[inline]
806    fn span(&self) -> Span {
807        self.span
808    }
809}
810
811impl GetSpan for ReturnStatement<'_> {
812    #[inline]
813    fn span(&self) -> Span {
814        self.span
815    }
816}
817
818impl GetSpan for WithStatement<'_> {
819    #[inline]
820    fn span(&self) -> Span {
821        self.span
822    }
823}
824
825impl GetSpan for SwitchStatement<'_> {
826    #[inline]
827    fn span(&self) -> Span {
828        self.span
829    }
830}
831
832impl GetSpan for SwitchCase<'_> {
833    #[inline]
834    fn span(&self) -> Span {
835        self.span
836    }
837}
838
839impl GetSpan for LabeledStatement<'_> {
840    #[inline]
841    fn span(&self) -> Span {
842        self.span
843    }
844}
845
846impl GetSpan for ThrowStatement<'_> {
847    #[inline]
848    fn span(&self) -> Span {
849        self.span
850    }
851}
852
853impl GetSpan for TryStatement<'_> {
854    #[inline]
855    fn span(&self) -> Span {
856        self.span
857    }
858}
859
860impl GetSpan for CatchClause<'_> {
861    #[inline]
862    fn span(&self) -> Span {
863        self.span
864    }
865}
866
867impl GetSpan for CatchParameter<'_> {
868    #[inline]
869    fn span(&self) -> Span {
870        self.span
871    }
872}
873
874impl GetSpan for DebuggerStatement {
875    #[inline]
876    fn span(&self) -> Span {
877        self.span
878    }
879}
880
881impl GetSpan for BindingPattern<'_> {
882    #[inline]
883    fn span(&self) -> Span {
884        GetSpan::span(&self.kind)
885    }
886}
887
888impl GetSpan for BindingPatternKind<'_> {
889    fn span(&self) -> Span {
890        match self {
891            Self::BindingIdentifier(it) => GetSpan::span(&**it),
892            Self::ObjectPattern(it) => GetSpan::span(&**it),
893            Self::ArrayPattern(it) => GetSpan::span(&**it),
894            Self::AssignmentPattern(it) => GetSpan::span(&**it),
895        }
896    }
897}
898
899impl GetSpan for AssignmentPattern<'_> {
900    #[inline]
901    fn span(&self) -> Span {
902        self.span
903    }
904}
905
906impl GetSpan for ObjectPattern<'_> {
907    #[inline]
908    fn span(&self) -> Span {
909        self.span
910    }
911}
912
913impl GetSpan for BindingProperty<'_> {
914    #[inline]
915    fn span(&self) -> Span {
916        self.span
917    }
918}
919
920impl GetSpan for ArrayPattern<'_> {
921    #[inline]
922    fn span(&self) -> Span {
923        self.span
924    }
925}
926
927impl GetSpan for BindingRestElement<'_> {
928    #[inline]
929    fn span(&self) -> Span {
930        self.span
931    }
932}
933
934impl GetSpan for Function<'_> {
935    #[inline]
936    fn span(&self) -> Span {
937        self.span
938    }
939}
940
941impl GetSpan for FormalParameters<'_> {
942    #[inline]
943    fn span(&self) -> Span {
944        self.span
945    }
946}
947
948impl GetSpan for FormalParameter<'_> {
949    #[inline]
950    fn span(&self) -> Span {
951        self.span
952    }
953}
954
955impl GetSpan for FunctionBody<'_> {
956    #[inline]
957    fn span(&self) -> Span {
958        self.span
959    }
960}
961
962impl GetSpan for ArrowFunctionExpression<'_> {
963    #[inline]
964    fn span(&self) -> Span {
965        self.span
966    }
967}
968
969impl GetSpan for YieldExpression<'_> {
970    #[inline]
971    fn span(&self) -> Span {
972        self.span
973    }
974}
975
976impl GetSpan for Class<'_> {
977    #[inline]
978    fn span(&self) -> Span {
979        self.span
980    }
981}
982
983impl GetSpan for ClassBody<'_> {
984    #[inline]
985    fn span(&self) -> Span {
986        self.span
987    }
988}
989
990impl GetSpan for ClassElement<'_> {
991    fn span(&self) -> Span {
992        match self {
993            Self::StaticBlock(it) => GetSpan::span(&**it),
994            Self::MethodDefinition(it) => GetSpan::span(&**it),
995            Self::PropertyDefinition(it) => GetSpan::span(&**it),
996            Self::AccessorProperty(it) => GetSpan::span(&**it),
997            Self::TSIndexSignature(it) => GetSpan::span(&**it),
998        }
999    }
1000}
1001
1002impl GetSpan for MethodDefinition<'_> {
1003    #[inline]
1004    fn span(&self) -> Span {
1005        self.span
1006    }
1007}
1008
1009impl GetSpan for PropertyDefinition<'_> {
1010    #[inline]
1011    fn span(&self) -> Span {
1012        self.span
1013    }
1014}
1015
1016impl GetSpan for PrivateIdentifier<'_> {
1017    #[inline]
1018    fn span(&self) -> Span {
1019        self.span
1020    }
1021}
1022
1023impl GetSpan for StaticBlock<'_> {
1024    #[inline]
1025    fn span(&self) -> Span {
1026        self.span
1027    }
1028}
1029
1030impl GetSpan for ModuleDeclaration<'_> {
1031    fn span(&self) -> Span {
1032        match self {
1033            Self::ImportDeclaration(it) => GetSpan::span(&**it),
1034            Self::ExportAllDeclaration(it) => GetSpan::span(&**it),
1035            Self::ExportDefaultDeclaration(it) => GetSpan::span(&**it),
1036            Self::ExportNamedDeclaration(it) => GetSpan::span(&**it),
1037            Self::TSExportAssignment(it) => GetSpan::span(&**it),
1038            Self::TSNamespaceExportDeclaration(it) => GetSpan::span(&**it),
1039        }
1040    }
1041}
1042
1043impl GetSpan for AccessorProperty<'_> {
1044    #[inline]
1045    fn span(&self) -> Span {
1046        self.span
1047    }
1048}
1049
1050impl GetSpan for ImportExpression<'_> {
1051    #[inline]
1052    fn span(&self) -> Span {
1053        self.span
1054    }
1055}
1056
1057impl GetSpan for ImportDeclaration<'_> {
1058    #[inline]
1059    fn span(&self) -> Span {
1060        self.span
1061    }
1062}
1063
1064impl GetSpan for ImportDeclarationSpecifier<'_> {
1065    fn span(&self) -> Span {
1066        match self {
1067            Self::ImportSpecifier(it) => GetSpan::span(&**it),
1068            Self::ImportDefaultSpecifier(it) => GetSpan::span(&**it),
1069            Self::ImportNamespaceSpecifier(it) => GetSpan::span(&**it),
1070        }
1071    }
1072}
1073
1074impl GetSpan for ImportSpecifier<'_> {
1075    #[inline]
1076    fn span(&self) -> Span {
1077        self.span
1078    }
1079}
1080
1081impl GetSpan for ImportDefaultSpecifier<'_> {
1082    #[inline]
1083    fn span(&self) -> Span {
1084        self.span
1085    }
1086}
1087
1088impl GetSpan for ImportNamespaceSpecifier<'_> {
1089    #[inline]
1090    fn span(&self) -> Span {
1091        self.span
1092    }
1093}
1094
1095impl GetSpan for WithClause<'_> {
1096    #[inline]
1097    fn span(&self) -> Span {
1098        self.span
1099    }
1100}
1101
1102impl GetSpan for ImportAttribute<'_> {
1103    #[inline]
1104    fn span(&self) -> Span {
1105        self.span
1106    }
1107}
1108
1109impl GetSpan for ImportAttributeKey<'_> {
1110    fn span(&self) -> Span {
1111        match self {
1112            Self::Identifier(it) => GetSpan::span(it),
1113            Self::StringLiteral(it) => GetSpan::span(it),
1114        }
1115    }
1116}
1117
1118impl GetSpan for ExportNamedDeclaration<'_> {
1119    #[inline]
1120    fn span(&self) -> Span {
1121        self.span
1122    }
1123}
1124
1125impl GetSpan for ExportDefaultDeclaration<'_> {
1126    #[inline]
1127    fn span(&self) -> Span {
1128        self.span
1129    }
1130}
1131
1132impl GetSpan for ExportAllDeclaration<'_> {
1133    #[inline]
1134    fn span(&self) -> Span {
1135        self.span
1136    }
1137}
1138
1139impl GetSpan for ExportSpecifier<'_> {
1140    #[inline]
1141    fn span(&self) -> Span {
1142        self.span
1143    }
1144}
1145
1146impl GetSpan for ExportDefaultDeclarationKind<'_> {
1147    fn span(&self) -> Span {
1148        match self {
1149            Self::FunctionDeclaration(it) => GetSpan::span(&**it),
1150            Self::ClassDeclaration(it) => GetSpan::span(&**it),
1151            Self::TSInterfaceDeclaration(it) => GetSpan::span(&**it),
1152            Self::BooleanLiteral(it) => GetSpan::span(&**it),
1153            Self::NullLiteral(it) => GetSpan::span(&**it),
1154            Self::NumericLiteral(it) => GetSpan::span(&**it),
1155            Self::BigIntLiteral(it) => GetSpan::span(&**it),
1156            Self::RegExpLiteral(it) => GetSpan::span(&**it),
1157            Self::StringLiteral(it) => GetSpan::span(&**it),
1158            Self::TemplateLiteral(it) => GetSpan::span(&**it),
1159            Self::Identifier(it) => GetSpan::span(&**it),
1160            Self::MetaProperty(it) => GetSpan::span(&**it),
1161            Self::Super(it) => GetSpan::span(&**it),
1162            Self::ArrayExpression(it) => GetSpan::span(&**it),
1163            Self::ArrowFunctionExpression(it) => GetSpan::span(&**it),
1164            Self::AssignmentExpression(it) => GetSpan::span(&**it),
1165            Self::AwaitExpression(it) => GetSpan::span(&**it),
1166            Self::BinaryExpression(it) => GetSpan::span(&**it),
1167            Self::CallExpression(it) => GetSpan::span(&**it),
1168            Self::ChainExpression(it) => GetSpan::span(&**it),
1169            Self::ClassExpression(it) => GetSpan::span(&**it),
1170            Self::ConditionalExpression(it) => GetSpan::span(&**it),
1171            Self::FunctionExpression(it) => GetSpan::span(&**it),
1172            Self::ImportExpression(it) => GetSpan::span(&**it),
1173            Self::LogicalExpression(it) => GetSpan::span(&**it),
1174            Self::NewExpression(it) => GetSpan::span(&**it),
1175            Self::ObjectExpression(it) => GetSpan::span(&**it),
1176            Self::ParenthesizedExpression(it) => GetSpan::span(&**it),
1177            Self::SequenceExpression(it) => GetSpan::span(&**it),
1178            Self::TaggedTemplateExpression(it) => GetSpan::span(&**it),
1179            Self::ThisExpression(it) => GetSpan::span(&**it),
1180            Self::UnaryExpression(it) => GetSpan::span(&**it),
1181            Self::UpdateExpression(it) => GetSpan::span(&**it),
1182            Self::YieldExpression(it) => GetSpan::span(&**it),
1183            Self::PrivateInExpression(it) => GetSpan::span(&**it),
1184            Self::JSXElement(it) => GetSpan::span(&**it),
1185            Self::JSXFragment(it) => GetSpan::span(&**it),
1186            Self::TSAsExpression(it) => GetSpan::span(&**it),
1187            Self::TSSatisfiesExpression(it) => GetSpan::span(&**it),
1188            Self::TSTypeAssertion(it) => GetSpan::span(&**it),
1189            Self::TSNonNullExpression(it) => GetSpan::span(&**it),
1190            Self::TSInstantiationExpression(it) => GetSpan::span(&**it),
1191            Self::V8IntrinsicExpression(it) => GetSpan::span(&**it),
1192            Self::ComputedMemberExpression(it) => GetSpan::span(&**it),
1193            Self::StaticMemberExpression(it) => GetSpan::span(&**it),
1194            Self::PrivateFieldExpression(it) => GetSpan::span(&**it),
1195        }
1196    }
1197}
1198
1199impl GetSpan for ModuleExportName<'_> {
1200    fn span(&self) -> Span {
1201        match self {
1202            Self::IdentifierName(it) => GetSpan::span(it),
1203            Self::IdentifierReference(it) => GetSpan::span(it),
1204            Self::StringLiteral(it) => GetSpan::span(it),
1205        }
1206    }
1207}
1208
1209impl GetSpan for V8IntrinsicExpression<'_> {
1210    #[inline]
1211    fn span(&self) -> Span {
1212        self.span
1213    }
1214}
1215
1216impl GetSpan for BooleanLiteral {
1217    #[inline]
1218    fn span(&self) -> Span {
1219        self.span
1220    }
1221}
1222
1223impl GetSpan for NullLiteral {
1224    #[inline]
1225    fn span(&self) -> Span {
1226        self.span
1227    }
1228}
1229
1230impl GetSpan for NumericLiteral<'_> {
1231    #[inline]
1232    fn span(&self) -> Span {
1233        self.span
1234    }
1235}
1236
1237impl GetSpan for StringLiteral<'_> {
1238    #[inline]
1239    fn span(&self) -> Span {
1240        self.span
1241    }
1242}
1243
1244impl GetSpan for BigIntLiteral<'_> {
1245    #[inline]
1246    fn span(&self) -> Span {
1247        self.span
1248    }
1249}
1250
1251impl GetSpan for RegExpLiteral<'_> {
1252    #[inline]
1253    fn span(&self) -> Span {
1254        self.span
1255    }
1256}
1257
1258impl GetSpan for JSXElement<'_> {
1259    #[inline]
1260    fn span(&self) -> Span {
1261        self.span
1262    }
1263}
1264
1265impl GetSpan for JSXOpeningElement<'_> {
1266    #[inline]
1267    fn span(&self) -> Span {
1268        self.span
1269    }
1270}
1271
1272impl GetSpan for JSXClosingElement<'_> {
1273    #[inline]
1274    fn span(&self) -> Span {
1275        self.span
1276    }
1277}
1278
1279impl GetSpan for JSXFragment<'_> {
1280    #[inline]
1281    fn span(&self) -> Span {
1282        self.span
1283    }
1284}
1285
1286impl GetSpan for JSXOpeningFragment {
1287    #[inline]
1288    fn span(&self) -> Span {
1289        self.span
1290    }
1291}
1292
1293impl GetSpan for JSXClosingFragment {
1294    #[inline]
1295    fn span(&self) -> Span {
1296        self.span
1297    }
1298}
1299
1300impl GetSpan for JSXElementName<'_> {
1301    fn span(&self) -> Span {
1302        match self {
1303            Self::Identifier(it) => GetSpan::span(&**it),
1304            Self::IdentifierReference(it) => GetSpan::span(&**it),
1305            Self::NamespacedName(it) => GetSpan::span(&**it),
1306            Self::MemberExpression(it) => GetSpan::span(&**it),
1307            Self::ThisExpression(it) => GetSpan::span(&**it),
1308        }
1309    }
1310}
1311
1312impl GetSpan for JSXNamespacedName<'_> {
1313    #[inline]
1314    fn span(&self) -> Span {
1315        self.span
1316    }
1317}
1318
1319impl GetSpan for JSXMemberExpression<'_> {
1320    #[inline]
1321    fn span(&self) -> Span {
1322        self.span
1323    }
1324}
1325
1326impl GetSpan for JSXMemberExpressionObject<'_> {
1327    fn span(&self) -> Span {
1328        match self {
1329            Self::IdentifierReference(it) => GetSpan::span(&**it),
1330            Self::MemberExpression(it) => GetSpan::span(&**it),
1331            Self::ThisExpression(it) => GetSpan::span(&**it),
1332        }
1333    }
1334}
1335
1336impl GetSpan for JSXExpressionContainer<'_> {
1337    #[inline]
1338    fn span(&self) -> Span {
1339        self.span
1340    }
1341}
1342
1343impl GetSpan for JSXExpression<'_> {
1344    fn span(&self) -> Span {
1345        match self {
1346            Self::EmptyExpression(it) => GetSpan::span(it),
1347            Self::BooleanLiteral(it) => GetSpan::span(&**it),
1348            Self::NullLiteral(it) => GetSpan::span(&**it),
1349            Self::NumericLiteral(it) => GetSpan::span(&**it),
1350            Self::BigIntLiteral(it) => GetSpan::span(&**it),
1351            Self::RegExpLiteral(it) => GetSpan::span(&**it),
1352            Self::StringLiteral(it) => GetSpan::span(&**it),
1353            Self::TemplateLiteral(it) => GetSpan::span(&**it),
1354            Self::Identifier(it) => GetSpan::span(&**it),
1355            Self::MetaProperty(it) => GetSpan::span(&**it),
1356            Self::Super(it) => GetSpan::span(&**it),
1357            Self::ArrayExpression(it) => GetSpan::span(&**it),
1358            Self::ArrowFunctionExpression(it) => GetSpan::span(&**it),
1359            Self::AssignmentExpression(it) => GetSpan::span(&**it),
1360            Self::AwaitExpression(it) => GetSpan::span(&**it),
1361            Self::BinaryExpression(it) => GetSpan::span(&**it),
1362            Self::CallExpression(it) => GetSpan::span(&**it),
1363            Self::ChainExpression(it) => GetSpan::span(&**it),
1364            Self::ClassExpression(it) => GetSpan::span(&**it),
1365            Self::ConditionalExpression(it) => GetSpan::span(&**it),
1366            Self::FunctionExpression(it) => GetSpan::span(&**it),
1367            Self::ImportExpression(it) => GetSpan::span(&**it),
1368            Self::LogicalExpression(it) => GetSpan::span(&**it),
1369            Self::NewExpression(it) => GetSpan::span(&**it),
1370            Self::ObjectExpression(it) => GetSpan::span(&**it),
1371            Self::ParenthesizedExpression(it) => GetSpan::span(&**it),
1372            Self::SequenceExpression(it) => GetSpan::span(&**it),
1373            Self::TaggedTemplateExpression(it) => GetSpan::span(&**it),
1374            Self::ThisExpression(it) => GetSpan::span(&**it),
1375            Self::UnaryExpression(it) => GetSpan::span(&**it),
1376            Self::UpdateExpression(it) => GetSpan::span(&**it),
1377            Self::YieldExpression(it) => GetSpan::span(&**it),
1378            Self::PrivateInExpression(it) => GetSpan::span(&**it),
1379            Self::JSXElement(it) => GetSpan::span(&**it),
1380            Self::JSXFragment(it) => GetSpan::span(&**it),
1381            Self::TSAsExpression(it) => GetSpan::span(&**it),
1382            Self::TSSatisfiesExpression(it) => GetSpan::span(&**it),
1383            Self::TSTypeAssertion(it) => GetSpan::span(&**it),
1384            Self::TSNonNullExpression(it) => GetSpan::span(&**it),
1385            Self::TSInstantiationExpression(it) => GetSpan::span(&**it),
1386            Self::V8IntrinsicExpression(it) => GetSpan::span(&**it),
1387            Self::ComputedMemberExpression(it) => GetSpan::span(&**it),
1388            Self::StaticMemberExpression(it) => GetSpan::span(&**it),
1389            Self::PrivateFieldExpression(it) => GetSpan::span(&**it),
1390        }
1391    }
1392}
1393
1394impl GetSpan for JSXEmptyExpression {
1395    #[inline]
1396    fn span(&self) -> Span {
1397        self.span
1398    }
1399}
1400
1401impl GetSpan for JSXAttributeItem<'_> {
1402    fn span(&self) -> Span {
1403        match self {
1404            Self::Attribute(it) => GetSpan::span(&**it),
1405            Self::SpreadAttribute(it) => GetSpan::span(&**it),
1406        }
1407    }
1408}
1409
1410impl GetSpan for JSXAttribute<'_> {
1411    #[inline]
1412    fn span(&self) -> Span {
1413        self.span
1414    }
1415}
1416
1417impl GetSpan for JSXSpreadAttribute<'_> {
1418    #[inline]
1419    fn span(&self) -> Span {
1420        self.span
1421    }
1422}
1423
1424impl GetSpan for JSXAttributeName<'_> {
1425    fn span(&self) -> Span {
1426        match self {
1427            Self::Identifier(it) => GetSpan::span(&**it),
1428            Self::NamespacedName(it) => GetSpan::span(&**it),
1429        }
1430    }
1431}
1432
1433impl GetSpan for JSXAttributeValue<'_> {
1434    fn span(&self) -> Span {
1435        match self {
1436            Self::StringLiteral(it) => GetSpan::span(&**it),
1437            Self::ExpressionContainer(it) => GetSpan::span(&**it),
1438            Self::Element(it) => GetSpan::span(&**it),
1439            Self::Fragment(it) => GetSpan::span(&**it),
1440        }
1441    }
1442}
1443
1444impl GetSpan for JSXIdentifier<'_> {
1445    #[inline]
1446    fn span(&self) -> Span {
1447        self.span
1448    }
1449}
1450
1451impl GetSpan for JSXChild<'_> {
1452    fn span(&self) -> Span {
1453        match self {
1454            Self::Text(it) => GetSpan::span(&**it),
1455            Self::Element(it) => GetSpan::span(&**it),
1456            Self::Fragment(it) => GetSpan::span(&**it),
1457            Self::ExpressionContainer(it) => GetSpan::span(&**it),
1458            Self::Spread(it) => GetSpan::span(&**it),
1459        }
1460    }
1461}
1462
1463impl GetSpan for JSXSpreadChild<'_> {
1464    #[inline]
1465    fn span(&self) -> Span {
1466        self.span
1467    }
1468}
1469
1470impl GetSpan for JSXText<'_> {
1471    #[inline]
1472    fn span(&self) -> Span {
1473        self.span
1474    }
1475}
1476
1477impl GetSpan for TSThisParameter<'_> {
1478    #[inline]
1479    fn span(&self) -> Span {
1480        self.span
1481    }
1482}
1483
1484impl GetSpan for TSEnumDeclaration<'_> {
1485    #[inline]
1486    fn span(&self) -> Span {
1487        self.span
1488    }
1489}
1490
1491impl GetSpan for TSEnumBody<'_> {
1492    #[inline]
1493    fn span(&self) -> Span {
1494        self.span
1495    }
1496}
1497
1498impl GetSpan for TSEnumMember<'_> {
1499    #[inline]
1500    fn span(&self) -> Span {
1501        self.span
1502    }
1503}
1504
1505impl GetSpan for TSEnumMemberName<'_> {
1506    fn span(&self) -> Span {
1507        match self {
1508            Self::Identifier(it) => GetSpan::span(&**it),
1509            Self::String(it) => GetSpan::span(&**it),
1510            Self::ComputedString(it) => GetSpan::span(&**it),
1511            Self::ComputedTemplateString(it) => GetSpan::span(&**it),
1512        }
1513    }
1514}
1515
1516impl GetSpan for TSTypeAnnotation<'_> {
1517    #[inline]
1518    fn span(&self) -> Span {
1519        self.span
1520    }
1521}
1522
1523impl GetSpan for TSLiteralType<'_> {
1524    #[inline]
1525    fn span(&self) -> Span {
1526        self.span
1527    }
1528}
1529
1530impl GetSpan for TSLiteral<'_> {
1531    fn span(&self) -> Span {
1532        match self {
1533            Self::BooleanLiteral(it) => GetSpan::span(&**it),
1534            Self::NumericLiteral(it) => GetSpan::span(&**it),
1535            Self::BigIntLiteral(it) => GetSpan::span(&**it),
1536            Self::StringLiteral(it) => GetSpan::span(&**it),
1537            Self::TemplateLiteral(it) => GetSpan::span(&**it),
1538            Self::UnaryExpression(it) => GetSpan::span(&**it),
1539        }
1540    }
1541}
1542
1543impl GetSpan for TSType<'_> {
1544    fn span(&self) -> Span {
1545        match self {
1546            Self::TSAnyKeyword(it) => GetSpan::span(&**it),
1547            Self::TSBigIntKeyword(it) => GetSpan::span(&**it),
1548            Self::TSBooleanKeyword(it) => GetSpan::span(&**it),
1549            Self::TSIntrinsicKeyword(it) => GetSpan::span(&**it),
1550            Self::TSNeverKeyword(it) => GetSpan::span(&**it),
1551            Self::TSNullKeyword(it) => GetSpan::span(&**it),
1552            Self::TSNumberKeyword(it) => GetSpan::span(&**it),
1553            Self::TSObjectKeyword(it) => GetSpan::span(&**it),
1554            Self::TSStringKeyword(it) => GetSpan::span(&**it),
1555            Self::TSSymbolKeyword(it) => GetSpan::span(&**it),
1556            Self::TSUndefinedKeyword(it) => GetSpan::span(&**it),
1557            Self::TSUnknownKeyword(it) => GetSpan::span(&**it),
1558            Self::TSVoidKeyword(it) => GetSpan::span(&**it),
1559            Self::TSArrayType(it) => GetSpan::span(&**it),
1560            Self::TSConditionalType(it) => GetSpan::span(&**it),
1561            Self::TSConstructorType(it) => GetSpan::span(&**it),
1562            Self::TSFunctionType(it) => GetSpan::span(&**it),
1563            Self::TSImportType(it) => GetSpan::span(&**it),
1564            Self::TSIndexedAccessType(it) => GetSpan::span(&**it),
1565            Self::TSInferType(it) => GetSpan::span(&**it),
1566            Self::TSIntersectionType(it) => GetSpan::span(&**it),
1567            Self::TSLiteralType(it) => GetSpan::span(&**it),
1568            Self::TSMappedType(it) => GetSpan::span(&**it),
1569            Self::TSNamedTupleMember(it) => GetSpan::span(&**it),
1570            Self::TSTemplateLiteralType(it) => GetSpan::span(&**it),
1571            Self::TSThisType(it) => GetSpan::span(&**it),
1572            Self::TSTupleType(it) => GetSpan::span(&**it),
1573            Self::TSTypeLiteral(it) => GetSpan::span(&**it),
1574            Self::TSTypeOperatorType(it) => GetSpan::span(&**it),
1575            Self::TSTypePredicate(it) => GetSpan::span(&**it),
1576            Self::TSTypeQuery(it) => GetSpan::span(&**it),
1577            Self::TSTypeReference(it) => GetSpan::span(&**it),
1578            Self::TSUnionType(it) => GetSpan::span(&**it),
1579            Self::TSParenthesizedType(it) => GetSpan::span(&**it),
1580            Self::JSDocNullableType(it) => GetSpan::span(&**it),
1581            Self::JSDocNonNullableType(it) => GetSpan::span(&**it),
1582            Self::JSDocUnknownType(it) => GetSpan::span(&**it),
1583        }
1584    }
1585}
1586
1587impl GetSpan for TSConditionalType<'_> {
1588    #[inline]
1589    fn span(&self) -> Span {
1590        self.span
1591    }
1592}
1593
1594impl GetSpan for TSUnionType<'_> {
1595    #[inline]
1596    fn span(&self) -> Span {
1597        self.span
1598    }
1599}
1600
1601impl GetSpan for TSIntersectionType<'_> {
1602    #[inline]
1603    fn span(&self) -> Span {
1604        self.span
1605    }
1606}
1607
1608impl GetSpan for TSParenthesizedType<'_> {
1609    #[inline]
1610    fn span(&self) -> Span {
1611        self.span
1612    }
1613}
1614
1615impl GetSpan for TSTypeOperator<'_> {
1616    #[inline]
1617    fn span(&self) -> Span {
1618        self.span
1619    }
1620}
1621
1622impl GetSpan for TSArrayType<'_> {
1623    #[inline]
1624    fn span(&self) -> Span {
1625        self.span
1626    }
1627}
1628
1629impl GetSpan for TSIndexedAccessType<'_> {
1630    #[inline]
1631    fn span(&self) -> Span {
1632        self.span
1633    }
1634}
1635
1636impl GetSpan for TSTupleType<'_> {
1637    #[inline]
1638    fn span(&self) -> Span {
1639        self.span
1640    }
1641}
1642
1643impl GetSpan for TSNamedTupleMember<'_> {
1644    #[inline]
1645    fn span(&self) -> Span {
1646        self.span
1647    }
1648}
1649
1650impl GetSpan for TSOptionalType<'_> {
1651    #[inline]
1652    fn span(&self) -> Span {
1653        self.span
1654    }
1655}
1656
1657impl GetSpan for TSRestType<'_> {
1658    #[inline]
1659    fn span(&self) -> Span {
1660        self.span
1661    }
1662}
1663
1664impl GetSpan for TSTupleElement<'_> {
1665    fn span(&self) -> Span {
1666        match self {
1667            Self::TSOptionalType(it) => GetSpan::span(&**it),
1668            Self::TSRestType(it) => GetSpan::span(&**it),
1669            Self::TSAnyKeyword(it) => GetSpan::span(&**it),
1670            Self::TSBigIntKeyword(it) => GetSpan::span(&**it),
1671            Self::TSBooleanKeyword(it) => GetSpan::span(&**it),
1672            Self::TSIntrinsicKeyword(it) => GetSpan::span(&**it),
1673            Self::TSNeverKeyword(it) => GetSpan::span(&**it),
1674            Self::TSNullKeyword(it) => GetSpan::span(&**it),
1675            Self::TSNumberKeyword(it) => GetSpan::span(&**it),
1676            Self::TSObjectKeyword(it) => GetSpan::span(&**it),
1677            Self::TSStringKeyword(it) => GetSpan::span(&**it),
1678            Self::TSSymbolKeyword(it) => GetSpan::span(&**it),
1679            Self::TSUndefinedKeyword(it) => GetSpan::span(&**it),
1680            Self::TSUnknownKeyword(it) => GetSpan::span(&**it),
1681            Self::TSVoidKeyword(it) => GetSpan::span(&**it),
1682            Self::TSArrayType(it) => GetSpan::span(&**it),
1683            Self::TSConditionalType(it) => GetSpan::span(&**it),
1684            Self::TSConstructorType(it) => GetSpan::span(&**it),
1685            Self::TSFunctionType(it) => GetSpan::span(&**it),
1686            Self::TSImportType(it) => GetSpan::span(&**it),
1687            Self::TSIndexedAccessType(it) => GetSpan::span(&**it),
1688            Self::TSInferType(it) => GetSpan::span(&**it),
1689            Self::TSIntersectionType(it) => GetSpan::span(&**it),
1690            Self::TSLiteralType(it) => GetSpan::span(&**it),
1691            Self::TSMappedType(it) => GetSpan::span(&**it),
1692            Self::TSNamedTupleMember(it) => GetSpan::span(&**it),
1693            Self::TSTemplateLiteralType(it) => GetSpan::span(&**it),
1694            Self::TSThisType(it) => GetSpan::span(&**it),
1695            Self::TSTupleType(it) => GetSpan::span(&**it),
1696            Self::TSTypeLiteral(it) => GetSpan::span(&**it),
1697            Self::TSTypeOperatorType(it) => GetSpan::span(&**it),
1698            Self::TSTypePredicate(it) => GetSpan::span(&**it),
1699            Self::TSTypeQuery(it) => GetSpan::span(&**it),
1700            Self::TSTypeReference(it) => GetSpan::span(&**it),
1701            Self::TSUnionType(it) => GetSpan::span(&**it),
1702            Self::TSParenthesizedType(it) => GetSpan::span(&**it),
1703            Self::JSDocNullableType(it) => GetSpan::span(&**it),
1704            Self::JSDocNonNullableType(it) => GetSpan::span(&**it),
1705            Self::JSDocUnknownType(it) => GetSpan::span(&**it),
1706        }
1707    }
1708}
1709
1710impl GetSpan for TSAnyKeyword {
1711    #[inline]
1712    fn span(&self) -> Span {
1713        self.span
1714    }
1715}
1716
1717impl GetSpan for TSStringKeyword {
1718    #[inline]
1719    fn span(&self) -> Span {
1720        self.span
1721    }
1722}
1723
1724impl GetSpan for TSBooleanKeyword {
1725    #[inline]
1726    fn span(&self) -> Span {
1727        self.span
1728    }
1729}
1730
1731impl GetSpan for TSNumberKeyword {
1732    #[inline]
1733    fn span(&self) -> Span {
1734        self.span
1735    }
1736}
1737
1738impl GetSpan for TSNeverKeyword {
1739    #[inline]
1740    fn span(&self) -> Span {
1741        self.span
1742    }
1743}
1744
1745impl GetSpan for TSIntrinsicKeyword {
1746    #[inline]
1747    fn span(&self) -> Span {
1748        self.span
1749    }
1750}
1751
1752impl GetSpan for TSUnknownKeyword {
1753    #[inline]
1754    fn span(&self) -> Span {
1755        self.span
1756    }
1757}
1758
1759impl GetSpan for TSNullKeyword {
1760    #[inline]
1761    fn span(&self) -> Span {
1762        self.span
1763    }
1764}
1765
1766impl GetSpan for TSUndefinedKeyword {
1767    #[inline]
1768    fn span(&self) -> Span {
1769        self.span
1770    }
1771}
1772
1773impl GetSpan for TSVoidKeyword {
1774    #[inline]
1775    fn span(&self) -> Span {
1776        self.span
1777    }
1778}
1779
1780impl GetSpan for TSSymbolKeyword {
1781    #[inline]
1782    fn span(&self) -> Span {
1783        self.span
1784    }
1785}
1786
1787impl GetSpan for TSThisType {
1788    #[inline]
1789    fn span(&self) -> Span {
1790        self.span
1791    }
1792}
1793
1794impl GetSpan for TSObjectKeyword {
1795    #[inline]
1796    fn span(&self) -> Span {
1797        self.span
1798    }
1799}
1800
1801impl GetSpan for TSBigIntKeyword {
1802    #[inline]
1803    fn span(&self) -> Span {
1804        self.span
1805    }
1806}
1807
1808impl GetSpan for TSTypeReference<'_> {
1809    #[inline]
1810    fn span(&self) -> Span {
1811        self.span
1812    }
1813}
1814
1815impl GetSpan for TSTypeName<'_> {
1816    fn span(&self) -> Span {
1817        match self {
1818            Self::IdentifierReference(it) => GetSpan::span(&**it),
1819            Self::QualifiedName(it) => GetSpan::span(&**it),
1820            Self::ThisExpression(it) => GetSpan::span(&**it),
1821        }
1822    }
1823}
1824
1825impl GetSpan for TSQualifiedName<'_> {
1826    #[inline]
1827    fn span(&self) -> Span {
1828        self.span
1829    }
1830}
1831
1832impl GetSpan for TSTypeParameterInstantiation<'_> {
1833    #[inline]
1834    fn span(&self) -> Span {
1835        self.span
1836    }
1837}
1838
1839impl GetSpan for TSTypeParameter<'_> {
1840    #[inline]
1841    fn span(&self) -> Span {
1842        self.span
1843    }
1844}
1845
1846impl GetSpan for TSTypeParameterDeclaration<'_> {
1847    #[inline]
1848    fn span(&self) -> Span {
1849        self.span
1850    }
1851}
1852
1853impl GetSpan for TSTypeAliasDeclaration<'_> {
1854    #[inline]
1855    fn span(&self) -> Span {
1856        self.span
1857    }
1858}
1859
1860impl GetSpan for TSClassImplements<'_> {
1861    #[inline]
1862    fn span(&self) -> Span {
1863        self.span
1864    }
1865}
1866
1867impl GetSpan for TSInterfaceDeclaration<'_> {
1868    #[inline]
1869    fn span(&self) -> Span {
1870        self.span
1871    }
1872}
1873
1874impl GetSpan for TSInterfaceBody<'_> {
1875    #[inline]
1876    fn span(&self) -> Span {
1877        self.span
1878    }
1879}
1880
1881impl GetSpan for TSPropertySignature<'_> {
1882    #[inline]
1883    fn span(&self) -> Span {
1884        self.span
1885    }
1886}
1887
1888impl GetSpan for TSSignature<'_> {
1889    fn span(&self) -> Span {
1890        match self {
1891            Self::TSIndexSignature(it) => GetSpan::span(&**it),
1892            Self::TSPropertySignature(it) => GetSpan::span(&**it),
1893            Self::TSCallSignatureDeclaration(it) => GetSpan::span(&**it),
1894            Self::TSConstructSignatureDeclaration(it) => GetSpan::span(&**it),
1895            Self::TSMethodSignature(it) => GetSpan::span(&**it),
1896        }
1897    }
1898}
1899
1900impl GetSpan for TSIndexSignature<'_> {
1901    #[inline]
1902    fn span(&self) -> Span {
1903        self.span
1904    }
1905}
1906
1907impl GetSpan for TSCallSignatureDeclaration<'_> {
1908    #[inline]
1909    fn span(&self) -> Span {
1910        self.span
1911    }
1912}
1913
1914impl GetSpan for TSMethodSignature<'_> {
1915    #[inline]
1916    fn span(&self) -> Span {
1917        self.span
1918    }
1919}
1920
1921impl GetSpan for TSConstructSignatureDeclaration<'_> {
1922    #[inline]
1923    fn span(&self) -> Span {
1924        self.span
1925    }
1926}
1927
1928impl GetSpan for TSIndexSignatureName<'_> {
1929    #[inline]
1930    fn span(&self) -> Span {
1931        self.span
1932    }
1933}
1934
1935impl GetSpan for TSInterfaceHeritage<'_> {
1936    #[inline]
1937    fn span(&self) -> Span {
1938        self.span
1939    }
1940}
1941
1942impl GetSpan for TSTypePredicate<'_> {
1943    #[inline]
1944    fn span(&self) -> Span {
1945        self.span
1946    }
1947}
1948
1949impl GetSpan for TSTypePredicateName<'_> {
1950    fn span(&self) -> Span {
1951        match self {
1952            Self::Identifier(it) => GetSpan::span(&**it),
1953            Self::This(it) => GetSpan::span(it),
1954        }
1955    }
1956}
1957
1958impl GetSpan for TSModuleDeclaration<'_> {
1959    #[inline]
1960    fn span(&self) -> Span {
1961        self.span
1962    }
1963}
1964
1965impl GetSpan for TSModuleDeclarationName<'_> {
1966    fn span(&self) -> Span {
1967        match self {
1968            Self::Identifier(it) => GetSpan::span(it),
1969            Self::StringLiteral(it) => GetSpan::span(it),
1970        }
1971    }
1972}
1973
1974impl GetSpan for TSModuleDeclarationBody<'_> {
1975    fn span(&self) -> Span {
1976        match self {
1977            Self::TSModuleDeclaration(it) => GetSpan::span(&**it),
1978            Self::TSModuleBlock(it) => GetSpan::span(&**it),
1979        }
1980    }
1981}
1982
1983impl GetSpan for TSModuleBlock<'_> {
1984    #[inline]
1985    fn span(&self) -> Span {
1986        self.span
1987    }
1988}
1989
1990impl GetSpan for TSTypeLiteral<'_> {
1991    #[inline]
1992    fn span(&self) -> Span {
1993        self.span
1994    }
1995}
1996
1997impl GetSpan for TSInferType<'_> {
1998    #[inline]
1999    fn span(&self) -> Span {
2000        self.span
2001    }
2002}
2003
2004impl GetSpan for TSTypeQuery<'_> {
2005    #[inline]
2006    fn span(&self) -> Span {
2007        self.span
2008    }
2009}
2010
2011impl GetSpan for TSTypeQueryExprName<'_> {
2012    fn span(&self) -> Span {
2013        match self {
2014            Self::TSImportType(it) => GetSpan::span(&**it),
2015            Self::IdentifierReference(it) => GetSpan::span(&**it),
2016            Self::QualifiedName(it) => GetSpan::span(&**it),
2017            Self::ThisExpression(it) => GetSpan::span(&**it),
2018        }
2019    }
2020}
2021
2022impl GetSpan for TSImportType<'_> {
2023    #[inline]
2024    fn span(&self) -> Span {
2025        self.span
2026    }
2027}
2028
2029impl GetSpan for TSImportTypeQualifier<'_> {
2030    fn span(&self) -> Span {
2031        match self {
2032            Self::Identifier(it) => GetSpan::span(&**it),
2033            Self::QualifiedName(it) => GetSpan::span(&**it),
2034        }
2035    }
2036}
2037
2038impl GetSpan for TSImportTypeQualifiedName<'_> {
2039    #[inline]
2040    fn span(&self) -> Span {
2041        self.span
2042    }
2043}
2044
2045impl GetSpan for TSFunctionType<'_> {
2046    #[inline]
2047    fn span(&self) -> Span {
2048        self.span
2049    }
2050}
2051
2052impl GetSpan for TSConstructorType<'_> {
2053    #[inline]
2054    fn span(&self) -> Span {
2055        self.span
2056    }
2057}
2058
2059impl GetSpan for TSMappedType<'_> {
2060    #[inline]
2061    fn span(&self) -> Span {
2062        self.span
2063    }
2064}
2065
2066impl GetSpan for TSTemplateLiteralType<'_> {
2067    #[inline]
2068    fn span(&self) -> Span {
2069        self.span
2070    }
2071}
2072
2073impl GetSpan for TSAsExpression<'_> {
2074    #[inline]
2075    fn span(&self) -> Span {
2076        self.span
2077    }
2078}
2079
2080impl GetSpan for TSSatisfiesExpression<'_> {
2081    #[inline]
2082    fn span(&self) -> Span {
2083        self.span
2084    }
2085}
2086
2087impl GetSpan for TSTypeAssertion<'_> {
2088    #[inline]
2089    fn span(&self) -> Span {
2090        self.span
2091    }
2092}
2093
2094impl GetSpan for TSImportEqualsDeclaration<'_> {
2095    #[inline]
2096    fn span(&self) -> Span {
2097        self.span
2098    }
2099}
2100
2101impl GetSpan for TSModuleReference<'_> {
2102    fn span(&self) -> Span {
2103        match self {
2104            Self::ExternalModuleReference(it) => GetSpan::span(&**it),
2105            Self::IdentifierReference(it) => GetSpan::span(&**it),
2106            Self::QualifiedName(it) => GetSpan::span(&**it),
2107            Self::ThisExpression(it) => GetSpan::span(&**it),
2108        }
2109    }
2110}
2111
2112impl GetSpan for TSExternalModuleReference<'_> {
2113    #[inline]
2114    fn span(&self) -> Span {
2115        self.span
2116    }
2117}
2118
2119impl GetSpan for TSNonNullExpression<'_> {
2120    #[inline]
2121    fn span(&self) -> Span {
2122        self.span
2123    }
2124}
2125
2126impl GetSpan for Decorator<'_> {
2127    #[inline]
2128    fn span(&self) -> Span {
2129        self.span
2130    }
2131}
2132
2133impl GetSpan for TSExportAssignment<'_> {
2134    #[inline]
2135    fn span(&self) -> Span {
2136        self.span
2137    }
2138}
2139
2140impl GetSpan for TSNamespaceExportDeclaration<'_> {
2141    #[inline]
2142    fn span(&self) -> Span {
2143        self.span
2144    }
2145}
2146
2147impl GetSpan for TSInstantiationExpression<'_> {
2148    #[inline]
2149    fn span(&self) -> Span {
2150        self.span
2151    }
2152}
2153
2154impl GetSpan for JSDocNullableType<'_> {
2155    #[inline]
2156    fn span(&self) -> Span {
2157        self.span
2158    }
2159}
2160
2161impl GetSpan for JSDocNonNullableType<'_> {
2162    #[inline]
2163    fn span(&self) -> Span {
2164        self.span
2165    }
2166}
2167
2168impl GetSpan for JSDocUnknownType {
2169    #[inline]
2170    fn span(&self) -> Span {
2171        self.span
2172    }
2173}