@@ -222,7 +222,8 @@ impl<'a> Parser<'a> {
222
222
self . parse_use_item ( ) ?
223
223
} else if self . check_fn_front_matter ( def_final, case) {
224
224
// FUNCTION ITEM
225
- let ( ident, sig, generics, body) = self . parse_fn ( attrs, fn_parse_mode, lo, vis) ?;
225
+ let ( ident, sig, generics, body) =
226
+ self . parse_fn ( attrs, fn_parse_mode, lo, vis, case) ?;
226
227
( ident, ItemKind :: Fn ( Box :: new ( Fn { defaultness : def_ ( ) , sig, generics, body } ) ) )
227
228
} else if self . eat_keyword ( kw:: Extern ) {
228
229
if self . eat_keyword ( kw:: Crate ) {
@@ -1793,7 +1794,13 @@ impl<'a> Parser<'a> {
1793
1794
} ;
1794
1795
// We use `parse_fn` to get a span for the function
1795
1796
let fn_parse_mode = FnParseMode { req_name : |_| true , req_body : true } ;
1796
- match self . parse_fn ( & mut AttrVec :: new ( ) , fn_parse_mode, lo, & inherited_vis) {
1797
+ match self . parse_fn (
1798
+ & mut AttrVec :: new ( ) ,
1799
+ fn_parse_mode,
1800
+ lo,
1801
+ & inherited_vis,
1802
+ Case :: Insensitive ,
1803
+ ) {
1797
1804
Ok ( _) => {
1798
1805
let mut err = self . struct_span_err (
1799
1806
lo. to ( self . prev_token . span ) ,
@@ -2114,8 +2121,9 @@ impl<'a> Parser<'a> {
2114
2121
fn_parse_mode : FnParseMode ,
2115
2122
sig_lo : Span ,
2116
2123
vis : & Visibility ,
2124
+ case : Case ,
2117
2125
) -> PResult < ' a , ( Ident , FnSig , Generics , Option < P < Block > > ) > {
2118
- let header = self . parse_fn_front_matter ( vis) ?; // `const ... fn`
2126
+ let header = self . parse_fn_front_matter ( vis, case ) ?; // `const ... fn`
2119
2127
let ident = self . parse_ident ( ) ?; // `foo`
2120
2128
let mut generics = self . parse_generics ( ) ?; // `<'a, T, ...>`
2121
2129
let decl =
@@ -2239,24 +2247,28 @@ impl<'a> Parser<'a> {
2239
2247
///
2240
2248
/// `vis` represents the visibility that was already parsed, if any. Use
2241
2249
/// `Visibility::Inherited` when no visibility is known.
2242
- pub ( super ) fn parse_fn_front_matter ( & mut self , orig_vis : & Visibility ) -> PResult < ' a , FnHeader > {
2250
+ pub ( super ) fn parse_fn_front_matter (
2251
+ & mut self ,
2252
+ orig_vis : & Visibility ,
2253
+ case : Case ,
2254
+ ) -> PResult < ' a , FnHeader > {
2243
2255
let sp_start = self . token . span ;
2244
- let constness = self . parse_constness ( Case :: Insensitive ) ;
2256
+ let constness = self . parse_constness ( case ) ;
2245
2257
2246
2258
let async_start_sp = self . token . span ;
2247
- let asyncness = self . parse_asyncness ( Case :: Insensitive ) ;
2259
+ let asyncness = self . parse_asyncness ( case ) ;
2248
2260
2249
2261
let unsafe_start_sp = self . token . span ;
2250
- let unsafety = self . parse_unsafety ( Case :: Insensitive ) ;
2262
+ let unsafety = self . parse_unsafety ( case ) ;
2251
2263
2252
2264
let ext_start_sp = self . token . span ;
2253
- let ext = self . parse_extern ( Case :: Insensitive ) ;
2265
+ let ext = self . parse_extern ( case ) ;
2254
2266
2255
2267
if let Async :: Yes { span, .. } = asyncness {
2256
2268
self . ban_async_in_2015 ( span) ;
2257
2269
}
2258
2270
2259
- if !self . eat_keyword_case ( kw:: Fn , Case :: Insensitive ) {
2271
+ if !self . eat_keyword_case ( kw:: Fn , case ) {
2260
2272
// It is possible for `expect_one_of` to recover given the contents of
2261
2273
// `self.expected_tokens`, therefore, do not use `self.unexpected()` which doesn't
2262
2274
// account for this.
0 commit comments