Author: Owen Pan Date: 2025-06-05T19:55:37-07:00 New Revision: 05c12b228434fea560e6edb25289095b5aa5e10a
URL: https://github.com/llvm/llvm-project/commit/05c12b228434fea560e6edb25289095b5aa5e10a DIFF: https://github.com/llvm/llvm-project/commit/05c12b228434fea560e6edb25289095b5aa5e10a.diff LOG: [clang-format] Handle requires clause following a pointer type (#142893) Fix #142818 Added: Modified: clang/lib/Format/UnwrappedLineParser.cpp clang/unittests/Format/TokenAnnotatorTest.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp index 6c78f0b7dbd91..4acfe0cc50c25 100644 --- a/clang/lib/Format/UnwrappedLineParser.cpp +++ b/clang/lib/Format/UnwrappedLineParser.cpp @@ -3485,6 +3485,7 @@ bool UnwrappedLineParser::parseRequires(bool SeenEqual) { case tok::r_paren: case tok::kw_noexcept: case tok::kw_const: + case tok::star: case tok::amp: // This is a requires clause. parseRequiresClause(RequiresToken); diff --git a/clang/unittests/Format/TokenAnnotatorTest.cpp b/clang/unittests/Format/TokenAnnotatorTest.cpp index 8731dc36d371e..9d62ff8d39a77 100644 --- a/clang/unittests/Format/TokenAnnotatorTest.cpp +++ b/clang/unittests/Format/TokenAnnotatorTest.cpp @@ -1453,6 +1453,15 @@ TEST_F(TokenAnnotatorTest, UnderstandsRequiresClausesAndConcepts) { ASSERT_EQ(Tokens.size(), 17u) << Tokens; EXPECT_TOKEN(Tokens[4], tok::ampamp, TT_PointerOrReference); EXPECT_TOKEN(Tokens[5], tok::kw_requires, TT_RequiresClause); + + Tokens = annotate("auto foo() -> auto *\n" + " requires(not bar)\n" + "{\n" + " return baz;\n" + "}"); + ASSERT_EQ(Tokens.size(), 18u) << Tokens; + EXPECT_TOKEN(Tokens[7], tok::kw_requires, TT_RequiresClause); + EXPECT_TOKEN(Tokens[12], tok::l_brace, TT_FunctionLBrace); } TEST_F(TokenAnnotatorTest, UnderstandsRequiresExpressions) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits