rsmith added a comment.

In D95691#2540450 <https://reviews.llvm.org/D95691#2540450>, @rjmccall wrote:

> The patch seems technically okay to me.  Do we need to recognize lambdas in 
> any tentative-parse situations, or is it always the reverse (e.g. recognizing 
> ObjC message sends as not-a-lambda)?

Disambiguation with ObjC message sends never looks past the `]` of the lambda 
introducer, so I think that's fine. And the disambiguation for `[[` won't kick 
in here, because we've already committed to the `[...] [[` introducing a lambda 
before we parse the attributes. The disambiguation for `int a[] = { [n] = 0 };` 
also looks OK: it looks for an `=` after the `]`, which we can still use to 
disambiguate as an array designator rather than a lambda.

I think the error recovery disambiguation logic for `delete [] { return p; } 
();` won't work if the lambda has attributes, but that seems fine: that's a 
best-effort recovery anyway.

> The warning is a bit weird.  If we don't think it's certain that the 
> committee will adopt this syntax, I don't think we should add this patch at 
> all; it is not really acceptable to add it and then treat it as a Clang 
> extension if the committee rejects it.  If we do think it's certain, we 
> should go ahead and consider this a feature of the next major standard.

I think it's quite unlikely that the committee would reject the feature at this 
stage. Seems OK to me to jump the gun slightly and call this a C++23 extension.


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

https://reviews.llvm.org/D95691

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

Reply via email to