[PATCH] D124351: [Clang] Implement Change scope of lambda trailing-return-type

Corentin Jabot via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 13 05:04:48 PST 2023


cor3ntin added inline comments.


================
Comment at: clang/lib/Parse/ParseExprCXX.cpp:1293
   Actions.PushLambdaScope();
+  Actions.ActOnLambdaIntroducer(Intro, getCurScope());
 
----------------
aaron.ballman wrote:
> Typically, we call an `ActOn` method after having parsed the construct; in this case, we're calling `ActOnLambdaIntroducer()` when it was parsed elsewhere (this is the parsing code for after the introducer). So perhaps this should be moved elsewhere or renamed?
ActOnLambdaExpressionAfterIntroducer?
We are actually acting on the lambda introducer, but it needs to be done in these scopes so it's why its there.


================
Comment at: clang/lib/Parse/ParseExprCXX.cpp:1381
+  SourceLocation MutableLoc;
+  LateParsedAttrList LateParsedAttrs(true);
+
----------------
aaron.ballman wrote:
> This isn't being used?
It used to be! Thanks for catching that


================
Comment at: clang/lib/Parse/ParseExprCXX.cpp:1387-1393
+    // However, because GNU attributes could refer to captured variables,
+    // which only become visible after the mutable keyword is parsed
+    // we delay the parsing of gnu attributes - by reusing the mechanism used
+    // for C++ late method parsing. Note, __declspec attributes do not make
+    // use of late parsing (expressions cannot appear in __declspec arguments),
+    // so only GNU style attributes are affected here.
+    MaybeParseAttributes(PAKM_GNU | PAKM_Declspec, Attributes);
----------------
aaron.ballman wrote:
> The comment doesn't seem to match the code -- this isn't parsing into the late parsed attribute list?
More dead code!


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D124351/new/

https://reviews.llvm.org/D124351



More information about the cfe-commits mailing list