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::OptionTerminalConstEmpty => {
234            vec![]
235        }
236        SyntaxKind::FunctionSignature => {
237            vec![]
238        }
239        SyntaxKind::Member => {
240            vec![/* name */ children[2]]
241        }
242        SyntaxKind::MemberList => vec![],
243        SyntaxKind::Variant => {
244            vec![/* name */ children[1]]
245        }
246        SyntaxKind::VariantList => vec![],
247        SyntaxKind::ModuleItemList => vec![],
248        SyntaxKind::ModuleItemMissing => {
249            vec![]
250        }
251        SyntaxKind::Attribute => {
252            vec![]
253        }
254        SyntaxKind::AttributeList => vec![],
255        SyntaxKind::VisibilityDefault => {
256            vec![]
257        }
258        SyntaxKind::VisibilityPubArgumentClause => {
259            vec![]
260        }
261        SyntaxKind::OptionVisibilityPubArgumentClauseEmpty => {
262            vec![]
263        }
264        SyntaxKind::VisibilityPub => {
265            vec![]
266        }
267        SyntaxKind::ItemModule => {
268            vec![/* name */ children[3]]
269        }
270        SyntaxKind::ModuleBody => {
271            vec![]
272        }
273        SyntaxKind::FunctionDeclaration => {
274            vec![/* name */ children[2]]
275        }
276        SyntaxKind::ItemConstant => {
277            vec![/* name */ children[3]]
278        }
279        SyntaxKind::FunctionWithBody => {
280            vec![/* declaration */ children[2]]
281        }
282        SyntaxKind::ItemExternFunction => {
283            vec![/* declaration */ children[3]]
284        }
285        SyntaxKind::ItemExternType => {
286            vec![/* name */ children[4]]
287        }
288        SyntaxKind::ItemTrait => {
289            vec![/* name */ children[3]]
290        }
291        SyntaxKind::TraitBody => {
292            vec![]
293        }
294        SyntaxKind::TraitItemList => vec![],
295        SyntaxKind::TraitItemMissing => {
296            vec![]
297        }
298        SyntaxKind::TraitItemFunction => {
299            vec![/* declaration */ children[1]]
300        }
301        SyntaxKind::TraitItemType => {
302            vec![/* name */ children[2]]
303        }
304        SyntaxKind::TraitItemConstant => {
305            vec![/* name */ children[2]]
306        }
307        SyntaxKind::TraitItemImpl => {
308            vec![/* name */ children[2]]
309        }
310        SyntaxKind::ItemImpl => {
311            vec![/* name */ children[3]]
312        }
313        SyntaxKind::ItemInlineMacro => {
314            vec![]
315        }
316        SyntaxKind::ItemHeaderDoc => {
317            vec![]
318        }
319        SyntaxKind::ImplBody => {
320            vec![]
321        }
322        SyntaxKind::ImplItemList => vec![],
323        SyntaxKind::ImplItemMissing => {
324            vec![]
325        }
326        SyntaxKind::ItemImplAlias => {
327            vec![/* name */ children[3]]
328        }
329        SyntaxKind::ItemStruct => {
330            vec![/* name */ children[3]]
331        }
332        SyntaxKind::ItemEnum => {
333            vec![/* name */ children[3]]
334        }
335        SyntaxKind::ItemTypeAlias => {
336            vec![/* name */ children[3]]
337        }
338        SyntaxKind::ItemUse => {
339            vec![/* use_path */ children[3]]
340        }
341        SyntaxKind::UsePathLeaf => {
342            vec![/* ident */ children[0], /* alias_clause */ children[1]]
343        }
344        SyntaxKind::UsePathSingle => {
345            vec![]
346        }
347        SyntaxKind::UsePathMulti => {
348            vec![]
349        }
350        SyntaxKind::UsePathStar => {
351            vec![]
352        }
353        SyntaxKind::UsePathList => vec![],
354        SyntaxKind::AliasClause => {
355            vec![/* alias */ children[1]]
356        }
357        SyntaxKind::OptionAliasClauseEmpty => {
358            vec![]
359        }
360        SyntaxKind::GenericArgNamed => {
361            vec![]
362        }
363        SyntaxKind::GenericArgUnnamed => {
364            vec![]
365        }
366        SyntaxKind::GenericArgValueExpr => {
367            vec![]
368        }
369        SyntaxKind::GenericArgs => {
370            vec![]
371        }
372        SyntaxKind::GenericArgList => vec![],
373        SyntaxKind::AssociatedItemConstraint => {
374            vec![]
375        }
376        SyntaxKind::AssociatedItemConstraints => {
377            vec![]
378        }
379        SyntaxKind::AssociatedItemConstraintList => vec![],
380        SyntaxKind::OptionAssociatedItemConstraintsEmpty => {
381            vec![]
382        }
383        SyntaxKind::OptionWrappedGenericParamListEmpty => {
384            vec![]
385        }
386        SyntaxKind::WrappedGenericParamList => {
387            vec![]
388        }
389        SyntaxKind::GenericParamList => vec![],
390        SyntaxKind::GenericParamType => {
391            vec![/* name */ children[0]]
392        }
393        SyntaxKind::GenericParamConst => {
394            vec![/* name */ children[1]]
395        }
396        SyntaxKind::GenericParamImplNamed => {
397            vec![/* name */ children[1]]
398        }
399        SyntaxKind::GenericParamImplAnonymous => {
400            vec![]
401        }
402        SyntaxKind::GenericParamNegativeImpl => {
403            vec![]
404        }
405        SyntaxKind::TriviumSkippedNode => {
406            vec![]
407        }
408        SyntaxKind::TokenIdentifier => vec![],
409        SyntaxKind::TerminalIdentifier => {
410            vec![]
411        }
412        SyntaxKind::TokenLiteralNumber => vec![],
413        SyntaxKind::TerminalLiteralNumber => {
414            vec![]
415        }
416        SyntaxKind::TokenShortString => vec![],
417        SyntaxKind::TerminalShortString => {
418            vec![]
419        }
420        SyntaxKind::TokenString => vec![],
421        SyntaxKind::TerminalString => {
422            vec![]
423        }
424        SyntaxKind::TokenAs => vec![],
425        SyntaxKind::TerminalAs => {
426            vec![]
427        }
428        SyntaxKind::TokenConst => vec![],
429        SyntaxKind::TerminalConst => {
430            vec![]
431        }
432        SyntaxKind::TokenElse => vec![],
433        SyntaxKind::TerminalElse => {
434            vec![]
435        }
436        SyntaxKind::TokenEnum => vec![],
437        SyntaxKind::TerminalEnum => {
438            vec![]
439        }
440        SyntaxKind::TokenExtern => vec![],
441        SyntaxKind::TerminalExtern => {
442            vec![]
443        }
444        SyntaxKind::TokenFalse => vec![],
445        SyntaxKind::TerminalFalse => {
446            vec![]
447        }
448        SyntaxKind::TokenFunction => vec![],
449        SyntaxKind::TerminalFunction => {
450            vec![]
451        }
452        SyntaxKind::TokenIf => vec![],
453        SyntaxKind::TerminalIf => {
454            vec![]
455        }
456        SyntaxKind::TokenWhile => vec![],
457        SyntaxKind::TerminalWhile => {
458            vec![]
459        }
460        SyntaxKind::TokenFor => vec![],
461        SyntaxKind::TerminalFor => {
462            vec![]
463        }
464        SyntaxKind::TokenLoop => vec![],
465        SyntaxKind::TerminalLoop => {
466            vec![]
467        }
468        SyntaxKind::TokenImpl => vec![],
469        SyntaxKind::TerminalImpl => {
470            vec![]
471        }
472        SyntaxKind::TokenImplicits => vec![],
473        SyntaxKind::TerminalImplicits => {
474            vec![]
475        }
476        SyntaxKind::TokenLet => vec![],
477        SyntaxKind::TerminalLet => {
478            vec![]
479        }
480        SyntaxKind::TokenMatch => vec![],
481        SyntaxKind::TerminalMatch => {
482            vec![]
483        }
484        SyntaxKind::TokenModule => vec![],
485        SyntaxKind::TerminalModule => {
486            vec![]
487        }
488        SyntaxKind::TokenMut => vec![],
489        SyntaxKind::TerminalMut => {
490            vec![]
491        }
492        SyntaxKind::TokenNoPanic => vec![],
493        SyntaxKind::TerminalNoPanic => {
494            vec![]
495        }
496        SyntaxKind::TokenOf => vec![],
497        SyntaxKind::TerminalOf => {
498            vec![]
499        }
500        SyntaxKind::TokenRef => vec![],
501        SyntaxKind::TerminalRef => {
502            vec![]
503        }
504        SyntaxKind::TokenContinue => vec![],
505        SyntaxKind::TerminalContinue => {
506            vec![]
507        }
508        SyntaxKind::TokenReturn => vec![],
509        SyntaxKind::TerminalReturn => {
510            vec![]
511        }
512        SyntaxKind::TokenBreak => vec![],
513        SyntaxKind::TerminalBreak => {
514            vec![]
515        }
516        SyntaxKind::TokenStruct => vec![],
517        SyntaxKind::TerminalStruct => {
518            vec![]
519        }
520        SyntaxKind::TokenTrait => vec![],
521        SyntaxKind::TerminalTrait => {
522            vec![]
523        }
524        SyntaxKind::TokenTrue => vec![],
525        SyntaxKind::TerminalTrue => {
526            vec![]
527        }
528        SyntaxKind::TokenType => vec![],
529        SyntaxKind::TerminalType => {
530            vec![]
531        }
532        SyntaxKind::TokenUse => vec![],
533        SyntaxKind::TerminalUse => {
534            vec![]
535        }
536        SyntaxKind::TokenPub => vec![],
537        SyntaxKind::TerminalPub => {
538            vec![]
539        }
540        SyntaxKind::TokenAnd => vec![],
541        SyntaxKind::TerminalAnd => {
542            vec![]
543        }
544        SyntaxKind::TokenAndAnd => vec![],
545        SyntaxKind::TerminalAndAnd => {
546            vec![]
547        }
548        SyntaxKind::TokenArrow => vec![],
549        SyntaxKind::TerminalArrow => {
550            vec![]
551        }
552        SyntaxKind::TokenAt => vec![],
553        SyntaxKind::TerminalAt => {
554            vec![]
555        }
556        SyntaxKind::TokenBadCharacters => vec![],
557        SyntaxKind::TerminalBadCharacters => {
558            vec![]
559        }
560        SyntaxKind::TokenColon => vec![],
561        SyntaxKind::TerminalColon => {
562            vec![]
563        }
564        SyntaxKind::TokenColonColon => vec![],
565        SyntaxKind::TerminalColonColon => {
566            vec![]
567        }
568        SyntaxKind::TokenComma => vec![],
569        SyntaxKind::TerminalComma => {
570            vec![]
571        }
572        SyntaxKind::TokenDiv => vec![],
573        SyntaxKind::TerminalDiv => {
574            vec![]
575        }
576        SyntaxKind::TokenDivEq => vec![],
577        SyntaxKind::TerminalDivEq => {
578            vec![]
579        }
580        SyntaxKind::TokenDot => vec![],
581        SyntaxKind::TerminalDot => {
582            vec![]
583        }
584        SyntaxKind::TokenDotDot => vec![],
585        SyntaxKind::TerminalDotDot => {
586            vec![]
587        }
588        SyntaxKind::TokenDotDotEq => vec![],
589        SyntaxKind::TerminalDotDotEq => {
590            vec![]
591        }
592        SyntaxKind::TokenEndOfFile => vec![],
593        SyntaxKind::TerminalEndOfFile => {
594            vec![]
595        }
596        SyntaxKind::TokenEq => vec![],
597        SyntaxKind::TerminalEq => {
598            vec![]
599        }
600        SyntaxKind::TokenEqEq => vec![],
601        SyntaxKind::TerminalEqEq => {
602            vec![]
603        }
604        SyntaxKind::TokenGE => vec![],
605        SyntaxKind::TerminalGE => {
606            vec![]
607        }
608        SyntaxKind::TokenGT => vec![],
609        SyntaxKind::TerminalGT => {
610            vec![]
611        }
612        SyntaxKind::TokenHash => vec![],
613        SyntaxKind::TerminalHash => {
614            vec![]
615        }
616        SyntaxKind::TokenLBrace => vec![],
617        SyntaxKind::TerminalLBrace => {
618            vec![]
619        }
620        SyntaxKind::TokenLBrack => vec![],
621        SyntaxKind::TerminalLBrack => {
622            vec![]
623        }
624        SyntaxKind::TokenLE => vec![],
625        SyntaxKind::TerminalLE => {
626            vec![]
627        }
628        SyntaxKind::TokenLParen => vec![],
629        SyntaxKind::TerminalLParen => {
630            vec![]
631        }
632        SyntaxKind::TokenLT => vec![],
633        SyntaxKind::TerminalLT => {
634            vec![]
635        }
636        SyntaxKind::TokenMatchArrow => vec![],
637        SyntaxKind::TerminalMatchArrow => {
638            vec![]
639        }
640        SyntaxKind::TokenMinus => vec![],
641        SyntaxKind::TerminalMinus => {
642            vec![]
643        }
644        SyntaxKind::TokenMinusEq => vec![],
645        SyntaxKind::TerminalMinusEq => {
646            vec![]
647        }
648        SyntaxKind::TokenMod => vec![],
649        SyntaxKind::TerminalMod => {
650            vec![]
651        }
652        SyntaxKind::TokenModEq => vec![],
653        SyntaxKind::TerminalModEq => {
654            vec![]
655        }
656        SyntaxKind::TokenMul => vec![],
657        SyntaxKind::TerminalMul => {
658            vec![]
659        }
660        SyntaxKind::TokenMulEq => vec![],
661        SyntaxKind::TerminalMulEq => {
662            vec![]
663        }
664        SyntaxKind::TokenNeq => vec![],
665        SyntaxKind::TerminalNeq => {
666            vec![]
667        }
668        SyntaxKind::TokenNot => vec![],
669        SyntaxKind::TerminalNot => {
670            vec![]
671        }
672        SyntaxKind::TokenBitNot => vec![],
673        SyntaxKind::TerminalBitNot => {
674            vec![]
675        }
676        SyntaxKind::TokenOr => vec![],
677        SyntaxKind::TerminalOr => {
678            vec![]
679        }
680        SyntaxKind::TokenOrOr => vec![],
681        SyntaxKind::TerminalOrOr => {
682            vec![]
683        }
684        SyntaxKind::TokenPlus => vec![],
685        SyntaxKind::TerminalPlus => {
686            vec![]
687        }
688        SyntaxKind::TokenPlusEq => vec![],
689        SyntaxKind::TerminalPlusEq => {
690            vec![]
691        }
692        SyntaxKind::TokenQuestionMark => vec![],
693        SyntaxKind::TerminalQuestionMark => {
694            vec![]
695        }
696        SyntaxKind::TokenRBrace => vec![],
697        SyntaxKind::TerminalRBrace => {
698            vec![]
699        }
700        SyntaxKind::TokenRBrack => vec![],
701        SyntaxKind::TerminalRBrack => {
702            vec![]
703        }
704        SyntaxKind::TokenRParen => vec![],
705        SyntaxKind::TerminalRParen => {
706            vec![]
707        }
708        SyntaxKind::TokenSemicolon => vec![],
709        SyntaxKind::TerminalSemicolon => {
710            vec![]
711        }
712        SyntaxKind::TokenUnderscore => vec![],
713        SyntaxKind::TerminalUnderscore => {
714            vec![]
715        }
716        SyntaxKind::TokenXor => vec![],
717        SyntaxKind::TerminalXor => {
718            vec![]
719        }
720        SyntaxKind::SyntaxFile => {
721            vec![]
722        }
723        SyntaxKind::TokenEmpty => vec![],
724        SyntaxKind::TerminalEmpty => {
725            vec![]
726        }
727        SyntaxKind::TokenSingleLineComment => vec![],
728        SyntaxKind::TokenSingleLineInnerComment => vec![],
729        SyntaxKind::TokenSingleLineDocComment => vec![],
730        SyntaxKind::TokenWhitespace => vec![],
731        SyntaxKind::TokenNewline => vec![],
732        SyntaxKind::TokenMissing => vec![],
733        SyntaxKind::TokenSkipped => vec![],
734    }
735}