[clang] [clang]: reflection operator parsing for global namespace and primitive types (PR #164692)

Daniel M. Katz via cfe-commits cfe-commits at lists.llvm.org
Wed Oct 22 14:07:06 PDT 2025


================
@@ -1208,6 +1208,13 @@ Parser::ParseCastExpression(CastParseKind ParseKind, bool isAddressOfOperand,
     AllowSuffix = false;
     Res = ParseUnaryExprOrTypeTraitExpression();
     break;
+  case tok::caretcaret: {
+    if (getLangOpts().Reflection) {
----------------
katzdm wrote:

I think you also need the changes to `ParseRHSOfBinaryExpr`: That's where we "reinsert" two `^`-tokens if blocks are enabled. Otherwise, the lexing of `caretcaret` becomes a breaking change for blocks.

https://github.com/llvm/llvm-project/pull/164692


More information about the cfe-commits mailing list