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