Skip to content

Commit e5b05a5

Browse files
authored
[clang-format] Handle template closer followed by braces (#110971)
Fixes #110968.
1 parent 765d7e7 commit e5b05a5

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

clang/lib/Format/UnwrappedLineParser.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2131,6 +2131,11 @@ void UnwrappedLineParser::parseStructuralElement(
21312131
return;
21322132
}
21332133
break;
2134+
case tok::greater:
2135+
nextToken();
2136+
if (FormatTok->is(tok::l_brace))
2137+
FormatTok->Previous->setFinalizedType(TT_TemplateCloser);
2138+
break;
21342139
default:
21352140
nextToken();
21362141
break;

clang/unittests/Format/TokenAnnotatorTest.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3546,6 +3546,11 @@ TEST_F(TokenAnnotatorTest, TemplateInstantiation) {
35463546
ASSERT_EQ(Tokens.size(), 11u) << Tokens;
35473547
EXPECT_TOKEN(Tokens[2], tok::less, TT_TemplateOpener);
35483548
EXPECT_TOKEN(Tokens[6], tok::greater, TT_TemplateCloser);
3549+
3550+
Tokens = annotate("return std::conditional_t<T::value == U::value, T, U>{};");
3551+
ASSERT_EQ(Tokens.size(), 21u) << Tokens;
3552+
EXPECT_TOKEN(Tokens[4], tok::less, TT_TemplateOpener);
3553+
EXPECT_TOKEN(Tokens[16], tok::greater, TT_TemplateCloser);
35493554
}
35503555

35513556
} // namespace

0 commit comments

Comments
 (0)