kuzkry updated this revision to Diff 291468.
kuzkry added a comment.

Formatted code after CI failure.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D87587/new/

https://reviews.llvm.org/D87587

Files:
  clang-tools-extra/unittests/clang-include-fixer/IncludeFixerTest.cpp
  clang/docs/ClangFormatStyleOptions.rst
  clang/include/clang/Format/Format.h
  clang/lib/Format/NamespaceEndCommentsFixer.cpp
  clang/unittests/Format/FormatTest.cpp
  clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp

Index: clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp
===================================================================
--- clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp
+++ clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp
@@ -142,7 +142,7 @@
   EXPECT_EQ("namespace A {\n"
             "namespace B {\n"
             "int i;\n"
-            "}\n"
+            "}// namespace B\n"
             "}// namespace A",
             fixNamespaceEndComments("namespace A {\n"
                                     "namespace B {\n"
@@ -423,8 +423,9 @@
 TEST_F(NamespaceEndCommentsFixerTest, DoesNotAddEndCommentForShortNamespace) {
   EXPECT_EQ("namespace {}", fixNamespaceEndComments("namespace {}"));
   EXPECT_EQ("namespace A {}", fixNamespaceEndComments("namespace A {}"));
-  EXPECT_EQ("namespace A { a }", fixNamespaceEndComments("namespace A { a }"));
-  EXPECT_EQ("namespace A { a };",
+  EXPECT_EQ("namespace A { a }// namespace A",
+            fixNamespaceEndComments("namespace A { a }"));
+  EXPECT_EQ("namespace A { a };// namespace A",
             fixNamespaceEndComments("namespace A { a };"));
 }
 
Index: clang/unittests/Format/FormatTest.cpp
===================================================================
--- clang/unittests/Format/FormatTest.cpp
+++ clang/unittests/Format/FormatTest.cpp
@@ -211,7 +211,7 @@
   EXPECT_EQ("namespace N {\n"
             "\n"
             "int i;\n"
-            "}",
+            "}  // namespace N",
             format("namespace N {\n"
                    "\n"
                    "int    i;\n"
@@ -220,7 +220,7 @@
   EXPECT_EQ("/* something */ namespace N {\n"
             "\n"
             "int i;\n"
-            "}",
+            "}  // namespace N",
             format("/* something */ namespace N {\n"
                    "\n"
                    "int    i;\n"
@@ -229,7 +229,7 @@
   EXPECT_EQ("inline namespace N {\n"
             "\n"
             "int i;\n"
-            "}",
+            "}  // namespace N",
             format("inline namespace N {\n"
                    "\n"
                    "int    i;\n"
@@ -238,7 +238,7 @@
   EXPECT_EQ("/* something */ inline namespace N {\n"
             "\n"
             "int i;\n"
-            "}",
+            "}  // namespace N",
             format("/* something */ inline namespace N {\n"
                    "\n"
                    "int    i;\n"
@@ -247,7 +247,7 @@
   EXPECT_EQ("export namespace N {\n"
             "\n"
             "int i;\n"
-            "}",
+            "}  // namespace N",
             format("export namespace N {\n"
                    "\n"
                    "int    i;\n"
@@ -369,7 +369,7 @@
   EXPECT_EQ("namespace {\n"
             "int i;\n"
             "\n"
-            "}",
+            "} // namespace",
             format("namespace {\n"
                    "int i;\n"
                    "\n"
@@ -8887,7 +8887,7 @@
             format("void  f  (  )  {  if  ( a )  return  }"));
   EXPECT_EQ("namespace N {\n"
             "void f()\n"
-            "}",
+            "} // namespace N",
             format("namespace  N  {  void f()  }"));
   EXPECT_EQ("namespace N {\n"
             "void f() {}\n"
@@ -9839,7 +9839,7 @@
   verifyFormat("namespace Foo\n"
                "{\n"
                "void Bar();\n"
-               "};",
+               "}; // namespace Foo",
                Style);
 }
 
@@ -9872,7 +9872,7 @@
                Style);
   verifyFormat("namespace Foo {\n"
                "void Bar();\n"
-               "};",
+               "}; // namespace Foo",
                Style);
 
   Style.BreakBeforeBraces = FormatStyle::BS_Custom;
@@ -9913,7 +9913,7 @@
   verifyFormat("namespace Foo\n"
                "{\n"
                "void Bar();\n"
-               "};",
+               "}; // namespace Foo",
                Style);
 }
 
Index: clang/lib/Format/NamespaceEndCommentsFixer.cpp
===================================================================
--- clang/lib/Format/NamespaceEndCommentsFixer.cpp
+++ clang/lib/Format/NamespaceEndCommentsFixer.cpp
@@ -24,7 +24,7 @@
 namespace {
 // The maximal number of unwrapped lines that a short namespace spans.
 // Short namespaces don't need an end comment.
-static const int kShortNamespaceMaxLines = 1;
+static const int kShortNamespaceMaxLines = 0;
 
 // Computes the name of a namespace given the namespace token.
 // Returns "" for anonymous namespace.
Index: clang/include/clang/Format/Format.h
===================================================================
--- clang/include/clang/Format/Format.h
+++ clang/include/clang/Format/Format.h
@@ -1380,6 +1380,9 @@
 
   /// If ``true``, clang-format adds missing namespace end comments and
   /// fixes invalid existing ones.
+  ///
+  /// Short namespaces will not be given an end comment, unless the comment
+  /// is invalid in which case it is always fixed.
   /// \code
   ///    true:                                  false:
   ///    namespace a {                  vs.     namespace a {
Index: clang/docs/ClangFormatStyleOptions.rst
===================================================================
--- clang/docs/ClangFormatStyleOptions.rst
+++ clang/docs/ClangFormatStyleOptions.rst
@@ -1611,6 +1611,9 @@
   If ``true``, clang-format adds missing namespace end comments and
   fixes invalid existing ones.
 
+  Short namespaces will not be given an end comment, unless the comment
+  is invalid in which case it is always fixed.
+
   .. code-block:: c++
 
      true:                                  false:
Index: clang-tools-extra/unittests/clang-include-fixer/IncludeFixerTest.cpp
===================================================================
--- clang-tools-extra/unittests/clang-include-fixer/IncludeFixerTest.cpp
+++ clang-tools-extra/unittests/clang-include-fixer/IncludeFixerTest.cpp
@@ -141,7 +141,7 @@
 TEST(IncludeFixer, IncompleteType) {
   EXPECT_EQ(
       "#include \"foo.h\"\n#include <string>\n"
-      "namespace std {\nclass string;\n}\nstd::string foo;\n",
+      "namespace std {\nclass string;\n} // namespace std\nstd::string foo;\n",
       runIncludeFixer("#include \"foo.h\"\n"
                       "namespace std {\nclass string;\n}\nstring foo;\n"));
 
@@ -192,9 +192,9 @@
 }
 
 TEST(IncludeFixer, ScopedNamespaceSymbols) {
-  EXPECT_EQ("#include \"bar.h\"\nnamespace a {\nb::bar b;\n}",
+  EXPECT_EQ("#include \"bar.h\"\nnamespace a {\nb::bar b;\n} // namespace a",
             runIncludeFixer("namespace a {\nb::bar b;\n}"));
-  EXPECT_EQ("#include \"bar.h\"\nnamespace A {\na::b::bar b;\n}",
+  EXPECT_EQ("#include \"bar.h\"\nnamespace A {\na::b::bar b;\n} // namespace A",
             runIncludeFixer("namespace A {\na::b::bar b;\n}"));
   EXPECT_EQ("#include \"bar.h\"\nnamespace a {\nvoid func() { b::bar b; }\n} "
             "// namespace a",
@@ -203,18 +203,21 @@
             runIncludeFixer("namespace A { c::b::bar b; }\n"));
   // FIXME: The header should not be added here. Remove this after we support
   // full match.
-  EXPECT_EQ("#include \"bar.h\"\nnamespace A {\na::b::bar b;\n}",
+  EXPECT_EQ("#include \"bar.h\"\nnamespace A {\na::b::bar b;\n} // namespace A",
             runIncludeFixer("namespace A {\nb::bar b;\n}"));
 
   // Finds candidates for "str::StrCat".
-  EXPECT_EQ("#include \"strcat.h\"\nnamespace foo2 {\nstr::StrCat b;\n}",
+  EXPECT_EQ("#include \"strcat.h\"\n"
+            "namespace foo2 {\nstr::StrCat b;\n} // namespace foo2",
             runIncludeFixer("namespace foo2 {\nstr::StrCat b;\n}"));
   // str::StrCat2 doesn't exist.
   // In these two cases, StrCat2 is a nested class of class str.
-  EXPECT_EQ("#include \"str.h\"\nnamespace foo2 {\nstr::StrCat2 b;\n}",
+  EXPECT_EQ("#include \"str.h\"\n"
+            "namespace foo2 {\nstr::StrCat2 b;\n} // namespace foo2",
             runIncludeFixer("namespace foo2 {\nstr::StrCat2 b;\n}"));
-  EXPECT_EQ("#include \"str.h\"\nnamespace ns {\nstr::StrCat2 b;\n}",
-            runIncludeFixer("namespace ns {\nstr::StrCat2 b;\n}"));
+  EXPECT_EQ(
+      "#include \"str.h\"\nnamespace ns {\nstr::StrCat2 b;\n} // namespace ns",
+      runIncludeFixer("namespace ns {\nstr::StrCat2 b;\n}"));
 }
 
 TEST(IncludeFixer, EnumConstantSymbols) {
@@ -253,21 +256,21 @@
             runIncludeFixer("b::bar b;\n"));
   EXPECT_EQ("#include \"bar.h\"\na::b::bar b;\n",
             runIncludeFixer("a::b::bar b;\n"));
-  EXPECT_EQ("#include \"bar.h\"\na::b::bar b;\n",
-            runIncludeFixer("bar b;\n"));
-  EXPECT_EQ("#include \"bar.h\"\nnamespace a {\nb::bar b;\n}\n",
+  EXPECT_EQ("#include \"bar.h\"\na::b::bar b;\n", runIncludeFixer("bar b;\n"));
+  EXPECT_EQ("#include \"bar.h\"\nnamespace a {\nb::bar b;\n} // namespace a\n",
             runIncludeFixer("namespace a {\nb::bar b;\n}\n"));
-  EXPECT_EQ("#include \"bar.h\"\nnamespace a {\nb::bar b;\n}\n",
+  EXPECT_EQ("#include \"bar.h\"\nnamespace a {\nb::bar b;\n} // namespace a\n",
             runIncludeFixer("namespace a {\nbar b;\n}\n"));
   EXPECT_EQ("#include \"bar.h\"\nnamespace a {\nnamespace b{\nbar b;\n}\n} "
             "// namespace a\n",
             runIncludeFixer("namespace a {\nnamespace b{\nbar b;\n}\n}\n"));
-  EXPECT_EQ("c::b::bar b;\n",
-            runIncludeFixer("c::b::bar b;\n"));
-  EXPECT_EQ("#include \"bar.h\"\nnamespace d {\na::b::bar b;\n}\n",
-            runIncludeFixer("namespace d {\nbar b;\n}\n"));
-  EXPECT_EQ("#include \"bar2.h\"\nnamespace c {\na::c::bar b;\n}\n",
-            runIncludeFixer("namespace c {\nbar b;\n}\n"));
+  EXPECT_EQ("c::b::bar b;\n", runIncludeFixer("c::b::bar b;\n"));
+  EXPECT_EQ(
+      "#include \"bar.h\"\nnamespace d {\na::b::bar b;\n} // namespace d\n",
+      runIncludeFixer("namespace d {\nbar b;\n}\n"));
+  EXPECT_EQ(
+      "#include \"bar2.h\"\nnamespace c {\na::c::bar b;\n} // namespace c\n",
+      runIncludeFixer("namespace c {\nbar b;\n}\n"));
 
   // Test common qualifiers reduction.
   EXPECT_EQ("#include \"bar.h\"\nnamespace a {\nnamespace d {\nb::bar b;\n}\n} "
@@ -278,25 +281,31 @@
             runIncludeFixer("namespace d {\nnamespace a {\nbar b;\n}\n}\n"));
 
   // Test nested classes.
-  EXPECT_EQ("#include \"bar.h\"\nnamespace d {\na::b::bar::t b;\n}\n",
-            runIncludeFixer("namespace d {\nbar::t b;\n}\n"));
-  EXPECT_EQ("#include \"bar.h\"\nnamespace c {\na::b::bar::t b;\n}\n",
-            runIncludeFixer("namespace c {\nbar::t b;\n}\n"));
-  EXPECT_EQ("#include \"bar.h\"\nnamespace a {\nb::bar::t b;\n}\n",
-            runIncludeFixer("namespace a {\nbar::t b;\n}\n"));
+  EXPECT_EQ(
+      "#include \"bar.h\"\nnamespace d {\na::b::bar::t b;\n} // namespace d\n",
+      runIncludeFixer("namespace d {\nbar::t b;\n}\n"));
+  EXPECT_EQ(
+      "#include \"bar.h\"\nnamespace c {\na::b::bar::t b;\n} // namespace c\n",
+      runIncludeFixer("namespace c {\nbar::t b;\n}\n"));
+  EXPECT_EQ(
+      "#include \"bar.h\"\nnamespace a {\nb::bar::t b;\n} // namespace a\n",
+      runIncludeFixer("namespace a {\nbar::t b;\n}\n"));
 
   EXPECT_EQ("#include \"color.h\"\nint test = a::b::Green;\n",
             runIncludeFixer("int test = Green;\n"));
-  EXPECT_EQ("#include \"color.h\"\nnamespace d {\nint test = a::b::Green;\n}\n",
+  EXPECT_EQ("#include \"color.h\"\n"
+            "namespace d {\nint test = a::b::Green;\n} // namespace d\n",
             runIncludeFixer("namespace d {\nint test = Green;\n}\n"));
-  EXPECT_EQ("#include \"color.h\"\nnamespace a {\nint test = b::Green;\n}\n",
+  EXPECT_EQ("#include \"color.h\"\n"
+            "namespace a {\nint test = b::Green;\n} // namespace a\n",
             runIncludeFixer("namespace a {\nint test = Green;\n}\n"));
 
   // Test global scope operator.
   EXPECT_EQ("#include \"bar.h\"\n::a::b::bar b;\n",
             runIncludeFixer("::a::b::bar b;\n"));
-  EXPECT_EQ("#include \"bar.h\"\nnamespace a {\n::a::b::bar b;\n}\n",
-            runIncludeFixer("namespace a {\n::a::b::bar b;\n}\n"));
+  EXPECT_EQ(
+      "#include \"bar.h\"\nnamespace a {\n::a::b::bar b;\n} // namespace a\n",
+      runIncludeFixer("namespace a {\n::a::b::bar b;\n}\n"));
 }
 
 TEST(IncludeFixer, FixNamespaceQualifiersForAllInstances) {
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to