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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits