Skip to content

Commit 1ccd19c

Browse files
owencatru
authored andcommitted
[clang-format] Correctly annotate braces in ObjC square brackets (#106654)
See #88238 (comment). (cherry picked from commit e0f2368)
1 parent 6f62347 commit 1ccd19c

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

clang/lib/Format/UnwrappedLineParser.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2668,6 +2668,7 @@ void UnwrappedLineParser::parseSquare(bool LambdaIntroducer) {
26682668
break;
26692669
}
26702670
case tok::at:
2671+
case tok::colon:
26712672
nextToken();
26722673
if (FormatTok->is(tok::l_brace)) {
26732674
nextToken();

clang/unittests/Format/TokenAnnotatorTest.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3238,6 +3238,15 @@ TEST_F(TokenAnnotatorTest, BlockLBrace) {
32383238
EXPECT_BRACE_KIND(Tokens[4], BK_Block);
32393239
EXPECT_TOKEN(Tokens[5], tok::l_brace, TT_BlockLBrace);
32403240
EXPECT_BRACE_KIND(Tokens[5], BK_Block);
3241+
3242+
Tokens = annotate("[foo bar:{{0, 1}} baz:baz];",
3243+
getLLVMStyle(FormatStyle::LK_ObjC));
3244+
ASSERT_EQ(Tokens.size(), 17u) << Tokens;
3245+
EXPECT_TOKEN(Tokens[4], tok::l_brace, TT_Unknown); // Not TT_BlockLBrace.
3246+
EXPECT_BRACE_KIND(Tokens[4], BK_Unknown); // Not BK_Block.
3247+
EXPECT_BRACE_KIND(Tokens[5], BK_BracedInit);
3248+
EXPECT_BRACE_KIND(Tokens[9], BK_Unknown); // Not BK_Block.
3249+
EXPECT_BRACE_KIND(Tokens[10], BK_Unknown); // Not BK_Block.
32413250
}
32423251

32433252
TEST_F(TokenAnnotatorTest, SwitchExpression) {

0 commit comments

Comments
 (0)