diff options
author | Lenko Donchev <lenko.donchev@gmail.com> | 2023-02-01 20:50:41 -0600 |
---|---|---|
committer | Lenko Donchev <lenko.donchev@gmail.com> | 2023-02-04 17:04:09 -0600 |
commit | d9f60052d2471b15417153d3daca8d83d1c44fd4 (patch) | |
tree | ca653b6d47a0c8ffcb81b15f1d439ddc8d9a559e /compiler/rustc_parse/src/parser/generics.rs | |
parent | 3de7d7fb22a579a3d59ddb1c959d1b3da224aafa (diff) | |
download | rust-d9f60052d2471b15417153d3daca8d83d1c44fd4.tar.gz |
Recover from default value for a lifetime in generic parameters.
Diffstat (limited to 'compiler/rustc_parse/src/parser/generics.rs')
-rw-r--r-- | compiler/rustc_parse/src/parser/generics.rs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/compiler/rustc_parse/src/parser/generics.rs b/compiler/rustc_parse/src/parser/generics.rs index 585dfc518b3..23f49ec55a1 100644 --- a/compiler/rustc_parse/src/parser/generics.rs +++ b/compiler/rustc_parse/src/parser/generics.rs @@ -1,5 +1,6 @@ use crate::errors::{ - MultipleWhereClauses, UnexpectedSelfInGenericParameters, WhereClauseBeforeTupleStructBody, + MultipleWhereClauses, UnexpectedDefaultValueForLifetimeInGenericParameters, + UnexpectedSelfInGenericParameters, WhereClauseBeforeTupleStructBody, WhereClauseBeforeTupleStructBodySugg, }; @@ -145,6 +146,20 @@ impl<'a> Parser<'a> { } else { (None, Vec::new()) }; + + if this.check_noexpect(&token::Eq) + && this.look_ahead(1, |t| t.is_lifetime()) + { + let lo = this.token.span; + // Parse `= 'lifetime`. + this.bump(); // `=` + this.bump(); // `'lifetime` + let span = lo.to(this.prev_token.span); + this.sess.emit_err( + UnexpectedDefaultValueForLifetimeInGenericParameters { span }, + ); + } + Some(ast::GenericParam { ident: lifetime.ident, id: lifetime.id, |