summaryrefslogtreecommitdiff
path: root/compiler/rustc_parse/src/parser/generics.rs
diff options
context:
space:
mode:
authorLenko Donchev <lenko.donchev@gmail.com>2023-02-01 20:50:41 -0600
committerLenko Donchev <lenko.donchev@gmail.com>2023-02-04 17:04:09 -0600
commitd9f60052d2471b15417153d3daca8d83d1c44fd4 (patch)
treeca653b6d47a0c8ffcb81b15f1d439ddc8d9a559e /compiler/rustc_parse/src/parser/generics.rs
parent3de7d7fb22a579a3d59ddb1c959d1b3da224aafa (diff)
downloadrust-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.rs17
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,