summaryrefslogtreecommitdiff
path: root/src/parse/root.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse/root.cpp')
-rw-r--r--src/parse/root.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/parse/root.cpp b/src/parse/root.cpp
index dbb079d7..4af5c147 100644
--- a/src/parse/root.cpp
+++ b/src/parse/root.cpp
@@ -178,9 +178,12 @@ void Parse_WhereClause(TokenStream& lex, AST::GenericParams& params)
{
auto lhs = mv$(tok.str());
GET_CHECK_TOK(tok, lex, TOK_COLON);
- GET_CHECK_TOK(tok, lex, TOK_LIFETIME);
- auto rhs = mv$(tok.str());
- params.add_bound( AST::GenericBound::make_Lifetime({lhs, rhs}) );
+ do {
+ GET_CHECK_TOK(tok, lex, TOK_LIFETIME);
+ auto rhs = mv$(tok.str());
+ params.add_bound( AST::GenericBound::make_Lifetime({lhs, rhs}) );
+ } while( GET_TOK(tok, lex) == TOK_PLUS );
+ PUTBACK(tok, lex);
}
// Higher-ranked types/lifetimes
else if( tok.type() == TOK_RWORD_FOR )