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