GNU bug report logs -
#72695
CC Mode 5.35.2 (C++//l); c++-mode misindents 'if constexpr' inside lambdas
Previous Next
Full log
Message #56 received at 72695 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi Alan,
Alan Mackenzie <acm <at> muc.de> writes:
> So, can I close bug#72695 now?
Ah, excuse me. Yes, I do believe so.
>> I'm not sure this is a bug but it is something I noticed by accident:
>
>> (std::visit
>> ([] <typename T>
>> (const T& data)
>> {
>> }));
>
>> ... the { is not an inline-open, but an arglist-cont-nonempty (though,
>> to be clear, the body is indented okay; I've elided it from the example
>> above for that reason).
>
> That is a bug, yes, but a different bug. Could I ask you to raise a new
> Emacs bug report for it, please?
I can do so tomorrow - getting drowsy at this point.
> I think it will require some effort to solve, since it involves "function
> type" constructs inside parentheses, which I think was something new to
> CC Mode with C++20 (but I'm not sure). Rather than just relying on the
> context of the outer (, c-guess-basic-syntax will have to examine the
> contents of (...) to get better analysis.
Hmm, I think this was here in 11 also (and perhaps before, due to the
GNU statement expression extension).
>> Same goes for the (const T& data), which doesn't get indented the same
>> as a 'standalone' lambda, but it does indent the same as one saved into
>> a variable:
>
>> []
>> ()
>> {
>> };
>> auto x =
>> []
>> ()
>> {
>> };
>> auto x =
>> ([]
>> ()
>> {
>> });
>
>> I do not know whether this is correct.
>
> Neither do I, this late at night. ;-) I'll have a look at all these
> examples tomorrow.
:-)
Thanks.
I will file a bug with these tomorrow.
Have a lovely evening!
--
Arsen Arsenović
[signature.asc (application/pgp-signature, inline)]
This bug report was last modified 295 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.