Skip to main content

oxc_ast/generated/
derive_dummy.rs

1// Auto-generated code, DO NOT EDIT DIRECTLY!
2// To edit this generated file you have to edit `tasks/ast_tools/src/derives/dummy.rs`.
3
4#![allow(unused_imports, unused_variables, clippy::inline_always)]
5
6use std::cell::Cell;
7
8use oxc_allocator::{Allocator, Dummy};
9
10use crate::ast::js::*;
11use crate::ast::jsx::*;
12use crate::ast::literal::*;
13use crate::ast::ts::*;
14
15impl<'a> Dummy<'a> for Program<'a> {
16    /// Create a dummy [`Program`].
17    ///
18    /// Does not allocate any data into arena.
19    fn dummy(allocator: &'a Allocator) -> Self {
20        Self {
21            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
22            span: Dummy::dummy(allocator),
23            source_type: Dummy::dummy(allocator),
24            source_text: Dummy::dummy(allocator),
25            comments: Dummy::dummy(allocator),
26            hashbang: Dummy::dummy(allocator),
27            directives: Dummy::dummy(allocator),
28            body: Dummy::dummy(allocator),
29            scope_id: Dummy::dummy(allocator),
30        }
31    }
32}
33
34impl<'a> Dummy<'a> for Expression<'a> {
35    /// Create a dummy [`Expression`].
36    ///
37    /// Has cost of making 1 allocation (16 bytes).
38    fn dummy(allocator: &'a Allocator) -> Self {
39        Self::NullLiteral(Dummy::dummy(allocator))
40    }
41}
42
43impl<'a> Dummy<'a> for IdentifierName<'a> {
44    /// Create a dummy [`IdentifierName`].
45    ///
46    /// Does not allocate any data into arena.
47    fn dummy(allocator: &'a Allocator) -> Self {
48        Self {
49            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
50            span: Dummy::dummy(allocator),
51            name: Dummy::dummy(allocator),
52        }
53    }
54}
55
56impl<'a> Dummy<'a> for IdentifierReference<'a> {
57    /// Create a dummy [`IdentifierReference`].
58    ///
59    /// Does not allocate any data into arena.
60    fn dummy(allocator: &'a Allocator) -> Self {
61        Self {
62            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
63            span: Dummy::dummy(allocator),
64            name: Dummy::dummy(allocator),
65            reference_id: Dummy::dummy(allocator),
66        }
67    }
68}
69
70impl<'a> Dummy<'a> for BindingIdentifier<'a> {
71    /// Create a dummy [`BindingIdentifier`].
72    ///
73    /// Does not allocate any data into arena.
74    fn dummy(allocator: &'a Allocator) -> Self {
75        Self {
76            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
77            span: Dummy::dummy(allocator),
78            name: Dummy::dummy(allocator),
79            symbol_id: Dummy::dummy(allocator),
80        }
81    }
82}
83
84impl<'a> Dummy<'a> for LabelIdentifier<'a> {
85    /// Create a dummy [`LabelIdentifier`].
86    ///
87    /// Does not allocate any data into arena.
88    fn dummy(allocator: &'a Allocator) -> Self {
89        Self {
90            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
91            span: Dummy::dummy(allocator),
92            name: Dummy::dummy(allocator),
93        }
94    }
95}
96
97impl<'a> Dummy<'a> for ThisExpression {
98    /// Create a dummy [`ThisExpression`].
99    ///
100    /// Does not allocate any data into arena.
101    fn dummy(allocator: &'a Allocator) -> Self {
102        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
103    }
104}
105
106impl<'a> Dummy<'a> for ArrayExpression<'a> {
107    /// Create a dummy [`ArrayExpression`].
108    ///
109    /// Does not allocate any data into arena.
110    fn dummy(allocator: &'a Allocator) -> Self {
111        Self {
112            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
113            span: Dummy::dummy(allocator),
114            elements: Dummy::dummy(allocator),
115        }
116    }
117}
118
119impl<'a> Dummy<'a> for ArrayExpressionElement<'a> {
120    /// Create a dummy [`ArrayExpressionElement`].
121    ///
122    /// Does not allocate any data into arena.
123    fn dummy(allocator: &'a Allocator) -> Self {
124        Self::Elision(Dummy::dummy(allocator))
125    }
126}
127
128impl<'a> Dummy<'a> for Elision {
129    /// Create a dummy [`Elision`].
130    ///
131    /// Does not allocate any data into arena.
132    fn dummy(allocator: &'a Allocator) -> Self {
133        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
134    }
135}
136
137impl<'a> Dummy<'a> for ObjectExpression<'a> {
138    /// Create a dummy [`ObjectExpression`].
139    ///
140    /// Does not allocate any data into arena.
141    fn dummy(allocator: &'a Allocator) -> Self {
142        Self {
143            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
144            span: Dummy::dummy(allocator),
145            properties: Dummy::dummy(allocator),
146        }
147    }
148}
149
150impl<'a> Dummy<'a> for ObjectPropertyKind<'a> {
151    /// Create a dummy [`ObjectPropertyKind`].
152    ///
153    /// Has cost of making 2 allocations (48 bytes).
154    fn dummy(allocator: &'a Allocator) -> Self {
155        Self::SpreadProperty(Dummy::dummy(allocator))
156    }
157}
158
159impl<'a> Dummy<'a> for ObjectProperty<'a> {
160    /// Create a dummy [`ObjectProperty`].
161    ///
162    /// Has cost of making 2 allocations (32 bytes).
163    fn dummy(allocator: &'a Allocator) -> Self {
164        Self {
165            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
166            span: Dummy::dummy(allocator),
167            kind: Dummy::dummy(allocator),
168            key: Dummy::dummy(allocator),
169            value: Dummy::dummy(allocator),
170            method: Dummy::dummy(allocator),
171            shorthand: Dummy::dummy(allocator),
172            computed: Dummy::dummy(allocator),
173        }
174    }
175}
176
177impl<'a> Dummy<'a> for PropertyKey<'a> {
178    /// Create a dummy [`PropertyKey`].
179    ///
180    /// Has cost of making 1 allocation (16 bytes).
181    fn dummy(allocator: &'a Allocator) -> Self {
182        Self::NullLiteral(Dummy::dummy(allocator))
183    }
184}
185
186impl<'a> Dummy<'a> for PropertyKind {
187    /// Create a dummy [`PropertyKind`].
188    ///
189    /// Does not allocate any data into arena.
190    #[inline(always)]
191    fn dummy(allocator: &'a Allocator) -> Self {
192        Self::Init
193    }
194}
195
196impl<'a> Dummy<'a> for TemplateLiteral<'a> {
197    /// Create a dummy [`TemplateLiteral`].
198    ///
199    /// Does not allocate any data into arena.
200    fn dummy(allocator: &'a Allocator) -> Self {
201        Self {
202            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
203            span: Dummy::dummy(allocator),
204            quasis: Dummy::dummy(allocator),
205            expressions: Dummy::dummy(allocator),
206        }
207    }
208}
209
210impl<'a> Dummy<'a> for TaggedTemplateExpression<'a> {
211    /// Create a dummy [`TaggedTemplateExpression`].
212    ///
213    /// Has cost of making 1 allocation (16 bytes).
214    fn dummy(allocator: &'a Allocator) -> Self {
215        Self {
216            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
217            span: Dummy::dummy(allocator),
218            tag: Dummy::dummy(allocator),
219            type_arguments: Dummy::dummy(allocator),
220            quasi: Dummy::dummy(allocator),
221        }
222    }
223}
224
225impl<'a> Dummy<'a> for TemplateElement<'a> {
226    /// Create a dummy [`TemplateElement`].
227    ///
228    /// Does not allocate any data into arena.
229    fn dummy(allocator: &'a Allocator) -> Self {
230        Self {
231            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
232            span: Dummy::dummy(allocator),
233            value: Dummy::dummy(allocator),
234            tail: Dummy::dummy(allocator),
235            lone_surrogates: Dummy::dummy(allocator),
236        }
237    }
238}
239
240impl<'a> Dummy<'a> for TemplateElementValue<'a> {
241    /// Create a dummy [`TemplateElementValue`].
242    ///
243    /// Does not allocate any data into arena.
244    fn dummy(allocator: &'a Allocator) -> Self {
245        Self { raw: Dummy::dummy(allocator), cooked: Dummy::dummy(allocator) }
246    }
247}
248
249impl<'a> Dummy<'a> for MemberExpression<'a> {
250    /// Create a dummy [`MemberExpression`].
251    ///
252    /// Has cost of making 3 allocations (80 bytes).
253    fn dummy(allocator: &'a Allocator) -> Self {
254        Self::ComputedMemberExpression(Dummy::dummy(allocator))
255    }
256}
257
258impl<'a> Dummy<'a> for ComputedMemberExpression<'a> {
259    /// Create a dummy [`ComputedMemberExpression`].
260    ///
261    /// Has cost of making 2 allocations (32 bytes).
262    fn dummy(allocator: &'a Allocator) -> Self {
263        Self {
264            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
265            span: Dummy::dummy(allocator),
266            object: Dummy::dummy(allocator),
267            expression: Dummy::dummy(allocator),
268            optional: Dummy::dummy(allocator),
269        }
270    }
271}
272
273impl<'a> Dummy<'a> for StaticMemberExpression<'a> {
274    /// Create a dummy [`StaticMemberExpression`].
275    ///
276    /// Has cost of making 1 allocation (16 bytes).
277    fn dummy(allocator: &'a Allocator) -> Self {
278        Self {
279            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
280            span: Dummy::dummy(allocator),
281            object: Dummy::dummy(allocator),
282            property: Dummy::dummy(allocator),
283            optional: Dummy::dummy(allocator),
284        }
285    }
286}
287
288impl<'a> Dummy<'a> for PrivateFieldExpression<'a> {
289    /// Create a dummy [`PrivateFieldExpression`].
290    ///
291    /// Has cost of making 1 allocation (16 bytes).
292    fn dummy(allocator: &'a Allocator) -> Self {
293        Self {
294            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
295            span: Dummy::dummy(allocator),
296            object: Dummy::dummy(allocator),
297            field: Dummy::dummy(allocator),
298            optional: Dummy::dummy(allocator),
299        }
300    }
301}
302
303impl<'a> Dummy<'a> for CallExpression<'a> {
304    /// Create a dummy [`CallExpression`].
305    ///
306    /// Has cost of making 1 allocation (16 bytes).
307    fn dummy(allocator: &'a Allocator) -> Self {
308        Self {
309            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
310            span: Dummy::dummy(allocator),
311            callee: Dummy::dummy(allocator),
312            type_arguments: Dummy::dummy(allocator),
313            arguments: Dummy::dummy(allocator),
314            optional: Dummy::dummy(allocator),
315            pure: Dummy::dummy(allocator),
316        }
317    }
318}
319
320impl<'a> Dummy<'a> for NewExpression<'a> {
321    /// Create a dummy [`NewExpression`].
322    ///
323    /// Has cost of making 1 allocation (16 bytes).
324    fn dummy(allocator: &'a Allocator) -> Self {
325        Self {
326            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
327            span: Dummy::dummy(allocator),
328            callee: Dummy::dummy(allocator),
329            type_arguments: Dummy::dummy(allocator),
330            arguments: Dummy::dummy(allocator),
331            pure: Dummy::dummy(allocator),
332        }
333    }
334}
335
336impl<'a> Dummy<'a> for MetaProperty<'a> {
337    /// Create a dummy [`MetaProperty`].
338    ///
339    /// Does not allocate any data into arena.
340    fn dummy(allocator: &'a Allocator) -> Self {
341        Self {
342            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
343            span: Dummy::dummy(allocator),
344            meta: Dummy::dummy(allocator),
345            property: Dummy::dummy(allocator),
346        }
347    }
348}
349
350impl<'a> Dummy<'a> for SpreadElement<'a> {
351    /// Create a dummy [`SpreadElement`].
352    ///
353    /// Has cost of making 1 allocation (16 bytes).
354    fn dummy(allocator: &'a Allocator) -> Self {
355        Self {
356            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
357            span: Dummy::dummy(allocator),
358            argument: Dummy::dummy(allocator),
359        }
360    }
361}
362
363impl<'a> Dummy<'a> for Argument<'a> {
364    /// Create a dummy [`Argument`].
365    ///
366    /// Has cost of making 1 allocation (16 bytes).
367    fn dummy(allocator: &'a Allocator) -> Self {
368        Self::NullLiteral(Dummy::dummy(allocator))
369    }
370}
371
372impl<'a> Dummy<'a> for UpdateExpression<'a> {
373    /// Create a dummy [`UpdateExpression`].
374    ///
375    /// Has cost of making 1 allocation (32 bytes).
376    fn dummy(allocator: &'a Allocator) -> Self {
377        Self {
378            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
379            span: Dummy::dummy(allocator),
380            operator: Dummy::dummy(allocator),
381            prefix: Dummy::dummy(allocator),
382            argument: Dummy::dummy(allocator),
383        }
384    }
385}
386
387impl<'a> Dummy<'a> for UnaryExpression<'a> {
388    /// Create a dummy [`UnaryExpression`].
389    ///
390    /// Has cost of making 1 allocation (16 bytes).
391    fn dummy(allocator: &'a Allocator) -> Self {
392        Self {
393            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
394            span: Dummy::dummy(allocator),
395            operator: Dummy::dummy(allocator),
396            argument: Dummy::dummy(allocator),
397        }
398    }
399}
400
401impl<'a> Dummy<'a> for BinaryExpression<'a> {
402    /// Create a dummy [`BinaryExpression`].
403    ///
404    /// Has cost of making 2 allocations (32 bytes).
405    fn dummy(allocator: &'a Allocator) -> Self {
406        Self {
407            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
408            span: Dummy::dummy(allocator),
409            left: Dummy::dummy(allocator),
410            operator: Dummy::dummy(allocator),
411            right: Dummy::dummy(allocator),
412        }
413    }
414}
415
416impl<'a> Dummy<'a> for PrivateInExpression<'a> {
417    /// Create a dummy [`PrivateInExpression`].
418    ///
419    /// Has cost of making 1 allocation (16 bytes).
420    fn dummy(allocator: &'a Allocator) -> Self {
421        Self {
422            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
423            span: Dummy::dummy(allocator),
424            left: Dummy::dummy(allocator),
425            right: Dummy::dummy(allocator),
426        }
427    }
428}
429
430impl<'a> Dummy<'a> for LogicalExpression<'a> {
431    /// Create a dummy [`LogicalExpression`].
432    ///
433    /// Has cost of making 2 allocations (32 bytes).
434    fn dummy(allocator: &'a Allocator) -> Self {
435        Self {
436            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
437            span: Dummy::dummy(allocator),
438            left: Dummy::dummy(allocator),
439            operator: Dummy::dummy(allocator),
440            right: Dummy::dummy(allocator),
441        }
442    }
443}
444
445impl<'a> Dummy<'a> for ConditionalExpression<'a> {
446    /// Create a dummy [`ConditionalExpression`].
447    ///
448    /// Has cost of making 3 allocations (48 bytes).
449    fn dummy(allocator: &'a Allocator) -> Self {
450        Self {
451            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
452            span: Dummy::dummy(allocator),
453            test: Dummy::dummy(allocator),
454            consequent: Dummy::dummy(allocator),
455            alternate: Dummy::dummy(allocator),
456        }
457    }
458}
459
460impl<'a> Dummy<'a> for AssignmentExpression<'a> {
461    /// Create a dummy [`AssignmentExpression`].
462    ///
463    /// Has cost of making 2 allocations (48 bytes).
464    fn dummy(allocator: &'a Allocator) -> Self {
465        Self {
466            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
467            span: Dummy::dummy(allocator),
468            operator: Dummy::dummy(allocator),
469            left: Dummy::dummy(allocator),
470            right: Dummy::dummy(allocator),
471        }
472    }
473}
474
475impl<'a> Dummy<'a> for AssignmentTarget<'a> {
476    /// Create a dummy [`AssignmentTarget`].
477    ///
478    /// Has cost of making 1 allocation (32 bytes).
479    fn dummy(allocator: &'a Allocator) -> Self {
480        Self::AssignmentTargetIdentifier(Dummy::dummy(allocator))
481    }
482}
483
484impl<'a> Dummy<'a> for SimpleAssignmentTarget<'a> {
485    /// Create a dummy [`SimpleAssignmentTarget`].
486    ///
487    /// Has cost of making 1 allocation (32 bytes).
488    fn dummy(allocator: &'a Allocator) -> Self {
489        Self::AssignmentTargetIdentifier(Dummy::dummy(allocator))
490    }
491}
492
493impl<'a> Dummy<'a> for AssignmentTargetPattern<'a> {
494    /// Create a dummy [`AssignmentTargetPattern`].
495    ///
496    /// Has cost of making 1 allocation (48 bytes).
497    fn dummy(allocator: &'a Allocator) -> Self {
498        Self::ArrayAssignmentTarget(Dummy::dummy(allocator))
499    }
500}
501
502impl<'a> Dummy<'a> for ArrayAssignmentTarget<'a> {
503    /// Create a dummy [`ArrayAssignmentTarget`].
504    ///
505    /// Does not allocate any data into arena.
506    fn dummy(allocator: &'a Allocator) -> Self {
507        Self {
508            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
509            span: Dummy::dummy(allocator),
510            elements: Dummy::dummy(allocator),
511            rest: Dummy::dummy(allocator),
512        }
513    }
514}
515
516impl<'a> Dummy<'a> for ObjectAssignmentTarget<'a> {
517    /// Create a dummy [`ObjectAssignmentTarget`].
518    ///
519    /// Does not allocate any data into arena.
520    fn dummy(allocator: &'a Allocator) -> Self {
521        Self {
522            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
523            span: Dummy::dummy(allocator),
524            properties: Dummy::dummy(allocator),
525            rest: Dummy::dummy(allocator),
526        }
527    }
528}
529
530impl<'a> Dummy<'a> for AssignmentTargetRest<'a> {
531    /// Create a dummy [`AssignmentTargetRest`].
532    ///
533    /// Has cost of making 1 allocation (32 bytes).
534    fn dummy(allocator: &'a Allocator) -> Self {
535        Self {
536            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
537            span: Dummy::dummy(allocator),
538            target: Dummy::dummy(allocator),
539        }
540    }
541}
542
543impl<'a> Dummy<'a> for AssignmentTargetMaybeDefault<'a> {
544    /// Create a dummy [`AssignmentTargetMaybeDefault`].
545    ///
546    /// Has cost of making 1 allocation (32 bytes).
547    fn dummy(allocator: &'a Allocator) -> Self {
548        Self::AssignmentTargetIdentifier(Dummy::dummy(allocator))
549    }
550}
551
552impl<'a> Dummy<'a> for AssignmentTargetWithDefault<'a> {
553    /// Create a dummy [`AssignmentTargetWithDefault`].
554    ///
555    /// Has cost of making 2 allocations (48 bytes).
556    fn dummy(allocator: &'a Allocator) -> Self {
557        Self {
558            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
559            span: Dummy::dummy(allocator),
560            binding: Dummy::dummy(allocator),
561            init: Dummy::dummy(allocator),
562        }
563    }
564}
565
566impl<'a> Dummy<'a> for AssignmentTargetProperty<'a> {
567    /// Create a dummy [`AssignmentTargetProperty`].
568    ///
569    /// Has cost of making 1 allocation (64 bytes).
570    fn dummy(allocator: &'a Allocator) -> Self {
571        Self::AssignmentTargetPropertyIdentifier(Dummy::dummy(allocator))
572    }
573}
574
575impl<'a> Dummy<'a> for AssignmentTargetPropertyIdentifier<'a> {
576    /// Create a dummy [`AssignmentTargetPropertyIdentifier`].
577    ///
578    /// Does not allocate any data into arena.
579    fn dummy(allocator: &'a Allocator) -> Self {
580        Self {
581            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
582            span: Dummy::dummy(allocator),
583            binding: Dummy::dummy(allocator),
584            init: Dummy::dummy(allocator),
585        }
586    }
587}
588
589impl<'a> Dummy<'a> for AssignmentTargetPropertyProperty<'a> {
590    /// Create a dummy [`AssignmentTargetPropertyProperty`].
591    ///
592    /// Has cost of making 2 allocations (48 bytes).
593    fn dummy(allocator: &'a Allocator) -> Self {
594        Self {
595            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
596            span: Dummy::dummy(allocator),
597            name: Dummy::dummy(allocator),
598            binding: Dummy::dummy(allocator),
599            computed: Dummy::dummy(allocator),
600        }
601    }
602}
603
604impl<'a> Dummy<'a> for SequenceExpression<'a> {
605    /// Create a dummy [`SequenceExpression`].
606    ///
607    /// Does not allocate any data into arena.
608    fn dummy(allocator: &'a Allocator) -> Self {
609        Self {
610            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
611            span: Dummy::dummy(allocator),
612            expressions: Dummy::dummy(allocator),
613        }
614    }
615}
616
617impl<'a> Dummy<'a> for Super {
618    /// Create a dummy [`Super`].
619    ///
620    /// Does not allocate any data into arena.
621    fn dummy(allocator: &'a Allocator) -> Self {
622        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
623    }
624}
625
626impl<'a> Dummy<'a> for AwaitExpression<'a> {
627    /// Create a dummy [`AwaitExpression`].
628    ///
629    /// Has cost of making 1 allocation (16 bytes).
630    fn dummy(allocator: &'a Allocator) -> Self {
631        Self {
632            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
633            span: Dummy::dummy(allocator),
634            argument: Dummy::dummy(allocator),
635        }
636    }
637}
638
639impl<'a> Dummy<'a> for ChainExpression<'a> {
640    /// Create a dummy [`ChainExpression`].
641    ///
642    /// Has cost of making 2 allocations (48 bytes).
643    fn dummy(allocator: &'a Allocator) -> Self {
644        Self {
645            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
646            span: Dummy::dummy(allocator),
647            expression: Dummy::dummy(allocator),
648        }
649    }
650}
651
652impl<'a> Dummy<'a> for ChainElement<'a> {
653    /// Create a dummy [`ChainElement`].
654    ///
655    /// Has cost of making 2 allocations (48 bytes).
656    fn dummy(allocator: &'a Allocator) -> Self {
657        Self::TSNonNullExpression(Dummy::dummy(allocator))
658    }
659}
660
661impl<'a> Dummy<'a> for ParenthesizedExpression<'a> {
662    /// Create a dummy [`ParenthesizedExpression`].
663    ///
664    /// Has cost of making 1 allocation (16 bytes).
665    fn dummy(allocator: &'a Allocator) -> Self {
666        Self {
667            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
668            span: Dummy::dummy(allocator),
669            expression: Dummy::dummy(allocator),
670        }
671    }
672}
673
674impl<'a> Dummy<'a> for Statement<'a> {
675    /// Create a dummy [`Statement`].
676    ///
677    /// Has cost of making 1 allocation (16 bytes).
678    fn dummy(allocator: &'a Allocator) -> Self {
679        Self::DebuggerStatement(Dummy::dummy(allocator))
680    }
681}
682
683impl<'a> Dummy<'a> for Directive<'a> {
684    /// Create a dummy [`Directive`].
685    ///
686    /// Does not allocate any data into arena.
687    fn dummy(allocator: &'a Allocator) -> Self {
688        Self {
689            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
690            span: Dummy::dummy(allocator),
691            expression: Dummy::dummy(allocator),
692            directive: Dummy::dummy(allocator),
693        }
694    }
695}
696
697impl<'a> Dummy<'a> for Hashbang<'a> {
698    /// Create a dummy [`Hashbang`].
699    ///
700    /// Does not allocate any data into arena.
701    fn dummy(allocator: &'a Allocator) -> Self {
702        Self {
703            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
704            span: Dummy::dummy(allocator),
705            value: Dummy::dummy(allocator),
706        }
707    }
708}
709
710impl<'a> Dummy<'a> for BlockStatement<'a> {
711    /// Create a dummy [`BlockStatement`].
712    ///
713    /// Does not allocate any data into arena.
714    fn dummy(allocator: &'a Allocator) -> Self {
715        Self {
716            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
717            span: Dummy::dummy(allocator),
718            body: Dummy::dummy(allocator),
719            scope_id: Dummy::dummy(allocator),
720        }
721    }
722}
723
724impl<'a> Dummy<'a> for Declaration<'a> {
725    /// Create a dummy [`Declaration`].
726    ///
727    /// Has cost of making 1 allocation (40 bytes).
728    fn dummy(allocator: &'a Allocator) -> Self {
729        Self::VariableDeclaration(Dummy::dummy(allocator))
730    }
731}
732
733impl<'a> Dummy<'a> for VariableDeclaration<'a> {
734    /// Create a dummy [`VariableDeclaration`].
735    ///
736    /// Does not allocate any data into arena.
737    fn dummy(allocator: &'a Allocator) -> Self {
738        Self {
739            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
740            span: Dummy::dummy(allocator),
741            kind: Dummy::dummy(allocator),
742            declarations: Dummy::dummy(allocator),
743            declare: Dummy::dummy(allocator),
744        }
745    }
746}
747
748impl<'a> Dummy<'a> for VariableDeclarationKind {
749    /// Create a dummy [`VariableDeclarationKind`].
750    ///
751    /// Does not allocate any data into arena.
752    #[inline(always)]
753    fn dummy(allocator: &'a Allocator) -> Self {
754        Self::Var
755    }
756}
757
758impl<'a> Dummy<'a> for VariableDeclarator<'a> {
759    /// Create a dummy [`VariableDeclarator`].
760    ///
761    /// Has cost of making 1 allocation (32 bytes).
762    fn dummy(allocator: &'a Allocator) -> Self {
763        Self {
764            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
765            span: Dummy::dummy(allocator),
766            kind: Dummy::dummy(allocator),
767            id: Dummy::dummy(allocator),
768            type_annotation: Dummy::dummy(allocator),
769            init: Dummy::dummy(allocator),
770            definite: Dummy::dummy(allocator),
771        }
772    }
773}
774
775impl<'a> Dummy<'a> for EmptyStatement {
776    /// Create a dummy [`EmptyStatement`].
777    ///
778    /// Does not allocate any data into arena.
779    fn dummy(allocator: &'a Allocator) -> Self {
780        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
781    }
782}
783
784impl<'a> Dummy<'a> for ExpressionStatement<'a> {
785    /// Create a dummy [`ExpressionStatement`].
786    ///
787    /// Has cost of making 1 allocation (16 bytes).
788    fn dummy(allocator: &'a Allocator) -> Self {
789        Self {
790            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
791            span: Dummy::dummy(allocator),
792            expression: Dummy::dummy(allocator),
793        }
794    }
795}
796
797impl<'a> Dummy<'a> for IfStatement<'a> {
798    /// Create a dummy [`IfStatement`].
799    ///
800    /// Has cost of making 2 allocations (32 bytes).
801    fn dummy(allocator: &'a Allocator) -> Self {
802        Self {
803            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
804            span: Dummy::dummy(allocator),
805            test: Dummy::dummy(allocator),
806            consequent: Dummy::dummy(allocator),
807            alternate: Dummy::dummy(allocator),
808        }
809    }
810}
811
812impl<'a> Dummy<'a> for DoWhileStatement<'a> {
813    /// Create a dummy [`DoWhileStatement`].
814    ///
815    /// Has cost of making 2 allocations (32 bytes).
816    fn dummy(allocator: &'a Allocator) -> Self {
817        Self {
818            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
819            span: Dummy::dummy(allocator),
820            body: Dummy::dummy(allocator),
821            test: Dummy::dummy(allocator),
822        }
823    }
824}
825
826impl<'a> Dummy<'a> for WhileStatement<'a> {
827    /// Create a dummy [`WhileStatement`].
828    ///
829    /// Has cost of making 2 allocations (32 bytes).
830    fn dummy(allocator: &'a Allocator) -> Self {
831        Self {
832            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
833            span: Dummy::dummy(allocator),
834            test: Dummy::dummy(allocator),
835            body: Dummy::dummy(allocator),
836        }
837    }
838}
839
840impl<'a> Dummy<'a> for ForStatement<'a> {
841    /// Create a dummy [`ForStatement`].
842    ///
843    /// Has cost of making 1 allocation (16 bytes).
844    fn dummy(allocator: &'a Allocator) -> Self {
845        Self {
846            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
847            span: Dummy::dummy(allocator),
848            init: Dummy::dummy(allocator),
849            test: Dummy::dummy(allocator),
850            update: Dummy::dummy(allocator),
851            body: Dummy::dummy(allocator),
852            scope_id: Dummy::dummy(allocator),
853        }
854    }
855}
856
857impl<'a> Dummy<'a> for ForStatementInit<'a> {
858    /// Create a dummy [`ForStatementInit`].
859    ///
860    /// Has cost of making 1 allocation (16 bytes).
861    fn dummy(allocator: &'a Allocator) -> Self {
862        Self::NullLiteral(Dummy::dummy(allocator))
863    }
864}
865
866impl<'a> Dummy<'a> for ForInStatement<'a> {
867    /// Create a dummy [`ForInStatement`].
868    ///
869    /// Has cost of making 3 allocations (64 bytes).
870    fn dummy(allocator: &'a Allocator) -> Self {
871        Self {
872            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
873            span: Dummy::dummy(allocator),
874            left: Dummy::dummy(allocator),
875            right: Dummy::dummy(allocator),
876            body: Dummy::dummy(allocator),
877            scope_id: Dummy::dummy(allocator),
878        }
879    }
880}
881
882impl<'a> Dummy<'a> for ForStatementLeft<'a> {
883    /// Create a dummy [`ForStatementLeft`].
884    ///
885    /// Has cost of making 1 allocation (32 bytes).
886    fn dummy(allocator: &'a Allocator) -> Self {
887        Self::AssignmentTargetIdentifier(Dummy::dummy(allocator))
888    }
889}
890
891impl<'a> Dummy<'a> for ForOfStatement<'a> {
892    /// Create a dummy [`ForOfStatement`].
893    ///
894    /// Has cost of making 3 allocations (64 bytes).
895    fn dummy(allocator: &'a Allocator) -> Self {
896        Self {
897            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
898            span: Dummy::dummy(allocator),
899            r#await: Dummy::dummy(allocator),
900            left: Dummy::dummy(allocator),
901            right: Dummy::dummy(allocator),
902            body: Dummy::dummy(allocator),
903            scope_id: Dummy::dummy(allocator),
904        }
905    }
906}
907
908impl<'a> Dummy<'a> for ContinueStatement<'a> {
909    /// Create a dummy [`ContinueStatement`].
910    ///
911    /// Does not allocate any data into arena.
912    fn dummy(allocator: &'a Allocator) -> Self {
913        Self {
914            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
915            span: Dummy::dummy(allocator),
916            label: Dummy::dummy(allocator),
917        }
918    }
919}
920
921impl<'a> Dummy<'a> for BreakStatement<'a> {
922    /// Create a dummy [`BreakStatement`].
923    ///
924    /// Does not allocate any data into arena.
925    fn dummy(allocator: &'a Allocator) -> Self {
926        Self {
927            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
928            span: Dummy::dummy(allocator),
929            label: Dummy::dummy(allocator),
930        }
931    }
932}
933
934impl<'a> Dummy<'a> for ReturnStatement<'a> {
935    /// Create a dummy [`ReturnStatement`].
936    ///
937    /// Does not allocate any data into arena.
938    fn dummy(allocator: &'a Allocator) -> Self {
939        Self {
940            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
941            span: Dummy::dummy(allocator),
942            argument: Dummy::dummy(allocator),
943        }
944    }
945}
946
947impl<'a> Dummy<'a> for WithStatement<'a> {
948    /// Create a dummy [`WithStatement`].
949    ///
950    /// Has cost of making 2 allocations (32 bytes).
951    fn dummy(allocator: &'a Allocator) -> Self {
952        Self {
953            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
954            span: Dummy::dummy(allocator),
955            object: Dummy::dummy(allocator),
956            body: Dummy::dummy(allocator),
957            scope_id: Dummy::dummy(allocator),
958        }
959    }
960}
961
962impl<'a> Dummy<'a> for SwitchStatement<'a> {
963    /// Create a dummy [`SwitchStatement`].
964    ///
965    /// Has cost of making 1 allocation (16 bytes).
966    fn dummy(allocator: &'a Allocator) -> Self {
967        Self {
968            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
969            span: Dummy::dummy(allocator),
970            discriminant: Dummy::dummy(allocator),
971            cases: Dummy::dummy(allocator),
972            scope_id: Dummy::dummy(allocator),
973        }
974    }
975}
976
977impl<'a> Dummy<'a> for SwitchCase<'a> {
978    /// Create a dummy [`SwitchCase`].
979    ///
980    /// Does not allocate any data into arena.
981    fn dummy(allocator: &'a Allocator) -> Self {
982        Self {
983            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
984            span: Dummy::dummy(allocator),
985            test: Dummy::dummy(allocator),
986            consequent: Dummy::dummy(allocator),
987        }
988    }
989}
990
991impl<'a> Dummy<'a> for LabeledStatement<'a> {
992    /// Create a dummy [`LabeledStatement`].
993    ///
994    /// Has cost of making 1 allocation (16 bytes).
995    fn dummy(allocator: &'a Allocator) -> Self {
996        Self {
997            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
998            span: Dummy::dummy(allocator),
999            label: Dummy::dummy(allocator),
1000            body: Dummy::dummy(allocator),
1001        }
1002    }
1003}
1004
1005impl<'a> Dummy<'a> for ThrowStatement<'a> {
1006    /// Create a dummy [`ThrowStatement`].
1007    ///
1008    /// Has cost of making 1 allocation (16 bytes).
1009    fn dummy(allocator: &'a Allocator) -> Self {
1010        Self {
1011            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1012            span: Dummy::dummy(allocator),
1013            argument: Dummy::dummy(allocator),
1014        }
1015    }
1016}
1017
1018impl<'a> Dummy<'a> for TryStatement<'a> {
1019    /// Create a dummy [`TryStatement`].
1020    ///
1021    /// Has cost of making 1 allocation (40 bytes).
1022    fn dummy(allocator: &'a Allocator) -> Self {
1023        Self {
1024            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1025            span: Dummy::dummy(allocator),
1026            block: Dummy::dummy(allocator),
1027            handler: Dummy::dummy(allocator),
1028            finalizer: Dummy::dummy(allocator),
1029        }
1030    }
1031}
1032
1033impl<'a> Dummy<'a> for CatchClause<'a> {
1034    /// Create a dummy [`CatchClause`].
1035    ///
1036    /// Has cost of making 1 allocation (40 bytes).
1037    fn dummy(allocator: &'a Allocator) -> Self {
1038        Self {
1039            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1040            span: Dummy::dummy(allocator),
1041            param: Dummy::dummy(allocator),
1042            body: Dummy::dummy(allocator),
1043            scope_id: Dummy::dummy(allocator),
1044        }
1045    }
1046}
1047
1048impl<'a> Dummy<'a> for CatchParameter<'a> {
1049    /// Create a dummy [`CatchParameter`].
1050    ///
1051    /// Has cost of making 1 allocation (32 bytes).
1052    fn dummy(allocator: &'a Allocator) -> Self {
1053        Self {
1054            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1055            span: Dummy::dummy(allocator),
1056            pattern: Dummy::dummy(allocator),
1057            type_annotation: Dummy::dummy(allocator),
1058        }
1059    }
1060}
1061
1062impl<'a> Dummy<'a> for DebuggerStatement {
1063    /// Create a dummy [`DebuggerStatement`].
1064    ///
1065    /// Does not allocate any data into arena.
1066    fn dummy(allocator: &'a Allocator) -> Self {
1067        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
1068    }
1069}
1070
1071impl<'a> Dummy<'a> for BindingPattern<'a> {
1072    /// Create a dummy [`BindingPattern`].
1073    ///
1074    /// Has cost of making 1 allocation (32 bytes).
1075    fn dummy(allocator: &'a Allocator) -> Self {
1076        Self::BindingIdentifier(Dummy::dummy(allocator))
1077    }
1078}
1079
1080impl<'a> Dummy<'a> for AssignmentPattern<'a> {
1081    /// Create a dummy [`AssignmentPattern`].
1082    ///
1083    /// Has cost of making 2 allocations (48 bytes).
1084    fn dummy(allocator: &'a Allocator) -> Self {
1085        Self {
1086            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1087            span: Dummy::dummy(allocator),
1088            left: Dummy::dummy(allocator),
1089            right: Dummy::dummy(allocator),
1090        }
1091    }
1092}
1093
1094impl<'a> Dummy<'a> for ObjectPattern<'a> {
1095    /// Create a dummy [`ObjectPattern`].
1096    ///
1097    /// Does not allocate any data into arena.
1098    fn dummy(allocator: &'a Allocator) -> Self {
1099        Self {
1100            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1101            span: Dummy::dummy(allocator),
1102            properties: Dummy::dummy(allocator),
1103            rest: Dummy::dummy(allocator),
1104        }
1105    }
1106}
1107
1108impl<'a> Dummy<'a> for BindingProperty<'a> {
1109    /// Create a dummy [`BindingProperty`].
1110    ///
1111    /// Has cost of making 2 allocations (48 bytes).
1112    fn dummy(allocator: &'a Allocator) -> Self {
1113        Self {
1114            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1115            span: Dummy::dummy(allocator),
1116            key: Dummy::dummy(allocator),
1117            value: Dummy::dummy(allocator),
1118            shorthand: Dummy::dummy(allocator),
1119            computed: Dummy::dummy(allocator),
1120        }
1121    }
1122}
1123
1124impl<'a> Dummy<'a> for ArrayPattern<'a> {
1125    /// Create a dummy [`ArrayPattern`].
1126    ///
1127    /// Does not allocate any data into arena.
1128    fn dummy(allocator: &'a Allocator) -> Self {
1129        Self {
1130            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1131            span: Dummy::dummy(allocator),
1132            elements: Dummy::dummy(allocator),
1133            rest: Dummy::dummy(allocator),
1134        }
1135    }
1136}
1137
1138impl<'a> Dummy<'a> for BindingRestElement<'a> {
1139    /// Create a dummy [`BindingRestElement`].
1140    ///
1141    /// Has cost of making 1 allocation (32 bytes).
1142    fn dummy(allocator: &'a Allocator) -> Self {
1143        Self {
1144            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1145            span: Dummy::dummy(allocator),
1146            argument: Dummy::dummy(allocator),
1147        }
1148    }
1149}
1150
1151impl<'a> Dummy<'a> for Function<'a> {
1152    /// Create a dummy [`Function`].
1153    ///
1154    /// Has cost of making 1 allocation (48 bytes).
1155    fn dummy(allocator: &'a Allocator) -> Self {
1156        Self {
1157            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1158            span: Dummy::dummy(allocator),
1159            r#type: Dummy::dummy(allocator),
1160            id: Dummy::dummy(allocator),
1161            generator: Dummy::dummy(allocator),
1162            r#async: Dummy::dummy(allocator),
1163            declare: Dummy::dummy(allocator),
1164            type_parameters: Dummy::dummy(allocator),
1165            this_param: Dummy::dummy(allocator),
1166            params: Dummy::dummy(allocator),
1167            return_type: Dummy::dummy(allocator),
1168            body: Dummy::dummy(allocator),
1169            scope_id: Dummy::dummy(allocator),
1170            pure: Dummy::dummy(allocator),
1171            pife: Dummy::dummy(allocator),
1172        }
1173    }
1174}
1175
1176impl<'a> Dummy<'a> for FunctionType {
1177    /// Create a dummy [`FunctionType`].
1178    ///
1179    /// Does not allocate any data into arena.
1180    #[inline(always)]
1181    fn dummy(allocator: &'a Allocator) -> Self {
1182        Self::FunctionDeclaration
1183    }
1184}
1185
1186impl<'a> Dummy<'a> for FormalParameters<'a> {
1187    /// Create a dummy [`FormalParameters`].
1188    ///
1189    /// Does not allocate any data into arena.
1190    fn dummy(allocator: &'a Allocator) -> Self {
1191        Self {
1192            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1193            span: Dummy::dummy(allocator),
1194            kind: Dummy::dummy(allocator),
1195            items: Dummy::dummy(allocator),
1196            rest: Dummy::dummy(allocator),
1197        }
1198    }
1199}
1200
1201impl<'a> Dummy<'a> for FormalParameter<'a> {
1202    /// Create a dummy [`FormalParameter`].
1203    ///
1204    /// Has cost of making 1 allocation (32 bytes).
1205    fn dummy(allocator: &'a Allocator) -> Self {
1206        Self {
1207            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1208            span: Dummy::dummy(allocator),
1209            decorators: Dummy::dummy(allocator),
1210            pattern: Dummy::dummy(allocator),
1211            type_annotation: Dummy::dummy(allocator),
1212            initializer: Dummy::dummy(allocator),
1213            optional: Dummy::dummy(allocator),
1214            accessibility: Dummy::dummy(allocator),
1215            readonly: Dummy::dummy(allocator),
1216            r#override: Dummy::dummy(allocator),
1217        }
1218    }
1219}
1220
1221impl<'a> Dummy<'a> for FormalParameterKind {
1222    /// Create a dummy [`FormalParameterKind`].
1223    ///
1224    /// Does not allocate any data into arena.
1225    #[inline(always)]
1226    fn dummy(allocator: &'a Allocator) -> Self {
1227        Self::FormalParameter
1228    }
1229}
1230
1231impl<'a> Dummy<'a> for FormalParameterRest<'a> {
1232    /// Create a dummy [`FormalParameterRest`].
1233    ///
1234    /// Has cost of making 1 allocation (32 bytes).
1235    fn dummy(allocator: &'a Allocator) -> Self {
1236        Self {
1237            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1238            span: Dummy::dummy(allocator),
1239            decorators: Dummy::dummy(allocator),
1240            rest: Dummy::dummy(allocator),
1241            type_annotation: Dummy::dummy(allocator),
1242        }
1243    }
1244}
1245
1246impl<'a> Dummy<'a> for FunctionBody<'a> {
1247    /// Create a dummy [`FunctionBody`].
1248    ///
1249    /// Does not allocate any data into arena.
1250    fn dummy(allocator: &'a Allocator) -> Self {
1251        Self {
1252            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1253            span: Dummy::dummy(allocator),
1254            directives: Dummy::dummy(allocator),
1255            statements: Dummy::dummy(allocator),
1256        }
1257    }
1258}
1259
1260impl<'a> Dummy<'a> for ArrowFunctionExpression<'a> {
1261    /// Create a dummy [`ArrowFunctionExpression`].
1262    ///
1263    /// Has cost of making 2 allocations (112 bytes).
1264    fn dummy(allocator: &'a Allocator) -> Self {
1265        Self {
1266            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1267            span: Dummy::dummy(allocator),
1268            expression: Dummy::dummy(allocator),
1269            r#async: Dummy::dummy(allocator),
1270            type_parameters: Dummy::dummy(allocator),
1271            params: Dummy::dummy(allocator),
1272            return_type: Dummy::dummy(allocator),
1273            body: Dummy::dummy(allocator),
1274            scope_id: Dummy::dummy(allocator),
1275            pure: Dummy::dummy(allocator),
1276            pife: Dummy::dummy(allocator),
1277        }
1278    }
1279}
1280
1281impl<'a> Dummy<'a> for YieldExpression<'a> {
1282    /// Create a dummy [`YieldExpression`].
1283    ///
1284    /// Does not allocate any data into arena.
1285    fn dummy(allocator: &'a Allocator) -> Self {
1286        Self {
1287            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1288            span: Dummy::dummy(allocator),
1289            delegate: Dummy::dummy(allocator),
1290            argument: Dummy::dummy(allocator),
1291        }
1292    }
1293}
1294
1295impl<'a> Dummy<'a> for Class<'a> {
1296    /// Create a dummy [`Class`].
1297    ///
1298    /// Has cost of making 1 allocation (40 bytes).
1299    fn dummy(allocator: &'a Allocator) -> Self {
1300        Self {
1301            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1302            span: Dummy::dummy(allocator),
1303            r#type: Dummy::dummy(allocator),
1304            decorators: Dummy::dummy(allocator),
1305            id: Dummy::dummy(allocator),
1306            type_parameters: Dummy::dummy(allocator),
1307            super_class: Dummy::dummy(allocator),
1308            super_type_arguments: Dummy::dummy(allocator),
1309            implements: Dummy::dummy(allocator),
1310            body: Dummy::dummy(allocator),
1311            r#abstract: Dummy::dummy(allocator),
1312            declare: Dummy::dummy(allocator),
1313            scope_id: Dummy::dummy(allocator),
1314        }
1315    }
1316}
1317
1318impl<'a> Dummy<'a> for ClassType {
1319    /// Create a dummy [`ClassType`].
1320    ///
1321    /// Does not allocate any data into arena.
1322    #[inline(always)]
1323    fn dummy(allocator: &'a Allocator) -> Self {
1324        Self::ClassDeclaration
1325    }
1326}
1327
1328impl<'a> Dummy<'a> for ClassBody<'a> {
1329    /// Create a dummy [`ClassBody`].
1330    ///
1331    /// Does not allocate any data into arena.
1332    fn dummy(allocator: &'a Allocator) -> Self {
1333        Self {
1334            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1335            span: Dummy::dummy(allocator),
1336            body: Dummy::dummy(allocator),
1337        }
1338    }
1339}
1340
1341impl<'a> Dummy<'a> for ClassElement<'a> {
1342    /// Create a dummy [`ClassElement`].
1343    ///
1344    /// Has cost of making 1 allocation (40 bytes).
1345    fn dummy(allocator: &'a Allocator) -> Self {
1346        Self::StaticBlock(Dummy::dummy(allocator))
1347    }
1348}
1349
1350impl<'a> Dummy<'a> for MethodDefinition<'a> {
1351    /// Create a dummy [`MethodDefinition`].
1352    ///
1353    /// Has cost of making 3 allocations (160 bytes).
1354    fn dummy(allocator: &'a Allocator) -> Self {
1355        Self {
1356            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1357            span: Dummy::dummy(allocator),
1358            r#type: Dummy::dummy(allocator),
1359            decorators: Dummy::dummy(allocator),
1360            key: Dummy::dummy(allocator),
1361            value: Dummy::dummy(allocator),
1362            kind: Dummy::dummy(allocator),
1363            computed: Dummy::dummy(allocator),
1364            r#static: Dummy::dummy(allocator),
1365            r#override: Dummy::dummy(allocator),
1366            optional: Dummy::dummy(allocator),
1367            accessibility: Dummy::dummy(allocator),
1368        }
1369    }
1370}
1371
1372impl<'a> Dummy<'a> for MethodDefinitionType {
1373    /// Create a dummy [`MethodDefinitionType`].
1374    ///
1375    /// Does not allocate any data into arena.
1376    #[inline(always)]
1377    fn dummy(allocator: &'a Allocator) -> Self {
1378        Self::MethodDefinition
1379    }
1380}
1381
1382impl<'a> Dummy<'a> for PropertyDefinition<'a> {
1383    /// Create a dummy [`PropertyDefinition`].
1384    ///
1385    /// Has cost of making 1 allocation (16 bytes).
1386    fn dummy(allocator: &'a Allocator) -> Self {
1387        Self {
1388            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1389            span: Dummy::dummy(allocator),
1390            r#type: Dummy::dummy(allocator),
1391            decorators: Dummy::dummy(allocator),
1392            key: Dummy::dummy(allocator),
1393            type_annotation: Dummy::dummy(allocator),
1394            value: Dummy::dummy(allocator),
1395            computed: Dummy::dummy(allocator),
1396            r#static: Dummy::dummy(allocator),
1397            declare: Dummy::dummy(allocator),
1398            r#override: Dummy::dummy(allocator),
1399            optional: Dummy::dummy(allocator),
1400            definite: Dummy::dummy(allocator),
1401            readonly: Dummy::dummy(allocator),
1402            accessibility: Dummy::dummy(allocator),
1403        }
1404    }
1405}
1406
1407impl<'a> Dummy<'a> for PropertyDefinitionType {
1408    /// Create a dummy [`PropertyDefinitionType`].
1409    ///
1410    /// Does not allocate any data into arena.
1411    #[inline(always)]
1412    fn dummy(allocator: &'a Allocator) -> Self {
1413        Self::PropertyDefinition
1414    }
1415}
1416
1417impl<'a> Dummy<'a> for MethodDefinitionKind {
1418    /// Create a dummy [`MethodDefinitionKind`].
1419    ///
1420    /// Does not allocate any data into arena.
1421    #[inline(always)]
1422    fn dummy(allocator: &'a Allocator) -> Self {
1423        Self::Constructor
1424    }
1425}
1426
1427impl<'a> Dummy<'a> for PrivateIdentifier<'a> {
1428    /// Create a dummy [`PrivateIdentifier`].
1429    ///
1430    /// Does not allocate any data into arena.
1431    fn dummy(allocator: &'a Allocator) -> Self {
1432        Self {
1433            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1434            span: Dummy::dummy(allocator),
1435            name: Dummy::dummy(allocator),
1436        }
1437    }
1438}
1439
1440impl<'a> Dummy<'a> for StaticBlock<'a> {
1441    /// Create a dummy [`StaticBlock`].
1442    ///
1443    /// Does not allocate any data into arena.
1444    fn dummy(allocator: &'a Allocator) -> Self {
1445        Self {
1446            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1447            span: Dummy::dummy(allocator),
1448            body: Dummy::dummy(allocator),
1449            scope_id: Dummy::dummy(allocator),
1450        }
1451    }
1452}
1453
1454impl<'a> Dummy<'a> for ModuleDeclaration<'a> {
1455    /// Create a dummy [`ModuleDeclaration`].
1456    ///
1457    /// Has cost of making 2 allocations (48 bytes).
1458    fn dummy(allocator: &'a Allocator) -> Self {
1459        Self::ExportDefaultDeclaration(Dummy::dummy(allocator))
1460    }
1461}
1462
1463impl<'a> Dummy<'a> for AccessorPropertyType {
1464    /// Create a dummy [`AccessorPropertyType`].
1465    ///
1466    /// Does not allocate any data into arena.
1467    #[inline(always)]
1468    fn dummy(allocator: &'a Allocator) -> Self {
1469        Self::AccessorProperty
1470    }
1471}
1472
1473impl<'a> Dummy<'a> for AccessorProperty<'a> {
1474    /// Create a dummy [`AccessorProperty`].
1475    ///
1476    /// Has cost of making 1 allocation (16 bytes).
1477    fn dummy(allocator: &'a Allocator) -> Self {
1478        Self {
1479            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1480            span: Dummy::dummy(allocator),
1481            r#type: Dummy::dummy(allocator),
1482            decorators: Dummy::dummy(allocator),
1483            key: Dummy::dummy(allocator),
1484            type_annotation: Dummy::dummy(allocator),
1485            value: Dummy::dummy(allocator),
1486            computed: Dummy::dummy(allocator),
1487            r#static: Dummy::dummy(allocator),
1488            r#override: Dummy::dummy(allocator),
1489            definite: Dummy::dummy(allocator),
1490            accessibility: Dummy::dummy(allocator),
1491        }
1492    }
1493}
1494
1495impl<'a> Dummy<'a> for ImportExpression<'a> {
1496    /// Create a dummy [`ImportExpression`].
1497    ///
1498    /// Has cost of making 1 allocation (16 bytes).
1499    fn dummy(allocator: &'a Allocator) -> Self {
1500        Self {
1501            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1502            span: Dummy::dummy(allocator),
1503            source: Dummy::dummy(allocator),
1504            options: Dummy::dummy(allocator),
1505            phase: Dummy::dummy(allocator),
1506        }
1507    }
1508}
1509
1510impl<'a> Dummy<'a> for ImportDeclaration<'a> {
1511    /// Create a dummy [`ImportDeclaration`].
1512    ///
1513    /// Does not allocate any data into arena.
1514    fn dummy(allocator: &'a Allocator) -> Self {
1515        Self {
1516            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1517            span: Dummy::dummy(allocator),
1518            specifiers: Dummy::dummy(allocator),
1519            source: Dummy::dummy(allocator),
1520            phase: Dummy::dummy(allocator),
1521            with_clause: Dummy::dummy(allocator),
1522            import_kind: Dummy::dummy(allocator),
1523        }
1524    }
1525}
1526
1527impl<'a> Dummy<'a> for ImportPhase {
1528    /// Create a dummy [`ImportPhase`].
1529    ///
1530    /// Does not allocate any data into arena.
1531    #[inline(always)]
1532    fn dummy(allocator: &'a Allocator) -> Self {
1533        Self::Source
1534    }
1535}
1536
1537impl<'a> Dummy<'a> for ImportDeclarationSpecifier<'a> {
1538    /// Create a dummy [`ImportDeclarationSpecifier`].
1539    ///
1540    /// Has cost of making 1 allocation (48 bytes).
1541    fn dummy(allocator: &'a Allocator) -> Self {
1542        Self::ImportDefaultSpecifier(Dummy::dummy(allocator))
1543    }
1544}
1545
1546impl<'a> Dummy<'a> for ImportSpecifier<'a> {
1547    /// Create a dummy [`ImportSpecifier`].
1548    ///
1549    /// Does not allocate any data into arena.
1550    fn dummy(allocator: &'a Allocator) -> Self {
1551        Self {
1552            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1553            span: Dummy::dummy(allocator),
1554            imported: Dummy::dummy(allocator),
1555            local: Dummy::dummy(allocator),
1556            import_kind: Dummy::dummy(allocator),
1557        }
1558    }
1559}
1560
1561impl<'a> Dummy<'a> for ImportDefaultSpecifier<'a> {
1562    /// Create a dummy [`ImportDefaultSpecifier`].
1563    ///
1564    /// Does not allocate any data into arena.
1565    fn dummy(allocator: &'a Allocator) -> Self {
1566        Self {
1567            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1568            span: Dummy::dummy(allocator),
1569            local: Dummy::dummy(allocator),
1570        }
1571    }
1572}
1573
1574impl<'a> Dummy<'a> for ImportNamespaceSpecifier<'a> {
1575    /// Create a dummy [`ImportNamespaceSpecifier`].
1576    ///
1577    /// Does not allocate any data into arena.
1578    fn dummy(allocator: &'a Allocator) -> Self {
1579        Self {
1580            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1581            span: Dummy::dummy(allocator),
1582            local: Dummy::dummy(allocator),
1583        }
1584    }
1585}
1586
1587impl<'a> Dummy<'a> for WithClause<'a> {
1588    /// Create a dummy [`WithClause`].
1589    ///
1590    /// Does not allocate any data into arena.
1591    fn dummy(allocator: &'a Allocator) -> Self {
1592        Self {
1593            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1594            span: Dummy::dummy(allocator),
1595            keyword: Dummy::dummy(allocator),
1596            with_entries: Dummy::dummy(allocator),
1597        }
1598    }
1599}
1600
1601impl<'a> Dummy<'a> for WithClauseKeyword {
1602    /// Create a dummy [`WithClauseKeyword`].
1603    ///
1604    /// Does not allocate any data into arena.
1605    #[inline(always)]
1606    fn dummy(allocator: &'a Allocator) -> Self {
1607        Self::With
1608    }
1609}
1610
1611impl<'a> Dummy<'a> for ImportAttribute<'a> {
1612    /// Create a dummy [`ImportAttribute`].
1613    ///
1614    /// Does not allocate any data into arena.
1615    fn dummy(allocator: &'a Allocator) -> Self {
1616        Self {
1617            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1618            span: Dummy::dummy(allocator),
1619            key: Dummy::dummy(allocator),
1620            value: Dummy::dummy(allocator),
1621        }
1622    }
1623}
1624
1625impl<'a> Dummy<'a> for ImportAttributeKey<'a> {
1626    /// Create a dummy [`ImportAttributeKey`].
1627    ///
1628    /// Does not allocate any data into arena.
1629    fn dummy(allocator: &'a Allocator) -> Self {
1630        Self::Identifier(Dummy::dummy(allocator))
1631    }
1632}
1633
1634impl<'a> Dummy<'a> for ExportNamedDeclaration<'a> {
1635    /// Create a dummy [`ExportNamedDeclaration`].
1636    ///
1637    /// Does not allocate any data into arena.
1638    fn dummy(allocator: &'a Allocator) -> Self {
1639        Self {
1640            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1641            span: Dummy::dummy(allocator),
1642            declaration: Dummy::dummy(allocator),
1643            specifiers: Dummy::dummy(allocator),
1644            source: Dummy::dummy(allocator),
1645            export_kind: Dummy::dummy(allocator),
1646            with_clause: Dummy::dummy(allocator),
1647        }
1648    }
1649}
1650
1651impl<'a> Dummy<'a> for ExportDefaultDeclaration<'a> {
1652    /// Create a dummy [`ExportDefaultDeclaration`].
1653    ///
1654    /// Has cost of making 1 allocation (16 bytes).
1655    fn dummy(allocator: &'a Allocator) -> Self {
1656        Self {
1657            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1658            span: Dummy::dummy(allocator),
1659            declaration: Dummy::dummy(allocator),
1660        }
1661    }
1662}
1663
1664impl<'a> Dummy<'a> for ExportAllDeclaration<'a> {
1665    /// Create a dummy [`ExportAllDeclaration`].
1666    ///
1667    /// Does not allocate any data into arena.
1668    fn dummy(allocator: &'a Allocator) -> Self {
1669        Self {
1670            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1671            span: Dummy::dummy(allocator),
1672            exported: Dummy::dummy(allocator),
1673            source: Dummy::dummy(allocator),
1674            with_clause: Dummy::dummy(allocator),
1675            export_kind: Dummy::dummy(allocator),
1676        }
1677    }
1678}
1679
1680impl<'a> Dummy<'a> for ExportSpecifier<'a> {
1681    /// Create a dummy [`ExportSpecifier`].
1682    ///
1683    /// Does not allocate any data into arena.
1684    fn dummy(allocator: &'a Allocator) -> Self {
1685        Self {
1686            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1687            span: Dummy::dummy(allocator),
1688            local: Dummy::dummy(allocator),
1689            exported: Dummy::dummy(allocator),
1690            export_kind: Dummy::dummy(allocator),
1691        }
1692    }
1693}
1694
1695impl<'a> Dummy<'a> for ExportDefaultDeclarationKind<'a> {
1696    /// Create a dummy [`ExportDefaultDeclarationKind`].
1697    ///
1698    /// Has cost of making 1 allocation (16 bytes).
1699    fn dummy(allocator: &'a Allocator) -> Self {
1700        Self::NullLiteral(Dummy::dummy(allocator))
1701    }
1702}
1703
1704impl<'a> Dummy<'a> for ModuleExportName<'a> {
1705    /// Create a dummy [`ModuleExportName`].
1706    ///
1707    /// Does not allocate any data into arena.
1708    fn dummy(allocator: &'a Allocator) -> Self {
1709        Self::IdentifierName(Dummy::dummy(allocator))
1710    }
1711}
1712
1713impl<'a> Dummy<'a> for V8IntrinsicExpression<'a> {
1714    /// Create a dummy [`V8IntrinsicExpression`].
1715    ///
1716    /// Does not allocate any data into arena.
1717    fn dummy(allocator: &'a Allocator) -> Self {
1718        Self {
1719            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1720            span: Dummy::dummy(allocator),
1721            name: Dummy::dummy(allocator),
1722            arguments: Dummy::dummy(allocator),
1723        }
1724    }
1725}
1726
1727impl<'a> Dummy<'a> for BooleanLiteral {
1728    /// Create a dummy [`BooleanLiteral`].
1729    ///
1730    /// Does not allocate any data into arena.
1731    fn dummy(allocator: &'a Allocator) -> Self {
1732        Self {
1733            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1734            span: Dummy::dummy(allocator),
1735            value: Dummy::dummy(allocator),
1736        }
1737    }
1738}
1739
1740impl<'a> Dummy<'a> for NullLiteral {
1741    /// Create a dummy [`NullLiteral`].
1742    ///
1743    /// Does not allocate any data into arena.
1744    fn dummy(allocator: &'a Allocator) -> Self {
1745        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
1746    }
1747}
1748
1749impl<'a> Dummy<'a> for NumericLiteral<'a> {
1750    /// Create a dummy [`NumericLiteral`].
1751    ///
1752    /// Does not allocate any data into arena.
1753    fn dummy(allocator: &'a Allocator) -> Self {
1754        Self {
1755            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1756            span: Dummy::dummy(allocator),
1757            value: Dummy::dummy(allocator),
1758            raw: Dummy::dummy(allocator),
1759            base: Dummy::dummy(allocator),
1760        }
1761    }
1762}
1763
1764impl<'a> Dummy<'a> for StringLiteral<'a> {
1765    /// Create a dummy [`StringLiteral`].
1766    ///
1767    /// Does not allocate any data into arena.
1768    fn dummy(allocator: &'a Allocator) -> Self {
1769        Self {
1770            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1771            span: Dummy::dummy(allocator),
1772            value: Dummy::dummy(allocator),
1773            raw: Dummy::dummy(allocator),
1774            lone_surrogates: Dummy::dummy(allocator),
1775        }
1776    }
1777}
1778
1779impl<'a> Dummy<'a> for BigIntLiteral<'a> {
1780    /// Create a dummy [`BigIntLiteral`].
1781    ///
1782    /// Does not allocate any data into arena.
1783    fn dummy(allocator: &'a Allocator) -> Self {
1784        Self {
1785            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1786            span: Dummy::dummy(allocator),
1787            value: Dummy::dummy(allocator),
1788            raw: Dummy::dummy(allocator),
1789            base: Dummy::dummy(allocator),
1790        }
1791    }
1792}
1793
1794impl<'a> Dummy<'a> for RegExpLiteral<'a> {
1795    /// Create a dummy [`RegExpLiteral`].
1796    ///
1797    /// Does not allocate any data into arena.
1798    fn dummy(allocator: &'a Allocator) -> Self {
1799        Self {
1800            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1801            span: Dummy::dummy(allocator),
1802            regex: Dummy::dummy(allocator),
1803            raw: Dummy::dummy(allocator),
1804        }
1805    }
1806}
1807
1808impl<'a> Dummy<'a> for RegExp<'a> {
1809    /// Create a dummy [`RegExp`].
1810    ///
1811    /// Does not allocate any data into arena.
1812    fn dummy(allocator: &'a Allocator) -> Self {
1813        Self { pattern: Dummy::dummy(allocator), flags: Dummy::dummy(allocator) }
1814    }
1815}
1816
1817impl<'a> Dummy<'a> for RegExpPattern<'a> {
1818    /// Create a dummy [`RegExpPattern`].
1819    ///
1820    /// Does not allocate any data into arena.
1821    fn dummy(allocator: &'a Allocator) -> Self {
1822        Self { text: Dummy::dummy(allocator), pattern: Dummy::dummy(allocator) }
1823    }
1824}
1825
1826impl<'a> Dummy<'a> for JSXElement<'a> {
1827    /// Create a dummy [`JSXElement`].
1828    ///
1829    /// Has cost of making 2 allocations (80 bytes).
1830    fn dummy(allocator: &'a Allocator) -> Self {
1831        Self {
1832            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1833            span: Dummy::dummy(allocator),
1834            opening_element: Dummy::dummy(allocator),
1835            children: Dummy::dummy(allocator),
1836            closing_element: Dummy::dummy(allocator),
1837        }
1838    }
1839}
1840
1841impl<'a> Dummy<'a> for JSXOpeningElement<'a> {
1842    /// Create a dummy [`JSXOpeningElement`].
1843    ///
1844    /// Has cost of making 1 allocation (16 bytes).
1845    fn dummy(allocator: &'a Allocator) -> Self {
1846        Self {
1847            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1848            span: Dummy::dummy(allocator),
1849            name: Dummy::dummy(allocator),
1850            type_arguments: Dummy::dummy(allocator),
1851            attributes: Dummy::dummy(allocator),
1852        }
1853    }
1854}
1855
1856impl<'a> Dummy<'a> for JSXClosingElement<'a> {
1857    /// Create a dummy [`JSXClosingElement`].
1858    ///
1859    /// Has cost of making 1 allocation (16 bytes).
1860    fn dummy(allocator: &'a Allocator) -> Self {
1861        Self {
1862            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1863            span: Dummy::dummy(allocator),
1864            name: Dummy::dummy(allocator),
1865        }
1866    }
1867}
1868
1869impl<'a> Dummy<'a> for JSXFragment<'a> {
1870    /// Create a dummy [`JSXFragment`].
1871    ///
1872    /// Does not allocate any data into arena.
1873    fn dummy(allocator: &'a Allocator) -> Self {
1874        Self {
1875            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1876            span: Dummy::dummy(allocator),
1877            opening_fragment: Dummy::dummy(allocator),
1878            children: Dummy::dummy(allocator),
1879            closing_fragment: Dummy::dummy(allocator),
1880        }
1881    }
1882}
1883
1884impl<'a> Dummy<'a> for JSXOpeningFragment {
1885    /// Create a dummy [`JSXOpeningFragment`].
1886    ///
1887    /// Does not allocate any data into arena.
1888    fn dummy(allocator: &'a Allocator) -> Self {
1889        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
1890    }
1891}
1892
1893impl<'a> Dummy<'a> for JSXClosingFragment {
1894    /// Create a dummy [`JSXClosingFragment`].
1895    ///
1896    /// Does not allocate any data into arena.
1897    fn dummy(allocator: &'a Allocator) -> Self {
1898        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
1899    }
1900}
1901
1902impl<'a> Dummy<'a> for JSXElementName<'a> {
1903    /// Create a dummy [`JSXElementName`].
1904    ///
1905    /// Has cost of making 1 allocation (16 bytes).
1906    fn dummy(allocator: &'a Allocator) -> Self {
1907        Self::ThisExpression(Dummy::dummy(allocator))
1908    }
1909}
1910
1911impl<'a> Dummy<'a> for JSXNamespacedName<'a> {
1912    /// Create a dummy [`JSXNamespacedName`].
1913    ///
1914    /// Does not allocate any data into arena.
1915    fn dummy(allocator: &'a Allocator) -> Self {
1916        Self {
1917            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1918            span: Dummy::dummy(allocator),
1919            namespace: Dummy::dummy(allocator),
1920            name: Dummy::dummy(allocator),
1921        }
1922    }
1923}
1924
1925impl<'a> Dummy<'a> for JSXMemberExpression<'a> {
1926    /// Create a dummy [`JSXMemberExpression`].
1927    ///
1928    /// Has cost of making 1 allocation (16 bytes).
1929    fn dummy(allocator: &'a Allocator) -> Self {
1930        Self {
1931            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1932            span: Dummy::dummy(allocator),
1933            object: Dummy::dummy(allocator),
1934            property: Dummy::dummy(allocator),
1935        }
1936    }
1937}
1938
1939impl<'a> Dummy<'a> for JSXMemberExpressionObject<'a> {
1940    /// Create a dummy [`JSXMemberExpressionObject`].
1941    ///
1942    /// Has cost of making 1 allocation (16 bytes).
1943    fn dummy(allocator: &'a Allocator) -> Self {
1944        Self::ThisExpression(Dummy::dummy(allocator))
1945    }
1946}
1947
1948impl<'a> Dummy<'a> for JSXExpressionContainer<'a> {
1949    /// Create a dummy [`JSXExpressionContainer`].
1950    ///
1951    /// Does not allocate any data into arena.
1952    fn dummy(allocator: &'a Allocator) -> Self {
1953        Self {
1954            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1955            span: Dummy::dummy(allocator),
1956            expression: Dummy::dummy(allocator),
1957        }
1958    }
1959}
1960
1961impl<'a> Dummy<'a> for JSXExpression<'a> {
1962    /// Create a dummy [`JSXExpression`].
1963    ///
1964    /// Does not allocate any data into arena.
1965    fn dummy(allocator: &'a Allocator) -> Self {
1966        Self::EmptyExpression(Dummy::dummy(allocator))
1967    }
1968}
1969
1970impl<'a> Dummy<'a> for JSXEmptyExpression {
1971    /// Create a dummy [`JSXEmptyExpression`].
1972    ///
1973    /// Does not allocate any data into arena.
1974    fn dummy(allocator: &'a Allocator) -> Self {
1975        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
1976    }
1977}
1978
1979impl<'a> Dummy<'a> for JSXAttributeItem<'a> {
1980    /// Create a dummy [`JSXAttributeItem`].
1981    ///
1982    /// Has cost of making 2 allocations (48 bytes).
1983    fn dummy(allocator: &'a Allocator) -> Self {
1984        Self::SpreadAttribute(Dummy::dummy(allocator))
1985    }
1986}
1987
1988impl<'a> Dummy<'a> for JSXAttribute<'a> {
1989    /// Create a dummy [`JSXAttribute`].
1990    ///
1991    /// Has cost of making 1 allocation (32 bytes).
1992    fn dummy(allocator: &'a Allocator) -> Self {
1993        Self {
1994            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
1995            span: Dummy::dummy(allocator),
1996            name: Dummy::dummy(allocator),
1997            value: Dummy::dummy(allocator),
1998        }
1999    }
2000}
2001
2002impl<'a> Dummy<'a> for JSXSpreadAttribute<'a> {
2003    /// Create a dummy [`JSXSpreadAttribute`].
2004    ///
2005    /// Has cost of making 1 allocation (16 bytes).
2006    fn dummy(allocator: &'a Allocator) -> Self {
2007        Self {
2008            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2009            span: Dummy::dummy(allocator),
2010            argument: Dummy::dummy(allocator),
2011        }
2012    }
2013}
2014
2015impl<'a> Dummy<'a> for JSXAttributeName<'a> {
2016    /// Create a dummy [`JSXAttributeName`].
2017    ///
2018    /// Has cost of making 1 allocation (32 bytes).
2019    fn dummy(allocator: &'a Allocator) -> Self {
2020        Self::Identifier(Dummy::dummy(allocator))
2021    }
2022}
2023
2024impl<'a> Dummy<'a> for JSXAttributeValue<'a> {
2025    /// Create a dummy [`JSXAttributeValue`].
2026    ///
2027    /// Has cost of making 1 allocation (40 bytes).
2028    fn dummy(allocator: &'a Allocator) -> Self {
2029        Self::ExpressionContainer(Dummy::dummy(allocator))
2030    }
2031}
2032
2033impl<'a> Dummy<'a> for JSXIdentifier<'a> {
2034    /// Create a dummy [`JSXIdentifier`].
2035    ///
2036    /// Does not allocate any data into arena.
2037    fn dummy(allocator: &'a Allocator) -> Self {
2038        Self {
2039            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2040            span: Dummy::dummy(allocator),
2041            name: Dummy::dummy(allocator),
2042        }
2043    }
2044}
2045
2046impl<'a> Dummy<'a> for JSXChild<'a> {
2047    /// Create a dummy [`JSXChild`].
2048    ///
2049    /// Has cost of making 1 allocation (40 bytes).
2050    fn dummy(allocator: &'a Allocator) -> Self {
2051        Self::ExpressionContainer(Dummy::dummy(allocator))
2052    }
2053}
2054
2055impl<'a> Dummy<'a> for JSXSpreadChild<'a> {
2056    /// Create a dummy [`JSXSpreadChild`].
2057    ///
2058    /// Has cost of making 1 allocation (16 bytes).
2059    fn dummy(allocator: &'a Allocator) -> Self {
2060        Self {
2061            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2062            span: Dummy::dummy(allocator),
2063            expression: Dummy::dummy(allocator),
2064        }
2065    }
2066}
2067
2068impl<'a> Dummy<'a> for JSXText<'a> {
2069    /// Create a dummy [`JSXText`].
2070    ///
2071    /// Does not allocate any data into arena.
2072    fn dummy(allocator: &'a Allocator) -> Self {
2073        Self {
2074            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2075            span: Dummy::dummy(allocator),
2076            value: Dummy::dummy(allocator),
2077            raw: Dummy::dummy(allocator),
2078        }
2079    }
2080}
2081
2082impl<'a> Dummy<'a> for TSThisParameter<'a> {
2083    /// Create a dummy [`TSThisParameter`].
2084    ///
2085    /// Does not allocate any data into arena.
2086    fn dummy(allocator: &'a Allocator) -> Self {
2087        Self {
2088            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2089            span: Dummy::dummy(allocator),
2090            this_span: Dummy::dummy(allocator),
2091            type_annotation: Dummy::dummy(allocator),
2092        }
2093    }
2094}
2095
2096impl<'a> Dummy<'a> for TSEnumDeclaration<'a> {
2097    /// Create a dummy [`TSEnumDeclaration`].
2098    ///
2099    /// Does not allocate any data into arena.
2100    fn dummy(allocator: &'a Allocator) -> Self {
2101        Self {
2102            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2103            span: Dummy::dummy(allocator),
2104            id: Dummy::dummy(allocator),
2105            body: Dummy::dummy(allocator),
2106            r#const: Dummy::dummy(allocator),
2107            declare: Dummy::dummy(allocator),
2108        }
2109    }
2110}
2111
2112impl<'a> Dummy<'a> for TSEnumBody<'a> {
2113    /// Create a dummy [`TSEnumBody`].
2114    ///
2115    /// Does not allocate any data into arena.
2116    fn dummy(allocator: &'a Allocator) -> Self {
2117        Self {
2118            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2119            span: Dummy::dummy(allocator),
2120            members: Dummy::dummy(allocator),
2121            scope_id: Dummy::dummy(allocator),
2122        }
2123    }
2124}
2125
2126impl<'a> Dummy<'a> for TSEnumMember<'a> {
2127    /// Create a dummy [`TSEnumMember`].
2128    ///
2129    /// Has cost of making 1 allocation (32 bytes).
2130    fn dummy(allocator: &'a Allocator) -> Self {
2131        Self {
2132            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2133            span: Dummy::dummy(allocator),
2134            id: Dummy::dummy(allocator),
2135            initializer: Dummy::dummy(allocator),
2136        }
2137    }
2138}
2139
2140impl<'a> Dummy<'a> for TSEnumMemberName<'a> {
2141    /// Create a dummy [`TSEnumMemberName`].
2142    ///
2143    /// Has cost of making 1 allocation (32 bytes).
2144    fn dummy(allocator: &'a Allocator) -> Self {
2145        Self::Identifier(Dummy::dummy(allocator))
2146    }
2147}
2148
2149impl<'a> Dummy<'a> for TSTypeAnnotation<'a> {
2150    /// Create a dummy [`TSTypeAnnotation`].
2151    ///
2152    /// Has cost of making 1 allocation (16 bytes).
2153    fn dummy(allocator: &'a Allocator) -> Self {
2154        Self {
2155            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2156            span: Dummy::dummy(allocator),
2157            type_annotation: Dummy::dummy(allocator),
2158        }
2159    }
2160}
2161
2162impl<'a> Dummy<'a> for TSLiteralType<'a> {
2163    /// Create a dummy [`TSLiteralType`].
2164    ///
2165    /// Has cost of making 1 allocation (16 bytes).
2166    fn dummy(allocator: &'a Allocator) -> Self {
2167        Self {
2168            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2169            span: Dummy::dummy(allocator),
2170            literal: Dummy::dummy(allocator),
2171        }
2172    }
2173}
2174
2175impl<'a> Dummy<'a> for TSLiteral<'a> {
2176    /// Create a dummy [`TSLiteral`].
2177    ///
2178    /// Has cost of making 1 allocation (16 bytes).
2179    fn dummy(allocator: &'a Allocator) -> Self {
2180        Self::BooleanLiteral(Dummy::dummy(allocator))
2181    }
2182}
2183
2184impl<'a> Dummy<'a> for TSType<'a> {
2185    /// Create a dummy [`TSType`].
2186    ///
2187    /// Has cost of making 1 allocation (16 bytes).
2188    fn dummy(allocator: &'a Allocator) -> Self {
2189        Self::TSAnyKeyword(Dummy::dummy(allocator))
2190    }
2191}
2192
2193impl<'a> Dummy<'a> for TSConditionalType<'a> {
2194    /// Create a dummy [`TSConditionalType`].
2195    ///
2196    /// Has cost of making 4 allocations (64 bytes).
2197    fn dummy(allocator: &'a Allocator) -> Self {
2198        Self {
2199            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2200            span: Dummy::dummy(allocator),
2201            check_type: Dummy::dummy(allocator),
2202            extends_type: Dummy::dummy(allocator),
2203            true_type: Dummy::dummy(allocator),
2204            false_type: Dummy::dummy(allocator),
2205            scope_id: Dummy::dummy(allocator),
2206        }
2207    }
2208}
2209
2210impl<'a> Dummy<'a> for TSUnionType<'a> {
2211    /// Create a dummy [`TSUnionType`].
2212    ///
2213    /// Does not allocate any data into arena.
2214    fn dummy(allocator: &'a Allocator) -> Self {
2215        Self {
2216            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2217            span: Dummy::dummy(allocator),
2218            types: Dummy::dummy(allocator),
2219        }
2220    }
2221}
2222
2223impl<'a> Dummy<'a> for TSIntersectionType<'a> {
2224    /// Create a dummy [`TSIntersectionType`].
2225    ///
2226    /// Does not allocate any data into arena.
2227    fn dummy(allocator: &'a Allocator) -> Self {
2228        Self {
2229            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2230            span: Dummy::dummy(allocator),
2231            types: Dummy::dummy(allocator),
2232        }
2233    }
2234}
2235
2236impl<'a> Dummy<'a> for TSParenthesizedType<'a> {
2237    /// Create a dummy [`TSParenthesizedType`].
2238    ///
2239    /// Has cost of making 1 allocation (16 bytes).
2240    fn dummy(allocator: &'a Allocator) -> Self {
2241        Self {
2242            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2243            span: Dummy::dummy(allocator),
2244            type_annotation: Dummy::dummy(allocator),
2245        }
2246    }
2247}
2248
2249impl<'a> Dummy<'a> for TSTypeOperator<'a> {
2250    /// Create a dummy [`TSTypeOperator`].
2251    ///
2252    /// Has cost of making 1 allocation (16 bytes).
2253    fn dummy(allocator: &'a Allocator) -> Self {
2254        Self {
2255            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2256            span: Dummy::dummy(allocator),
2257            operator: Dummy::dummy(allocator),
2258            type_annotation: Dummy::dummy(allocator),
2259        }
2260    }
2261}
2262
2263impl<'a> Dummy<'a> for TSTypeOperatorOperator {
2264    /// Create a dummy [`TSTypeOperatorOperator`].
2265    ///
2266    /// Does not allocate any data into arena.
2267    #[inline(always)]
2268    fn dummy(allocator: &'a Allocator) -> Self {
2269        Self::Keyof
2270    }
2271}
2272
2273impl<'a> Dummy<'a> for TSArrayType<'a> {
2274    /// Create a dummy [`TSArrayType`].
2275    ///
2276    /// Has cost of making 1 allocation (16 bytes).
2277    fn dummy(allocator: &'a Allocator) -> Self {
2278        Self {
2279            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2280            span: Dummy::dummy(allocator),
2281            element_type: Dummy::dummy(allocator),
2282        }
2283    }
2284}
2285
2286impl<'a> Dummy<'a> for TSIndexedAccessType<'a> {
2287    /// Create a dummy [`TSIndexedAccessType`].
2288    ///
2289    /// Has cost of making 2 allocations (32 bytes).
2290    fn dummy(allocator: &'a Allocator) -> Self {
2291        Self {
2292            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2293            span: Dummy::dummy(allocator),
2294            object_type: Dummy::dummy(allocator),
2295            index_type: Dummy::dummy(allocator),
2296        }
2297    }
2298}
2299
2300impl<'a> Dummy<'a> for TSTupleType<'a> {
2301    /// Create a dummy [`TSTupleType`].
2302    ///
2303    /// Does not allocate any data into arena.
2304    fn dummy(allocator: &'a Allocator) -> Self {
2305        Self {
2306            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2307            span: Dummy::dummy(allocator),
2308            element_types: Dummy::dummy(allocator),
2309        }
2310    }
2311}
2312
2313impl<'a> Dummy<'a> for TSNamedTupleMember<'a> {
2314    /// Create a dummy [`TSNamedTupleMember`].
2315    ///
2316    /// Has cost of making 1 allocation (16 bytes).
2317    fn dummy(allocator: &'a Allocator) -> Self {
2318        Self {
2319            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2320            span: Dummy::dummy(allocator),
2321            label: Dummy::dummy(allocator),
2322            element_type: Dummy::dummy(allocator),
2323            optional: Dummy::dummy(allocator),
2324        }
2325    }
2326}
2327
2328impl<'a> Dummy<'a> for TSOptionalType<'a> {
2329    /// Create a dummy [`TSOptionalType`].
2330    ///
2331    /// Has cost of making 1 allocation (16 bytes).
2332    fn dummy(allocator: &'a Allocator) -> Self {
2333        Self {
2334            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2335            span: Dummy::dummy(allocator),
2336            type_annotation: Dummy::dummy(allocator),
2337        }
2338    }
2339}
2340
2341impl<'a> Dummy<'a> for TSRestType<'a> {
2342    /// Create a dummy [`TSRestType`].
2343    ///
2344    /// Has cost of making 1 allocation (16 bytes).
2345    fn dummy(allocator: &'a Allocator) -> Self {
2346        Self {
2347            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2348            span: Dummy::dummy(allocator),
2349            type_annotation: Dummy::dummy(allocator),
2350        }
2351    }
2352}
2353
2354impl<'a> Dummy<'a> for TSTupleElement<'a> {
2355    /// Create a dummy [`TSTupleElement`].
2356    ///
2357    /// Has cost of making 1 allocation (16 bytes).
2358    fn dummy(allocator: &'a Allocator) -> Self {
2359        Self::TSAnyKeyword(Dummy::dummy(allocator))
2360    }
2361}
2362
2363impl<'a> Dummy<'a> for TSAnyKeyword {
2364    /// Create a dummy [`TSAnyKeyword`].
2365    ///
2366    /// Does not allocate any data into arena.
2367    fn dummy(allocator: &'a Allocator) -> Self {
2368        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
2369    }
2370}
2371
2372impl<'a> Dummy<'a> for TSStringKeyword {
2373    /// Create a dummy [`TSStringKeyword`].
2374    ///
2375    /// Does not allocate any data into arena.
2376    fn dummy(allocator: &'a Allocator) -> Self {
2377        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
2378    }
2379}
2380
2381impl<'a> Dummy<'a> for TSBooleanKeyword {
2382    /// Create a dummy [`TSBooleanKeyword`].
2383    ///
2384    /// Does not allocate any data into arena.
2385    fn dummy(allocator: &'a Allocator) -> Self {
2386        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
2387    }
2388}
2389
2390impl<'a> Dummy<'a> for TSNumberKeyword {
2391    /// Create a dummy [`TSNumberKeyword`].
2392    ///
2393    /// Does not allocate any data into arena.
2394    fn dummy(allocator: &'a Allocator) -> Self {
2395        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
2396    }
2397}
2398
2399impl<'a> Dummy<'a> for TSNeverKeyword {
2400    /// Create a dummy [`TSNeverKeyword`].
2401    ///
2402    /// Does not allocate any data into arena.
2403    fn dummy(allocator: &'a Allocator) -> Self {
2404        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
2405    }
2406}
2407
2408impl<'a> Dummy<'a> for TSIntrinsicKeyword {
2409    /// Create a dummy [`TSIntrinsicKeyword`].
2410    ///
2411    /// Does not allocate any data into arena.
2412    fn dummy(allocator: &'a Allocator) -> Self {
2413        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
2414    }
2415}
2416
2417impl<'a> Dummy<'a> for TSUnknownKeyword {
2418    /// Create a dummy [`TSUnknownKeyword`].
2419    ///
2420    /// Does not allocate any data into arena.
2421    fn dummy(allocator: &'a Allocator) -> Self {
2422        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
2423    }
2424}
2425
2426impl<'a> Dummy<'a> for TSNullKeyword {
2427    /// Create a dummy [`TSNullKeyword`].
2428    ///
2429    /// Does not allocate any data into arena.
2430    fn dummy(allocator: &'a Allocator) -> Self {
2431        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
2432    }
2433}
2434
2435impl<'a> Dummy<'a> for TSUndefinedKeyword {
2436    /// Create a dummy [`TSUndefinedKeyword`].
2437    ///
2438    /// Does not allocate any data into arena.
2439    fn dummy(allocator: &'a Allocator) -> Self {
2440        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
2441    }
2442}
2443
2444impl<'a> Dummy<'a> for TSVoidKeyword {
2445    /// Create a dummy [`TSVoidKeyword`].
2446    ///
2447    /// Does not allocate any data into arena.
2448    fn dummy(allocator: &'a Allocator) -> Self {
2449        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
2450    }
2451}
2452
2453impl<'a> Dummy<'a> for TSSymbolKeyword {
2454    /// Create a dummy [`TSSymbolKeyword`].
2455    ///
2456    /// Does not allocate any data into arena.
2457    fn dummy(allocator: &'a Allocator) -> Self {
2458        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
2459    }
2460}
2461
2462impl<'a> Dummy<'a> for TSThisType {
2463    /// Create a dummy [`TSThisType`].
2464    ///
2465    /// Does not allocate any data into arena.
2466    fn dummy(allocator: &'a Allocator) -> Self {
2467        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
2468    }
2469}
2470
2471impl<'a> Dummy<'a> for TSObjectKeyword {
2472    /// Create a dummy [`TSObjectKeyword`].
2473    ///
2474    /// Does not allocate any data into arena.
2475    fn dummy(allocator: &'a Allocator) -> Self {
2476        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
2477    }
2478}
2479
2480impl<'a> Dummy<'a> for TSBigIntKeyword {
2481    /// Create a dummy [`TSBigIntKeyword`].
2482    ///
2483    /// Does not allocate any data into arena.
2484    fn dummy(allocator: &'a Allocator) -> Self {
2485        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
2486    }
2487}
2488
2489impl<'a> Dummy<'a> for TSTypeReference<'a> {
2490    /// Create a dummy [`TSTypeReference`].
2491    ///
2492    /// Has cost of making 1 allocation (16 bytes).
2493    fn dummy(allocator: &'a Allocator) -> Self {
2494        Self {
2495            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2496            span: Dummy::dummy(allocator),
2497            type_name: Dummy::dummy(allocator),
2498            type_arguments: Dummy::dummy(allocator),
2499        }
2500    }
2501}
2502
2503impl<'a> Dummy<'a> for TSTypeName<'a> {
2504    /// Create a dummy [`TSTypeName`].
2505    ///
2506    /// Has cost of making 1 allocation (16 bytes).
2507    fn dummy(allocator: &'a Allocator) -> Self {
2508        Self::ThisExpression(Dummy::dummy(allocator))
2509    }
2510}
2511
2512impl<'a> Dummy<'a> for TSQualifiedName<'a> {
2513    /// Create a dummy [`TSQualifiedName`].
2514    ///
2515    /// Has cost of making 1 allocation (16 bytes).
2516    fn dummy(allocator: &'a Allocator) -> Self {
2517        Self {
2518            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2519            span: Dummy::dummy(allocator),
2520            left: Dummy::dummy(allocator),
2521            right: Dummy::dummy(allocator),
2522        }
2523    }
2524}
2525
2526impl<'a> Dummy<'a> for TSTypeParameterInstantiation<'a> {
2527    /// Create a dummy [`TSTypeParameterInstantiation`].
2528    ///
2529    /// Does not allocate any data into arena.
2530    fn dummy(allocator: &'a Allocator) -> Self {
2531        Self {
2532            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2533            span: Dummy::dummy(allocator),
2534            params: Dummy::dummy(allocator),
2535        }
2536    }
2537}
2538
2539impl<'a> Dummy<'a> for TSTypeParameter<'a> {
2540    /// Create a dummy [`TSTypeParameter`].
2541    ///
2542    /// Does not allocate any data into arena.
2543    fn dummy(allocator: &'a Allocator) -> Self {
2544        Self {
2545            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2546            span: Dummy::dummy(allocator),
2547            name: Dummy::dummy(allocator),
2548            constraint: Dummy::dummy(allocator),
2549            default: Dummy::dummy(allocator),
2550            r#in: Dummy::dummy(allocator),
2551            out: Dummy::dummy(allocator),
2552            r#const: Dummy::dummy(allocator),
2553        }
2554    }
2555}
2556
2557impl<'a> Dummy<'a> for TSTypeParameterDeclaration<'a> {
2558    /// Create a dummy [`TSTypeParameterDeclaration`].
2559    ///
2560    /// Does not allocate any data into arena.
2561    fn dummy(allocator: &'a Allocator) -> Self {
2562        Self {
2563            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2564            span: Dummy::dummy(allocator),
2565            params: Dummy::dummy(allocator),
2566        }
2567    }
2568}
2569
2570impl<'a> Dummy<'a> for TSTypeAliasDeclaration<'a> {
2571    /// Create a dummy [`TSTypeAliasDeclaration`].
2572    ///
2573    /// Has cost of making 1 allocation (16 bytes).
2574    fn dummy(allocator: &'a Allocator) -> Self {
2575        Self {
2576            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2577            span: Dummy::dummy(allocator),
2578            id: Dummy::dummy(allocator),
2579            type_parameters: Dummy::dummy(allocator),
2580            type_annotation: Dummy::dummy(allocator),
2581            declare: Dummy::dummy(allocator),
2582            scope_id: Dummy::dummy(allocator),
2583        }
2584    }
2585}
2586
2587impl<'a> Dummy<'a> for TSAccessibility {
2588    /// Create a dummy [`TSAccessibility`].
2589    ///
2590    /// Does not allocate any data into arena.
2591    #[inline(always)]
2592    fn dummy(allocator: &'a Allocator) -> Self {
2593        Self::Private
2594    }
2595}
2596
2597impl<'a> Dummy<'a> for TSClassImplements<'a> {
2598    /// Create a dummy [`TSClassImplements`].
2599    ///
2600    /// Has cost of making 1 allocation (16 bytes).
2601    fn dummy(allocator: &'a Allocator) -> Self {
2602        Self {
2603            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2604            span: Dummy::dummy(allocator),
2605            expression: Dummy::dummy(allocator),
2606            type_arguments: Dummy::dummy(allocator),
2607        }
2608    }
2609}
2610
2611impl<'a> Dummy<'a> for TSInterfaceDeclaration<'a> {
2612    /// Create a dummy [`TSInterfaceDeclaration`].
2613    ///
2614    /// Has cost of making 1 allocation (40 bytes).
2615    fn dummy(allocator: &'a Allocator) -> Self {
2616        Self {
2617            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2618            span: Dummy::dummy(allocator),
2619            id: Dummy::dummy(allocator),
2620            type_parameters: Dummy::dummy(allocator),
2621            extends: Dummy::dummy(allocator),
2622            body: Dummy::dummy(allocator),
2623            declare: Dummy::dummy(allocator),
2624            scope_id: Dummy::dummy(allocator),
2625        }
2626    }
2627}
2628
2629impl<'a> Dummy<'a> for TSInterfaceBody<'a> {
2630    /// Create a dummy [`TSInterfaceBody`].
2631    ///
2632    /// Does not allocate any data into arena.
2633    fn dummy(allocator: &'a Allocator) -> Self {
2634        Self {
2635            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2636            span: Dummy::dummy(allocator),
2637            body: Dummy::dummy(allocator),
2638        }
2639    }
2640}
2641
2642impl<'a> Dummy<'a> for TSPropertySignature<'a> {
2643    /// Create a dummy [`TSPropertySignature`].
2644    ///
2645    /// Has cost of making 1 allocation (16 bytes).
2646    fn dummy(allocator: &'a Allocator) -> Self {
2647        Self {
2648            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2649            span: Dummy::dummy(allocator),
2650            computed: Dummy::dummy(allocator),
2651            optional: Dummy::dummy(allocator),
2652            readonly: Dummy::dummy(allocator),
2653            key: Dummy::dummy(allocator),
2654            type_annotation: Dummy::dummy(allocator),
2655        }
2656    }
2657}
2658
2659impl<'a> Dummy<'a> for TSSignature<'a> {
2660    /// Create a dummy [`TSSignature`].
2661    ///
2662    /// Has cost of making 2 allocations (56 bytes).
2663    fn dummy(allocator: &'a Allocator) -> Self {
2664        Self::TSPropertySignature(Dummy::dummy(allocator))
2665    }
2666}
2667
2668impl<'a> Dummy<'a> for TSIndexSignature<'a> {
2669    /// Create a dummy [`TSIndexSignature`].
2670    ///
2671    /// Has cost of making 2 allocations (48 bytes).
2672    fn dummy(allocator: &'a Allocator) -> Self {
2673        Self {
2674            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2675            span: Dummy::dummy(allocator),
2676            parameters: Dummy::dummy(allocator),
2677            type_annotation: Dummy::dummy(allocator),
2678            readonly: Dummy::dummy(allocator),
2679            r#static: Dummy::dummy(allocator),
2680        }
2681    }
2682}
2683
2684impl<'a> Dummy<'a> for TSCallSignatureDeclaration<'a> {
2685    /// Create a dummy [`TSCallSignatureDeclaration`].
2686    ///
2687    /// Has cost of making 1 allocation (48 bytes).
2688    fn dummy(allocator: &'a Allocator) -> Self {
2689        Self {
2690            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2691            span: Dummy::dummy(allocator),
2692            type_parameters: Dummy::dummy(allocator),
2693            this_param: Dummy::dummy(allocator),
2694            params: Dummy::dummy(allocator),
2695            return_type: Dummy::dummy(allocator),
2696            scope_id: Dummy::dummy(allocator),
2697        }
2698    }
2699}
2700
2701impl<'a> Dummy<'a> for TSMethodSignatureKind {
2702    /// Create a dummy [`TSMethodSignatureKind`].
2703    ///
2704    /// Does not allocate any data into arena.
2705    #[inline(always)]
2706    fn dummy(allocator: &'a Allocator) -> Self {
2707        Self::Method
2708    }
2709}
2710
2711impl<'a> Dummy<'a> for TSMethodSignature<'a> {
2712    /// Create a dummy [`TSMethodSignature`].
2713    ///
2714    /// Has cost of making 2 allocations (64 bytes).
2715    fn dummy(allocator: &'a Allocator) -> Self {
2716        Self {
2717            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2718            span: Dummy::dummy(allocator),
2719            key: Dummy::dummy(allocator),
2720            computed: Dummy::dummy(allocator),
2721            optional: Dummy::dummy(allocator),
2722            kind: Dummy::dummy(allocator),
2723            type_parameters: Dummy::dummy(allocator),
2724            this_param: Dummy::dummy(allocator),
2725            params: Dummy::dummy(allocator),
2726            return_type: Dummy::dummy(allocator),
2727            scope_id: Dummy::dummy(allocator),
2728        }
2729    }
2730}
2731
2732impl<'a> Dummy<'a> for TSConstructSignatureDeclaration<'a> {
2733    /// Create a dummy [`TSConstructSignatureDeclaration`].
2734    ///
2735    /// Has cost of making 1 allocation (48 bytes).
2736    fn dummy(allocator: &'a Allocator) -> Self {
2737        Self {
2738            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2739            span: Dummy::dummy(allocator),
2740            type_parameters: Dummy::dummy(allocator),
2741            params: Dummy::dummy(allocator),
2742            return_type: Dummy::dummy(allocator),
2743            scope_id: Dummy::dummy(allocator),
2744        }
2745    }
2746}
2747
2748impl<'a> Dummy<'a> for TSIndexSignatureName<'a> {
2749    /// Create a dummy [`TSIndexSignatureName`].
2750    ///
2751    /// Has cost of making 2 allocations (48 bytes).
2752    fn dummy(allocator: &'a Allocator) -> Self {
2753        Self {
2754            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2755            span: Dummy::dummy(allocator),
2756            name: Dummy::dummy(allocator),
2757            type_annotation: Dummy::dummy(allocator),
2758        }
2759    }
2760}
2761
2762impl<'a> Dummy<'a> for TSInterfaceHeritage<'a> {
2763    /// Create a dummy [`TSInterfaceHeritage`].
2764    ///
2765    /// Has cost of making 1 allocation (16 bytes).
2766    fn dummy(allocator: &'a Allocator) -> Self {
2767        Self {
2768            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2769            span: Dummy::dummy(allocator),
2770            expression: Dummy::dummy(allocator),
2771            type_arguments: Dummy::dummy(allocator),
2772        }
2773    }
2774}
2775
2776impl<'a> Dummy<'a> for TSTypePredicate<'a> {
2777    /// Create a dummy [`TSTypePredicate`].
2778    ///
2779    /// Does not allocate any data into arena.
2780    fn dummy(allocator: &'a Allocator) -> Self {
2781        Self {
2782            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2783            span: Dummy::dummy(allocator),
2784            parameter_name: Dummy::dummy(allocator),
2785            asserts: Dummy::dummy(allocator),
2786            type_annotation: Dummy::dummy(allocator),
2787        }
2788    }
2789}
2790
2791impl<'a> Dummy<'a> for TSTypePredicateName<'a> {
2792    /// Create a dummy [`TSTypePredicateName`].
2793    ///
2794    /// Does not allocate any data into arena.
2795    fn dummy(allocator: &'a Allocator) -> Self {
2796        Self::This(Dummy::dummy(allocator))
2797    }
2798}
2799
2800impl<'a> Dummy<'a> for TSModuleDeclaration<'a> {
2801    /// Create a dummy [`TSModuleDeclaration`].
2802    ///
2803    /// Does not allocate any data into arena.
2804    fn dummy(allocator: &'a Allocator) -> Self {
2805        Self {
2806            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2807            span: Dummy::dummy(allocator),
2808            id: Dummy::dummy(allocator),
2809            body: Dummy::dummy(allocator),
2810            kind: Dummy::dummy(allocator),
2811            declare: Dummy::dummy(allocator),
2812            scope_id: Dummy::dummy(allocator),
2813        }
2814    }
2815}
2816
2817impl<'a> Dummy<'a> for TSModuleDeclarationKind {
2818    /// Create a dummy [`TSModuleDeclarationKind`].
2819    ///
2820    /// Does not allocate any data into arena.
2821    #[inline(always)]
2822    fn dummy(allocator: &'a Allocator) -> Self {
2823        Self::Module
2824    }
2825}
2826
2827impl<'a> Dummy<'a> for TSModuleDeclarationName<'a> {
2828    /// Create a dummy [`TSModuleDeclarationName`].
2829    ///
2830    /// Does not allocate any data into arena.
2831    fn dummy(allocator: &'a Allocator) -> Self {
2832        Self::Identifier(Dummy::dummy(allocator))
2833    }
2834}
2835
2836impl<'a> Dummy<'a> for TSModuleDeclarationBody<'a> {
2837    /// Create a dummy [`TSModuleDeclarationBody`].
2838    ///
2839    /// Has cost of making 1 allocation (64 bytes).
2840    fn dummy(allocator: &'a Allocator) -> Self {
2841        Self::TSModuleBlock(Dummy::dummy(allocator))
2842    }
2843}
2844
2845impl<'a> Dummy<'a> for TSGlobalDeclaration<'a> {
2846    /// Create a dummy [`TSGlobalDeclaration`].
2847    ///
2848    /// Does not allocate any data into arena.
2849    fn dummy(allocator: &'a Allocator) -> Self {
2850        Self {
2851            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2852            span: Dummy::dummy(allocator),
2853            global_span: Dummy::dummy(allocator),
2854            body: Dummy::dummy(allocator),
2855            declare: Dummy::dummy(allocator),
2856            scope_id: Dummy::dummy(allocator),
2857        }
2858    }
2859}
2860
2861impl<'a> Dummy<'a> for TSModuleBlock<'a> {
2862    /// Create a dummy [`TSModuleBlock`].
2863    ///
2864    /// Does not allocate any data into arena.
2865    fn dummy(allocator: &'a Allocator) -> Self {
2866        Self {
2867            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2868            span: Dummy::dummy(allocator),
2869            directives: Dummy::dummy(allocator),
2870            body: Dummy::dummy(allocator),
2871        }
2872    }
2873}
2874
2875impl<'a> Dummy<'a> for TSTypeLiteral<'a> {
2876    /// Create a dummy [`TSTypeLiteral`].
2877    ///
2878    /// Does not allocate any data into arena.
2879    fn dummy(allocator: &'a Allocator) -> Self {
2880        Self {
2881            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2882            span: Dummy::dummy(allocator),
2883            members: Dummy::dummy(allocator),
2884        }
2885    }
2886}
2887
2888impl<'a> Dummy<'a> for TSInferType<'a> {
2889    /// Create a dummy [`TSInferType`].
2890    ///
2891    /// Has cost of making 1 allocation (80 bytes).
2892    fn dummy(allocator: &'a Allocator) -> Self {
2893        Self {
2894            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2895            span: Dummy::dummy(allocator),
2896            type_parameter: Dummy::dummy(allocator),
2897        }
2898    }
2899}
2900
2901impl<'a> Dummy<'a> for TSTypeQuery<'a> {
2902    /// Create a dummy [`TSTypeQuery`].
2903    ///
2904    /// Has cost of making 1 allocation (16 bytes).
2905    fn dummy(allocator: &'a Allocator) -> Self {
2906        Self {
2907            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2908            span: Dummy::dummy(allocator),
2909            expr_name: Dummy::dummy(allocator),
2910            type_arguments: Dummy::dummy(allocator),
2911        }
2912    }
2913}
2914
2915impl<'a> Dummy<'a> for TSTypeQueryExprName<'a> {
2916    /// Create a dummy [`TSTypeQueryExprName`].
2917    ///
2918    /// Has cost of making 1 allocation (16 bytes).
2919    fn dummy(allocator: &'a Allocator) -> Self {
2920        Self::ThisExpression(Dummy::dummy(allocator))
2921    }
2922}
2923
2924impl<'a> Dummy<'a> for TSImportType<'a> {
2925    /// Create a dummy [`TSImportType`].
2926    ///
2927    /// Does not allocate any data into arena.
2928    fn dummy(allocator: &'a Allocator) -> Self {
2929        Self {
2930            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2931            span: Dummy::dummy(allocator),
2932            source: Dummy::dummy(allocator),
2933            options: Dummy::dummy(allocator),
2934            qualifier: Dummy::dummy(allocator),
2935            type_arguments: Dummy::dummy(allocator),
2936        }
2937    }
2938}
2939
2940impl<'a> Dummy<'a> for TSImportTypeQualifier<'a> {
2941    /// Create a dummy [`TSImportTypeQualifier`].
2942    ///
2943    /// Has cost of making 1 allocation (32 bytes).
2944    fn dummy(allocator: &'a Allocator) -> Self {
2945        Self::Identifier(Dummy::dummy(allocator))
2946    }
2947}
2948
2949impl<'a> Dummy<'a> for TSImportTypeQualifiedName<'a> {
2950    /// Create a dummy [`TSImportTypeQualifiedName`].
2951    ///
2952    /// Has cost of making 1 allocation (32 bytes).
2953    fn dummy(allocator: &'a Allocator) -> Self {
2954        Self {
2955            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2956            span: Dummy::dummy(allocator),
2957            left: Dummy::dummy(allocator),
2958            right: Dummy::dummy(allocator),
2959        }
2960    }
2961}
2962
2963impl<'a> Dummy<'a> for TSFunctionType<'a> {
2964    /// Create a dummy [`TSFunctionType`].
2965    ///
2966    /// Has cost of making 3 allocations (96 bytes).
2967    fn dummy(allocator: &'a Allocator) -> Self {
2968        Self {
2969            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2970            span: Dummy::dummy(allocator),
2971            type_parameters: Dummy::dummy(allocator),
2972            this_param: Dummy::dummy(allocator),
2973            params: Dummy::dummy(allocator),
2974            return_type: Dummy::dummy(allocator),
2975            scope_id: Dummy::dummy(allocator),
2976        }
2977    }
2978}
2979
2980impl<'a> Dummy<'a> for TSConstructorType<'a> {
2981    /// Create a dummy [`TSConstructorType`].
2982    ///
2983    /// Has cost of making 3 allocations (96 bytes).
2984    fn dummy(allocator: &'a Allocator) -> Self {
2985        Self {
2986            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
2987            span: Dummy::dummy(allocator),
2988            r#abstract: Dummy::dummy(allocator),
2989            type_parameters: Dummy::dummy(allocator),
2990            params: Dummy::dummy(allocator),
2991            return_type: Dummy::dummy(allocator),
2992            scope_id: Dummy::dummy(allocator),
2993        }
2994    }
2995}
2996
2997impl<'a> Dummy<'a> for TSMappedType<'a> {
2998    /// Create a dummy [`TSMappedType`].
2999    ///
3000    /// Has cost of making 1 allocation (16 bytes).
3001    fn dummy(allocator: &'a Allocator) -> Self {
3002        Self {
3003            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
3004            span: Dummy::dummy(allocator),
3005            key: Dummy::dummy(allocator),
3006            constraint: Dummy::dummy(allocator),
3007            name_type: Dummy::dummy(allocator),
3008            type_annotation: Dummy::dummy(allocator),
3009            optional: Dummy::dummy(allocator),
3010            readonly: Dummy::dummy(allocator),
3011            scope_id: Dummy::dummy(allocator),
3012        }
3013    }
3014}
3015
3016impl<'a> Dummy<'a> for TSMappedTypeModifierOperator {
3017    /// Create a dummy [`TSMappedTypeModifierOperator`].
3018    ///
3019    /// Does not allocate any data into arena.
3020    #[inline(always)]
3021    fn dummy(allocator: &'a Allocator) -> Self {
3022        Self::True
3023    }
3024}
3025
3026impl<'a> Dummy<'a> for TSTemplateLiteralType<'a> {
3027    /// Create a dummy [`TSTemplateLiteralType`].
3028    ///
3029    /// Does not allocate any data into arena.
3030    fn dummy(allocator: &'a Allocator) -> Self {
3031        Self {
3032            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
3033            span: Dummy::dummy(allocator),
3034            quasis: Dummy::dummy(allocator),
3035            types: Dummy::dummy(allocator),
3036        }
3037    }
3038}
3039
3040impl<'a> Dummy<'a> for TSAsExpression<'a> {
3041    /// Create a dummy [`TSAsExpression`].
3042    ///
3043    /// Has cost of making 2 allocations (32 bytes).
3044    fn dummy(allocator: &'a Allocator) -> Self {
3045        Self {
3046            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
3047            span: Dummy::dummy(allocator),
3048            expression: Dummy::dummy(allocator),
3049            type_annotation: Dummy::dummy(allocator),
3050        }
3051    }
3052}
3053
3054impl<'a> Dummy<'a> for TSSatisfiesExpression<'a> {
3055    /// Create a dummy [`TSSatisfiesExpression`].
3056    ///
3057    /// Has cost of making 2 allocations (32 bytes).
3058    fn dummy(allocator: &'a Allocator) -> Self {
3059        Self {
3060            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
3061            span: Dummy::dummy(allocator),
3062            expression: Dummy::dummy(allocator),
3063            type_annotation: Dummy::dummy(allocator),
3064        }
3065    }
3066}
3067
3068impl<'a> Dummy<'a> for TSTypeAssertion<'a> {
3069    /// Create a dummy [`TSTypeAssertion`].
3070    ///
3071    /// Has cost of making 2 allocations (32 bytes).
3072    fn dummy(allocator: &'a Allocator) -> Self {
3073        Self {
3074            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
3075            span: Dummy::dummy(allocator),
3076            type_annotation: Dummy::dummy(allocator),
3077            expression: Dummy::dummy(allocator),
3078        }
3079    }
3080}
3081
3082impl<'a> Dummy<'a> for TSImportEqualsDeclaration<'a> {
3083    /// Create a dummy [`TSImportEqualsDeclaration`].
3084    ///
3085    /// Has cost of making 1 allocation (32 bytes).
3086    fn dummy(allocator: &'a Allocator) -> Self {
3087        Self {
3088            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
3089            span: Dummy::dummy(allocator),
3090            id: Dummy::dummy(allocator),
3091            module_reference: Dummy::dummy(allocator),
3092            import_kind: Dummy::dummy(allocator),
3093        }
3094    }
3095}
3096
3097impl<'a> Dummy<'a> for TSModuleReference<'a> {
3098    /// Create a dummy [`TSModuleReference`].
3099    ///
3100    /// Has cost of making 1 allocation (32 bytes).
3101    fn dummy(allocator: &'a Allocator) -> Self {
3102        Self::IdentifierReference(Dummy::dummy(allocator))
3103    }
3104}
3105
3106impl<'a> Dummy<'a> for TSExternalModuleReference<'a> {
3107    /// Create a dummy [`TSExternalModuleReference`].
3108    ///
3109    /// Does not allocate any data into arena.
3110    fn dummy(allocator: &'a Allocator) -> Self {
3111        Self {
3112            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
3113            span: Dummy::dummy(allocator),
3114            expression: Dummy::dummy(allocator),
3115        }
3116    }
3117}
3118
3119impl<'a> Dummy<'a> for TSNonNullExpression<'a> {
3120    /// Create a dummy [`TSNonNullExpression`].
3121    ///
3122    /// Has cost of making 1 allocation (16 bytes).
3123    fn dummy(allocator: &'a Allocator) -> Self {
3124        Self {
3125            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
3126            span: Dummy::dummy(allocator),
3127            expression: Dummy::dummy(allocator),
3128        }
3129    }
3130}
3131
3132impl<'a> Dummy<'a> for Decorator<'a> {
3133    /// Create a dummy [`Decorator`].
3134    ///
3135    /// Has cost of making 1 allocation (16 bytes).
3136    fn dummy(allocator: &'a Allocator) -> Self {
3137        Self {
3138            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
3139            span: Dummy::dummy(allocator),
3140            expression: Dummy::dummy(allocator),
3141        }
3142    }
3143}
3144
3145impl<'a> Dummy<'a> for TSExportAssignment<'a> {
3146    /// Create a dummy [`TSExportAssignment`].
3147    ///
3148    /// Has cost of making 1 allocation (16 bytes).
3149    fn dummy(allocator: &'a Allocator) -> Self {
3150        Self {
3151            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
3152            span: Dummy::dummy(allocator),
3153            expression: Dummy::dummy(allocator),
3154        }
3155    }
3156}
3157
3158impl<'a> Dummy<'a> for TSNamespaceExportDeclaration<'a> {
3159    /// Create a dummy [`TSNamespaceExportDeclaration`].
3160    ///
3161    /// Does not allocate any data into arena.
3162    fn dummy(allocator: &'a Allocator) -> Self {
3163        Self {
3164            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
3165            span: Dummy::dummy(allocator),
3166            id: Dummy::dummy(allocator),
3167        }
3168    }
3169}
3170
3171impl<'a> Dummy<'a> for TSInstantiationExpression<'a> {
3172    /// Create a dummy [`TSInstantiationExpression`].
3173    ///
3174    /// Has cost of making 2 allocations (56 bytes).
3175    fn dummy(allocator: &'a Allocator) -> Self {
3176        Self {
3177            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
3178            span: Dummy::dummy(allocator),
3179            expression: Dummy::dummy(allocator),
3180            type_arguments: Dummy::dummy(allocator),
3181        }
3182    }
3183}
3184
3185impl<'a> Dummy<'a> for ImportOrExportKind {
3186    /// Create a dummy [`ImportOrExportKind`].
3187    ///
3188    /// Does not allocate any data into arena.
3189    #[inline(always)]
3190    fn dummy(allocator: &'a Allocator) -> Self {
3191        Self::Value
3192    }
3193}
3194
3195impl<'a> Dummy<'a> for JSDocNullableType<'a> {
3196    /// Create a dummy [`JSDocNullableType`].
3197    ///
3198    /// Has cost of making 1 allocation (16 bytes).
3199    fn dummy(allocator: &'a Allocator) -> Self {
3200        Self {
3201            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
3202            span: Dummy::dummy(allocator),
3203            type_annotation: Dummy::dummy(allocator),
3204            postfix: Dummy::dummy(allocator),
3205        }
3206    }
3207}
3208
3209impl<'a> Dummy<'a> for JSDocNonNullableType<'a> {
3210    /// Create a dummy [`JSDocNonNullableType`].
3211    ///
3212    /// Has cost of making 1 allocation (16 bytes).
3213    fn dummy(allocator: &'a Allocator) -> Self {
3214        Self {
3215            node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY),
3216            span: Dummy::dummy(allocator),
3217            type_annotation: Dummy::dummy(allocator),
3218            postfix: Dummy::dummy(allocator),
3219        }
3220    }
3221}
3222
3223impl<'a> Dummy<'a> for JSDocUnknownType {
3224    /// Create a dummy [`JSDocUnknownType`].
3225    ///
3226    /// Does not allocate any data into arena.
3227    fn dummy(allocator: &'a Allocator) -> Self {
3228        Self { node_id: Cell::new(oxc_syntax::node::NodeId::DUMMY), span: Dummy::dummy(allocator) }
3229    }
3230}