[clang] 05c12b2 - [clang-format] Handle requires clause following a pointer type (#142893)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Jun 5 19:55:42 PDT 2025
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) {
More information about the cfe-commits
mailing list