diff options
author | Evgeny Shulgin <izaronplatz@gmail.com> | 2022-01-26 17:55:14 -0700 |
---|---|---|
committer | Richard <legalize@xmission.com> | 2022-01-26 21:54:17 -0700 |
commit | 836950c4e602548e47851b66a261472f124994fa (patch) | |
tree | 96a8f8d1a4ce90717521902304db0f43b1601b3b /clang-tools-extra/clang-tidy/readability/StaticDefinitionInAnonymousNamespaceCheck.cpp | |
parent | ecb502342cf2b3b4b6dfcd8fe881c596880d1a4a (diff) | |
download | llvm-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.cpp | 6 |
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); } |