[llvm-branch-commits] [clang-tools-extra] [clang-tidy] `matchesAnyListedTypeName` support non canonical types (PR #134869)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Apr 8 08:43:35 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-tools-extra
Author: Congcong Cai (HerrCai0907)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/134869.diff
2 Files Affected:
- (modified) clang-tools-extra/clang-tidy/utils/Matchers.cpp (+4-3)
- (modified) clang-tools-extra/clang-tidy/utils/Matchers.h (+10-3)
``````````diff
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
``````````
</details>
https://github.com/llvm/llvm-project/pull/134869
More information about the llvm-branch-commits
mailing list