Skip to content

Commit 3db1f31

Browse files
authored
[clang-format] Fix a regression in annotating class decl braces (#93657)
Fixes #93604.
1 parent 1794046 commit 3db1f31

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

clang/lib/Format/UnwrappedLineParser.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4026,6 +4026,9 @@ void UnwrappedLineParser::parseRecord(bool ParseAsExpr) {
40264026
if (AngleNestingLevel == 0) {
40274027
if (FormatTok->is(tok::colon)) {
40284028
IsDerived = true;
4029+
} else if (FormatTok->is(tok::identifier) &&
4030+
FormatTok->Previous->is(tok::coloncolon)) {
4031+
ClassName = FormatTok;
40294032
} else if (FormatTok->is(tok::l_paren) &&
40304033
IsNonMacroIdentifier(FormatTok->Previous)) {
40314034
break;

clang/unittests/Format/TokenAnnotatorTest.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2914,6 +2914,11 @@ TEST_F(TokenAnnotatorTest, BraceKind) {
29142914
EXPECT_BRACE_KIND(Tokens[5], BK_Block);
29152915
EXPECT_BRACE_KIND(Tokens[6], BK_Block);
29162916

2917+
Tokens = annotate("struct Foo<int>::Bar {};");
2918+
ASSERT_EQ(Tokens.size(), 11u) << Tokens;
2919+
EXPECT_BRACE_KIND(Tokens[7], BK_Block);
2920+
EXPECT_BRACE_KIND(Tokens[8], BK_Block);
2921+
29172922
Tokens = annotate("struct Foo<int> : Base {};");
29182923
ASSERT_EQ(Tokens.size(), 11u) << Tokens;
29192924
EXPECT_BRACE_KIND(Tokens[7], BK_Block);

0 commit comments

Comments
 (0)