Skip to content

[clang-tidy] matchesAnyListedTypeName support non canonical types #134869

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

HerrCai0907
Copy link
Contributor

No description provided.

Copy link
Contributor Author

HerrCai0907 commented Apr 8, 2025

@llvmbot
Copy link
Member

llvmbot commented Apr 8, 2025

@llvm/pr-subscribers-clang-tidy

Author: Congcong Cai (HerrCai0907)

Changes

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 --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

@llvmbot
Copy link
Member

llvmbot commented Apr 8, 2025

@llvm/pr-subscribers-clang-tools-extra

Author: Congcong Cai (HerrCai0907)

Changes

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 --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

Base automatically changed from users/ccc04-08-_clang-tidy_nfc_update_test_name_and_config_for_bugprone-unintended-char-ostream-output to main April 8, 2025 15:46
@HerrCai0907 HerrCai0907 force-pushed the users/ccc04-08-_clang-tidy_matchesanylistedtypename_support_non_canonical_types branch from 164409d to 27b7028 Compare April 8, 2025 15:47
Copy link
Contributor Author

HerrCai0907 commented Apr 13, 2025

Merge activity

  • Apr 12, 11:58 PM EDT: A user started a stack merge that includes this pull request via Graphite.
  • Apr 13, 12:01 AM EDT: Graphite rebased this pull request as part of a merge.
  • Apr 13, 12:04 AM EDT: Graphite rebased this pull request as part of a merge.
  • Apr 13, 12:06 AM EDT: A user merged this pull request with Graphite.

@HerrCai0907 HerrCai0907 force-pushed the users/ccc04-08-_clang-tidy_matchesanylistedtypename_support_non_canonical_types branch from 27b7028 to 833d092 Compare April 13, 2025 04:00
@HerrCai0907 HerrCai0907 force-pushed the users/ccc04-08-_clang-tidy_matchesanylistedtypename_support_non_canonical_types branch from 833d092 to 104d0cc Compare April 13, 2025 04:03
@HerrCai0907 HerrCai0907 merged commit 302bc41 into main Apr 13, 2025
7 of 11 checks passed
@HerrCai0907 HerrCai0907 deleted the users/ccc04-08-_clang-tidy_matchesanylistedtypename_support_non_canonical_types branch April 13, 2025 04:06
var-const pushed a commit to ldionne/llvm-project that referenced this pull request Apr 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants