[PATCH] D30659: [clang-format] Make NamespaceEndCommentFixer add at most one comment
Krasimir Georgiev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Mar 6 08:39:29 PST 2017
krasimir created this revision.
Herald added a subscriber: klimek.
Until now, NamespaceEndCommentFixer was adding missing comments for every run,
which results in multiple end comments for:
namespace {
int i;
int j;
}
#if A
int a = 1;
#else
int a = 2;
#endif
result before:
namespace {
int i;
int j;
}// namespace // namespace
#if A
int a = 1;
#else
int a = 2;
#endif
result after:
namespace {
int i;
int j;
}// namespace
#if A
int a = 1;
#else
int a = 2;
#endif
https://reviews.llvm.org/D30659
Files:
lib/Format/NamespaceEndCommentsFixer.cpp
unittests/Format/NamespaceEndCommentsFixerTest.cpp
Index: unittests/Format/NamespaceEndCommentsFixerTest.cpp
===================================================================
--- unittests/Format/NamespaceEndCommentsFixerTest.cpp
+++ unittests/Format/NamespaceEndCommentsFixerTest.cpp
@@ -388,6 +388,24 @@
" int i;\n"
"}\n"
"}\n"));
+ EXPECT_EQ("namespace {\n"
+ " int i;\n"
+ " int j;\n"
+ "}// namespace\n"
+ "#if A\n"
+ " int i;\n"
+ "#else\n"
+ " int j;\n"
+ "#endif",
+ fixNamespaceEndComments("namespace {\n"
+ " int i;\n"
+ " int j;\n"
+ "}\n"
+ "#if A\n"
+ " int i;\n"
+ "#else\n"
+ " int j;\n"
+ "#endif"));
}
TEST_F(NamespaceEndCommentsFixerTest,
Index: lib/Format/NamespaceEndCommentsFixer.cpp
===================================================================
--- lib/Format/NamespaceEndCommentsFixer.cpp
+++ lib/Format/NamespaceEndCommentsFixer.cpp
@@ -135,7 +135,9 @@
NamespaceTok = NamespaceTok->getNextNonComment();
if (NamespaceTok->isNot(tok::kw_namespace))
continue;
- const FormatToken *RBraceTok = EndLine->First;
+ FormatToken *RBraceTok = EndLine->First;
+ if (RBraceTok->Finalized) continue;
+ RBraceTok->Finalized = true;
const std::string NamespaceName = computeName(NamespaceTok);
bool AddNewline = (I + 1 < E) &&
AnnotatedLines[I + 1]->First->NewlinesBefore == 0 &&
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D30659.90713.patch
Type: text/x-patch
Size: 1814 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170306/20caedd7/attachment-0001.bin>
More information about the cfe-commits
mailing list