GNU bug report logs -
#72695
CC Mode 5.35.2 (C++//l); c++-mode misindents 'if constexpr' inside lambdas
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Hi Alan,
Alan Mackenzie <acm <at> muc.de> writes:
> I've now committed a slightly different patch, after noticing and fixing
> another bug.
>
> The bug was that in code like
>
> 1 template <typename T>
> 2 requires requires (T x)
> 3 { x + x; }
> 4 T add(T a, T b)
> 5 {
> 6 return a + b;
> 7 }
>
> , L4, a topmost-intro-cont used to be anchored on the previous
> topmost-intro-cont line, L2, whereas it should be anchored on the
> topmost-intro, L1.
>
> I've now corrected this.
Ah! Good catch.
> I didn't send you yet another patch with request for testing, because
> I've done that rather a lot of late, and I'm confident about the patch.
>
> I haven't yet closed the bug, just in case you wanted to do some final,
> final testing on the committed version. Please let me know what you feel
> about that, so that I can finally close this bug.
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).
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.
But thank you again for working on this!
Have a lovely day.
--
Arsen Arsenović
[signature.asc (application/pgp-signature, inline)]
This bug report was last modified 294 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.