@@ -331,6 +331,331 @@ pub enum SyntaxKind {
331331}
332332use self :: SyntaxKind :: * ;
333333impl SyntaxKind {
334+ #[ allow( unreachable_patterns) ]
335+ pub const fn text ( self ) -> & ' static str {
336+ match self {
337+ TOMBSTONE
338+ | EOF
339+ | __LAST
340+ | BYTE
341+ | BYTE_STRING
342+ | CHAR
343+ | C_STRING
344+ | FLOAT_NUMBER
345+ | INT_NUMBER
346+ | RAW_BYTE_STRING
347+ | RAW_C_STRING
348+ | RAW_STRING
349+ | STRING
350+ | ABI
351+ | ADT
352+ | ARG_LIST
353+ | ARRAY_EXPR
354+ | ARRAY_TYPE
355+ | ASM_CLOBBER_ABI
356+ | ASM_CONST
357+ | ASM_DIR_SPEC
358+ | ASM_EXPR
359+ | ASM_LABEL
360+ | ASM_OPERAND
361+ | ASM_OPERAND_EXPR
362+ | ASM_OPERAND_NAMED
363+ | ASM_OPTION
364+ | ASM_OPTIONS
365+ | ASM_PIECE
366+ | ASM_REG_OPERAND
367+ | ASM_REG_SPEC
368+ | ASM_SYM
369+ | ASSOC_ITEM
370+ | ASSOC_ITEM_LIST
371+ | ASSOC_TYPE_ARG
372+ | ATTR
373+ | AWAIT_EXPR
374+ | BECOME_EXPR
375+ | BIN_EXPR
376+ | BLOCK_EXPR
377+ | BOX_PAT
378+ | BREAK_EXPR
379+ | CALL_EXPR
380+ | CAST_EXPR
381+ | CLOSURE_BINDER
382+ | CLOSURE_EXPR
383+ | CONST
384+ | CONST_ARG
385+ | CONST_BLOCK_PAT
386+ | CONST_PARAM
387+ | CONTINUE_EXPR
388+ | DYN_TRAIT_TYPE
389+ | ENUM
390+ | EXPR
391+ | EXPR_STMT
392+ | EXTERN_BLOCK
393+ | EXTERN_CRATE
394+ | EXTERN_ITEM
395+ | EXTERN_ITEM_LIST
396+ | FIELD_EXPR
397+ | FIELD_LIST
398+ | FN
399+ | FN_PTR_TYPE
400+ | FORMAT_ARGS_ARG
401+ | FORMAT_ARGS_EXPR
402+ | FOR_EXPR
403+ | FOR_TYPE
404+ | GENERIC_ARG
405+ | GENERIC_ARG_LIST
406+ | GENERIC_PARAM
407+ | GENERIC_PARAM_LIST
408+ | IDENT_PAT
409+ | IF_EXPR
410+ | IMPL
411+ | IMPL_TRAIT_TYPE
412+ | INDEX_EXPR
413+ | INFER_TYPE
414+ | ITEM
415+ | ITEM_LIST
416+ | LABEL
417+ | LET_ELSE
418+ | LET_EXPR
419+ | LET_STMT
420+ | LIFETIME
421+ | LIFETIME_ARG
422+ | LIFETIME_PARAM
423+ | LITERAL
424+ | LITERAL_PAT
425+ | LOOP_EXPR
426+ | MACRO_CALL
427+ | MACRO_DEF
428+ | MACRO_EXPR
429+ | MACRO_ITEMS
430+ | MACRO_PAT
431+ | MACRO_RULES
432+ | MACRO_STMTS
433+ | MACRO_TYPE
434+ | MATCH_ARM
435+ | MATCH_ARM_LIST
436+ | MATCH_EXPR
437+ | MATCH_GUARD
438+ | META
439+ | METHOD_CALL_EXPR
440+ | MODULE
441+ | NAME
442+ | NAME_REF
443+ | NEVER_TYPE
444+ | OFFSET_OF_EXPR
445+ | OR_PAT
446+ | PARAM
447+ | PARAM_LIST
448+ | PARENTHESIZED_ARG_LIST
449+ | PAREN_EXPR
450+ | PAREN_PAT
451+ | PAREN_TYPE
452+ | PAT
453+ | PATH
454+ | PATH_EXPR
455+ | PATH_PAT
456+ | PATH_SEGMENT
457+ | PATH_TYPE
458+ | PREFIX_EXPR
459+ | PTR_TYPE
460+ | RANGE_EXPR
461+ | RANGE_PAT
462+ | RECORD_EXPR
463+ | RECORD_EXPR_FIELD
464+ | RECORD_EXPR_FIELD_LIST
465+ | RECORD_FIELD
466+ | RECORD_FIELD_LIST
467+ | RECORD_PAT
468+ | RECORD_PAT_FIELD
469+ | RECORD_PAT_FIELD_LIST
470+ | REF_EXPR
471+ | REF_PAT
472+ | REF_TYPE
473+ | RENAME
474+ | REST_PAT
475+ | RETURN_EXPR
476+ | RETURN_TYPE_SYNTAX
477+ | RET_TYPE
478+ | SELF_PARAM
479+ | SLICE_PAT
480+ | SLICE_TYPE
481+ | SOURCE_FILE
482+ | STATIC
483+ | STMT
484+ | STMT_LIST
485+ | STRUCT
486+ | TOKEN_TREE
487+ | TRAIT
488+ | TRAIT_ALIAS
489+ | TRY_EXPR
490+ | TUPLE_EXPR
491+ | TUPLE_FIELD
492+ | TUPLE_FIELD_LIST
493+ | TUPLE_PAT
494+ | TUPLE_STRUCT_PAT
495+ | TUPLE_TYPE
496+ | TYPE
497+ | TYPE_ALIAS
498+ | TYPE_ARG
499+ | TYPE_BOUND
500+ | TYPE_BOUND_LIST
501+ | TYPE_PARAM
502+ | UNDERSCORE_EXPR
503+ | UNION
504+ | USE
505+ | USE_BOUND_GENERIC_ARG
506+ | USE_BOUND_GENERIC_ARGS
507+ | USE_TREE
508+ | USE_TREE_LIST
509+ | VARIANT
510+ | VARIANT_LIST
511+ | VISIBILITY
512+ | WHERE_CLAUSE
513+ | WHERE_PRED
514+ | WHILE_EXPR
515+ | WILDCARD_PAT
516+ | YEET_EXPR
517+ | YIELD_EXPR
518+ | COMMENT
519+ | ERROR
520+ | IDENT
521+ | LIFETIME_IDENT
522+ | NEWLINE
523+ | SHEBANG
524+ | WHITESPACE => panic ! ( "no text for these `SyntaxKind`s" ) ,
525+ DOLLAR => "$" ,
526+ SEMICOLON => ";" ,
527+ COMMA => "," ,
528+ L_PAREN => "(" ,
529+ R_PAREN => ")" ,
530+ L_CURLY => "{" ,
531+ R_CURLY => "}" ,
532+ L_BRACK => "[" ,
533+ R_BRACK => "]" ,
534+ L_ANGLE => "<" ,
535+ R_ANGLE => ">" ,
536+ AT => "@" ,
537+ POUND => "#" ,
538+ TILDE => "~" ,
539+ QUESTION => "?" ,
540+ AMP => "&" ,
541+ PIPE => "|" ,
542+ PLUS => "+" ,
543+ STAR => "*" ,
544+ SLASH => "/" ,
545+ CARET => "^" ,
546+ PERCENT => "%" ,
547+ UNDERSCORE => "_" ,
548+ DOT => "." ,
549+ DOT2 => ".." ,
550+ DOT3 => "..." ,
551+ DOT2EQ => "..=" ,
552+ COLON => ":" ,
553+ COLON2 => "::" ,
554+ EQ => "=" ,
555+ EQ2 => "==" ,
556+ FAT_ARROW => "=>" ,
557+ BANG => "!" ,
558+ NEQ => "!=" ,
559+ MINUS => "-" ,
560+ THIN_ARROW => "->" ,
561+ LTEQ => "<=" ,
562+ GTEQ => ">=" ,
563+ PLUSEQ => "+=" ,
564+ MINUSEQ => "-=" ,
565+ PIPEEQ => "|=" ,
566+ AMPEQ => "&=" ,
567+ CARETEQ => "^=" ,
568+ SLASHEQ => "/=" ,
569+ STAREQ => "*=" ,
570+ PERCENTEQ => "%=" ,
571+ AMP2 => "&&" ,
572+ PIPE2 => "||" ,
573+ SHL => "<<" ,
574+ SHR => ">>" ,
575+ SHLEQ => "<<=" ,
576+ SHREQ => ">>=" ,
577+ SELF_TYPE_KW => "Self" ,
578+ ABSTRACT_KW => "abstract" ,
579+ AS_KW => "as" ,
580+ BECOME_KW => "become" ,
581+ BOX_KW => "box" ,
582+ BREAK_KW => "break" ,
583+ CONST_KW => "const" ,
584+ CONTINUE_KW => "continue" ,
585+ CRATE_KW => "crate" ,
586+ DO_KW => "do" ,
587+ ELSE_KW => "else" ,
588+ ENUM_KW => "enum" ,
589+ EXTERN_KW => "extern" ,
590+ FALSE_KW => "false" ,
591+ FINAL_KW => "final" ,
592+ FN_KW => "fn" ,
593+ FOR_KW => "for" ,
594+ IF_KW => "if" ,
595+ IMPL_KW => "impl" ,
596+ IN_KW => "in" ,
597+ LET_KW => "let" ,
598+ LOOP_KW => "loop" ,
599+ MACRO_KW => "macro" ,
600+ MATCH_KW => "match" ,
601+ MOD_KW => "mod" ,
602+ MOVE_KW => "move" ,
603+ MUT_KW => "mut" ,
604+ OVERRIDE_KW => "override" ,
605+ PRIV_KW => "priv" ,
606+ PUB_KW => "pub" ,
607+ REF_KW => "ref" ,
608+ RETURN_KW => "return" ,
609+ SELF_KW => "self" ,
610+ STATIC_KW => "static" ,
611+ STRUCT_KW => "struct" ,
612+ SUPER_KW => "super" ,
613+ TRAIT_KW => "trait" ,
614+ TRUE_KW => "true" ,
615+ TYPE_KW => "type" ,
616+ TYPEOF_KW => "typeof" ,
617+ UNSAFE_KW => "unsafe" ,
618+ UNSIZED_KW => "unsized" ,
619+ USE_KW => "use" ,
620+ VIRTUAL_KW => "virtual" ,
621+ WHERE_KW => "where" ,
622+ WHILE_KW => "while" ,
623+ YIELD_KW => "yield" ,
624+ ASM_KW => "asm" ,
625+ ATT_SYNTAX_KW => "att_syntax" ,
626+ AUTO_KW => "auto" ,
627+ BUILTIN_KW => "builtin" ,
628+ CLOBBER_ABI_KW => "clobber_abi" ,
629+ DEFAULT_KW => "default" ,
630+ DYN_KW => "dyn" ,
631+ FORMAT_ARGS_KW => "format_args" ,
632+ INLATEOUT_KW => "inlateout" ,
633+ INOUT_KW => "inout" ,
634+ LABEL_KW => "label" ,
635+ LATEOUT_KW => "lateout" ,
636+ MACRO_RULES_KW => "macro_rules" ,
637+ MAY_UNWIND_KW => "may_unwind" ,
638+ NOMEM_KW => "nomem" ,
639+ NORETURN_KW => "noreturn" ,
640+ NOSTACK_KW => "nostack" ,
641+ OFFSET_OF_KW => "offset_of" ,
642+ OPTIONS_KW => "options" ,
643+ OUT_KW => "out" ,
644+ PRESERVES_FLAGS_KW => "preserves_flags" ,
645+ PURE_KW => "pure" ,
646+ RAW_KW => "raw" ,
647+ READONLY_KW => "readonly" ,
648+ SAFE_KW => "safe" ,
649+ SYM_KW => "sym" ,
650+ UNION_KW => "union" ,
651+ YEET_KW => "yeet" ,
652+ ASYNC_KW => "async" ,
653+ AWAIT_KW => "await" ,
654+ DYN_KW => "dyn" ,
655+ GEN_KW => "gen" ,
656+ TRY_KW => "try" ,
657+ }
658+ }
334659 #[ doc = r" Checks whether this syntax kind is a strict keyword for the given edition." ]
335660 #[ doc = r" Strict keywords are identifiers that are always considered keywords." ]
336661 pub fn is_strict_keyword ( self , edition : Edition ) -> bool {
0 commit comments