[clang-tools-extra] 302bc41 - [clang-tidy] `matchesAnyListedTypeName` support non canonical types (#134869)
via cfe-commits
cfe-commits at lists.llvm.org
Sat Apr 12 21:06:51 PDT 2025
Author: Congcong Cai
Date: 2025-04-13T12:06:48+08:00
New Revision: 302bc414103eb6de9c0dce62cfd37bf3ab7e8cbe
URL: https://github.com/llvm/llvm-project/commit/302bc414103eb6de9c0dce62cfd37bf3ab7e8cbe
DIFF: https://github.com/llvm/llvm-project/commit/302bc414103eb6de9c0dce62cfd37bf3ab7e8cbe.diff
LOG: [clang-tidy] `matchesAnyListedTypeName` support non canonical types (#134869)
Added:
Modified:
clang-tools-extra/clang-tidy/utils/Matchers.cpp
clang-tools-extra/clang-tidy/utils/Matchers.h
Removed:
################################################################################
diff --git a/clang-tools-extra/clang-tidy/utils/Matchers.cpp b/clang-tools-extra/clang-tidy/utils/Matchers.cpp
index 7e89cae1c3316..742dc6fda8c92 100644
--- a/clang-tools-extra/clang-tidy/utils/Matchers.cpp
+++ b/clang-tools-extra/clang-tidy/utils/Matchers.cpp
@@ -18,8 +18,9 @@ bool NotIdenticalStatementsPredicate::operator()(
}
MatchesAnyListedTypeNameMatcher::MatchesAnyListedTypeNameMatcher(
- llvm::ArrayRef<StringRef> NameList)
- : NameMatchers(NameList.begin(), NameList.end()) {}
+ llvm::ArrayRef<StringRef> NameList, bool CanonicalTypes)
+ : NameMatchers(NameList.begin(), NameList.end()),
+ CanonicalTypes(CanonicalTypes) {}
MatchesAnyListedTypeNameMatcher::~MatchesAnyListedTypeNameMatcher() = default;
@@ -32,7 +33,7 @@ bool MatchesAnyListedTypeNameMatcher::matches(
PrintingPolicy PrintingPolicyWithSuppressedTag(
Finder->getASTContext().getLangOpts());
- PrintingPolicyWithSuppressedTag.PrintCanonicalTypes = true;
+ PrintingPolicyWithSuppressedTag.PrintCanonicalTypes = CanonicalTypes;
PrintingPolicyWithSuppressedTag.SuppressElaboration = true;
PrintingPolicyWithSuppressedTag.SuppressScope = false;
PrintingPolicyWithSuppressedTag.SuppressTagKeyword = true;
diff --git a/clang-tools-extra/clang-tidy/utils/Matchers.h b/clang-tools-extra/clang-tidy/utils/Matchers.h
index 451c4ce92585b..2b6d377b8fd10 100644
--- a/clang-tools-extra/clang-tidy/utils/Matchers.h
+++ b/clang-tools-extra/clang-tidy/utils/Matchers.h
@@ -172,7 +172,8 @@ AST_MATCHER_P(Stmt, isStatementIdenticalToBoundNode, std::string, ID) {
class MatchesAnyListedTypeNameMatcher
: public ast_matchers::internal::MatcherInterface<QualType> {
public:
- explicit MatchesAnyListedTypeNameMatcher(llvm::ArrayRef<StringRef> NameList);
+ explicit MatchesAnyListedTypeNameMatcher(llvm::ArrayRef<StringRef> NameList,
+ bool CanonicalTypes);
~MatchesAnyListedTypeNameMatcher() override;
bool matches(
const QualType &Node, ast_matchers::internal::ASTMatchFinder *Finder,
@@ -180,13 +181,19 @@ class MatchesAnyListedTypeNameMatcher
private:
std::vector<llvm::Regex> NameMatchers;
+ bool CanonicalTypes;
};
// Returns a matcher that matches QualType against a list of provided regular.
inline ::clang::ast_matchers::internal::Matcher<QualType>
-matchesAnyListedTypeName(llvm::ArrayRef<StringRef> NameList) {
+matchesAnyListedTypeName(llvm::ArrayRef<StringRef> NameList,
+ bool CanonicalTypes) {
return ::clang::ast_matchers::internal::makeMatcher(
- new MatchesAnyListedTypeNameMatcher(NameList));
+ new MatchesAnyListedTypeNameMatcher(NameList, CanonicalTypes));
+}
+inline ::clang::ast_matchers::internal::Matcher<QualType>
+matchesAnyListedTypeName(llvm::ArrayRef<StringRef> NameList) {
+ return matchesAnyListedTypeName(NameList, true);
}
} // namespace clang::tidy::matchers
More information about the cfe-commits
mailing list