Revert "[clang-format] Remove empty lines before }[;] // comment"
authorKrasimir Georgiev <krasimir@google.com>
Tue, 27 Mar 2018 13:14:29 +0000 (13:14 +0000)
committerKrasimir Georgiev <krasimir@google.com>
Tue, 27 Mar 2018 13:14:29 +0000 (13:14 +0000)
This reverts commit r327861.

The empty line before namespaces is desired in some places. We need a
better approach to handle this.

llvm-svn: 328621

clang/lib/Format/UnwrappedLineFormatter.cpp
clang/unittests/Format/FormatTest.cpp

index b0da002..2ce39fb 100644 (file)
@@ -1133,12 +1133,8 @@ void UnwrappedLineFormatter::formatFirstToken(const AnnotatedLine &Line,
       std::min(RootToken.NewlinesBefore, Style.MaxEmptyLinesToKeep + 1);
   // Remove empty lines before "}" where applicable.
   if (RootToken.is(tok::r_brace) &&
-      // Look for "}", "} // comment", "};" or "}; // comment".
       (!RootToken.Next ||
-       (RootToken.Next->is(tok::comment) && !RootToken.Next->Next) ||
-       (RootToken.Next->is(tok::semi) &&
-        (!RootToken.Next->Next || (RootToken.Next->Next->is(tok::comment) &&
-                                   !RootToken.Next->Next->Next)))))
+       (RootToken.Next->is(tok::semi) && !RootToken.Next->Next)))
     Newlines = std::min(Newlines, 1u);
   // Remove empty lines at the start of nested blocks (lambdas/arrow functions)
   if (PreviousLine == nullptr && Line.Level > 0)
index 36ed318..c125028 100644 (file)
@@ -276,6 +276,7 @@ TEST_F(FormatTest, RemovesEmptyLines) {
                    "\n"
                    "}"));
 
+  // FIXME: This is slightly inconsistent.
   FormatStyle LLVMWithNoNamespaceFix = getLLVMStyle();
   LLVMWithNoNamespaceFix.FixNamespaceComments = false;
   EXPECT_EQ("namespace {\n"
@@ -294,25 +295,12 @@ TEST_F(FormatTest, RemovesEmptyLines) {
                    "}"));
   EXPECT_EQ("namespace {\n"
             "int i;\n"
-            "};",
-            format("namespace {\n"
-                   "int i;\n"
-                   "\n"
-                   "};"));
-  EXPECT_EQ("namespace {\n"
-            "int i;\n"
+            "\n"
             "} // namespace",
             format("namespace {\n"
                    "int i;\n"
                    "\n"
                    "}  // namespace"));
-  EXPECT_EQ("namespace {\n"
-            "int i;\n"
-            "}; // namespace",
-            format("namespace {\n"
-                   "int i;\n"
-                   "\n"
-                   "};  // namespace"));
 
   FormatStyle Style = getLLVMStyle();
   Style.AllowShortFunctionsOnASingleLine = FormatStyle::SFS_All;