forked from OSchip/llvm-project
[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 llvm-svn: 222145
This commit is contained in:
parent
0837f63fd2
commit
b23eb5e3f7
|
@ -117,10 +117,18 @@ void NamespaceCommentCheck::check(const MatchFinder::MatchResult &Result) {
|
|||
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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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); };
|
||||
|
|
Loading…
Reference in New Issue