forked from OSchip/llvm-project
[clang-format] Fix namespace end comments fixer with anonymous namespaces.
Previously, a strange trailing comment was produced: ``` namespace out { namespace { }} // namespace out:: ``` (mind the "out::"). Reviewed By: MyDeveloperDay, owenpan Differential Revision: https://reviews.llvm.org/D117289
This commit is contained in:
parent
1ef9bfa013
commit
717cd16e85
|
@ -261,7 +261,8 @@ std::pair<tooling::Replacements, unsigned> NamespaceEndCommentsFixer::analyze(
|
|||
updateEndComment(EndCommentPrevTok, std::string(), SourceMgr, &Fixes);
|
||||
}
|
||||
++CompactedNamespacesCount;
|
||||
AllNamespaceNames = "::" + NamespaceName + AllNamespaceNames;
|
||||
if (!NamespaceName.empty())
|
||||
AllNamespaceNames = "::" + NamespaceName + AllNamespaceNames;
|
||||
continue;
|
||||
}
|
||||
NamespaceName += AllNamespaceNames;
|
||||
|
|
|
@ -256,6 +256,15 @@ TEST_F(NamespaceEndCommentsFixerTest, AddsEndComment) {
|
|||
"int j;\n"
|
||||
"};}",
|
||||
CompactNamespacesStyle));
|
||||
EXPECT_EQ("namespace out { namespace {\n"
|
||||
"int i;\n"
|
||||
"int j;\n"
|
||||
"}}// namespace out",
|
||||
fixNamespaceEndComments("namespace out { namespace {\n"
|
||||
"int i;\n"
|
||||
"int j;\n"
|
||||
"}}",
|
||||
CompactNamespacesStyle));
|
||||
|
||||
// Adds an end comment after a semicolon.
|
||||
EXPECT_EQ("namespace {\n"
|
||||
|
@ -609,6 +618,11 @@ TEST_F(NamespaceEndCommentsFixerTest, UpdatesInvalidEndLineComment) {
|
|||
"}// banamespace in\n"
|
||||
"} // namespace out",
|
||||
CompactNamespacesStyle));
|
||||
EXPECT_EQ("namespace out { namespace {\n"
|
||||
"}} // namespace out",
|
||||
fixNamespaceEndComments("namespace out { namespace {\n"
|
||||
"}} // namespace out::",
|
||||
CompactNamespacesStyle));
|
||||
}
|
||||
|
||||
TEST_F(NamespaceEndCommentsFixerTest, UpdatesInvalidMacroEndLineComment) {
|
||||
|
|
Loading…
Reference in New Issue