https://github.com/HerrCai0907 updated 
https://github.com/llvm/llvm-project/pull/134869

>From 27b7028cf5e6f287f27eb305f4bde479b8d4fbb6 Mon Sep 17 00:00:00 2001
From: Congcong Cai <congcongcai0...@163.com>
Date: Tue, 8 Apr 2025 15:26:44 +0000
Subject: [PATCH] [clang-tidy] `matchesAnyListedTypeName` support non canonical
 types

---
 clang-tools-extra/clang-tidy/utils/Matchers.cpp |  7 ++++---
 clang-tools-extra/clang-tidy/utils/Matchers.h   | 13 ++++++++++---
 2 files changed, 14 insertions(+), 6 deletions(-)

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

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to