1use super::ids::GreenId;
3use super::kind::SyntaxKind;
4pub fn get_key_fields(kind: SyntaxKind, children: &[GreenId]) -> Box<[GreenId]> {
9 match kind {
10 SyntaxKind::Trivia => [].into(),
11 SyntaxKind::ExprList => [].into(),
12 SyntaxKind::Arg => [].into(),
13 SyntaxKind::ArgClauseNamed => [].into(),
14 SyntaxKind::ArgClauseUnnamed => [].into(),
15 SyntaxKind::ArgClauseFieldInitShorthand => [].into(),
16 SyntaxKind::ExprFieldInitShorthand => [].into(),
17 SyntaxKind::ArgList => [].into(),
18 SyntaxKind::ExprMissing => [].into(),
19 SyntaxKind::PathSegmentSimple => [].into(),
20 SyntaxKind::OptionTerminalColonColonEmpty => [].into(),
21 SyntaxKind::PathSegmentWithGenericArgs => [].into(),
22 SyntaxKind::ExprPath => [].into(),
23 SyntaxKind::OptionTerminalDollarEmpty => [].into(),
24 SyntaxKind::PathSegmentMissing => [].into(),
25 SyntaxKind::ExprPathInner => [].into(),
26 SyntaxKind::ExprParenthesized => [].into(),
27 SyntaxKind::ExprUnary => [].into(),
28 SyntaxKind::ExprBinary => [].into(),
29 SyntaxKind::ExprListParenthesized => [].into(),
30 SyntaxKind::ExprFunctionCall => [].into(),
31 SyntaxKind::ArgListParenthesized => [].into(),
32 SyntaxKind::OptionArgListParenthesizedEmpty => [].into(),
33 SyntaxKind::ExprStructCtorCall => [].into(),
34 SyntaxKind::StructArgListBraced => [].into(),
35 SyntaxKind::ExprBlock => [].into(),
36 SyntaxKind::ExprMatch => [].into(),
37 SyntaxKind::MatchArms => [].into(),
38 SyntaxKind::MatchArm => [].into(),
39 SyntaxKind::ExprIf => [].into(),
40 SyntaxKind::ConditionListAnd => [].into(),
41 SyntaxKind::ConditionLet => [].into(),
42 SyntaxKind::ConditionExpr => [].into(),
43 SyntaxKind::ExprLoop => [].into(),
44 SyntaxKind::ExprWhile => [].into(),
45 SyntaxKind::ExprFor => [children[1], children[2]].into(),
46 SyntaxKind::ElseClause => [].into(),
47 SyntaxKind::OptionElseClauseEmpty => [].into(),
48 SyntaxKind::ExprErrorPropagate => [].into(),
49 SyntaxKind::ExprIndexed => [].into(),
50 SyntaxKind::ExprFixedSizeArray => [].into(),
51 SyntaxKind::FixedSizeArraySize => [].into(),
52 SyntaxKind::OptionFixedSizeArraySizeEmpty => [].into(),
53 SyntaxKind::ExprClosure => [].into(),
54 SyntaxKind::ClosureParamWrapperNAry => [].into(),
55 SyntaxKind::ExprPlaceholder => [].into(),
56 SyntaxKind::StructArgExpr => [].into(),
57 SyntaxKind::OptionStructArgExprEmpty => [].into(),
58 SyntaxKind::StructArgSingle => [children[0]].into(),
59 SyntaxKind::StructArgTail => [].into(),
60 SyntaxKind::StructArgList => [].into(),
61 SyntaxKind::ArgListBraced => [].into(),
62 SyntaxKind::ArgListBracketed => [].into(),
63 SyntaxKind::WrappedArgListMissing => [].into(),
64 SyntaxKind::PatternIdentifier => [children[1]].into(),
65 SyntaxKind::PatternStruct => [].into(),
66 SyntaxKind::PatternStructParamList => [].into(),
67 SyntaxKind::PatternTuple => [].into(),
68 SyntaxKind::PatternFixedSizeArray => [].into(),
69 SyntaxKind::PatternList => [].into(),
70 SyntaxKind::PatternListOr => [].into(),
71 SyntaxKind::PatternStructParamWithExpr => [].into(),
72 SyntaxKind::PatternEnum => [].into(),
73 SyntaxKind::PatternEnumInnerPattern => [].into(),
74 SyntaxKind::OptionPatternEnumInnerPatternEmpty => [].into(),
75 SyntaxKind::TypeClause => [].into(),
76 SyntaxKind::OptionTypeClauseEmpty => [].into(),
77 SyntaxKind::ReturnTypeClause => [].into(),
78 SyntaxKind::OptionReturnTypeClauseEmpty => [].into(),
79 SyntaxKind::StatementList => [].into(),
80 SyntaxKind::StatementMissing => [].into(),
81 SyntaxKind::StatementLet => [children[2]].into(),
82 SyntaxKind::LetElseClause => [].into(),
83 SyntaxKind::OptionLetElseClauseEmpty => [].into(),
84 SyntaxKind::OptionTerminalSemicolonEmpty => [].into(),
85 SyntaxKind::StatementExpr => [].into(),
86 SyntaxKind::StatementContinue => [].into(),
87 SyntaxKind::ExprClause => [].into(),
88 SyntaxKind::OptionExprClauseEmpty => [].into(),
89 SyntaxKind::StatementReturn => [].into(),
90 SyntaxKind::StatementBreak => [].into(),
91 SyntaxKind::StatementItem => [].into(),
92 SyntaxKind::Param => [children[1]].into(),
93 SyntaxKind::ModifierList => [].into(),
94 SyntaxKind::ParamList => [].into(),
95 SyntaxKind::ImplicitsClause => [].into(),
96 SyntaxKind::ImplicitsList => [].into(),
97 SyntaxKind::OptionImplicitsClauseEmpty => [].into(),
98 SyntaxKind::OptionTerminalNoPanicEmpty => [].into(),
99 SyntaxKind::OptionTerminalConstEmpty => [].into(),
100 SyntaxKind::FunctionSignature => [].into(),
101 SyntaxKind::Member => [children[2]].into(),
102 SyntaxKind::MemberList => [].into(),
103 SyntaxKind::Variant => [children[1]].into(),
104 SyntaxKind::VariantList => [].into(),
105 SyntaxKind::ModuleItemList => [].into(),
106 SyntaxKind::ModuleItemMissing => [].into(),
107 SyntaxKind::Attribute => [].into(),
108 SyntaxKind::AttributeList => [].into(),
109 SyntaxKind::VisibilityDefault => [].into(),
110 SyntaxKind::VisibilityPubArgumentClause => [].into(),
111 SyntaxKind::OptionVisibilityPubArgumentClauseEmpty => [].into(),
112 SyntaxKind::VisibilityPub => [].into(),
113 SyntaxKind::ItemModule => [children[3]].into(),
114 SyntaxKind::ModuleBody => [].into(),
115 SyntaxKind::FunctionDeclaration => [children[2]].into(),
116 SyntaxKind::ItemConstant => [children[3]].into(),
117 SyntaxKind::FunctionWithBody => [children[2]].into(),
118 SyntaxKind::ItemExternFunction => [children[3]].into(),
119 SyntaxKind::ItemExternType => [children[4]].into(),
120 SyntaxKind::ItemTrait => [children[3]].into(),
121 SyntaxKind::TraitBody => [].into(),
122 SyntaxKind::TraitItemList => [].into(),
123 SyntaxKind::TraitItemMissing => [].into(),
124 SyntaxKind::TraitItemFunction => [children[1]].into(),
125 SyntaxKind::TraitItemType => [children[2]].into(),
126 SyntaxKind::TraitItemConstant => [children[2]].into(),
127 SyntaxKind::TraitItemImpl => [children[2]].into(),
128 SyntaxKind::ItemImpl => [children[3]].into(),
129 SyntaxKind::ItemHeaderDoc => [].into(),
130 SyntaxKind::ImplBody => [].into(),
131 SyntaxKind::ImplItemList => [].into(),
132 SyntaxKind::ImplItemMissing => [].into(),
133 SyntaxKind::ItemImplAlias => [children[3]].into(),
134 SyntaxKind::ItemStruct => [children[3]].into(),
135 SyntaxKind::ItemEnum => [children[3]].into(),
136 SyntaxKind::ItemTypeAlias => [children[3]].into(),
137 SyntaxKind::ItemUse => [children[3]].into(),
138 SyntaxKind::UsePathLeaf => {
139 [children[0], children[1]].into()
140 }
141 SyntaxKind::UsePathSingle => [].into(),
142 SyntaxKind::UsePathMulti => [].into(),
143 SyntaxKind::UsePathStar => [].into(),
144 SyntaxKind::UsePathList => [].into(),
145 SyntaxKind::AliasClause => [children[1]].into(),
146 SyntaxKind::OptionAliasClauseEmpty => [].into(),
147 SyntaxKind::GenericArgNamed => [].into(),
148 SyntaxKind::GenericArgUnnamed => [].into(),
149 SyntaxKind::GenericArgValueExpr => [].into(),
150 SyntaxKind::GenericArgs => [].into(),
151 SyntaxKind::GenericArgList => [].into(),
152 SyntaxKind::AssociatedItemConstraint => [].into(),
153 SyntaxKind::AssociatedItemConstraints => [].into(),
154 SyntaxKind::AssociatedItemConstraintList => [].into(),
155 SyntaxKind::OptionAssociatedItemConstraintsEmpty => [].into(),
156 SyntaxKind::OptionWrappedGenericParamListEmpty => [].into(),
157 SyntaxKind::WrappedGenericParamList => [].into(),
158 SyntaxKind::GenericParamList => [].into(),
159 SyntaxKind::GenericParamType => [children[0]].into(),
160 SyntaxKind::GenericParamConst => [children[1]].into(),
161 SyntaxKind::GenericParamImplNamed => [children[1]].into(),
162 SyntaxKind::GenericParamImplAnonymous => [].into(),
163 SyntaxKind::GenericParamNegativeImpl => [].into(),
164 SyntaxKind::TokenList => [].into(),
165 SyntaxKind::TokenTreeLeaf => [].into(),
166 SyntaxKind::TokenTreeNode => [].into(),
167 SyntaxKind::TokenTreeRepetition => [].into(),
168 SyntaxKind::TokenTreeParam => [].into(),
169 SyntaxKind::TokenTreeMissing => [].into(),
170 SyntaxKind::WrappedTokenTreeMissing => [].into(),
171 SyntaxKind::ParenthesizedTokenTree => [].into(),
172 SyntaxKind::BracedTokenTree => [].into(),
173 SyntaxKind::BracketedTokenTree => [].into(),
174 SyntaxKind::ExprInlineMacro => [].into(),
175 SyntaxKind::ItemInlineMacro => [].into(),
176 SyntaxKind::ItemMacroDeclaration => [children[3]].into(),
177 SyntaxKind::MacroRulesList => [].into(),
178 SyntaxKind::MacroRule => [].into(),
179 SyntaxKind::ParamKind => [].into(),
180 SyntaxKind::OptionParamKindEmpty => [].into(),
181 SyntaxKind::MacroParam => [].into(),
182 SyntaxKind::MacroRepetition => [].into(),
183 SyntaxKind::OptionTerminalCommaEmpty => [].into(),
184 SyntaxKind::MacroRepetitionOperatorMissing => [].into(),
185 SyntaxKind::ParamIdent => [].into(),
186 SyntaxKind::ParamExpr => [].into(),
187 SyntaxKind::MacroParamKindMissing => [].into(),
188 SyntaxKind::MacroElements => [].into(),
189 SyntaxKind::MacroWrapper => [].into(),
190 SyntaxKind::ParenthesizedMacro => [].into(),
191 SyntaxKind::BracedMacro => [].into(),
192 SyntaxKind::BracketedMacro => [].into(),
193 SyntaxKind::LegacyExprInlineMacro => [].into(),
194 SyntaxKind::LegacyItemInlineMacro => [].into(),
195 SyntaxKind::TriviumSkippedNode => [].into(),
196 SyntaxKind::TokenIdentifier => [].into(),
197 SyntaxKind::TerminalIdentifier => [].into(),
198 SyntaxKind::TokenLiteralNumber => [].into(),
199 SyntaxKind::TerminalLiteralNumber => [].into(),
200 SyntaxKind::TokenShortString => [].into(),
201 SyntaxKind::TerminalShortString => [].into(),
202 SyntaxKind::TokenString => [].into(),
203 SyntaxKind::TerminalString => [].into(),
204 SyntaxKind::TokenAs => [].into(),
205 SyntaxKind::TerminalAs => [].into(),
206 SyntaxKind::TokenConst => [].into(),
207 SyntaxKind::TerminalConst => [].into(),
208 SyntaxKind::TokenElse => [].into(),
209 SyntaxKind::TerminalElse => [].into(),
210 SyntaxKind::TokenEnum => [].into(),
211 SyntaxKind::TerminalEnum => [].into(),
212 SyntaxKind::TokenExtern => [].into(),
213 SyntaxKind::TerminalExtern => [].into(),
214 SyntaxKind::TokenFalse => [].into(),
215 SyntaxKind::TerminalFalse => [].into(),
216 SyntaxKind::TokenFunction => [].into(),
217 SyntaxKind::TerminalFunction => [].into(),
218 SyntaxKind::TokenIf => [].into(),
219 SyntaxKind::TerminalIf => [].into(),
220 SyntaxKind::TokenWhile => [].into(),
221 SyntaxKind::TerminalWhile => [].into(),
222 SyntaxKind::TokenFor => [].into(),
223 SyntaxKind::TerminalFor => [].into(),
224 SyntaxKind::TokenLoop => [].into(),
225 SyntaxKind::TerminalLoop => [].into(),
226 SyntaxKind::TokenImpl => [].into(),
227 SyntaxKind::TerminalImpl => [].into(),
228 SyntaxKind::TokenImplicits => [].into(),
229 SyntaxKind::TerminalImplicits => [].into(),
230 SyntaxKind::TokenLet => [].into(),
231 SyntaxKind::TerminalLet => [].into(),
232 SyntaxKind::TokenMacro => [].into(),
233 SyntaxKind::TerminalMacro => [].into(),
234 SyntaxKind::TokenMatch => [].into(),
235 SyntaxKind::TerminalMatch => [].into(),
236 SyntaxKind::TokenModule => [].into(),
237 SyntaxKind::TerminalModule => [].into(),
238 SyntaxKind::TokenMut => [].into(),
239 SyntaxKind::TerminalMut => [].into(),
240 SyntaxKind::TokenNoPanic => [].into(),
241 SyntaxKind::TerminalNoPanic => [].into(),
242 SyntaxKind::TokenOf => [].into(),
243 SyntaxKind::TerminalOf => [].into(),
244 SyntaxKind::TokenRef => [].into(),
245 SyntaxKind::TerminalRef => [].into(),
246 SyntaxKind::TokenContinue => [].into(),
247 SyntaxKind::TerminalContinue => [].into(),
248 SyntaxKind::TokenReturn => [].into(),
249 SyntaxKind::TerminalReturn => [].into(),
250 SyntaxKind::TokenBreak => [].into(),
251 SyntaxKind::TerminalBreak => [].into(),
252 SyntaxKind::TokenStruct => [].into(),
253 SyntaxKind::TerminalStruct => [].into(),
254 SyntaxKind::TokenTrait => [].into(),
255 SyntaxKind::TerminalTrait => [].into(),
256 SyntaxKind::TokenTrue => [].into(),
257 SyntaxKind::TerminalTrue => [].into(),
258 SyntaxKind::TokenType => [].into(),
259 SyntaxKind::TerminalType => [].into(),
260 SyntaxKind::TokenUse => [].into(),
261 SyntaxKind::TerminalUse => [].into(),
262 SyntaxKind::TokenPub => [].into(),
263 SyntaxKind::TerminalPub => [].into(),
264 SyntaxKind::TokenAnd => [].into(),
265 SyntaxKind::TerminalAnd => [].into(),
266 SyntaxKind::TokenAndAnd => [].into(),
267 SyntaxKind::TerminalAndAnd => [].into(),
268 SyntaxKind::TokenArrow => [].into(),
269 SyntaxKind::TerminalArrow => [].into(),
270 SyntaxKind::TokenAt => [].into(),
271 SyntaxKind::TerminalAt => [].into(),
272 SyntaxKind::TokenBadCharacters => [].into(),
273 SyntaxKind::TerminalBadCharacters => [].into(),
274 SyntaxKind::TokenColon => [].into(),
275 SyntaxKind::TerminalColon => [].into(),
276 SyntaxKind::TokenColonColon => [].into(),
277 SyntaxKind::TerminalColonColon => [].into(),
278 SyntaxKind::TokenComma => [].into(),
279 SyntaxKind::TerminalComma => [].into(),
280 SyntaxKind::TokenDiv => [].into(),
281 SyntaxKind::TerminalDiv => [].into(),
282 SyntaxKind::TokenDivEq => [].into(),
283 SyntaxKind::TerminalDivEq => [].into(),
284 SyntaxKind::TokenDollar => [].into(),
285 SyntaxKind::TerminalDollar => [].into(),
286 SyntaxKind::TokenDot => [].into(),
287 SyntaxKind::TerminalDot => [].into(),
288 SyntaxKind::TokenDotDot => [].into(),
289 SyntaxKind::TerminalDotDot => [].into(),
290 SyntaxKind::TokenDotDotEq => [].into(),
291 SyntaxKind::TerminalDotDotEq => [].into(),
292 SyntaxKind::TokenEndOfFile => [].into(),
293 SyntaxKind::TerminalEndOfFile => [].into(),
294 SyntaxKind::TokenEq => [].into(),
295 SyntaxKind::TerminalEq => [].into(),
296 SyntaxKind::TokenEqEq => [].into(),
297 SyntaxKind::TerminalEqEq => [].into(),
298 SyntaxKind::TokenGE => [].into(),
299 SyntaxKind::TerminalGE => [].into(),
300 SyntaxKind::TokenGT => [].into(),
301 SyntaxKind::TerminalGT => [].into(),
302 SyntaxKind::TokenHash => [].into(),
303 SyntaxKind::TerminalHash => [].into(),
304 SyntaxKind::TokenLBrace => [].into(),
305 SyntaxKind::TerminalLBrace => [].into(),
306 SyntaxKind::TokenLBrack => [].into(),
307 SyntaxKind::TerminalLBrack => [].into(),
308 SyntaxKind::TokenLE => [].into(),
309 SyntaxKind::TerminalLE => [].into(),
310 SyntaxKind::TokenLParen => [].into(),
311 SyntaxKind::TerminalLParen => [].into(),
312 SyntaxKind::TokenLT => [].into(),
313 SyntaxKind::TerminalLT => [].into(),
314 SyntaxKind::TokenMatchArrow => [].into(),
315 SyntaxKind::TerminalMatchArrow => [].into(),
316 SyntaxKind::TokenMinus => [].into(),
317 SyntaxKind::TerminalMinus => [].into(),
318 SyntaxKind::TokenMinusEq => [].into(),
319 SyntaxKind::TerminalMinusEq => [].into(),
320 SyntaxKind::TokenMod => [].into(),
321 SyntaxKind::TerminalMod => [].into(),
322 SyntaxKind::TokenModEq => [].into(),
323 SyntaxKind::TerminalModEq => [].into(),
324 SyntaxKind::TokenMul => [].into(),
325 SyntaxKind::TerminalMul => [].into(),
326 SyntaxKind::TokenMulEq => [].into(),
327 SyntaxKind::TerminalMulEq => [].into(),
328 SyntaxKind::TokenNeq => [].into(),
329 SyntaxKind::TerminalNeq => [].into(),
330 SyntaxKind::TokenNot => [].into(),
331 SyntaxKind::TerminalNot => [].into(),
332 SyntaxKind::TokenBitNot => [].into(),
333 SyntaxKind::TerminalBitNot => [].into(),
334 SyntaxKind::TokenOr => [].into(),
335 SyntaxKind::TerminalOr => [].into(),
336 SyntaxKind::TokenOrOr => [].into(),
337 SyntaxKind::TerminalOrOr => [].into(),
338 SyntaxKind::TokenPlus => [].into(),
339 SyntaxKind::TerminalPlus => [].into(),
340 SyntaxKind::TokenPlusEq => [].into(),
341 SyntaxKind::TerminalPlusEq => [].into(),
342 SyntaxKind::TokenQuestionMark => [].into(),
343 SyntaxKind::TerminalQuestionMark => [].into(),
344 SyntaxKind::TokenRBrace => [].into(),
345 SyntaxKind::TerminalRBrace => [].into(),
346 SyntaxKind::TokenRBrack => [].into(),
347 SyntaxKind::TerminalRBrack => [].into(),
348 SyntaxKind::TokenRParen => [].into(),
349 SyntaxKind::TerminalRParen => [].into(),
350 SyntaxKind::TokenSemicolon => [].into(),
351 SyntaxKind::TerminalSemicolon => [].into(),
352 SyntaxKind::TokenUnderscore => [].into(),
353 SyntaxKind::TerminalUnderscore => [].into(),
354 SyntaxKind::TokenXor => [].into(),
355 SyntaxKind::TerminalXor => [].into(),
356 SyntaxKind::SyntaxFile => [].into(),
357 SyntaxKind::TokenEmpty => [].into(),
358 SyntaxKind::TerminalEmpty => [].into(),
359 SyntaxKind::TokenSingleLineComment => [].into(),
360 SyntaxKind::TokenSingleLineInnerComment => [].into(),
361 SyntaxKind::TokenSingleLineDocComment => [].into(),
362 SyntaxKind::TokenWhitespace => [].into(),
363 SyntaxKind::TokenNewline => [].into(),
364 SyntaxKind::TokenMissing => [].into(),
365 SyntaxKind::TokenSkipped => [].into(),
366 }
367}