Skip to content

Commit 96839b6

Browse files
owencatru
authored andcommitted
[clang-format] Handle template closer followed by braces (#110971)
Fixes #110968. (cherry picked from commit e5b05a5)
1 parent 16c2aae commit 96839b6

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
@@ -3399,6 +3399,11 @@ TEST_F(TokenAnnotatorTest, TemplateInstantiation) {
33993399
ASSERT_EQ(Tokens.size(), 11u) << Tokens;
34003400
EXPECT_TOKEN(Tokens[2], tok::less, TT_TemplateOpener);
34013401
EXPECT_TOKEN(Tokens[6], tok::greater, TT_TemplateCloser);
3402+
3403+
Tokens = annotate("return std::conditional_t<T::value == U::value, T, U>{};");
3404+
ASSERT_EQ(Tokens.size(), 21u) << Tokens;
3405+
EXPECT_TOKEN(Tokens[4], tok::less, TT_TemplateOpener);
3406+
EXPECT_TOKEN(Tokens[16], tok::greater, TT_TemplateCloser);
34023407
}
34033408

34043409
} // namespace

0 commit comments

Comments
 (0)