diff --git a/clang-tools-extra/clang-tidy/misc/UseAnonymousNamespaceCheck.cpp b/clang-tools-extra/clang-tidy/misc/UseAnonymousNamespaceCheck.cpp index 878cba31eb2abf..fdf7828c8c0fd4 100644 --- a/clang-tools-extra/clang-tidy/misc/UseAnonymousNamespaceCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/UseAnonymousNamespaceCheck.cpp @@ -31,33 +31,26 @@ AST_MATCHER(Decl, isInAnonymousNamespace) { } } // namespace -template -void UseAnonymousNamespaceCheck::processMatch(const T *MatchedDecl) { - StringRef Type = llvm::isa(MatchedDecl) ? "variable" : "function"; - diag(MatchedDecl->getLocation(), - "%0 %1 declared 'static', move to anonymous namespace instead") - << Type << MatchedDecl; -} - void UseAnonymousNamespaceCheck::registerMatchers(MatchFinder *Finder) { Finder->addMatcher( functionDecl(isStatic(), unless(anyOf(isInAnonymousNamespace(), isMemberFunction()))) - .bind("func"), + .bind("x"), this); Finder->addMatcher( varDecl(isStatic(), unless(anyOf(isInAnonymousNamespace(), isStaticLocal(), isStaticDataMember()))) - .bind("var"), + .bind("x"), this); } void UseAnonymousNamespaceCheck::check(const MatchFinder::MatchResult &Result) { - if (const auto *MatchedDecl = Result.Nodes.getNodeAs("func")) - processMatch(MatchedDecl); - - if (const auto *MatchedDecl = Result.Nodes.getNodeAs("var")) - processMatch(MatchedDecl); + if (const auto *MatchedDecl = Result.Nodes.getNodeAs("x")) { + StringRef Type = llvm::isa(MatchedDecl) ? "variable" : "function"; + diag(MatchedDecl->getLocation(), + "%0 %1 declared 'static', move to anonymous namespace instead") + << Type << MatchedDecl; + } } } // namespace misc diff --git a/clang-tools-extra/clang-tidy/misc/UseAnonymousNamespaceCheck.h b/clang-tools-extra/clang-tidy/misc/UseAnonymousNamespaceCheck.h index 59c48029711e0c..19d76bfc19f630 100644 --- a/clang-tools-extra/clang-tidy/misc/UseAnonymousNamespaceCheck.h +++ b/clang-tools-extra/clang-tidy/misc/UseAnonymousNamespaceCheck.h @@ -29,9 +29,6 @@ class UseAnonymousNamespaceCheck : public ClangTidyCheck { } void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - -private: - template void processMatch(const T *MatchedDecl); }; } // namespace misc