Author: Owen Pan Date: 2023-08-16T10:45:54-07:00 New Revision: 063c42e919c01d7e64c1af5a10898fc84b06dfe8
URL: https://github.com/llvm/llvm-project/commit/063c42e919c01d7e64c1af5a10898fc84b06dfe8 DIFF: https://github.com/llvm/llvm-project/commit/063c42e919c01d7e64c1af5a10898fc84b06dfe8.diff LOG: [clang-format] Handle NamespaceMacro string arg for FixNamespaceComments Fixes #63795. Differential Revision: https://reviews.llvm.org/D157568 Added: Modified: clang/lib/Format/NamespaceEndCommentsFixer.cpp clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/NamespaceEndCommentsFixer.cpp b/clang/lib/Format/NamespaceEndCommentsFixer.cpp index 32c2592834555a..4d3bd3b33f0f11 100644 --- a/clang/lib/Format/NamespaceEndCommentsFixer.cpp +++ b/clang/lib/Format/NamespaceEndCommentsFixer.cpp @@ -174,7 +174,7 @@ bool validEndComment(const FormatToken *RBraceTok, StringRef NamespaceName, llvm::Regex::IgnoreCase); static const llvm::Regex NamespaceMacroCommentPattern = llvm::Regex("^/[/*] *(end (of )?)? *(anonymous|unnamed)? *" - "([a-zA-Z0-9_]+)\\(([a-zA-Z0-9:_]*)\\)\\.? *(\\*/)?$", + "([a-zA-Z0-9_]+)\\(([a-zA-Z0-9:_]*|\".+\")\\)\\.? *(\\*/)?$", llvm::Regex::IgnoreCase); SmallVector<StringRef, 8> Groups; diff --git a/clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp b/clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp index 65876a3c668650..ec335c985ebba2 100644 --- a/clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp +++ b/clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp @@ -40,6 +40,18 @@ class NamespaceEndCommentsFixerTest : public ::testing::Test { Code, /*Ranges=*/{1, tooling::Range(0, Code.size())}, Style); } + + bool isFormatted(StringRef Code, const std::vector<tooling::Range> &Ranges, + const FormatStyle &Style = getLLVMStyle()) const { + return clang::format::fixNamespaceEndComments(Style, Code, Ranges, + "<stdin>") + .empty(); + } + + bool isFormatted(StringRef Code, + const FormatStyle &Style = getLLVMStyle()) const { + return isFormatted(Code, {1, tooling::Range(0, Code.size())}, Style); + } }; TEST_F(NamespaceEndCommentsFixerTest, AddsEndComment) { @@ -688,48 +700,34 @@ TEST_F(NamespaceEndCommentsFixerTest, KeepsValidMacroEndComment) { FormatStyle Style = getLLVMStyle(); Style.NamespaceMacros.push_back("TESTSUITE"); - EXPECT_EQ("TESTSUITE() {\n" - "int i;\n" - "} // end anonymous TESTSUITE()", - fixNamespaceEndComments("TESTSUITE() {\n" - "int i;\n" - "} // end anonymous TESTSUITE()", - Style)); - EXPECT_EQ("TESTSUITE(A) {\n" - "int i;\n" - "} /* end of TESTSUITE(A) */", - fixNamespaceEndComments("TESTSUITE(A) {\n" - "int i;\n" - "} /* end of TESTSUITE(A) */", - Style)); - EXPECT_EQ("TESTSUITE(A) {\n" - "int i;\n" - "} // TESTSUITE(A)", - fixNamespaceEndComments("TESTSUITE(A) {\n" - "int i;\n" - "} // TESTSUITE(A)", - Style)); - EXPECT_EQ("TESTSUITE(A::B) {\n" - "int i;\n" - "} // end TESTSUITE(A::B)", - fixNamespaceEndComments("TESTSUITE(A::B) {\n" - "int i;\n" - "} // end TESTSUITE(A::B)", - Style)); - EXPECT_EQ("TESTSUITE(A) {\n" - "int i;\n" - "}; // end TESTSUITE(A)", - fixNamespaceEndComments("TESTSUITE(A) {\n" - "int i;\n" - "}; // end TESTSUITE(A)", - Style)); - EXPECT_EQ("TESTSUITE() {\n" - "int i;\n" - "}; /* unnamed TESTSUITE() */", - fixNamespaceEndComments("TESTSUITE() {\n" - "int i;\n" - "}; /* unnamed TESTSUITE() */", - Style)); + EXPECT_TRUE(isFormatted("TESTSUITE() {\n" + "int i;\n" + "} // end anonymous TESTSUITE()", + Style)); + EXPECT_TRUE(isFormatted("TESTSUITE(A) {\n" + "int i;\n" + "} /* end of TESTSUITE(A) */", + Style)); + EXPECT_TRUE(isFormatted("TESTSUITE(A) {\n" + "int i;\n" + "} // TESTSUITE(A)", + Style)); + EXPECT_TRUE(isFormatted("TESTSUITE(A::B) {\n" + "int i;\n" + "} // end TESTSUITE(A::B)", + Style)); + EXPECT_TRUE(isFormatted("TESTSUITE(A) {\n" + "int i;\n" + "}; // end TESTSUITE(A)", + Style)); + EXPECT_TRUE(isFormatted("TESTSUITE() {\n" + "int i;\n" + "}; /* unnamed TESTSUITE() */", + Style)); + EXPECT_TRUE(isFormatted("TESTSUITE(\"foo\") {\n" + "int i;\n" + "} // TESTSUITE(\"foo\")", + Style)); } TEST_F(NamespaceEndCommentsFixerTest, UpdatesInvalidEndLineComment) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits