@@ -2297,9 +2297,9 @@ impl<'a> Parser<'a> {
2297
2297
// `pub` is added in case users got confused with the ordering like `async pub fn`,
2298
2298
// only if it wasn't preceded by `default` as `default pub` is invalid.
2299
2299
let quals: & [ Symbol ] = if check_pub {
2300
- & [ kw:: Pub , kw:: Const , kw:: Async , kw:: Unsafe , kw:: Extern ]
2300
+ & [ kw:: Pub , kw:: Gen , kw :: Const , kw:: Async , kw:: Unsafe , kw:: Extern ]
2301
2301
} else {
2302
- & [ kw:: Const , kw:: Async , kw:: Unsafe , kw:: Extern ]
2302
+ & [ kw:: Gen , kw :: Const , kw:: Async , kw:: Unsafe , kw:: Extern ]
2303
2303
} ;
2304
2304
self . check_keyword_case ( kw:: Fn , case) // Definitely an `fn`.
2305
2305
// `$qual fn` or `$qual $qual`:
@@ -2353,6 +2353,9 @@ impl<'a> Parser<'a> {
2353
2353
let async_start_sp = self . token . span ;
2354
2354
let asyncness = self . parse_asyncness ( case) ;
2355
2355
2356
+ let _gen_start_sp = self . token . span ;
2357
+ let genness = self . parse_genness ( case) ;
2358
+
2356
2359
let unsafe_start_sp = self . token . span ;
2357
2360
let unsafety = self . parse_unsafety ( case) ;
2358
2361
@@ -2368,6 +2371,10 @@ impl<'a> Parser<'a> {
2368
2371
}
2369
2372
}
2370
2373
2374
+ if let Gen :: Yes { span, .. } = genness {
2375
+ self . sess . emit_err ( errors:: GenBlock { span } ) ;
2376
+ }
2377
+
2371
2378
if !self . eat_keyword_case ( kw:: Fn , case) {
2372
2379
// It is possible for `expect_one_of` to recover given the contents of
2373
2380
// `self.expected_tokens`, therefore, do not use `self.unexpected()` which doesn't
0 commit comments