aboutsummaryrefslogtreecommitdiff
path: root/clang-tools-extra/clang-tidy/readability/StaticDefinitionInAnonymousNamespaceCheck.cpp
diff options
context:
space:
mode:
authorEvgeny Shulgin <izaronplatz@gmail.com>2022-01-26 17:55:14 -0700
committerRichard <legalize@xmission.com>2022-01-26 21:54:17 -0700
commit836950c4e602548e47851b66a261472f124994fa (patch)
tree96a8f8d1a4ce90717521902304db0f43b1601b3b /clang-tools-extra/clang-tidy/readability/StaticDefinitionInAnonymousNamespaceCheck.cpp
parentecb502342cf2b3b4b6dfcd8fe881c596880d1a4a (diff)
downloadllvm-836950c4e602548e47851b66a261472f124994fa.zip
llvm-836950c4e602548e47851b66a261472f124994fa.tar.gz
llvm-836950c4e602548e47851b66a261472f124994fa.tar.bz2
[clang-tidy] Fix nested namespaces in `readability-static-definition-in-anonymous-namespace` check
The check previously inspected only the immediate parent namespace. `static` in a named namespace within an unnamed namespace is still redundant. We will use `Decl::isInAnonymousNamespace()` method that traverses the namespaces hierarchy recursively. Differential Revision: https://reviews.llvm.org/D118010
Diffstat (limited to 'clang-tools-extra/clang-tidy/readability/StaticDefinitionInAnonymousNamespaceCheck.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/readability/StaticDefinitionInAnonymousNamespaceCheck.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/clang-tools-extra/clang-tidy/readability/StaticDefinitionInAnonymousNamespaceCheck.cpp b/clang-tools-extra/clang-tidy/readability/StaticDefinitionInAnonymousNamespaceCheck.cpp
index ef973a1..b76c183 100644
--- a/clang-tools-extra/clang-tidy/readability/StaticDefinitionInAnonymousNamespaceCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/StaticDefinitionInAnonymousNamespaceCheck.cpp
@@ -17,12 +17,16 @@ namespace clang {
namespace tidy {
namespace readability {
+AST_MATCHER(NamedDecl, isInAnonymousNamespace) {
+ return Node.isInAnonymousNamespace();
+}
+
void StaticDefinitionInAnonymousNamespaceCheck::registerMatchers(
MatchFinder *Finder) {
Finder->addMatcher(
namedDecl(anyOf(functionDecl(isDefinition(), isStaticStorageClass()),
varDecl(isDefinition(), isStaticStorageClass())),
- hasParent(namespaceDecl(isAnonymous())))
+ isInAnonymousNamespace())
.bind("static-def"),
this);
}