1#![allow(unused_variables, clippy::default_trait_access, clippy::inline_always)]
5
6use oxc_allocator::{Allocator, CloneIn};
7
8use crate::ast::comment::*;
9use crate::ast::js::*;
10use crate::ast::jsx::*;
11use crate::ast::literal::*;
12use crate::ast::ts::*;
13
14impl<'new_alloc> CloneIn<'new_alloc> for Program<'_> {
15 type Cloned = Program<'new_alloc>;
16
17 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
18 Program {
19 span: CloneIn::clone_in(&self.span, allocator),
20 source_type: CloneIn::clone_in(&self.source_type, allocator),
21 source_text: CloneIn::clone_in(&self.source_text, allocator),
22 comments: CloneIn::clone_in(&self.comments, allocator),
23 hashbang: CloneIn::clone_in(&self.hashbang, allocator),
24 directives: CloneIn::clone_in(&self.directives, allocator),
25 body: CloneIn::clone_in(&self.body, allocator),
26 scope_id: Default::default(),
27 }
28 }
29
30 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
31 Program {
32 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
33 source_type: CloneIn::clone_in_with_semantic_ids(&self.source_type, allocator),
34 source_text: CloneIn::clone_in_with_semantic_ids(&self.source_text, allocator),
35 comments: CloneIn::clone_in_with_semantic_ids(&self.comments, allocator),
36 hashbang: CloneIn::clone_in_with_semantic_ids(&self.hashbang, allocator),
37 directives: CloneIn::clone_in_with_semantic_ids(&self.directives, allocator),
38 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
39 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
40 }
41 }
42}
43
44impl<'new_alloc> CloneIn<'new_alloc> for Expression<'_> {
45 type Cloned = Expression<'new_alloc>;
46
47 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
48 match self {
49 Self::BooleanLiteral(it) => {
50 Expression::BooleanLiteral(CloneIn::clone_in(it, allocator))
51 }
52 Self::NullLiteral(it) => Expression::NullLiteral(CloneIn::clone_in(it, allocator)),
53 Self::NumericLiteral(it) => {
54 Expression::NumericLiteral(CloneIn::clone_in(it, allocator))
55 }
56 Self::BigIntLiteral(it) => Expression::BigIntLiteral(CloneIn::clone_in(it, allocator)),
57 Self::RegExpLiteral(it) => Expression::RegExpLiteral(CloneIn::clone_in(it, allocator)),
58 Self::StringLiteral(it) => Expression::StringLiteral(CloneIn::clone_in(it, allocator)),
59 Self::TemplateLiteral(it) => {
60 Expression::TemplateLiteral(CloneIn::clone_in(it, allocator))
61 }
62 Self::Identifier(it) => Expression::Identifier(CloneIn::clone_in(it, allocator)),
63 Self::MetaProperty(it) => Expression::MetaProperty(CloneIn::clone_in(it, allocator)),
64 Self::Super(it) => Expression::Super(CloneIn::clone_in(it, allocator)),
65 Self::ArrayExpression(it) => {
66 Expression::ArrayExpression(CloneIn::clone_in(it, allocator))
67 }
68 Self::ArrowFunctionExpression(it) => {
69 Expression::ArrowFunctionExpression(CloneIn::clone_in(it, allocator))
70 }
71 Self::AssignmentExpression(it) => {
72 Expression::AssignmentExpression(CloneIn::clone_in(it, allocator))
73 }
74 Self::AwaitExpression(it) => {
75 Expression::AwaitExpression(CloneIn::clone_in(it, allocator))
76 }
77 Self::BinaryExpression(it) => {
78 Expression::BinaryExpression(CloneIn::clone_in(it, allocator))
79 }
80 Self::CallExpression(it) => {
81 Expression::CallExpression(CloneIn::clone_in(it, allocator))
82 }
83 Self::ChainExpression(it) => {
84 Expression::ChainExpression(CloneIn::clone_in(it, allocator))
85 }
86 Self::ClassExpression(it) => {
87 Expression::ClassExpression(CloneIn::clone_in(it, allocator))
88 }
89 Self::ConditionalExpression(it) => {
90 Expression::ConditionalExpression(CloneIn::clone_in(it, allocator))
91 }
92 Self::FunctionExpression(it) => {
93 Expression::FunctionExpression(CloneIn::clone_in(it, allocator))
94 }
95 Self::ImportExpression(it) => {
96 Expression::ImportExpression(CloneIn::clone_in(it, allocator))
97 }
98 Self::LogicalExpression(it) => {
99 Expression::LogicalExpression(CloneIn::clone_in(it, allocator))
100 }
101 Self::NewExpression(it) => Expression::NewExpression(CloneIn::clone_in(it, allocator)),
102 Self::ObjectExpression(it) => {
103 Expression::ObjectExpression(CloneIn::clone_in(it, allocator))
104 }
105 Self::ParenthesizedExpression(it) => {
106 Expression::ParenthesizedExpression(CloneIn::clone_in(it, allocator))
107 }
108 Self::SequenceExpression(it) => {
109 Expression::SequenceExpression(CloneIn::clone_in(it, allocator))
110 }
111 Self::TaggedTemplateExpression(it) => {
112 Expression::TaggedTemplateExpression(CloneIn::clone_in(it, allocator))
113 }
114 Self::ThisExpression(it) => {
115 Expression::ThisExpression(CloneIn::clone_in(it, allocator))
116 }
117 Self::UnaryExpression(it) => {
118 Expression::UnaryExpression(CloneIn::clone_in(it, allocator))
119 }
120 Self::UpdateExpression(it) => {
121 Expression::UpdateExpression(CloneIn::clone_in(it, allocator))
122 }
123 Self::YieldExpression(it) => {
124 Expression::YieldExpression(CloneIn::clone_in(it, allocator))
125 }
126 Self::PrivateInExpression(it) => {
127 Expression::PrivateInExpression(CloneIn::clone_in(it, allocator))
128 }
129 Self::JSXElement(it) => Expression::JSXElement(CloneIn::clone_in(it, allocator)),
130 Self::JSXFragment(it) => Expression::JSXFragment(CloneIn::clone_in(it, allocator)),
131 Self::TSAsExpression(it) => {
132 Expression::TSAsExpression(CloneIn::clone_in(it, allocator))
133 }
134 Self::TSSatisfiesExpression(it) => {
135 Expression::TSSatisfiesExpression(CloneIn::clone_in(it, allocator))
136 }
137 Self::TSTypeAssertion(it) => {
138 Expression::TSTypeAssertion(CloneIn::clone_in(it, allocator))
139 }
140 Self::TSNonNullExpression(it) => {
141 Expression::TSNonNullExpression(CloneIn::clone_in(it, allocator))
142 }
143 Self::TSInstantiationExpression(it) => {
144 Expression::TSInstantiationExpression(CloneIn::clone_in(it, allocator))
145 }
146 Self::V8IntrinsicExpression(it) => {
147 Expression::V8IntrinsicExpression(CloneIn::clone_in(it, allocator))
148 }
149 Self::ComputedMemberExpression(it) => {
150 Expression::ComputedMemberExpression(CloneIn::clone_in(it, allocator))
151 }
152 Self::StaticMemberExpression(it) => {
153 Expression::StaticMemberExpression(CloneIn::clone_in(it, allocator))
154 }
155 Self::PrivateFieldExpression(it) => {
156 Expression::PrivateFieldExpression(CloneIn::clone_in(it, allocator))
157 }
158 }
159 }
160
161 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
162 match self {
163 Self::BooleanLiteral(it) => {
164 Expression::BooleanLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
165 }
166 Self::NullLiteral(it) => {
167 Expression::NullLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
168 }
169 Self::NumericLiteral(it) => {
170 Expression::NumericLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
171 }
172 Self::BigIntLiteral(it) => {
173 Expression::BigIntLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
174 }
175 Self::RegExpLiteral(it) => {
176 Expression::RegExpLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
177 }
178 Self::StringLiteral(it) => {
179 Expression::StringLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
180 }
181 Self::TemplateLiteral(it) => {
182 Expression::TemplateLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
183 }
184 Self::Identifier(it) => {
185 Expression::Identifier(CloneIn::clone_in_with_semantic_ids(it, allocator))
186 }
187 Self::MetaProperty(it) => {
188 Expression::MetaProperty(CloneIn::clone_in_with_semantic_ids(it, allocator))
189 }
190 Self::Super(it) => {
191 Expression::Super(CloneIn::clone_in_with_semantic_ids(it, allocator))
192 }
193 Self::ArrayExpression(it) => {
194 Expression::ArrayExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
195 }
196 Self::ArrowFunctionExpression(it) => Expression::ArrowFunctionExpression(
197 CloneIn::clone_in_with_semantic_ids(it, allocator),
198 ),
199 Self::AssignmentExpression(it) => {
200 Expression::AssignmentExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
201 }
202 Self::AwaitExpression(it) => {
203 Expression::AwaitExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
204 }
205 Self::BinaryExpression(it) => {
206 Expression::BinaryExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
207 }
208 Self::CallExpression(it) => {
209 Expression::CallExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
210 }
211 Self::ChainExpression(it) => {
212 Expression::ChainExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
213 }
214 Self::ClassExpression(it) => {
215 Expression::ClassExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
216 }
217 Self::ConditionalExpression(it) => Expression::ConditionalExpression(
218 CloneIn::clone_in_with_semantic_ids(it, allocator),
219 ),
220 Self::FunctionExpression(it) => {
221 Expression::FunctionExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
222 }
223 Self::ImportExpression(it) => {
224 Expression::ImportExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
225 }
226 Self::LogicalExpression(it) => {
227 Expression::LogicalExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
228 }
229 Self::NewExpression(it) => {
230 Expression::NewExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
231 }
232 Self::ObjectExpression(it) => {
233 Expression::ObjectExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
234 }
235 Self::ParenthesizedExpression(it) => Expression::ParenthesizedExpression(
236 CloneIn::clone_in_with_semantic_ids(it, allocator),
237 ),
238 Self::SequenceExpression(it) => {
239 Expression::SequenceExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
240 }
241 Self::TaggedTemplateExpression(it) => Expression::TaggedTemplateExpression(
242 CloneIn::clone_in_with_semantic_ids(it, allocator),
243 ),
244 Self::ThisExpression(it) => {
245 Expression::ThisExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
246 }
247 Self::UnaryExpression(it) => {
248 Expression::UnaryExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
249 }
250 Self::UpdateExpression(it) => {
251 Expression::UpdateExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
252 }
253 Self::YieldExpression(it) => {
254 Expression::YieldExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
255 }
256 Self::PrivateInExpression(it) => {
257 Expression::PrivateInExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
258 }
259 Self::JSXElement(it) => {
260 Expression::JSXElement(CloneIn::clone_in_with_semantic_ids(it, allocator))
261 }
262 Self::JSXFragment(it) => {
263 Expression::JSXFragment(CloneIn::clone_in_with_semantic_ids(it, allocator))
264 }
265 Self::TSAsExpression(it) => {
266 Expression::TSAsExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
267 }
268 Self::TSSatisfiesExpression(it) => Expression::TSSatisfiesExpression(
269 CloneIn::clone_in_with_semantic_ids(it, allocator),
270 ),
271 Self::TSTypeAssertion(it) => {
272 Expression::TSTypeAssertion(CloneIn::clone_in_with_semantic_ids(it, allocator))
273 }
274 Self::TSNonNullExpression(it) => {
275 Expression::TSNonNullExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
276 }
277 Self::TSInstantiationExpression(it) => Expression::TSInstantiationExpression(
278 CloneIn::clone_in_with_semantic_ids(it, allocator),
279 ),
280 Self::V8IntrinsicExpression(it) => Expression::V8IntrinsicExpression(
281 CloneIn::clone_in_with_semantic_ids(it, allocator),
282 ),
283 Self::ComputedMemberExpression(it) => Expression::ComputedMemberExpression(
284 CloneIn::clone_in_with_semantic_ids(it, allocator),
285 ),
286 Self::StaticMemberExpression(it) => Expression::StaticMemberExpression(
287 CloneIn::clone_in_with_semantic_ids(it, allocator),
288 ),
289 Self::PrivateFieldExpression(it) => Expression::PrivateFieldExpression(
290 CloneIn::clone_in_with_semantic_ids(it, allocator),
291 ),
292 }
293 }
294}
295
296impl<'new_alloc> CloneIn<'new_alloc> for IdentifierName<'_> {
297 type Cloned = IdentifierName<'new_alloc>;
298
299 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
300 IdentifierName {
301 span: CloneIn::clone_in(&self.span, allocator),
302 name: CloneIn::clone_in(&self.name, allocator),
303 }
304 }
305
306 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
307 IdentifierName {
308 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
309 name: CloneIn::clone_in_with_semantic_ids(&self.name, allocator),
310 }
311 }
312}
313
314impl<'new_alloc> CloneIn<'new_alloc> for IdentifierReference<'_> {
315 type Cloned = IdentifierReference<'new_alloc>;
316
317 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
318 IdentifierReference {
319 span: CloneIn::clone_in(&self.span, allocator),
320 name: CloneIn::clone_in(&self.name, allocator),
321 reference_id: Default::default(),
322 }
323 }
324
325 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
326 IdentifierReference {
327 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
328 name: CloneIn::clone_in_with_semantic_ids(&self.name, allocator),
329 reference_id: CloneIn::clone_in_with_semantic_ids(&self.reference_id, allocator),
330 }
331 }
332}
333
334impl<'new_alloc> CloneIn<'new_alloc> for BindingIdentifier<'_> {
335 type Cloned = BindingIdentifier<'new_alloc>;
336
337 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
338 BindingIdentifier {
339 span: CloneIn::clone_in(&self.span, allocator),
340 name: CloneIn::clone_in(&self.name, allocator),
341 symbol_id: Default::default(),
342 }
343 }
344
345 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
346 BindingIdentifier {
347 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
348 name: CloneIn::clone_in_with_semantic_ids(&self.name, allocator),
349 symbol_id: CloneIn::clone_in_with_semantic_ids(&self.symbol_id, allocator),
350 }
351 }
352}
353
354impl<'new_alloc> CloneIn<'new_alloc> for LabelIdentifier<'_> {
355 type Cloned = LabelIdentifier<'new_alloc>;
356
357 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
358 LabelIdentifier {
359 span: CloneIn::clone_in(&self.span, allocator),
360 name: CloneIn::clone_in(&self.name, allocator),
361 }
362 }
363
364 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
365 LabelIdentifier {
366 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
367 name: CloneIn::clone_in_with_semantic_ids(&self.name, allocator),
368 }
369 }
370}
371
372impl<'new_alloc> CloneIn<'new_alloc> for ThisExpression {
373 type Cloned = ThisExpression;
374
375 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
376 ThisExpression { span: CloneIn::clone_in(&self.span, allocator) }
377 }
378
379 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
380 ThisExpression { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
381 }
382}
383
384impl<'new_alloc> CloneIn<'new_alloc> for ArrayExpression<'_> {
385 type Cloned = ArrayExpression<'new_alloc>;
386
387 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
388 ArrayExpression {
389 span: CloneIn::clone_in(&self.span, allocator),
390 elements: CloneIn::clone_in(&self.elements, allocator),
391 }
392 }
393
394 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
395 ArrayExpression {
396 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
397 elements: CloneIn::clone_in_with_semantic_ids(&self.elements, allocator),
398 }
399 }
400}
401
402impl<'new_alloc> CloneIn<'new_alloc> for ArrayExpressionElement<'_> {
403 type Cloned = ArrayExpressionElement<'new_alloc>;
404
405 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
406 match self {
407 Self::SpreadElement(it) => {
408 ArrayExpressionElement::SpreadElement(CloneIn::clone_in(it, allocator))
409 }
410 Self::Elision(it) => ArrayExpressionElement::Elision(CloneIn::clone_in(it, allocator)),
411 Self::BooleanLiteral(it) => {
412 ArrayExpressionElement::BooleanLiteral(CloneIn::clone_in(it, allocator))
413 }
414 Self::NullLiteral(it) => {
415 ArrayExpressionElement::NullLiteral(CloneIn::clone_in(it, allocator))
416 }
417 Self::NumericLiteral(it) => {
418 ArrayExpressionElement::NumericLiteral(CloneIn::clone_in(it, allocator))
419 }
420 Self::BigIntLiteral(it) => {
421 ArrayExpressionElement::BigIntLiteral(CloneIn::clone_in(it, allocator))
422 }
423 Self::RegExpLiteral(it) => {
424 ArrayExpressionElement::RegExpLiteral(CloneIn::clone_in(it, allocator))
425 }
426 Self::StringLiteral(it) => {
427 ArrayExpressionElement::StringLiteral(CloneIn::clone_in(it, allocator))
428 }
429 Self::TemplateLiteral(it) => {
430 ArrayExpressionElement::TemplateLiteral(CloneIn::clone_in(it, allocator))
431 }
432 Self::Identifier(it) => {
433 ArrayExpressionElement::Identifier(CloneIn::clone_in(it, allocator))
434 }
435 Self::MetaProperty(it) => {
436 ArrayExpressionElement::MetaProperty(CloneIn::clone_in(it, allocator))
437 }
438 Self::Super(it) => ArrayExpressionElement::Super(CloneIn::clone_in(it, allocator)),
439 Self::ArrayExpression(it) => {
440 ArrayExpressionElement::ArrayExpression(CloneIn::clone_in(it, allocator))
441 }
442 Self::ArrowFunctionExpression(it) => {
443 ArrayExpressionElement::ArrowFunctionExpression(CloneIn::clone_in(it, allocator))
444 }
445 Self::AssignmentExpression(it) => {
446 ArrayExpressionElement::AssignmentExpression(CloneIn::clone_in(it, allocator))
447 }
448 Self::AwaitExpression(it) => {
449 ArrayExpressionElement::AwaitExpression(CloneIn::clone_in(it, allocator))
450 }
451 Self::BinaryExpression(it) => {
452 ArrayExpressionElement::BinaryExpression(CloneIn::clone_in(it, allocator))
453 }
454 Self::CallExpression(it) => {
455 ArrayExpressionElement::CallExpression(CloneIn::clone_in(it, allocator))
456 }
457 Self::ChainExpression(it) => {
458 ArrayExpressionElement::ChainExpression(CloneIn::clone_in(it, allocator))
459 }
460 Self::ClassExpression(it) => {
461 ArrayExpressionElement::ClassExpression(CloneIn::clone_in(it, allocator))
462 }
463 Self::ConditionalExpression(it) => {
464 ArrayExpressionElement::ConditionalExpression(CloneIn::clone_in(it, allocator))
465 }
466 Self::FunctionExpression(it) => {
467 ArrayExpressionElement::FunctionExpression(CloneIn::clone_in(it, allocator))
468 }
469 Self::ImportExpression(it) => {
470 ArrayExpressionElement::ImportExpression(CloneIn::clone_in(it, allocator))
471 }
472 Self::LogicalExpression(it) => {
473 ArrayExpressionElement::LogicalExpression(CloneIn::clone_in(it, allocator))
474 }
475 Self::NewExpression(it) => {
476 ArrayExpressionElement::NewExpression(CloneIn::clone_in(it, allocator))
477 }
478 Self::ObjectExpression(it) => {
479 ArrayExpressionElement::ObjectExpression(CloneIn::clone_in(it, allocator))
480 }
481 Self::ParenthesizedExpression(it) => {
482 ArrayExpressionElement::ParenthesizedExpression(CloneIn::clone_in(it, allocator))
483 }
484 Self::SequenceExpression(it) => {
485 ArrayExpressionElement::SequenceExpression(CloneIn::clone_in(it, allocator))
486 }
487 Self::TaggedTemplateExpression(it) => {
488 ArrayExpressionElement::TaggedTemplateExpression(CloneIn::clone_in(it, allocator))
489 }
490 Self::ThisExpression(it) => {
491 ArrayExpressionElement::ThisExpression(CloneIn::clone_in(it, allocator))
492 }
493 Self::UnaryExpression(it) => {
494 ArrayExpressionElement::UnaryExpression(CloneIn::clone_in(it, allocator))
495 }
496 Self::UpdateExpression(it) => {
497 ArrayExpressionElement::UpdateExpression(CloneIn::clone_in(it, allocator))
498 }
499 Self::YieldExpression(it) => {
500 ArrayExpressionElement::YieldExpression(CloneIn::clone_in(it, allocator))
501 }
502 Self::PrivateInExpression(it) => {
503 ArrayExpressionElement::PrivateInExpression(CloneIn::clone_in(it, allocator))
504 }
505 Self::JSXElement(it) => {
506 ArrayExpressionElement::JSXElement(CloneIn::clone_in(it, allocator))
507 }
508 Self::JSXFragment(it) => {
509 ArrayExpressionElement::JSXFragment(CloneIn::clone_in(it, allocator))
510 }
511 Self::TSAsExpression(it) => {
512 ArrayExpressionElement::TSAsExpression(CloneIn::clone_in(it, allocator))
513 }
514 Self::TSSatisfiesExpression(it) => {
515 ArrayExpressionElement::TSSatisfiesExpression(CloneIn::clone_in(it, allocator))
516 }
517 Self::TSTypeAssertion(it) => {
518 ArrayExpressionElement::TSTypeAssertion(CloneIn::clone_in(it, allocator))
519 }
520 Self::TSNonNullExpression(it) => {
521 ArrayExpressionElement::TSNonNullExpression(CloneIn::clone_in(it, allocator))
522 }
523 Self::TSInstantiationExpression(it) => {
524 ArrayExpressionElement::TSInstantiationExpression(CloneIn::clone_in(it, allocator))
525 }
526 Self::V8IntrinsicExpression(it) => {
527 ArrayExpressionElement::V8IntrinsicExpression(CloneIn::clone_in(it, allocator))
528 }
529 Self::ComputedMemberExpression(it) => {
530 ArrayExpressionElement::ComputedMemberExpression(CloneIn::clone_in(it, allocator))
531 }
532 Self::StaticMemberExpression(it) => {
533 ArrayExpressionElement::StaticMemberExpression(CloneIn::clone_in(it, allocator))
534 }
535 Self::PrivateFieldExpression(it) => {
536 ArrayExpressionElement::PrivateFieldExpression(CloneIn::clone_in(it, allocator))
537 }
538 }
539 }
540
541 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
542 match self {
543 Self::SpreadElement(it) => ArrayExpressionElement::SpreadElement(
544 CloneIn::clone_in_with_semantic_ids(it, allocator),
545 ),
546 Self::Elision(it) => {
547 ArrayExpressionElement::Elision(CloneIn::clone_in_with_semantic_ids(it, allocator))
548 }
549 Self::BooleanLiteral(it) => ArrayExpressionElement::BooleanLiteral(
550 CloneIn::clone_in_with_semantic_ids(it, allocator),
551 ),
552 Self::NullLiteral(it) => ArrayExpressionElement::NullLiteral(
553 CloneIn::clone_in_with_semantic_ids(it, allocator),
554 ),
555 Self::NumericLiteral(it) => ArrayExpressionElement::NumericLiteral(
556 CloneIn::clone_in_with_semantic_ids(it, allocator),
557 ),
558 Self::BigIntLiteral(it) => ArrayExpressionElement::BigIntLiteral(
559 CloneIn::clone_in_with_semantic_ids(it, allocator),
560 ),
561 Self::RegExpLiteral(it) => ArrayExpressionElement::RegExpLiteral(
562 CloneIn::clone_in_with_semantic_ids(it, allocator),
563 ),
564 Self::StringLiteral(it) => ArrayExpressionElement::StringLiteral(
565 CloneIn::clone_in_with_semantic_ids(it, allocator),
566 ),
567 Self::TemplateLiteral(it) => ArrayExpressionElement::TemplateLiteral(
568 CloneIn::clone_in_with_semantic_ids(it, allocator),
569 ),
570 Self::Identifier(it) => ArrayExpressionElement::Identifier(
571 CloneIn::clone_in_with_semantic_ids(it, allocator),
572 ),
573 Self::MetaProperty(it) => ArrayExpressionElement::MetaProperty(
574 CloneIn::clone_in_with_semantic_ids(it, allocator),
575 ),
576 Self::Super(it) => {
577 ArrayExpressionElement::Super(CloneIn::clone_in_with_semantic_ids(it, allocator))
578 }
579 Self::ArrayExpression(it) => ArrayExpressionElement::ArrayExpression(
580 CloneIn::clone_in_with_semantic_ids(it, allocator),
581 ),
582 Self::ArrowFunctionExpression(it) => ArrayExpressionElement::ArrowFunctionExpression(
583 CloneIn::clone_in_with_semantic_ids(it, allocator),
584 ),
585 Self::AssignmentExpression(it) => ArrayExpressionElement::AssignmentExpression(
586 CloneIn::clone_in_with_semantic_ids(it, allocator),
587 ),
588 Self::AwaitExpression(it) => ArrayExpressionElement::AwaitExpression(
589 CloneIn::clone_in_with_semantic_ids(it, allocator),
590 ),
591 Self::BinaryExpression(it) => ArrayExpressionElement::BinaryExpression(
592 CloneIn::clone_in_with_semantic_ids(it, allocator),
593 ),
594 Self::CallExpression(it) => ArrayExpressionElement::CallExpression(
595 CloneIn::clone_in_with_semantic_ids(it, allocator),
596 ),
597 Self::ChainExpression(it) => ArrayExpressionElement::ChainExpression(
598 CloneIn::clone_in_with_semantic_ids(it, allocator),
599 ),
600 Self::ClassExpression(it) => ArrayExpressionElement::ClassExpression(
601 CloneIn::clone_in_with_semantic_ids(it, allocator),
602 ),
603 Self::ConditionalExpression(it) => ArrayExpressionElement::ConditionalExpression(
604 CloneIn::clone_in_with_semantic_ids(it, allocator),
605 ),
606 Self::FunctionExpression(it) => ArrayExpressionElement::FunctionExpression(
607 CloneIn::clone_in_with_semantic_ids(it, allocator),
608 ),
609 Self::ImportExpression(it) => ArrayExpressionElement::ImportExpression(
610 CloneIn::clone_in_with_semantic_ids(it, allocator),
611 ),
612 Self::LogicalExpression(it) => ArrayExpressionElement::LogicalExpression(
613 CloneIn::clone_in_with_semantic_ids(it, allocator),
614 ),
615 Self::NewExpression(it) => ArrayExpressionElement::NewExpression(
616 CloneIn::clone_in_with_semantic_ids(it, allocator),
617 ),
618 Self::ObjectExpression(it) => ArrayExpressionElement::ObjectExpression(
619 CloneIn::clone_in_with_semantic_ids(it, allocator),
620 ),
621 Self::ParenthesizedExpression(it) => ArrayExpressionElement::ParenthesizedExpression(
622 CloneIn::clone_in_with_semantic_ids(it, allocator),
623 ),
624 Self::SequenceExpression(it) => ArrayExpressionElement::SequenceExpression(
625 CloneIn::clone_in_with_semantic_ids(it, allocator),
626 ),
627 Self::TaggedTemplateExpression(it) => ArrayExpressionElement::TaggedTemplateExpression(
628 CloneIn::clone_in_with_semantic_ids(it, allocator),
629 ),
630 Self::ThisExpression(it) => ArrayExpressionElement::ThisExpression(
631 CloneIn::clone_in_with_semantic_ids(it, allocator),
632 ),
633 Self::UnaryExpression(it) => ArrayExpressionElement::UnaryExpression(
634 CloneIn::clone_in_with_semantic_ids(it, allocator),
635 ),
636 Self::UpdateExpression(it) => ArrayExpressionElement::UpdateExpression(
637 CloneIn::clone_in_with_semantic_ids(it, allocator),
638 ),
639 Self::YieldExpression(it) => ArrayExpressionElement::YieldExpression(
640 CloneIn::clone_in_with_semantic_ids(it, allocator),
641 ),
642 Self::PrivateInExpression(it) => ArrayExpressionElement::PrivateInExpression(
643 CloneIn::clone_in_with_semantic_ids(it, allocator),
644 ),
645 Self::JSXElement(it) => ArrayExpressionElement::JSXElement(
646 CloneIn::clone_in_with_semantic_ids(it, allocator),
647 ),
648 Self::JSXFragment(it) => ArrayExpressionElement::JSXFragment(
649 CloneIn::clone_in_with_semantic_ids(it, allocator),
650 ),
651 Self::TSAsExpression(it) => ArrayExpressionElement::TSAsExpression(
652 CloneIn::clone_in_with_semantic_ids(it, allocator),
653 ),
654 Self::TSSatisfiesExpression(it) => ArrayExpressionElement::TSSatisfiesExpression(
655 CloneIn::clone_in_with_semantic_ids(it, allocator),
656 ),
657 Self::TSTypeAssertion(it) => ArrayExpressionElement::TSTypeAssertion(
658 CloneIn::clone_in_with_semantic_ids(it, allocator),
659 ),
660 Self::TSNonNullExpression(it) => ArrayExpressionElement::TSNonNullExpression(
661 CloneIn::clone_in_with_semantic_ids(it, allocator),
662 ),
663 Self::TSInstantiationExpression(it) => {
664 ArrayExpressionElement::TSInstantiationExpression(
665 CloneIn::clone_in_with_semantic_ids(it, allocator),
666 )
667 }
668 Self::V8IntrinsicExpression(it) => ArrayExpressionElement::V8IntrinsicExpression(
669 CloneIn::clone_in_with_semantic_ids(it, allocator),
670 ),
671 Self::ComputedMemberExpression(it) => ArrayExpressionElement::ComputedMemberExpression(
672 CloneIn::clone_in_with_semantic_ids(it, allocator),
673 ),
674 Self::StaticMemberExpression(it) => ArrayExpressionElement::StaticMemberExpression(
675 CloneIn::clone_in_with_semantic_ids(it, allocator),
676 ),
677 Self::PrivateFieldExpression(it) => ArrayExpressionElement::PrivateFieldExpression(
678 CloneIn::clone_in_with_semantic_ids(it, allocator),
679 ),
680 }
681 }
682}
683
684impl<'new_alloc> CloneIn<'new_alloc> for Elision {
685 type Cloned = Elision;
686
687 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
688 Elision { span: CloneIn::clone_in(&self.span, allocator) }
689 }
690
691 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
692 Elision { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
693 }
694}
695
696impl<'new_alloc> CloneIn<'new_alloc> for ObjectExpression<'_> {
697 type Cloned = ObjectExpression<'new_alloc>;
698
699 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
700 ObjectExpression {
701 span: CloneIn::clone_in(&self.span, allocator),
702 properties: CloneIn::clone_in(&self.properties, allocator),
703 }
704 }
705
706 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
707 ObjectExpression {
708 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
709 properties: CloneIn::clone_in_with_semantic_ids(&self.properties, allocator),
710 }
711 }
712}
713
714impl<'new_alloc> CloneIn<'new_alloc> for ObjectPropertyKind<'_> {
715 type Cloned = ObjectPropertyKind<'new_alloc>;
716
717 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
718 match self {
719 Self::ObjectProperty(it) => {
720 ObjectPropertyKind::ObjectProperty(CloneIn::clone_in(it, allocator))
721 }
722 Self::SpreadProperty(it) => {
723 ObjectPropertyKind::SpreadProperty(CloneIn::clone_in(it, allocator))
724 }
725 }
726 }
727
728 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
729 match self {
730 Self::ObjectProperty(it) => ObjectPropertyKind::ObjectProperty(
731 CloneIn::clone_in_with_semantic_ids(it, allocator),
732 ),
733 Self::SpreadProperty(it) => ObjectPropertyKind::SpreadProperty(
734 CloneIn::clone_in_with_semantic_ids(it, allocator),
735 ),
736 }
737 }
738}
739
740impl<'new_alloc> CloneIn<'new_alloc> for ObjectProperty<'_> {
741 type Cloned = ObjectProperty<'new_alloc>;
742
743 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
744 ObjectProperty {
745 span: CloneIn::clone_in(&self.span, allocator),
746 kind: CloneIn::clone_in(&self.kind, allocator),
747 key: CloneIn::clone_in(&self.key, allocator),
748 value: CloneIn::clone_in(&self.value, allocator),
749 method: CloneIn::clone_in(&self.method, allocator),
750 shorthand: CloneIn::clone_in(&self.shorthand, allocator),
751 computed: CloneIn::clone_in(&self.computed, allocator),
752 }
753 }
754
755 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
756 ObjectProperty {
757 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
758 kind: CloneIn::clone_in_with_semantic_ids(&self.kind, allocator),
759 key: CloneIn::clone_in_with_semantic_ids(&self.key, allocator),
760 value: CloneIn::clone_in_with_semantic_ids(&self.value, allocator),
761 method: CloneIn::clone_in_with_semantic_ids(&self.method, allocator),
762 shorthand: CloneIn::clone_in_with_semantic_ids(&self.shorthand, allocator),
763 computed: CloneIn::clone_in_with_semantic_ids(&self.computed, allocator),
764 }
765 }
766}
767
768impl<'new_alloc> CloneIn<'new_alloc> for PropertyKey<'_> {
769 type Cloned = PropertyKey<'new_alloc>;
770
771 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
772 match self {
773 Self::StaticIdentifier(it) => {
774 PropertyKey::StaticIdentifier(CloneIn::clone_in(it, allocator))
775 }
776 Self::PrivateIdentifier(it) => {
777 PropertyKey::PrivateIdentifier(CloneIn::clone_in(it, allocator))
778 }
779 Self::BooleanLiteral(it) => {
780 PropertyKey::BooleanLiteral(CloneIn::clone_in(it, allocator))
781 }
782 Self::NullLiteral(it) => PropertyKey::NullLiteral(CloneIn::clone_in(it, allocator)),
783 Self::NumericLiteral(it) => {
784 PropertyKey::NumericLiteral(CloneIn::clone_in(it, allocator))
785 }
786 Self::BigIntLiteral(it) => PropertyKey::BigIntLiteral(CloneIn::clone_in(it, allocator)),
787 Self::RegExpLiteral(it) => PropertyKey::RegExpLiteral(CloneIn::clone_in(it, allocator)),
788 Self::StringLiteral(it) => PropertyKey::StringLiteral(CloneIn::clone_in(it, allocator)),
789 Self::TemplateLiteral(it) => {
790 PropertyKey::TemplateLiteral(CloneIn::clone_in(it, allocator))
791 }
792 Self::Identifier(it) => PropertyKey::Identifier(CloneIn::clone_in(it, allocator)),
793 Self::MetaProperty(it) => PropertyKey::MetaProperty(CloneIn::clone_in(it, allocator)),
794 Self::Super(it) => PropertyKey::Super(CloneIn::clone_in(it, allocator)),
795 Self::ArrayExpression(it) => {
796 PropertyKey::ArrayExpression(CloneIn::clone_in(it, allocator))
797 }
798 Self::ArrowFunctionExpression(it) => {
799 PropertyKey::ArrowFunctionExpression(CloneIn::clone_in(it, allocator))
800 }
801 Self::AssignmentExpression(it) => {
802 PropertyKey::AssignmentExpression(CloneIn::clone_in(it, allocator))
803 }
804 Self::AwaitExpression(it) => {
805 PropertyKey::AwaitExpression(CloneIn::clone_in(it, allocator))
806 }
807 Self::BinaryExpression(it) => {
808 PropertyKey::BinaryExpression(CloneIn::clone_in(it, allocator))
809 }
810 Self::CallExpression(it) => {
811 PropertyKey::CallExpression(CloneIn::clone_in(it, allocator))
812 }
813 Self::ChainExpression(it) => {
814 PropertyKey::ChainExpression(CloneIn::clone_in(it, allocator))
815 }
816 Self::ClassExpression(it) => {
817 PropertyKey::ClassExpression(CloneIn::clone_in(it, allocator))
818 }
819 Self::ConditionalExpression(it) => {
820 PropertyKey::ConditionalExpression(CloneIn::clone_in(it, allocator))
821 }
822 Self::FunctionExpression(it) => {
823 PropertyKey::FunctionExpression(CloneIn::clone_in(it, allocator))
824 }
825 Self::ImportExpression(it) => {
826 PropertyKey::ImportExpression(CloneIn::clone_in(it, allocator))
827 }
828 Self::LogicalExpression(it) => {
829 PropertyKey::LogicalExpression(CloneIn::clone_in(it, allocator))
830 }
831 Self::NewExpression(it) => PropertyKey::NewExpression(CloneIn::clone_in(it, allocator)),
832 Self::ObjectExpression(it) => {
833 PropertyKey::ObjectExpression(CloneIn::clone_in(it, allocator))
834 }
835 Self::ParenthesizedExpression(it) => {
836 PropertyKey::ParenthesizedExpression(CloneIn::clone_in(it, allocator))
837 }
838 Self::SequenceExpression(it) => {
839 PropertyKey::SequenceExpression(CloneIn::clone_in(it, allocator))
840 }
841 Self::TaggedTemplateExpression(it) => {
842 PropertyKey::TaggedTemplateExpression(CloneIn::clone_in(it, allocator))
843 }
844 Self::ThisExpression(it) => {
845 PropertyKey::ThisExpression(CloneIn::clone_in(it, allocator))
846 }
847 Self::UnaryExpression(it) => {
848 PropertyKey::UnaryExpression(CloneIn::clone_in(it, allocator))
849 }
850 Self::UpdateExpression(it) => {
851 PropertyKey::UpdateExpression(CloneIn::clone_in(it, allocator))
852 }
853 Self::YieldExpression(it) => {
854 PropertyKey::YieldExpression(CloneIn::clone_in(it, allocator))
855 }
856 Self::PrivateInExpression(it) => {
857 PropertyKey::PrivateInExpression(CloneIn::clone_in(it, allocator))
858 }
859 Self::JSXElement(it) => PropertyKey::JSXElement(CloneIn::clone_in(it, allocator)),
860 Self::JSXFragment(it) => PropertyKey::JSXFragment(CloneIn::clone_in(it, allocator)),
861 Self::TSAsExpression(it) => {
862 PropertyKey::TSAsExpression(CloneIn::clone_in(it, allocator))
863 }
864 Self::TSSatisfiesExpression(it) => {
865 PropertyKey::TSSatisfiesExpression(CloneIn::clone_in(it, allocator))
866 }
867 Self::TSTypeAssertion(it) => {
868 PropertyKey::TSTypeAssertion(CloneIn::clone_in(it, allocator))
869 }
870 Self::TSNonNullExpression(it) => {
871 PropertyKey::TSNonNullExpression(CloneIn::clone_in(it, allocator))
872 }
873 Self::TSInstantiationExpression(it) => {
874 PropertyKey::TSInstantiationExpression(CloneIn::clone_in(it, allocator))
875 }
876 Self::V8IntrinsicExpression(it) => {
877 PropertyKey::V8IntrinsicExpression(CloneIn::clone_in(it, allocator))
878 }
879 Self::ComputedMemberExpression(it) => {
880 PropertyKey::ComputedMemberExpression(CloneIn::clone_in(it, allocator))
881 }
882 Self::StaticMemberExpression(it) => {
883 PropertyKey::StaticMemberExpression(CloneIn::clone_in(it, allocator))
884 }
885 Self::PrivateFieldExpression(it) => {
886 PropertyKey::PrivateFieldExpression(CloneIn::clone_in(it, allocator))
887 }
888 }
889 }
890
891 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
892 match self {
893 Self::StaticIdentifier(it) => {
894 PropertyKey::StaticIdentifier(CloneIn::clone_in_with_semantic_ids(it, allocator))
895 }
896 Self::PrivateIdentifier(it) => {
897 PropertyKey::PrivateIdentifier(CloneIn::clone_in_with_semantic_ids(it, allocator))
898 }
899 Self::BooleanLiteral(it) => {
900 PropertyKey::BooleanLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
901 }
902 Self::NullLiteral(it) => {
903 PropertyKey::NullLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
904 }
905 Self::NumericLiteral(it) => {
906 PropertyKey::NumericLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
907 }
908 Self::BigIntLiteral(it) => {
909 PropertyKey::BigIntLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
910 }
911 Self::RegExpLiteral(it) => {
912 PropertyKey::RegExpLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
913 }
914 Self::StringLiteral(it) => {
915 PropertyKey::StringLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
916 }
917 Self::TemplateLiteral(it) => {
918 PropertyKey::TemplateLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
919 }
920 Self::Identifier(it) => {
921 PropertyKey::Identifier(CloneIn::clone_in_with_semantic_ids(it, allocator))
922 }
923 Self::MetaProperty(it) => {
924 PropertyKey::MetaProperty(CloneIn::clone_in_with_semantic_ids(it, allocator))
925 }
926 Self::Super(it) => {
927 PropertyKey::Super(CloneIn::clone_in_with_semantic_ids(it, allocator))
928 }
929 Self::ArrayExpression(it) => {
930 PropertyKey::ArrayExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
931 }
932 Self::ArrowFunctionExpression(it) => PropertyKey::ArrowFunctionExpression(
933 CloneIn::clone_in_with_semantic_ids(it, allocator),
934 ),
935 Self::AssignmentExpression(it) => PropertyKey::AssignmentExpression(
936 CloneIn::clone_in_with_semantic_ids(it, allocator),
937 ),
938 Self::AwaitExpression(it) => {
939 PropertyKey::AwaitExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
940 }
941 Self::BinaryExpression(it) => {
942 PropertyKey::BinaryExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
943 }
944 Self::CallExpression(it) => {
945 PropertyKey::CallExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
946 }
947 Self::ChainExpression(it) => {
948 PropertyKey::ChainExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
949 }
950 Self::ClassExpression(it) => {
951 PropertyKey::ClassExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
952 }
953 Self::ConditionalExpression(it) => PropertyKey::ConditionalExpression(
954 CloneIn::clone_in_with_semantic_ids(it, allocator),
955 ),
956 Self::FunctionExpression(it) => {
957 PropertyKey::FunctionExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
958 }
959 Self::ImportExpression(it) => {
960 PropertyKey::ImportExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
961 }
962 Self::LogicalExpression(it) => {
963 PropertyKey::LogicalExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
964 }
965 Self::NewExpression(it) => {
966 PropertyKey::NewExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
967 }
968 Self::ObjectExpression(it) => {
969 PropertyKey::ObjectExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
970 }
971 Self::ParenthesizedExpression(it) => PropertyKey::ParenthesizedExpression(
972 CloneIn::clone_in_with_semantic_ids(it, allocator),
973 ),
974 Self::SequenceExpression(it) => {
975 PropertyKey::SequenceExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
976 }
977 Self::TaggedTemplateExpression(it) => PropertyKey::TaggedTemplateExpression(
978 CloneIn::clone_in_with_semantic_ids(it, allocator),
979 ),
980 Self::ThisExpression(it) => {
981 PropertyKey::ThisExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
982 }
983 Self::UnaryExpression(it) => {
984 PropertyKey::UnaryExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
985 }
986 Self::UpdateExpression(it) => {
987 PropertyKey::UpdateExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
988 }
989 Self::YieldExpression(it) => {
990 PropertyKey::YieldExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
991 }
992 Self::PrivateInExpression(it) => {
993 PropertyKey::PrivateInExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
994 }
995 Self::JSXElement(it) => {
996 PropertyKey::JSXElement(CloneIn::clone_in_with_semantic_ids(it, allocator))
997 }
998 Self::JSXFragment(it) => {
999 PropertyKey::JSXFragment(CloneIn::clone_in_with_semantic_ids(it, allocator))
1000 }
1001 Self::TSAsExpression(it) => {
1002 PropertyKey::TSAsExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1003 }
1004 Self::TSSatisfiesExpression(it) => PropertyKey::TSSatisfiesExpression(
1005 CloneIn::clone_in_with_semantic_ids(it, allocator),
1006 ),
1007 Self::TSTypeAssertion(it) => {
1008 PropertyKey::TSTypeAssertion(CloneIn::clone_in_with_semantic_ids(it, allocator))
1009 }
1010 Self::TSNonNullExpression(it) => {
1011 PropertyKey::TSNonNullExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1012 }
1013 Self::TSInstantiationExpression(it) => PropertyKey::TSInstantiationExpression(
1014 CloneIn::clone_in_with_semantic_ids(it, allocator),
1015 ),
1016 Self::V8IntrinsicExpression(it) => PropertyKey::V8IntrinsicExpression(
1017 CloneIn::clone_in_with_semantic_ids(it, allocator),
1018 ),
1019 Self::ComputedMemberExpression(it) => PropertyKey::ComputedMemberExpression(
1020 CloneIn::clone_in_with_semantic_ids(it, allocator),
1021 ),
1022 Self::StaticMemberExpression(it) => PropertyKey::StaticMemberExpression(
1023 CloneIn::clone_in_with_semantic_ids(it, allocator),
1024 ),
1025 Self::PrivateFieldExpression(it) => PropertyKey::PrivateFieldExpression(
1026 CloneIn::clone_in_with_semantic_ids(it, allocator),
1027 ),
1028 }
1029 }
1030}
1031
1032impl<'new_alloc> CloneIn<'new_alloc> for PropertyKind {
1033 type Cloned = PropertyKind;
1034
1035 #[inline(always)]
1036 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1037 *self
1038 }
1039
1040 #[inline(always)]
1041 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1042 *self
1043 }
1044}
1045
1046impl<'new_alloc> CloneIn<'new_alloc> for TemplateLiteral<'_> {
1047 type Cloned = TemplateLiteral<'new_alloc>;
1048
1049 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1050 TemplateLiteral {
1051 span: CloneIn::clone_in(&self.span, allocator),
1052 quasis: CloneIn::clone_in(&self.quasis, allocator),
1053 expressions: CloneIn::clone_in(&self.expressions, allocator),
1054 }
1055 }
1056
1057 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1058 TemplateLiteral {
1059 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1060 quasis: CloneIn::clone_in_with_semantic_ids(&self.quasis, allocator),
1061 expressions: CloneIn::clone_in_with_semantic_ids(&self.expressions, allocator),
1062 }
1063 }
1064}
1065
1066impl<'new_alloc> CloneIn<'new_alloc> for TaggedTemplateExpression<'_> {
1067 type Cloned = TaggedTemplateExpression<'new_alloc>;
1068
1069 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1070 TaggedTemplateExpression {
1071 span: CloneIn::clone_in(&self.span, allocator),
1072 tag: CloneIn::clone_in(&self.tag, allocator),
1073 type_arguments: CloneIn::clone_in(&self.type_arguments, allocator),
1074 quasi: CloneIn::clone_in(&self.quasi, allocator),
1075 }
1076 }
1077
1078 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1079 TaggedTemplateExpression {
1080 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1081 tag: CloneIn::clone_in_with_semantic_ids(&self.tag, allocator),
1082 type_arguments: CloneIn::clone_in_with_semantic_ids(&self.type_arguments, allocator),
1083 quasi: CloneIn::clone_in_with_semantic_ids(&self.quasi, allocator),
1084 }
1085 }
1086}
1087
1088impl<'new_alloc> CloneIn<'new_alloc> for TemplateElement<'_> {
1089 type Cloned = TemplateElement<'new_alloc>;
1090
1091 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1092 TemplateElement {
1093 span: CloneIn::clone_in(&self.span, allocator),
1094 value: CloneIn::clone_in(&self.value, allocator),
1095 tail: CloneIn::clone_in(&self.tail, allocator),
1096 lone_surrogates: CloneIn::clone_in(&self.lone_surrogates, allocator),
1097 }
1098 }
1099
1100 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1101 TemplateElement {
1102 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1103 value: CloneIn::clone_in_with_semantic_ids(&self.value, allocator),
1104 tail: CloneIn::clone_in_with_semantic_ids(&self.tail, allocator),
1105 lone_surrogates: CloneIn::clone_in_with_semantic_ids(&self.lone_surrogates, allocator),
1106 }
1107 }
1108}
1109
1110impl<'new_alloc> CloneIn<'new_alloc> for TemplateElementValue<'_> {
1111 type Cloned = TemplateElementValue<'new_alloc>;
1112
1113 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1114 TemplateElementValue {
1115 raw: CloneIn::clone_in(&self.raw, allocator),
1116 cooked: CloneIn::clone_in(&self.cooked, allocator),
1117 }
1118 }
1119
1120 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1121 TemplateElementValue {
1122 raw: CloneIn::clone_in_with_semantic_ids(&self.raw, allocator),
1123 cooked: CloneIn::clone_in_with_semantic_ids(&self.cooked, allocator),
1124 }
1125 }
1126}
1127
1128impl<'new_alloc> CloneIn<'new_alloc> for MemberExpression<'_> {
1129 type Cloned = MemberExpression<'new_alloc>;
1130
1131 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1132 match self {
1133 Self::ComputedMemberExpression(it) => {
1134 MemberExpression::ComputedMemberExpression(CloneIn::clone_in(it, allocator))
1135 }
1136 Self::StaticMemberExpression(it) => {
1137 MemberExpression::StaticMemberExpression(CloneIn::clone_in(it, allocator))
1138 }
1139 Self::PrivateFieldExpression(it) => {
1140 MemberExpression::PrivateFieldExpression(CloneIn::clone_in(it, allocator))
1141 }
1142 }
1143 }
1144
1145 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1146 match self {
1147 Self::ComputedMemberExpression(it) => MemberExpression::ComputedMemberExpression(
1148 CloneIn::clone_in_with_semantic_ids(it, allocator),
1149 ),
1150 Self::StaticMemberExpression(it) => MemberExpression::StaticMemberExpression(
1151 CloneIn::clone_in_with_semantic_ids(it, allocator),
1152 ),
1153 Self::PrivateFieldExpression(it) => MemberExpression::PrivateFieldExpression(
1154 CloneIn::clone_in_with_semantic_ids(it, allocator),
1155 ),
1156 }
1157 }
1158}
1159
1160impl<'new_alloc> CloneIn<'new_alloc> for ComputedMemberExpression<'_> {
1161 type Cloned = ComputedMemberExpression<'new_alloc>;
1162
1163 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1164 ComputedMemberExpression {
1165 span: CloneIn::clone_in(&self.span, allocator),
1166 object: CloneIn::clone_in(&self.object, allocator),
1167 expression: CloneIn::clone_in(&self.expression, allocator),
1168 optional: CloneIn::clone_in(&self.optional, allocator),
1169 }
1170 }
1171
1172 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1173 ComputedMemberExpression {
1174 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1175 object: CloneIn::clone_in_with_semantic_ids(&self.object, allocator),
1176 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
1177 optional: CloneIn::clone_in_with_semantic_ids(&self.optional, allocator),
1178 }
1179 }
1180}
1181
1182impl<'new_alloc> CloneIn<'new_alloc> for StaticMemberExpression<'_> {
1183 type Cloned = StaticMemberExpression<'new_alloc>;
1184
1185 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1186 StaticMemberExpression {
1187 span: CloneIn::clone_in(&self.span, allocator),
1188 object: CloneIn::clone_in(&self.object, allocator),
1189 property: CloneIn::clone_in(&self.property, allocator),
1190 optional: CloneIn::clone_in(&self.optional, allocator),
1191 }
1192 }
1193
1194 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1195 StaticMemberExpression {
1196 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1197 object: CloneIn::clone_in_with_semantic_ids(&self.object, allocator),
1198 property: CloneIn::clone_in_with_semantic_ids(&self.property, allocator),
1199 optional: CloneIn::clone_in_with_semantic_ids(&self.optional, allocator),
1200 }
1201 }
1202}
1203
1204impl<'new_alloc> CloneIn<'new_alloc> for PrivateFieldExpression<'_> {
1205 type Cloned = PrivateFieldExpression<'new_alloc>;
1206
1207 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1208 PrivateFieldExpression {
1209 span: CloneIn::clone_in(&self.span, allocator),
1210 object: CloneIn::clone_in(&self.object, allocator),
1211 field: CloneIn::clone_in(&self.field, allocator),
1212 optional: CloneIn::clone_in(&self.optional, allocator),
1213 }
1214 }
1215
1216 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1217 PrivateFieldExpression {
1218 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1219 object: CloneIn::clone_in_with_semantic_ids(&self.object, allocator),
1220 field: CloneIn::clone_in_with_semantic_ids(&self.field, allocator),
1221 optional: CloneIn::clone_in_with_semantic_ids(&self.optional, allocator),
1222 }
1223 }
1224}
1225
1226impl<'new_alloc> CloneIn<'new_alloc> for CallExpression<'_> {
1227 type Cloned = CallExpression<'new_alloc>;
1228
1229 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1230 CallExpression {
1231 span: CloneIn::clone_in(&self.span, allocator),
1232 callee: CloneIn::clone_in(&self.callee, allocator),
1233 type_arguments: CloneIn::clone_in(&self.type_arguments, allocator),
1234 arguments: CloneIn::clone_in(&self.arguments, allocator),
1235 optional: CloneIn::clone_in(&self.optional, allocator),
1236 pure: CloneIn::clone_in(&self.pure, allocator),
1237 }
1238 }
1239
1240 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1241 CallExpression {
1242 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1243 callee: CloneIn::clone_in_with_semantic_ids(&self.callee, allocator),
1244 type_arguments: CloneIn::clone_in_with_semantic_ids(&self.type_arguments, allocator),
1245 arguments: CloneIn::clone_in_with_semantic_ids(&self.arguments, allocator),
1246 optional: CloneIn::clone_in_with_semantic_ids(&self.optional, allocator),
1247 pure: CloneIn::clone_in_with_semantic_ids(&self.pure, allocator),
1248 }
1249 }
1250}
1251
1252impl<'new_alloc> CloneIn<'new_alloc> for NewExpression<'_> {
1253 type Cloned = NewExpression<'new_alloc>;
1254
1255 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1256 NewExpression {
1257 span: CloneIn::clone_in(&self.span, allocator),
1258 callee: CloneIn::clone_in(&self.callee, allocator),
1259 type_arguments: CloneIn::clone_in(&self.type_arguments, allocator),
1260 arguments: CloneIn::clone_in(&self.arguments, allocator),
1261 pure: CloneIn::clone_in(&self.pure, allocator),
1262 }
1263 }
1264
1265 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1266 NewExpression {
1267 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1268 callee: CloneIn::clone_in_with_semantic_ids(&self.callee, allocator),
1269 type_arguments: CloneIn::clone_in_with_semantic_ids(&self.type_arguments, allocator),
1270 arguments: CloneIn::clone_in_with_semantic_ids(&self.arguments, allocator),
1271 pure: CloneIn::clone_in_with_semantic_ids(&self.pure, allocator),
1272 }
1273 }
1274}
1275
1276impl<'new_alloc> CloneIn<'new_alloc> for MetaProperty<'_> {
1277 type Cloned = MetaProperty<'new_alloc>;
1278
1279 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1280 MetaProperty {
1281 span: CloneIn::clone_in(&self.span, allocator),
1282 meta: CloneIn::clone_in(&self.meta, allocator),
1283 property: CloneIn::clone_in(&self.property, allocator),
1284 }
1285 }
1286
1287 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1288 MetaProperty {
1289 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1290 meta: CloneIn::clone_in_with_semantic_ids(&self.meta, allocator),
1291 property: CloneIn::clone_in_with_semantic_ids(&self.property, allocator),
1292 }
1293 }
1294}
1295
1296impl<'new_alloc> CloneIn<'new_alloc> for SpreadElement<'_> {
1297 type Cloned = SpreadElement<'new_alloc>;
1298
1299 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1300 SpreadElement {
1301 span: CloneIn::clone_in(&self.span, allocator),
1302 argument: CloneIn::clone_in(&self.argument, allocator),
1303 }
1304 }
1305
1306 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1307 SpreadElement {
1308 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1309 argument: CloneIn::clone_in_with_semantic_ids(&self.argument, allocator),
1310 }
1311 }
1312}
1313
1314impl<'new_alloc> CloneIn<'new_alloc> for Argument<'_> {
1315 type Cloned = Argument<'new_alloc>;
1316
1317 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1318 match self {
1319 Self::SpreadElement(it) => Argument::SpreadElement(CloneIn::clone_in(it, allocator)),
1320 Self::BooleanLiteral(it) => Argument::BooleanLiteral(CloneIn::clone_in(it, allocator)),
1321 Self::NullLiteral(it) => Argument::NullLiteral(CloneIn::clone_in(it, allocator)),
1322 Self::NumericLiteral(it) => Argument::NumericLiteral(CloneIn::clone_in(it, allocator)),
1323 Self::BigIntLiteral(it) => Argument::BigIntLiteral(CloneIn::clone_in(it, allocator)),
1324 Self::RegExpLiteral(it) => Argument::RegExpLiteral(CloneIn::clone_in(it, allocator)),
1325 Self::StringLiteral(it) => Argument::StringLiteral(CloneIn::clone_in(it, allocator)),
1326 Self::TemplateLiteral(it) => {
1327 Argument::TemplateLiteral(CloneIn::clone_in(it, allocator))
1328 }
1329 Self::Identifier(it) => Argument::Identifier(CloneIn::clone_in(it, allocator)),
1330 Self::MetaProperty(it) => Argument::MetaProperty(CloneIn::clone_in(it, allocator)),
1331 Self::Super(it) => Argument::Super(CloneIn::clone_in(it, allocator)),
1332 Self::ArrayExpression(it) => {
1333 Argument::ArrayExpression(CloneIn::clone_in(it, allocator))
1334 }
1335 Self::ArrowFunctionExpression(it) => {
1336 Argument::ArrowFunctionExpression(CloneIn::clone_in(it, allocator))
1337 }
1338 Self::AssignmentExpression(it) => {
1339 Argument::AssignmentExpression(CloneIn::clone_in(it, allocator))
1340 }
1341 Self::AwaitExpression(it) => {
1342 Argument::AwaitExpression(CloneIn::clone_in(it, allocator))
1343 }
1344 Self::BinaryExpression(it) => {
1345 Argument::BinaryExpression(CloneIn::clone_in(it, allocator))
1346 }
1347 Self::CallExpression(it) => Argument::CallExpression(CloneIn::clone_in(it, allocator)),
1348 Self::ChainExpression(it) => {
1349 Argument::ChainExpression(CloneIn::clone_in(it, allocator))
1350 }
1351 Self::ClassExpression(it) => {
1352 Argument::ClassExpression(CloneIn::clone_in(it, allocator))
1353 }
1354 Self::ConditionalExpression(it) => {
1355 Argument::ConditionalExpression(CloneIn::clone_in(it, allocator))
1356 }
1357 Self::FunctionExpression(it) => {
1358 Argument::FunctionExpression(CloneIn::clone_in(it, allocator))
1359 }
1360 Self::ImportExpression(it) => {
1361 Argument::ImportExpression(CloneIn::clone_in(it, allocator))
1362 }
1363 Self::LogicalExpression(it) => {
1364 Argument::LogicalExpression(CloneIn::clone_in(it, allocator))
1365 }
1366 Self::NewExpression(it) => Argument::NewExpression(CloneIn::clone_in(it, allocator)),
1367 Self::ObjectExpression(it) => {
1368 Argument::ObjectExpression(CloneIn::clone_in(it, allocator))
1369 }
1370 Self::ParenthesizedExpression(it) => {
1371 Argument::ParenthesizedExpression(CloneIn::clone_in(it, allocator))
1372 }
1373 Self::SequenceExpression(it) => {
1374 Argument::SequenceExpression(CloneIn::clone_in(it, allocator))
1375 }
1376 Self::TaggedTemplateExpression(it) => {
1377 Argument::TaggedTemplateExpression(CloneIn::clone_in(it, allocator))
1378 }
1379 Self::ThisExpression(it) => Argument::ThisExpression(CloneIn::clone_in(it, allocator)),
1380 Self::UnaryExpression(it) => {
1381 Argument::UnaryExpression(CloneIn::clone_in(it, allocator))
1382 }
1383 Self::UpdateExpression(it) => {
1384 Argument::UpdateExpression(CloneIn::clone_in(it, allocator))
1385 }
1386 Self::YieldExpression(it) => {
1387 Argument::YieldExpression(CloneIn::clone_in(it, allocator))
1388 }
1389 Self::PrivateInExpression(it) => {
1390 Argument::PrivateInExpression(CloneIn::clone_in(it, allocator))
1391 }
1392 Self::JSXElement(it) => Argument::JSXElement(CloneIn::clone_in(it, allocator)),
1393 Self::JSXFragment(it) => Argument::JSXFragment(CloneIn::clone_in(it, allocator)),
1394 Self::TSAsExpression(it) => Argument::TSAsExpression(CloneIn::clone_in(it, allocator)),
1395 Self::TSSatisfiesExpression(it) => {
1396 Argument::TSSatisfiesExpression(CloneIn::clone_in(it, allocator))
1397 }
1398 Self::TSTypeAssertion(it) => {
1399 Argument::TSTypeAssertion(CloneIn::clone_in(it, allocator))
1400 }
1401 Self::TSNonNullExpression(it) => {
1402 Argument::TSNonNullExpression(CloneIn::clone_in(it, allocator))
1403 }
1404 Self::TSInstantiationExpression(it) => {
1405 Argument::TSInstantiationExpression(CloneIn::clone_in(it, allocator))
1406 }
1407 Self::V8IntrinsicExpression(it) => {
1408 Argument::V8IntrinsicExpression(CloneIn::clone_in(it, allocator))
1409 }
1410 Self::ComputedMemberExpression(it) => {
1411 Argument::ComputedMemberExpression(CloneIn::clone_in(it, allocator))
1412 }
1413 Self::StaticMemberExpression(it) => {
1414 Argument::StaticMemberExpression(CloneIn::clone_in(it, allocator))
1415 }
1416 Self::PrivateFieldExpression(it) => {
1417 Argument::PrivateFieldExpression(CloneIn::clone_in(it, allocator))
1418 }
1419 }
1420 }
1421
1422 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1423 match self {
1424 Self::SpreadElement(it) => {
1425 Argument::SpreadElement(CloneIn::clone_in_with_semantic_ids(it, allocator))
1426 }
1427 Self::BooleanLiteral(it) => {
1428 Argument::BooleanLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
1429 }
1430 Self::NullLiteral(it) => {
1431 Argument::NullLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
1432 }
1433 Self::NumericLiteral(it) => {
1434 Argument::NumericLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
1435 }
1436 Self::BigIntLiteral(it) => {
1437 Argument::BigIntLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
1438 }
1439 Self::RegExpLiteral(it) => {
1440 Argument::RegExpLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
1441 }
1442 Self::StringLiteral(it) => {
1443 Argument::StringLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
1444 }
1445 Self::TemplateLiteral(it) => {
1446 Argument::TemplateLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
1447 }
1448 Self::Identifier(it) => {
1449 Argument::Identifier(CloneIn::clone_in_with_semantic_ids(it, allocator))
1450 }
1451 Self::MetaProperty(it) => {
1452 Argument::MetaProperty(CloneIn::clone_in_with_semantic_ids(it, allocator))
1453 }
1454 Self::Super(it) => Argument::Super(CloneIn::clone_in_with_semantic_ids(it, allocator)),
1455 Self::ArrayExpression(it) => {
1456 Argument::ArrayExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1457 }
1458 Self::ArrowFunctionExpression(it) => Argument::ArrowFunctionExpression(
1459 CloneIn::clone_in_with_semantic_ids(it, allocator),
1460 ),
1461 Self::AssignmentExpression(it) => {
1462 Argument::AssignmentExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1463 }
1464 Self::AwaitExpression(it) => {
1465 Argument::AwaitExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1466 }
1467 Self::BinaryExpression(it) => {
1468 Argument::BinaryExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1469 }
1470 Self::CallExpression(it) => {
1471 Argument::CallExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1472 }
1473 Self::ChainExpression(it) => {
1474 Argument::ChainExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1475 }
1476 Self::ClassExpression(it) => {
1477 Argument::ClassExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1478 }
1479 Self::ConditionalExpression(it) => {
1480 Argument::ConditionalExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1481 }
1482 Self::FunctionExpression(it) => {
1483 Argument::FunctionExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1484 }
1485 Self::ImportExpression(it) => {
1486 Argument::ImportExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1487 }
1488 Self::LogicalExpression(it) => {
1489 Argument::LogicalExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1490 }
1491 Self::NewExpression(it) => {
1492 Argument::NewExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1493 }
1494 Self::ObjectExpression(it) => {
1495 Argument::ObjectExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1496 }
1497 Self::ParenthesizedExpression(it) => Argument::ParenthesizedExpression(
1498 CloneIn::clone_in_with_semantic_ids(it, allocator),
1499 ),
1500 Self::SequenceExpression(it) => {
1501 Argument::SequenceExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1502 }
1503 Self::TaggedTemplateExpression(it) => Argument::TaggedTemplateExpression(
1504 CloneIn::clone_in_with_semantic_ids(it, allocator),
1505 ),
1506 Self::ThisExpression(it) => {
1507 Argument::ThisExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1508 }
1509 Self::UnaryExpression(it) => {
1510 Argument::UnaryExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1511 }
1512 Self::UpdateExpression(it) => {
1513 Argument::UpdateExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1514 }
1515 Self::YieldExpression(it) => {
1516 Argument::YieldExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1517 }
1518 Self::PrivateInExpression(it) => {
1519 Argument::PrivateInExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1520 }
1521 Self::JSXElement(it) => {
1522 Argument::JSXElement(CloneIn::clone_in_with_semantic_ids(it, allocator))
1523 }
1524 Self::JSXFragment(it) => {
1525 Argument::JSXFragment(CloneIn::clone_in_with_semantic_ids(it, allocator))
1526 }
1527 Self::TSAsExpression(it) => {
1528 Argument::TSAsExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1529 }
1530 Self::TSSatisfiesExpression(it) => {
1531 Argument::TSSatisfiesExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1532 }
1533 Self::TSTypeAssertion(it) => {
1534 Argument::TSTypeAssertion(CloneIn::clone_in_with_semantic_ids(it, allocator))
1535 }
1536 Self::TSNonNullExpression(it) => {
1537 Argument::TSNonNullExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1538 }
1539 Self::TSInstantiationExpression(it) => Argument::TSInstantiationExpression(
1540 CloneIn::clone_in_with_semantic_ids(it, allocator),
1541 ),
1542 Self::V8IntrinsicExpression(it) => {
1543 Argument::V8IntrinsicExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1544 }
1545 Self::ComputedMemberExpression(it) => Argument::ComputedMemberExpression(
1546 CloneIn::clone_in_with_semantic_ids(it, allocator),
1547 ),
1548 Self::StaticMemberExpression(it) => {
1549 Argument::StaticMemberExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1550 }
1551 Self::PrivateFieldExpression(it) => {
1552 Argument::PrivateFieldExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1553 }
1554 }
1555 }
1556}
1557
1558impl<'new_alloc> CloneIn<'new_alloc> for UpdateExpression<'_> {
1559 type Cloned = UpdateExpression<'new_alloc>;
1560
1561 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1562 UpdateExpression {
1563 span: CloneIn::clone_in(&self.span, allocator),
1564 operator: CloneIn::clone_in(&self.operator, allocator),
1565 prefix: CloneIn::clone_in(&self.prefix, allocator),
1566 argument: CloneIn::clone_in(&self.argument, allocator),
1567 }
1568 }
1569
1570 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1571 UpdateExpression {
1572 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1573 operator: CloneIn::clone_in_with_semantic_ids(&self.operator, allocator),
1574 prefix: CloneIn::clone_in_with_semantic_ids(&self.prefix, allocator),
1575 argument: CloneIn::clone_in_with_semantic_ids(&self.argument, allocator),
1576 }
1577 }
1578}
1579
1580impl<'new_alloc> CloneIn<'new_alloc> for UnaryExpression<'_> {
1581 type Cloned = UnaryExpression<'new_alloc>;
1582
1583 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1584 UnaryExpression {
1585 span: CloneIn::clone_in(&self.span, allocator),
1586 operator: CloneIn::clone_in(&self.operator, allocator),
1587 argument: CloneIn::clone_in(&self.argument, allocator),
1588 }
1589 }
1590
1591 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1592 UnaryExpression {
1593 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1594 operator: CloneIn::clone_in_with_semantic_ids(&self.operator, allocator),
1595 argument: CloneIn::clone_in_with_semantic_ids(&self.argument, allocator),
1596 }
1597 }
1598}
1599
1600impl<'new_alloc> CloneIn<'new_alloc> for BinaryExpression<'_> {
1601 type Cloned = BinaryExpression<'new_alloc>;
1602
1603 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1604 BinaryExpression {
1605 span: CloneIn::clone_in(&self.span, allocator),
1606 left: CloneIn::clone_in(&self.left, allocator),
1607 operator: CloneIn::clone_in(&self.operator, allocator),
1608 right: CloneIn::clone_in(&self.right, allocator),
1609 }
1610 }
1611
1612 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1613 BinaryExpression {
1614 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1615 left: CloneIn::clone_in_with_semantic_ids(&self.left, allocator),
1616 operator: CloneIn::clone_in_with_semantic_ids(&self.operator, allocator),
1617 right: CloneIn::clone_in_with_semantic_ids(&self.right, allocator),
1618 }
1619 }
1620}
1621
1622impl<'new_alloc> CloneIn<'new_alloc> for PrivateInExpression<'_> {
1623 type Cloned = PrivateInExpression<'new_alloc>;
1624
1625 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1626 PrivateInExpression {
1627 span: CloneIn::clone_in(&self.span, allocator),
1628 left: CloneIn::clone_in(&self.left, allocator),
1629 right: CloneIn::clone_in(&self.right, allocator),
1630 }
1631 }
1632
1633 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1634 PrivateInExpression {
1635 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1636 left: CloneIn::clone_in_with_semantic_ids(&self.left, allocator),
1637 right: CloneIn::clone_in_with_semantic_ids(&self.right, allocator),
1638 }
1639 }
1640}
1641
1642impl<'new_alloc> CloneIn<'new_alloc> for LogicalExpression<'_> {
1643 type Cloned = LogicalExpression<'new_alloc>;
1644
1645 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1646 LogicalExpression {
1647 span: CloneIn::clone_in(&self.span, allocator),
1648 left: CloneIn::clone_in(&self.left, allocator),
1649 operator: CloneIn::clone_in(&self.operator, allocator),
1650 right: CloneIn::clone_in(&self.right, allocator),
1651 }
1652 }
1653
1654 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1655 LogicalExpression {
1656 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1657 left: CloneIn::clone_in_with_semantic_ids(&self.left, allocator),
1658 operator: CloneIn::clone_in_with_semantic_ids(&self.operator, allocator),
1659 right: CloneIn::clone_in_with_semantic_ids(&self.right, allocator),
1660 }
1661 }
1662}
1663
1664impl<'new_alloc> CloneIn<'new_alloc> for ConditionalExpression<'_> {
1665 type Cloned = ConditionalExpression<'new_alloc>;
1666
1667 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1668 ConditionalExpression {
1669 span: CloneIn::clone_in(&self.span, allocator),
1670 test: CloneIn::clone_in(&self.test, allocator),
1671 consequent: CloneIn::clone_in(&self.consequent, allocator),
1672 alternate: CloneIn::clone_in(&self.alternate, allocator),
1673 }
1674 }
1675
1676 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1677 ConditionalExpression {
1678 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1679 test: CloneIn::clone_in_with_semantic_ids(&self.test, allocator),
1680 consequent: CloneIn::clone_in_with_semantic_ids(&self.consequent, allocator),
1681 alternate: CloneIn::clone_in_with_semantic_ids(&self.alternate, allocator),
1682 }
1683 }
1684}
1685
1686impl<'new_alloc> CloneIn<'new_alloc> for AssignmentExpression<'_> {
1687 type Cloned = AssignmentExpression<'new_alloc>;
1688
1689 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1690 AssignmentExpression {
1691 span: CloneIn::clone_in(&self.span, allocator),
1692 operator: CloneIn::clone_in(&self.operator, allocator),
1693 left: CloneIn::clone_in(&self.left, allocator),
1694 right: CloneIn::clone_in(&self.right, allocator),
1695 }
1696 }
1697
1698 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1699 AssignmentExpression {
1700 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1701 operator: CloneIn::clone_in_with_semantic_ids(&self.operator, allocator),
1702 left: CloneIn::clone_in_with_semantic_ids(&self.left, allocator),
1703 right: CloneIn::clone_in_with_semantic_ids(&self.right, allocator),
1704 }
1705 }
1706}
1707
1708impl<'new_alloc> CloneIn<'new_alloc> for AssignmentTarget<'_> {
1709 type Cloned = AssignmentTarget<'new_alloc>;
1710
1711 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1712 match self {
1713 Self::AssignmentTargetIdentifier(it) => {
1714 AssignmentTarget::AssignmentTargetIdentifier(CloneIn::clone_in(it, allocator))
1715 }
1716 Self::TSAsExpression(it) => {
1717 AssignmentTarget::TSAsExpression(CloneIn::clone_in(it, allocator))
1718 }
1719 Self::TSSatisfiesExpression(it) => {
1720 AssignmentTarget::TSSatisfiesExpression(CloneIn::clone_in(it, allocator))
1721 }
1722 Self::TSNonNullExpression(it) => {
1723 AssignmentTarget::TSNonNullExpression(CloneIn::clone_in(it, allocator))
1724 }
1725 Self::TSTypeAssertion(it) => {
1726 AssignmentTarget::TSTypeAssertion(CloneIn::clone_in(it, allocator))
1727 }
1728 Self::ComputedMemberExpression(it) => {
1729 AssignmentTarget::ComputedMemberExpression(CloneIn::clone_in(it, allocator))
1730 }
1731 Self::StaticMemberExpression(it) => {
1732 AssignmentTarget::StaticMemberExpression(CloneIn::clone_in(it, allocator))
1733 }
1734 Self::PrivateFieldExpression(it) => {
1735 AssignmentTarget::PrivateFieldExpression(CloneIn::clone_in(it, allocator))
1736 }
1737 Self::ArrayAssignmentTarget(it) => {
1738 AssignmentTarget::ArrayAssignmentTarget(CloneIn::clone_in(it, allocator))
1739 }
1740 Self::ObjectAssignmentTarget(it) => {
1741 AssignmentTarget::ObjectAssignmentTarget(CloneIn::clone_in(it, allocator))
1742 }
1743 }
1744 }
1745
1746 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1747 match self {
1748 Self::AssignmentTargetIdentifier(it) => AssignmentTarget::AssignmentTargetIdentifier(
1749 CloneIn::clone_in_with_semantic_ids(it, allocator),
1750 ),
1751 Self::TSAsExpression(it) => {
1752 AssignmentTarget::TSAsExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
1753 }
1754 Self::TSSatisfiesExpression(it) => AssignmentTarget::TSSatisfiesExpression(
1755 CloneIn::clone_in_with_semantic_ids(it, allocator),
1756 ),
1757 Self::TSNonNullExpression(it) => AssignmentTarget::TSNonNullExpression(
1758 CloneIn::clone_in_with_semantic_ids(it, allocator),
1759 ),
1760 Self::TSTypeAssertion(it) => AssignmentTarget::TSTypeAssertion(
1761 CloneIn::clone_in_with_semantic_ids(it, allocator),
1762 ),
1763 Self::ComputedMemberExpression(it) => AssignmentTarget::ComputedMemberExpression(
1764 CloneIn::clone_in_with_semantic_ids(it, allocator),
1765 ),
1766 Self::StaticMemberExpression(it) => AssignmentTarget::StaticMemberExpression(
1767 CloneIn::clone_in_with_semantic_ids(it, allocator),
1768 ),
1769 Self::PrivateFieldExpression(it) => AssignmentTarget::PrivateFieldExpression(
1770 CloneIn::clone_in_with_semantic_ids(it, allocator),
1771 ),
1772 Self::ArrayAssignmentTarget(it) => AssignmentTarget::ArrayAssignmentTarget(
1773 CloneIn::clone_in_with_semantic_ids(it, allocator),
1774 ),
1775 Self::ObjectAssignmentTarget(it) => AssignmentTarget::ObjectAssignmentTarget(
1776 CloneIn::clone_in_with_semantic_ids(it, allocator),
1777 ),
1778 }
1779 }
1780}
1781
1782impl<'new_alloc> CloneIn<'new_alloc> for SimpleAssignmentTarget<'_> {
1783 type Cloned = SimpleAssignmentTarget<'new_alloc>;
1784
1785 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1786 match self {
1787 Self::AssignmentTargetIdentifier(it) => {
1788 SimpleAssignmentTarget::AssignmentTargetIdentifier(CloneIn::clone_in(it, allocator))
1789 }
1790 Self::TSAsExpression(it) => {
1791 SimpleAssignmentTarget::TSAsExpression(CloneIn::clone_in(it, allocator))
1792 }
1793 Self::TSSatisfiesExpression(it) => {
1794 SimpleAssignmentTarget::TSSatisfiesExpression(CloneIn::clone_in(it, allocator))
1795 }
1796 Self::TSNonNullExpression(it) => {
1797 SimpleAssignmentTarget::TSNonNullExpression(CloneIn::clone_in(it, allocator))
1798 }
1799 Self::TSTypeAssertion(it) => {
1800 SimpleAssignmentTarget::TSTypeAssertion(CloneIn::clone_in(it, allocator))
1801 }
1802 Self::ComputedMemberExpression(it) => {
1803 SimpleAssignmentTarget::ComputedMemberExpression(CloneIn::clone_in(it, allocator))
1804 }
1805 Self::StaticMemberExpression(it) => {
1806 SimpleAssignmentTarget::StaticMemberExpression(CloneIn::clone_in(it, allocator))
1807 }
1808 Self::PrivateFieldExpression(it) => {
1809 SimpleAssignmentTarget::PrivateFieldExpression(CloneIn::clone_in(it, allocator))
1810 }
1811 }
1812 }
1813
1814 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1815 match self {
1816 Self::AssignmentTargetIdentifier(it) => {
1817 SimpleAssignmentTarget::AssignmentTargetIdentifier(
1818 CloneIn::clone_in_with_semantic_ids(it, allocator),
1819 )
1820 }
1821 Self::TSAsExpression(it) => SimpleAssignmentTarget::TSAsExpression(
1822 CloneIn::clone_in_with_semantic_ids(it, allocator),
1823 ),
1824 Self::TSSatisfiesExpression(it) => SimpleAssignmentTarget::TSSatisfiesExpression(
1825 CloneIn::clone_in_with_semantic_ids(it, allocator),
1826 ),
1827 Self::TSNonNullExpression(it) => SimpleAssignmentTarget::TSNonNullExpression(
1828 CloneIn::clone_in_with_semantic_ids(it, allocator),
1829 ),
1830 Self::TSTypeAssertion(it) => SimpleAssignmentTarget::TSTypeAssertion(
1831 CloneIn::clone_in_with_semantic_ids(it, allocator),
1832 ),
1833 Self::ComputedMemberExpression(it) => SimpleAssignmentTarget::ComputedMemberExpression(
1834 CloneIn::clone_in_with_semantic_ids(it, allocator),
1835 ),
1836 Self::StaticMemberExpression(it) => SimpleAssignmentTarget::StaticMemberExpression(
1837 CloneIn::clone_in_with_semantic_ids(it, allocator),
1838 ),
1839 Self::PrivateFieldExpression(it) => SimpleAssignmentTarget::PrivateFieldExpression(
1840 CloneIn::clone_in_with_semantic_ids(it, allocator),
1841 ),
1842 }
1843 }
1844}
1845
1846impl<'new_alloc> CloneIn<'new_alloc> for AssignmentTargetPattern<'_> {
1847 type Cloned = AssignmentTargetPattern<'new_alloc>;
1848
1849 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1850 match self {
1851 Self::ArrayAssignmentTarget(it) => {
1852 AssignmentTargetPattern::ArrayAssignmentTarget(CloneIn::clone_in(it, allocator))
1853 }
1854 Self::ObjectAssignmentTarget(it) => {
1855 AssignmentTargetPattern::ObjectAssignmentTarget(CloneIn::clone_in(it, allocator))
1856 }
1857 }
1858 }
1859
1860 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1861 match self {
1862 Self::ArrayAssignmentTarget(it) => AssignmentTargetPattern::ArrayAssignmentTarget(
1863 CloneIn::clone_in_with_semantic_ids(it, allocator),
1864 ),
1865 Self::ObjectAssignmentTarget(it) => AssignmentTargetPattern::ObjectAssignmentTarget(
1866 CloneIn::clone_in_with_semantic_ids(it, allocator),
1867 ),
1868 }
1869 }
1870}
1871
1872impl<'new_alloc> CloneIn<'new_alloc> for ArrayAssignmentTarget<'_> {
1873 type Cloned = ArrayAssignmentTarget<'new_alloc>;
1874
1875 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1876 ArrayAssignmentTarget {
1877 span: CloneIn::clone_in(&self.span, allocator),
1878 elements: CloneIn::clone_in(&self.elements, allocator),
1879 rest: CloneIn::clone_in(&self.rest, allocator),
1880 }
1881 }
1882
1883 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1884 ArrayAssignmentTarget {
1885 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1886 elements: CloneIn::clone_in_with_semantic_ids(&self.elements, allocator),
1887 rest: CloneIn::clone_in_with_semantic_ids(&self.rest, allocator),
1888 }
1889 }
1890}
1891
1892impl<'new_alloc> CloneIn<'new_alloc> for ObjectAssignmentTarget<'_> {
1893 type Cloned = ObjectAssignmentTarget<'new_alloc>;
1894
1895 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1896 ObjectAssignmentTarget {
1897 span: CloneIn::clone_in(&self.span, allocator),
1898 properties: CloneIn::clone_in(&self.properties, allocator),
1899 rest: CloneIn::clone_in(&self.rest, allocator),
1900 }
1901 }
1902
1903 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1904 ObjectAssignmentTarget {
1905 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1906 properties: CloneIn::clone_in_with_semantic_ids(&self.properties, allocator),
1907 rest: CloneIn::clone_in_with_semantic_ids(&self.rest, allocator),
1908 }
1909 }
1910}
1911
1912impl<'new_alloc> CloneIn<'new_alloc> for AssignmentTargetRest<'_> {
1913 type Cloned = AssignmentTargetRest<'new_alloc>;
1914
1915 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1916 AssignmentTargetRest {
1917 span: CloneIn::clone_in(&self.span, allocator),
1918 target: CloneIn::clone_in(&self.target, allocator),
1919 }
1920 }
1921
1922 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1923 AssignmentTargetRest {
1924 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
1925 target: CloneIn::clone_in_with_semantic_ids(&self.target, allocator),
1926 }
1927 }
1928}
1929
1930impl<'new_alloc> CloneIn<'new_alloc> for AssignmentTargetMaybeDefault<'_> {
1931 type Cloned = AssignmentTargetMaybeDefault<'new_alloc>;
1932
1933 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1934 match self {
1935 Self::AssignmentTargetWithDefault(it) => {
1936 AssignmentTargetMaybeDefault::AssignmentTargetWithDefault(CloneIn::clone_in(
1937 it, allocator,
1938 ))
1939 }
1940 Self::AssignmentTargetIdentifier(it) => {
1941 AssignmentTargetMaybeDefault::AssignmentTargetIdentifier(CloneIn::clone_in(
1942 it, allocator,
1943 ))
1944 }
1945 Self::TSAsExpression(it) => {
1946 AssignmentTargetMaybeDefault::TSAsExpression(CloneIn::clone_in(it, allocator))
1947 }
1948 Self::TSSatisfiesExpression(it) => AssignmentTargetMaybeDefault::TSSatisfiesExpression(
1949 CloneIn::clone_in(it, allocator),
1950 ),
1951 Self::TSNonNullExpression(it) => {
1952 AssignmentTargetMaybeDefault::TSNonNullExpression(CloneIn::clone_in(it, allocator))
1953 }
1954 Self::TSTypeAssertion(it) => {
1955 AssignmentTargetMaybeDefault::TSTypeAssertion(CloneIn::clone_in(it, allocator))
1956 }
1957 Self::ComputedMemberExpression(it) => {
1958 AssignmentTargetMaybeDefault::ComputedMemberExpression(CloneIn::clone_in(
1959 it, allocator,
1960 ))
1961 }
1962 Self::StaticMemberExpression(it) => {
1963 AssignmentTargetMaybeDefault::StaticMemberExpression(CloneIn::clone_in(
1964 it, allocator,
1965 ))
1966 }
1967 Self::PrivateFieldExpression(it) => {
1968 AssignmentTargetMaybeDefault::PrivateFieldExpression(CloneIn::clone_in(
1969 it, allocator,
1970 ))
1971 }
1972 Self::ArrayAssignmentTarget(it) => AssignmentTargetMaybeDefault::ArrayAssignmentTarget(
1973 CloneIn::clone_in(it, allocator),
1974 ),
1975 Self::ObjectAssignmentTarget(it) => {
1976 AssignmentTargetMaybeDefault::ObjectAssignmentTarget(CloneIn::clone_in(
1977 it, allocator,
1978 ))
1979 }
1980 }
1981 }
1982
1983 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
1984 match self {
1985 Self::AssignmentTargetWithDefault(it) => {
1986 AssignmentTargetMaybeDefault::AssignmentTargetWithDefault(
1987 CloneIn::clone_in_with_semantic_ids(it, allocator),
1988 )
1989 }
1990 Self::AssignmentTargetIdentifier(it) => {
1991 AssignmentTargetMaybeDefault::AssignmentTargetIdentifier(
1992 CloneIn::clone_in_with_semantic_ids(it, allocator),
1993 )
1994 }
1995 Self::TSAsExpression(it) => AssignmentTargetMaybeDefault::TSAsExpression(
1996 CloneIn::clone_in_with_semantic_ids(it, allocator),
1997 ),
1998 Self::TSSatisfiesExpression(it) => AssignmentTargetMaybeDefault::TSSatisfiesExpression(
1999 CloneIn::clone_in_with_semantic_ids(it, allocator),
2000 ),
2001 Self::TSNonNullExpression(it) => AssignmentTargetMaybeDefault::TSNonNullExpression(
2002 CloneIn::clone_in_with_semantic_ids(it, allocator),
2003 ),
2004 Self::TSTypeAssertion(it) => AssignmentTargetMaybeDefault::TSTypeAssertion(
2005 CloneIn::clone_in_with_semantic_ids(it, allocator),
2006 ),
2007 Self::ComputedMemberExpression(it) => {
2008 AssignmentTargetMaybeDefault::ComputedMemberExpression(
2009 CloneIn::clone_in_with_semantic_ids(it, allocator),
2010 )
2011 }
2012 Self::StaticMemberExpression(it) => {
2013 AssignmentTargetMaybeDefault::StaticMemberExpression(
2014 CloneIn::clone_in_with_semantic_ids(it, allocator),
2015 )
2016 }
2017 Self::PrivateFieldExpression(it) => {
2018 AssignmentTargetMaybeDefault::PrivateFieldExpression(
2019 CloneIn::clone_in_with_semantic_ids(it, allocator),
2020 )
2021 }
2022 Self::ArrayAssignmentTarget(it) => AssignmentTargetMaybeDefault::ArrayAssignmentTarget(
2023 CloneIn::clone_in_with_semantic_ids(it, allocator),
2024 ),
2025 Self::ObjectAssignmentTarget(it) => {
2026 AssignmentTargetMaybeDefault::ObjectAssignmentTarget(
2027 CloneIn::clone_in_with_semantic_ids(it, allocator),
2028 )
2029 }
2030 }
2031 }
2032}
2033
2034impl<'new_alloc> CloneIn<'new_alloc> for AssignmentTargetWithDefault<'_> {
2035 type Cloned = AssignmentTargetWithDefault<'new_alloc>;
2036
2037 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2038 AssignmentTargetWithDefault {
2039 span: CloneIn::clone_in(&self.span, allocator),
2040 binding: CloneIn::clone_in(&self.binding, allocator),
2041 init: CloneIn::clone_in(&self.init, allocator),
2042 }
2043 }
2044
2045 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2046 AssignmentTargetWithDefault {
2047 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
2048 binding: CloneIn::clone_in_with_semantic_ids(&self.binding, allocator),
2049 init: CloneIn::clone_in_with_semantic_ids(&self.init, allocator),
2050 }
2051 }
2052}
2053
2054impl<'new_alloc> CloneIn<'new_alloc> for AssignmentTargetProperty<'_> {
2055 type Cloned = AssignmentTargetProperty<'new_alloc>;
2056
2057 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2058 match self {
2059 Self::AssignmentTargetPropertyIdentifier(it) => {
2060 AssignmentTargetProperty::AssignmentTargetPropertyIdentifier(CloneIn::clone_in(
2061 it, allocator,
2062 ))
2063 }
2064 Self::AssignmentTargetPropertyProperty(it) => {
2065 AssignmentTargetProperty::AssignmentTargetPropertyProperty(CloneIn::clone_in(
2066 it, allocator,
2067 ))
2068 }
2069 }
2070 }
2071
2072 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2073 match self {
2074 Self::AssignmentTargetPropertyIdentifier(it) => {
2075 AssignmentTargetProperty::AssignmentTargetPropertyIdentifier(
2076 CloneIn::clone_in_with_semantic_ids(it, allocator),
2077 )
2078 }
2079 Self::AssignmentTargetPropertyProperty(it) => {
2080 AssignmentTargetProperty::AssignmentTargetPropertyProperty(
2081 CloneIn::clone_in_with_semantic_ids(it, allocator),
2082 )
2083 }
2084 }
2085 }
2086}
2087
2088impl<'new_alloc> CloneIn<'new_alloc> for AssignmentTargetPropertyIdentifier<'_> {
2089 type Cloned = AssignmentTargetPropertyIdentifier<'new_alloc>;
2090
2091 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2092 AssignmentTargetPropertyIdentifier {
2093 span: CloneIn::clone_in(&self.span, allocator),
2094 binding: CloneIn::clone_in(&self.binding, allocator),
2095 init: CloneIn::clone_in(&self.init, allocator),
2096 }
2097 }
2098
2099 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2100 AssignmentTargetPropertyIdentifier {
2101 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
2102 binding: CloneIn::clone_in_with_semantic_ids(&self.binding, allocator),
2103 init: CloneIn::clone_in_with_semantic_ids(&self.init, allocator),
2104 }
2105 }
2106}
2107
2108impl<'new_alloc> CloneIn<'new_alloc> for AssignmentTargetPropertyProperty<'_> {
2109 type Cloned = AssignmentTargetPropertyProperty<'new_alloc>;
2110
2111 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2112 AssignmentTargetPropertyProperty {
2113 span: CloneIn::clone_in(&self.span, allocator),
2114 name: CloneIn::clone_in(&self.name, allocator),
2115 binding: CloneIn::clone_in(&self.binding, allocator),
2116 computed: CloneIn::clone_in(&self.computed, allocator),
2117 }
2118 }
2119
2120 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2121 AssignmentTargetPropertyProperty {
2122 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
2123 name: CloneIn::clone_in_with_semantic_ids(&self.name, allocator),
2124 binding: CloneIn::clone_in_with_semantic_ids(&self.binding, allocator),
2125 computed: CloneIn::clone_in_with_semantic_ids(&self.computed, allocator),
2126 }
2127 }
2128}
2129
2130impl<'new_alloc> CloneIn<'new_alloc> for SequenceExpression<'_> {
2131 type Cloned = SequenceExpression<'new_alloc>;
2132
2133 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2134 SequenceExpression {
2135 span: CloneIn::clone_in(&self.span, allocator),
2136 expressions: CloneIn::clone_in(&self.expressions, allocator),
2137 }
2138 }
2139
2140 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2141 SequenceExpression {
2142 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
2143 expressions: CloneIn::clone_in_with_semantic_ids(&self.expressions, allocator),
2144 }
2145 }
2146}
2147
2148impl<'new_alloc> CloneIn<'new_alloc> for Super {
2149 type Cloned = Super;
2150
2151 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2152 Super { span: CloneIn::clone_in(&self.span, allocator) }
2153 }
2154
2155 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2156 Super { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
2157 }
2158}
2159
2160impl<'new_alloc> CloneIn<'new_alloc> for AwaitExpression<'_> {
2161 type Cloned = AwaitExpression<'new_alloc>;
2162
2163 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2164 AwaitExpression {
2165 span: CloneIn::clone_in(&self.span, allocator),
2166 argument: CloneIn::clone_in(&self.argument, allocator),
2167 }
2168 }
2169
2170 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2171 AwaitExpression {
2172 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
2173 argument: CloneIn::clone_in_with_semantic_ids(&self.argument, allocator),
2174 }
2175 }
2176}
2177
2178impl<'new_alloc> CloneIn<'new_alloc> for ChainExpression<'_> {
2179 type Cloned = ChainExpression<'new_alloc>;
2180
2181 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2182 ChainExpression {
2183 span: CloneIn::clone_in(&self.span, allocator),
2184 expression: CloneIn::clone_in(&self.expression, allocator),
2185 }
2186 }
2187
2188 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2189 ChainExpression {
2190 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
2191 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
2192 }
2193 }
2194}
2195
2196impl<'new_alloc> CloneIn<'new_alloc> for ChainElement<'_> {
2197 type Cloned = ChainElement<'new_alloc>;
2198
2199 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2200 match self {
2201 Self::CallExpression(it) => {
2202 ChainElement::CallExpression(CloneIn::clone_in(it, allocator))
2203 }
2204 Self::TSNonNullExpression(it) => {
2205 ChainElement::TSNonNullExpression(CloneIn::clone_in(it, allocator))
2206 }
2207 Self::ComputedMemberExpression(it) => {
2208 ChainElement::ComputedMemberExpression(CloneIn::clone_in(it, allocator))
2209 }
2210 Self::StaticMemberExpression(it) => {
2211 ChainElement::StaticMemberExpression(CloneIn::clone_in(it, allocator))
2212 }
2213 Self::PrivateFieldExpression(it) => {
2214 ChainElement::PrivateFieldExpression(CloneIn::clone_in(it, allocator))
2215 }
2216 }
2217 }
2218
2219 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2220 match self {
2221 Self::CallExpression(it) => {
2222 ChainElement::CallExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
2223 }
2224 Self::TSNonNullExpression(it) => ChainElement::TSNonNullExpression(
2225 CloneIn::clone_in_with_semantic_ids(it, allocator),
2226 ),
2227 Self::ComputedMemberExpression(it) => ChainElement::ComputedMemberExpression(
2228 CloneIn::clone_in_with_semantic_ids(it, allocator),
2229 ),
2230 Self::StaticMemberExpression(it) => ChainElement::StaticMemberExpression(
2231 CloneIn::clone_in_with_semantic_ids(it, allocator),
2232 ),
2233 Self::PrivateFieldExpression(it) => ChainElement::PrivateFieldExpression(
2234 CloneIn::clone_in_with_semantic_ids(it, allocator),
2235 ),
2236 }
2237 }
2238}
2239
2240impl<'new_alloc> CloneIn<'new_alloc> for ParenthesizedExpression<'_> {
2241 type Cloned = ParenthesizedExpression<'new_alloc>;
2242
2243 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2244 ParenthesizedExpression {
2245 span: CloneIn::clone_in(&self.span, allocator),
2246 expression: CloneIn::clone_in(&self.expression, allocator),
2247 }
2248 }
2249
2250 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2251 ParenthesizedExpression {
2252 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
2253 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
2254 }
2255 }
2256}
2257
2258impl<'new_alloc> CloneIn<'new_alloc> for Statement<'_> {
2259 type Cloned = Statement<'new_alloc>;
2260
2261 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2262 match self {
2263 Self::BlockStatement(it) => Statement::BlockStatement(CloneIn::clone_in(it, allocator)),
2264 Self::BreakStatement(it) => Statement::BreakStatement(CloneIn::clone_in(it, allocator)),
2265 Self::ContinueStatement(it) => {
2266 Statement::ContinueStatement(CloneIn::clone_in(it, allocator))
2267 }
2268 Self::DebuggerStatement(it) => {
2269 Statement::DebuggerStatement(CloneIn::clone_in(it, allocator))
2270 }
2271 Self::DoWhileStatement(it) => {
2272 Statement::DoWhileStatement(CloneIn::clone_in(it, allocator))
2273 }
2274 Self::EmptyStatement(it) => Statement::EmptyStatement(CloneIn::clone_in(it, allocator)),
2275 Self::ExpressionStatement(it) => {
2276 Statement::ExpressionStatement(CloneIn::clone_in(it, allocator))
2277 }
2278 Self::ForInStatement(it) => Statement::ForInStatement(CloneIn::clone_in(it, allocator)),
2279 Self::ForOfStatement(it) => Statement::ForOfStatement(CloneIn::clone_in(it, allocator)),
2280 Self::ForStatement(it) => Statement::ForStatement(CloneIn::clone_in(it, allocator)),
2281 Self::IfStatement(it) => Statement::IfStatement(CloneIn::clone_in(it, allocator)),
2282 Self::LabeledStatement(it) => {
2283 Statement::LabeledStatement(CloneIn::clone_in(it, allocator))
2284 }
2285 Self::ReturnStatement(it) => {
2286 Statement::ReturnStatement(CloneIn::clone_in(it, allocator))
2287 }
2288 Self::SwitchStatement(it) => {
2289 Statement::SwitchStatement(CloneIn::clone_in(it, allocator))
2290 }
2291 Self::ThrowStatement(it) => Statement::ThrowStatement(CloneIn::clone_in(it, allocator)),
2292 Self::TryStatement(it) => Statement::TryStatement(CloneIn::clone_in(it, allocator)),
2293 Self::WhileStatement(it) => Statement::WhileStatement(CloneIn::clone_in(it, allocator)),
2294 Self::WithStatement(it) => Statement::WithStatement(CloneIn::clone_in(it, allocator)),
2295 Self::VariableDeclaration(it) => {
2296 Statement::VariableDeclaration(CloneIn::clone_in(it, allocator))
2297 }
2298 Self::FunctionDeclaration(it) => {
2299 Statement::FunctionDeclaration(CloneIn::clone_in(it, allocator))
2300 }
2301 Self::ClassDeclaration(it) => {
2302 Statement::ClassDeclaration(CloneIn::clone_in(it, allocator))
2303 }
2304 Self::TSTypeAliasDeclaration(it) => {
2305 Statement::TSTypeAliasDeclaration(CloneIn::clone_in(it, allocator))
2306 }
2307 Self::TSInterfaceDeclaration(it) => {
2308 Statement::TSInterfaceDeclaration(CloneIn::clone_in(it, allocator))
2309 }
2310 Self::TSEnumDeclaration(it) => {
2311 Statement::TSEnumDeclaration(CloneIn::clone_in(it, allocator))
2312 }
2313 Self::TSModuleDeclaration(it) => {
2314 Statement::TSModuleDeclaration(CloneIn::clone_in(it, allocator))
2315 }
2316 Self::TSImportEqualsDeclaration(it) => {
2317 Statement::TSImportEqualsDeclaration(CloneIn::clone_in(it, allocator))
2318 }
2319 Self::ImportDeclaration(it) => {
2320 Statement::ImportDeclaration(CloneIn::clone_in(it, allocator))
2321 }
2322 Self::ExportAllDeclaration(it) => {
2323 Statement::ExportAllDeclaration(CloneIn::clone_in(it, allocator))
2324 }
2325 Self::ExportDefaultDeclaration(it) => {
2326 Statement::ExportDefaultDeclaration(CloneIn::clone_in(it, allocator))
2327 }
2328 Self::ExportNamedDeclaration(it) => {
2329 Statement::ExportNamedDeclaration(CloneIn::clone_in(it, allocator))
2330 }
2331 Self::TSExportAssignment(it) => {
2332 Statement::TSExportAssignment(CloneIn::clone_in(it, allocator))
2333 }
2334 Self::TSNamespaceExportDeclaration(it) => {
2335 Statement::TSNamespaceExportDeclaration(CloneIn::clone_in(it, allocator))
2336 }
2337 }
2338 }
2339
2340 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2341 match self {
2342 Self::BlockStatement(it) => {
2343 Statement::BlockStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2344 }
2345 Self::BreakStatement(it) => {
2346 Statement::BreakStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2347 }
2348 Self::ContinueStatement(it) => {
2349 Statement::ContinueStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2350 }
2351 Self::DebuggerStatement(it) => {
2352 Statement::DebuggerStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2353 }
2354 Self::DoWhileStatement(it) => {
2355 Statement::DoWhileStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2356 }
2357 Self::EmptyStatement(it) => {
2358 Statement::EmptyStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2359 }
2360 Self::ExpressionStatement(it) => {
2361 Statement::ExpressionStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2362 }
2363 Self::ForInStatement(it) => {
2364 Statement::ForInStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2365 }
2366 Self::ForOfStatement(it) => {
2367 Statement::ForOfStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2368 }
2369 Self::ForStatement(it) => {
2370 Statement::ForStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2371 }
2372 Self::IfStatement(it) => {
2373 Statement::IfStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2374 }
2375 Self::LabeledStatement(it) => {
2376 Statement::LabeledStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2377 }
2378 Self::ReturnStatement(it) => {
2379 Statement::ReturnStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2380 }
2381 Self::SwitchStatement(it) => {
2382 Statement::SwitchStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2383 }
2384 Self::ThrowStatement(it) => {
2385 Statement::ThrowStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2386 }
2387 Self::TryStatement(it) => {
2388 Statement::TryStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2389 }
2390 Self::WhileStatement(it) => {
2391 Statement::WhileStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2392 }
2393 Self::WithStatement(it) => {
2394 Statement::WithStatement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2395 }
2396 Self::VariableDeclaration(it) => {
2397 Statement::VariableDeclaration(CloneIn::clone_in_with_semantic_ids(it, allocator))
2398 }
2399 Self::FunctionDeclaration(it) => {
2400 Statement::FunctionDeclaration(CloneIn::clone_in_with_semantic_ids(it, allocator))
2401 }
2402 Self::ClassDeclaration(it) => {
2403 Statement::ClassDeclaration(CloneIn::clone_in_with_semantic_ids(it, allocator))
2404 }
2405 Self::TSTypeAliasDeclaration(it) => Statement::TSTypeAliasDeclaration(
2406 CloneIn::clone_in_with_semantic_ids(it, allocator),
2407 ),
2408 Self::TSInterfaceDeclaration(it) => Statement::TSInterfaceDeclaration(
2409 CloneIn::clone_in_with_semantic_ids(it, allocator),
2410 ),
2411 Self::TSEnumDeclaration(it) => {
2412 Statement::TSEnumDeclaration(CloneIn::clone_in_with_semantic_ids(it, allocator))
2413 }
2414 Self::TSModuleDeclaration(it) => {
2415 Statement::TSModuleDeclaration(CloneIn::clone_in_with_semantic_ids(it, allocator))
2416 }
2417 Self::TSImportEqualsDeclaration(it) => Statement::TSImportEqualsDeclaration(
2418 CloneIn::clone_in_with_semantic_ids(it, allocator),
2419 ),
2420 Self::ImportDeclaration(it) => {
2421 Statement::ImportDeclaration(CloneIn::clone_in_with_semantic_ids(it, allocator))
2422 }
2423 Self::ExportAllDeclaration(it) => {
2424 Statement::ExportAllDeclaration(CloneIn::clone_in_with_semantic_ids(it, allocator))
2425 }
2426 Self::ExportDefaultDeclaration(it) => Statement::ExportDefaultDeclaration(
2427 CloneIn::clone_in_with_semantic_ids(it, allocator),
2428 ),
2429 Self::ExportNamedDeclaration(it) => Statement::ExportNamedDeclaration(
2430 CloneIn::clone_in_with_semantic_ids(it, allocator),
2431 ),
2432 Self::TSExportAssignment(it) => {
2433 Statement::TSExportAssignment(CloneIn::clone_in_with_semantic_ids(it, allocator))
2434 }
2435 Self::TSNamespaceExportDeclaration(it) => Statement::TSNamespaceExportDeclaration(
2436 CloneIn::clone_in_with_semantic_ids(it, allocator),
2437 ),
2438 }
2439 }
2440}
2441
2442impl<'new_alloc> CloneIn<'new_alloc> for Directive<'_> {
2443 type Cloned = Directive<'new_alloc>;
2444
2445 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2446 Directive {
2447 span: CloneIn::clone_in(&self.span, allocator),
2448 expression: CloneIn::clone_in(&self.expression, allocator),
2449 directive: CloneIn::clone_in(&self.directive, allocator),
2450 }
2451 }
2452
2453 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2454 Directive {
2455 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
2456 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
2457 directive: CloneIn::clone_in_with_semantic_ids(&self.directive, allocator),
2458 }
2459 }
2460}
2461
2462impl<'new_alloc> CloneIn<'new_alloc> for Hashbang<'_> {
2463 type Cloned = Hashbang<'new_alloc>;
2464
2465 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2466 Hashbang {
2467 span: CloneIn::clone_in(&self.span, allocator),
2468 value: CloneIn::clone_in(&self.value, allocator),
2469 }
2470 }
2471
2472 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2473 Hashbang {
2474 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
2475 value: CloneIn::clone_in_with_semantic_ids(&self.value, allocator),
2476 }
2477 }
2478}
2479
2480impl<'new_alloc> CloneIn<'new_alloc> for BlockStatement<'_> {
2481 type Cloned = BlockStatement<'new_alloc>;
2482
2483 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2484 BlockStatement {
2485 span: CloneIn::clone_in(&self.span, allocator),
2486 body: CloneIn::clone_in(&self.body, allocator),
2487 scope_id: Default::default(),
2488 }
2489 }
2490
2491 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2492 BlockStatement {
2493 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
2494 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
2495 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
2496 }
2497 }
2498}
2499
2500impl<'new_alloc> CloneIn<'new_alloc> for Declaration<'_> {
2501 type Cloned = Declaration<'new_alloc>;
2502
2503 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2504 match self {
2505 Self::VariableDeclaration(it) => {
2506 Declaration::VariableDeclaration(CloneIn::clone_in(it, allocator))
2507 }
2508 Self::FunctionDeclaration(it) => {
2509 Declaration::FunctionDeclaration(CloneIn::clone_in(it, allocator))
2510 }
2511 Self::ClassDeclaration(it) => {
2512 Declaration::ClassDeclaration(CloneIn::clone_in(it, allocator))
2513 }
2514 Self::TSTypeAliasDeclaration(it) => {
2515 Declaration::TSTypeAliasDeclaration(CloneIn::clone_in(it, allocator))
2516 }
2517 Self::TSInterfaceDeclaration(it) => {
2518 Declaration::TSInterfaceDeclaration(CloneIn::clone_in(it, allocator))
2519 }
2520 Self::TSEnumDeclaration(it) => {
2521 Declaration::TSEnumDeclaration(CloneIn::clone_in(it, allocator))
2522 }
2523 Self::TSModuleDeclaration(it) => {
2524 Declaration::TSModuleDeclaration(CloneIn::clone_in(it, allocator))
2525 }
2526 Self::TSImportEqualsDeclaration(it) => {
2527 Declaration::TSImportEqualsDeclaration(CloneIn::clone_in(it, allocator))
2528 }
2529 }
2530 }
2531
2532 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2533 match self {
2534 Self::VariableDeclaration(it) => {
2535 Declaration::VariableDeclaration(CloneIn::clone_in_with_semantic_ids(it, allocator))
2536 }
2537 Self::FunctionDeclaration(it) => {
2538 Declaration::FunctionDeclaration(CloneIn::clone_in_with_semantic_ids(it, allocator))
2539 }
2540 Self::ClassDeclaration(it) => {
2541 Declaration::ClassDeclaration(CloneIn::clone_in_with_semantic_ids(it, allocator))
2542 }
2543 Self::TSTypeAliasDeclaration(it) => Declaration::TSTypeAliasDeclaration(
2544 CloneIn::clone_in_with_semantic_ids(it, allocator),
2545 ),
2546 Self::TSInterfaceDeclaration(it) => Declaration::TSInterfaceDeclaration(
2547 CloneIn::clone_in_with_semantic_ids(it, allocator),
2548 ),
2549 Self::TSEnumDeclaration(it) => {
2550 Declaration::TSEnumDeclaration(CloneIn::clone_in_with_semantic_ids(it, allocator))
2551 }
2552 Self::TSModuleDeclaration(it) => {
2553 Declaration::TSModuleDeclaration(CloneIn::clone_in_with_semantic_ids(it, allocator))
2554 }
2555 Self::TSImportEqualsDeclaration(it) => Declaration::TSImportEqualsDeclaration(
2556 CloneIn::clone_in_with_semantic_ids(it, allocator),
2557 ),
2558 }
2559 }
2560}
2561
2562impl<'new_alloc> CloneIn<'new_alloc> for VariableDeclaration<'_> {
2563 type Cloned = VariableDeclaration<'new_alloc>;
2564
2565 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2566 VariableDeclaration {
2567 span: CloneIn::clone_in(&self.span, allocator),
2568 kind: CloneIn::clone_in(&self.kind, allocator),
2569 declarations: CloneIn::clone_in(&self.declarations, allocator),
2570 declare: CloneIn::clone_in(&self.declare, allocator),
2571 }
2572 }
2573
2574 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2575 VariableDeclaration {
2576 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
2577 kind: CloneIn::clone_in_with_semantic_ids(&self.kind, allocator),
2578 declarations: CloneIn::clone_in_with_semantic_ids(&self.declarations, allocator),
2579 declare: CloneIn::clone_in_with_semantic_ids(&self.declare, allocator),
2580 }
2581 }
2582}
2583
2584impl<'new_alloc> CloneIn<'new_alloc> for VariableDeclarationKind {
2585 type Cloned = VariableDeclarationKind;
2586
2587 #[inline(always)]
2588 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2589 *self
2590 }
2591
2592 #[inline(always)]
2593 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2594 *self
2595 }
2596}
2597
2598impl<'new_alloc> CloneIn<'new_alloc> for VariableDeclarator<'_> {
2599 type Cloned = VariableDeclarator<'new_alloc>;
2600
2601 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2602 VariableDeclarator {
2603 span: CloneIn::clone_in(&self.span, allocator),
2604 kind: CloneIn::clone_in(&self.kind, allocator),
2605 id: CloneIn::clone_in(&self.id, allocator),
2606 init: CloneIn::clone_in(&self.init, allocator),
2607 definite: CloneIn::clone_in(&self.definite, allocator),
2608 }
2609 }
2610
2611 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2612 VariableDeclarator {
2613 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
2614 kind: CloneIn::clone_in_with_semantic_ids(&self.kind, allocator),
2615 id: CloneIn::clone_in_with_semantic_ids(&self.id, allocator),
2616 init: CloneIn::clone_in_with_semantic_ids(&self.init, allocator),
2617 definite: CloneIn::clone_in_with_semantic_ids(&self.definite, allocator),
2618 }
2619 }
2620}
2621
2622impl<'new_alloc> CloneIn<'new_alloc> for EmptyStatement {
2623 type Cloned = EmptyStatement;
2624
2625 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2626 EmptyStatement { span: CloneIn::clone_in(&self.span, allocator) }
2627 }
2628
2629 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2630 EmptyStatement { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
2631 }
2632}
2633
2634impl<'new_alloc> CloneIn<'new_alloc> for ExpressionStatement<'_> {
2635 type Cloned = ExpressionStatement<'new_alloc>;
2636
2637 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2638 ExpressionStatement {
2639 span: CloneIn::clone_in(&self.span, allocator),
2640 expression: CloneIn::clone_in(&self.expression, allocator),
2641 }
2642 }
2643
2644 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2645 ExpressionStatement {
2646 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
2647 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
2648 }
2649 }
2650}
2651
2652impl<'new_alloc> CloneIn<'new_alloc> for IfStatement<'_> {
2653 type Cloned = IfStatement<'new_alloc>;
2654
2655 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2656 IfStatement {
2657 span: CloneIn::clone_in(&self.span, allocator),
2658 test: CloneIn::clone_in(&self.test, allocator),
2659 consequent: CloneIn::clone_in(&self.consequent, allocator),
2660 alternate: CloneIn::clone_in(&self.alternate, allocator),
2661 }
2662 }
2663
2664 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2665 IfStatement {
2666 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
2667 test: CloneIn::clone_in_with_semantic_ids(&self.test, allocator),
2668 consequent: CloneIn::clone_in_with_semantic_ids(&self.consequent, allocator),
2669 alternate: CloneIn::clone_in_with_semantic_ids(&self.alternate, allocator),
2670 }
2671 }
2672}
2673
2674impl<'new_alloc> CloneIn<'new_alloc> for DoWhileStatement<'_> {
2675 type Cloned = DoWhileStatement<'new_alloc>;
2676
2677 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2678 DoWhileStatement {
2679 span: CloneIn::clone_in(&self.span, allocator),
2680 body: CloneIn::clone_in(&self.body, allocator),
2681 test: CloneIn::clone_in(&self.test, allocator),
2682 }
2683 }
2684
2685 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2686 DoWhileStatement {
2687 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
2688 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
2689 test: CloneIn::clone_in_with_semantic_ids(&self.test, allocator),
2690 }
2691 }
2692}
2693
2694impl<'new_alloc> CloneIn<'new_alloc> for WhileStatement<'_> {
2695 type Cloned = WhileStatement<'new_alloc>;
2696
2697 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2698 WhileStatement {
2699 span: CloneIn::clone_in(&self.span, allocator),
2700 test: CloneIn::clone_in(&self.test, allocator),
2701 body: CloneIn::clone_in(&self.body, allocator),
2702 }
2703 }
2704
2705 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2706 WhileStatement {
2707 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
2708 test: CloneIn::clone_in_with_semantic_ids(&self.test, allocator),
2709 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
2710 }
2711 }
2712}
2713
2714impl<'new_alloc> CloneIn<'new_alloc> for ForStatement<'_> {
2715 type Cloned = ForStatement<'new_alloc>;
2716
2717 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2718 ForStatement {
2719 span: CloneIn::clone_in(&self.span, allocator),
2720 init: CloneIn::clone_in(&self.init, allocator),
2721 test: CloneIn::clone_in(&self.test, allocator),
2722 update: CloneIn::clone_in(&self.update, allocator),
2723 body: CloneIn::clone_in(&self.body, allocator),
2724 scope_id: Default::default(),
2725 }
2726 }
2727
2728 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2729 ForStatement {
2730 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
2731 init: CloneIn::clone_in_with_semantic_ids(&self.init, allocator),
2732 test: CloneIn::clone_in_with_semantic_ids(&self.test, allocator),
2733 update: CloneIn::clone_in_with_semantic_ids(&self.update, allocator),
2734 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
2735 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
2736 }
2737 }
2738}
2739
2740impl<'new_alloc> CloneIn<'new_alloc> for ForStatementInit<'_> {
2741 type Cloned = ForStatementInit<'new_alloc>;
2742
2743 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2744 match self {
2745 Self::VariableDeclaration(it) => {
2746 ForStatementInit::VariableDeclaration(CloneIn::clone_in(it, allocator))
2747 }
2748 Self::BooleanLiteral(it) => {
2749 ForStatementInit::BooleanLiteral(CloneIn::clone_in(it, allocator))
2750 }
2751 Self::NullLiteral(it) => {
2752 ForStatementInit::NullLiteral(CloneIn::clone_in(it, allocator))
2753 }
2754 Self::NumericLiteral(it) => {
2755 ForStatementInit::NumericLiteral(CloneIn::clone_in(it, allocator))
2756 }
2757 Self::BigIntLiteral(it) => {
2758 ForStatementInit::BigIntLiteral(CloneIn::clone_in(it, allocator))
2759 }
2760 Self::RegExpLiteral(it) => {
2761 ForStatementInit::RegExpLiteral(CloneIn::clone_in(it, allocator))
2762 }
2763 Self::StringLiteral(it) => {
2764 ForStatementInit::StringLiteral(CloneIn::clone_in(it, allocator))
2765 }
2766 Self::TemplateLiteral(it) => {
2767 ForStatementInit::TemplateLiteral(CloneIn::clone_in(it, allocator))
2768 }
2769 Self::Identifier(it) => ForStatementInit::Identifier(CloneIn::clone_in(it, allocator)),
2770 Self::MetaProperty(it) => {
2771 ForStatementInit::MetaProperty(CloneIn::clone_in(it, allocator))
2772 }
2773 Self::Super(it) => ForStatementInit::Super(CloneIn::clone_in(it, allocator)),
2774 Self::ArrayExpression(it) => {
2775 ForStatementInit::ArrayExpression(CloneIn::clone_in(it, allocator))
2776 }
2777 Self::ArrowFunctionExpression(it) => {
2778 ForStatementInit::ArrowFunctionExpression(CloneIn::clone_in(it, allocator))
2779 }
2780 Self::AssignmentExpression(it) => {
2781 ForStatementInit::AssignmentExpression(CloneIn::clone_in(it, allocator))
2782 }
2783 Self::AwaitExpression(it) => {
2784 ForStatementInit::AwaitExpression(CloneIn::clone_in(it, allocator))
2785 }
2786 Self::BinaryExpression(it) => {
2787 ForStatementInit::BinaryExpression(CloneIn::clone_in(it, allocator))
2788 }
2789 Self::CallExpression(it) => {
2790 ForStatementInit::CallExpression(CloneIn::clone_in(it, allocator))
2791 }
2792 Self::ChainExpression(it) => {
2793 ForStatementInit::ChainExpression(CloneIn::clone_in(it, allocator))
2794 }
2795 Self::ClassExpression(it) => {
2796 ForStatementInit::ClassExpression(CloneIn::clone_in(it, allocator))
2797 }
2798 Self::ConditionalExpression(it) => {
2799 ForStatementInit::ConditionalExpression(CloneIn::clone_in(it, allocator))
2800 }
2801 Self::FunctionExpression(it) => {
2802 ForStatementInit::FunctionExpression(CloneIn::clone_in(it, allocator))
2803 }
2804 Self::ImportExpression(it) => {
2805 ForStatementInit::ImportExpression(CloneIn::clone_in(it, allocator))
2806 }
2807 Self::LogicalExpression(it) => {
2808 ForStatementInit::LogicalExpression(CloneIn::clone_in(it, allocator))
2809 }
2810 Self::NewExpression(it) => {
2811 ForStatementInit::NewExpression(CloneIn::clone_in(it, allocator))
2812 }
2813 Self::ObjectExpression(it) => {
2814 ForStatementInit::ObjectExpression(CloneIn::clone_in(it, allocator))
2815 }
2816 Self::ParenthesizedExpression(it) => {
2817 ForStatementInit::ParenthesizedExpression(CloneIn::clone_in(it, allocator))
2818 }
2819 Self::SequenceExpression(it) => {
2820 ForStatementInit::SequenceExpression(CloneIn::clone_in(it, allocator))
2821 }
2822 Self::TaggedTemplateExpression(it) => {
2823 ForStatementInit::TaggedTemplateExpression(CloneIn::clone_in(it, allocator))
2824 }
2825 Self::ThisExpression(it) => {
2826 ForStatementInit::ThisExpression(CloneIn::clone_in(it, allocator))
2827 }
2828 Self::UnaryExpression(it) => {
2829 ForStatementInit::UnaryExpression(CloneIn::clone_in(it, allocator))
2830 }
2831 Self::UpdateExpression(it) => {
2832 ForStatementInit::UpdateExpression(CloneIn::clone_in(it, allocator))
2833 }
2834 Self::YieldExpression(it) => {
2835 ForStatementInit::YieldExpression(CloneIn::clone_in(it, allocator))
2836 }
2837 Self::PrivateInExpression(it) => {
2838 ForStatementInit::PrivateInExpression(CloneIn::clone_in(it, allocator))
2839 }
2840 Self::JSXElement(it) => ForStatementInit::JSXElement(CloneIn::clone_in(it, allocator)),
2841 Self::JSXFragment(it) => {
2842 ForStatementInit::JSXFragment(CloneIn::clone_in(it, allocator))
2843 }
2844 Self::TSAsExpression(it) => {
2845 ForStatementInit::TSAsExpression(CloneIn::clone_in(it, allocator))
2846 }
2847 Self::TSSatisfiesExpression(it) => {
2848 ForStatementInit::TSSatisfiesExpression(CloneIn::clone_in(it, allocator))
2849 }
2850 Self::TSTypeAssertion(it) => {
2851 ForStatementInit::TSTypeAssertion(CloneIn::clone_in(it, allocator))
2852 }
2853 Self::TSNonNullExpression(it) => {
2854 ForStatementInit::TSNonNullExpression(CloneIn::clone_in(it, allocator))
2855 }
2856 Self::TSInstantiationExpression(it) => {
2857 ForStatementInit::TSInstantiationExpression(CloneIn::clone_in(it, allocator))
2858 }
2859 Self::V8IntrinsicExpression(it) => {
2860 ForStatementInit::V8IntrinsicExpression(CloneIn::clone_in(it, allocator))
2861 }
2862 Self::ComputedMemberExpression(it) => {
2863 ForStatementInit::ComputedMemberExpression(CloneIn::clone_in(it, allocator))
2864 }
2865 Self::StaticMemberExpression(it) => {
2866 ForStatementInit::StaticMemberExpression(CloneIn::clone_in(it, allocator))
2867 }
2868 Self::PrivateFieldExpression(it) => {
2869 ForStatementInit::PrivateFieldExpression(CloneIn::clone_in(it, allocator))
2870 }
2871 }
2872 }
2873
2874 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
2875 match self {
2876 Self::VariableDeclaration(it) => ForStatementInit::VariableDeclaration(
2877 CloneIn::clone_in_with_semantic_ids(it, allocator),
2878 ),
2879 Self::BooleanLiteral(it) => {
2880 ForStatementInit::BooleanLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
2881 }
2882 Self::NullLiteral(it) => {
2883 ForStatementInit::NullLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
2884 }
2885 Self::NumericLiteral(it) => {
2886 ForStatementInit::NumericLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
2887 }
2888 Self::BigIntLiteral(it) => {
2889 ForStatementInit::BigIntLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
2890 }
2891 Self::RegExpLiteral(it) => {
2892 ForStatementInit::RegExpLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
2893 }
2894 Self::StringLiteral(it) => {
2895 ForStatementInit::StringLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
2896 }
2897 Self::TemplateLiteral(it) => ForStatementInit::TemplateLiteral(
2898 CloneIn::clone_in_with_semantic_ids(it, allocator),
2899 ),
2900 Self::Identifier(it) => {
2901 ForStatementInit::Identifier(CloneIn::clone_in_with_semantic_ids(it, allocator))
2902 }
2903 Self::MetaProperty(it) => {
2904 ForStatementInit::MetaProperty(CloneIn::clone_in_with_semantic_ids(it, allocator))
2905 }
2906 Self::Super(it) => {
2907 ForStatementInit::Super(CloneIn::clone_in_with_semantic_ids(it, allocator))
2908 }
2909 Self::ArrayExpression(it) => ForStatementInit::ArrayExpression(
2910 CloneIn::clone_in_with_semantic_ids(it, allocator),
2911 ),
2912 Self::ArrowFunctionExpression(it) => ForStatementInit::ArrowFunctionExpression(
2913 CloneIn::clone_in_with_semantic_ids(it, allocator),
2914 ),
2915 Self::AssignmentExpression(it) => ForStatementInit::AssignmentExpression(
2916 CloneIn::clone_in_with_semantic_ids(it, allocator),
2917 ),
2918 Self::AwaitExpression(it) => ForStatementInit::AwaitExpression(
2919 CloneIn::clone_in_with_semantic_ids(it, allocator),
2920 ),
2921 Self::BinaryExpression(it) => ForStatementInit::BinaryExpression(
2922 CloneIn::clone_in_with_semantic_ids(it, allocator),
2923 ),
2924 Self::CallExpression(it) => {
2925 ForStatementInit::CallExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
2926 }
2927 Self::ChainExpression(it) => ForStatementInit::ChainExpression(
2928 CloneIn::clone_in_with_semantic_ids(it, allocator),
2929 ),
2930 Self::ClassExpression(it) => ForStatementInit::ClassExpression(
2931 CloneIn::clone_in_with_semantic_ids(it, allocator),
2932 ),
2933 Self::ConditionalExpression(it) => ForStatementInit::ConditionalExpression(
2934 CloneIn::clone_in_with_semantic_ids(it, allocator),
2935 ),
2936 Self::FunctionExpression(it) => ForStatementInit::FunctionExpression(
2937 CloneIn::clone_in_with_semantic_ids(it, allocator),
2938 ),
2939 Self::ImportExpression(it) => ForStatementInit::ImportExpression(
2940 CloneIn::clone_in_with_semantic_ids(it, allocator),
2941 ),
2942 Self::LogicalExpression(it) => ForStatementInit::LogicalExpression(
2943 CloneIn::clone_in_with_semantic_ids(it, allocator),
2944 ),
2945 Self::NewExpression(it) => {
2946 ForStatementInit::NewExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
2947 }
2948 Self::ObjectExpression(it) => ForStatementInit::ObjectExpression(
2949 CloneIn::clone_in_with_semantic_ids(it, allocator),
2950 ),
2951 Self::ParenthesizedExpression(it) => ForStatementInit::ParenthesizedExpression(
2952 CloneIn::clone_in_with_semantic_ids(it, allocator),
2953 ),
2954 Self::SequenceExpression(it) => ForStatementInit::SequenceExpression(
2955 CloneIn::clone_in_with_semantic_ids(it, allocator),
2956 ),
2957 Self::TaggedTemplateExpression(it) => ForStatementInit::TaggedTemplateExpression(
2958 CloneIn::clone_in_with_semantic_ids(it, allocator),
2959 ),
2960 Self::ThisExpression(it) => {
2961 ForStatementInit::ThisExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
2962 }
2963 Self::UnaryExpression(it) => ForStatementInit::UnaryExpression(
2964 CloneIn::clone_in_with_semantic_ids(it, allocator),
2965 ),
2966 Self::UpdateExpression(it) => ForStatementInit::UpdateExpression(
2967 CloneIn::clone_in_with_semantic_ids(it, allocator),
2968 ),
2969 Self::YieldExpression(it) => ForStatementInit::YieldExpression(
2970 CloneIn::clone_in_with_semantic_ids(it, allocator),
2971 ),
2972 Self::PrivateInExpression(it) => ForStatementInit::PrivateInExpression(
2973 CloneIn::clone_in_with_semantic_ids(it, allocator),
2974 ),
2975 Self::JSXElement(it) => {
2976 ForStatementInit::JSXElement(CloneIn::clone_in_with_semantic_ids(it, allocator))
2977 }
2978 Self::JSXFragment(it) => {
2979 ForStatementInit::JSXFragment(CloneIn::clone_in_with_semantic_ids(it, allocator))
2980 }
2981 Self::TSAsExpression(it) => {
2982 ForStatementInit::TSAsExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
2983 }
2984 Self::TSSatisfiesExpression(it) => ForStatementInit::TSSatisfiesExpression(
2985 CloneIn::clone_in_with_semantic_ids(it, allocator),
2986 ),
2987 Self::TSTypeAssertion(it) => ForStatementInit::TSTypeAssertion(
2988 CloneIn::clone_in_with_semantic_ids(it, allocator),
2989 ),
2990 Self::TSNonNullExpression(it) => ForStatementInit::TSNonNullExpression(
2991 CloneIn::clone_in_with_semantic_ids(it, allocator),
2992 ),
2993 Self::TSInstantiationExpression(it) => ForStatementInit::TSInstantiationExpression(
2994 CloneIn::clone_in_with_semantic_ids(it, allocator),
2995 ),
2996 Self::V8IntrinsicExpression(it) => ForStatementInit::V8IntrinsicExpression(
2997 CloneIn::clone_in_with_semantic_ids(it, allocator),
2998 ),
2999 Self::ComputedMemberExpression(it) => ForStatementInit::ComputedMemberExpression(
3000 CloneIn::clone_in_with_semantic_ids(it, allocator),
3001 ),
3002 Self::StaticMemberExpression(it) => ForStatementInit::StaticMemberExpression(
3003 CloneIn::clone_in_with_semantic_ids(it, allocator),
3004 ),
3005 Self::PrivateFieldExpression(it) => ForStatementInit::PrivateFieldExpression(
3006 CloneIn::clone_in_with_semantic_ids(it, allocator),
3007 ),
3008 }
3009 }
3010}
3011
3012impl<'new_alloc> CloneIn<'new_alloc> for ForInStatement<'_> {
3013 type Cloned = ForInStatement<'new_alloc>;
3014
3015 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3016 ForInStatement {
3017 span: CloneIn::clone_in(&self.span, allocator),
3018 left: CloneIn::clone_in(&self.left, allocator),
3019 right: CloneIn::clone_in(&self.right, allocator),
3020 body: CloneIn::clone_in(&self.body, allocator),
3021 scope_id: Default::default(),
3022 }
3023 }
3024
3025 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3026 ForInStatement {
3027 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3028 left: CloneIn::clone_in_with_semantic_ids(&self.left, allocator),
3029 right: CloneIn::clone_in_with_semantic_ids(&self.right, allocator),
3030 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
3031 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
3032 }
3033 }
3034}
3035
3036impl<'new_alloc> CloneIn<'new_alloc> for ForStatementLeft<'_> {
3037 type Cloned = ForStatementLeft<'new_alloc>;
3038
3039 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3040 match self {
3041 Self::VariableDeclaration(it) => {
3042 ForStatementLeft::VariableDeclaration(CloneIn::clone_in(it, allocator))
3043 }
3044 Self::AssignmentTargetIdentifier(it) => {
3045 ForStatementLeft::AssignmentTargetIdentifier(CloneIn::clone_in(it, allocator))
3046 }
3047 Self::TSAsExpression(it) => {
3048 ForStatementLeft::TSAsExpression(CloneIn::clone_in(it, allocator))
3049 }
3050 Self::TSSatisfiesExpression(it) => {
3051 ForStatementLeft::TSSatisfiesExpression(CloneIn::clone_in(it, allocator))
3052 }
3053 Self::TSNonNullExpression(it) => {
3054 ForStatementLeft::TSNonNullExpression(CloneIn::clone_in(it, allocator))
3055 }
3056 Self::TSTypeAssertion(it) => {
3057 ForStatementLeft::TSTypeAssertion(CloneIn::clone_in(it, allocator))
3058 }
3059 Self::ComputedMemberExpression(it) => {
3060 ForStatementLeft::ComputedMemberExpression(CloneIn::clone_in(it, allocator))
3061 }
3062 Self::StaticMemberExpression(it) => {
3063 ForStatementLeft::StaticMemberExpression(CloneIn::clone_in(it, allocator))
3064 }
3065 Self::PrivateFieldExpression(it) => {
3066 ForStatementLeft::PrivateFieldExpression(CloneIn::clone_in(it, allocator))
3067 }
3068 Self::ArrayAssignmentTarget(it) => {
3069 ForStatementLeft::ArrayAssignmentTarget(CloneIn::clone_in(it, allocator))
3070 }
3071 Self::ObjectAssignmentTarget(it) => {
3072 ForStatementLeft::ObjectAssignmentTarget(CloneIn::clone_in(it, allocator))
3073 }
3074 }
3075 }
3076
3077 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3078 match self {
3079 Self::VariableDeclaration(it) => ForStatementLeft::VariableDeclaration(
3080 CloneIn::clone_in_with_semantic_ids(it, allocator),
3081 ),
3082 Self::AssignmentTargetIdentifier(it) => ForStatementLeft::AssignmentTargetIdentifier(
3083 CloneIn::clone_in_with_semantic_ids(it, allocator),
3084 ),
3085 Self::TSAsExpression(it) => {
3086 ForStatementLeft::TSAsExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
3087 }
3088 Self::TSSatisfiesExpression(it) => ForStatementLeft::TSSatisfiesExpression(
3089 CloneIn::clone_in_with_semantic_ids(it, allocator),
3090 ),
3091 Self::TSNonNullExpression(it) => ForStatementLeft::TSNonNullExpression(
3092 CloneIn::clone_in_with_semantic_ids(it, allocator),
3093 ),
3094 Self::TSTypeAssertion(it) => ForStatementLeft::TSTypeAssertion(
3095 CloneIn::clone_in_with_semantic_ids(it, allocator),
3096 ),
3097 Self::ComputedMemberExpression(it) => ForStatementLeft::ComputedMemberExpression(
3098 CloneIn::clone_in_with_semantic_ids(it, allocator),
3099 ),
3100 Self::StaticMemberExpression(it) => ForStatementLeft::StaticMemberExpression(
3101 CloneIn::clone_in_with_semantic_ids(it, allocator),
3102 ),
3103 Self::PrivateFieldExpression(it) => ForStatementLeft::PrivateFieldExpression(
3104 CloneIn::clone_in_with_semantic_ids(it, allocator),
3105 ),
3106 Self::ArrayAssignmentTarget(it) => ForStatementLeft::ArrayAssignmentTarget(
3107 CloneIn::clone_in_with_semantic_ids(it, allocator),
3108 ),
3109 Self::ObjectAssignmentTarget(it) => ForStatementLeft::ObjectAssignmentTarget(
3110 CloneIn::clone_in_with_semantic_ids(it, allocator),
3111 ),
3112 }
3113 }
3114}
3115
3116impl<'new_alloc> CloneIn<'new_alloc> for ForOfStatement<'_> {
3117 type Cloned = ForOfStatement<'new_alloc>;
3118
3119 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3120 ForOfStatement {
3121 span: CloneIn::clone_in(&self.span, allocator),
3122 r#await: CloneIn::clone_in(&self.r#await, allocator),
3123 left: CloneIn::clone_in(&self.left, allocator),
3124 right: CloneIn::clone_in(&self.right, allocator),
3125 body: CloneIn::clone_in(&self.body, allocator),
3126 scope_id: Default::default(),
3127 }
3128 }
3129
3130 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3131 ForOfStatement {
3132 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3133 r#await: CloneIn::clone_in_with_semantic_ids(&self.r#await, allocator),
3134 left: CloneIn::clone_in_with_semantic_ids(&self.left, allocator),
3135 right: CloneIn::clone_in_with_semantic_ids(&self.right, allocator),
3136 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
3137 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
3138 }
3139 }
3140}
3141
3142impl<'new_alloc> CloneIn<'new_alloc> for ContinueStatement<'_> {
3143 type Cloned = ContinueStatement<'new_alloc>;
3144
3145 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3146 ContinueStatement {
3147 span: CloneIn::clone_in(&self.span, allocator),
3148 label: CloneIn::clone_in(&self.label, allocator),
3149 }
3150 }
3151
3152 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3153 ContinueStatement {
3154 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3155 label: CloneIn::clone_in_with_semantic_ids(&self.label, allocator),
3156 }
3157 }
3158}
3159
3160impl<'new_alloc> CloneIn<'new_alloc> for BreakStatement<'_> {
3161 type Cloned = BreakStatement<'new_alloc>;
3162
3163 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3164 BreakStatement {
3165 span: CloneIn::clone_in(&self.span, allocator),
3166 label: CloneIn::clone_in(&self.label, allocator),
3167 }
3168 }
3169
3170 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3171 BreakStatement {
3172 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3173 label: CloneIn::clone_in_with_semantic_ids(&self.label, allocator),
3174 }
3175 }
3176}
3177
3178impl<'new_alloc> CloneIn<'new_alloc> for ReturnStatement<'_> {
3179 type Cloned = ReturnStatement<'new_alloc>;
3180
3181 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3182 ReturnStatement {
3183 span: CloneIn::clone_in(&self.span, allocator),
3184 argument: CloneIn::clone_in(&self.argument, allocator),
3185 }
3186 }
3187
3188 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3189 ReturnStatement {
3190 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3191 argument: CloneIn::clone_in_with_semantic_ids(&self.argument, allocator),
3192 }
3193 }
3194}
3195
3196impl<'new_alloc> CloneIn<'new_alloc> for WithStatement<'_> {
3197 type Cloned = WithStatement<'new_alloc>;
3198
3199 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3200 WithStatement {
3201 span: CloneIn::clone_in(&self.span, allocator),
3202 object: CloneIn::clone_in(&self.object, allocator),
3203 body: CloneIn::clone_in(&self.body, allocator),
3204 }
3205 }
3206
3207 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3208 WithStatement {
3209 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3210 object: CloneIn::clone_in_with_semantic_ids(&self.object, allocator),
3211 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
3212 }
3213 }
3214}
3215
3216impl<'new_alloc> CloneIn<'new_alloc> for SwitchStatement<'_> {
3217 type Cloned = SwitchStatement<'new_alloc>;
3218
3219 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3220 SwitchStatement {
3221 span: CloneIn::clone_in(&self.span, allocator),
3222 discriminant: CloneIn::clone_in(&self.discriminant, allocator),
3223 cases: CloneIn::clone_in(&self.cases, allocator),
3224 scope_id: Default::default(),
3225 }
3226 }
3227
3228 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3229 SwitchStatement {
3230 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3231 discriminant: CloneIn::clone_in_with_semantic_ids(&self.discriminant, allocator),
3232 cases: CloneIn::clone_in_with_semantic_ids(&self.cases, allocator),
3233 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
3234 }
3235 }
3236}
3237
3238impl<'new_alloc> CloneIn<'new_alloc> for SwitchCase<'_> {
3239 type Cloned = SwitchCase<'new_alloc>;
3240
3241 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3242 SwitchCase {
3243 span: CloneIn::clone_in(&self.span, allocator),
3244 test: CloneIn::clone_in(&self.test, allocator),
3245 consequent: CloneIn::clone_in(&self.consequent, allocator),
3246 }
3247 }
3248
3249 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3250 SwitchCase {
3251 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3252 test: CloneIn::clone_in_with_semantic_ids(&self.test, allocator),
3253 consequent: CloneIn::clone_in_with_semantic_ids(&self.consequent, allocator),
3254 }
3255 }
3256}
3257
3258impl<'new_alloc> CloneIn<'new_alloc> for LabeledStatement<'_> {
3259 type Cloned = LabeledStatement<'new_alloc>;
3260
3261 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3262 LabeledStatement {
3263 span: CloneIn::clone_in(&self.span, allocator),
3264 label: CloneIn::clone_in(&self.label, allocator),
3265 body: CloneIn::clone_in(&self.body, allocator),
3266 }
3267 }
3268
3269 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3270 LabeledStatement {
3271 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3272 label: CloneIn::clone_in_with_semantic_ids(&self.label, allocator),
3273 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
3274 }
3275 }
3276}
3277
3278impl<'new_alloc> CloneIn<'new_alloc> for ThrowStatement<'_> {
3279 type Cloned = ThrowStatement<'new_alloc>;
3280
3281 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3282 ThrowStatement {
3283 span: CloneIn::clone_in(&self.span, allocator),
3284 argument: CloneIn::clone_in(&self.argument, allocator),
3285 }
3286 }
3287
3288 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3289 ThrowStatement {
3290 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3291 argument: CloneIn::clone_in_with_semantic_ids(&self.argument, allocator),
3292 }
3293 }
3294}
3295
3296impl<'new_alloc> CloneIn<'new_alloc> for TryStatement<'_> {
3297 type Cloned = TryStatement<'new_alloc>;
3298
3299 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3300 TryStatement {
3301 span: CloneIn::clone_in(&self.span, allocator),
3302 block: CloneIn::clone_in(&self.block, allocator),
3303 handler: CloneIn::clone_in(&self.handler, allocator),
3304 finalizer: CloneIn::clone_in(&self.finalizer, allocator),
3305 }
3306 }
3307
3308 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3309 TryStatement {
3310 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3311 block: CloneIn::clone_in_with_semantic_ids(&self.block, allocator),
3312 handler: CloneIn::clone_in_with_semantic_ids(&self.handler, allocator),
3313 finalizer: CloneIn::clone_in_with_semantic_ids(&self.finalizer, allocator),
3314 }
3315 }
3316}
3317
3318impl<'new_alloc> CloneIn<'new_alloc> for CatchClause<'_> {
3319 type Cloned = CatchClause<'new_alloc>;
3320
3321 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3322 CatchClause {
3323 span: CloneIn::clone_in(&self.span, allocator),
3324 param: CloneIn::clone_in(&self.param, allocator),
3325 body: CloneIn::clone_in(&self.body, allocator),
3326 scope_id: Default::default(),
3327 }
3328 }
3329
3330 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3331 CatchClause {
3332 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3333 param: CloneIn::clone_in_with_semantic_ids(&self.param, allocator),
3334 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
3335 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
3336 }
3337 }
3338}
3339
3340impl<'new_alloc> CloneIn<'new_alloc> for CatchParameter<'_> {
3341 type Cloned = CatchParameter<'new_alloc>;
3342
3343 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3344 CatchParameter {
3345 span: CloneIn::clone_in(&self.span, allocator),
3346 pattern: CloneIn::clone_in(&self.pattern, allocator),
3347 }
3348 }
3349
3350 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3351 CatchParameter {
3352 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3353 pattern: CloneIn::clone_in_with_semantic_ids(&self.pattern, allocator),
3354 }
3355 }
3356}
3357
3358impl<'new_alloc> CloneIn<'new_alloc> for DebuggerStatement {
3359 type Cloned = DebuggerStatement;
3360
3361 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3362 DebuggerStatement { span: CloneIn::clone_in(&self.span, allocator) }
3363 }
3364
3365 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3366 DebuggerStatement { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
3367 }
3368}
3369
3370impl<'new_alloc> CloneIn<'new_alloc> for BindingPattern<'_> {
3371 type Cloned = BindingPattern<'new_alloc>;
3372
3373 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3374 BindingPattern {
3375 kind: CloneIn::clone_in(&self.kind, allocator),
3376 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
3377 optional: CloneIn::clone_in(&self.optional, allocator),
3378 }
3379 }
3380
3381 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3382 BindingPattern {
3383 kind: CloneIn::clone_in_with_semantic_ids(&self.kind, allocator),
3384 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
3385 optional: CloneIn::clone_in_with_semantic_ids(&self.optional, allocator),
3386 }
3387 }
3388}
3389
3390impl<'new_alloc> CloneIn<'new_alloc> for BindingPatternKind<'_> {
3391 type Cloned = BindingPatternKind<'new_alloc>;
3392
3393 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3394 match self {
3395 Self::BindingIdentifier(it) => {
3396 BindingPatternKind::BindingIdentifier(CloneIn::clone_in(it, allocator))
3397 }
3398 Self::ObjectPattern(it) => {
3399 BindingPatternKind::ObjectPattern(CloneIn::clone_in(it, allocator))
3400 }
3401 Self::ArrayPattern(it) => {
3402 BindingPatternKind::ArrayPattern(CloneIn::clone_in(it, allocator))
3403 }
3404 Self::AssignmentPattern(it) => {
3405 BindingPatternKind::AssignmentPattern(CloneIn::clone_in(it, allocator))
3406 }
3407 }
3408 }
3409
3410 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3411 match self {
3412 Self::BindingIdentifier(it) => BindingPatternKind::BindingIdentifier(
3413 CloneIn::clone_in_with_semantic_ids(it, allocator),
3414 ),
3415 Self::ObjectPattern(it) => BindingPatternKind::ObjectPattern(
3416 CloneIn::clone_in_with_semantic_ids(it, allocator),
3417 ),
3418 Self::ArrayPattern(it) => {
3419 BindingPatternKind::ArrayPattern(CloneIn::clone_in_with_semantic_ids(it, allocator))
3420 }
3421 Self::AssignmentPattern(it) => BindingPatternKind::AssignmentPattern(
3422 CloneIn::clone_in_with_semantic_ids(it, allocator),
3423 ),
3424 }
3425 }
3426}
3427
3428impl<'new_alloc> CloneIn<'new_alloc> for AssignmentPattern<'_> {
3429 type Cloned = AssignmentPattern<'new_alloc>;
3430
3431 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3432 AssignmentPattern {
3433 span: CloneIn::clone_in(&self.span, allocator),
3434 left: CloneIn::clone_in(&self.left, allocator),
3435 right: CloneIn::clone_in(&self.right, allocator),
3436 }
3437 }
3438
3439 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3440 AssignmentPattern {
3441 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3442 left: CloneIn::clone_in_with_semantic_ids(&self.left, allocator),
3443 right: CloneIn::clone_in_with_semantic_ids(&self.right, allocator),
3444 }
3445 }
3446}
3447
3448impl<'new_alloc> CloneIn<'new_alloc> for ObjectPattern<'_> {
3449 type Cloned = ObjectPattern<'new_alloc>;
3450
3451 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3452 ObjectPattern {
3453 span: CloneIn::clone_in(&self.span, allocator),
3454 properties: CloneIn::clone_in(&self.properties, allocator),
3455 rest: CloneIn::clone_in(&self.rest, allocator),
3456 }
3457 }
3458
3459 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3460 ObjectPattern {
3461 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3462 properties: CloneIn::clone_in_with_semantic_ids(&self.properties, allocator),
3463 rest: CloneIn::clone_in_with_semantic_ids(&self.rest, allocator),
3464 }
3465 }
3466}
3467
3468impl<'new_alloc> CloneIn<'new_alloc> for BindingProperty<'_> {
3469 type Cloned = BindingProperty<'new_alloc>;
3470
3471 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3472 BindingProperty {
3473 span: CloneIn::clone_in(&self.span, allocator),
3474 key: CloneIn::clone_in(&self.key, allocator),
3475 value: CloneIn::clone_in(&self.value, allocator),
3476 shorthand: CloneIn::clone_in(&self.shorthand, allocator),
3477 computed: CloneIn::clone_in(&self.computed, allocator),
3478 }
3479 }
3480
3481 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3482 BindingProperty {
3483 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3484 key: CloneIn::clone_in_with_semantic_ids(&self.key, allocator),
3485 value: CloneIn::clone_in_with_semantic_ids(&self.value, allocator),
3486 shorthand: CloneIn::clone_in_with_semantic_ids(&self.shorthand, allocator),
3487 computed: CloneIn::clone_in_with_semantic_ids(&self.computed, allocator),
3488 }
3489 }
3490}
3491
3492impl<'new_alloc> CloneIn<'new_alloc> for ArrayPattern<'_> {
3493 type Cloned = ArrayPattern<'new_alloc>;
3494
3495 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3496 ArrayPattern {
3497 span: CloneIn::clone_in(&self.span, allocator),
3498 elements: CloneIn::clone_in(&self.elements, allocator),
3499 rest: CloneIn::clone_in(&self.rest, allocator),
3500 }
3501 }
3502
3503 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3504 ArrayPattern {
3505 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3506 elements: CloneIn::clone_in_with_semantic_ids(&self.elements, allocator),
3507 rest: CloneIn::clone_in_with_semantic_ids(&self.rest, allocator),
3508 }
3509 }
3510}
3511
3512impl<'new_alloc> CloneIn<'new_alloc> for BindingRestElement<'_> {
3513 type Cloned = BindingRestElement<'new_alloc>;
3514
3515 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3516 BindingRestElement {
3517 span: CloneIn::clone_in(&self.span, allocator),
3518 argument: CloneIn::clone_in(&self.argument, allocator),
3519 }
3520 }
3521
3522 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3523 BindingRestElement {
3524 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3525 argument: CloneIn::clone_in_with_semantic_ids(&self.argument, allocator),
3526 }
3527 }
3528}
3529
3530impl<'new_alloc> CloneIn<'new_alloc> for Function<'_> {
3531 type Cloned = Function<'new_alloc>;
3532
3533 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3534 Function {
3535 span: CloneIn::clone_in(&self.span, allocator),
3536 r#type: CloneIn::clone_in(&self.r#type, allocator),
3537 id: CloneIn::clone_in(&self.id, allocator),
3538 generator: CloneIn::clone_in(&self.generator, allocator),
3539 r#async: CloneIn::clone_in(&self.r#async, allocator),
3540 declare: CloneIn::clone_in(&self.declare, allocator),
3541 type_parameters: CloneIn::clone_in(&self.type_parameters, allocator),
3542 this_param: CloneIn::clone_in(&self.this_param, allocator),
3543 params: CloneIn::clone_in(&self.params, allocator),
3544 return_type: CloneIn::clone_in(&self.return_type, allocator),
3545 body: CloneIn::clone_in(&self.body, allocator),
3546 scope_id: Default::default(),
3547 pure: CloneIn::clone_in(&self.pure, allocator),
3548 pife: CloneIn::clone_in(&self.pife, allocator),
3549 }
3550 }
3551
3552 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3553 Function {
3554 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3555 r#type: CloneIn::clone_in_with_semantic_ids(&self.r#type, allocator),
3556 id: CloneIn::clone_in_with_semantic_ids(&self.id, allocator),
3557 generator: CloneIn::clone_in_with_semantic_ids(&self.generator, allocator),
3558 r#async: CloneIn::clone_in_with_semantic_ids(&self.r#async, allocator),
3559 declare: CloneIn::clone_in_with_semantic_ids(&self.declare, allocator),
3560 type_parameters: CloneIn::clone_in_with_semantic_ids(&self.type_parameters, allocator),
3561 this_param: CloneIn::clone_in_with_semantic_ids(&self.this_param, allocator),
3562 params: CloneIn::clone_in_with_semantic_ids(&self.params, allocator),
3563 return_type: CloneIn::clone_in_with_semantic_ids(&self.return_type, allocator),
3564 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
3565 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
3566 pure: CloneIn::clone_in_with_semantic_ids(&self.pure, allocator),
3567 pife: CloneIn::clone_in_with_semantic_ids(&self.pife, allocator),
3568 }
3569 }
3570}
3571
3572impl<'new_alloc> CloneIn<'new_alloc> for FunctionType {
3573 type Cloned = FunctionType;
3574
3575 #[inline(always)]
3576 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3577 *self
3578 }
3579
3580 #[inline(always)]
3581 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3582 *self
3583 }
3584}
3585
3586impl<'new_alloc> CloneIn<'new_alloc> for FormalParameters<'_> {
3587 type Cloned = FormalParameters<'new_alloc>;
3588
3589 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3590 FormalParameters {
3591 span: CloneIn::clone_in(&self.span, allocator),
3592 kind: CloneIn::clone_in(&self.kind, allocator),
3593 items: CloneIn::clone_in(&self.items, allocator),
3594 rest: CloneIn::clone_in(&self.rest, allocator),
3595 }
3596 }
3597
3598 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3599 FormalParameters {
3600 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3601 kind: CloneIn::clone_in_with_semantic_ids(&self.kind, allocator),
3602 items: CloneIn::clone_in_with_semantic_ids(&self.items, allocator),
3603 rest: CloneIn::clone_in_with_semantic_ids(&self.rest, allocator),
3604 }
3605 }
3606}
3607
3608impl<'new_alloc> CloneIn<'new_alloc> for FormalParameter<'_> {
3609 type Cloned = FormalParameter<'new_alloc>;
3610
3611 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3612 FormalParameter {
3613 span: CloneIn::clone_in(&self.span, allocator),
3614 decorators: CloneIn::clone_in(&self.decorators, allocator),
3615 pattern: CloneIn::clone_in(&self.pattern, allocator),
3616 accessibility: CloneIn::clone_in(&self.accessibility, allocator),
3617 readonly: CloneIn::clone_in(&self.readonly, allocator),
3618 r#override: CloneIn::clone_in(&self.r#override, allocator),
3619 }
3620 }
3621
3622 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3623 FormalParameter {
3624 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3625 decorators: CloneIn::clone_in_with_semantic_ids(&self.decorators, allocator),
3626 pattern: CloneIn::clone_in_with_semantic_ids(&self.pattern, allocator),
3627 accessibility: CloneIn::clone_in_with_semantic_ids(&self.accessibility, allocator),
3628 readonly: CloneIn::clone_in_with_semantic_ids(&self.readonly, allocator),
3629 r#override: CloneIn::clone_in_with_semantic_ids(&self.r#override, allocator),
3630 }
3631 }
3632}
3633
3634impl<'new_alloc> CloneIn<'new_alloc> for FormalParameterKind {
3635 type Cloned = FormalParameterKind;
3636
3637 #[inline(always)]
3638 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3639 *self
3640 }
3641
3642 #[inline(always)]
3643 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3644 *self
3645 }
3646}
3647
3648impl<'new_alloc> CloneIn<'new_alloc> for FunctionBody<'_> {
3649 type Cloned = FunctionBody<'new_alloc>;
3650
3651 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3652 FunctionBody {
3653 span: CloneIn::clone_in(&self.span, allocator),
3654 directives: CloneIn::clone_in(&self.directives, allocator),
3655 statements: CloneIn::clone_in(&self.statements, allocator),
3656 }
3657 }
3658
3659 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3660 FunctionBody {
3661 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3662 directives: CloneIn::clone_in_with_semantic_ids(&self.directives, allocator),
3663 statements: CloneIn::clone_in_with_semantic_ids(&self.statements, allocator),
3664 }
3665 }
3666}
3667
3668impl<'new_alloc> CloneIn<'new_alloc> for ArrowFunctionExpression<'_> {
3669 type Cloned = ArrowFunctionExpression<'new_alloc>;
3670
3671 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3672 ArrowFunctionExpression {
3673 span: CloneIn::clone_in(&self.span, allocator),
3674 expression: CloneIn::clone_in(&self.expression, allocator),
3675 r#async: CloneIn::clone_in(&self.r#async, allocator),
3676 type_parameters: CloneIn::clone_in(&self.type_parameters, allocator),
3677 params: CloneIn::clone_in(&self.params, allocator),
3678 return_type: CloneIn::clone_in(&self.return_type, allocator),
3679 body: CloneIn::clone_in(&self.body, allocator),
3680 scope_id: Default::default(),
3681 pure: CloneIn::clone_in(&self.pure, allocator),
3682 pife: CloneIn::clone_in(&self.pife, allocator),
3683 }
3684 }
3685
3686 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3687 ArrowFunctionExpression {
3688 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3689 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
3690 r#async: CloneIn::clone_in_with_semantic_ids(&self.r#async, allocator),
3691 type_parameters: CloneIn::clone_in_with_semantic_ids(&self.type_parameters, allocator),
3692 params: CloneIn::clone_in_with_semantic_ids(&self.params, allocator),
3693 return_type: CloneIn::clone_in_with_semantic_ids(&self.return_type, allocator),
3694 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
3695 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
3696 pure: CloneIn::clone_in_with_semantic_ids(&self.pure, allocator),
3697 pife: CloneIn::clone_in_with_semantic_ids(&self.pife, allocator),
3698 }
3699 }
3700}
3701
3702impl<'new_alloc> CloneIn<'new_alloc> for YieldExpression<'_> {
3703 type Cloned = YieldExpression<'new_alloc>;
3704
3705 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3706 YieldExpression {
3707 span: CloneIn::clone_in(&self.span, allocator),
3708 delegate: CloneIn::clone_in(&self.delegate, allocator),
3709 argument: CloneIn::clone_in(&self.argument, allocator),
3710 }
3711 }
3712
3713 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3714 YieldExpression {
3715 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3716 delegate: CloneIn::clone_in_with_semantic_ids(&self.delegate, allocator),
3717 argument: CloneIn::clone_in_with_semantic_ids(&self.argument, allocator),
3718 }
3719 }
3720}
3721
3722impl<'new_alloc> CloneIn<'new_alloc> for Class<'_> {
3723 type Cloned = Class<'new_alloc>;
3724
3725 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3726 Class {
3727 span: CloneIn::clone_in(&self.span, allocator),
3728 r#type: CloneIn::clone_in(&self.r#type, allocator),
3729 decorators: CloneIn::clone_in(&self.decorators, allocator),
3730 id: CloneIn::clone_in(&self.id, allocator),
3731 type_parameters: CloneIn::clone_in(&self.type_parameters, allocator),
3732 super_class: CloneIn::clone_in(&self.super_class, allocator),
3733 super_type_arguments: CloneIn::clone_in(&self.super_type_arguments, allocator),
3734 implements: CloneIn::clone_in(&self.implements, allocator),
3735 body: CloneIn::clone_in(&self.body, allocator),
3736 r#abstract: CloneIn::clone_in(&self.r#abstract, allocator),
3737 declare: CloneIn::clone_in(&self.declare, allocator),
3738 scope_id: Default::default(),
3739 }
3740 }
3741
3742 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3743 Class {
3744 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3745 r#type: CloneIn::clone_in_with_semantic_ids(&self.r#type, allocator),
3746 decorators: CloneIn::clone_in_with_semantic_ids(&self.decorators, allocator),
3747 id: CloneIn::clone_in_with_semantic_ids(&self.id, allocator),
3748 type_parameters: CloneIn::clone_in_with_semantic_ids(&self.type_parameters, allocator),
3749 super_class: CloneIn::clone_in_with_semantic_ids(&self.super_class, allocator),
3750 super_type_arguments: CloneIn::clone_in_with_semantic_ids(
3751 &self.super_type_arguments,
3752 allocator,
3753 ),
3754 implements: CloneIn::clone_in_with_semantic_ids(&self.implements, allocator),
3755 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
3756 r#abstract: CloneIn::clone_in_with_semantic_ids(&self.r#abstract, allocator),
3757 declare: CloneIn::clone_in_with_semantic_ids(&self.declare, allocator),
3758 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
3759 }
3760 }
3761}
3762
3763impl<'new_alloc> CloneIn<'new_alloc> for ClassType {
3764 type Cloned = ClassType;
3765
3766 #[inline(always)]
3767 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3768 *self
3769 }
3770
3771 #[inline(always)]
3772 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3773 *self
3774 }
3775}
3776
3777impl<'new_alloc> CloneIn<'new_alloc> for ClassBody<'_> {
3778 type Cloned = ClassBody<'new_alloc>;
3779
3780 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3781 ClassBody {
3782 span: CloneIn::clone_in(&self.span, allocator),
3783 body: CloneIn::clone_in(&self.body, allocator),
3784 }
3785 }
3786
3787 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3788 ClassBody {
3789 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3790 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
3791 }
3792 }
3793}
3794
3795impl<'new_alloc> CloneIn<'new_alloc> for ClassElement<'_> {
3796 type Cloned = ClassElement<'new_alloc>;
3797
3798 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3799 match self {
3800 Self::StaticBlock(it) => ClassElement::StaticBlock(CloneIn::clone_in(it, allocator)),
3801 Self::MethodDefinition(it) => {
3802 ClassElement::MethodDefinition(CloneIn::clone_in(it, allocator))
3803 }
3804 Self::PropertyDefinition(it) => {
3805 ClassElement::PropertyDefinition(CloneIn::clone_in(it, allocator))
3806 }
3807 Self::AccessorProperty(it) => {
3808 ClassElement::AccessorProperty(CloneIn::clone_in(it, allocator))
3809 }
3810 Self::TSIndexSignature(it) => {
3811 ClassElement::TSIndexSignature(CloneIn::clone_in(it, allocator))
3812 }
3813 }
3814 }
3815
3816 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3817 match self {
3818 Self::StaticBlock(it) => {
3819 ClassElement::StaticBlock(CloneIn::clone_in_with_semantic_ids(it, allocator))
3820 }
3821 Self::MethodDefinition(it) => {
3822 ClassElement::MethodDefinition(CloneIn::clone_in_with_semantic_ids(it, allocator))
3823 }
3824 Self::PropertyDefinition(it) => {
3825 ClassElement::PropertyDefinition(CloneIn::clone_in_with_semantic_ids(it, allocator))
3826 }
3827 Self::AccessorProperty(it) => {
3828 ClassElement::AccessorProperty(CloneIn::clone_in_with_semantic_ids(it, allocator))
3829 }
3830 Self::TSIndexSignature(it) => {
3831 ClassElement::TSIndexSignature(CloneIn::clone_in_with_semantic_ids(it, allocator))
3832 }
3833 }
3834 }
3835}
3836
3837impl<'new_alloc> CloneIn<'new_alloc> for MethodDefinition<'_> {
3838 type Cloned = MethodDefinition<'new_alloc>;
3839
3840 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3841 MethodDefinition {
3842 span: CloneIn::clone_in(&self.span, allocator),
3843 r#type: CloneIn::clone_in(&self.r#type, allocator),
3844 decorators: CloneIn::clone_in(&self.decorators, allocator),
3845 key: CloneIn::clone_in(&self.key, allocator),
3846 value: CloneIn::clone_in(&self.value, allocator),
3847 kind: CloneIn::clone_in(&self.kind, allocator),
3848 computed: CloneIn::clone_in(&self.computed, allocator),
3849 r#static: CloneIn::clone_in(&self.r#static, allocator),
3850 r#override: CloneIn::clone_in(&self.r#override, allocator),
3851 optional: CloneIn::clone_in(&self.optional, allocator),
3852 accessibility: CloneIn::clone_in(&self.accessibility, allocator),
3853 }
3854 }
3855
3856 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3857 MethodDefinition {
3858 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3859 r#type: CloneIn::clone_in_with_semantic_ids(&self.r#type, allocator),
3860 decorators: CloneIn::clone_in_with_semantic_ids(&self.decorators, allocator),
3861 key: CloneIn::clone_in_with_semantic_ids(&self.key, allocator),
3862 value: CloneIn::clone_in_with_semantic_ids(&self.value, allocator),
3863 kind: CloneIn::clone_in_with_semantic_ids(&self.kind, allocator),
3864 computed: CloneIn::clone_in_with_semantic_ids(&self.computed, allocator),
3865 r#static: CloneIn::clone_in_with_semantic_ids(&self.r#static, allocator),
3866 r#override: CloneIn::clone_in_with_semantic_ids(&self.r#override, allocator),
3867 optional: CloneIn::clone_in_with_semantic_ids(&self.optional, allocator),
3868 accessibility: CloneIn::clone_in_with_semantic_ids(&self.accessibility, allocator),
3869 }
3870 }
3871}
3872
3873impl<'new_alloc> CloneIn<'new_alloc> for MethodDefinitionType {
3874 type Cloned = MethodDefinitionType;
3875
3876 #[inline(always)]
3877 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3878 *self
3879 }
3880
3881 #[inline(always)]
3882 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3883 *self
3884 }
3885}
3886
3887impl<'new_alloc> CloneIn<'new_alloc> for PropertyDefinition<'_> {
3888 type Cloned = PropertyDefinition<'new_alloc>;
3889
3890 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3891 PropertyDefinition {
3892 span: CloneIn::clone_in(&self.span, allocator),
3893 r#type: CloneIn::clone_in(&self.r#type, allocator),
3894 decorators: CloneIn::clone_in(&self.decorators, allocator),
3895 key: CloneIn::clone_in(&self.key, allocator),
3896 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
3897 value: CloneIn::clone_in(&self.value, allocator),
3898 computed: CloneIn::clone_in(&self.computed, allocator),
3899 r#static: CloneIn::clone_in(&self.r#static, allocator),
3900 declare: CloneIn::clone_in(&self.declare, allocator),
3901 r#override: CloneIn::clone_in(&self.r#override, allocator),
3902 optional: CloneIn::clone_in(&self.optional, allocator),
3903 definite: CloneIn::clone_in(&self.definite, allocator),
3904 readonly: CloneIn::clone_in(&self.readonly, allocator),
3905 accessibility: CloneIn::clone_in(&self.accessibility, allocator),
3906 }
3907 }
3908
3909 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3910 PropertyDefinition {
3911 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3912 r#type: CloneIn::clone_in_with_semantic_ids(&self.r#type, allocator),
3913 decorators: CloneIn::clone_in_with_semantic_ids(&self.decorators, allocator),
3914 key: CloneIn::clone_in_with_semantic_ids(&self.key, allocator),
3915 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
3916 value: CloneIn::clone_in_with_semantic_ids(&self.value, allocator),
3917 computed: CloneIn::clone_in_with_semantic_ids(&self.computed, allocator),
3918 r#static: CloneIn::clone_in_with_semantic_ids(&self.r#static, allocator),
3919 declare: CloneIn::clone_in_with_semantic_ids(&self.declare, allocator),
3920 r#override: CloneIn::clone_in_with_semantic_ids(&self.r#override, allocator),
3921 optional: CloneIn::clone_in_with_semantic_ids(&self.optional, allocator),
3922 definite: CloneIn::clone_in_with_semantic_ids(&self.definite, allocator),
3923 readonly: CloneIn::clone_in_with_semantic_ids(&self.readonly, allocator),
3924 accessibility: CloneIn::clone_in_with_semantic_ids(&self.accessibility, allocator),
3925 }
3926 }
3927}
3928
3929impl<'new_alloc> CloneIn<'new_alloc> for PropertyDefinitionType {
3930 type Cloned = PropertyDefinitionType;
3931
3932 #[inline(always)]
3933 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3934 *self
3935 }
3936
3937 #[inline(always)]
3938 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3939 *self
3940 }
3941}
3942
3943impl<'new_alloc> CloneIn<'new_alloc> for MethodDefinitionKind {
3944 type Cloned = MethodDefinitionKind;
3945
3946 #[inline(always)]
3947 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3948 *self
3949 }
3950
3951 #[inline(always)]
3952 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3953 *self
3954 }
3955}
3956
3957impl<'new_alloc> CloneIn<'new_alloc> for PrivateIdentifier<'_> {
3958 type Cloned = PrivateIdentifier<'new_alloc>;
3959
3960 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3961 PrivateIdentifier {
3962 span: CloneIn::clone_in(&self.span, allocator),
3963 name: CloneIn::clone_in(&self.name, allocator),
3964 }
3965 }
3966
3967 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3968 PrivateIdentifier {
3969 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3970 name: CloneIn::clone_in_with_semantic_ids(&self.name, allocator),
3971 }
3972 }
3973}
3974
3975impl<'new_alloc> CloneIn<'new_alloc> for StaticBlock<'_> {
3976 type Cloned = StaticBlock<'new_alloc>;
3977
3978 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3979 StaticBlock {
3980 span: CloneIn::clone_in(&self.span, allocator),
3981 body: CloneIn::clone_in(&self.body, allocator),
3982 scope_id: Default::default(),
3983 }
3984 }
3985
3986 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3987 StaticBlock {
3988 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
3989 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
3990 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
3991 }
3992 }
3993}
3994
3995impl<'new_alloc> CloneIn<'new_alloc> for ModuleDeclaration<'_> {
3996 type Cloned = ModuleDeclaration<'new_alloc>;
3997
3998 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
3999 match self {
4000 Self::ImportDeclaration(it) => {
4001 ModuleDeclaration::ImportDeclaration(CloneIn::clone_in(it, allocator))
4002 }
4003 Self::ExportAllDeclaration(it) => {
4004 ModuleDeclaration::ExportAllDeclaration(CloneIn::clone_in(it, allocator))
4005 }
4006 Self::ExportDefaultDeclaration(it) => {
4007 ModuleDeclaration::ExportDefaultDeclaration(CloneIn::clone_in(it, allocator))
4008 }
4009 Self::ExportNamedDeclaration(it) => {
4010 ModuleDeclaration::ExportNamedDeclaration(CloneIn::clone_in(it, allocator))
4011 }
4012 Self::TSExportAssignment(it) => {
4013 ModuleDeclaration::TSExportAssignment(CloneIn::clone_in(it, allocator))
4014 }
4015 Self::TSNamespaceExportDeclaration(it) => {
4016 ModuleDeclaration::TSNamespaceExportDeclaration(CloneIn::clone_in(it, allocator))
4017 }
4018 }
4019 }
4020
4021 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4022 match self {
4023 Self::ImportDeclaration(it) => ModuleDeclaration::ImportDeclaration(
4024 CloneIn::clone_in_with_semantic_ids(it, allocator),
4025 ),
4026 Self::ExportAllDeclaration(it) => ModuleDeclaration::ExportAllDeclaration(
4027 CloneIn::clone_in_with_semantic_ids(it, allocator),
4028 ),
4029 Self::ExportDefaultDeclaration(it) => ModuleDeclaration::ExportDefaultDeclaration(
4030 CloneIn::clone_in_with_semantic_ids(it, allocator),
4031 ),
4032 Self::ExportNamedDeclaration(it) => ModuleDeclaration::ExportNamedDeclaration(
4033 CloneIn::clone_in_with_semantic_ids(it, allocator),
4034 ),
4035 Self::TSExportAssignment(it) => ModuleDeclaration::TSExportAssignment(
4036 CloneIn::clone_in_with_semantic_ids(it, allocator),
4037 ),
4038 Self::TSNamespaceExportDeclaration(it) => {
4039 ModuleDeclaration::TSNamespaceExportDeclaration(
4040 CloneIn::clone_in_with_semantic_ids(it, allocator),
4041 )
4042 }
4043 }
4044 }
4045}
4046
4047impl<'new_alloc> CloneIn<'new_alloc> for AccessorPropertyType {
4048 type Cloned = AccessorPropertyType;
4049
4050 #[inline(always)]
4051 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4052 *self
4053 }
4054
4055 #[inline(always)]
4056 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4057 *self
4058 }
4059}
4060
4061impl<'new_alloc> CloneIn<'new_alloc> for AccessorProperty<'_> {
4062 type Cloned = AccessorProperty<'new_alloc>;
4063
4064 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4065 AccessorProperty {
4066 span: CloneIn::clone_in(&self.span, allocator),
4067 r#type: CloneIn::clone_in(&self.r#type, allocator),
4068 decorators: CloneIn::clone_in(&self.decorators, allocator),
4069 key: CloneIn::clone_in(&self.key, allocator),
4070 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
4071 value: CloneIn::clone_in(&self.value, allocator),
4072 computed: CloneIn::clone_in(&self.computed, allocator),
4073 r#static: CloneIn::clone_in(&self.r#static, allocator),
4074 r#override: CloneIn::clone_in(&self.r#override, allocator),
4075 definite: CloneIn::clone_in(&self.definite, allocator),
4076 accessibility: CloneIn::clone_in(&self.accessibility, allocator),
4077 }
4078 }
4079
4080 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4081 AccessorProperty {
4082 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4083 r#type: CloneIn::clone_in_with_semantic_ids(&self.r#type, allocator),
4084 decorators: CloneIn::clone_in_with_semantic_ids(&self.decorators, allocator),
4085 key: CloneIn::clone_in_with_semantic_ids(&self.key, allocator),
4086 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
4087 value: CloneIn::clone_in_with_semantic_ids(&self.value, allocator),
4088 computed: CloneIn::clone_in_with_semantic_ids(&self.computed, allocator),
4089 r#static: CloneIn::clone_in_with_semantic_ids(&self.r#static, allocator),
4090 r#override: CloneIn::clone_in_with_semantic_ids(&self.r#override, allocator),
4091 definite: CloneIn::clone_in_with_semantic_ids(&self.definite, allocator),
4092 accessibility: CloneIn::clone_in_with_semantic_ids(&self.accessibility, allocator),
4093 }
4094 }
4095}
4096
4097impl<'new_alloc> CloneIn<'new_alloc> for ImportExpression<'_> {
4098 type Cloned = ImportExpression<'new_alloc>;
4099
4100 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4101 ImportExpression {
4102 span: CloneIn::clone_in(&self.span, allocator),
4103 source: CloneIn::clone_in(&self.source, allocator),
4104 options: CloneIn::clone_in(&self.options, allocator),
4105 phase: CloneIn::clone_in(&self.phase, allocator),
4106 }
4107 }
4108
4109 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4110 ImportExpression {
4111 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4112 source: CloneIn::clone_in_with_semantic_ids(&self.source, allocator),
4113 options: CloneIn::clone_in_with_semantic_ids(&self.options, allocator),
4114 phase: CloneIn::clone_in_with_semantic_ids(&self.phase, allocator),
4115 }
4116 }
4117}
4118
4119impl<'new_alloc> CloneIn<'new_alloc> for ImportDeclaration<'_> {
4120 type Cloned = ImportDeclaration<'new_alloc>;
4121
4122 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4123 ImportDeclaration {
4124 span: CloneIn::clone_in(&self.span, allocator),
4125 specifiers: CloneIn::clone_in(&self.specifiers, allocator),
4126 source: CloneIn::clone_in(&self.source, allocator),
4127 phase: CloneIn::clone_in(&self.phase, allocator),
4128 with_clause: CloneIn::clone_in(&self.with_clause, allocator),
4129 import_kind: CloneIn::clone_in(&self.import_kind, allocator),
4130 }
4131 }
4132
4133 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4134 ImportDeclaration {
4135 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4136 specifiers: CloneIn::clone_in_with_semantic_ids(&self.specifiers, allocator),
4137 source: CloneIn::clone_in_with_semantic_ids(&self.source, allocator),
4138 phase: CloneIn::clone_in_with_semantic_ids(&self.phase, allocator),
4139 with_clause: CloneIn::clone_in_with_semantic_ids(&self.with_clause, allocator),
4140 import_kind: CloneIn::clone_in_with_semantic_ids(&self.import_kind, allocator),
4141 }
4142 }
4143}
4144
4145impl<'new_alloc> CloneIn<'new_alloc> for ImportPhase {
4146 type Cloned = ImportPhase;
4147
4148 #[inline(always)]
4149 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4150 *self
4151 }
4152
4153 #[inline(always)]
4154 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4155 *self
4156 }
4157}
4158
4159impl<'new_alloc> CloneIn<'new_alloc> for ImportDeclarationSpecifier<'_> {
4160 type Cloned = ImportDeclarationSpecifier<'new_alloc>;
4161
4162 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4163 match self {
4164 Self::ImportSpecifier(it) => {
4165 ImportDeclarationSpecifier::ImportSpecifier(CloneIn::clone_in(it, allocator))
4166 }
4167 Self::ImportDefaultSpecifier(it) => {
4168 ImportDeclarationSpecifier::ImportDefaultSpecifier(CloneIn::clone_in(it, allocator))
4169 }
4170 Self::ImportNamespaceSpecifier(it) => {
4171 ImportDeclarationSpecifier::ImportNamespaceSpecifier(CloneIn::clone_in(
4172 it, allocator,
4173 ))
4174 }
4175 }
4176 }
4177
4178 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4179 match self {
4180 Self::ImportSpecifier(it) => ImportDeclarationSpecifier::ImportSpecifier(
4181 CloneIn::clone_in_with_semantic_ids(it, allocator),
4182 ),
4183 Self::ImportDefaultSpecifier(it) => ImportDeclarationSpecifier::ImportDefaultSpecifier(
4184 CloneIn::clone_in_with_semantic_ids(it, allocator),
4185 ),
4186 Self::ImportNamespaceSpecifier(it) => {
4187 ImportDeclarationSpecifier::ImportNamespaceSpecifier(
4188 CloneIn::clone_in_with_semantic_ids(it, allocator),
4189 )
4190 }
4191 }
4192 }
4193}
4194
4195impl<'new_alloc> CloneIn<'new_alloc> for ImportSpecifier<'_> {
4196 type Cloned = ImportSpecifier<'new_alloc>;
4197
4198 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4199 ImportSpecifier {
4200 span: CloneIn::clone_in(&self.span, allocator),
4201 imported: CloneIn::clone_in(&self.imported, allocator),
4202 local: CloneIn::clone_in(&self.local, allocator),
4203 import_kind: CloneIn::clone_in(&self.import_kind, allocator),
4204 }
4205 }
4206
4207 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4208 ImportSpecifier {
4209 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4210 imported: CloneIn::clone_in_with_semantic_ids(&self.imported, allocator),
4211 local: CloneIn::clone_in_with_semantic_ids(&self.local, allocator),
4212 import_kind: CloneIn::clone_in_with_semantic_ids(&self.import_kind, allocator),
4213 }
4214 }
4215}
4216
4217impl<'new_alloc> CloneIn<'new_alloc> for ImportDefaultSpecifier<'_> {
4218 type Cloned = ImportDefaultSpecifier<'new_alloc>;
4219
4220 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4221 ImportDefaultSpecifier {
4222 span: CloneIn::clone_in(&self.span, allocator),
4223 local: CloneIn::clone_in(&self.local, allocator),
4224 }
4225 }
4226
4227 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4228 ImportDefaultSpecifier {
4229 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4230 local: CloneIn::clone_in_with_semantic_ids(&self.local, allocator),
4231 }
4232 }
4233}
4234
4235impl<'new_alloc> CloneIn<'new_alloc> for ImportNamespaceSpecifier<'_> {
4236 type Cloned = ImportNamespaceSpecifier<'new_alloc>;
4237
4238 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4239 ImportNamespaceSpecifier {
4240 span: CloneIn::clone_in(&self.span, allocator),
4241 local: CloneIn::clone_in(&self.local, allocator),
4242 }
4243 }
4244
4245 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4246 ImportNamespaceSpecifier {
4247 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4248 local: CloneIn::clone_in_with_semantic_ids(&self.local, allocator),
4249 }
4250 }
4251}
4252
4253impl<'new_alloc> CloneIn<'new_alloc> for WithClause<'_> {
4254 type Cloned = WithClause<'new_alloc>;
4255
4256 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4257 WithClause {
4258 span: CloneIn::clone_in(&self.span, allocator),
4259 keyword: CloneIn::clone_in(&self.keyword, allocator),
4260 with_entries: CloneIn::clone_in(&self.with_entries, allocator),
4261 }
4262 }
4263
4264 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4265 WithClause {
4266 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4267 keyword: CloneIn::clone_in_with_semantic_ids(&self.keyword, allocator),
4268 with_entries: CloneIn::clone_in_with_semantic_ids(&self.with_entries, allocator),
4269 }
4270 }
4271}
4272
4273impl<'new_alloc> CloneIn<'new_alloc> for WithClauseKeyword {
4274 type Cloned = WithClauseKeyword;
4275
4276 #[inline(always)]
4277 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4278 *self
4279 }
4280
4281 #[inline(always)]
4282 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4283 *self
4284 }
4285}
4286
4287impl<'new_alloc> CloneIn<'new_alloc> for ImportAttribute<'_> {
4288 type Cloned = ImportAttribute<'new_alloc>;
4289
4290 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4291 ImportAttribute {
4292 span: CloneIn::clone_in(&self.span, allocator),
4293 key: CloneIn::clone_in(&self.key, allocator),
4294 value: CloneIn::clone_in(&self.value, allocator),
4295 }
4296 }
4297
4298 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4299 ImportAttribute {
4300 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4301 key: CloneIn::clone_in_with_semantic_ids(&self.key, allocator),
4302 value: CloneIn::clone_in_with_semantic_ids(&self.value, allocator),
4303 }
4304 }
4305}
4306
4307impl<'new_alloc> CloneIn<'new_alloc> for ImportAttributeKey<'_> {
4308 type Cloned = ImportAttributeKey<'new_alloc>;
4309
4310 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4311 match self {
4312 Self::Identifier(it) => {
4313 ImportAttributeKey::Identifier(CloneIn::clone_in(it, allocator))
4314 }
4315 Self::StringLiteral(it) => {
4316 ImportAttributeKey::StringLiteral(CloneIn::clone_in(it, allocator))
4317 }
4318 }
4319 }
4320
4321 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4322 match self {
4323 Self::Identifier(it) => {
4324 ImportAttributeKey::Identifier(CloneIn::clone_in_with_semantic_ids(it, allocator))
4325 }
4326 Self::StringLiteral(it) => ImportAttributeKey::StringLiteral(
4327 CloneIn::clone_in_with_semantic_ids(it, allocator),
4328 ),
4329 }
4330 }
4331}
4332
4333impl<'new_alloc> CloneIn<'new_alloc> for ExportNamedDeclaration<'_> {
4334 type Cloned = ExportNamedDeclaration<'new_alloc>;
4335
4336 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4337 ExportNamedDeclaration {
4338 span: CloneIn::clone_in(&self.span, allocator),
4339 declaration: CloneIn::clone_in(&self.declaration, allocator),
4340 specifiers: CloneIn::clone_in(&self.specifiers, allocator),
4341 source: CloneIn::clone_in(&self.source, allocator),
4342 export_kind: CloneIn::clone_in(&self.export_kind, allocator),
4343 with_clause: CloneIn::clone_in(&self.with_clause, allocator),
4344 }
4345 }
4346
4347 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4348 ExportNamedDeclaration {
4349 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4350 declaration: CloneIn::clone_in_with_semantic_ids(&self.declaration, allocator),
4351 specifiers: CloneIn::clone_in_with_semantic_ids(&self.specifiers, allocator),
4352 source: CloneIn::clone_in_with_semantic_ids(&self.source, allocator),
4353 export_kind: CloneIn::clone_in_with_semantic_ids(&self.export_kind, allocator),
4354 with_clause: CloneIn::clone_in_with_semantic_ids(&self.with_clause, allocator),
4355 }
4356 }
4357}
4358
4359impl<'new_alloc> CloneIn<'new_alloc> for ExportDefaultDeclaration<'_> {
4360 type Cloned = ExportDefaultDeclaration<'new_alloc>;
4361
4362 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4363 ExportDefaultDeclaration {
4364 span: CloneIn::clone_in(&self.span, allocator),
4365 declaration: CloneIn::clone_in(&self.declaration, allocator),
4366 }
4367 }
4368
4369 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4370 ExportDefaultDeclaration {
4371 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4372 declaration: CloneIn::clone_in_with_semantic_ids(&self.declaration, allocator),
4373 }
4374 }
4375}
4376
4377impl<'new_alloc> CloneIn<'new_alloc> for ExportAllDeclaration<'_> {
4378 type Cloned = ExportAllDeclaration<'new_alloc>;
4379
4380 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4381 ExportAllDeclaration {
4382 span: CloneIn::clone_in(&self.span, allocator),
4383 exported: CloneIn::clone_in(&self.exported, allocator),
4384 source: CloneIn::clone_in(&self.source, allocator),
4385 with_clause: CloneIn::clone_in(&self.with_clause, allocator),
4386 export_kind: CloneIn::clone_in(&self.export_kind, allocator),
4387 }
4388 }
4389
4390 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4391 ExportAllDeclaration {
4392 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4393 exported: CloneIn::clone_in_with_semantic_ids(&self.exported, allocator),
4394 source: CloneIn::clone_in_with_semantic_ids(&self.source, allocator),
4395 with_clause: CloneIn::clone_in_with_semantic_ids(&self.with_clause, allocator),
4396 export_kind: CloneIn::clone_in_with_semantic_ids(&self.export_kind, allocator),
4397 }
4398 }
4399}
4400
4401impl<'new_alloc> CloneIn<'new_alloc> for ExportSpecifier<'_> {
4402 type Cloned = ExportSpecifier<'new_alloc>;
4403
4404 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4405 ExportSpecifier {
4406 span: CloneIn::clone_in(&self.span, allocator),
4407 local: CloneIn::clone_in(&self.local, allocator),
4408 exported: CloneIn::clone_in(&self.exported, allocator),
4409 export_kind: CloneIn::clone_in(&self.export_kind, allocator),
4410 }
4411 }
4412
4413 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4414 ExportSpecifier {
4415 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4416 local: CloneIn::clone_in_with_semantic_ids(&self.local, allocator),
4417 exported: CloneIn::clone_in_with_semantic_ids(&self.exported, allocator),
4418 export_kind: CloneIn::clone_in_with_semantic_ids(&self.export_kind, allocator),
4419 }
4420 }
4421}
4422
4423impl<'new_alloc> CloneIn<'new_alloc> for ExportDefaultDeclarationKind<'_> {
4424 type Cloned = ExportDefaultDeclarationKind<'new_alloc>;
4425
4426 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4427 match self {
4428 Self::FunctionDeclaration(it) => {
4429 ExportDefaultDeclarationKind::FunctionDeclaration(CloneIn::clone_in(it, allocator))
4430 }
4431 Self::ClassDeclaration(it) => {
4432 ExportDefaultDeclarationKind::ClassDeclaration(CloneIn::clone_in(it, allocator))
4433 }
4434 Self::TSInterfaceDeclaration(it) => {
4435 ExportDefaultDeclarationKind::TSInterfaceDeclaration(CloneIn::clone_in(
4436 it, allocator,
4437 ))
4438 }
4439 Self::BooleanLiteral(it) => {
4440 ExportDefaultDeclarationKind::BooleanLiteral(CloneIn::clone_in(it, allocator))
4441 }
4442 Self::NullLiteral(it) => {
4443 ExportDefaultDeclarationKind::NullLiteral(CloneIn::clone_in(it, allocator))
4444 }
4445 Self::NumericLiteral(it) => {
4446 ExportDefaultDeclarationKind::NumericLiteral(CloneIn::clone_in(it, allocator))
4447 }
4448 Self::BigIntLiteral(it) => {
4449 ExportDefaultDeclarationKind::BigIntLiteral(CloneIn::clone_in(it, allocator))
4450 }
4451 Self::RegExpLiteral(it) => {
4452 ExportDefaultDeclarationKind::RegExpLiteral(CloneIn::clone_in(it, allocator))
4453 }
4454 Self::StringLiteral(it) => {
4455 ExportDefaultDeclarationKind::StringLiteral(CloneIn::clone_in(it, allocator))
4456 }
4457 Self::TemplateLiteral(it) => {
4458 ExportDefaultDeclarationKind::TemplateLiteral(CloneIn::clone_in(it, allocator))
4459 }
4460 Self::Identifier(it) => {
4461 ExportDefaultDeclarationKind::Identifier(CloneIn::clone_in(it, allocator))
4462 }
4463 Self::MetaProperty(it) => {
4464 ExportDefaultDeclarationKind::MetaProperty(CloneIn::clone_in(it, allocator))
4465 }
4466 Self::Super(it) => {
4467 ExportDefaultDeclarationKind::Super(CloneIn::clone_in(it, allocator))
4468 }
4469 Self::ArrayExpression(it) => {
4470 ExportDefaultDeclarationKind::ArrayExpression(CloneIn::clone_in(it, allocator))
4471 }
4472 Self::ArrowFunctionExpression(it) => {
4473 ExportDefaultDeclarationKind::ArrowFunctionExpression(CloneIn::clone_in(
4474 it, allocator,
4475 ))
4476 }
4477 Self::AssignmentExpression(it) => {
4478 ExportDefaultDeclarationKind::AssignmentExpression(CloneIn::clone_in(it, allocator))
4479 }
4480 Self::AwaitExpression(it) => {
4481 ExportDefaultDeclarationKind::AwaitExpression(CloneIn::clone_in(it, allocator))
4482 }
4483 Self::BinaryExpression(it) => {
4484 ExportDefaultDeclarationKind::BinaryExpression(CloneIn::clone_in(it, allocator))
4485 }
4486 Self::CallExpression(it) => {
4487 ExportDefaultDeclarationKind::CallExpression(CloneIn::clone_in(it, allocator))
4488 }
4489 Self::ChainExpression(it) => {
4490 ExportDefaultDeclarationKind::ChainExpression(CloneIn::clone_in(it, allocator))
4491 }
4492 Self::ClassExpression(it) => {
4493 ExportDefaultDeclarationKind::ClassExpression(CloneIn::clone_in(it, allocator))
4494 }
4495 Self::ConditionalExpression(it) => ExportDefaultDeclarationKind::ConditionalExpression(
4496 CloneIn::clone_in(it, allocator),
4497 ),
4498 Self::FunctionExpression(it) => {
4499 ExportDefaultDeclarationKind::FunctionExpression(CloneIn::clone_in(it, allocator))
4500 }
4501 Self::ImportExpression(it) => {
4502 ExportDefaultDeclarationKind::ImportExpression(CloneIn::clone_in(it, allocator))
4503 }
4504 Self::LogicalExpression(it) => {
4505 ExportDefaultDeclarationKind::LogicalExpression(CloneIn::clone_in(it, allocator))
4506 }
4507 Self::NewExpression(it) => {
4508 ExportDefaultDeclarationKind::NewExpression(CloneIn::clone_in(it, allocator))
4509 }
4510 Self::ObjectExpression(it) => {
4511 ExportDefaultDeclarationKind::ObjectExpression(CloneIn::clone_in(it, allocator))
4512 }
4513 Self::ParenthesizedExpression(it) => {
4514 ExportDefaultDeclarationKind::ParenthesizedExpression(CloneIn::clone_in(
4515 it, allocator,
4516 ))
4517 }
4518 Self::SequenceExpression(it) => {
4519 ExportDefaultDeclarationKind::SequenceExpression(CloneIn::clone_in(it, allocator))
4520 }
4521 Self::TaggedTemplateExpression(it) => {
4522 ExportDefaultDeclarationKind::TaggedTemplateExpression(CloneIn::clone_in(
4523 it, allocator,
4524 ))
4525 }
4526 Self::ThisExpression(it) => {
4527 ExportDefaultDeclarationKind::ThisExpression(CloneIn::clone_in(it, allocator))
4528 }
4529 Self::UnaryExpression(it) => {
4530 ExportDefaultDeclarationKind::UnaryExpression(CloneIn::clone_in(it, allocator))
4531 }
4532 Self::UpdateExpression(it) => {
4533 ExportDefaultDeclarationKind::UpdateExpression(CloneIn::clone_in(it, allocator))
4534 }
4535 Self::YieldExpression(it) => {
4536 ExportDefaultDeclarationKind::YieldExpression(CloneIn::clone_in(it, allocator))
4537 }
4538 Self::PrivateInExpression(it) => {
4539 ExportDefaultDeclarationKind::PrivateInExpression(CloneIn::clone_in(it, allocator))
4540 }
4541 Self::JSXElement(it) => {
4542 ExportDefaultDeclarationKind::JSXElement(CloneIn::clone_in(it, allocator))
4543 }
4544 Self::JSXFragment(it) => {
4545 ExportDefaultDeclarationKind::JSXFragment(CloneIn::clone_in(it, allocator))
4546 }
4547 Self::TSAsExpression(it) => {
4548 ExportDefaultDeclarationKind::TSAsExpression(CloneIn::clone_in(it, allocator))
4549 }
4550 Self::TSSatisfiesExpression(it) => ExportDefaultDeclarationKind::TSSatisfiesExpression(
4551 CloneIn::clone_in(it, allocator),
4552 ),
4553 Self::TSTypeAssertion(it) => {
4554 ExportDefaultDeclarationKind::TSTypeAssertion(CloneIn::clone_in(it, allocator))
4555 }
4556 Self::TSNonNullExpression(it) => {
4557 ExportDefaultDeclarationKind::TSNonNullExpression(CloneIn::clone_in(it, allocator))
4558 }
4559 Self::TSInstantiationExpression(it) => {
4560 ExportDefaultDeclarationKind::TSInstantiationExpression(CloneIn::clone_in(
4561 it, allocator,
4562 ))
4563 }
4564 Self::V8IntrinsicExpression(it) => ExportDefaultDeclarationKind::V8IntrinsicExpression(
4565 CloneIn::clone_in(it, allocator),
4566 ),
4567 Self::ComputedMemberExpression(it) => {
4568 ExportDefaultDeclarationKind::ComputedMemberExpression(CloneIn::clone_in(
4569 it, allocator,
4570 ))
4571 }
4572 Self::StaticMemberExpression(it) => {
4573 ExportDefaultDeclarationKind::StaticMemberExpression(CloneIn::clone_in(
4574 it, allocator,
4575 ))
4576 }
4577 Self::PrivateFieldExpression(it) => {
4578 ExportDefaultDeclarationKind::PrivateFieldExpression(CloneIn::clone_in(
4579 it, allocator,
4580 ))
4581 }
4582 }
4583 }
4584
4585 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4586 match self {
4587 Self::FunctionDeclaration(it) => ExportDefaultDeclarationKind::FunctionDeclaration(
4588 CloneIn::clone_in_with_semantic_ids(it, allocator),
4589 ),
4590 Self::ClassDeclaration(it) => ExportDefaultDeclarationKind::ClassDeclaration(
4591 CloneIn::clone_in_with_semantic_ids(it, allocator),
4592 ),
4593 Self::TSInterfaceDeclaration(it) => {
4594 ExportDefaultDeclarationKind::TSInterfaceDeclaration(
4595 CloneIn::clone_in_with_semantic_ids(it, allocator),
4596 )
4597 }
4598 Self::BooleanLiteral(it) => ExportDefaultDeclarationKind::BooleanLiteral(
4599 CloneIn::clone_in_with_semantic_ids(it, allocator),
4600 ),
4601 Self::NullLiteral(it) => ExportDefaultDeclarationKind::NullLiteral(
4602 CloneIn::clone_in_with_semantic_ids(it, allocator),
4603 ),
4604 Self::NumericLiteral(it) => ExportDefaultDeclarationKind::NumericLiteral(
4605 CloneIn::clone_in_with_semantic_ids(it, allocator),
4606 ),
4607 Self::BigIntLiteral(it) => ExportDefaultDeclarationKind::BigIntLiteral(
4608 CloneIn::clone_in_with_semantic_ids(it, allocator),
4609 ),
4610 Self::RegExpLiteral(it) => ExportDefaultDeclarationKind::RegExpLiteral(
4611 CloneIn::clone_in_with_semantic_ids(it, allocator),
4612 ),
4613 Self::StringLiteral(it) => ExportDefaultDeclarationKind::StringLiteral(
4614 CloneIn::clone_in_with_semantic_ids(it, allocator),
4615 ),
4616 Self::TemplateLiteral(it) => ExportDefaultDeclarationKind::TemplateLiteral(
4617 CloneIn::clone_in_with_semantic_ids(it, allocator),
4618 ),
4619 Self::Identifier(it) => ExportDefaultDeclarationKind::Identifier(
4620 CloneIn::clone_in_with_semantic_ids(it, allocator),
4621 ),
4622 Self::MetaProperty(it) => ExportDefaultDeclarationKind::MetaProperty(
4623 CloneIn::clone_in_with_semantic_ids(it, allocator),
4624 ),
4625 Self::Super(it) => ExportDefaultDeclarationKind::Super(
4626 CloneIn::clone_in_with_semantic_ids(it, allocator),
4627 ),
4628 Self::ArrayExpression(it) => ExportDefaultDeclarationKind::ArrayExpression(
4629 CloneIn::clone_in_with_semantic_ids(it, allocator),
4630 ),
4631 Self::ArrowFunctionExpression(it) => {
4632 ExportDefaultDeclarationKind::ArrowFunctionExpression(
4633 CloneIn::clone_in_with_semantic_ids(it, allocator),
4634 )
4635 }
4636 Self::AssignmentExpression(it) => ExportDefaultDeclarationKind::AssignmentExpression(
4637 CloneIn::clone_in_with_semantic_ids(it, allocator),
4638 ),
4639 Self::AwaitExpression(it) => ExportDefaultDeclarationKind::AwaitExpression(
4640 CloneIn::clone_in_with_semantic_ids(it, allocator),
4641 ),
4642 Self::BinaryExpression(it) => ExportDefaultDeclarationKind::BinaryExpression(
4643 CloneIn::clone_in_with_semantic_ids(it, allocator),
4644 ),
4645 Self::CallExpression(it) => ExportDefaultDeclarationKind::CallExpression(
4646 CloneIn::clone_in_with_semantic_ids(it, allocator),
4647 ),
4648 Self::ChainExpression(it) => ExportDefaultDeclarationKind::ChainExpression(
4649 CloneIn::clone_in_with_semantic_ids(it, allocator),
4650 ),
4651 Self::ClassExpression(it) => ExportDefaultDeclarationKind::ClassExpression(
4652 CloneIn::clone_in_with_semantic_ids(it, allocator),
4653 ),
4654 Self::ConditionalExpression(it) => ExportDefaultDeclarationKind::ConditionalExpression(
4655 CloneIn::clone_in_with_semantic_ids(it, allocator),
4656 ),
4657 Self::FunctionExpression(it) => ExportDefaultDeclarationKind::FunctionExpression(
4658 CloneIn::clone_in_with_semantic_ids(it, allocator),
4659 ),
4660 Self::ImportExpression(it) => ExportDefaultDeclarationKind::ImportExpression(
4661 CloneIn::clone_in_with_semantic_ids(it, allocator),
4662 ),
4663 Self::LogicalExpression(it) => ExportDefaultDeclarationKind::LogicalExpression(
4664 CloneIn::clone_in_with_semantic_ids(it, allocator),
4665 ),
4666 Self::NewExpression(it) => ExportDefaultDeclarationKind::NewExpression(
4667 CloneIn::clone_in_with_semantic_ids(it, allocator),
4668 ),
4669 Self::ObjectExpression(it) => ExportDefaultDeclarationKind::ObjectExpression(
4670 CloneIn::clone_in_with_semantic_ids(it, allocator),
4671 ),
4672 Self::ParenthesizedExpression(it) => {
4673 ExportDefaultDeclarationKind::ParenthesizedExpression(
4674 CloneIn::clone_in_with_semantic_ids(it, allocator),
4675 )
4676 }
4677 Self::SequenceExpression(it) => ExportDefaultDeclarationKind::SequenceExpression(
4678 CloneIn::clone_in_with_semantic_ids(it, allocator),
4679 ),
4680 Self::TaggedTemplateExpression(it) => {
4681 ExportDefaultDeclarationKind::TaggedTemplateExpression(
4682 CloneIn::clone_in_with_semantic_ids(it, allocator),
4683 )
4684 }
4685 Self::ThisExpression(it) => ExportDefaultDeclarationKind::ThisExpression(
4686 CloneIn::clone_in_with_semantic_ids(it, allocator),
4687 ),
4688 Self::UnaryExpression(it) => ExportDefaultDeclarationKind::UnaryExpression(
4689 CloneIn::clone_in_with_semantic_ids(it, allocator),
4690 ),
4691 Self::UpdateExpression(it) => ExportDefaultDeclarationKind::UpdateExpression(
4692 CloneIn::clone_in_with_semantic_ids(it, allocator),
4693 ),
4694 Self::YieldExpression(it) => ExportDefaultDeclarationKind::YieldExpression(
4695 CloneIn::clone_in_with_semantic_ids(it, allocator),
4696 ),
4697 Self::PrivateInExpression(it) => ExportDefaultDeclarationKind::PrivateInExpression(
4698 CloneIn::clone_in_with_semantic_ids(it, allocator),
4699 ),
4700 Self::JSXElement(it) => ExportDefaultDeclarationKind::JSXElement(
4701 CloneIn::clone_in_with_semantic_ids(it, allocator),
4702 ),
4703 Self::JSXFragment(it) => ExportDefaultDeclarationKind::JSXFragment(
4704 CloneIn::clone_in_with_semantic_ids(it, allocator),
4705 ),
4706 Self::TSAsExpression(it) => ExportDefaultDeclarationKind::TSAsExpression(
4707 CloneIn::clone_in_with_semantic_ids(it, allocator),
4708 ),
4709 Self::TSSatisfiesExpression(it) => ExportDefaultDeclarationKind::TSSatisfiesExpression(
4710 CloneIn::clone_in_with_semantic_ids(it, allocator),
4711 ),
4712 Self::TSTypeAssertion(it) => ExportDefaultDeclarationKind::TSTypeAssertion(
4713 CloneIn::clone_in_with_semantic_ids(it, allocator),
4714 ),
4715 Self::TSNonNullExpression(it) => ExportDefaultDeclarationKind::TSNonNullExpression(
4716 CloneIn::clone_in_with_semantic_ids(it, allocator),
4717 ),
4718 Self::TSInstantiationExpression(it) => {
4719 ExportDefaultDeclarationKind::TSInstantiationExpression(
4720 CloneIn::clone_in_with_semantic_ids(it, allocator),
4721 )
4722 }
4723 Self::V8IntrinsicExpression(it) => ExportDefaultDeclarationKind::V8IntrinsicExpression(
4724 CloneIn::clone_in_with_semantic_ids(it, allocator),
4725 ),
4726 Self::ComputedMemberExpression(it) => {
4727 ExportDefaultDeclarationKind::ComputedMemberExpression(
4728 CloneIn::clone_in_with_semantic_ids(it, allocator),
4729 )
4730 }
4731 Self::StaticMemberExpression(it) => {
4732 ExportDefaultDeclarationKind::StaticMemberExpression(
4733 CloneIn::clone_in_with_semantic_ids(it, allocator),
4734 )
4735 }
4736 Self::PrivateFieldExpression(it) => {
4737 ExportDefaultDeclarationKind::PrivateFieldExpression(
4738 CloneIn::clone_in_with_semantic_ids(it, allocator),
4739 )
4740 }
4741 }
4742 }
4743}
4744
4745impl<'new_alloc> CloneIn<'new_alloc> for ModuleExportName<'_> {
4746 type Cloned = ModuleExportName<'new_alloc>;
4747
4748 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4749 match self {
4750 Self::IdentifierName(it) => {
4751 ModuleExportName::IdentifierName(CloneIn::clone_in(it, allocator))
4752 }
4753 Self::IdentifierReference(it) => {
4754 ModuleExportName::IdentifierReference(CloneIn::clone_in(it, allocator))
4755 }
4756 Self::StringLiteral(it) => {
4757 ModuleExportName::StringLiteral(CloneIn::clone_in(it, allocator))
4758 }
4759 }
4760 }
4761
4762 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4763 match self {
4764 Self::IdentifierName(it) => {
4765 ModuleExportName::IdentifierName(CloneIn::clone_in_with_semantic_ids(it, allocator))
4766 }
4767 Self::IdentifierReference(it) => ModuleExportName::IdentifierReference(
4768 CloneIn::clone_in_with_semantic_ids(it, allocator),
4769 ),
4770 Self::StringLiteral(it) => {
4771 ModuleExportName::StringLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
4772 }
4773 }
4774 }
4775}
4776
4777impl<'new_alloc> CloneIn<'new_alloc> for V8IntrinsicExpression<'_> {
4778 type Cloned = V8IntrinsicExpression<'new_alloc>;
4779
4780 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4781 V8IntrinsicExpression {
4782 span: CloneIn::clone_in(&self.span, allocator),
4783 name: CloneIn::clone_in(&self.name, allocator),
4784 arguments: CloneIn::clone_in(&self.arguments, allocator),
4785 }
4786 }
4787
4788 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4789 V8IntrinsicExpression {
4790 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4791 name: CloneIn::clone_in_with_semantic_ids(&self.name, allocator),
4792 arguments: CloneIn::clone_in_with_semantic_ids(&self.arguments, allocator),
4793 }
4794 }
4795}
4796
4797impl<'new_alloc> CloneIn<'new_alloc> for BooleanLiteral {
4798 type Cloned = BooleanLiteral;
4799
4800 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4801 BooleanLiteral {
4802 span: CloneIn::clone_in(&self.span, allocator),
4803 value: CloneIn::clone_in(&self.value, allocator),
4804 }
4805 }
4806
4807 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4808 BooleanLiteral {
4809 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4810 value: CloneIn::clone_in_with_semantic_ids(&self.value, allocator),
4811 }
4812 }
4813}
4814
4815impl<'new_alloc> CloneIn<'new_alloc> for NullLiteral {
4816 type Cloned = NullLiteral;
4817
4818 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4819 NullLiteral { span: CloneIn::clone_in(&self.span, allocator) }
4820 }
4821
4822 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4823 NullLiteral { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
4824 }
4825}
4826
4827impl<'new_alloc> CloneIn<'new_alloc> for NumericLiteral<'_> {
4828 type Cloned = NumericLiteral<'new_alloc>;
4829
4830 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4831 NumericLiteral {
4832 span: CloneIn::clone_in(&self.span, allocator),
4833 value: CloneIn::clone_in(&self.value, allocator),
4834 raw: CloneIn::clone_in(&self.raw, allocator),
4835 base: CloneIn::clone_in(&self.base, allocator),
4836 }
4837 }
4838
4839 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4840 NumericLiteral {
4841 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4842 value: CloneIn::clone_in_with_semantic_ids(&self.value, allocator),
4843 raw: CloneIn::clone_in_with_semantic_ids(&self.raw, allocator),
4844 base: CloneIn::clone_in_with_semantic_ids(&self.base, allocator),
4845 }
4846 }
4847}
4848
4849impl<'new_alloc> CloneIn<'new_alloc> for StringLiteral<'_> {
4850 type Cloned = StringLiteral<'new_alloc>;
4851
4852 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4853 StringLiteral {
4854 span: CloneIn::clone_in(&self.span, allocator),
4855 value: CloneIn::clone_in(&self.value, allocator),
4856 raw: CloneIn::clone_in(&self.raw, allocator),
4857 lone_surrogates: CloneIn::clone_in(&self.lone_surrogates, allocator),
4858 }
4859 }
4860
4861 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4862 StringLiteral {
4863 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4864 value: CloneIn::clone_in_with_semantic_ids(&self.value, allocator),
4865 raw: CloneIn::clone_in_with_semantic_ids(&self.raw, allocator),
4866 lone_surrogates: CloneIn::clone_in_with_semantic_ids(&self.lone_surrogates, allocator),
4867 }
4868 }
4869}
4870
4871impl<'new_alloc> CloneIn<'new_alloc> for BigIntLiteral<'_> {
4872 type Cloned = BigIntLiteral<'new_alloc>;
4873
4874 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4875 BigIntLiteral {
4876 span: CloneIn::clone_in(&self.span, allocator),
4877 value: CloneIn::clone_in(&self.value, allocator),
4878 raw: CloneIn::clone_in(&self.raw, allocator),
4879 base: CloneIn::clone_in(&self.base, allocator),
4880 }
4881 }
4882
4883 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4884 BigIntLiteral {
4885 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4886 value: CloneIn::clone_in_with_semantic_ids(&self.value, allocator),
4887 raw: CloneIn::clone_in_with_semantic_ids(&self.raw, allocator),
4888 base: CloneIn::clone_in_with_semantic_ids(&self.base, allocator),
4889 }
4890 }
4891}
4892
4893impl<'new_alloc> CloneIn<'new_alloc> for RegExpLiteral<'_> {
4894 type Cloned = RegExpLiteral<'new_alloc>;
4895
4896 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4897 RegExpLiteral {
4898 span: CloneIn::clone_in(&self.span, allocator),
4899 regex: CloneIn::clone_in(&self.regex, allocator),
4900 raw: CloneIn::clone_in(&self.raw, allocator),
4901 }
4902 }
4903
4904 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4905 RegExpLiteral {
4906 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4907 regex: CloneIn::clone_in_with_semantic_ids(&self.regex, allocator),
4908 raw: CloneIn::clone_in_with_semantic_ids(&self.raw, allocator),
4909 }
4910 }
4911}
4912
4913impl<'new_alloc> CloneIn<'new_alloc> for RegExp<'_> {
4914 type Cloned = RegExp<'new_alloc>;
4915
4916 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4917 RegExp {
4918 pattern: CloneIn::clone_in(&self.pattern, allocator),
4919 flags: CloneIn::clone_in(&self.flags, allocator),
4920 }
4921 }
4922
4923 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4924 RegExp {
4925 pattern: CloneIn::clone_in_with_semantic_ids(&self.pattern, allocator),
4926 flags: CloneIn::clone_in_with_semantic_ids(&self.flags, allocator),
4927 }
4928 }
4929}
4930
4931impl<'new_alloc> CloneIn<'new_alloc> for RegExpPattern<'_> {
4932 type Cloned = RegExpPattern<'new_alloc>;
4933
4934 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4935 RegExpPattern {
4936 text: CloneIn::clone_in(&self.text, allocator),
4937 pattern: CloneIn::clone_in(&self.pattern, allocator),
4938 }
4939 }
4940
4941 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4942 RegExpPattern {
4943 text: CloneIn::clone_in_with_semantic_ids(&self.text, allocator),
4944 pattern: CloneIn::clone_in_with_semantic_ids(&self.pattern, allocator),
4945 }
4946 }
4947}
4948
4949impl<'new_alloc> CloneIn<'new_alloc> for JSXElement<'_> {
4950 type Cloned = JSXElement<'new_alloc>;
4951
4952 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4953 JSXElement {
4954 span: CloneIn::clone_in(&self.span, allocator),
4955 opening_element: CloneIn::clone_in(&self.opening_element, allocator),
4956 children: CloneIn::clone_in(&self.children, allocator),
4957 closing_element: CloneIn::clone_in(&self.closing_element, allocator),
4958 }
4959 }
4960
4961 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4962 JSXElement {
4963 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4964 opening_element: CloneIn::clone_in_with_semantic_ids(&self.opening_element, allocator),
4965 children: CloneIn::clone_in_with_semantic_ids(&self.children, allocator),
4966 closing_element: CloneIn::clone_in_with_semantic_ids(&self.closing_element, allocator),
4967 }
4968 }
4969}
4970
4971impl<'new_alloc> CloneIn<'new_alloc> for JSXOpeningElement<'_> {
4972 type Cloned = JSXOpeningElement<'new_alloc>;
4973
4974 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4975 JSXOpeningElement {
4976 span: CloneIn::clone_in(&self.span, allocator),
4977 name: CloneIn::clone_in(&self.name, allocator),
4978 type_arguments: CloneIn::clone_in(&self.type_arguments, allocator),
4979 attributes: CloneIn::clone_in(&self.attributes, allocator),
4980 }
4981 }
4982
4983 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4984 JSXOpeningElement {
4985 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
4986 name: CloneIn::clone_in_with_semantic_ids(&self.name, allocator),
4987 type_arguments: CloneIn::clone_in_with_semantic_ids(&self.type_arguments, allocator),
4988 attributes: CloneIn::clone_in_with_semantic_ids(&self.attributes, allocator),
4989 }
4990 }
4991}
4992
4993impl<'new_alloc> CloneIn<'new_alloc> for JSXClosingElement<'_> {
4994 type Cloned = JSXClosingElement<'new_alloc>;
4995
4996 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
4997 JSXClosingElement {
4998 span: CloneIn::clone_in(&self.span, allocator),
4999 name: CloneIn::clone_in(&self.name, allocator),
5000 }
5001 }
5002
5003 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5004 JSXClosingElement {
5005 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
5006 name: CloneIn::clone_in_with_semantic_ids(&self.name, allocator),
5007 }
5008 }
5009}
5010
5011impl<'new_alloc> CloneIn<'new_alloc> for JSXFragment<'_> {
5012 type Cloned = JSXFragment<'new_alloc>;
5013
5014 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5015 JSXFragment {
5016 span: CloneIn::clone_in(&self.span, allocator),
5017 opening_fragment: CloneIn::clone_in(&self.opening_fragment, allocator),
5018 children: CloneIn::clone_in(&self.children, allocator),
5019 closing_fragment: CloneIn::clone_in(&self.closing_fragment, allocator),
5020 }
5021 }
5022
5023 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5024 JSXFragment {
5025 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
5026 opening_fragment: CloneIn::clone_in_with_semantic_ids(
5027 &self.opening_fragment,
5028 allocator,
5029 ),
5030 children: CloneIn::clone_in_with_semantic_ids(&self.children, allocator),
5031 closing_fragment: CloneIn::clone_in_with_semantic_ids(
5032 &self.closing_fragment,
5033 allocator,
5034 ),
5035 }
5036 }
5037}
5038
5039impl<'new_alloc> CloneIn<'new_alloc> for JSXOpeningFragment {
5040 type Cloned = JSXOpeningFragment;
5041
5042 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5043 JSXOpeningFragment { span: CloneIn::clone_in(&self.span, allocator) }
5044 }
5045
5046 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5047 JSXOpeningFragment { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
5048 }
5049}
5050
5051impl<'new_alloc> CloneIn<'new_alloc> for JSXClosingFragment {
5052 type Cloned = JSXClosingFragment;
5053
5054 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5055 JSXClosingFragment { span: CloneIn::clone_in(&self.span, allocator) }
5056 }
5057
5058 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5059 JSXClosingFragment { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
5060 }
5061}
5062
5063impl<'new_alloc> CloneIn<'new_alloc> for JSXElementName<'_> {
5064 type Cloned = JSXElementName<'new_alloc>;
5065
5066 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5067 match self {
5068 Self::Identifier(it) => JSXElementName::Identifier(CloneIn::clone_in(it, allocator)),
5069 Self::IdentifierReference(it) => {
5070 JSXElementName::IdentifierReference(CloneIn::clone_in(it, allocator))
5071 }
5072 Self::NamespacedName(it) => {
5073 JSXElementName::NamespacedName(CloneIn::clone_in(it, allocator))
5074 }
5075 Self::MemberExpression(it) => {
5076 JSXElementName::MemberExpression(CloneIn::clone_in(it, allocator))
5077 }
5078 Self::ThisExpression(it) => {
5079 JSXElementName::ThisExpression(CloneIn::clone_in(it, allocator))
5080 }
5081 }
5082 }
5083
5084 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5085 match self {
5086 Self::Identifier(it) => {
5087 JSXElementName::Identifier(CloneIn::clone_in_with_semantic_ids(it, allocator))
5088 }
5089 Self::IdentifierReference(it) => JSXElementName::IdentifierReference(
5090 CloneIn::clone_in_with_semantic_ids(it, allocator),
5091 ),
5092 Self::NamespacedName(it) => {
5093 JSXElementName::NamespacedName(CloneIn::clone_in_with_semantic_ids(it, allocator))
5094 }
5095 Self::MemberExpression(it) => {
5096 JSXElementName::MemberExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5097 }
5098 Self::ThisExpression(it) => {
5099 JSXElementName::ThisExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5100 }
5101 }
5102 }
5103}
5104
5105impl<'new_alloc> CloneIn<'new_alloc> for JSXNamespacedName<'_> {
5106 type Cloned = JSXNamespacedName<'new_alloc>;
5107
5108 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5109 JSXNamespacedName {
5110 span: CloneIn::clone_in(&self.span, allocator),
5111 namespace: CloneIn::clone_in(&self.namespace, allocator),
5112 name: CloneIn::clone_in(&self.name, allocator),
5113 }
5114 }
5115
5116 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5117 JSXNamespacedName {
5118 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
5119 namespace: CloneIn::clone_in_with_semantic_ids(&self.namespace, allocator),
5120 name: CloneIn::clone_in_with_semantic_ids(&self.name, allocator),
5121 }
5122 }
5123}
5124
5125impl<'new_alloc> CloneIn<'new_alloc> for JSXMemberExpression<'_> {
5126 type Cloned = JSXMemberExpression<'new_alloc>;
5127
5128 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5129 JSXMemberExpression {
5130 span: CloneIn::clone_in(&self.span, allocator),
5131 object: CloneIn::clone_in(&self.object, allocator),
5132 property: CloneIn::clone_in(&self.property, allocator),
5133 }
5134 }
5135
5136 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5137 JSXMemberExpression {
5138 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
5139 object: CloneIn::clone_in_with_semantic_ids(&self.object, allocator),
5140 property: CloneIn::clone_in_with_semantic_ids(&self.property, allocator),
5141 }
5142 }
5143}
5144
5145impl<'new_alloc> CloneIn<'new_alloc> for JSXMemberExpressionObject<'_> {
5146 type Cloned = JSXMemberExpressionObject<'new_alloc>;
5147
5148 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5149 match self {
5150 Self::IdentifierReference(it) => {
5151 JSXMemberExpressionObject::IdentifierReference(CloneIn::clone_in(it, allocator))
5152 }
5153 Self::MemberExpression(it) => {
5154 JSXMemberExpressionObject::MemberExpression(CloneIn::clone_in(it, allocator))
5155 }
5156 Self::ThisExpression(it) => {
5157 JSXMemberExpressionObject::ThisExpression(CloneIn::clone_in(it, allocator))
5158 }
5159 }
5160 }
5161
5162 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5163 match self {
5164 Self::IdentifierReference(it) => JSXMemberExpressionObject::IdentifierReference(
5165 CloneIn::clone_in_with_semantic_ids(it, allocator),
5166 ),
5167 Self::MemberExpression(it) => JSXMemberExpressionObject::MemberExpression(
5168 CloneIn::clone_in_with_semantic_ids(it, allocator),
5169 ),
5170 Self::ThisExpression(it) => JSXMemberExpressionObject::ThisExpression(
5171 CloneIn::clone_in_with_semantic_ids(it, allocator),
5172 ),
5173 }
5174 }
5175}
5176
5177impl<'new_alloc> CloneIn<'new_alloc> for JSXExpressionContainer<'_> {
5178 type Cloned = JSXExpressionContainer<'new_alloc>;
5179
5180 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5181 JSXExpressionContainer {
5182 span: CloneIn::clone_in(&self.span, allocator),
5183 expression: CloneIn::clone_in(&self.expression, allocator),
5184 }
5185 }
5186
5187 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5188 JSXExpressionContainer {
5189 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
5190 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
5191 }
5192 }
5193}
5194
5195impl<'new_alloc> CloneIn<'new_alloc> for JSXExpression<'_> {
5196 type Cloned = JSXExpression<'new_alloc>;
5197
5198 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5199 match self {
5200 Self::EmptyExpression(it) => {
5201 JSXExpression::EmptyExpression(CloneIn::clone_in(it, allocator))
5202 }
5203 Self::BooleanLiteral(it) => {
5204 JSXExpression::BooleanLiteral(CloneIn::clone_in(it, allocator))
5205 }
5206 Self::NullLiteral(it) => JSXExpression::NullLiteral(CloneIn::clone_in(it, allocator)),
5207 Self::NumericLiteral(it) => {
5208 JSXExpression::NumericLiteral(CloneIn::clone_in(it, allocator))
5209 }
5210 Self::BigIntLiteral(it) => {
5211 JSXExpression::BigIntLiteral(CloneIn::clone_in(it, allocator))
5212 }
5213 Self::RegExpLiteral(it) => {
5214 JSXExpression::RegExpLiteral(CloneIn::clone_in(it, allocator))
5215 }
5216 Self::StringLiteral(it) => {
5217 JSXExpression::StringLiteral(CloneIn::clone_in(it, allocator))
5218 }
5219 Self::TemplateLiteral(it) => {
5220 JSXExpression::TemplateLiteral(CloneIn::clone_in(it, allocator))
5221 }
5222 Self::Identifier(it) => JSXExpression::Identifier(CloneIn::clone_in(it, allocator)),
5223 Self::MetaProperty(it) => JSXExpression::MetaProperty(CloneIn::clone_in(it, allocator)),
5224 Self::Super(it) => JSXExpression::Super(CloneIn::clone_in(it, allocator)),
5225 Self::ArrayExpression(it) => {
5226 JSXExpression::ArrayExpression(CloneIn::clone_in(it, allocator))
5227 }
5228 Self::ArrowFunctionExpression(it) => {
5229 JSXExpression::ArrowFunctionExpression(CloneIn::clone_in(it, allocator))
5230 }
5231 Self::AssignmentExpression(it) => {
5232 JSXExpression::AssignmentExpression(CloneIn::clone_in(it, allocator))
5233 }
5234 Self::AwaitExpression(it) => {
5235 JSXExpression::AwaitExpression(CloneIn::clone_in(it, allocator))
5236 }
5237 Self::BinaryExpression(it) => {
5238 JSXExpression::BinaryExpression(CloneIn::clone_in(it, allocator))
5239 }
5240 Self::CallExpression(it) => {
5241 JSXExpression::CallExpression(CloneIn::clone_in(it, allocator))
5242 }
5243 Self::ChainExpression(it) => {
5244 JSXExpression::ChainExpression(CloneIn::clone_in(it, allocator))
5245 }
5246 Self::ClassExpression(it) => {
5247 JSXExpression::ClassExpression(CloneIn::clone_in(it, allocator))
5248 }
5249 Self::ConditionalExpression(it) => {
5250 JSXExpression::ConditionalExpression(CloneIn::clone_in(it, allocator))
5251 }
5252 Self::FunctionExpression(it) => {
5253 JSXExpression::FunctionExpression(CloneIn::clone_in(it, allocator))
5254 }
5255 Self::ImportExpression(it) => {
5256 JSXExpression::ImportExpression(CloneIn::clone_in(it, allocator))
5257 }
5258 Self::LogicalExpression(it) => {
5259 JSXExpression::LogicalExpression(CloneIn::clone_in(it, allocator))
5260 }
5261 Self::NewExpression(it) => {
5262 JSXExpression::NewExpression(CloneIn::clone_in(it, allocator))
5263 }
5264 Self::ObjectExpression(it) => {
5265 JSXExpression::ObjectExpression(CloneIn::clone_in(it, allocator))
5266 }
5267 Self::ParenthesizedExpression(it) => {
5268 JSXExpression::ParenthesizedExpression(CloneIn::clone_in(it, allocator))
5269 }
5270 Self::SequenceExpression(it) => {
5271 JSXExpression::SequenceExpression(CloneIn::clone_in(it, allocator))
5272 }
5273 Self::TaggedTemplateExpression(it) => {
5274 JSXExpression::TaggedTemplateExpression(CloneIn::clone_in(it, allocator))
5275 }
5276 Self::ThisExpression(it) => {
5277 JSXExpression::ThisExpression(CloneIn::clone_in(it, allocator))
5278 }
5279 Self::UnaryExpression(it) => {
5280 JSXExpression::UnaryExpression(CloneIn::clone_in(it, allocator))
5281 }
5282 Self::UpdateExpression(it) => {
5283 JSXExpression::UpdateExpression(CloneIn::clone_in(it, allocator))
5284 }
5285 Self::YieldExpression(it) => {
5286 JSXExpression::YieldExpression(CloneIn::clone_in(it, allocator))
5287 }
5288 Self::PrivateInExpression(it) => {
5289 JSXExpression::PrivateInExpression(CloneIn::clone_in(it, allocator))
5290 }
5291 Self::JSXElement(it) => JSXExpression::JSXElement(CloneIn::clone_in(it, allocator)),
5292 Self::JSXFragment(it) => JSXExpression::JSXFragment(CloneIn::clone_in(it, allocator)),
5293 Self::TSAsExpression(it) => {
5294 JSXExpression::TSAsExpression(CloneIn::clone_in(it, allocator))
5295 }
5296 Self::TSSatisfiesExpression(it) => {
5297 JSXExpression::TSSatisfiesExpression(CloneIn::clone_in(it, allocator))
5298 }
5299 Self::TSTypeAssertion(it) => {
5300 JSXExpression::TSTypeAssertion(CloneIn::clone_in(it, allocator))
5301 }
5302 Self::TSNonNullExpression(it) => {
5303 JSXExpression::TSNonNullExpression(CloneIn::clone_in(it, allocator))
5304 }
5305 Self::TSInstantiationExpression(it) => {
5306 JSXExpression::TSInstantiationExpression(CloneIn::clone_in(it, allocator))
5307 }
5308 Self::V8IntrinsicExpression(it) => {
5309 JSXExpression::V8IntrinsicExpression(CloneIn::clone_in(it, allocator))
5310 }
5311 Self::ComputedMemberExpression(it) => {
5312 JSXExpression::ComputedMemberExpression(CloneIn::clone_in(it, allocator))
5313 }
5314 Self::StaticMemberExpression(it) => {
5315 JSXExpression::StaticMemberExpression(CloneIn::clone_in(it, allocator))
5316 }
5317 Self::PrivateFieldExpression(it) => {
5318 JSXExpression::PrivateFieldExpression(CloneIn::clone_in(it, allocator))
5319 }
5320 }
5321 }
5322
5323 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5324 match self {
5325 Self::EmptyExpression(it) => {
5326 JSXExpression::EmptyExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5327 }
5328 Self::BooleanLiteral(it) => {
5329 JSXExpression::BooleanLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
5330 }
5331 Self::NullLiteral(it) => {
5332 JSXExpression::NullLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
5333 }
5334 Self::NumericLiteral(it) => {
5335 JSXExpression::NumericLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
5336 }
5337 Self::BigIntLiteral(it) => {
5338 JSXExpression::BigIntLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
5339 }
5340 Self::RegExpLiteral(it) => {
5341 JSXExpression::RegExpLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
5342 }
5343 Self::StringLiteral(it) => {
5344 JSXExpression::StringLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
5345 }
5346 Self::TemplateLiteral(it) => {
5347 JSXExpression::TemplateLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
5348 }
5349 Self::Identifier(it) => {
5350 JSXExpression::Identifier(CloneIn::clone_in_with_semantic_ids(it, allocator))
5351 }
5352 Self::MetaProperty(it) => {
5353 JSXExpression::MetaProperty(CloneIn::clone_in_with_semantic_ids(it, allocator))
5354 }
5355 Self::Super(it) => {
5356 JSXExpression::Super(CloneIn::clone_in_with_semantic_ids(it, allocator))
5357 }
5358 Self::ArrayExpression(it) => {
5359 JSXExpression::ArrayExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5360 }
5361 Self::ArrowFunctionExpression(it) => JSXExpression::ArrowFunctionExpression(
5362 CloneIn::clone_in_with_semantic_ids(it, allocator),
5363 ),
5364 Self::AssignmentExpression(it) => JSXExpression::AssignmentExpression(
5365 CloneIn::clone_in_with_semantic_ids(it, allocator),
5366 ),
5367 Self::AwaitExpression(it) => {
5368 JSXExpression::AwaitExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5369 }
5370 Self::BinaryExpression(it) => {
5371 JSXExpression::BinaryExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5372 }
5373 Self::CallExpression(it) => {
5374 JSXExpression::CallExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5375 }
5376 Self::ChainExpression(it) => {
5377 JSXExpression::ChainExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5378 }
5379 Self::ClassExpression(it) => {
5380 JSXExpression::ClassExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5381 }
5382 Self::ConditionalExpression(it) => JSXExpression::ConditionalExpression(
5383 CloneIn::clone_in_with_semantic_ids(it, allocator),
5384 ),
5385 Self::FunctionExpression(it) => JSXExpression::FunctionExpression(
5386 CloneIn::clone_in_with_semantic_ids(it, allocator),
5387 ),
5388 Self::ImportExpression(it) => {
5389 JSXExpression::ImportExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5390 }
5391 Self::LogicalExpression(it) => {
5392 JSXExpression::LogicalExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5393 }
5394 Self::NewExpression(it) => {
5395 JSXExpression::NewExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5396 }
5397 Self::ObjectExpression(it) => {
5398 JSXExpression::ObjectExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5399 }
5400 Self::ParenthesizedExpression(it) => JSXExpression::ParenthesizedExpression(
5401 CloneIn::clone_in_with_semantic_ids(it, allocator),
5402 ),
5403 Self::SequenceExpression(it) => JSXExpression::SequenceExpression(
5404 CloneIn::clone_in_with_semantic_ids(it, allocator),
5405 ),
5406 Self::TaggedTemplateExpression(it) => JSXExpression::TaggedTemplateExpression(
5407 CloneIn::clone_in_with_semantic_ids(it, allocator),
5408 ),
5409 Self::ThisExpression(it) => {
5410 JSXExpression::ThisExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5411 }
5412 Self::UnaryExpression(it) => {
5413 JSXExpression::UnaryExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5414 }
5415 Self::UpdateExpression(it) => {
5416 JSXExpression::UpdateExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5417 }
5418 Self::YieldExpression(it) => {
5419 JSXExpression::YieldExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5420 }
5421 Self::PrivateInExpression(it) => JSXExpression::PrivateInExpression(
5422 CloneIn::clone_in_with_semantic_ids(it, allocator),
5423 ),
5424 Self::JSXElement(it) => {
5425 JSXExpression::JSXElement(CloneIn::clone_in_with_semantic_ids(it, allocator))
5426 }
5427 Self::JSXFragment(it) => {
5428 JSXExpression::JSXFragment(CloneIn::clone_in_with_semantic_ids(it, allocator))
5429 }
5430 Self::TSAsExpression(it) => {
5431 JSXExpression::TSAsExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5432 }
5433 Self::TSSatisfiesExpression(it) => JSXExpression::TSSatisfiesExpression(
5434 CloneIn::clone_in_with_semantic_ids(it, allocator),
5435 ),
5436 Self::TSTypeAssertion(it) => {
5437 JSXExpression::TSTypeAssertion(CloneIn::clone_in_with_semantic_ids(it, allocator))
5438 }
5439 Self::TSNonNullExpression(it) => JSXExpression::TSNonNullExpression(
5440 CloneIn::clone_in_with_semantic_ids(it, allocator),
5441 ),
5442 Self::TSInstantiationExpression(it) => JSXExpression::TSInstantiationExpression(
5443 CloneIn::clone_in_with_semantic_ids(it, allocator),
5444 ),
5445 Self::V8IntrinsicExpression(it) => JSXExpression::V8IntrinsicExpression(
5446 CloneIn::clone_in_with_semantic_ids(it, allocator),
5447 ),
5448 Self::ComputedMemberExpression(it) => JSXExpression::ComputedMemberExpression(
5449 CloneIn::clone_in_with_semantic_ids(it, allocator),
5450 ),
5451 Self::StaticMemberExpression(it) => JSXExpression::StaticMemberExpression(
5452 CloneIn::clone_in_with_semantic_ids(it, allocator),
5453 ),
5454 Self::PrivateFieldExpression(it) => JSXExpression::PrivateFieldExpression(
5455 CloneIn::clone_in_with_semantic_ids(it, allocator),
5456 ),
5457 }
5458 }
5459}
5460
5461impl<'new_alloc> CloneIn<'new_alloc> for JSXEmptyExpression {
5462 type Cloned = JSXEmptyExpression;
5463
5464 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5465 JSXEmptyExpression { span: CloneIn::clone_in(&self.span, allocator) }
5466 }
5467
5468 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5469 JSXEmptyExpression { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
5470 }
5471}
5472
5473impl<'new_alloc> CloneIn<'new_alloc> for JSXAttributeItem<'_> {
5474 type Cloned = JSXAttributeItem<'new_alloc>;
5475
5476 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5477 match self {
5478 Self::Attribute(it) => JSXAttributeItem::Attribute(CloneIn::clone_in(it, allocator)),
5479 Self::SpreadAttribute(it) => {
5480 JSXAttributeItem::SpreadAttribute(CloneIn::clone_in(it, allocator))
5481 }
5482 }
5483 }
5484
5485 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5486 match self {
5487 Self::Attribute(it) => {
5488 JSXAttributeItem::Attribute(CloneIn::clone_in_with_semantic_ids(it, allocator))
5489 }
5490 Self::SpreadAttribute(it) => JSXAttributeItem::SpreadAttribute(
5491 CloneIn::clone_in_with_semantic_ids(it, allocator),
5492 ),
5493 }
5494 }
5495}
5496
5497impl<'new_alloc> CloneIn<'new_alloc> for JSXAttribute<'_> {
5498 type Cloned = JSXAttribute<'new_alloc>;
5499
5500 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5501 JSXAttribute {
5502 span: CloneIn::clone_in(&self.span, allocator),
5503 name: CloneIn::clone_in(&self.name, allocator),
5504 value: CloneIn::clone_in(&self.value, allocator),
5505 }
5506 }
5507
5508 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5509 JSXAttribute {
5510 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
5511 name: CloneIn::clone_in_with_semantic_ids(&self.name, allocator),
5512 value: CloneIn::clone_in_with_semantic_ids(&self.value, allocator),
5513 }
5514 }
5515}
5516
5517impl<'new_alloc> CloneIn<'new_alloc> for JSXSpreadAttribute<'_> {
5518 type Cloned = JSXSpreadAttribute<'new_alloc>;
5519
5520 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5521 JSXSpreadAttribute {
5522 span: CloneIn::clone_in(&self.span, allocator),
5523 argument: CloneIn::clone_in(&self.argument, allocator),
5524 }
5525 }
5526
5527 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5528 JSXSpreadAttribute {
5529 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
5530 argument: CloneIn::clone_in_with_semantic_ids(&self.argument, allocator),
5531 }
5532 }
5533}
5534
5535impl<'new_alloc> CloneIn<'new_alloc> for JSXAttributeName<'_> {
5536 type Cloned = JSXAttributeName<'new_alloc>;
5537
5538 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5539 match self {
5540 Self::Identifier(it) => JSXAttributeName::Identifier(CloneIn::clone_in(it, allocator)),
5541 Self::NamespacedName(it) => {
5542 JSXAttributeName::NamespacedName(CloneIn::clone_in(it, allocator))
5543 }
5544 }
5545 }
5546
5547 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5548 match self {
5549 Self::Identifier(it) => {
5550 JSXAttributeName::Identifier(CloneIn::clone_in_with_semantic_ids(it, allocator))
5551 }
5552 Self::NamespacedName(it) => {
5553 JSXAttributeName::NamespacedName(CloneIn::clone_in_with_semantic_ids(it, allocator))
5554 }
5555 }
5556 }
5557}
5558
5559impl<'new_alloc> CloneIn<'new_alloc> for JSXAttributeValue<'_> {
5560 type Cloned = JSXAttributeValue<'new_alloc>;
5561
5562 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5563 match self {
5564 Self::StringLiteral(it) => {
5565 JSXAttributeValue::StringLiteral(CloneIn::clone_in(it, allocator))
5566 }
5567 Self::ExpressionContainer(it) => {
5568 JSXAttributeValue::ExpressionContainer(CloneIn::clone_in(it, allocator))
5569 }
5570 Self::Element(it) => JSXAttributeValue::Element(CloneIn::clone_in(it, allocator)),
5571 Self::Fragment(it) => JSXAttributeValue::Fragment(CloneIn::clone_in(it, allocator)),
5572 }
5573 }
5574
5575 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5576 match self {
5577 Self::StringLiteral(it) => {
5578 JSXAttributeValue::StringLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
5579 }
5580 Self::ExpressionContainer(it) => JSXAttributeValue::ExpressionContainer(
5581 CloneIn::clone_in_with_semantic_ids(it, allocator),
5582 ),
5583 Self::Element(it) => {
5584 JSXAttributeValue::Element(CloneIn::clone_in_with_semantic_ids(it, allocator))
5585 }
5586 Self::Fragment(it) => {
5587 JSXAttributeValue::Fragment(CloneIn::clone_in_with_semantic_ids(it, allocator))
5588 }
5589 }
5590 }
5591}
5592
5593impl<'new_alloc> CloneIn<'new_alloc> for JSXIdentifier<'_> {
5594 type Cloned = JSXIdentifier<'new_alloc>;
5595
5596 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5597 JSXIdentifier {
5598 span: CloneIn::clone_in(&self.span, allocator),
5599 name: CloneIn::clone_in(&self.name, allocator),
5600 }
5601 }
5602
5603 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5604 JSXIdentifier {
5605 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
5606 name: CloneIn::clone_in_with_semantic_ids(&self.name, allocator),
5607 }
5608 }
5609}
5610
5611impl<'new_alloc> CloneIn<'new_alloc> for JSXChild<'_> {
5612 type Cloned = JSXChild<'new_alloc>;
5613
5614 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5615 match self {
5616 Self::Text(it) => JSXChild::Text(CloneIn::clone_in(it, allocator)),
5617 Self::Element(it) => JSXChild::Element(CloneIn::clone_in(it, allocator)),
5618 Self::Fragment(it) => JSXChild::Fragment(CloneIn::clone_in(it, allocator)),
5619 Self::ExpressionContainer(it) => {
5620 JSXChild::ExpressionContainer(CloneIn::clone_in(it, allocator))
5621 }
5622 Self::Spread(it) => JSXChild::Spread(CloneIn::clone_in(it, allocator)),
5623 }
5624 }
5625
5626 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5627 match self {
5628 Self::Text(it) => JSXChild::Text(CloneIn::clone_in_with_semantic_ids(it, allocator)),
5629 Self::Element(it) => {
5630 JSXChild::Element(CloneIn::clone_in_with_semantic_ids(it, allocator))
5631 }
5632 Self::Fragment(it) => {
5633 JSXChild::Fragment(CloneIn::clone_in_with_semantic_ids(it, allocator))
5634 }
5635 Self::ExpressionContainer(it) => {
5636 JSXChild::ExpressionContainer(CloneIn::clone_in_with_semantic_ids(it, allocator))
5637 }
5638 Self::Spread(it) => {
5639 JSXChild::Spread(CloneIn::clone_in_with_semantic_ids(it, allocator))
5640 }
5641 }
5642 }
5643}
5644
5645impl<'new_alloc> CloneIn<'new_alloc> for JSXSpreadChild<'_> {
5646 type Cloned = JSXSpreadChild<'new_alloc>;
5647
5648 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5649 JSXSpreadChild {
5650 span: CloneIn::clone_in(&self.span, allocator),
5651 expression: CloneIn::clone_in(&self.expression, allocator),
5652 }
5653 }
5654
5655 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5656 JSXSpreadChild {
5657 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
5658 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
5659 }
5660 }
5661}
5662
5663impl<'new_alloc> CloneIn<'new_alloc> for JSXText<'_> {
5664 type Cloned = JSXText<'new_alloc>;
5665
5666 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5667 JSXText {
5668 span: CloneIn::clone_in(&self.span, allocator),
5669 value: CloneIn::clone_in(&self.value, allocator),
5670 raw: CloneIn::clone_in(&self.raw, allocator),
5671 }
5672 }
5673
5674 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5675 JSXText {
5676 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
5677 value: CloneIn::clone_in_with_semantic_ids(&self.value, allocator),
5678 raw: CloneIn::clone_in_with_semantic_ids(&self.raw, allocator),
5679 }
5680 }
5681}
5682
5683impl<'new_alloc> CloneIn<'new_alloc> for TSThisParameter<'_> {
5684 type Cloned = TSThisParameter<'new_alloc>;
5685
5686 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5687 TSThisParameter {
5688 span: CloneIn::clone_in(&self.span, allocator),
5689 this_span: CloneIn::clone_in(&self.this_span, allocator),
5690 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
5691 }
5692 }
5693
5694 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5695 TSThisParameter {
5696 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
5697 this_span: CloneIn::clone_in_with_semantic_ids(&self.this_span, allocator),
5698 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
5699 }
5700 }
5701}
5702
5703impl<'new_alloc> CloneIn<'new_alloc> for TSEnumDeclaration<'_> {
5704 type Cloned = TSEnumDeclaration<'new_alloc>;
5705
5706 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5707 TSEnumDeclaration {
5708 span: CloneIn::clone_in(&self.span, allocator),
5709 id: CloneIn::clone_in(&self.id, allocator),
5710 body: CloneIn::clone_in(&self.body, allocator),
5711 r#const: CloneIn::clone_in(&self.r#const, allocator),
5712 declare: CloneIn::clone_in(&self.declare, allocator),
5713 scope_id: Default::default(),
5714 }
5715 }
5716
5717 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5718 TSEnumDeclaration {
5719 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
5720 id: CloneIn::clone_in_with_semantic_ids(&self.id, allocator),
5721 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
5722 r#const: CloneIn::clone_in_with_semantic_ids(&self.r#const, allocator),
5723 declare: CloneIn::clone_in_with_semantic_ids(&self.declare, allocator),
5724 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
5725 }
5726 }
5727}
5728
5729impl<'new_alloc> CloneIn<'new_alloc> for TSEnumBody<'_> {
5730 type Cloned = TSEnumBody<'new_alloc>;
5731
5732 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5733 TSEnumBody {
5734 span: CloneIn::clone_in(&self.span, allocator),
5735 members: CloneIn::clone_in(&self.members, allocator),
5736 }
5737 }
5738
5739 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5740 TSEnumBody {
5741 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
5742 members: CloneIn::clone_in_with_semantic_ids(&self.members, allocator),
5743 }
5744 }
5745}
5746
5747impl<'new_alloc> CloneIn<'new_alloc> for TSEnumMember<'_> {
5748 type Cloned = TSEnumMember<'new_alloc>;
5749
5750 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5751 TSEnumMember {
5752 span: CloneIn::clone_in(&self.span, allocator),
5753 id: CloneIn::clone_in(&self.id, allocator),
5754 initializer: CloneIn::clone_in(&self.initializer, allocator),
5755 }
5756 }
5757
5758 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5759 TSEnumMember {
5760 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
5761 id: CloneIn::clone_in_with_semantic_ids(&self.id, allocator),
5762 initializer: CloneIn::clone_in_with_semantic_ids(&self.initializer, allocator),
5763 }
5764 }
5765}
5766
5767impl<'new_alloc> CloneIn<'new_alloc> for TSEnumMemberName<'_> {
5768 type Cloned = TSEnumMemberName<'new_alloc>;
5769
5770 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5771 match self {
5772 Self::Identifier(it) => TSEnumMemberName::Identifier(CloneIn::clone_in(it, allocator)),
5773 Self::String(it) => TSEnumMemberName::String(CloneIn::clone_in(it, allocator)),
5774 Self::ComputedString(it) => {
5775 TSEnumMemberName::ComputedString(CloneIn::clone_in(it, allocator))
5776 }
5777 Self::ComputedTemplateString(it) => {
5778 TSEnumMemberName::ComputedTemplateString(CloneIn::clone_in(it, allocator))
5779 }
5780 }
5781 }
5782
5783 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5784 match self {
5785 Self::Identifier(it) => {
5786 TSEnumMemberName::Identifier(CloneIn::clone_in_with_semantic_ids(it, allocator))
5787 }
5788 Self::String(it) => {
5789 TSEnumMemberName::String(CloneIn::clone_in_with_semantic_ids(it, allocator))
5790 }
5791 Self::ComputedString(it) => {
5792 TSEnumMemberName::ComputedString(CloneIn::clone_in_with_semantic_ids(it, allocator))
5793 }
5794 Self::ComputedTemplateString(it) => TSEnumMemberName::ComputedTemplateString(
5795 CloneIn::clone_in_with_semantic_ids(it, allocator),
5796 ),
5797 }
5798 }
5799}
5800
5801impl<'new_alloc> CloneIn<'new_alloc> for TSTypeAnnotation<'_> {
5802 type Cloned = TSTypeAnnotation<'new_alloc>;
5803
5804 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5805 TSTypeAnnotation {
5806 span: CloneIn::clone_in(&self.span, allocator),
5807 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
5808 }
5809 }
5810
5811 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5812 TSTypeAnnotation {
5813 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
5814 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
5815 }
5816 }
5817}
5818
5819impl<'new_alloc> CloneIn<'new_alloc> for TSLiteralType<'_> {
5820 type Cloned = TSLiteralType<'new_alloc>;
5821
5822 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5823 TSLiteralType {
5824 span: CloneIn::clone_in(&self.span, allocator),
5825 literal: CloneIn::clone_in(&self.literal, allocator),
5826 }
5827 }
5828
5829 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5830 TSLiteralType {
5831 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
5832 literal: CloneIn::clone_in_with_semantic_ids(&self.literal, allocator),
5833 }
5834 }
5835}
5836
5837impl<'new_alloc> CloneIn<'new_alloc> for TSLiteral<'_> {
5838 type Cloned = TSLiteral<'new_alloc>;
5839
5840 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5841 match self {
5842 Self::BooleanLiteral(it) => TSLiteral::BooleanLiteral(CloneIn::clone_in(it, allocator)),
5843 Self::NumericLiteral(it) => TSLiteral::NumericLiteral(CloneIn::clone_in(it, allocator)),
5844 Self::BigIntLiteral(it) => TSLiteral::BigIntLiteral(CloneIn::clone_in(it, allocator)),
5845 Self::StringLiteral(it) => TSLiteral::StringLiteral(CloneIn::clone_in(it, allocator)),
5846 Self::TemplateLiteral(it) => {
5847 TSLiteral::TemplateLiteral(CloneIn::clone_in(it, allocator))
5848 }
5849 Self::UnaryExpression(it) => {
5850 TSLiteral::UnaryExpression(CloneIn::clone_in(it, allocator))
5851 }
5852 }
5853 }
5854
5855 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5856 match self {
5857 Self::BooleanLiteral(it) => {
5858 TSLiteral::BooleanLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
5859 }
5860 Self::NumericLiteral(it) => {
5861 TSLiteral::NumericLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
5862 }
5863 Self::BigIntLiteral(it) => {
5864 TSLiteral::BigIntLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
5865 }
5866 Self::StringLiteral(it) => {
5867 TSLiteral::StringLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
5868 }
5869 Self::TemplateLiteral(it) => {
5870 TSLiteral::TemplateLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
5871 }
5872 Self::UnaryExpression(it) => {
5873 TSLiteral::UnaryExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
5874 }
5875 }
5876 }
5877}
5878
5879impl<'new_alloc> CloneIn<'new_alloc> for TSType<'_> {
5880 type Cloned = TSType<'new_alloc>;
5881
5882 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5883 match self {
5884 Self::TSAnyKeyword(it) => TSType::TSAnyKeyword(CloneIn::clone_in(it, allocator)),
5885 Self::TSBigIntKeyword(it) => TSType::TSBigIntKeyword(CloneIn::clone_in(it, allocator)),
5886 Self::TSBooleanKeyword(it) => {
5887 TSType::TSBooleanKeyword(CloneIn::clone_in(it, allocator))
5888 }
5889 Self::TSIntrinsicKeyword(it) => {
5890 TSType::TSIntrinsicKeyword(CloneIn::clone_in(it, allocator))
5891 }
5892 Self::TSNeverKeyword(it) => TSType::TSNeverKeyword(CloneIn::clone_in(it, allocator)),
5893 Self::TSNullKeyword(it) => TSType::TSNullKeyword(CloneIn::clone_in(it, allocator)),
5894 Self::TSNumberKeyword(it) => TSType::TSNumberKeyword(CloneIn::clone_in(it, allocator)),
5895 Self::TSObjectKeyword(it) => TSType::TSObjectKeyword(CloneIn::clone_in(it, allocator)),
5896 Self::TSStringKeyword(it) => TSType::TSStringKeyword(CloneIn::clone_in(it, allocator)),
5897 Self::TSSymbolKeyword(it) => TSType::TSSymbolKeyword(CloneIn::clone_in(it, allocator)),
5898 Self::TSUndefinedKeyword(it) => {
5899 TSType::TSUndefinedKeyword(CloneIn::clone_in(it, allocator))
5900 }
5901 Self::TSUnknownKeyword(it) => {
5902 TSType::TSUnknownKeyword(CloneIn::clone_in(it, allocator))
5903 }
5904 Self::TSVoidKeyword(it) => TSType::TSVoidKeyword(CloneIn::clone_in(it, allocator)),
5905 Self::TSArrayType(it) => TSType::TSArrayType(CloneIn::clone_in(it, allocator)),
5906 Self::TSConditionalType(it) => {
5907 TSType::TSConditionalType(CloneIn::clone_in(it, allocator))
5908 }
5909 Self::TSConstructorType(it) => {
5910 TSType::TSConstructorType(CloneIn::clone_in(it, allocator))
5911 }
5912 Self::TSFunctionType(it) => TSType::TSFunctionType(CloneIn::clone_in(it, allocator)),
5913 Self::TSImportType(it) => TSType::TSImportType(CloneIn::clone_in(it, allocator)),
5914 Self::TSIndexedAccessType(it) => {
5915 TSType::TSIndexedAccessType(CloneIn::clone_in(it, allocator))
5916 }
5917 Self::TSInferType(it) => TSType::TSInferType(CloneIn::clone_in(it, allocator)),
5918 Self::TSIntersectionType(it) => {
5919 TSType::TSIntersectionType(CloneIn::clone_in(it, allocator))
5920 }
5921 Self::TSLiteralType(it) => TSType::TSLiteralType(CloneIn::clone_in(it, allocator)),
5922 Self::TSMappedType(it) => TSType::TSMappedType(CloneIn::clone_in(it, allocator)),
5923 Self::TSNamedTupleMember(it) => {
5924 TSType::TSNamedTupleMember(CloneIn::clone_in(it, allocator))
5925 }
5926 Self::TSTemplateLiteralType(it) => {
5927 TSType::TSTemplateLiteralType(CloneIn::clone_in(it, allocator))
5928 }
5929 Self::TSThisType(it) => TSType::TSThisType(CloneIn::clone_in(it, allocator)),
5930 Self::TSTupleType(it) => TSType::TSTupleType(CloneIn::clone_in(it, allocator)),
5931 Self::TSTypeLiteral(it) => TSType::TSTypeLiteral(CloneIn::clone_in(it, allocator)),
5932 Self::TSTypeOperatorType(it) => {
5933 TSType::TSTypeOperatorType(CloneIn::clone_in(it, allocator))
5934 }
5935 Self::TSTypePredicate(it) => TSType::TSTypePredicate(CloneIn::clone_in(it, allocator)),
5936 Self::TSTypeQuery(it) => TSType::TSTypeQuery(CloneIn::clone_in(it, allocator)),
5937 Self::TSTypeReference(it) => TSType::TSTypeReference(CloneIn::clone_in(it, allocator)),
5938 Self::TSUnionType(it) => TSType::TSUnionType(CloneIn::clone_in(it, allocator)),
5939 Self::TSParenthesizedType(it) => {
5940 TSType::TSParenthesizedType(CloneIn::clone_in(it, allocator))
5941 }
5942 Self::JSDocNullableType(it) => {
5943 TSType::JSDocNullableType(CloneIn::clone_in(it, allocator))
5944 }
5945 Self::JSDocNonNullableType(it) => {
5946 TSType::JSDocNonNullableType(CloneIn::clone_in(it, allocator))
5947 }
5948 Self::JSDocUnknownType(it) => {
5949 TSType::JSDocUnknownType(CloneIn::clone_in(it, allocator))
5950 }
5951 }
5952 }
5953
5954 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
5955 match self {
5956 Self::TSAnyKeyword(it) => {
5957 TSType::TSAnyKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
5958 }
5959 Self::TSBigIntKeyword(it) => {
5960 TSType::TSBigIntKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
5961 }
5962 Self::TSBooleanKeyword(it) => {
5963 TSType::TSBooleanKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
5964 }
5965 Self::TSIntrinsicKeyword(it) => {
5966 TSType::TSIntrinsicKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
5967 }
5968 Self::TSNeverKeyword(it) => {
5969 TSType::TSNeverKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
5970 }
5971 Self::TSNullKeyword(it) => {
5972 TSType::TSNullKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
5973 }
5974 Self::TSNumberKeyword(it) => {
5975 TSType::TSNumberKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
5976 }
5977 Self::TSObjectKeyword(it) => {
5978 TSType::TSObjectKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
5979 }
5980 Self::TSStringKeyword(it) => {
5981 TSType::TSStringKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
5982 }
5983 Self::TSSymbolKeyword(it) => {
5984 TSType::TSSymbolKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
5985 }
5986 Self::TSUndefinedKeyword(it) => {
5987 TSType::TSUndefinedKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
5988 }
5989 Self::TSUnknownKeyword(it) => {
5990 TSType::TSUnknownKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
5991 }
5992 Self::TSVoidKeyword(it) => {
5993 TSType::TSVoidKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
5994 }
5995 Self::TSArrayType(it) => {
5996 TSType::TSArrayType(CloneIn::clone_in_with_semantic_ids(it, allocator))
5997 }
5998 Self::TSConditionalType(it) => {
5999 TSType::TSConditionalType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6000 }
6001 Self::TSConstructorType(it) => {
6002 TSType::TSConstructorType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6003 }
6004 Self::TSFunctionType(it) => {
6005 TSType::TSFunctionType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6006 }
6007 Self::TSImportType(it) => {
6008 TSType::TSImportType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6009 }
6010 Self::TSIndexedAccessType(it) => {
6011 TSType::TSIndexedAccessType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6012 }
6013 Self::TSInferType(it) => {
6014 TSType::TSInferType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6015 }
6016 Self::TSIntersectionType(it) => {
6017 TSType::TSIntersectionType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6018 }
6019 Self::TSLiteralType(it) => {
6020 TSType::TSLiteralType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6021 }
6022 Self::TSMappedType(it) => {
6023 TSType::TSMappedType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6024 }
6025 Self::TSNamedTupleMember(it) => {
6026 TSType::TSNamedTupleMember(CloneIn::clone_in_with_semantic_ids(it, allocator))
6027 }
6028 Self::TSTemplateLiteralType(it) => {
6029 TSType::TSTemplateLiteralType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6030 }
6031 Self::TSThisType(it) => {
6032 TSType::TSThisType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6033 }
6034 Self::TSTupleType(it) => {
6035 TSType::TSTupleType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6036 }
6037 Self::TSTypeLiteral(it) => {
6038 TSType::TSTypeLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
6039 }
6040 Self::TSTypeOperatorType(it) => {
6041 TSType::TSTypeOperatorType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6042 }
6043 Self::TSTypePredicate(it) => {
6044 TSType::TSTypePredicate(CloneIn::clone_in_with_semantic_ids(it, allocator))
6045 }
6046 Self::TSTypeQuery(it) => {
6047 TSType::TSTypeQuery(CloneIn::clone_in_with_semantic_ids(it, allocator))
6048 }
6049 Self::TSTypeReference(it) => {
6050 TSType::TSTypeReference(CloneIn::clone_in_with_semantic_ids(it, allocator))
6051 }
6052 Self::TSUnionType(it) => {
6053 TSType::TSUnionType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6054 }
6055 Self::TSParenthesizedType(it) => {
6056 TSType::TSParenthesizedType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6057 }
6058 Self::JSDocNullableType(it) => {
6059 TSType::JSDocNullableType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6060 }
6061 Self::JSDocNonNullableType(it) => {
6062 TSType::JSDocNonNullableType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6063 }
6064 Self::JSDocUnknownType(it) => {
6065 TSType::JSDocUnknownType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6066 }
6067 }
6068 }
6069}
6070
6071impl<'new_alloc> CloneIn<'new_alloc> for TSConditionalType<'_> {
6072 type Cloned = TSConditionalType<'new_alloc>;
6073
6074 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6075 TSConditionalType {
6076 span: CloneIn::clone_in(&self.span, allocator),
6077 check_type: CloneIn::clone_in(&self.check_type, allocator),
6078 extends_type: CloneIn::clone_in(&self.extends_type, allocator),
6079 true_type: CloneIn::clone_in(&self.true_type, allocator),
6080 false_type: CloneIn::clone_in(&self.false_type, allocator),
6081 scope_id: Default::default(),
6082 }
6083 }
6084
6085 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6086 TSConditionalType {
6087 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6088 check_type: CloneIn::clone_in_with_semantic_ids(&self.check_type, allocator),
6089 extends_type: CloneIn::clone_in_with_semantic_ids(&self.extends_type, allocator),
6090 true_type: CloneIn::clone_in_with_semantic_ids(&self.true_type, allocator),
6091 false_type: CloneIn::clone_in_with_semantic_ids(&self.false_type, allocator),
6092 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
6093 }
6094 }
6095}
6096
6097impl<'new_alloc> CloneIn<'new_alloc> for TSUnionType<'_> {
6098 type Cloned = TSUnionType<'new_alloc>;
6099
6100 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6101 TSUnionType {
6102 span: CloneIn::clone_in(&self.span, allocator),
6103 types: CloneIn::clone_in(&self.types, allocator),
6104 }
6105 }
6106
6107 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6108 TSUnionType {
6109 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6110 types: CloneIn::clone_in_with_semantic_ids(&self.types, allocator),
6111 }
6112 }
6113}
6114
6115impl<'new_alloc> CloneIn<'new_alloc> for TSIntersectionType<'_> {
6116 type Cloned = TSIntersectionType<'new_alloc>;
6117
6118 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6119 TSIntersectionType {
6120 span: CloneIn::clone_in(&self.span, allocator),
6121 types: CloneIn::clone_in(&self.types, allocator),
6122 }
6123 }
6124
6125 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6126 TSIntersectionType {
6127 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6128 types: CloneIn::clone_in_with_semantic_ids(&self.types, allocator),
6129 }
6130 }
6131}
6132
6133impl<'new_alloc> CloneIn<'new_alloc> for TSParenthesizedType<'_> {
6134 type Cloned = TSParenthesizedType<'new_alloc>;
6135
6136 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6137 TSParenthesizedType {
6138 span: CloneIn::clone_in(&self.span, allocator),
6139 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
6140 }
6141 }
6142
6143 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6144 TSParenthesizedType {
6145 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6146 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
6147 }
6148 }
6149}
6150
6151impl<'new_alloc> CloneIn<'new_alloc> for TSTypeOperator<'_> {
6152 type Cloned = TSTypeOperator<'new_alloc>;
6153
6154 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6155 TSTypeOperator {
6156 span: CloneIn::clone_in(&self.span, allocator),
6157 operator: CloneIn::clone_in(&self.operator, allocator),
6158 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
6159 }
6160 }
6161
6162 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6163 TSTypeOperator {
6164 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6165 operator: CloneIn::clone_in_with_semantic_ids(&self.operator, allocator),
6166 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
6167 }
6168 }
6169}
6170
6171impl<'new_alloc> CloneIn<'new_alloc> for TSTypeOperatorOperator {
6172 type Cloned = TSTypeOperatorOperator;
6173
6174 #[inline(always)]
6175 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6176 *self
6177 }
6178
6179 #[inline(always)]
6180 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6181 *self
6182 }
6183}
6184
6185impl<'new_alloc> CloneIn<'new_alloc> for TSArrayType<'_> {
6186 type Cloned = TSArrayType<'new_alloc>;
6187
6188 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6189 TSArrayType {
6190 span: CloneIn::clone_in(&self.span, allocator),
6191 element_type: CloneIn::clone_in(&self.element_type, allocator),
6192 }
6193 }
6194
6195 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6196 TSArrayType {
6197 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6198 element_type: CloneIn::clone_in_with_semantic_ids(&self.element_type, allocator),
6199 }
6200 }
6201}
6202
6203impl<'new_alloc> CloneIn<'new_alloc> for TSIndexedAccessType<'_> {
6204 type Cloned = TSIndexedAccessType<'new_alloc>;
6205
6206 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6207 TSIndexedAccessType {
6208 span: CloneIn::clone_in(&self.span, allocator),
6209 object_type: CloneIn::clone_in(&self.object_type, allocator),
6210 index_type: CloneIn::clone_in(&self.index_type, allocator),
6211 }
6212 }
6213
6214 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6215 TSIndexedAccessType {
6216 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6217 object_type: CloneIn::clone_in_with_semantic_ids(&self.object_type, allocator),
6218 index_type: CloneIn::clone_in_with_semantic_ids(&self.index_type, allocator),
6219 }
6220 }
6221}
6222
6223impl<'new_alloc> CloneIn<'new_alloc> for TSTupleType<'_> {
6224 type Cloned = TSTupleType<'new_alloc>;
6225
6226 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6227 TSTupleType {
6228 span: CloneIn::clone_in(&self.span, allocator),
6229 element_types: CloneIn::clone_in(&self.element_types, allocator),
6230 }
6231 }
6232
6233 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6234 TSTupleType {
6235 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6236 element_types: CloneIn::clone_in_with_semantic_ids(&self.element_types, allocator),
6237 }
6238 }
6239}
6240
6241impl<'new_alloc> CloneIn<'new_alloc> for TSNamedTupleMember<'_> {
6242 type Cloned = TSNamedTupleMember<'new_alloc>;
6243
6244 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6245 TSNamedTupleMember {
6246 span: CloneIn::clone_in(&self.span, allocator),
6247 label: CloneIn::clone_in(&self.label, allocator),
6248 element_type: CloneIn::clone_in(&self.element_type, allocator),
6249 optional: CloneIn::clone_in(&self.optional, allocator),
6250 }
6251 }
6252
6253 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6254 TSNamedTupleMember {
6255 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6256 label: CloneIn::clone_in_with_semantic_ids(&self.label, allocator),
6257 element_type: CloneIn::clone_in_with_semantic_ids(&self.element_type, allocator),
6258 optional: CloneIn::clone_in_with_semantic_ids(&self.optional, allocator),
6259 }
6260 }
6261}
6262
6263impl<'new_alloc> CloneIn<'new_alloc> for TSOptionalType<'_> {
6264 type Cloned = TSOptionalType<'new_alloc>;
6265
6266 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6267 TSOptionalType {
6268 span: CloneIn::clone_in(&self.span, allocator),
6269 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
6270 }
6271 }
6272
6273 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6274 TSOptionalType {
6275 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6276 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
6277 }
6278 }
6279}
6280
6281impl<'new_alloc> CloneIn<'new_alloc> for TSRestType<'_> {
6282 type Cloned = TSRestType<'new_alloc>;
6283
6284 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6285 TSRestType {
6286 span: CloneIn::clone_in(&self.span, allocator),
6287 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
6288 }
6289 }
6290
6291 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6292 TSRestType {
6293 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6294 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
6295 }
6296 }
6297}
6298
6299impl<'new_alloc> CloneIn<'new_alloc> for TSTupleElement<'_> {
6300 type Cloned = TSTupleElement<'new_alloc>;
6301
6302 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6303 match self {
6304 Self::TSOptionalType(it) => {
6305 TSTupleElement::TSOptionalType(CloneIn::clone_in(it, allocator))
6306 }
6307 Self::TSRestType(it) => TSTupleElement::TSRestType(CloneIn::clone_in(it, allocator)),
6308 Self::TSAnyKeyword(it) => {
6309 TSTupleElement::TSAnyKeyword(CloneIn::clone_in(it, allocator))
6310 }
6311 Self::TSBigIntKeyword(it) => {
6312 TSTupleElement::TSBigIntKeyword(CloneIn::clone_in(it, allocator))
6313 }
6314 Self::TSBooleanKeyword(it) => {
6315 TSTupleElement::TSBooleanKeyword(CloneIn::clone_in(it, allocator))
6316 }
6317 Self::TSIntrinsicKeyword(it) => {
6318 TSTupleElement::TSIntrinsicKeyword(CloneIn::clone_in(it, allocator))
6319 }
6320 Self::TSNeverKeyword(it) => {
6321 TSTupleElement::TSNeverKeyword(CloneIn::clone_in(it, allocator))
6322 }
6323 Self::TSNullKeyword(it) => {
6324 TSTupleElement::TSNullKeyword(CloneIn::clone_in(it, allocator))
6325 }
6326 Self::TSNumberKeyword(it) => {
6327 TSTupleElement::TSNumberKeyword(CloneIn::clone_in(it, allocator))
6328 }
6329 Self::TSObjectKeyword(it) => {
6330 TSTupleElement::TSObjectKeyword(CloneIn::clone_in(it, allocator))
6331 }
6332 Self::TSStringKeyword(it) => {
6333 TSTupleElement::TSStringKeyword(CloneIn::clone_in(it, allocator))
6334 }
6335 Self::TSSymbolKeyword(it) => {
6336 TSTupleElement::TSSymbolKeyword(CloneIn::clone_in(it, allocator))
6337 }
6338 Self::TSUndefinedKeyword(it) => {
6339 TSTupleElement::TSUndefinedKeyword(CloneIn::clone_in(it, allocator))
6340 }
6341 Self::TSUnknownKeyword(it) => {
6342 TSTupleElement::TSUnknownKeyword(CloneIn::clone_in(it, allocator))
6343 }
6344 Self::TSVoidKeyword(it) => {
6345 TSTupleElement::TSVoidKeyword(CloneIn::clone_in(it, allocator))
6346 }
6347 Self::TSArrayType(it) => TSTupleElement::TSArrayType(CloneIn::clone_in(it, allocator)),
6348 Self::TSConditionalType(it) => {
6349 TSTupleElement::TSConditionalType(CloneIn::clone_in(it, allocator))
6350 }
6351 Self::TSConstructorType(it) => {
6352 TSTupleElement::TSConstructorType(CloneIn::clone_in(it, allocator))
6353 }
6354 Self::TSFunctionType(it) => {
6355 TSTupleElement::TSFunctionType(CloneIn::clone_in(it, allocator))
6356 }
6357 Self::TSImportType(it) => {
6358 TSTupleElement::TSImportType(CloneIn::clone_in(it, allocator))
6359 }
6360 Self::TSIndexedAccessType(it) => {
6361 TSTupleElement::TSIndexedAccessType(CloneIn::clone_in(it, allocator))
6362 }
6363 Self::TSInferType(it) => TSTupleElement::TSInferType(CloneIn::clone_in(it, allocator)),
6364 Self::TSIntersectionType(it) => {
6365 TSTupleElement::TSIntersectionType(CloneIn::clone_in(it, allocator))
6366 }
6367 Self::TSLiteralType(it) => {
6368 TSTupleElement::TSLiteralType(CloneIn::clone_in(it, allocator))
6369 }
6370 Self::TSMappedType(it) => {
6371 TSTupleElement::TSMappedType(CloneIn::clone_in(it, allocator))
6372 }
6373 Self::TSNamedTupleMember(it) => {
6374 TSTupleElement::TSNamedTupleMember(CloneIn::clone_in(it, allocator))
6375 }
6376 Self::TSTemplateLiteralType(it) => {
6377 TSTupleElement::TSTemplateLiteralType(CloneIn::clone_in(it, allocator))
6378 }
6379 Self::TSThisType(it) => TSTupleElement::TSThisType(CloneIn::clone_in(it, allocator)),
6380 Self::TSTupleType(it) => TSTupleElement::TSTupleType(CloneIn::clone_in(it, allocator)),
6381 Self::TSTypeLiteral(it) => {
6382 TSTupleElement::TSTypeLiteral(CloneIn::clone_in(it, allocator))
6383 }
6384 Self::TSTypeOperatorType(it) => {
6385 TSTupleElement::TSTypeOperatorType(CloneIn::clone_in(it, allocator))
6386 }
6387 Self::TSTypePredicate(it) => {
6388 TSTupleElement::TSTypePredicate(CloneIn::clone_in(it, allocator))
6389 }
6390 Self::TSTypeQuery(it) => TSTupleElement::TSTypeQuery(CloneIn::clone_in(it, allocator)),
6391 Self::TSTypeReference(it) => {
6392 TSTupleElement::TSTypeReference(CloneIn::clone_in(it, allocator))
6393 }
6394 Self::TSUnionType(it) => TSTupleElement::TSUnionType(CloneIn::clone_in(it, allocator)),
6395 Self::TSParenthesizedType(it) => {
6396 TSTupleElement::TSParenthesizedType(CloneIn::clone_in(it, allocator))
6397 }
6398 Self::JSDocNullableType(it) => {
6399 TSTupleElement::JSDocNullableType(CloneIn::clone_in(it, allocator))
6400 }
6401 Self::JSDocNonNullableType(it) => {
6402 TSTupleElement::JSDocNonNullableType(CloneIn::clone_in(it, allocator))
6403 }
6404 Self::JSDocUnknownType(it) => {
6405 TSTupleElement::JSDocUnknownType(CloneIn::clone_in(it, allocator))
6406 }
6407 }
6408 }
6409
6410 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6411 match self {
6412 Self::TSOptionalType(it) => {
6413 TSTupleElement::TSOptionalType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6414 }
6415 Self::TSRestType(it) => {
6416 TSTupleElement::TSRestType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6417 }
6418 Self::TSAnyKeyword(it) => {
6419 TSTupleElement::TSAnyKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
6420 }
6421 Self::TSBigIntKeyword(it) => {
6422 TSTupleElement::TSBigIntKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
6423 }
6424 Self::TSBooleanKeyword(it) => {
6425 TSTupleElement::TSBooleanKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
6426 }
6427 Self::TSIntrinsicKeyword(it) => TSTupleElement::TSIntrinsicKeyword(
6428 CloneIn::clone_in_with_semantic_ids(it, allocator),
6429 ),
6430 Self::TSNeverKeyword(it) => {
6431 TSTupleElement::TSNeverKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
6432 }
6433 Self::TSNullKeyword(it) => {
6434 TSTupleElement::TSNullKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
6435 }
6436 Self::TSNumberKeyword(it) => {
6437 TSTupleElement::TSNumberKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
6438 }
6439 Self::TSObjectKeyword(it) => {
6440 TSTupleElement::TSObjectKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
6441 }
6442 Self::TSStringKeyword(it) => {
6443 TSTupleElement::TSStringKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
6444 }
6445 Self::TSSymbolKeyword(it) => {
6446 TSTupleElement::TSSymbolKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
6447 }
6448 Self::TSUndefinedKeyword(it) => TSTupleElement::TSUndefinedKeyword(
6449 CloneIn::clone_in_with_semantic_ids(it, allocator),
6450 ),
6451 Self::TSUnknownKeyword(it) => {
6452 TSTupleElement::TSUnknownKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
6453 }
6454 Self::TSVoidKeyword(it) => {
6455 TSTupleElement::TSVoidKeyword(CloneIn::clone_in_with_semantic_ids(it, allocator))
6456 }
6457 Self::TSArrayType(it) => {
6458 TSTupleElement::TSArrayType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6459 }
6460 Self::TSConditionalType(it) => TSTupleElement::TSConditionalType(
6461 CloneIn::clone_in_with_semantic_ids(it, allocator),
6462 ),
6463 Self::TSConstructorType(it) => TSTupleElement::TSConstructorType(
6464 CloneIn::clone_in_with_semantic_ids(it, allocator),
6465 ),
6466 Self::TSFunctionType(it) => {
6467 TSTupleElement::TSFunctionType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6468 }
6469 Self::TSImportType(it) => {
6470 TSTupleElement::TSImportType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6471 }
6472 Self::TSIndexedAccessType(it) => TSTupleElement::TSIndexedAccessType(
6473 CloneIn::clone_in_with_semantic_ids(it, allocator),
6474 ),
6475 Self::TSInferType(it) => {
6476 TSTupleElement::TSInferType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6477 }
6478 Self::TSIntersectionType(it) => TSTupleElement::TSIntersectionType(
6479 CloneIn::clone_in_with_semantic_ids(it, allocator),
6480 ),
6481 Self::TSLiteralType(it) => {
6482 TSTupleElement::TSLiteralType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6483 }
6484 Self::TSMappedType(it) => {
6485 TSTupleElement::TSMappedType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6486 }
6487 Self::TSNamedTupleMember(it) => TSTupleElement::TSNamedTupleMember(
6488 CloneIn::clone_in_with_semantic_ids(it, allocator),
6489 ),
6490 Self::TSTemplateLiteralType(it) => TSTupleElement::TSTemplateLiteralType(
6491 CloneIn::clone_in_with_semantic_ids(it, allocator),
6492 ),
6493 Self::TSThisType(it) => {
6494 TSTupleElement::TSThisType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6495 }
6496 Self::TSTupleType(it) => {
6497 TSTupleElement::TSTupleType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6498 }
6499 Self::TSTypeLiteral(it) => {
6500 TSTupleElement::TSTypeLiteral(CloneIn::clone_in_with_semantic_ids(it, allocator))
6501 }
6502 Self::TSTypeOperatorType(it) => TSTupleElement::TSTypeOperatorType(
6503 CloneIn::clone_in_with_semantic_ids(it, allocator),
6504 ),
6505 Self::TSTypePredicate(it) => {
6506 TSTupleElement::TSTypePredicate(CloneIn::clone_in_with_semantic_ids(it, allocator))
6507 }
6508 Self::TSTypeQuery(it) => {
6509 TSTupleElement::TSTypeQuery(CloneIn::clone_in_with_semantic_ids(it, allocator))
6510 }
6511 Self::TSTypeReference(it) => {
6512 TSTupleElement::TSTypeReference(CloneIn::clone_in_with_semantic_ids(it, allocator))
6513 }
6514 Self::TSUnionType(it) => {
6515 TSTupleElement::TSUnionType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6516 }
6517 Self::TSParenthesizedType(it) => TSTupleElement::TSParenthesizedType(
6518 CloneIn::clone_in_with_semantic_ids(it, allocator),
6519 ),
6520 Self::JSDocNullableType(it) => TSTupleElement::JSDocNullableType(
6521 CloneIn::clone_in_with_semantic_ids(it, allocator),
6522 ),
6523 Self::JSDocNonNullableType(it) => TSTupleElement::JSDocNonNullableType(
6524 CloneIn::clone_in_with_semantic_ids(it, allocator),
6525 ),
6526 Self::JSDocUnknownType(it) => {
6527 TSTupleElement::JSDocUnknownType(CloneIn::clone_in_with_semantic_ids(it, allocator))
6528 }
6529 }
6530 }
6531}
6532
6533impl<'new_alloc> CloneIn<'new_alloc> for TSAnyKeyword {
6534 type Cloned = TSAnyKeyword;
6535
6536 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6537 TSAnyKeyword { span: CloneIn::clone_in(&self.span, allocator) }
6538 }
6539
6540 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6541 TSAnyKeyword { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
6542 }
6543}
6544
6545impl<'new_alloc> CloneIn<'new_alloc> for TSStringKeyword {
6546 type Cloned = TSStringKeyword;
6547
6548 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6549 TSStringKeyword { span: CloneIn::clone_in(&self.span, allocator) }
6550 }
6551
6552 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6553 TSStringKeyword { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
6554 }
6555}
6556
6557impl<'new_alloc> CloneIn<'new_alloc> for TSBooleanKeyword {
6558 type Cloned = TSBooleanKeyword;
6559
6560 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6561 TSBooleanKeyword { span: CloneIn::clone_in(&self.span, allocator) }
6562 }
6563
6564 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6565 TSBooleanKeyword { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
6566 }
6567}
6568
6569impl<'new_alloc> CloneIn<'new_alloc> for TSNumberKeyword {
6570 type Cloned = TSNumberKeyword;
6571
6572 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6573 TSNumberKeyword { span: CloneIn::clone_in(&self.span, allocator) }
6574 }
6575
6576 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6577 TSNumberKeyword { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
6578 }
6579}
6580
6581impl<'new_alloc> CloneIn<'new_alloc> for TSNeverKeyword {
6582 type Cloned = TSNeverKeyword;
6583
6584 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6585 TSNeverKeyword { span: CloneIn::clone_in(&self.span, allocator) }
6586 }
6587
6588 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6589 TSNeverKeyword { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
6590 }
6591}
6592
6593impl<'new_alloc> CloneIn<'new_alloc> for TSIntrinsicKeyword {
6594 type Cloned = TSIntrinsicKeyword;
6595
6596 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6597 TSIntrinsicKeyword { span: CloneIn::clone_in(&self.span, allocator) }
6598 }
6599
6600 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6601 TSIntrinsicKeyword { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
6602 }
6603}
6604
6605impl<'new_alloc> CloneIn<'new_alloc> for TSUnknownKeyword {
6606 type Cloned = TSUnknownKeyword;
6607
6608 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6609 TSUnknownKeyword { span: CloneIn::clone_in(&self.span, allocator) }
6610 }
6611
6612 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6613 TSUnknownKeyword { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
6614 }
6615}
6616
6617impl<'new_alloc> CloneIn<'new_alloc> for TSNullKeyword {
6618 type Cloned = TSNullKeyword;
6619
6620 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6621 TSNullKeyword { span: CloneIn::clone_in(&self.span, allocator) }
6622 }
6623
6624 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6625 TSNullKeyword { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
6626 }
6627}
6628
6629impl<'new_alloc> CloneIn<'new_alloc> for TSUndefinedKeyword {
6630 type Cloned = TSUndefinedKeyword;
6631
6632 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6633 TSUndefinedKeyword { span: CloneIn::clone_in(&self.span, allocator) }
6634 }
6635
6636 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6637 TSUndefinedKeyword { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
6638 }
6639}
6640
6641impl<'new_alloc> CloneIn<'new_alloc> for TSVoidKeyword {
6642 type Cloned = TSVoidKeyword;
6643
6644 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6645 TSVoidKeyword { span: CloneIn::clone_in(&self.span, allocator) }
6646 }
6647
6648 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6649 TSVoidKeyword { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
6650 }
6651}
6652
6653impl<'new_alloc> CloneIn<'new_alloc> for TSSymbolKeyword {
6654 type Cloned = TSSymbolKeyword;
6655
6656 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6657 TSSymbolKeyword { span: CloneIn::clone_in(&self.span, allocator) }
6658 }
6659
6660 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6661 TSSymbolKeyword { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
6662 }
6663}
6664
6665impl<'new_alloc> CloneIn<'new_alloc> for TSThisType {
6666 type Cloned = TSThisType;
6667
6668 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6669 TSThisType { span: CloneIn::clone_in(&self.span, allocator) }
6670 }
6671
6672 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6673 TSThisType { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
6674 }
6675}
6676
6677impl<'new_alloc> CloneIn<'new_alloc> for TSObjectKeyword {
6678 type Cloned = TSObjectKeyword;
6679
6680 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6681 TSObjectKeyword { span: CloneIn::clone_in(&self.span, allocator) }
6682 }
6683
6684 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6685 TSObjectKeyword { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
6686 }
6687}
6688
6689impl<'new_alloc> CloneIn<'new_alloc> for TSBigIntKeyword {
6690 type Cloned = TSBigIntKeyword;
6691
6692 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6693 TSBigIntKeyword { span: CloneIn::clone_in(&self.span, allocator) }
6694 }
6695
6696 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6697 TSBigIntKeyword { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
6698 }
6699}
6700
6701impl<'new_alloc> CloneIn<'new_alloc> for TSTypeReference<'_> {
6702 type Cloned = TSTypeReference<'new_alloc>;
6703
6704 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6705 TSTypeReference {
6706 span: CloneIn::clone_in(&self.span, allocator),
6707 type_name: CloneIn::clone_in(&self.type_name, allocator),
6708 type_arguments: CloneIn::clone_in(&self.type_arguments, allocator),
6709 }
6710 }
6711
6712 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6713 TSTypeReference {
6714 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6715 type_name: CloneIn::clone_in_with_semantic_ids(&self.type_name, allocator),
6716 type_arguments: CloneIn::clone_in_with_semantic_ids(&self.type_arguments, allocator),
6717 }
6718 }
6719}
6720
6721impl<'new_alloc> CloneIn<'new_alloc> for TSTypeName<'_> {
6722 type Cloned = TSTypeName<'new_alloc>;
6723
6724 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6725 match self {
6726 Self::IdentifierReference(it) => {
6727 TSTypeName::IdentifierReference(CloneIn::clone_in(it, allocator))
6728 }
6729 Self::QualifiedName(it) => TSTypeName::QualifiedName(CloneIn::clone_in(it, allocator)),
6730 Self::ThisExpression(it) => {
6731 TSTypeName::ThisExpression(CloneIn::clone_in(it, allocator))
6732 }
6733 }
6734 }
6735
6736 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6737 match self {
6738 Self::IdentifierReference(it) => {
6739 TSTypeName::IdentifierReference(CloneIn::clone_in_with_semantic_ids(it, allocator))
6740 }
6741 Self::QualifiedName(it) => {
6742 TSTypeName::QualifiedName(CloneIn::clone_in_with_semantic_ids(it, allocator))
6743 }
6744 Self::ThisExpression(it) => {
6745 TSTypeName::ThisExpression(CloneIn::clone_in_with_semantic_ids(it, allocator))
6746 }
6747 }
6748 }
6749}
6750
6751impl<'new_alloc> CloneIn<'new_alloc> for TSQualifiedName<'_> {
6752 type Cloned = TSQualifiedName<'new_alloc>;
6753
6754 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6755 TSQualifiedName {
6756 span: CloneIn::clone_in(&self.span, allocator),
6757 left: CloneIn::clone_in(&self.left, allocator),
6758 right: CloneIn::clone_in(&self.right, allocator),
6759 }
6760 }
6761
6762 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6763 TSQualifiedName {
6764 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6765 left: CloneIn::clone_in_with_semantic_ids(&self.left, allocator),
6766 right: CloneIn::clone_in_with_semantic_ids(&self.right, allocator),
6767 }
6768 }
6769}
6770
6771impl<'new_alloc> CloneIn<'new_alloc> for TSTypeParameterInstantiation<'_> {
6772 type Cloned = TSTypeParameterInstantiation<'new_alloc>;
6773
6774 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6775 TSTypeParameterInstantiation {
6776 span: CloneIn::clone_in(&self.span, allocator),
6777 params: CloneIn::clone_in(&self.params, allocator),
6778 }
6779 }
6780
6781 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6782 TSTypeParameterInstantiation {
6783 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6784 params: CloneIn::clone_in_with_semantic_ids(&self.params, allocator),
6785 }
6786 }
6787}
6788
6789impl<'new_alloc> CloneIn<'new_alloc> for TSTypeParameter<'_> {
6790 type Cloned = TSTypeParameter<'new_alloc>;
6791
6792 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6793 TSTypeParameter {
6794 span: CloneIn::clone_in(&self.span, allocator),
6795 name: CloneIn::clone_in(&self.name, allocator),
6796 constraint: CloneIn::clone_in(&self.constraint, allocator),
6797 default: CloneIn::clone_in(&self.default, allocator),
6798 r#in: CloneIn::clone_in(&self.r#in, allocator),
6799 out: CloneIn::clone_in(&self.out, allocator),
6800 r#const: CloneIn::clone_in(&self.r#const, allocator),
6801 }
6802 }
6803
6804 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6805 TSTypeParameter {
6806 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6807 name: CloneIn::clone_in_with_semantic_ids(&self.name, allocator),
6808 constraint: CloneIn::clone_in_with_semantic_ids(&self.constraint, allocator),
6809 default: CloneIn::clone_in_with_semantic_ids(&self.default, allocator),
6810 r#in: CloneIn::clone_in_with_semantic_ids(&self.r#in, allocator),
6811 out: CloneIn::clone_in_with_semantic_ids(&self.out, allocator),
6812 r#const: CloneIn::clone_in_with_semantic_ids(&self.r#const, allocator),
6813 }
6814 }
6815}
6816
6817impl<'new_alloc> CloneIn<'new_alloc> for TSTypeParameterDeclaration<'_> {
6818 type Cloned = TSTypeParameterDeclaration<'new_alloc>;
6819
6820 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6821 TSTypeParameterDeclaration {
6822 span: CloneIn::clone_in(&self.span, allocator),
6823 params: CloneIn::clone_in(&self.params, allocator),
6824 }
6825 }
6826
6827 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6828 TSTypeParameterDeclaration {
6829 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6830 params: CloneIn::clone_in_with_semantic_ids(&self.params, allocator),
6831 }
6832 }
6833}
6834
6835impl<'new_alloc> CloneIn<'new_alloc> for TSTypeAliasDeclaration<'_> {
6836 type Cloned = TSTypeAliasDeclaration<'new_alloc>;
6837
6838 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6839 TSTypeAliasDeclaration {
6840 span: CloneIn::clone_in(&self.span, allocator),
6841 id: CloneIn::clone_in(&self.id, allocator),
6842 type_parameters: CloneIn::clone_in(&self.type_parameters, allocator),
6843 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
6844 declare: CloneIn::clone_in(&self.declare, allocator),
6845 scope_id: Default::default(),
6846 }
6847 }
6848
6849 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6850 TSTypeAliasDeclaration {
6851 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6852 id: CloneIn::clone_in_with_semantic_ids(&self.id, allocator),
6853 type_parameters: CloneIn::clone_in_with_semantic_ids(&self.type_parameters, allocator),
6854 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
6855 declare: CloneIn::clone_in_with_semantic_ids(&self.declare, allocator),
6856 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
6857 }
6858 }
6859}
6860
6861impl<'new_alloc> CloneIn<'new_alloc> for TSAccessibility {
6862 type Cloned = TSAccessibility;
6863
6864 #[inline(always)]
6865 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6866 *self
6867 }
6868
6869 #[inline(always)]
6870 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6871 *self
6872 }
6873}
6874
6875impl<'new_alloc> CloneIn<'new_alloc> for TSClassImplements<'_> {
6876 type Cloned = TSClassImplements<'new_alloc>;
6877
6878 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6879 TSClassImplements {
6880 span: CloneIn::clone_in(&self.span, allocator),
6881 expression: CloneIn::clone_in(&self.expression, allocator),
6882 type_arguments: CloneIn::clone_in(&self.type_arguments, allocator),
6883 }
6884 }
6885
6886 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6887 TSClassImplements {
6888 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6889 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
6890 type_arguments: CloneIn::clone_in_with_semantic_ids(&self.type_arguments, allocator),
6891 }
6892 }
6893}
6894
6895impl<'new_alloc> CloneIn<'new_alloc> for TSInterfaceDeclaration<'_> {
6896 type Cloned = TSInterfaceDeclaration<'new_alloc>;
6897
6898 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6899 TSInterfaceDeclaration {
6900 span: CloneIn::clone_in(&self.span, allocator),
6901 id: CloneIn::clone_in(&self.id, allocator),
6902 type_parameters: CloneIn::clone_in(&self.type_parameters, allocator),
6903 extends: CloneIn::clone_in(&self.extends, allocator),
6904 body: CloneIn::clone_in(&self.body, allocator),
6905 declare: CloneIn::clone_in(&self.declare, allocator),
6906 scope_id: Default::default(),
6907 }
6908 }
6909
6910 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6911 TSInterfaceDeclaration {
6912 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6913 id: CloneIn::clone_in_with_semantic_ids(&self.id, allocator),
6914 type_parameters: CloneIn::clone_in_with_semantic_ids(&self.type_parameters, allocator),
6915 extends: CloneIn::clone_in_with_semantic_ids(&self.extends, allocator),
6916 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
6917 declare: CloneIn::clone_in_with_semantic_ids(&self.declare, allocator),
6918 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
6919 }
6920 }
6921}
6922
6923impl<'new_alloc> CloneIn<'new_alloc> for TSInterfaceBody<'_> {
6924 type Cloned = TSInterfaceBody<'new_alloc>;
6925
6926 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6927 TSInterfaceBody {
6928 span: CloneIn::clone_in(&self.span, allocator),
6929 body: CloneIn::clone_in(&self.body, allocator),
6930 }
6931 }
6932
6933 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6934 TSInterfaceBody {
6935 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6936 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
6937 }
6938 }
6939}
6940
6941impl<'new_alloc> CloneIn<'new_alloc> for TSPropertySignature<'_> {
6942 type Cloned = TSPropertySignature<'new_alloc>;
6943
6944 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6945 TSPropertySignature {
6946 span: CloneIn::clone_in(&self.span, allocator),
6947 computed: CloneIn::clone_in(&self.computed, allocator),
6948 optional: CloneIn::clone_in(&self.optional, allocator),
6949 readonly: CloneIn::clone_in(&self.readonly, allocator),
6950 key: CloneIn::clone_in(&self.key, allocator),
6951 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
6952 }
6953 }
6954
6955 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6956 TSPropertySignature {
6957 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
6958 computed: CloneIn::clone_in_with_semantic_ids(&self.computed, allocator),
6959 optional: CloneIn::clone_in_with_semantic_ids(&self.optional, allocator),
6960 readonly: CloneIn::clone_in_with_semantic_ids(&self.readonly, allocator),
6961 key: CloneIn::clone_in_with_semantic_ids(&self.key, allocator),
6962 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
6963 }
6964 }
6965}
6966
6967impl<'new_alloc> CloneIn<'new_alloc> for TSSignature<'_> {
6968 type Cloned = TSSignature<'new_alloc>;
6969
6970 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6971 match self {
6972 Self::TSIndexSignature(it) => {
6973 TSSignature::TSIndexSignature(CloneIn::clone_in(it, allocator))
6974 }
6975 Self::TSPropertySignature(it) => {
6976 TSSignature::TSPropertySignature(CloneIn::clone_in(it, allocator))
6977 }
6978 Self::TSCallSignatureDeclaration(it) => {
6979 TSSignature::TSCallSignatureDeclaration(CloneIn::clone_in(it, allocator))
6980 }
6981 Self::TSConstructSignatureDeclaration(it) => {
6982 TSSignature::TSConstructSignatureDeclaration(CloneIn::clone_in(it, allocator))
6983 }
6984 Self::TSMethodSignature(it) => {
6985 TSSignature::TSMethodSignature(CloneIn::clone_in(it, allocator))
6986 }
6987 }
6988 }
6989
6990 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
6991 match self {
6992 Self::TSIndexSignature(it) => {
6993 TSSignature::TSIndexSignature(CloneIn::clone_in_with_semantic_ids(it, allocator))
6994 }
6995 Self::TSPropertySignature(it) => {
6996 TSSignature::TSPropertySignature(CloneIn::clone_in_with_semantic_ids(it, allocator))
6997 }
6998 Self::TSCallSignatureDeclaration(it) => TSSignature::TSCallSignatureDeclaration(
6999 CloneIn::clone_in_with_semantic_ids(it, allocator),
7000 ),
7001 Self::TSConstructSignatureDeclaration(it) => {
7002 TSSignature::TSConstructSignatureDeclaration(CloneIn::clone_in_with_semantic_ids(
7003 it, allocator,
7004 ))
7005 }
7006 Self::TSMethodSignature(it) => {
7007 TSSignature::TSMethodSignature(CloneIn::clone_in_with_semantic_ids(it, allocator))
7008 }
7009 }
7010 }
7011}
7012
7013impl<'new_alloc> CloneIn<'new_alloc> for TSIndexSignature<'_> {
7014 type Cloned = TSIndexSignature<'new_alloc>;
7015
7016 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7017 TSIndexSignature {
7018 span: CloneIn::clone_in(&self.span, allocator),
7019 parameters: CloneIn::clone_in(&self.parameters, allocator),
7020 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
7021 readonly: CloneIn::clone_in(&self.readonly, allocator),
7022 r#static: CloneIn::clone_in(&self.r#static, allocator),
7023 }
7024 }
7025
7026 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7027 TSIndexSignature {
7028 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7029 parameters: CloneIn::clone_in_with_semantic_ids(&self.parameters, allocator),
7030 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
7031 readonly: CloneIn::clone_in_with_semantic_ids(&self.readonly, allocator),
7032 r#static: CloneIn::clone_in_with_semantic_ids(&self.r#static, allocator),
7033 }
7034 }
7035}
7036
7037impl<'new_alloc> CloneIn<'new_alloc> for TSCallSignatureDeclaration<'_> {
7038 type Cloned = TSCallSignatureDeclaration<'new_alloc>;
7039
7040 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7041 TSCallSignatureDeclaration {
7042 span: CloneIn::clone_in(&self.span, allocator),
7043 type_parameters: CloneIn::clone_in(&self.type_parameters, allocator),
7044 this_param: CloneIn::clone_in(&self.this_param, allocator),
7045 params: CloneIn::clone_in(&self.params, allocator),
7046 return_type: CloneIn::clone_in(&self.return_type, allocator),
7047 }
7048 }
7049
7050 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7051 TSCallSignatureDeclaration {
7052 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7053 type_parameters: CloneIn::clone_in_with_semantic_ids(&self.type_parameters, allocator),
7054 this_param: CloneIn::clone_in_with_semantic_ids(&self.this_param, allocator),
7055 params: CloneIn::clone_in_with_semantic_ids(&self.params, allocator),
7056 return_type: CloneIn::clone_in_with_semantic_ids(&self.return_type, allocator),
7057 }
7058 }
7059}
7060
7061impl<'new_alloc> CloneIn<'new_alloc> for TSMethodSignatureKind {
7062 type Cloned = TSMethodSignatureKind;
7063
7064 #[inline(always)]
7065 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7066 *self
7067 }
7068
7069 #[inline(always)]
7070 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7071 *self
7072 }
7073}
7074
7075impl<'new_alloc> CloneIn<'new_alloc> for TSMethodSignature<'_> {
7076 type Cloned = TSMethodSignature<'new_alloc>;
7077
7078 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7079 TSMethodSignature {
7080 span: CloneIn::clone_in(&self.span, allocator),
7081 key: CloneIn::clone_in(&self.key, allocator),
7082 computed: CloneIn::clone_in(&self.computed, allocator),
7083 optional: CloneIn::clone_in(&self.optional, allocator),
7084 kind: CloneIn::clone_in(&self.kind, allocator),
7085 type_parameters: CloneIn::clone_in(&self.type_parameters, allocator),
7086 this_param: CloneIn::clone_in(&self.this_param, allocator),
7087 params: CloneIn::clone_in(&self.params, allocator),
7088 return_type: CloneIn::clone_in(&self.return_type, allocator),
7089 scope_id: Default::default(),
7090 }
7091 }
7092
7093 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7094 TSMethodSignature {
7095 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7096 key: CloneIn::clone_in_with_semantic_ids(&self.key, allocator),
7097 computed: CloneIn::clone_in_with_semantic_ids(&self.computed, allocator),
7098 optional: CloneIn::clone_in_with_semantic_ids(&self.optional, allocator),
7099 kind: CloneIn::clone_in_with_semantic_ids(&self.kind, allocator),
7100 type_parameters: CloneIn::clone_in_with_semantic_ids(&self.type_parameters, allocator),
7101 this_param: CloneIn::clone_in_with_semantic_ids(&self.this_param, allocator),
7102 params: CloneIn::clone_in_with_semantic_ids(&self.params, allocator),
7103 return_type: CloneIn::clone_in_with_semantic_ids(&self.return_type, allocator),
7104 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
7105 }
7106 }
7107}
7108
7109impl<'new_alloc> CloneIn<'new_alloc> for TSConstructSignatureDeclaration<'_> {
7110 type Cloned = TSConstructSignatureDeclaration<'new_alloc>;
7111
7112 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7113 TSConstructSignatureDeclaration {
7114 span: CloneIn::clone_in(&self.span, allocator),
7115 type_parameters: CloneIn::clone_in(&self.type_parameters, allocator),
7116 params: CloneIn::clone_in(&self.params, allocator),
7117 return_type: CloneIn::clone_in(&self.return_type, allocator),
7118 scope_id: Default::default(),
7119 }
7120 }
7121
7122 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7123 TSConstructSignatureDeclaration {
7124 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7125 type_parameters: CloneIn::clone_in_with_semantic_ids(&self.type_parameters, allocator),
7126 params: CloneIn::clone_in_with_semantic_ids(&self.params, allocator),
7127 return_type: CloneIn::clone_in_with_semantic_ids(&self.return_type, allocator),
7128 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
7129 }
7130 }
7131}
7132
7133impl<'new_alloc> CloneIn<'new_alloc> for TSIndexSignatureName<'_> {
7134 type Cloned = TSIndexSignatureName<'new_alloc>;
7135
7136 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7137 TSIndexSignatureName {
7138 span: CloneIn::clone_in(&self.span, allocator),
7139 name: CloneIn::clone_in(&self.name, allocator),
7140 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
7141 }
7142 }
7143
7144 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7145 TSIndexSignatureName {
7146 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7147 name: CloneIn::clone_in_with_semantic_ids(&self.name, allocator),
7148 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
7149 }
7150 }
7151}
7152
7153impl<'new_alloc> CloneIn<'new_alloc> for TSInterfaceHeritage<'_> {
7154 type Cloned = TSInterfaceHeritage<'new_alloc>;
7155
7156 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7157 TSInterfaceHeritage {
7158 span: CloneIn::clone_in(&self.span, allocator),
7159 expression: CloneIn::clone_in(&self.expression, allocator),
7160 type_arguments: CloneIn::clone_in(&self.type_arguments, allocator),
7161 }
7162 }
7163
7164 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7165 TSInterfaceHeritage {
7166 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7167 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
7168 type_arguments: CloneIn::clone_in_with_semantic_ids(&self.type_arguments, allocator),
7169 }
7170 }
7171}
7172
7173impl<'new_alloc> CloneIn<'new_alloc> for TSTypePredicate<'_> {
7174 type Cloned = TSTypePredicate<'new_alloc>;
7175
7176 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7177 TSTypePredicate {
7178 span: CloneIn::clone_in(&self.span, allocator),
7179 parameter_name: CloneIn::clone_in(&self.parameter_name, allocator),
7180 asserts: CloneIn::clone_in(&self.asserts, allocator),
7181 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
7182 }
7183 }
7184
7185 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7186 TSTypePredicate {
7187 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7188 parameter_name: CloneIn::clone_in_with_semantic_ids(&self.parameter_name, allocator),
7189 asserts: CloneIn::clone_in_with_semantic_ids(&self.asserts, allocator),
7190 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
7191 }
7192 }
7193}
7194
7195impl<'new_alloc> CloneIn<'new_alloc> for TSTypePredicateName<'_> {
7196 type Cloned = TSTypePredicateName<'new_alloc>;
7197
7198 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7199 match self {
7200 Self::Identifier(it) => {
7201 TSTypePredicateName::Identifier(CloneIn::clone_in(it, allocator))
7202 }
7203 Self::This(it) => TSTypePredicateName::This(CloneIn::clone_in(it, allocator)),
7204 }
7205 }
7206
7207 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7208 match self {
7209 Self::Identifier(it) => {
7210 TSTypePredicateName::Identifier(CloneIn::clone_in_with_semantic_ids(it, allocator))
7211 }
7212 Self::This(it) => {
7213 TSTypePredicateName::This(CloneIn::clone_in_with_semantic_ids(it, allocator))
7214 }
7215 }
7216 }
7217}
7218
7219impl<'new_alloc> CloneIn<'new_alloc> for TSModuleDeclaration<'_> {
7220 type Cloned = TSModuleDeclaration<'new_alloc>;
7221
7222 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7223 TSModuleDeclaration {
7224 span: CloneIn::clone_in(&self.span, allocator),
7225 id: CloneIn::clone_in(&self.id, allocator),
7226 body: CloneIn::clone_in(&self.body, allocator),
7227 kind: CloneIn::clone_in(&self.kind, allocator),
7228 declare: CloneIn::clone_in(&self.declare, allocator),
7229 scope_id: Default::default(),
7230 }
7231 }
7232
7233 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7234 TSModuleDeclaration {
7235 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7236 id: CloneIn::clone_in_with_semantic_ids(&self.id, allocator),
7237 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
7238 kind: CloneIn::clone_in_with_semantic_ids(&self.kind, allocator),
7239 declare: CloneIn::clone_in_with_semantic_ids(&self.declare, allocator),
7240 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
7241 }
7242 }
7243}
7244
7245impl<'new_alloc> CloneIn<'new_alloc> for TSModuleDeclarationKind {
7246 type Cloned = TSModuleDeclarationKind;
7247
7248 #[inline(always)]
7249 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7250 *self
7251 }
7252
7253 #[inline(always)]
7254 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7255 *self
7256 }
7257}
7258
7259impl<'new_alloc> CloneIn<'new_alloc> for TSModuleDeclarationName<'_> {
7260 type Cloned = TSModuleDeclarationName<'new_alloc>;
7261
7262 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7263 match self {
7264 Self::Identifier(it) => {
7265 TSModuleDeclarationName::Identifier(CloneIn::clone_in(it, allocator))
7266 }
7267 Self::StringLiteral(it) => {
7268 TSModuleDeclarationName::StringLiteral(CloneIn::clone_in(it, allocator))
7269 }
7270 }
7271 }
7272
7273 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7274 match self {
7275 Self::Identifier(it) => TSModuleDeclarationName::Identifier(
7276 CloneIn::clone_in_with_semantic_ids(it, allocator),
7277 ),
7278 Self::StringLiteral(it) => TSModuleDeclarationName::StringLiteral(
7279 CloneIn::clone_in_with_semantic_ids(it, allocator),
7280 ),
7281 }
7282 }
7283}
7284
7285impl<'new_alloc> CloneIn<'new_alloc> for TSModuleDeclarationBody<'_> {
7286 type Cloned = TSModuleDeclarationBody<'new_alloc>;
7287
7288 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7289 match self {
7290 Self::TSModuleDeclaration(it) => {
7291 TSModuleDeclarationBody::TSModuleDeclaration(CloneIn::clone_in(it, allocator))
7292 }
7293 Self::TSModuleBlock(it) => {
7294 TSModuleDeclarationBody::TSModuleBlock(CloneIn::clone_in(it, allocator))
7295 }
7296 }
7297 }
7298
7299 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7300 match self {
7301 Self::TSModuleDeclaration(it) => TSModuleDeclarationBody::TSModuleDeclaration(
7302 CloneIn::clone_in_with_semantic_ids(it, allocator),
7303 ),
7304 Self::TSModuleBlock(it) => TSModuleDeclarationBody::TSModuleBlock(
7305 CloneIn::clone_in_with_semantic_ids(it, allocator),
7306 ),
7307 }
7308 }
7309}
7310
7311impl<'new_alloc> CloneIn<'new_alloc> for TSModuleBlock<'_> {
7312 type Cloned = TSModuleBlock<'new_alloc>;
7313
7314 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7315 TSModuleBlock {
7316 span: CloneIn::clone_in(&self.span, allocator),
7317 directives: CloneIn::clone_in(&self.directives, allocator),
7318 body: CloneIn::clone_in(&self.body, allocator),
7319 }
7320 }
7321
7322 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7323 TSModuleBlock {
7324 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7325 directives: CloneIn::clone_in_with_semantic_ids(&self.directives, allocator),
7326 body: CloneIn::clone_in_with_semantic_ids(&self.body, allocator),
7327 }
7328 }
7329}
7330
7331impl<'new_alloc> CloneIn<'new_alloc> for TSTypeLiteral<'_> {
7332 type Cloned = TSTypeLiteral<'new_alloc>;
7333
7334 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7335 TSTypeLiteral {
7336 span: CloneIn::clone_in(&self.span, allocator),
7337 members: CloneIn::clone_in(&self.members, allocator),
7338 }
7339 }
7340
7341 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7342 TSTypeLiteral {
7343 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7344 members: CloneIn::clone_in_with_semantic_ids(&self.members, allocator),
7345 }
7346 }
7347}
7348
7349impl<'new_alloc> CloneIn<'new_alloc> for TSInferType<'_> {
7350 type Cloned = TSInferType<'new_alloc>;
7351
7352 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7353 TSInferType {
7354 span: CloneIn::clone_in(&self.span, allocator),
7355 type_parameter: CloneIn::clone_in(&self.type_parameter, allocator),
7356 }
7357 }
7358
7359 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7360 TSInferType {
7361 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7362 type_parameter: CloneIn::clone_in_with_semantic_ids(&self.type_parameter, allocator),
7363 }
7364 }
7365}
7366
7367impl<'new_alloc> CloneIn<'new_alloc> for TSTypeQuery<'_> {
7368 type Cloned = TSTypeQuery<'new_alloc>;
7369
7370 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7371 TSTypeQuery {
7372 span: CloneIn::clone_in(&self.span, allocator),
7373 expr_name: CloneIn::clone_in(&self.expr_name, allocator),
7374 type_arguments: CloneIn::clone_in(&self.type_arguments, allocator),
7375 }
7376 }
7377
7378 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7379 TSTypeQuery {
7380 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7381 expr_name: CloneIn::clone_in_with_semantic_ids(&self.expr_name, allocator),
7382 type_arguments: CloneIn::clone_in_with_semantic_ids(&self.type_arguments, allocator),
7383 }
7384 }
7385}
7386
7387impl<'new_alloc> CloneIn<'new_alloc> for TSTypeQueryExprName<'_> {
7388 type Cloned = TSTypeQueryExprName<'new_alloc>;
7389
7390 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7391 match self {
7392 Self::TSImportType(it) => {
7393 TSTypeQueryExprName::TSImportType(CloneIn::clone_in(it, allocator))
7394 }
7395 Self::IdentifierReference(it) => {
7396 TSTypeQueryExprName::IdentifierReference(CloneIn::clone_in(it, allocator))
7397 }
7398 Self::QualifiedName(it) => {
7399 TSTypeQueryExprName::QualifiedName(CloneIn::clone_in(it, allocator))
7400 }
7401 Self::ThisExpression(it) => {
7402 TSTypeQueryExprName::ThisExpression(CloneIn::clone_in(it, allocator))
7403 }
7404 }
7405 }
7406
7407 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7408 match self {
7409 Self::TSImportType(it) => TSTypeQueryExprName::TSImportType(
7410 CloneIn::clone_in_with_semantic_ids(it, allocator),
7411 ),
7412 Self::IdentifierReference(it) => TSTypeQueryExprName::IdentifierReference(
7413 CloneIn::clone_in_with_semantic_ids(it, allocator),
7414 ),
7415 Self::QualifiedName(it) => TSTypeQueryExprName::QualifiedName(
7416 CloneIn::clone_in_with_semantic_ids(it, allocator),
7417 ),
7418 Self::ThisExpression(it) => TSTypeQueryExprName::ThisExpression(
7419 CloneIn::clone_in_with_semantic_ids(it, allocator),
7420 ),
7421 }
7422 }
7423}
7424
7425impl<'new_alloc> CloneIn<'new_alloc> for TSImportType<'_> {
7426 type Cloned = TSImportType<'new_alloc>;
7427
7428 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7429 TSImportType {
7430 span: CloneIn::clone_in(&self.span, allocator),
7431 argument: CloneIn::clone_in(&self.argument, allocator),
7432 options: CloneIn::clone_in(&self.options, allocator),
7433 qualifier: CloneIn::clone_in(&self.qualifier, allocator),
7434 type_arguments: CloneIn::clone_in(&self.type_arguments, allocator),
7435 }
7436 }
7437
7438 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7439 TSImportType {
7440 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7441 argument: CloneIn::clone_in_with_semantic_ids(&self.argument, allocator),
7442 options: CloneIn::clone_in_with_semantic_ids(&self.options, allocator),
7443 qualifier: CloneIn::clone_in_with_semantic_ids(&self.qualifier, allocator),
7444 type_arguments: CloneIn::clone_in_with_semantic_ids(&self.type_arguments, allocator),
7445 }
7446 }
7447}
7448
7449impl<'new_alloc> CloneIn<'new_alloc> for TSImportTypeQualifier<'_> {
7450 type Cloned = TSImportTypeQualifier<'new_alloc>;
7451
7452 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7453 match self {
7454 Self::Identifier(it) => {
7455 TSImportTypeQualifier::Identifier(CloneIn::clone_in(it, allocator))
7456 }
7457 Self::QualifiedName(it) => {
7458 TSImportTypeQualifier::QualifiedName(CloneIn::clone_in(it, allocator))
7459 }
7460 }
7461 }
7462
7463 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7464 match self {
7465 Self::Identifier(it) => TSImportTypeQualifier::Identifier(
7466 CloneIn::clone_in_with_semantic_ids(it, allocator),
7467 ),
7468 Self::QualifiedName(it) => TSImportTypeQualifier::QualifiedName(
7469 CloneIn::clone_in_with_semantic_ids(it, allocator),
7470 ),
7471 }
7472 }
7473}
7474
7475impl<'new_alloc> CloneIn<'new_alloc> for TSImportTypeQualifiedName<'_> {
7476 type Cloned = TSImportTypeQualifiedName<'new_alloc>;
7477
7478 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7479 TSImportTypeQualifiedName {
7480 span: CloneIn::clone_in(&self.span, allocator),
7481 left: CloneIn::clone_in(&self.left, allocator),
7482 right: CloneIn::clone_in(&self.right, allocator),
7483 }
7484 }
7485
7486 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7487 TSImportTypeQualifiedName {
7488 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7489 left: CloneIn::clone_in_with_semantic_ids(&self.left, allocator),
7490 right: CloneIn::clone_in_with_semantic_ids(&self.right, allocator),
7491 }
7492 }
7493}
7494
7495impl<'new_alloc> CloneIn<'new_alloc> for TSFunctionType<'_> {
7496 type Cloned = TSFunctionType<'new_alloc>;
7497
7498 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7499 TSFunctionType {
7500 span: CloneIn::clone_in(&self.span, allocator),
7501 type_parameters: CloneIn::clone_in(&self.type_parameters, allocator),
7502 this_param: CloneIn::clone_in(&self.this_param, allocator),
7503 params: CloneIn::clone_in(&self.params, allocator),
7504 return_type: CloneIn::clone_in(&self.return_type, allocator),
7505 scope_id: Default::default(),
7506 }
7507 }
7508
7509 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7510 TSFunctionType {
7511 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7512 type_parameters: CloneIn::clone_in_with_semantic_ids(&self.type_parameters, allocator),
7513 this_param: CloneIn::clone_in_with_semantic_ids(&self.this_param, allocator),
7514 params: CloneIn::clone_in_with_semantic_ids(&self.params, allocator),
7515 return_type: CloneIn::clone_in_with_semantic_ids(&self.return_type, allocator),
7516 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
7517 }
7518 }
7519}
7520
7521impl<'new_alloc> CloneIn<'new_alloc> for TSConstructorType<'_> {
7522 type Cloned = TSConstructorType<'new_alloc>;
7523
7524 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7525 TSConstructorType {
7526 span: CloneIn::clone_in(&self.span, allocator),
7527 r#abstract: CloneIn::clone_in(&self.r#abstract, allocator),
7528 type_parameters: CloneIn::clone_in(&self.type_parameters, allocator),
7529 params: CloneIn::clone_in(&self.params, allocator),
7530 return_type: CloneIn::clone_in(&self.return_type, allocator),
7531 }
7532 }
7533
7534 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7535 TSConstructorType {
7536 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7537 r#abstract: CloneIn::clone_in_with_semantic_ids(&self.r#abstract, allocator),
7538 type_parameters: CloneIn::clone_in_with_semantic_ids(&self.type_parameters, allocator),
7539 params: CloneIn::clone_in_with_semantic_ids(&self.params, allocator),
7540 return_type: CloneIn::clone_in_with_semantic_ids(&self.return_type, allocator),
7541 }
7542 }
7543}
7544
7545impl<'new_alloc> CloneIn<'new_alloc> for TSMappedType<'_> {
7546 type Cloned = TSMappedType<'new_alloc>;
7547
7548 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7549 TSMappedType {
7550 span: CloneIn::clone_in(&self.span, allocator),
7551 type_parameter: CloneIn::clone_in(&self.type_parameter, allocator),
7552 name_type: CloneIn::clone_in(&self.name_type, allocator),
7553 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
7554 optional: CloneIn::clone_in(&self.optional, allocator),
7555 readonly: CloneIn::clone_in(&self.readonly, allocator),
7556 scope_id: Default::default(),
7557 }
7558 }
7559
7560 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7561 TSMappedType {
7562 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7563 type_parameter: CloneIn::clone_in_with_semantic_ids(&self.type_parameter, allocator),
7564 name_type: CloneIn::clone_in_with_semantic_ids(&self.name_type, allocator),
7565 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
7566 optional: CloneIn::clone_in_with_semantic_ids(&self.optional, allocator),
7567 readonly: CloneIn::clone_in_with_semantic_ids(&self.readonly, allocator),
7568 scope_id: CloneIn::clone_in_with_semantic_ids(&self.scope_id, allocator),
7569 }
7570 }
7571}
7572
7573impl<'new_alloc> CloneIn<'new_alloc> for TSMappedTypeModifierOperator {
7574 type Cloned = TSMappedTypeModifierOperator;
7575
7576 #[inline(always)]
7577 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7578 *self
7579 }
7580
7581 #[inline(always)]
7582 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7583 *self
7584 }
7585}
7586
7587impl<'new_alloc> CloneIn<'new_alloc> for TSTemplateLiteralType<'_> {
7588 type Cloned = TSTemplateLiteralType<'new_alloc>;
7589
7590 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7591 TSTemplateLiteralType {
7592 span: CloneIn::clone_in(&self.span, allocator),
7593 quasis: CloneIn::clone_in(&self.quasis, allocator),
7594 types: CloneIn::clone_in(&self.types, allocator),
7595 }
7596 }
7597
7598 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7599 TSTemplateLiteralType {
7600 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7601 quasis: CloneIn::clone_in_with_semantic_ids(&self.quasis, allocator),
7602 types: CloneIn::clone_in_with_semantic_ids(&self.types, allocator),
7603 }
7604 }
7605}
7606
7607impl<'new_alloc> CloneIn<'new_alloc> for TSAsExpression<'_> {
7608 type Cloned = TSAsExpression<'new_alloc>;
7609
7610 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7611 TSAsExpression {
7612 span: CloneIn::clone_in(&self.span, allocator),
7613 expression: CloneIn::clone_in(&self.expression, allocator),
7614 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
7615 }
7616 }
7617
7618 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7619 TSAsExpression {
7620 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7621 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
7622 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
7623 }
7624 }
7625}
7626
7627impl<'new_alloc> CloneIn<'new_alloc> for TSSatisfiesExpression<'_> {
7628 type Cloned = TSSatisfiesExpression<'new_alloc>;
7629
7630 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7631 TSSatisfiesExpression {
7632 span: CloneIn::clone_in(&self.span, allocator),
7633 expression: CloneIn::clone_in(&self.expression, allocator),
7634 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
7635 }
7636 }
7637
7638 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7639 TSSatisfiesExpression {
7640 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7641 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
7642 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
7643 }
7644 }
7645}
7646
7647impl<'new_alloc> CloneIn<'new_alloc> for TSTypeAssertion<'_> {
7648 type Cloned = TSTypeAssertion<'new_alloc>;
7649
7650 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7651 TSTypeAssertion {
7652 span: CloneIn::clone_in(&self.span, allocator),
7653 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
7654 expression: CloneIn::clone_in(&self.expression, allocator),
7655 }
7656 }
7657
7658 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7659 TSTypeAssertion {
7660 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7661 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
7662 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
7663 }
7664 }
7665}
7666
7667impl<'new_alloc> CloneIn<'new_alloc> for TSImportEqualsDeclaration<'_> {
7668 type Cloned = TSImportEqualsDeclaration<'new_alloc>;
7669
7670 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7671 TSImportEqualsDeclaration {
7672 span: CloneIn::clone_in(&self.span, allocator),
7673 id: CloneIn::clone_in(&self.id, allocator),
7674 module_reference: CloneIn::clone_in(&self.module_reference, allocator),
7675 import_kind: CloneIn::clone_in(&self.import_kind, allocator),
7676 }
7677 }
7678
7679 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7680 TSImportEqualsDeclaration {
7681 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7682 id: CloneIn::clone_in_with_semantic_ids(&self.id, allocator),
7683 module_reference: CloneIn::clone_in_with_semantic_ids(
7684 &self.module_reference,
7685 allocator,
7686 ),
7687 import_kind: CloneIn::clone_in_with_semantic_ids(&self.import_kind, allocator),
7688 }
7689 }
7690}
7691
7692impl<'new_alloc> CloneIn<'new_alloc> for TSModuleReference<'_> {
7693 type Cloned = TSModuleReference<'new_alloc>;
7694
7695 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7696 match self {
7697 Self::ExternalModuleReference(it) => {
7698 TSModuleReference::ExternalModuleReference(CloneIn::clone_in(it, allocator))
7699 }
7700 Self::IdentifierReference(it) => {
7701 TSModuleReference::IdentifierReference(CloneIn::clone_in(it, allocator))
7702 }
7703 Self::QualifiedName(it) => {
7704 TSModuleReference::QualifiedName(CloneIn::clone_in(it, allocator))
7705 }
7706 Self::ThisExpression(it) => {
7707 TSModuleReference::ThisExpression(CloneIn::clone_in(it, allocator))
7708 }
7709 }
7710 }
7711
7712 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7713 match self {
7714 Self::ExternalModuleReference(it) => TSModuleReference::ExternalModuleReference(
7715 CloneIn::clone_in_with_semantic_ids(it, allocator),
7716 ),
7717 Self::IdentifierReference(it) => TSModuleReference::IdentifierReference(
7718 CloneIn::clone_in_with_semantic_ids(it, allocator),
7719 ),
7720 Self::QualifiedName(it) => {
7721 TSModuleReference::QualifiedName(CloneIn::clone_in_with_semantic_ids(it, allocator))
7722 }
7723 Self::ThisExpression(it) => TSModuleReference::ThisExpression(
7724 CloneIn::clone_in_with_semantic_ids(it, allocator),
7725 ),
7726 }
7727 }
7728}
7729
7730impl<'new_alloc> CloneIn<'new_alloc> for TSExternalModuleReference<'_> {
7731 type Cloned = TSExternalModuleReference<'new_alloc>;
7732
7733 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7734 TSExternalModuleReference {
7735 span: CloneIn::clone_in(&self.span, allocator),
7736 expression: CloneIn::clone_in(&self.expression, allocator),
7737 }
7738 }
7739
7740 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7741 TSExternalModuleReference {
7742 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7743 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
7744 }
7745 }
7746}
7747
7748impl<'new_alloc> CloneIn<'new_alloc> for TSNonNullExpression<'_> {
7749 type Cloned = TSNonNullExpression<'new_alloc>;
7750
7751 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7752 TSNonNullExpression {
7753 span: CloneIn::clone_in(&self.span, allocator),
7754 expression: CloneIn::clone_in(&self.expression, allocator),
7755 }
7756 }
7757
7758 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7759 TSNonNullExpression {
7760 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7761 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
7762 }
7763 }
7764}
7765
7766impl<'new_alloc> CloneIn<'new_alloc> for Decorator<'_> {
7767 type Cloned = Decorator<'new_alloc>;
7768
7769 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7770 Decorator {
7771 span: CloneIn::clone_in(&self.span, allocator),
7772 expression: CloneIn::clone_in(&self.expression, allocator),
7773 }
7774 }
7775
7776 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7777 Decorator {
7778 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7779 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
7780 }
7781 }
7782}
7783
7784impl<'new_alloc> CloneIn<'new_alloc> for TSExportAssignment<'_> {
7785 type Cloned = TSExportAssignment<'new_alloc>;
7786
7787 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7788 TSExportAssignment {
7789 span: CloneIn::clone_in(&self.span, allocator),
7790 expression: CloneIn::clone_in(&self.expression, allocator),
7791 }
7792 }
7793
7794 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7795 TSExportAssignment {
7796 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7797 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
7798 }
7799 }
7800}
7801
7802impl<'new_alloc> CloneIn<'new_alloc> for TSNamespaceExportDeclaration<'_> {
7803 type Cloned = TSNamespaceExportDeclaration<'new_alloc>;
7804
7805 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7806 TSNamespaceExportDeclaration {
7807 span: CloneIn::clone_in(&self.span, allocator),
7808 id: CloneIn::clone_in(&self.id, allocator),
7809 }
7810 }
7811
7812 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7813 TSNamespaceExportDeclaration {
7814 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7815 id: CloneIn::clone_in_with_semantic_ids(&self.id, allocator),
7816 }
7817 }
7818}
7819
7820impl<'new_alloc> CloneIn<'new_alloc> for TSInstantiationExpression<'_> {
7821 type Cloned = TSInstantiationExpression<'new_alloc>;
7822
7823 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7824 TSInstantiationExpression {
7825 span: CloneIn::clone_in(&self.span, allocator),
7826 expression: CloneIn::clone_in(&self.expression, allocator),
7827 type_arguments: CloneIn::clone_in(&self.type_arguments, allocator),
7828 }
7829 }
7830
7831 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7832 TSInstantiationExpression {
7833 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7834 expression: CloneIn::clone_in_with_semantic_ids(&self.expression, allocator),
7835 type_arguments: CloneIn::clone_in_with_semantic_ids(&self.type_arguments, allocator),
7836 }
7837 }
7838}
7839
7840impl<'new_alloc> CloneIn<'new_alloc> for ImportOrExportKind {
7841 type Cloned = ImportOrExportKind;
7842
7843 #[inline(always)]
7844 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7845 *self
7846 }
7847
7848 #[inline(always)]
7849 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7850 *self
7851 }
7852}
7853
7854impl<'new_alloc> CloneIn<'new_alloc> for JSDocNullableType<'_> {
7855 type Cloned = JSDocNullableType<'new_alloc>;
7856
7857 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7858 JSDocNullableType {
7859 span: CloneIn::clone_in(&self.span, allocator),
7860 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
7861 postfix: CloneIn::clone_in(&self.postfix, allocator),
7862 }
7863 }
7864
7865 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7866 JSDocNullableType {
7867 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7868 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
7869 postfix: CloneIn::clone_in_with_semantic_ids(&self.postfix, allocator),
7870 }
7871 }
7872}
7873
7874impl<'new_alloc> CloneIn<'new_alloc> for JSDocNonNullableType<'_> {
7875 type Cloned = JSDocNonNullableType<'new_alloc>;
7876
7877 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7878 JSDocNonNullableType {
7879 span: CloneIn::clone_in(&self.span, allocator),
7880 type_annotation: CloneIn::clone_in(&self.type_annotation, allocator),
7881 postfix: CloneIn::clone_in(&self.postfix, allocator),
7882 }
7883 }
7884
7885 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7886 JSDocNonNullableType {
7887 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7888 type_annotation: CloneIn::clone_in_with_semantic_ids(&self.type_annotation, allocator),
7889 postfix: CloneIn::clone_in_with_semantic_ids(&self.postfix, allocator),
7890 }
7891 }
7892}
7893
7894impl<'new_alloc> CloneIn<'new_alloc> for JSDocUnknownType {
7895 type Cloned = JSDocUnknownType;
7896
7897 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7898 JSDocUnknownType { span: CloneIn::clone_in(&self.span, allocator) }
7899 }
7900
7901 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7902 JSDocUnknownType { span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator) }
7903 }
7904}
7905
7906impl<'new_alloc> CloneIn<'new_alloc> for CommentKind {
7907 type Cloned = CommentKind;
7908
7909 #[inline(always)]
7910 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7911 *self
7912 }
7913
7914 #[inline(always)]
7915 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7916 *self
7917 }
7918}
7919
7920impl<'new_alloc> CloneIn<'new_alloc> for CommentPosition {
7921 type Cloned = CommentPosition;
7922
7923 #[inline(always)]
7924 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7925 *self
7926 }
7927
7928 #[inline(always)]
7929 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7930 *self
7931 }
7932}
7933
7934impl<'new_alloc> CloneIn<'new_alloc> for CommentContent {
7935 type Cloned = CommentContent;
7936
7937 #[inline(always)]
7938 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7939 *self
7940 }
7941
7942 #[inline(always)]
7943 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7944 *self
7945 }
7946}
7947
7948impl<'new_alloc> CloneIn<'new_alloc> for Comment {
7949 type Cloned = Comment;
7950
7951 fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7952 Comment {
7953 span: CloneIn::clone_in(&self.span, allocator),
7954 attached_to: CloneIn::clone_in(&self.attached_to, allocator),
7955 kind: CloneIn::clone_in(&self.kind, allocator),
7956 position: CloneIn::clone_in(&self.position, allocator),
7957 newlines: CloneIn::clone_in(&self.newlines, allocator),
7958 content: CloneIn::clone_in(&self.content, allocator),
7959 }
7960 }
7961
7962 fn clone_in_with_semantic_ids(&self, allocator: &'new_alloc Allocator) -> Self::Cloned {
7963 Comment {
7964 span: CloneIn::clone_in_with_semantic_ids(&self.span, allocator),
7965 attached_to: CloneIn::clone_in_with_semantic_ids(&self.attached_to, allocator),
7966 kind: CloneIn::clone_in_with_semantic_ids(&self.kind, allocator),
7967 position: CloneIn::clone_in_with_semantic_ids(&self.position, allocator),
7968 newlines: CloneIn::clone_in_with_semantic_ids(&self.newlines, allocator),
7969 content: CloneIn::clone_in_with_semantic_ids(&self.content, allocator),
7970 }
7971 }
7972}