This revision was automatically updated to reflect the committed changes.
Closed by commit rL296736: [clang-format] Use number of unwrapped lines for 
short namespace (authored by krasimir).

Changed prior to commit:
  https://reviews.llvm.org/D30528?vs=90299&id=90302#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D30528

Files:
  cfe/trunk/lib/Format/NamespaceEndCommentsFixer.cpp
  cfe/trunk/unittests/Format/FormatTest.cpp
  cfe/trunk/unittests/Format/NamespaceEndCommentsFixerTest.cpp

Index: cfe/trunk/lib/Format/NamespaceEndCommentsFixer.cpp
===================================================================
--- cfe/trunk/lib/Format/NamespaceEndCommentsFixer.cpp
+++ cfe/trunk/lib/Format/NamespaceEndCommentsFixer.cpp
@@ -23,7 +23,7 @@
 namespace format {
 
 namespace {
-// The maximal number of lines that a short namespace spans.
+// The maximal number of unwrapped lines that a short namespace spans.
 // Short namespaces don't need an end comment.
 static const int kShortNamespaceMaxLines = 1;
 
@@ -60,14 +60,6 @@
   return text;
 }
 
-bool isShort(const FormatToken *NamespaceTok, const FormatToken *RBraceTok,
-             const SourceManager &SourceMgr) {
-  int StartLine =
-      SourceMgr.getSpellingLineNumber(NamespaceTok->Tok.getLocation());
-  int EndLine = SourceMgr.getSpellingLineNumber(RBraceTok->Tok.getLocation());
-  return EndLine - StartLine + 1 <= kShortNamespaceMaxLines;
-}
-
 bool hasEndComment(const FormatToken *RBraceTok) {
   return RBraceTok->Next && RBraceTok->Next->is(tok::comment);
 }
@@ -151,7 +143,8 @@
     const std::string EndCommentText =
         computeEndCommentText(NamespaceName, AddNewline);
     if (!hasEndComment(RBraceTok)) {
-      if (!isShort(NamespaceTok, RBraceTok, SourceMgr))
+      bool isShort = I - StartLineIndex <= kShortNamespaceMaxLines + 1;
+      if (!isShort)
         addEndComment(RBraceTok, EndCommentText, SourceMgr, &Fixes);
       continue;
     }
Index: cfe/trunk/unittests/Format/FormatTest.cpp
===================================================================
--- cfe/trunk/unittests/Format/FormatTest.cpp
+++ cfe/trunk/unittests/Format/FormatTest.cpp
@@ -185,7 +185,7 @@
   EXPECT_EQ("namespace N {\n"
             "\n"
             "int i;\n"
-            "}  // namespace N",
+            "}",
             format("namespace N {\n"
                    "\n"
                    "int    i;\n"
@@ -281,8 +281,7 @@
                    "}", LLVMWithNoNamespaceFix));
   EXPECT_EQ("namespace {\n"
             "int i;\n"
-            "\n"
-            "} // namespace",
+            "}",
             format("namespace {\n"
                    "int i;\n"
                    "\n"
@@ -5460,7 +5459,7 @@
   EXPECT_EQ("namespace N {\n"
             "void f() {}\n"
             "void g()\n"
-            "}",
+            "} // namespace N",
             format("namespace N  { void f( ) { } void g( ) }"));
 }
 
@@ -6140,8 +6139,8 @@
                "  void f() {}\n"
                "  int *a;\n"
                "};\n"
-               "}\n"
-               "}");
+               "} // namespace b\n"
+               "} // namespace a");
 }
 
 TEST_F(FormatTest, SpecialTokensAtEndOfLine) {
@@ -7934,7 +7933,7 @@
                "struct B {\n"
                "  int x;\n"
                "};\n"
-               "}\n",
+               "} // namespace a\n",
                StroustrupBraceStyle);
 
   verifyFormat("void foo()\n"
Index: cfe/trunk/unittests/Format/NamespaceEndCommentsFixerTest.cpp
===================================================================
--- cfe/trunk/unittests/Format/NamespaceEndCommentsFixerTest.cpp
+++ cfe/trunk/unittests/Format/NamespaceEndCommentsFixerTest.cpp
@@ -47,96 +47,132 @@
 TEST_F(NamespaceEndCommentsFixerTest, AddsEndComment) {
   EXPECT_EQ("namespace {\n"
             "  int i;\n"
+            "  int j;\n"
             "}// namespace",
             fixNamespaceEndComments("namespace {\n"
                                     "  int i;\n"
+                                    "  int j;\n"
                                     "}"));
   EXPECT_EQ("namespace {\n"
             "  int i;\n"
+            "  int j;\n"
             "}// namespace\n",
             fixNamespaceEndComments("namespace {\n"
                                     "  int i;\n"
+                                    "  int j;\n"
                                     "}\n"));
   EXPECT_EQ("namespace A {\n"
             "  int i;\n"
+            "  int j;\n"
             "}// namespace A",
             fixNamespaceEndComments("namespace A {\n"
                                     "  int i;\n"
+                                    "  int j;\n"
                                     "}"));
   EXPECT_EQ("inline namespace A {\n"
             "  int i;\n"
+            "  int j;\n"
             "}// namespace A",
             fixNamespaceEndComments("inline namespace A {\n"
                                     "  int i;\n"
+                                    "  int j;\n"
                                     "}"));
   EXPECT_EQ("namespace ::A {\n"
             "  int i;\n"
+            "  int j;\n"
             "}// namespace ::A",
             fixNamespaceEndComments("namespace ::A {\n"
                                     "  int i;\n"
+                                    "  int j;\n"
                                     "}"));
   EXPECT_EQ("namespace ::A::B {\n"
             "  int i;\n"
+            "  int j;\n"
             "}// namespace ::A::B",
             fixNamespaceEndComments("namespace ::A::B {\n"
                                     "  int i;\n"
+                                    "  int j;\n"
                                     "}"));
   EXPECT_EQ("namespace /**/::/**/A/**/::/**/B/**/ {\n"
             "  int i;\n"
+            "  int j;\n"
             "}// namespace ::A::B",
             fixNamespaceEndComments("namespace /**/::/**/A/**/::/**/B/**/ {\n"
                                     "  int i;\n"
+                                    "  int j;\n"
                                     "}"));
   EXPECT_EQ("namespace A {\n"
             "namespace B {\n"
             "  int i;\n"
+            "}\n"
+            "}// namespace A",
+            fixNamespaceEndComments("namespace A {\n"
+                                    "namespace B {\n"
+                                    "  int i;\n"
+                                    "}\n"
+                                    "}"));
+  EXPECT_EQ("namespace A {\n"
+            "namespace B {\n"
+            "  int i;\n"
+            "  int j;\n"
             "}// namespace B\n"
             "}// namespace A",
             fixNamespaceEndComments("namespace A {\n"
                                     "namespace B {\n"
                                     "  int i;\n"
+                                    "  int j;\n"
                                     "}\n"
                                     "}"));
   EXPECT_EQ("namespace A {\n"
             "  int a;\n"
+            "  int b;\n"
             "}// namespace A\n"
             "namespace B {\n"
             "  int b;\n"
+            "  int a;\n"
             "}// namespace B",
             fixNamespaceEndComments("namespace A {\n"
                                     "  int a;\n"
+                                    "  int b;\n"
                                     "}\n"
                                     "namespace B {\n"
                                     "  int b;\n"
+                                    "  int a;\n"
                                     "}"));
   EXPECT_EQ("namespace A {\n"
             "  int a1;\n"
+            "  int a2;\n"
             "}// namespace A\n"
             "namespace A {\n"
             "  int a2;\n"
+            "  int a1;\n"
             "}// namespace A",
             fixNamespaceEndComments("namespace A {\n"
                                     "  int a1;\n"
+                                    "  int a2;\n"
                                     "}\n"
                                     "namespace A {\n"
                                     "  int a2;\n"
+                                    "  int a1;\n"
                                     "}"));
   EXPECT_EQ("namespace A {\n"
             "  int a;\n"
+            "  int b;\n"
             "}// namespace A\n"
             "// comment about b\n"
             "int b;",
             fixNamespaceEndComments("namespace A {\n"
                                     "  int a;\n"
+                                    "  int b;\n"
                                     "}\n"
                                     "// comment about b\n"
                                     "int b;"));
 
   EXPECT_EQ("namespace A {\n"
             "namespace B {\n"
             "namespace C {\n"
             "namespace D {\n"
-            "}// namespace D\n"
+            "}\n"
             "}// namespace C\n"
             "}// namespace B\n"
             "}// namespace A",
@@ -153,36 +189,44 @@
 TEST_F(NamespaceEndCommentsFixerTest, AddsNewlineIfNeeded) {
   EXPECT_EQ("namespace A {\n"
             "  int i;\n"
+            "  int j;\n"
             "}// namespace A\n"
-            " int j;",
+            " int k;",
             fixNamespaceEndComments("namespace A {\n"
                                     "  int i;\n"
-                                    "} int j;"));
+                                    "  int j;\n"
+                                    "} int k;"));
   EXPECT_EQ("namespace {\n"
             "  int i;\n"
+            "  int j;\n"
             "}// namespace\n"
-            " int j;",
+            " int k;",
             fixNamespaceEndComments("namespace {\n"
                                     "  int i;\n"
-                                    "} int j;"));
+                                    "  int j;\n"
+                                    "} int k;"));
   EXPECT_EQ("namespace A {\n"
             "  int i;\n"
+            "  int j;\n"
             "}// namespace A\n"
             " namespace B {\n"
             "  int j;\n"
+            "  int k;\n"
             "}// namespace B",
             fixNamespaceEndComments("namespace A {\n"
                                     "  int i;\n"
+                                    "  int j;\n"
                                     "} namespace B {\n"
                                     "  int j;\n"
+                                    "  int k;\n"
                                     "}"));
 }
 
 TEST_F(NamespaceEndCommentsFixerTest, DoesNotAddEndCommentForShortNamespace) {
   EXPECT_EQ("namespace {}", fixNamespaceEndComments("namespace {}"));
   EXPECT_EQ("namespace A {}", fixNamespaceEndComments("namespace A {}"));
-  EXPECT_EQ("namespace A { int i; }",
-            fixNamespaceEndComments("namespace A { int i; }"));
+  EXPECT_EQ("namespace A { a }",
+            fixNamespaceEndComments("namespace A { a }"));
 }
 
 TEST_F(NamespaceEndCommentsFixerTest, DoesNotAddCommentAfterUnaffectedRBrace) {
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D30528: [clang-f... Daniel Jasper via Phabricator via cfe-commits
    • [PATCH] D30528: [cl... Krasimir Georgiev via Phabricator via cfe-commits

Reply via email to