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

In D146535#4210268 <https://reviews.llvm.org/D146535#4210268>, @cor3ntin wrote:

> In D146535#4210198 <https://reviews.llvm.org/D146535#4210198>, @eandrews 
> wrote:
>
>>> Attributes of lambda call operator were evaluated in the context of the 
>>> closure object type rather than its operator,
>>
>> Just for my understanding, what did this affect with regards to the if guard 
>> for assert? CurContext or something else? I suspected it had something to do 
>> with contexts being incorrect but I wasn't familiar enough with the code to 
>> pinpoint where/what exactly.
>
> Exactly `CurContext`. For the purpose of mangling lambda the context needs to 
> be the parent of the lambda class, so `!CurLSI->Lambda->Encloses(CurContext)` 
> - which check that we are actually in the lambda - was (incorrectly) true.
>
> Note that you are right about the assert being fishy to begin with but that's 
> a preexisting thing and i can't quite convince myself than removing it 
> entirely wouldn't break something. That we were in the wrong context is 
> something i broke :(

Thanks for explaining!


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D146535

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to