diff options
Diffstat (limited to 'src/parse/root.cpp')
-rw-r--r-- | src/parse/root.cpp | 9 |
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 )
|