Subject: bug#13367: 24.1; Wrong switch/case indentation inside some c++11 lambdas

From: Alan Mackenzie <[email-masked]>
Date: Mon, 30 Sep 2019 18:59:02 +0000

Hello, Stefan.

On Mon, Sep 30, 2019 at 18:40:59 +0200, Stefan Kangas wrote:
> Denis Zalevskiy <[email-masked]> writes:

> > Just create c++ file and enter:
> >
> > #include <vector>
> > #include <algorithm>
> >
> > int main()
> > {
> >     std::vector<int> v;
> >     std::for_each(v.begin(), v.end(),
> >                   [](int i) {
> >                       switch (i) {
> >                       case 1:
> >                           break; // (1) ok: syntactic symbol is statement-case-intro
> >                       }
> >                   });
> >     auto fn = [](int i) {
> >         switch (i) {
> >         case 1:
> >         break;  // (2) wrong: syntactic symbol is brace-list-entry
> >         }
> >     };
> >
> >     [](int i) {
> >         switch (i) {
> >         case 1:
> >             break; // (3) ok: syntactic symbol is statement-case-intro
> >         }
> >     };
> >     return 0;
> > }
> >
> > So, while (1) and (3) are parsed fine, (2) is parsed in a wrong way.

> I can't reproduce this on current master, so I'm going to assume that
> this has been fixed in the 6 years since this was reported and close
> this bug.

This has been fixed.  I just can't say when and how, without a lot of
work.

> If this is still an issue, please reopen the bug report.

> Best regards,
> Stefan Kangas

-- 
Alan Mackenzie (Nuremberg, Germany).