Skip to content

Commit 7579787

Browse files
authored
[clang-format] Correctly identify token-pasted record names (#106484)
See #89706 (comment).
1 parent 1991aa6 commit 7579787

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

clang/lib/Format/UnwrappedLineParser.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4029,6 +4029,7 @@ void UnwrappedLineParser::parseRecord(bool ParseAsExpr) {
40294029
}
40304030
break;
40314031
case tok::coloncolon:
4032+
case tok::hashhash:
40324033
break;
40334034
default:
40344035
if (!JSPastExtendsOrImplements && !ClassName &&

clang/unittests/Format/TokenAnnotatorTest.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3246,6 +3246,16 @@ TEST_F(TokenAnnotatorTest, BraceKind) {
32463246
ASSERT_EQ(Tokens.size(), 11u) << Tokens;
32473247
EXPECT_TOKEN(Tokens[7], tok::l_brace, TT_ClassLBrace);
32483248
EXPECT_BRACE_KIND(Tokens[7], BK_Block);
3249+
EXPECT_TOKEN(Tokens[8], tok::r_brace, TT_ClassRBrace);
3250+
EXPECT_BRACE_KIND(Tokens[8], BK_Block);
3251+
3252+
Tokens = annotate("#define FOO(X) \\\n"
3253+
" struct X##_tag_ {};");
3254+
ASSERT_EQ(Tokens.size(), 14u) << Tokens;
3255+
EXPECT_TOKEN(Tokens[10], tok::l_brace, TT_StructLBrace);
3256+
EXPECT_BRACE_KIND(Tokens[10], BK_Block);
3257+
EXPECT_TOKEN(Tokens[11], tok::r_brace, TT_StructRBrace);
3258+
EXPECT_BRACE_KIND(Tokens[11], BK_Block);
32493259
}
32503260

32513261
TEST_F(TokenAnnotatorTest, UnderstandsElaboratedTypeSpecifier) {

0 commit comments

Comments
 (0)