Skip to content

Commit 8e7271d

Browse files
joker-ephAlexisPerry
authored andcommitted
Revert "[clang-format] Don't count template template parameter as declaration" (llvm#96388)
Reverts llvm#95025 ; many bots are broken
1 parent 2c2af31 commit 8e7271d

File tree

2 files changed

+11
-36
lines changed

2 files changed

+11
-36
lines changed

clang/lib/Format/TokenAnnotator.cpp

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ class AnnotatingParser {
127127
SmallVector<ScopeType> &Scopes)
128128
: Style(Style), Line(Line), CurrentToken(Line.First), AutoFound(false),
129129
IsCpp(Style.isCpp()), LangOpts(getFormattingLangOpts(Style)),
130-
Keywords(Keywords), Scopes(Scopes), TemplateDeclarationDepth(0) {
130+
Keywords(Keywords), Scopes(Scopes) {
131131
assert(IsCpp == LangOpts.CXXOperatorNames);
132132
Contexts.push_back(Context(tok::unknown, 1, /*IsExpression=*/false));
133133
resetTokenMetadata();
@@ -1266,22 +1266,16 @@ class AnnotatingParser {
12661266
}
12671267

12681268
bool parseTemplateDeclaration() {
1269-
if (!CurrentToken || CurrentToken->isNot(tok::less))
1270-
return false;
1271-
1272-
CurrentToken->setType(TT_TemplateOpener);
1273-
next();
1274-
1275-
TemplateDeclarationDepth++;
1276-
const bool WellFormed = parseAngle();
1277-
TemplateDeclarationDepth--;
1278-
if (!WellFormed)
1279-
return false;
1280-
1281-
if (CurrentToken && TemplateDeclarationDepth == 0)
1282-
CurrentToken->Previous->ClosesTemplateDeclaration = true;
1283-
1284-
return true;
1269+
if (CurrentToken && CurrentToken->is(tok::less)) {
1270+
CurrentToken->setType(TT_TemplateOpener);
1271+
next();
1272+
if (!parseAngle())
1273+
return false;
1274+
if (CurrentToken)
1275+
CurrentToken->Previous->ClosesTemplateDeclaration = true;
1276+
return true;
1277+
}
1278+
return false;
12851279
}
12861280

12871281
bool consumeToken() {
@@ -3097,8 +3091,6 @@ class AnnotatingParser {
30973091
// same decision irrespective of the decisions for tokens leading up to it.
30983092
// Store this information to prevent this from causing exponential runtime.
30993093
llvm::SmallPtrSet<FormatToken *, 16> NonTemplateLess;
3100-
3101-
int TemplateDeclarationDepth;
31023094
};
31033095

31043096
static const int PrecedenceUnaryOperator = prec::PointerToMember + 1;

clang/unittests/Format/TokenAnnotatorTest.cpp

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -584,23 +584,6 @@ TEST_F(TokenAnnotatorTest, UnderstandsNonTemplateAngleBrackets) {
584584
EXPECT_TOKEN(Tokens[20], tok::greater, TT_BinaryOperator);
585585
}
586586

587-
TEST_F(TokenAnnotatorTest, UnderstandsTemplateTemplateParameters) {
588-
auto Tokens = annotate("template <template <typename...> typename X,\n"
589-
" template <typename...> class Y,\n"
590-
" typename... T>\n"
591-
"class A {};");
592-
ASSERT_EQ(Tokens.size(), 28u) << Tokens;
593-
EXPECT_TOKEN(Tokens[1], tok::less, TT_TemplateOpener);
594-
EXPECT_TOKEN(Tokens[3], tok::less, TT_TemplateOpener);
595-
EXPECT_TOKEN(Tokens[6], tok::greater, TT_TemplateCloser);
596-
EXPECT_FALSE(Tokens[6]->ClosesTemplateDeclaration);
597-
EXPECT_TOKEN(Tokens[11], tok::less, TT_TemplateOpener);
598-
EXPECT_TOKEN(Tokens[14], tok::greater, TT_TemplateCloser);
599-
EXPECT_FALSE(Tokens[14]->ClosesTemplateDeclaration);
600-
EXPECT_TOKEN(Tokens[21], tok::greater, TT_TemplateCloser);
601-
EXPECT_TRUE(Tokens[21]->ClosesTemplateDeclaration);
602-
}
603-
604587
TEST_F(TokenAnnotatorTest, UnderstandsWhitespaceSensitiveMacros) {
605588
FormatStyle Style = getLLVMStyle();
606589
Style.WhitespaceSensitiveMacros.push_back("FOO");

0 commit comments

Comments
 (0)