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
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]
// 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
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); };