1#![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}