================
@@ -3259,14 +3259,17 @@ class ExpressionParser {
   void parse(int Precedence = 0) {
     // Skip 'return' and ObjC selector colons as they are not part of a binary
     // expression.
-    while (Current && (Current->is(tok::kw_return) ||
-                       (Current->is(tok::colon) &&
-                        Current->isOneOf(TT_ObjCMethodExpr, TT_DictLiteral)))) 
{
+    while (Current && Current != RequiresClauseLimit &&
----------------
abdulm5 wrote:

Good point. I removed the two redundant checks at parse entry. Two boundary 
checks remain: the loop condition prevents a new precedence walk from entering 
the next declaration, while the check immediately after the recursive parse 
stops the current precedence frame when a deeper call reaches the end. The 
consecutive-requires regression exercises this path.

https://github.com/llvm/llvm-project/pull/220792
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to