Skip to content

Commit 82e1931

Browse files
authored
[clang-format] Fix a bug in annotating lambda l_square (#95084)
Fixes #95072.
1 parent 8ad82b4 commit 82e1931

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

clang/lib/Format/UnwrappedLineParser.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2257,6 +2257,8 @@ bool UnwrappedLineParser::tryToParseLambda() {
22572257
break;
22582258
case tok::kw_auto:
22592259
case tok::kw_class:
2260+
case tok::kw_struct:
2261+
case tok::kw_union:
22602262
case tok::kw_template:
22612263
case tok::kw_typename:
22622264
case tok::amp:

clang/unittests/Format/TokenAnnotatorTest.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1655,6 +1655,12 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
16551655
EXPECT_TOKEN(Tokens[2], tok::arrow, TT_TrailingReturnArrow);
16561656
EXPECT_TOKEN(Tokens[4], tok::l_brace, TT_LambdaLBrace);
16571657

1658+
Tokens = annotate("[] -> struct S { return {}; }");
1659+
ASSERT_EQ(Tokens.size(), 12u) << Tokens;
1660+
EXPECT_TOKEN(Tokens[0], tok::l_square, TT_LambdaLSquare);
1661+
EXPECT_TOKEN(Tokens[2], tok::arrow, TT_TrailingReturnArrow);
1662+
EXPECT_TOKEN(Tokens[5], tok::l_brace, TT_LambdaLBrace);
1663+
16581664
Tokens = annotate("foo([&](u32 bar) __attribute__((attr)) -> void {});");
16591665
ASSERT_EQ(Tokens.size(), 22u) << Tokens;
16601666
EXPECT_TOKEN(Tokens[2], tok::l_square, TT_LambdaLSquare);

0 commit comments

Comments
 (0)