https://github.com/joker-eph created 
https://github.com/llvm/llvm-project/pull/96388

Reverts llvm/llvm-project#95025 ; many bots are broken

>From b9ceb93bc8d7fe75365f0d9002ed8b48a0884c85 Mon Sep 17 00:00:00 2001
From: Mehdi Amini <joker....@gmail.com>
Date: Sat, 22 Jun 2024 14:18:31 +0200
Subject: [PATCH] =?UTF-8?q?Revert=20"[clang-format]=20Don't=20count=20temp?=
 =?UTF-8?q?late=20template=20parameter=20as=20declaration=E2=80=A6"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This reverts commit 4a7bf42a9b83144db8a11ac06cce4da21166e6a2.
---
 clang/lib/Format/TokenAnnotator.cpp           | 30 +++++++------------
 clang/unittests/Format/TokenAnnotatorTest.cpp | 17 -----------
 2 files changed, 11 insertions(+), 36 deletions(-)

diff --git a/clang/lib/Format/TokenAnnotator.cpp 
b/clang/lib/Format/TokenAnnotator.cpp
index 89e134144d433..55c5ecee45e0c 100644
--- a/clang/lib/Format/TokenAnnotator.cpp
+++ b/clang/lib/Format/TokenAnnotator.cpp
@@ -127,7 +127,7 @@ class AnnotatingParser {
                    SmallVector<ScopeType> &Scopes)
       : Style(Style), Line(Line), CurrentToken(Line.First), AutoFound(false),
         IsCpp(Style.isCpp()), LangOpts(getFormattingLangOpts(Style)),
-        Keywords(Keywords), Scopes(Scopes), TemplateDeclarationDepth(0) {
+        Keywords(Keywords), Scopes(Scopes) {
     assert(IsCpp == LangOpts.CXXOperatorNames);
     Contexts.push_back(Context(tok::unknown, 1, /*IsExpression=*/false));
     resetTokenMetadata();
@@ -1266,22 +1266,16 @@ class AnnotatingParser {
   }
 
   bool parseTemplateDeclaration() {
-    if (!CurrentToken || CurrentToken->isNot(tok::less))
-      return false;
-
-    CurrentToken->setType(TT_TemplateOpener);
-    next();
-
-    TemplateDeclarationDepth++;
-    const bool WellFormed = parseAngle();
-    TemplateDeclarationDepth--;
-    if (!WellFormed)
-      return false;
-
-    if (CurrentToken && TemplateDeclarationDepth == 0)
-      CurrentToken->Previous->ClosesTemplateDeclaration = true;
-
-    return true;
+    if (CurrentToken && CurrentToken->is(tok::less)) {
+      CurrentToken->setType(TT_TemplateOpener);
+      next();
+      if (!parseAngle())
+        return false;
+      if (CurrentToken)
+        CurrentToken->Previous->ClosesTemplateDeclaration = true;
+      return true;
+    }
+    return false;
   }
 
   bool consumeToken() {
@@ -3097,8 +3091,6 @@ class AnnotatingParser {
   // same decision irrespective of the decisions for tokens leading up to it.
   // Store this information to prevent this from causing exponential runtime.
   llvm::SmallPtrSet<FormatToken *, 16> NonTemplateLess;
-
-  int TemplateDeclarationDepth;
 };
 
 static const int PrecedenceUnaryOperator = prec::PointerToMember + 1;
diff --git a/clang/unittests/Format/TokenAnnotatorTest.cpp 
b/clang/unittests/Format/TokenAnnotatorTest.cpp
index d3b310fe59527..12c4b7fdd5ac2 100644
--- a/clang/unittests/Format/TokenAnnotatorTest.cpp
+++ b/clang/unittests/Format/TokenAnnotatorTest.cpp
@@ -584,23 +584,6 @@ TEST_F(TokenAnnotatorTest, 
UnderstandsNonTemplateAngleBrackets) {
   EXPECT_TOKEN(Tokens[20], tok::greater, TT_BinaryOperator);
 }
 
-TEST_F(TokenAnnotatorTest, UnderstandsTemplateTemplateParameters) {
-  auto Tokens = annotate("template <template <typename...> typename X,\n"
-                         "          template <typename...> class Y,\n"
-                         "          typename... T>\n"
-                         "class A {};");
-  ASSERT_EQ(Tokens.size(), 28u) << Tokens;
-  EXPECT_TOKEN(Tokens[1], tok::less, TT_TemplateOpener);
-  EXPECT_TOKEN(Tokens[3], tok::less, TT_TemplateOpener);
-  EXPECT_TOKEN(Tokens[6], tok::greater, TT_TemplateCloser);
-  EXPECT_FALSE(Tokens[6]->ClosesTemplateDeclaration);
-  EXPECT_TOKEN(Tokens[11], tok::less, TT_TemplateOpener);
-  EXPECT_TOKEN(Tokens[14], tok::greater, TT_TemplateCloser);
-  EXPECT_FALSE(Tokens[14]->ClosesTemplateDeclaration);
-  EXPECT_TOKEN(Tokens[21], tok::greater, TT_TemplateCloser);
-  EXPECT_TRUE(Tokens[21]->ClosesTemplateDeclaration);
-}
-
 TEST_F(TokenAnnotatorTest, UnderstandsWhitespaceSensitiveMacros) {
   FormatStyle Style = getLLVMStyle();
   Style.WhitespaceSensitiveMacros.push_back("FOO");

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to