Author: alexfh
Date: Mon Nov 17 11:32:32 2014
New Revision: 222145

URL: http://llvm.org/viewvc/llvm-project?rev=222145&view=rev
Log:
[clang-tidy] Move the missing namespace comment warnings to the closing brace

Summary:
The google-readability-namespace-comments/llvm-namespace-comment
warnings are quite confusing when they appear at the beginning of a long
namespace and the closing brace is not in sight.

For convenience added notes pointing to the start of the namespace.

Reviewers: klimek

Reviewed By: klimek

Subscribers: curdeius, cfe-commits

Differential Revision: http://reviews.llvm.org/D6251

Modified:
    clang-tools-extra/trunk/clang-tidy/readability/NamespaceCommentCheck.cpp
    clang-tools-extra/trunk/test/clang-tidy/basic.cpp
    
clang-tools-extra/trunk/test/clang-tidy/google-readability-namespace-comments.cpp
    clang-tools-extra/trunk/test/clang-tidy/select-checks.cpp

Modified: 
clang-tools-extra/trunk/clang-tidy/readability/NamespaceCommentCheck.cpp
URL: 
http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/readability/NamespaceCommentCheck.cpp?rev=222145&r1=222144&r2=222145&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/readability/NamespaceCommentCheck.cpp 
(original)
+++ clang-tools-extra/trunk/clang-tidy/readability/NamespaceCommentCheck.cpp 
Mon Nov 17 11:32:32 2014
@@ -117,10 +117,18 @@ void NamespaceCommentCheck::check(const
       NeedLineBreak = false;
   }
 
-  diag(ND->getLocation(), "namespace not terminated with a closing comment")
+  std::string NamespaceName =
+      ND->isAnonymousNamespace()
+          ? "anonymous namespace"
+          : ("namespace '" + ND->getNameAsString() + "'");
+
+  diag(AfterRBrace, "%0 not terminated with a closing comment")
+      << NamespaceName
       << FixItHint::CreateInsertion(AfterRBrace,
                                     std::string(SpacesBeforeComments, ' ') +
                                         getNamespaceComment(ND, 
NeedLineBreak));
+  diag(ND->getLocation(), "%0 starts here", DiagnosticIDs::Note)
+      << NamespaceName;
 }
 
 } // namespace readability

Modified: clang-tools-extra/trunk/test/clang-tidy/basic.cpp
URL: 
http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/basic.cpp?rev=222145&r1=222144&r2=222145&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/basic.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/basic.cpp Mon Nov 17 11:32:32 2014
@@ -2,4 +2,4 @@
 
 namespace i {
 }
-// CHECK: warning: namespace not terminated with a closing comment 
[llvm-namespace-comment]
+// CHECK: warning: namespace 'i' not terminated with a closing comment 
[llvm-namespace-comment]

Modified: 
clang-tools-extra/trunk/test/clang-tidy/google-readability-namespace-comments.cpp
URL: 
http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/google-readability-namespace-comments.cpp?rev=222145&r1=222144&r2=222145&view=diff
==============================================================================
--- 
clang-tools-extra/trunk/test/clang-tidy/google-readability-namespace-comments.cpp
 (original)
+++ 
clang-tools-extra/trunk/test/clang-tidy/google-readability-namespace-comments.cpp
 Mon Nov 17 11:32:32 2014
@@ -1,11 +1,12 @@
 // RUN: $(dirname %s)/check_clang_tidy.sh %s 
google-readability-namespace-comments %t
 // REQUIRES: shell
 
-// CHECK-MESSAGES: :[[@LINE+2]]:11: warning: namespace not terminated with a 
closing comment [google-readability-namespace-comments]
-// CHECK-MESSAGES: :[[@LINE+2]]:11: warning: namespace not terminated with a 
closing comment [google-readability-namespace-comments]
 namespace n1 {
 namespace n2 {
-
+// CHECK-MESSAGES: :[[@LINE+4]]:2: warning: namespace 'n2' not terminated with 
a closing comment [google-readability-namespace-comments]
+// CHECK-MESSAGES: :[[@LINE-2]]:11: note: namespace 'n2' starts here
+// CHECK-MESSAGES: :[[@LINE+3]]:2: warning: namespace 'n1' not terminated with
+// CHECK-MESSAGES: :[[@LINE-5]]:11: note: namespace 'n1' starts here
 }
 }
 // CHECK-FIXES: }  // namespace n2

Modified: clang-tools-extra/trunk/test/clang-tidy/select-checks.cpp
URL: 
http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/select-checks.cpp?rev=222145&r1=222144&r2=222145&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/select-checks.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/select-checks.cpp Mon Nov 17 
11:32:32 2014
@@ -5,7 +5,7 @@
 
 namespace i {
 }
-// CHECK: :[[@LINE-2]]:11: warning: namespace not terminated with a closing 
comment [llvm-namespace-comment]
+// CHECK: :[[@LINE-1]]:2: warning: namespace 'i' not terminated with a closing 
comment [llvm-namespace-comment]
 
 // Expect no warnings from the google-explicit-constructor check:
 class A { A(int i); };


_______________________________________________
cfe-commits mailing list
cfe-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to