Skip to content

Commit e0f2368

Browse files
authored
[clang-format] Correctly annotate braces in ObjC square brackets (#106654)
See #88238 (comment).
1 parent e6e4291 commit e0f2368

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
@@ -2682,6 +2682,7 @@ void UnwrappedLineParser::parseSquare(bool LambdaIntroducer) {
26822682
break;
26832683
}
26842684
case tok::at:
2685+
case tok::colon:
26852686
nextToken();
26862687
if (FormatTok->is(tok::l_brace)) {
26872688
nextToken();

clang/unittests/Format/TokenAnnotatorTest.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3286,6 +3286,15 @@ TEST_F(TokenAnnotatorTest, BlockLBrace) {
32863286
EXPECT_BRACE_KIND(Tokens[4], BK_Block);
32873287
EXPECT_TOKEN(Tokens[5], tok::l_brace, TT_BlockLBrace);
32883288
EXPECT_BRACE_KIND(Tokens[5], BK_Block);
3289+
3290+
Tokens = annotate("[foo bar:{{0, 1}} baz:baz];",
3291+
getLLVMStyle(FormatStyle::LK_ObjC));
3292+
ASSERT_EQ(Tokens.size(), 17u) << Tokens;
3293+
EXPECT_TOKEN(Tokens[4], tok::l_brace, TT_Unknown); // Not TT_BlockLBrace.
3294+
EXPECT_BRACE_KIND(Tokens[4], BK_Unknown); // Not BK_Block.
3295+
EXPECT_BRACE_KIND(Tokens[5], BK_BracedInit);
3296+
EXPECT_BRACE_KIND(Tokens[9], BK_Unknown); // Not BK_Block.
3297+
EXPECT_BRACE_KIND(Tokens[10], BK_Unknown); // Not BK_Block.
32893298
}
32903299

32913300
TEST_F(TokenAnnotatorTest, SwitchExpression) {

0 commit comments

Comments
 (0)