[PATCH] D119136: [clang] Implement Change scope of lambda trailing-return-type

Chuanqi Xu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 11 19:19:32 PDT 2022


ChuanqiXu accepted this revision.
ChuanqiXu added a comment.
This revision is now accepted and ready to land.

I've tried my best to review this one and it looks good to me basically. Since @aaron.ballman plans to review this one. I think it'd better to wait for this respond.



================
Comment at: clang/lib/Sema/Scope.cpp:72
+  // Lambdas have an extra prototype scope that doesn't add any depth
+  if (flags & FunctionPrototypeScope && !(flags & LambdaScope))
+    PrototypeDepth++;
----------------
cor3ntin wrote:
> ChuanqiXu wrote:
> > cor3ntin wrote:
> > > ChuanqiXu wrote:
> > > > ChuanqiXu wrote:
> > > > > This looks like:
> > > > This isn't addressed. I mean the flags would always be true if the last clause get evaluated.
> > > I'm not sure I understand your point. We are checking that it's a function scope that is not a lambda scope.
> > > They are probably other ways to write that but they aren't clearer
> > I mean the suggested change is equal to the original one and it is shorter. I don't think it would lost any information since they are all in the same line.
> `LambdaScope` is a constant here
> Both `FunctionPrototypeScope` and `FunctionPrototypeScope | LambdaScope` are valid values, and we only want the condition to be true when `flags & FunctionPrototypeScope` is true and `flags & LambdaScope` is false.
> Maybe we misunderstand each other
Oh, sorry, I misread the code. The code now should be correct.


================
Comment at: clang/lib/Sema/SemaLambda.cpp:1127-1132
+      auto it = LSI->DelayedCaptures.end();
+      if (Var)
+        it = llvm::find_if(LSI->DelayedCaptures, [&Var](auto &&Pair) {
+          return Pair.second.Var == Var;
+        });
+      if (it != LSI->DelayedCaptures.end()) {
----------------
I feel like my suggested change is simpler.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D119136



More information about the cfe-commits mailing list