cairo_lang_syntax/node/
key_fields.rs

1// Autogenerated file. To regenerate, please run `cargo run --bin generate-syntax`.
2use super::ids::GreenId;
3use super::kind::SyntaxKind;
4/// Gets the vector of children ids that are the indexing key for this SyntaxKind.
5///
6/// Each SyntaxKind has some children that are defined in the spec to be its indexing key
7/// for its stable pointer. See [super::stable_ptr].
8pub fn get_key_fields(kind: SyntaxKind, children: &[GreenId]) -> Vec<GreenId> {
9    match kind {
10        SyntaxKind::Trivia => vec![],
11        SyntaxKind::ExprList => vec![],
12        SyntaxKind::Arg => {
13            vec![]
14        }
15        SyntaxKind::ArgClauseNamed => {
16            vec![]
17        }
18        SyntaxKind::ArgClauseUnnamed => {
19            vec![]
20        }
21        SyntaxKind::ArgClauseFieldInitShorthand => {
22            vec![]
23        }
24        SyntaxKind::ExprFieldInitShorthand => {
25            vec![]
26        }
27        SyntaxKind::ArgList => vec![],
28        SyntaxKind::ExprMissing => {
29            vec![]
30        }
31        SyntaxKind::PathSegmentSimple => {
32            vec![]
33        }
34        SyntaxKind::OptionTerminalColonColonEmpty => {
35            vec![]
36        }
37        SyntaxKind::PathSegmentWithGenericArgs => {
38            vec![]
39        }
40        SyntaxKind::ExprPath => vec![],
41        SyntaxKind::ExprParenthesized => {
42            vec![]
43        }
44        SyntaxKind::ExprUnary => {
45            vec![]
46        }
47        SyntaxKind::ExprBinary => {
48            vec![]
49        }
50        SyntaxKind::ExprListParenthesized => {
51            vec![]
52        }
53        SyntaxKind::ExprFunctionCall => {
54            vec![]
55        }
56        SyntaxKind::ArgListParenthesized => {
57            vec![]
58        }
59        SyntaxKind::OptionArgListParenthesizedEmpty => {
60            vec![]
61        }
62        SyntaxKind::ExprStructCtorCall => {
63            vec![]
64        }
65        SyntaxKind::StructArgListBraced => {
66            vec![]
67        }
68        SyntaxKind::ExprBlock => {
69            vec![]
70        }
71        SyntaxKind::ExprMatch => {
72            vec![]
73        }
74        SyntaxKind::MatchArms => vec![],
75        SyntaxKind::MatchArm => {
76            vec![]
77        }
78        SyntaxKind::ExprIf => {
79            vec![]
80        }
81        SyntaxKind::ConditionLet => {
82            vec![]
83        }
84        SyntaxKind::ConditionExpr => {
85            vec![]
86        }
87        SyntaxKind::ExprLoop => {
88            vec![]
89        }
90        SyntaxKind::ExprWhile => {
91            vec![]
92        }
93        SyntaxKind::ExprFor => {
94            vec![/* pattern */ children[1], /* identifier */ children[2]]
95        }
96        SyntaxKind::ElseClause => {
97            vec![]
98        }
99        SyntaxKind::OptionElseClauseEmpty => {
100            vec![]
101        }
102        SyntaxKind::ExprErrorPropagate => {
103            vec![]
104        }
105        SyntaxKind::ExprIndexed => {
106            vec![]
107        }
108        SyntaxKind::ExprInlineMacro => {
109            vec![]
110        }
111        SyntaxKind::ExprFixedSizeArray => {
112            vec![]
113        }
114        SyntaxKind::FixedSizeArraySize => {
115            vec![]
116        }
117        SyntaxKind::OptionFixedSizeArraySizeEmpty => {
118            vec![]
119        }
120        SyntaxKind::ExprClosure => {
121            vec![]
122        }
123        SyntaxKind::ClosureParamWrapperNAry => {
124            vec![]
125        }
126        SyntaxKind::StructArgExpr => {
127            vec![]
128        }
129        SyntaxKind::OptionStructArgExprEmpty => {
130            vec![]
131        }
132        SyntaxKind::StructArgSingle => {
133            vec![/* identifier */ children[0]]
134        }
135        SyntaxKind::StructArgTail => {
136            vec![]
137        }
138        SyntaxKind::StructArgList => vec![],
139        SyntaxKind::ArgListBraced => {
140            vec![]
141        }
142        SyntaxKind::ArgListBracketed => {
143            vec![]
144        }
145        SyntaxKind::WrappedArgListMissing => {
146            vec![]
147        }
148        SyntaxKind::PatternIdentifier => {
149            vec![/* name */ children[1]]
150        }
151        SyntaxKind::PatternStruct => {
152            vec![]
153        }
154        SyntaxKind::PatternStructParamList => vec![],
155        SyntaxKind::PatternTuple => {
156            vec![]
157        }
158        SyntaxKind::PatternFixedSizeArray => {
159            vec![]
160        }
161        SyntaxKind::PatternList => vec![],
162        SyntaxKind::PatternListOr => vec![],
163        SyntaxKind::PatternStructParamWithExpr => {
164            vec![]
165        }
166        SyntaxKind::PatternEnum => {
167            vec![]
168        }
169        SyntaxKind::PatternEnumInnerPattern => {
170            vec![]
171        }
172        SyntaxKind::OptionPatternEnumInnerPatternEmpty => {
173            vec![]
174        }
175        SyntaxKind::TypeClause => {
176            vec![]
177        }
178        SyntaxKind::OptionTypeClauseEmpty => {
179            vec![]
180        }
181        SyntaxKind::ReturnTypeClause => {
182            vec![]
183        }
184        SyntaxKind::OptionReturnTypeClauseEmpty => {
185            vec![]
186        }
187        SyntaxKind::StatementList => vec![],
188        SyntaxKind::StatementMissing => {
189            vec![]
190        }
191        SyntaxKind::StatementLet => {
192            vec![/* pattern */ children[2]]
193        }
194        SyntaxKind::OptionTerminalSemicolonEmpty => {
195            vec![]
196        }
197        SyntaxKind::StatementExpr => {
198            vec![]
199        }
200        SyntaxKind::StatementContinue => {
201            vec![]
202        }
203        SyntaxKind::ExprClause => {
204            vec![]
205        }
206        SyntaxKind::OptionExprClauseEmpty => {
207            vec![]
208        }
209        SyntaxKind::StatementReturn => {
210            vec![]
211        }
212        SyntaxKind::StatementBreak => {
213            vec![]
214        }
215        SyntaxKind::StatementItem => {
216            vec![]
217        }
218        SyntaxKind::Param => {
219            vec![/* name */ children[1]]
220        }
221        SyntaxKind::ModifierList => vec![],
222        SyntaxKind::ParamList => vec![],
223        SyntaxKind::ImplicitsClause => {
224            vec![]
225        }
226        SyntaxKind::ImplicitsList => vec![],
227        SyntaxKind::OptionImplicitsClauseEmpty => {
228            vec![]
229        }
230        SyntaxKind::OptionTerminalNoPanicEmpty => {
231            vec![]
232        }
233        SyntaxKind::FunctionSignature => {
234            vec![]
235        }
236        SyntaxKind::Member => {
237            vec![/* name */ children[2]]
238        }
239        SyntaxKind::MemberList => vec![],
240        SyntaxKind::Variant => {
241            vec![/* name */ children[1]]
242        }
243        SyntaxKind::VariantList => vec![],
244        SyntaxKind::ModuleItemList => vec![],
245        SyntaxKind::ModuleItemMissing => {
246            vec![]
247        }
248        SyntaxKind::Attribute => {
249            vec![]
250        }
251        SyntaxKind::AttributeList => vec![],
252        SyntaxKind::VisibilityDefault => {
253            vec![]
254        }
255        SyntaxKind::VisibilityPubArgumentClause => {
256            vec![]
257        }
258        SyntaxKind::OptionVisibilityPubArgumentClauseEmpty => {
259            vec![]
260        }
261        SyntaxKind::VisibilityPub => {
262            vec![]
263        }
264        SyntaxKind::ItemModule => {
265            vec![/* name */ children[3]]
266        }
267        SyntaxKind::ModuleBody => {
268            vec![]
269        }
270        SyntaxKind::FunctionDeclaration => {
271            vec![/* name */ children[1]]
272        }
273        SyntaxKind::ItemConstant => {
274            vec![/* name */ children[3]]
275        }
276        SyntaxKind::FunctionWithBody => {
277            vec![/* declaration */ children[2]]
278        }
279        SyntaxKind::ItemExternFunction => {
280            vec![/* declaration */ children[3]]
281        }
282        SyntaxKind::ItemExternType => {
283            vec![/* name */ children[4]]
284        }
285        SyntaxKind::ItemTrait => {
286            vec![/* name */ children[3]]
287        }
288        SyntaxKind::TraitBody => {
289            vec![]
290        }
291        SyntaxKind::TraitItemList => vec![],
292        SyntaxKind::TraitItemMissing => {
293            vec![]
294        }
295        SyntaxKind::TraitItemFunction => {
296            vec![/* declaration */ children[1]]
297        }
298        SyntaxKind::TraitItemType => {
299            vec![/* name */ children[2]]
300        }
301        SyntaxKind::TraitItemConstant => {
302            vec![/* name */ children[2]]
303        }
304        SyntaxKind::TraitItemImpl => {
305            vec![/* name */ children[2]]
306        }
307        SyntaxKind::ItemImpl => {
308            vec![/* name */ children[3]]
309        }
310        SyntaxKind::ItemInlineMacro => {
311            vec![]
312        }
313        SyntaxKind::ItemHeaderDoc => {
314            vec![]
315        }
316        SyntaxKind::ImplBody => {
317            vec![]
318        }
319        SyntaxKind::ImplItemList => vec![],
320        SyntaxKind::ImplItemMissing => {
321            vec![]
322        }
323        SyntaxKind::ItemImplAlias => {
324            vec![/* name */ children[3]]
325        }
326        SyntaxKind::ItemStruct => {
327            vec![/* name */ children[3]]
328        }
329        SyntaxKind::ItemEnum => {
330            vec![/* name */ children[3]]
331        }
332        SyntaxKind::ItemTypeAlias => {
333            vec![/* name */ children[3]]
334        }
335        SyntaxKind::ItemUse => {
336            vec![/* use_path */ children[3]]
337        }
338        SyntaxKind::UsePathLeaf => {
339            vec![/* ident */ children[0], /* alias_clause */ children[1]]
340        }
341        SyntaxKind::UsePathSingle => {
342            vec![]
343        }
344        SyntaxKind::UsePathMulti => {
345            vec![]
346        }
347        SyntaxKind::UsePathStar => {
348            vec![]
349        }
350        SyntaxKind::UsePathList => vec![],
351        SyntaxKind::AliasClause => {
352            vec![/* alias */ children[1]]
353        }
354        SyntaxKind::OptionAliasClauseEmpty => {
355            vec![]
356        }
357        SyntaxKind::GenericArgNamed => {
358            vec![]
359        }
360        SyntaxKind::GenericArgUnnamed => {
361            vec![]
362        }
363        SyntaxKind::GenericArgValueExpr => {
364            vec![]
365        }
366        SyntaxKind::GenericArgs => {
367            vec![]
368        }
369        SyntaxKind::GenericArgList => vec![],
370        SyntaxKind::AssociatedItemConstraint => {
371            vec![]
372        }
373        SyntaxKind::AssociatedItemConstraints => {
374            vec![]
375        }
376        SyntaxKind::AssociatedItemConstraintList => vec![],
377        SyntaxKind::OptionAssociatedItemConstraintsEmpty => {
378            vec![]
379        }
380        SyntaxKind::OptionWrappedGenericParamListEmpty => {
381            vec![]
382        }
383        SyntaxKind::WrappedGenericParamList => {
384            vec![]
385        }
386        SyntaxKind::GenericParamList => vec![],
387        SyntaxKind::GenericParamType => {
388            vec![/* name */ children[0]]
389        }
390        SyntaxKind::GenericParamConst => {
391            vec![/* name */ children[1]]
392        }
393        SyntaxKind::GenericParamImplNamed => {
394            vec![/* name */ children[1]]
395        }
396        SyntaxKind::GenericParamImplAnonymous => {
397            vec![]
398        }
399        SyntaxKind::GenericParamNegativeImpl => {
400            vec![]
401        }
402        SyntaxKind::TriviumSkippedNode => {
403            vec![]
404        }
405        SyntaxKind::TokenIdentifier => vec![],
406        SyntaxKind::TerminalIdentifier => {
407            vec![]
408        }
409        SyntaxKind::TokenLiteralNumber => vec![],
410        SyntaxKind::TerminalLiteralNumber => {
411            vec![]
412        }
413        SyntaxKind::TokenShortString => vec![],
414        SyntaxKind::TerminalShortString => {
415            vec![]
416        }
417        SyntaxKind::TokenString => vec![],
418        SyntaxKind::TerminalString => {
419            vec![]
420        }
421        SyntaxKind::TokenAs => vec![],
422        SyntaxKind::TerminalAs => {
423            vec![]
424        }
425        SyntaxKind::TokenConst => vec![],
426        SyntaxKind::TerminalConst => {
427            vec![]
428        }
429        SyntaxKind::TokenElse => vec![],
430        SyntaxKind::TerminalElse => {
431            vec![]
432        }
433        SyntaxKind::TokenEnum => vec![],
434        SyntaxKind::TerminalEnum => {
435            vec![]
436        }
437        SyntaxKind::TokenExtern => vec![],
438        SyntaxKind::TerminalExtern => {
439            vec![]
440        }
441        SyntaxKind::TokenFalse => vec![],
442        SyntaxKind::TerminalFalse => {
443            vec![]
444        }
445        SyntaxKind::TokenFunction => vec![],
446        SyntaxKind::TerminalFunction => {
447            vec![]
448        }
449        SyntaxKind::TokenIf => vec![],
450        SyntaxKind::TerminalIf => {
451            vec![]
452        }
453        SyntaxKind::TokenWhile => vec![],
454        SyntaxKind::TerminalWhile => {
455            vec![]
456        }
457        SyntaxKind::TokenFor => vec![],
458        SyntaxKind::TerminalFor => {
459            vec![]
460        }
461        SyntaxKind::TokenLoop => vec![],
462        SyntaxKind::TerminalLoop => {
463            vec![]
464        }
465        SyntaxKind::TokenImpl => vec![],
466        SyntaxKind::TerminalImpl => {
467            vec![]
468        }
469        SyntaxKind::TokenImplicits => vec![],
470        SyntaxKind::TerminalImplicits => {
471            vec![]
472        }
473        SyntaxKind::TokenLet => vec![],
474        SyntaxKind::TerminalLet => {
475            vec![]
476        }
477        SyntaxKind::TokenMatch => vec![],
478        SyntaxKind::TerminalMatch => {
479            vec![]
480        }
481        SyntaxKind::TokenModule => vec![],
482        SyntaxKind::TerminalModule => {
483            vec![]
484        }
485        SyntaxKind::TokenMut => vec![],
486        SyntaxKind::TerminalMut => {
487            vec![]
488        }
489        SyntaxKind::TokenNoPanic => vec![],
490        SyntaxKind::TerminalNoPanic => {
491            vec![]
492        }
493        SyntaxKind::TokenOf => vec![],
494        SyntaxKind::TerminalOf => {
495            vec![]
496        }
497        SyntaxKind::TokenRef => vec![],
498        SyntaxKind::TerminalRef => {
499            vec![]
500        }
501        SyntaxKind::TokenContinue => vec![],
502        SyntaxKind::TerminalContinue => {
503            vec![]
504        }
505        SyntaxKind::TokenReturn => vec![],
506        SyntaxKind::TerminalReturn => {
507            vec![]
508        }
509        SyntaxKind::TokenBreak => vec![],
510        SyntaxKind::TerminalBreak => {
511            vec![]
512        }
513        SyntaxKind::TokenStruct => vec![],
514        SyntaxKind::TerminalStruct => {
515            vec![]
516        }
517        SyntaxKind::TokenTrait => vec![],
518        SyntaxKind::TerminalTrait => {
519            vec![]
520        }
521        SyntaxKind::TokenTrue => vec![],
522        SyntaxKind::TerminalTrue => {
523            vec![]
524        }
525        SyntaxKind::TokenType => vec![],
526        SyntaxKind::TerminalType => {
527            vec![]
528        }
529        SyntaxKind::TokenUse => vec![],
530        SyntaxKind::TerminalUse => {
531            vec![]
532        }
533        SyntaxKind::TokenPub => vec![],
534        SyntaxKind::TerminalPub => {
535            vec![]
536        }
537        SyntaxKind::TokenAnd => vec![],
538        SyntaxKind::TerminalAnd => {
539            vec![]
540        }
541        SyntaxKind::TokenAndAnd => vec![],
542        SyntaxKind::TerminalAndAnd => {
543            vec![]
544        }
545        SyntaxKind::TokenArrow => vec![],
546        SyntaxKind::TerminalArrow => {
547            vec![]
548        }
549        SyntaxKind::TokenAt => vec![],
550        SyntaxKind::TerminalAt => {
551            vec![]
552        }
553        SyntaxKind::TokenBadCharacters => vec![],
554        SyntaxKind::TerminalBadCharacters => {
555            vec![]
556        }
557        SyntaxKind::TokenColon => vec![],
558        SyntaxKind::TerminalColon => {
559            vec![]
560        }
561        SyntaxKind::TokenColonColon => vec![],
562        SyntaxKind::TerminalColonColon => {
563            vec![]
564        }
565        SyntaxKind::TokenComma => vec![],
566        SyntaxKind::TerminalComma => {
567            vec![]
568        }
569        SyntaxKind::TokenDiv => vec![],
570        SyntaxKind::TerminalDiv => {
571            vec![]
572        }
573        SyntaxKind::TokenDivEq => vec![],
574        SyntaxKind::TerminalDivEq => {
575            vec![]
576        }
577        SyntaxKind::TokenDot => vec![],
578        SyntaxKind::TerminalDot => {
579            vec![]
580        }
581        SyntaxKind::TokenDotDot => vec![],
582        SyntaxKind::TerminalDotDot => {
583            vec![]
584        }
585        SyntaxKind::TokenEndOfFile => vec![],
586        SyntaxKind::TerminalEndOfFile => {
587            vec![]
588        }
589        SyntaxKind::TokenEq => vec![],
590        SyntaxKind::TerminalEq => {
591            vec![]
592        }
593        SyntaxKind::TokenEqEq => vec![],
594        SyntaxKind::TerminalEqEq => {
595            vec![]
596        }
597        SyntaxKind::TokenGE => vec![],
598        SyntaxKind::TerminalGE => {
599            vec![]
600        }
601        SyntaxKind::TokenGT => vec![],
602        SyntaxKind::TerminalGT => {
603            vec![]
604        }
605        SyntaxKind::TokenHash => vec![],
606        SyntaxKind::TerminalHash => {
607            vec![]
608        }
609        SyntaxKind::TokenLBrace => vec![],
610        SyntaxKind::TerminalLBrace => {
611            vec![]
612        }
613        SyntaxKind::TokenLBrack => vec![],
614        SyntaxKind::TerminalLBrack => {
615            vec![]
616        }
617        SyntaxKind::TokenLE => vec![],
618        SyntaxKind::TerminalLE => {
619            vec![]
620        }
621        SyntaxKind::TokenLParen => vec![],
622        SyntaxKind::TerminalLParen => {
623            vec![]
624        }
625        SyntaxKind::TokenLT => vec![],
626        SyntaxKind::TerminalLT => {
627            vec![]
628        }
629        SyntaxKind::TokenMatchArrow => vec![],
630        SyntaxKind::TerminalMatchArrow => {
631            vec![]
632        }
633        SyntaxKind::TokenMinus => vec![],
634        SyntaxKind::TerminalMinus => {
635            vec![]
636        }
637        SyntaxKind::TokenMinusEq => vec![],
638        SyntaxKind::TerminalMinusEq => {
639            vec![]
640        }
641        SyntaxKind::TokenMod => vec![],
642        SyntaxKind::TerminalMod => {
643            vec![]
644        }
645        SyntaxKind::TokenModEq => vec![],
646        SyntaxKind::TerminalModEq => {
647            vec![]
648        }
649        SyntaxKind::TokenMul => vec![],
650        SyntaxKind::TerminalMul => {
651            vec![]
652        }
653        SyntaxKind::TokenMulEq => vec![],
654        SyntaxKind::TerminalMulEq => {
655            vec![]
656        }
657        SyntaxKind::TokenNeq => vec![],
658        SyntaxKind::TerminalNeq => {
659            vec![]
660        }
661        SyntaxKind::TokenNot => vec![],
662        SyntaxKind::TerminalNot => {
663            vec![]
664        }
665        SyntaxKind::TokenBitNot => vec![],
666        SyntaxKind::TerminalBitNot => {
667            vec![]
668        }
669        SyntaxKind::TokenOr => vec![],
670        SyntaxKind::TerminalOr => {
671            vec![]
672        }
673        SyntaxKind::TokenOrOr => vec![],
674        SyntaxKind::TerminalOrOr => {
675            vec![]
676        }
677        SyntaxKind::TokenPlus => vec![],
678        SyntaxKind::TerminalPlus => {
679            vec![]
680        }
681        SyntaxKind::TokenPlusEq => vec![],
682        SyntaxKind::TerminalPlusEq => {
683            vec![]
684        }
685        SyntaxKind::TokenQuestionMark => vec![],
686        SyntaxKind::TerminalQuestionMark => {
687            vec![]
688        }
689        SyntaxKind::TokenRBrace => vec![],
690        SyntaxKind::TerminalRBrace => {
691            vec![]
692        }
693        SyntaxKind::TokenRBrack => vec![],
694        SyntaxKind::TerminalRBrack => {
695            vec![]
696        }
697        SyntaxKind::TokenRParen => vec![],
698        SyntaxKind::TerminalRParen => {
699            vec![]
700        }
701        SyntaxKind::TokenSemicolon => vec![],
702        SyntaxKind::TerminalSemicolon => {
703            vec![]
704        }
705        SyntaxKind::TokenUnderscore => vec![],
706        SyntaxKind::TerminalUnderscore => {
707            vec![]
708        }
709        SyntaxKind::TokenXor => vec![],
710        SyntaxKind::TerminalXor => {
711            vec![]
712        }
713        SyntaxKind::SyntaxFile => {
714            vec![]
715        }
716        SyntaxKind::TokenEmpty => vec![],
717        SyntaxKind::TerminalEmpty => {
718            vec![]
719        }
720        SyntaxKind::TokenSingleLineComment => vec![],
721        SyntaxKind::TokenSingleLineInnerComment => vec![],
722        SyntaxKind::TokenSingleLineDocComment => vec![],
723        SyntaxKind::TokenWhitespace => vec![],
724        SyntaxKind::TokenNewline => vec![],
725        SyntaxKind::TokenMissing => vec![],
726        SyntaxKind::TokenSkipped => vec![],
727    }
728}