llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang-format Author: Mehdi Amini (joker-eph) <details> <summary>Changes</summary> Reverts llvm/llvm-project#<!-- -->95025 ; many bots are broken --- Full diff: https://github.com/llvm/llvm-project/pull/96388.diff 2 Files Affected: - (modified) clang/lib/Format/TokenAnnotator.cpp (+11-19) - (modified) clang/unittests/Format/TokenAnnotatorTest.cpp (-17) ``````````diff 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"); `````````` </details> https://github.com/llvm/llvm-project/pull/96388 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits