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