File tree 5 files changed +13
-5
lines changed
5 files changed +13
-5
lines changed Original file line number Diff line number Diff line change @@ -19,6 +19,10 @@ impl Edition {
19
19
pub fn at_least_2024 ( self ) -> bool {
20
20
self >= Edition :: Edition2024
21
21
}
22
+
23
+ pub fn at_least_2018 ( self ) -> bool {
24
+ self >= Edition :: Edition2018
25
+ }
22
26
}
23
27
24
28
#[ derive( Debug ) ]
Original file line number Diff line number Diff line change @@ -178,6 +178,12 @@ impl<'a> Converter<'a> {
178
178
rustc_lexer:: TokenKind :: Whitespace => WHITESPACE ,
179
179
180
180
rustc_lexer:: TokenKind :: Ident if token_text == "_" => UNDERSCORE ,
181
+ rustc_lexer:: TokenKind :: Ident
182
+ if [ "async" , "await" , "dyn" , "try" ] . contains ( & token_text)
183
+ && !self . edition . at_least_2018 ( ) =>
184
+ {
185
+ IDENT
186
+ }
181
187
rustc_lexer:: TokenKind :: Ident
182
188
if token_text == "gen" && !self . edition . at_least_2024 ( ) =>
183
189
{
Original file line number Diff line number Diff line change @@ -99,7 +99,6 @@ pub enum SyntaxKind {
99
99
RETURN_KW ,
100
100
SELF_KW ,
101
101
STATIC_KW ,
102
- STRING_KW ,
103
102
STRUCT_KW ,
104
103
SUPER_KW ,
105
104
TRAIT_KW ,
@@ -338,7 +337,6 @@ impl SyntaxKind {
338
337
| RETURN_KW
339
338
| SELF_KW
340
339
| STATIC_KW
341
- | STRING_KW
342
340
| STRUCT_KW
343
341
| SUPER_KW
344
342
| TRAIT_KW
@@ -476,7 +474,6 @@ impl SyntaxKind {
476
474
"return" => RETURN_KW ,
477
475
"self" => SELF_KW ,
478
476
"static" => STATIC_KW ,
479
- "string" => STRING_KW ,
480
477
"struct" => STRUCT_KW ,
481
478
"super" => SUPER_KW ,
482
479
"trait" => TRAIT_KW ,
@@ -547,4 +544,4 @@ impl SyntaxKind {
547
544
}
548
545
}
549
546
#[ macro_export]
550
- macro_rules ! T { [ $] => { $ crate :: SyntaxKind :: DOLLAR } ; [ ; ] => { $ crate :: SyntaxKind :: SEMICOLON } ; [ , ] => { $ crate :: SyntaxKind :: COMMA } ; [ '(' ] => { $ crate :: SyntaxKind :: L_PAREN } ; [ ')' ] => { $ crate :: SyntaxKind :: R_PAREN } ; [ '{' ] => { $ crate :: SyntaxKind :: L_CURLY } ; [ '}' ] => { $ crate :: SyntaxKind :: R_CURLY } ; [ '[' ] => { $ crate :: SyntaxKind :: L_BRACK } ; [ ']' ] => { $ crate :: SyntaxKind :: R_BRACK } ; [ <] => { $ crate :: SyntaxKind :: L_ANGLE } ; [ >] => { $ crate :: SyntaxKind :: R_ANGLE } ; [ @] => { $ crate :: SyntaxKind :: AT } ; [ #] => { $ crate :: SyntaxKind :: POUND } ; [ ~] => { $ crate :: SyntaxKind :: TILDE } ; [ ?] => { $ crate :: SyntaxKind :: QUESTION } ; [ & ] => { $ crate :: SyntaxKind :: AMP } ; [ |] => { $ crate :: SyntaxKind :: PIPE } ; [ +] => { $ crate :: SyntaxKind :: PLUS } ; [ * ] => { $ crate :: SyntaxKind :: STAR } ; [ /] => { $ crate :: SyntaxKind :: SLASH } ; [ ^] => { $ crate :: SyntaxKind :: CARET } ; [ %] => { $ crate :: SyntaxKind :: PERCENT } ; [ _] => { $ crate :: SyntaxKind :: UNDERSCORE } ; [ . ] => { $ crate :: SyntaxKind :: DOT } ; [ ..] => { $ crate :: SyntaxKind :: DOT2 } ; [ ...] => { $ crate :: SyntaxKind :: DOT3 } ; [ ..=] => { $ crate :: SyntaxKind :: DOT2EQ } ; [ : ] => { $ crate :: SyntaxKind :: COLON } ; [ :: ] => { $ crate :: SyntaxKind :: COLON2 } ; [ =] => { $ crate :: SyntaxKind :: EQ } ; [ ==] => { $ crate :: SyntaxKind :: EQ2 } ; [ =>] => { $ crate :: SyntaxKind :: FAT_ARROW } ; [ !] => { $ crate :: SyntaxKind :: BANG } ; [ !=] => { $ crate :: SyntaxKind :: NEQ } ; [ -] => { $ crate :: SyntaxKind :: MINUS } ; [ ->] => { $ crate :: SyntaxKind :: THIN_ARROW } ; [ <=] => { $ crate :: SyntaxKind :: LTEQ } ; [ >=] => { $ crate :: SyntaxKind :: GTEQ } ; [ +=] => { $ crate :: SyntaxKind :: PLUSEQ } ; [ -=] => { $ crate :: SyntaxKind :: MINUSEQ } ; [ |=] => { $ crate :: SyntaxKind :: PIPEEQ } ; [ &=] => { $ crate :: SyntaxKind :: AMPEQ } ; [ ^=] => { $ crate :: SyntaxKind :: CARETEQ } ; [ /=] => { $ crate :: SyntaxKind :: SLASHEQ } ; [ *=] => { $ crate :: SyntaxKind :: STAREQ } ; [ %=] => { $ crate :: SyntaxKind :: PERCENTEQ } ; [ &&] => { $ crate :: SyntaxKind :: AMP2 } ; [ ||] => { $ crate :: SyntaxKind :: PIPE2 } ; [ <<] => { $ crate :: SyntaxKind :: SHL } ; [ >>] => { $ crate :: SyntaxKind :: SHR } ; [ <<=] => { $ crate :: SyntaxKind :: SHLEQ } ; [ >>=] => { $ crate :: SyntaxKind :: SHREQ } ; [ Self ] => { $ crate :: SyntaxKind :: SELF_TYPE_KW } ; [ abstract] => { $ crate :: SyntaxKind :: ABSTRACT_KW } ; [ as ] => { $ crate :: SyntaxKind :: AS_KW } ; [ async ] => { $ crate :: SyntaxKind :: ASYNC_KW } ; [ await ] => { $ crate :: SyntaxKind :: AWAIT_KW } ; [ become] => { $ crate :: SyntaxKind :: BECOME_KW } ; [ box] => { $ crate :: SyntaxKind :: BOX_KW } ; [ break ] => { $ crate :: SyntaxKind :: BREAK_KW } ; [ const ] => { $ crate :: SyntaxKind :: CONST_KW } ; [ continue ] => { $ crate :: SyntaxKind :: CONTINUE_KW } ; [ crate ] => { $ crate :: SyntaxKind :: CRATE_KW } ; [ do] => { $ crate :: SyntaxKind :: DO_KW } ; [ dyn] => { $ crate :: SyntaxKind :: DYN_KW } ; [ else] => { $ crate :: SyntaxKind :: ELSE_KW } ; [ enum ] => { $ crate :: SyntaxKind :: ENUM_KW } ; [ extern] => { $ crate :: SyntaxKind :: EXTERN_KW } ; [ false ] => { $ crate :: SyntaxKind :: FALSE_KW } ; [ final] => { $ crate :: SyntaxKind :: FINAL_KW } ; [ fn ] => { $ crate :: SyntaxKind :: FN_KW } ; [ for ] => { $ crate :: SyntaxKind :: FOR_KW } ; [ gen ] => { $ crate :: SyntaxKind :: GEN_KW } ; [ if ] => { $ crate :: SyntaxKind :: IF_KW } ; [ impl ] => { $ crate :: SyntaxKind :: IMPL_KW } ; [ in] => { $ crate :: SyntaxKind :: IN_KW } ; [ let ] => { $ crate :: SyntaxKind :: LET_KW } ; [ loop ] => { $ crate :: SyntaxKind :: LOOP_KW } ; [ macro] => { $ crate :: SyntaxKind :: MACRO_KW } ; [ match ] => { $ crate :: SyntaxKind :: MATCH_KW } ; [ mod ] => { $ crate :: SyntaxKind :: MOD_KW } ; [ move] => { $ crate :: SyntaxKind :: MOVE_KW } ; [ mut ] => { $ crate :: SyntaxKind :: MUT_KW } ; [ override] => { $ crate :: SyntaxKind :: OVERRIDE_KW } ; [ priv] => { $ crate :: SyntaxKind :: PRIV_KW } ; [ pub ] => { $ crate :: SyntaxKind :: PUB_KW } ; [ ref] => { $ crate :: SyntaxKind :: REF_KW } ; [ return ] => { $ crate :: SyntaxKind :: RETURN_KW } ; [ self ] => { $ crate :: SyntaxKind :: SELF_KW } ; [ static ] => { $ crate :: SyntaxKind :: STATIC_KW } ; [ string] => { $ crate :: SyntaxKind :: STRING_KW } ; [ struct ] => { $ crate :: SyntaxKind :: STRUCT_KW } ; [ super ] => { $ crate :: SyntaxKind :: SUPER_KW } ; [ trait ] => { $ crate :: SyntaxKind :: TRAIT_KW } ; [ true ] => { $ crate :: SyntaxKind :: TRUE_KW } ; [ try] => { $ crate :: SyntaxKind :: TRY_KW } ; [ type ] => { $ crate :: SyntaxKind :: TYPE_KW } ; [ typeof] => { $ crate :: SyntaxKind :: TYPEOF_KW } ; [ unsafe ] => { $ crate :: SyntaxKind :: UNSAFE_KW } ; [ unsized] => { $ crate :: SyntaxKind :: UNSIZED_KW } ; [ use ] => { $ crate :: SyntaxKind :: USE_KW } ; [ virtual] => { $ crate :: SyntaxKind :: VIRTUAL_KW } ; [ where ] => { $ crate :: SyntaxKind :: WHERE_KW } ; [ while ] => { $ crate :: SyntaxKind :: WHILE_KW } ; [ yield] => { $ crate :: SyntaxKind :: YIELD_KW } ; [ asm] => { $ crate :: SyntaxKind :: ASM_KW } ; [ auto] => { $ crate :: SyntaxKind :: AUTO_KW } ; [ builtin] => { $ crate :: SyntaxKind :: BUILTIN_KW } ; [ default ] => { $ crate :: SyntaxKind :: DEFAULT_KW } ; [ format_args] => { $ crate :: SyntaxKind :: FORMAT_ARGS_KW } ; [ macro_rules] => { $ crate :: SyntaxKind :: MACRO_RULES_KW } ; [ offset_of] => { $ crate :: SyntaxKind :: OFFSET_OF_KW } ; [ raw] => { $ crate :: SyntaxKind :: RAW_KW } ; [ union ] => { $ crate :: SyntaxKind :: UNION_KW } ; [ yeet] => { $ crate :: SyntaxKind :: YEET_KW } ; [ lifetime_ident] => { $ crate :: SyntaxKind :: LIFETIME_IDENT } ; [ int_number] => { $ crate :: SyntaxKind :: INT_NUMBER } ; [ ident] => { $ crate :: SyntaxKind :: IDENT } ; [ shebang] => { $ crate :: SyntaxKind :: SHEBANG } ; }
547
+ macro_rules ! T { [ $] => { $ crate :: SyntaxKind :: DOLLAR } ; [ ; ] => { $ crate :: SyntaxKind :: SEMICOLON } ; [ , ] => { $ crate :: SyntaxKind :: COMMA } ; [ '(' ] => { $ crate :: SyntaxKind :: L_PAREN } ; [ ')' ] => { $ crate :: SyntaxKind :: R_PAREN } ; [ '{' ] => { $ crate :: SyntaxKind :: L_CURLY } ; [ '}' ] => { $ crate :: SyntaxKind :: R_CURLY } ; [ '[' ] => { $ crate :: SyntaxKind :: L_BRACK } ; [ ']' ] => { $ crate :: SyntaxKind :: R_BRACK } ; [ <] => { $ crate :: SyntaxKind :: L_ANGLE } ; [ >] => { $ crate :: SyntaxKind :: R_ANGLE } ; [ @] => { $ crate :: SyntaxKind :: AT } ; [ #] => { $ crate :: SyntaxKind :: POUND } ; [ ~] => { $ crate :: SyntaxKind :: TILDE } ; [ ?] => { $ crate :: SyntaxKind :: QUESTION } ; [ & ] => { $ crate :: SyntaxKind :: AMP } ; [ |] => { $ crate :: SyntaxKind :: PIPE } ; [ +] => { $ crate :: SyntaxKind :: PLUS } ; [ * ] => { $ crate :: SyntaxKind :: STAR } ; [ /] => { $ crate :: SyntaxKind :: SLASH } ; [ ^] => { $ crate :: SyntaxKind :: CARET } ; [ %] => { $ crate :: SyntaxKind :: PERCENT } ; [ _] => { $ crate :: SyntaxKind :: UNDERSCORE } ; [ . ] => { $ crate :: SyntaxKind :: DOT } ; [ ..] => { $ crate :: SyntaxKind :: DOT2 } ; [ ...] => { $ crate :: SyntaxKind :: DOT3 } ; [ ..=] => { $ crate :: SyntaxKind :: DOT2EQ } ; [ : ] => { $ crate :: SyntaxKind :: COLON } ; [ :: ] => { $ crate :: SyntaxKind :: COLON2 } ; [ =] => { $ crate :: SyntaxKind :: EQ } ; [ ==] => { $ crate :: SyntaxKind :: EQ2 } ; [ =>] => { $ crate :: SyntaxKind :: FAT_ARROW } ; [ !] => { $ crate :: SyntaxKind :: BANG } ; [ !=] => { $ crate :: SyntaxKind :: NEQ } ; [ -] => { $ crate :: SyntaxKind :: MINUS } ; [ ->] => { $ crate :: SyntaxKind :: THIN_ARROW } ; [ <=] => { $ crate :: SyntaxKind :: LTEQ } ; [ >=] => { $ crate :: SyntaxKind :: GTEQ } ; [ +=] => { $ crate :: SyntaxKind :: PLUSEQ } ; [ -=] => { $ crate :: SyntaxKind :: MINUSEQ } ; [ |=] => { $ crate :: SyntaxKind :: PIPEEQ } ; [ &=] => { $ crate :: SyntaxKind :: AMPEQ } ; [ ^=] => { $ crate :: SyntaxKind :: CARETEQ } ; [ /=] => { $ crate :: SyntaxKind :: SLASHEQ } ; [ *=] => { $ crate :: SyntaxKind :: STAREQ } ; [ %=] => { $ crate :: SyntaxKind :: PERCENTEQ } ; [ &&] => { $ crate :: SyntaxKind :: AMP2 } ; [ ||] => { $ crate :: SyntaxKind :: PIPE2 } ; [ <<] => { $ crate :: SyntaxKind :: SHL } ; [ >>] => { $ crate :: SyntaxKind :: SHR } ; [ <<=] => { $ crate :: SyntaxKind :: SHLEQ } ; [ >>=] => { $ crate :: SyntaxKind :: SHREQ } ; [ Self ] => { $ crate :: SyntaxKind :: SELF_TYPE_KW } ; [ abstract] => { $ crate :: SyntaxKind :: ABSTRACT_KW } ; [ as ] => { $ crate :: SyntaxKind :: AS_KW } ; [ async ] => { $ crate :: SyntaxKind :: ASYNC_KW } ; [ await ] => { $ crate :: SyntaxKind :: AWAIT_KW } ; [ become] => { $ crate :: SyntaxKind :: BECOME_KW } ; [ box] => { $ crate :: SyntaxKind :: BOX_KW } ; [ break ] => { $ crate :: SyntaxKind :: BREAK_KW } ; [ const ] => { $ crate :: SyntaxKind :: CONST_KW } ; [ continue ] => { $ crate :: SyntaxKind :: CONTINUE_KW } ; [ crate ] => { $ crate :: SyntaxKind :: CRATE_KW } ; [ do] => { $ crate :: SyntaxKind :: DO_KW } ; [ dyn] => { $ crate :: SyntaxKind :: DYN_KW } ; [ else] => { $ crate :: SyntaxKind :: ELSE_KW } ; [ enum ] => { $ crate :: SyntaxKind :: ENUM_KW } ; [ extern] => { $ crate :: SyntaxKind :: EXTERN_KW } ; [ false ] => { $ crate :: SyntaxKind :: FALSE_KW } ; [ final] => { $ crate :: SyntaxKind :: FINAL_KW } ; [ fn ] => { $ crate :: SyntaxKind :: FN_KW } ; [ for ] => { $ crate :: SyntaxKind :: FOR_KW } ; [ gen ] => { $ crate :: SyntaxKind :: GEN_KW } ; [ if ] => { $ crate :: SyntaxKind :: IF_KW } ; [ impl ] => { $ crate :: SyntaxKind :: IMPL_KW } ; [ in] => { $ crate :: SyntaxKind :: IN_KW } ; [ let ] => { $ crate :: SyntaxKind :: LET_KW } ; [ loop ] => { $ crate :: SyntaxKind :: LOOP_KW } ; [ macro] => { $ crate :: SyntaxKind :: MACRO_KW } ; [ match ] => { $ crate :: SyntaxKind :: MATCH_KW } ; [ mod ] => { $ crate :: SyntaxKind :: MOD_KW } ; [ move] => { $ crate :: SyntaxKind :: MOVE_KW } ; [ mut ] => { $ crate :: SyntaxKind :: MUT_KW } ; [ override] => { $ crate :: SyntaxKind :: OVERRIDE_KW } ; [ priv] => { $ crate :: SyntaxKind :: PRIV_KW } ; [ pub ] => { $ crate :: SyntaxKind :: PUB_KW } ; [ ref] => { $ crate :: SyntaxKind :: REF_KW } ; [ return ] => { $ crate :: SyntaxKind :: RETURN_KW } ; [ self ] => { $ crate :: SyntaxKind :: SELF_KW } ; [ static ] => { $ crate :: SyntaxKind :: STATIC_KW } ; [ struct ] => { $ crate :: SyntaxKind :: STRUCT_KW } ; [ super ] => { $ crate :: SyntaxKind :: SUPER_KW } ; [ trait ] => { $ crate :: SyntaxKind :: TRAIT_KW } ; [ true ] => { $ crate :: SyntaxKind :: TRUE_KW } ; [ try] => { $ crate :: SyntaxKind :: TRY_KW } ; [ type ] => { $ crate :: SyntaxKind :: TYPE_KW } ; [ typeof] => { $ crate :: SyntaxKind :: TYPEOF_KW } ; [ unsafe ] => { $ crate :: SyntaxKind :: UNSAFE_KW } ; [ unsized] => { $ crate :: SyntaxKind :: UNSIZED_KW } ; [ use ] => { $ crate :: SyntaxKind :: USE_KW } ; [ virtual] => { $ crate :: SyntaxKind :: VIRTUAL_KW } ; [ where ] => { $ crate :: SyntaxKind :: WHERE_KW } ; [ while ] => { $ crate :: SyntaxKind :: WHILE_KW } ; [ yield] => { $ crate :: SyntaxKind :: YIELD_KW } ; [ asm] => { $ crate :: SyntaxKind :: ASM_KW } ; [ auto] => { $ crate :: SyntaxKind :: AUTO_KW } ; [ builtin] => { $ crate :: SyntaxKind :: BUILTIN_KW } ; [ default ] => { $ crate :: SyntaxKind :: DEFAULT_KW } ; [ format_args] => { $ crate :: SyntaxKind :: FORMAT_ARGS_KW } ; [ macro_rules] => { $ crate :: SyntaxKind :: MACRO_RULES_KW } ; [ offset_of] => { $ crate :: SyntaxKind :: OFFSET_OF_KW } ; [ raw] => { $ crate :: SyntaxKind :: RAW_KW } ; [ union ] => { $ crate :: SyntaxKind :: UNION_KW } ; [ yeet] => { $ crate :: SyntaxKind :: YEET_KW } ; [ lifetime_ident] => { $ crate :: SyntaxKind :: LIFETIME_IDENT } ; [ int_number] => { $ crate :: SyntaxKind :: INT_NUMBER } ; [ ident] => { $ crate :: SyntaxKind :: IDENT } ; [ string] => { $ crate :: SyntaxKind :: STRING } ; [ shebang] => { $ crate :: SyntaxKind :: SHEBANG } ; }
Original file line number Diff line number Diff line change 193
193
(body:BlockExpr | ';')
194
194
195
195
Abi =
196
- 'extern' 'string'?
196
+ 'extern' '@ string'?
197
197
198
198
ParamList =
199
199
'('(
Original file line number Diff line number Diff line change @@ -484,6 +484,7 @@ fn generate_syntax_kinds(grammar: KindsSrc) -> String {
484
484
[ lifetime_ident] => { $crate :: SyntaxKind :: LIFETIME_IDENT } ;
485
485
[ int_number] => { $crate :: SyntaxKind :: INT_NUMBER } ;
486
486
[ ident] => { $crate :: SyntaxKind :: IDENT } ;
487
+ [ string] => { $crate :: SyntaxKind :: STRING } ;
487
488
[ shebang] => { $crate :: SyntaxKind :: SHEBANG } ;
488
489
}
489
490
} ;
You can’t perform that action at this time.
0 commit comments