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