File tree Expand file tree Collapse file tree 10 files changed +25
-7
lines changed
hir-ty/src/diagnostics/match_check Expand file tree Collapse file tree 10 files changed +25
-7
lines changed Original file line number Diff line number Diff line change @@ -224,7 +224,7 @@ impl ExprCollector<'_> {
224224
225225 curarg = parser. curarg ;
226226
227- let to_span = |inner_span : rustc_parse_format :: InnerSpan | {
227+ let to_span = |inner_span : std :: ops :: Range < usize > | {
228228 is_direct_literal. then ( || {
229229 TextRange :: new (
230230 inner_span. start . try_into ( ) . unwrap ( ) ,
Original file line number Diff line number Diff line change @@ -214,7 +214,7 @@ pub(crate) fn parse(
214214 } ;
215215 }
216216
217- let to_span = |inner_span : parse :: InnerSpan | {
217+ let to_span = |inner_span : std :: ops :: Range < usize > | {
218218 is_source_literal. then ( || {
219219 TextRange :: new ( inner_span. start . try_into ( ) . unwrap ( ) , inner_span. end . try_into ( ) . unwrap ( ) )
220220 } )
@@ -297,7 +297,7 @@ pub(crate) fn parse(
297297 unfinished_literal. clear ( ) ;
298298 }
299299
300- let span = parser. arg_places . get ( placeholder_index) . and_then ( |& s| to_span ( s) ) ;
300+ let span = parser. arg_places . get ( placeholder_index) . and_then ( |s| to_span ( s. clone ( ) ) ) ;
301301 placeholder_index += 1 ;
302302
303303 let position_span = to_span ( position_span) ;
Original file line number Diff line number Diff line change @@ -301,6 +301,7 @@ impl<'db> MatchCheckCtx<'db> {
301301 // ignore this issue.
302302 Ref => PatKind :: Deref { subpattern : subpatterns. next ( ) . unwrap ( ) } ,
303303 Slice ( _) => unimplemented ! ( ) ,
304+ DerefPattern ( _) => unimplemented ! ( ) ,
304305 & Str ( void) => match void { } ,
305306 Wildcard | NonExhaustive | Hidden | PrivateUninhabited => PatKind :: Wild ,
306307 Never => PatKind :: Never ,
@@ -351,6 +352,7 @@ impl PatCx for MatchCheckCtx<'_> {
351352 } ,
352353 Ref => 1 ,
353354 Slice ( ..) => unimplemented ! ( ) ,
355+ DerefPattern ( ..) => unimplemented ! ( ) ,
354356 Never | Bool ( ..) | IntRange ( ..) | F16Range ( ..) | F32Range ( ..) | F64Range ( ..)
355357 | F128Range ( ..) | Str ( ..) | Opaque ( ..) | NonExhaustive | PrivateUninhabited
356358 | Hidden | Missing | Wildcard => 0 ,
@@ -411,6 +413,7 @@ impl PatCx for MatchCheckCtx<'_> {
411413 }
412414 } ,
413415 Slice ( _) => unreachable ! ( "Found a `Slice` constructor in match checking" ) ,
416+ DerefPattern ( _) => unreachable ! ( "Found a `DerefPattern` constructor in match checking" ) ,
414417 Never | Bool ( ..) | IntRange ( ..) | F16Range ( ..) | F32Range ( ..) | F64Range ( ..)
415418 | F128Range ( ..) | Str ( ..) | Opaque ( ..) | NonExhaustive | PrivateUninhabited
416419 | Hidden | Missing | Wildcard => {
Original file line number Diff line number Diff line change @@ -5789,7 +5789,7 @@ The tracking issue for this feature is: [#120301]
57895789
57905790------------------------
57915791
5792- Add the methods `from_mins`, `from_hours` and `from_days ` to `Duration`.
5792+ Add the methods `from_days` and `from_weeks ` to `Duration`.
57935793"##,
57945794 default_severity: Severity::Allow,
57955795 warn_since: None,
Original file line number Diff line number Diff line change @@ -179,6 +179,15 @@ impl<'a> Converter<'a> {
179179 COMMENT
180180 }
181181
182+ rustc_lexer:: TokenKind :: Frontmatter { has_invalid_preceding_whitespace, invalid_infostring } => {
183+ if * has_invalid_preceding_whitespace {
184+ err = "invalid preceding whitespace for frontmatter opening"
185+ } else if * invalid_infostring {
186+ err = "invalid infostring for frontmatter"
187+ }
188+ FRONTMATTER
189+ }
190+
182191 rustc_lexer:: TokenKind :: Whitespace => WHITESPACE ,
183192
184193 rustc_lexer:: TokenKind :: Ident if token_text == "_" => UNDERSCORE ,
Original file line number Diff line number Diff line change @@ -150,6 +150,7 @@ pub enum SyntaxKind {
150150 STRING ,
151151 COMMENT ,
152152 ERROR ,
153+ FRONTMATTER ,
153154 IDENT ,
154155 LIFETIME_IDENT ,
155156 NEWLINE ,
@@ -483,6 +484,7 @@ impl SyntaxKind {
483484 | YIELD_EXPR
484485 | COMMENT
485486 | ERROR
487+ | FRONTMATTER
486488 | IDENT
487489 | LIFETIME_IDENT
488490 | NEWLINE
@@ -994,7 +996,7 @@ impl SyntaxKind {
994996 }
995997}
996998#[ macro_export]
997- 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 } ; [ 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 } ; [ 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 } ; [ 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 } ; [ 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 } ; [ att_syntax] => { $ crate :: SyntaxKind :: ATT_SYNTAX_KW } ; [ auto] => { $ crate :: SyntaxKind :: AUTO_KW } ; [ builtin] => { $ crate :: SyntaxKind :: BUILTIN_KW } ; [ clobber_abi] => { $ crate :: SyntaxKind :: CLOBBER_ABI_KW } ; [ default ] => { $ crate :: SyntaxKind :: DEFAULT_KW } ; [ dyn] => { $ crate :: SyntaxKind :: DYN_KW } ; [ format_args] => { $ crate :: SyntaxKind :: FORMAT_ARGS_KW } ; [ inlateout] => { $ crate :: SyntaxKind :: INLATEOUT_KW } ; [ inout] => { $ crate :: SyntaxKind :: INOUT_KW } ; [ label] => { $ crate :: SyntaxKind :: LABEL_KW } ; [ lateout] => { $ crate :: SyntaxKind :: LATEOUT_KW } ; [ macro_rules] => { $ crate :: SyntaxKind :: MACRO_RULES_KW } ; [ may_unwind] => { $ crate :: SyntaxKind :: MAY_UNWIND_KW } ; [ nomem] => { $ crate :: SyntaxKind :: NOMEM_KW } ; [ noreturn] => { $ crate :: SyntaxKind :: NORETURN_KW } ; [ nostack] => { $ crate :: SyntaxKind :: NOSTACK_KW } ; [ offset_of] => { $ crate :: SyntaxKind :: OFFSET_OF_KW } ; [ options] => { $ crate :: SyntaxKind :: OPTIONS_KW } ; [ out] => { $ crate :: SyntaxKind :: OUT_KW } ; [ preserves_flags] => { $ crate :: SyntaxKind :: PRESERVES_FLAGS_KW } ; [ pure] => { $ crate :: SyntaxKind :: PURE_KW } ; [ raw] => { $ crate :: SyntaxKind :: RAW_KW } ; [ readonly] => { $ crate :: SyntaxKind :: READONLY_KW } ; [ safe] => { $ crate :: SyntaxKind :: SAFE_KW } ; [ sym] => { $ crate :: SyntaxKind :: SYM_KW } ; [ union ] => { $ crate :: SyntaxKind :: UNION_KW } ; [ yeet] => { $ crate :: SyntaxKind :: YEET_KW } ; [ async ] => { $ crate :: SyntaxKind :: ASYNC_KW } ; [ await ] => { $ crate :: SyntaxKind :: AWAIT_KW } ; [ dyn] => { $ crate :: SyntaxKind :: DYN_KW } ; [ gen ] => { $ crate :: SyntaxKind :: GEN_KW } ; [ try] => { $ crate :: SyntaxKind :: TRY_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 } ; }
999+ 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 } ; [ 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 } ; [ 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 } ; [ 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 } ; [ 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 } ; [ att_syntax] => { $ crate :: SyntaxKind :: ATT_SYNTAX_KW } ; [ auto] => { $ crate :: SyntaxKind :: AUTO_KW } ; [ builtin] => { $ crate :: SyntaxKind :: BUILTIN_KW } ; [ clobber_abi] => { $ crate :: SyntaxKind :: CLOBBER_ABI_KW } ; [ default ] => { $ crate :: SyntaxKind :: DEFAULT_KW } ; [ dyn] => { $ crate :: SyntaxKind :: DYN_KW } ; [ format_args] => { $ crate :: SyntaxKind :: FORMAT_ARGS_KW } ; [ inlateout] => { $ crate :: SyntaxKind :: INLATEOUT_KW } ; [ inout] => { $ crate :: SyntaxKind :: INOUT_KW } ; [ label] => { $ crate :: SyntaxKind :: LABEL_KW } ; [ lateout] => { $ crate :: SyntaxKind :: LATEOUT_KW } ; [ macro_rules] => { $ crate :: SyntaxKind :: MACRO_RULES_KW } ; [ may_unwind] => { $ crate :: SyntaxKind :: MAY_UNWIND_KW } ; [ nomem] => { $ crate :: SyntaxKind :: NOMEM_KW } ; [ noreturn] => { $ crate :: SyntaxKind :: NORETURN_KW } ; [ nostack] => { $ crate :: SyntaxKind :: NOSTACK_KW } ; [ offset_of] => { $ crate :: SyntaxKind :: OFFSET_OF_KW } ; [ options] => { $ crate :: SyntaxKind :: OPTIONS_KW } ; [ out] => { $ crate :: SyntaxKind :: OUT_KW } ; [ preserves_flags] => { $ crate :: SyntaxKind :: PRESERVES_FLAGS_KW } ; [ pure] => { $ crate :: SyntaxKind :: PURE_KW } ; [ raw] => { $ crate :: SyntaxKind :: RAW_KW } ; [ readonly] => { $ crate :: SyntaxKind :: READONLY_KW } ; [ safe] => { $ crate :: SyntaxKind :: SAFE_KW } ; [ sym] => { $ crate :: SyntaxKind :: SYM_KW } ; [ union ] => { $ crate :: SyntaxKind :: UNION_KW } ; [ yeet] => { $ crate :: SyntaxKind :: YEET_KW } ; [ async ] => { $ crate :: SyntaxKind :: ASYNC_KW } ; [ await ] => { $ crate :: SyntaxKind :: AWAIT_KW } ; [ dyn] => { $ crate :: SyntaxKind :: DYN_KW } ; [ gen ] => { $ crate :: SyntaxKind :: GEN_KW } ; [ try] => { $ crate :: SyntaxKind :: TRY_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 } ; [ frontmatter] => { $ crate :: SyntaxKind :: FRONTMATTER } ; }
9981000impl :: core:: marker:: Copy for SyntaxKind { }
9991001impl :: core:: clone:: Clone for SyntaxKind {
10001002 #[ inline]
Original file line number Diff line number Diff line change @@ -173,7 +173,6 @@ fn test_fn_like_macro_clone_raw_ident() {
173173}
174174
175175#[ test]
176- #[ cfg( not( bootstrap) ) ]
177176fn test_fn_like_fn_like_span_join ( ) {
178177 assert_expand (
179178 "fn_like_span_join" ,
@@ -200,7 +199,6 @@ fn test_fn_like_fn_like_span_join() {
200199}
201200
202201#[ test]
203- #[ cfg( not( bootstrap) ) ]
204202fn test_fn_like_fn_like_span_ops ( ) {
205203 assert_expand (
206204 "fn_like_span_ops" ,
Original file line number Diff line number Diff line change @@ -133,6 +133,7 @@ Meta =
133133
134134SourceFile =
135135 '#shebang'?
136+ '#frontmatter'?
136137 Attr*
137138 Item*
138139
Original file line number Diff line number Diff line change @@ -1524,6 +1524,10 @@ impl ast::HasAttrs for SourceFile {}
15241524impl ast:: HasDocComments for SourceFile { }
15251525impl ast:: HasModuleItem for SourceFile { }
15261526impl SourceFile {
1527+ #[ inline]
1528+ pub fn frontmatter_token ( & self ) -> Option < SyntaxToken > {
1529+ support:: token ( & self . syntax , T ! [ frontmatter] )
1530+ }
15271531 #[ inline]
15281532 pub fn shebang_token ( & self ) -> Option < SyntaxToken > { support:: token ( & self . syntax , T ! [ shebang] ) }
15291533}
Original file line number Diff line number Diff line change @@ -670,6 +670,7 @@ fn generate_syntax_kinds(grammar: KindsSrc) -> String {
670670 [ ident] => { $crate :: SyntaxKind :: IDENT } ;
671671 [ string] => { $crate :: SyntaxKind :: STRING } ;
672672 [ shebang] => { $crate :: SyntaxKind :: SHEBANG } ;
673+ [ frontmatter] => { $crate :: SyntaxKind :: FRONTMATTER } ;
673674 }
674675
675676 impl :: core:: marker:: Copy for SyntaxKind { }
You can’t perform that action at this time.
0 commit comments