Author: Owen Pan Date: 2025-01-30T18:02:40-08:00 New Revision: 4fb80788872e1c1c789fc9a06edd123414a427e6
URL: https://github.com/llvm/llvm-project/commit/4fb80788872e1c1c789fc9a06edd123414a427e6 DIFF: https://github.com/llvm/llvm-project/commit/4fb80788872e1c1c789fc9a06edd123414a427e6.diff LOG: [clang-format] Fix annotation of class name after requires clause (#125019) Uncovered in #124891. Added: Modified: clang/lib/Format/TokenAnnotator.cpp clang/unittests/Format/TokenAnnotatorTest.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index a172df5291ae62..43e983f8d0979f 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -1565,7 +1565,8 @@ class AnnotatingParser { if (const auto *Previous = Tok->Previous; !Previous || (!Previous->isAttribute() && - !Previous->isOneOf(TT_RequiresClause, TT_LeadingJavaAnnotation))) { + !Previous->isOneOf(TT_RequiresClause, TT_LeadingJavaAnnotation, + TT_BinaryOperator))) { Line.MightBeFunctionDecl = true; Tok->MightBeFunctionDeclParen = true; } diff --git a/clang/unittests/Format/TokenAnnotatorTest.cpp b/clang/unittests/Format/TokenAnnotatorTest.cpp index fc77e277947c56..7ad7e7fc529f79 100644 --- a/clang/unittests/Format/TokenAnnotatorTest.cpp +++ b/clang/unittests/Format/TokenAnnotatorTest.cpp @@ -1143,9 +1143,13 @@ TEST_F(TokenAnnotatorTest, UnderstandsRequiresClausesAndConcepts) { EXPECT_TOKEN(Tokens[16], tok::pipepipe, TT_BinaryOperator); EXPECT_TOKEN(Tokens[21], tok::ampamp, TT_BinaryOperator); EXPECT_TOKEN(Tokens[27], tok::ampamp, TT_BinaryOperator); + // Not TT_TrailingAnnotation. + EXPECT_TOKEN(Tokens[28], tok::identifier, TT_Unknown); EXPECT_TOKEN(Tokens[31], tok::greater, TT_TemplateCloser); EXPECT_EQ(Tokens[31]->FakeRParens, 1u); EXPECT_TRUE(Tokens[31]->ClosesRequiresClause); + // Not TT_TrailingAnnotation. + EXPECT_TOKEN(Tokens[33], tok::identifier, TT_Unknown); Tokens = annotate("template<typename T>\n" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits