https://github.com/higher-performance updated https://github.com/llvm/llvm-project/pull/174414
>From 18249a8c53f60a04b5d02590e333f965acb6b8e2 Mon Sep 17 00:00:00 2001 From: higher-performance <[email protected]> Date: Mon, 5 Jan 2026 09:56:39 -0500 Subject: [PATCH] Rename clang::tidy::matchers::matchesAnyListedName() to matchesAnyListedRegexName to clarify that patterns are regular expressions Closes #174229 --- .../bugprone/AssertSideEffectCheck.cpp | 2 +- .../CapturingThisInMemberVariableCheck.cpp | 10 +-- .../clang-tidy/bugprone/EmptyCatchCheck.cpp | 4 +- .../InvalidEnumDefaultInitializationCheck.cpp | 2 +- .../NonZeroEnumToBoolConversionCheck.cpp | 2 +- .../bugprone/OptionalValueConversionCheck.cpp | 74 ++++++++++--------- .../SuspiciousStringviewDataUsageCheck.cpp | 21 +++--- .../bugprone/UnsafeFunctionsCheck.cpp | 3 +- .../UnusedLocalNonTrivialVariableCheck.cpp | 14 ++-- .../bugprone/UnusedReturnValueCheck.cpp | 24 +++--- .../clang-tidy/bugprone/UseAfterMoveCheck.cpp | 13 ++-- .../NoSuspendWithLockCheck.cpp | 2 +- ...undsAvoidUncheckedContainerAccessCheck.cpp | 2 +- .../clang-tidy/misc/ConstCorrectnessCheck.cpp | 4 +- .../OverrideWithDifferentVisibilityCheck.cpp | 2 +- .../modernize/UseStdFormatCheck.cpp | 2 +- .../clang-tidy/modernize/UseStdPrintCheck.cpp | 4 +- .../clang-tidy/performance/EnumSizeCheck.cpp | 2 +- .../performance/ForRangeCopyCheck.cpp | 2 +- .../performance/NoAutomaticMoveCheck.cpp | 2 +- .../UnnecessaryCopyInitializationCheck.cpp | 6 +- .../UnnecessaryValueParamCheck.cpp | 10 +-- .../readability/ContainerDataPointerCheck.cpp | 2 +- .../readability/ContainerSizeEmptyCheck.cpp | 15 ++-- .../readability/RedundantParenthesesCheck.cpp | 14 ++-- .../readability/RedundantStringCStrCheck.cpp | 10 +-- clang-tools-extra/clang-tidy/utils/Matchers.h | 2 +- 27 files changed, 128 insertions(+), 122 deletions(-) diff --git a/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp index 632f536a5b20b..6eadae21fae2f 100644 --- a/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp @@ -104,7 +104,7 @@ void AssertSideEffectCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { void AssertSideEffectCheck::registerMatchers(MatchFinder *Finder) { auto IgnoredFunctionsMatcher = - matchers::matchesAnyListedName(IgnoredFunctions); + matchers::matchesAnyListedRegexName(IgnoredFunctions); auto DescendantWithSideEffect = traverse(TK_AsIs, hasDescendant(expr(hasSideEffect( diff --git a/clang-tools-extra/clang-tidy/bugprone/CapturingThisInMemberVariableCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/CapturingThisInMemberVariableCheck.cpp index 6aed454813a22..5adf8f97ee8f0 100644 --- a/clang-tools-extra/clang-tidy/bugprone/CapturingThisInMemberVariableCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/CapturingThisInMemberVariableCheck.cpp @@ -85,7 +85,7 @@ void CapturingThisInMemberVariableCheck::storeOptions( void CapturingThisInMemberVariableCheck::registerMatchers(MatchFinder *Finder) { auto IsStdFunctionField = fieldDecl(hasType(cxxRecordDecl( - matchers::matchesAnyListedName(FunctionWrapperTypes)))) + matchers::matchesAnyListedRegexName(FunctionWrapperTypes)))) .bind("field"); auto CaptureThis = lambdaCapture(anyOf( // [this] @@ -96,10 +96,10 @@ void CapturingThisInMemberVariableCheck::registerMatchers(MatchFinder *Finder) { lambdaExpr(hasAnyCapture(CaptureThis)).bind("lambda"); auto IsBindCapturingThis = - callExpr( - callee(functionDecl(matchers::matchesAnyListedName(BindFunctions)) - .bind("callee")), - hasAnyArgument(cxxThisExpr())) + callExpr(callee(functionDecl( + matchers::matchesAnyListedRegexName(BindFunctions)) + .bind("callee")), + hasAnyArgument(cxxThisExpr())) .bind("bind"); auto IsInitWithLambdaOrBind = diff --git a/clang-tools-extra/clang-tidy/bugprone/EmptyCatchCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/EmptyCatchCheck.cpp index 5dd2f62504c71..a2a60233d0e05 100644 --- a/clang-tools-extra/clang-tidy/bugprone/EmptyCatchCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/EmptyCatchCheck.cpp @@ -77,8 +77,8 @@ std::optional<TraversalKind> EmptyCatchCheck::getCheckTraversalKind() const { } void EmptyCatchCheck::registerMatchers(MatchFinder *Finder) { - auto AllowedNamedExceptionDecl = - namedDecl(matchers::matchesAnyListedName(AllowEmptyCatchForExceptions)); + auto AllowedNamedExceptionDecl = namedDecl( + matchers::matchesAnyListedRegexName(AllowEmptyCatchForExceptions)); auto AllowedNamedExceptionTypes = qualType(anyOf(hasDeclaration(AllowedNamedExceptionDecl), references(AllowedNamedExceptionDecl), diff --git a/clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp index f3e94b62f0dbd..65efb9adff3ac 100644 --- a/clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp @@ -108,7 +108,7 @@ void InvalidEnumDefaultInitializationCheck::registerMatchers( MatchFinder *Finder) { auto EnumWithoutZeroValue = enumType(hasDeclaration( enumDecl(isCompleteAndHasNoZeroValue(), - unless(matchers::matchesAnyListedName(IgnoredEnums))) + unless(matchers::matchesAnyListedRegexName(IgnoredEnums))) .bind("enum"))); auto EnumOrArrayOfEnum = qualType(hasUnqualifiedDesugaredType( anyOf(EnumWithoutZeroValue, diff --git a/clang-tools-extra/clang-tidy/bugprone/NonZeroEnumToBoolConversionCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/NonZeroEnumToBoolConversionCheck.cpp index 127af2725cf1e..f2fc1e1832133 100644 --- a/clang-tools-extra/clang-tidy/bugprone/NonZeroEnumToBoolConversionCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/NonZeroEnumToBoolConversionCheck.cpp @@ -58,7 +58,7 @@ void NonZeroEnumToBoolConversionCheck::registerMatchers(MatchFinder *Finder) { hasSourceExpression( expr(hasType(qualType(hasCanonicalType(hasDeclaration( enumDecl(isCompleteAndHasNoZeroValue(), - unless(matchers::matchesAnyListedName( + unless(matchers::matchesAnyListedRegexName( EnumIgnoreList))) .bind("enum"))))), unless(declRefExpr(to(enumConstantDecl()))), diff --git a/clang-tools-extra/clang-tidy/bugprone/OptionalValueConversionCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/OptionalValueConversionCheck.cpp index 19b4fc1c044df..c1264d03a9009 100644 --- a/clang-tools-extra/clang-tidy/bugprone/OptionalValueConversionCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/OptionalValueConversionCheck.cpp @@ -51,10 +51,10 @@ OptionalValueConversionCheck::getCheckTraversalKind() const { } void OptionalValueConversionCheck::registerMatchers(MatchFinder *Finder) { - auto BindOptionalType = qualType( - hasCleanType(qualType(hasDeclaration(namedDecl( - matchers::matchesAnyListedName(OptionalTypes)))) - .bind("optional-type"))); + auto BindOptionalType = qualType(hasCleanType( + qualType(hasDeclaration(namedDecl( + matchers::matchesAnyListedRegexName(OptionalTypes)))) + .bind("optional-type"))); auto EqualsBoundOptionalType = qualType(hasCleanType(equalsBoundNode("optional-type"))); @@ -64,10 +64,11 @@ void OptionalValueConversionCheck::registerMatchers(MatchFinder *Finder) { cxxOperatorCallExpr(hasOverloadedOperatorName("*"), hasUnaryOperand(hasType(EqualsBoundOptionalType))) .bind("op-call"), - cxxMemberCallExpr(thisPointerType(EqualsBoundOptionalType), - callee(cxxMethodDecl(anyOf( - hasOverloadedOperatorName("*"), - matchers::matchesAnyListedName(ValueMethods))))) + cxxMemberCallExpr( + thisPointerType(EqualsBoundOptionalType), + callee(cxxMethodDecl( + anyOf(hasOverloadedOperatorName("*"), + matchers::matchesAnyListedRegexName(ValueMethods))))) .bind("member-call")), hasType(qualType().bind("value-type"))); @@ -78,34 +79,35 @@ void OptionalValueConversionCheck::registerMatchers(MatchFinder *Finder) { ignoringImpCasts(anyOf(OptionalDerefMatcherImpl, StdMoveCallMatcher)); Finder->addMatcher( - expr(anyOf( - // construct optional - cxxConstructExpr(argumentCountIs(1), hasType(BindOptionalType), - hasArgument(0, OptionalDerefMatcher)), - // known template methods in std - callExpr( - argumentCountIs(1), - anyOf( - // match std::make_unique std::make_shared - callee(functionDecl( - matchers::matchesAnyListedName(MakeSmartPtrList), - hasTemplateArgument( - 0, refersToType(BindOptionalType)))), - // match first std::make_optional by limit argument count - // (1) and template count (1). - // 1. template< class T > constexpr - // std::optional<decay_t<T>> make_optional(T&& value); - // 2. template< class T, class... Args > constexpr - // std::optional<T> make_optional(Args&&... args); - callee(functionDecl(templateArgumentCountIs(1), - hasName(MakeOptional), - returns(BindOptionalType)))), - hasArgument(0, OptionalDerefMatcher)), - callExpr(argumentCountIs(1), - - hasArgument(0, OptionalDerefMatcher))), - unless(anyOf(hasAncestor(typeLoc()), - hasAncestor(expr(matchers::hasUnevaluatedContext()))))) + expr( + anyOf( + // construct optional + cxxConstructExpr(argumentCountIs(1), hasType(BindOptionalType), + hasArgument(0, OptionalDerefMatcher)), + // known template methods in std + callExpr( + argumentCountIs(1), + anyOf( + // match std::make_unique std::make_shared + callee(functionDecl( + matchers::matchesAnyListedRegexName(MakeSmartPtrList), + hasTemplateArgument(0, + refersToType(BindOptionalType)))), + // match first std::make_optional by limit argument count + // (1) and template count (1). + // 1. template< class T > constexpr + // std::optional<decay_t<T>> make_optional(T&& value); + // 2. template< class T, class... Args > constexpr + // std::optional<T> make_optional(Args&&... args); + callee(functionDecl(templateArgumentCountIs(1), + hasName(MakeOptional), + returns(BindOptionalType)))), + hasArgument(0, OptionalDerefMatcher)), + callExpr(argumentCountIs(1), + + hasArgument(0, OptionalDerefMatcher))), + unless(anyOf(hasAncestor(typeLoc()), + hasAncestor(expr(matchers::hasUnevaluatedContext()))))) .bind("expr"), this); } diff --git a/clang-tools-extra/clang-tidy/bugprone/SuspiciousStringviewDataUsageCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SuspiciousStringviewDataUsageCheck.cpp index cb379769120f4..342a6e8480fa7 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousStringviewDataUsageCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousStringviewDataUsageCheck.cpp @@ -48,9 +48,9 @@ void SuspiciousStringviewDataUsageCheck::registerMatchers(MatchFinder *Finder) { initListExpr( hasType(qualType(hasCanonicalType(hasDeclaration(recordDecl())))))); - auto DataMethod = - cxxMethodDecl(hasName("data"), - ofClass(matchers::matchesAnyListedName(StringViewTypes))); + auto DataMethod = cxxMethodDecl( + hasName("data"), + ofClass(matchers::matchesAnyListedRegexName(StringViewTypes))); auto SizeCall = cxxMemberCallExpr( callee(cxxMethodDecl(hasAnyName("size", "length"))), @@ -73,13 +73,14 @@ void SuspiciousStringviewDataUsageCheck::registerMatchers(MatchFinder *Finder) { ignoringParenImpCasts(equalsBoundNode("data-call"))), unless(hasAnyArgument(ignoringParenImpCasts(SizeCall))), unless(hasAnyArgument(DescendantSizeCall)), - hasDeclaration(namedDecl( - unless(matchers::matchesAnyListedName(AllowedCallees))))), - initListExpr(expr().bind("parent"), - hasType(qualType(hasCanonicalType(hasDeclaration( - recordDecl(unless(matchers::matchesAnyListedName( - AllowedCallees))))))), - unless(DescendantSizeCall)))))), + hasDeclaration(namedDecl(unless( + matchers::matchesAnyListedRegexName(AllowedCallees))))), + initListExpr( + expr().bind("parent"), + hasType(qualType(hasCanonicalType(hasDeclaration( + recordDecl(unless(matchers::matchesAnyListedRegexName( + AllowedCallees))))))), + unless(DescendantSizeCall)))))), this); } diff --git a/clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp index 52bb355ad44d0..87d36e3c8c575 100644 --- a/clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp @@ -247,7 +247,8 @@ void UnsafeFunctionsCheck::registerMatchers(MatchFinder *Finder) { for (const auto &Entry : CustomFunctions) FunctionNames.emplace_back(Entry.Name); - auto CustomFunctionsMatcher = matchers::matchesAnyListedName(FunctionNames); + auto CustomFunctionsMatcher = + matchers::matchesAnyListedRegexName(FunctionNames); Finder->addMatcher(declRefExpr(to(functionDecl(CustomFunctionsMatcher) .bind(CustomFunctionNamesId))) diff --git a/clang-tools-extra/clang-tidy/bugprone/UnusedLocalNonTrivialVariableCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/UnusedLocalNonTrivialVariableCheck.cpp index 2b7db2548cfb2..956d5048b4ee3 100644 --- a/clang-tools-extra/clang-tidy/bugprone/UnusedLocalNonTrivialVariableCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/UnusedLocalNonTrivialVariableCheck.cpp @@ -69,13 +69,13 @@ void UnusedLocalNonTrivialVariableCheck::registerMatchers(MatchFinder *Finder) { unless(isExceptionVariable()), hasLocalStorage(), isDefinition(), unless(hasType(isReferenceType())), unless(hasType(isTrivial())), unless(explicitMarkUnused()), - hasType(hasUnqualifiedDesugaredType( - anyOf(recordType(hasDeclaration(namedDecl( - matchesAnyListedName(IncludeTypes), - unless(matchesAnyListedName(ExcludeTypes))))), - templateSpecializationType(hasDeclaration(namedDecl( - matchesAnyListedName(IncludeTypes), - unless(matchesAnyListedName(ExcludeTypes))))))))) + hasType(hasUnqualifiedDesugaredType(anyOf( + recordType(hasDeclaration(namedDecl( + matchesAnyListedRegexName(IncludeTypes), + unless(matchesAnyListedRegexName(ExcludeTypes))))), + templateSpecializationType(hasDeclaration(namedDecl( + matchesAnyListedRegexName(IncludeTypes), + unless(matchesAnyListedRegexName(ExcludeTypes))))))))) .bind("var"), this); } diff --git a/clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp index 6fbd3922b532d..7aee725cae434 100644 --- a/clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp @@ -171,18 +171,18 @@ void UnusedReturnValueCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { } void UnusedReturnValueCheck::registerMatchers(MatchFinder *Finder) { - auto MatchedDirectCallExpr = - expr(callExpr(callee(functionDecl( - // Don't match copy or move assignment operator. - unless(isAssignmentOverloadedOperator()), - // Don't match void overloads of checked functions. - unless(returns(voidType())), - anyOf(isInstantiatedFrom(matchers::matchesAnyListedName( - CheckedFunctions)), - returns(hasCanonicalType(hasDeclaration( - namedDecl(matchers::matchesAnyListedName( - CheckedReturnTypes))))))))) - .bind("match")); + auto MatchedDirectCallExpr = expr( + callExpr(callee(functionDecl( + // Don't match copy or move assignment operator. + unless(isAssignmentOverloadedOperator()), + // Don't match void overloads of checked functions. + unless(returns(voidType())), + anyOf(isInstantiatedFrom(matchers::matchesAnyListedRegexName( + CheckedFunctions)), + returns(hasCanonicalType(hasDeclaration( + namedDecl(matchers::matchesAnyListedRegexName( + CheckedReturnTypes))))))))) + .bind("match")); auto CheckCastToVoid = AllowCastToVoid ? castExpr(unless(hasCastKind(CK_ToVoid))) : castExpr(); diff --git a/clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp index 64387024dafd6..a31dd1e5dbdcd 100644 --- a/clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp @@ -85,7 +85,7 @@ class UseAfterMoveFinder { static auto getNameMatcher(llvm::ArrayRef<StringRef> InvalidationFunctions) { return anyOf(hasAnyName("::std::move", "::std::forward"), - matchers::matchesAnyListedName(InvalidationFunctions)); + matchers::matchesAnyListedRegexName(InvalidationFunctions)); } static StatementMatcher @@ -138,11 +138,12 @@ makeReinitMatcher(const ValueDecl *MovedVariable, hasAttr(clang::attr::Reinitializes)))), // Functions that are specified in ReinitializationFunctions // option. - callExpr(callee(functionDecl(matchers::matchesAnyListedName( - ReinitializationFunctions))), - anyOf(cxxMemberCallExpr(on(DeclRefMatcher)), - callExpr(unless(cxxMemberCallExpr()), - hasArgument(0, DeclRefMatcher)))), + callExpr( + callee(functionDecl(matchers::matchesAnyListedRegexName( + ReinitializationFunctions))), + anyOf(cxxMemberCallExpr(on(DeclRefMatcher)), + callExpr(unless(cxxMemberCallExpr()), + hasArgument(0, DeclRefMatcher)))), // Passing variable to a function as a non-const pointer. callExpr(forEachArgumentWithParam( unaryOperator(hasOperatorName("&"), diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/NoSuspendWithLockCheck.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/NoSuspendWithLockCheck.cpp index 8ecbccda3c5f2..ee3a45c171e32 100644 --- a/clang-tools-extra/clang-tidy/cppcoreguidelines/NoSuspendWithLockCheck.cpp +++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/NoSuspendWithLockCheck.cpp @@ -24,7 +24,7 @@ void NoSuspendWithLockCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { void NoSuspendWithLockCheck::registerMatchers(MatchFinder *Finder) { auto LockType = templateSpecializationType( - hasDeclaration(namedDecl(matchers::matchesAnyListedName( + hasDeclaration(namedDecl(matchers::matchesAnyListedRegexName( utils::options::parseStringList(LockGuards))))); const StatementMatcher Lock = diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsAvoidUncheckedContainerAccessCheck.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsAvoidUncheckedContainerAccessCheck.cpp index cf4b445a554e8..73f43d3cd3b1a 100644 --- a/clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsAvoidUncheckedContainerAccessCheck.cpp +++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsAvoidUncheckedContainerAccessCheck.cpp @@ -95,7 +95,7 @@ void ProBoundsAvoidUncheckedContainerAccessCheck::registerMatchers( cxxMethodDecl( hasOverloadedOperatorName("[]"), anyOf(parameterCountIs(0), parameterCountIs(1)), - unless(matchers::matchesAnyListedName(ExcludedClasses))) + unless(matchers::matchesAnyListedRegexName(ExcludedClasses))) .bind("operator"))) .bind("caller"), this); diff --git a/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp b/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp index fcdaba277e87d..762144ea6deea 100644 --- a/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp @@ -98,8 +98,8 @@ void ConstCorrectnessCheck::registerMatchers(MatchFinder *Finder) { hasType(referenceType(pointee(hasCanonicalType(templateTypeParmType())))), hasType(referenceType(pointee(substTemplateTypeParmType())))); - auto AllowedTypeDecl = namedDecl( - anyOf(matchers::matchesAnyListedName(AllowedTypes), usingShadowDecl())); + auto AllowedTypeDecl = namedDecl(anyOf( + matchers::matchesAnyListedRegexName(AllowedTypes), usingShadowDecl())); const auto AllowedType = hasType(qualType( anyOf(hasDeclaration(AllowedTypeDecl), references(AllowedTypeDecl), diff --git a/clang-tools-extra/clang-tidy/misc/OverrideWithDifferentVisibilityCheck.cpp b/clang-tools-extra/clang-tidy/misc/OverrideWithDifferentVisibilityCheck.cpp index 09c52699a27ba..5c051b01a79e8 100644 --- a/clang-tools-extra/clang-tidy/misc/OverrideWithDifferentVisibilityCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/OverrideWithDifferentVisibilityCheck.cpp @@ -71,7 +71,7 @@ void OverrideWithDifferentVisibilityCheck::storeOptions( void OverrideWithDifferentVisibilityCheck::registerMatchers( MatchFinder *Finder) { const auto IgnoredDecl = - namedDecl(matchers::matchesAnyListedName(IgnoredFunctions)); + namedDecl(matchers::matchesAnyListedRegexName(IgnoredFunctions)); const auto FilterDestructors = CheckDestructors ? decl() : decl(unless(cxxDestructorDecl())); const auto FilterOperators = diff --git a/clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp index c95834faab7fc..101780ad0b186 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp @@ -50,7 +50,7 @@ void UseStdFormatCheck::registerMatchers(MatchFinder *Finder) { Finder->addMatcher( callExpr(argumentCountAtLeast(1), hasArgument(0, stringLiteral(isOrdinary())), - callee(functionDecl(matchers::matchesAnyListedName( + callee(functionDecl(matchers::matchesAnyListedRegexName( StrFormatLikeFunctions)) .bind("func_decl"))) .bind("strformat"), diff --git a/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp index 1ab9576620ca5..e92155c822dc7 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp @@ -99,7 +99,7 @@ void UseStdPrintCheck::registerMatchers(MatchFinder *Finder) { unusedReturnValue( callExpr(argumentCountAtLeast(1), hasArgument(0, stringLiteral(isOrdinary())), - callee(functionDecl(matchers::matchesAnyListedName( + callee(functionDecl(matchers::matchesAnyListedRegexName( PrintfLikeFunctions)) .bind("func_decl"))) .bind("printf")), @@ -110,7 +110,7 @@ void UseStdPrintCheck::registerMatchers(MatchFinder *Finder) { unusedReturnValue( callExpr(argumentCountAtLeast(2), hasArgument(1, stringLiteral(isOrdinary())), - callee(functionDecl(matchers::matchesAnyListedName( + callee(functionDecl(matchers::matchesAnyListedRegexName( FprintfLikeFunctions)) .bind("func_decl"))) .bind("fprintf")), diff --git a/clang-tools-extra/clang-tidy/performance/EnumSizeCheck.cpp b/clang-tools-extra/clang-tidy/performance/EnumSizeCheck.cpp index 6a7fef5ec77d0..8147ae4163ea7 100644 --- a/clang-tools-extra/clang-tidy/performance/EnumSizeCheck.cpp +++ b/clang-tools-extra/clang-tidy/performance/EnumSizeCheck.cpp @@ -91,7 +91,7 @@ void EnumSizeCheck::registerMatchers(MatchFinder *Finder) { Finder->addMatcher( enumDecl(unless(isExpansionInSystemHeader()), isDefinition(), hasEnumerators(), - unless(matchers::matchesAnyListedName(EnumIgnoreList))) + unless(matchers::matchesAnyListedRegexName(EnumIgnoreList))) .bind("e"), this); } diff --git a/clang-tools-extra/clang-tidy/performance/ForRangeCopyCheck.cpp b/clang-tools-extra/clang-tidy/performance/ForRangeCopyCheck.cpp index d0b399739bb48..23feab88c92a3 100644 --- a/clang-tools-extra/clang-tidy/performance/ForRangeCopyCheck.cpp +++ b/clang-tools-extra/clang-tidy/performance/ForRangeCopyCheck.cpp @@ -38,7 +38,7 @@ void ForRangeCopyCheck::registerMatchers(MatchFinder *Finder) { auto HasReferenceOrPointerTypeOrIsAllowed = hasType(qualType( unless(anyOf(hasCanonicalType(anyOf(referenceType(), pointerType())), hasDeclaration(namedDecl( - matchers::matchesAnyListedName(AllowedTypes))))))); + matchers::matchesAnyListedRegexName(AllowedTypes))))))); auto IteratorReturnsValueType = cxxOperatorCallExpr( hasOverloadedOperatorName("*"), callee( diff --git a/clang-tools-extra/clang-tidy/performance/NoAutomaticMoveCheck.cpp b/clang-tools-extra/clang-tidy/performance/NoAutomaticMoveCheck.cpp index 2469da978d0ae..ca23488be204a 100644 --- a/clang-tools-extra/clang-tidy/performance/NoAutomaticMoveCheck.cpp +++ b/clang-tools-extra/clang-tidy/performance/NoAutomaticMoveCheck.cpp @@ -36,7 +36,7 @@ void NoAutomaticMoveCheck::registerMatchers(MatchFinder *Finder) { isConstQualified(), hasCanonicalType(matchers::isExpensiveToCopy()), unless(hasDeclaration(namedDecl( - matchers::matchesAnyListedName(AllowedTypes))))))) + matchers::matchesAnyListedRegexName(AllowedTypes))))))) .bind("vardecl"); // A matcher for a `DstT::DstT(const Src&)` where DstT also has a diff --git a/clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitializationCheck.cpp b/clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitializationCheck.cpp index 3245abc6c71af..d4566bc59b7e5 100644 --- a/clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitializationCheck.cpp +++ b/clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitializationCheck.cpp @@ -93,8 +93,8 @@ AST_MATCHER_FUNCTION_P(StatementMatcher, // Access through dereference, typically used for `operator[]`: `(*a)[3]`. unaryOperator(hasOperatorName("*"), hasUnaryOperand(ReceiverExpr))); const auto ReceiverType = - hasCanonicalType(recordType(hasDeclaration(namedDecl( - unless(matchers::matchesAnyListedName(ExcludedContainerTypes)))))); + hasCanonicalType(recordType(hasDeclaration(namedDecl(unless( + matchers::matchesAnyListedRegexName(ExcludedContainerTypes)))))); return expr( anyOf(cxxMemberCallExpr(callee(MethodDecl), on(OnExpr), @@ -246,7 +246,7 @@ void UnnecessaryCopyInitializationCheck::registerMatchers(MatchFinder *Finder) { unless(hasDeclaration(namedDecl( hasName("::std::function")))))), unless(hasDeclaration(namedDecl( - matchers::matchesAnyListedName( + matchers::matchesAnyListedRegexName( AllowedTypes)))))), unless(isImplicit()), hasInitializer(traverse( diff --git a/clang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp b/clang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp index d62629713cb41..ffb2a81b862f6 100644 --- a/clang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp +++ b/clang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp @@ -51,11 +51,11 @@ UnnecessaryValueParamCheck::UnnecessaryValueParamCheck( void UnnecessaryValueParamCheck::registerMatchers(MatchFinder *Finder) { const auto ExpensiveValueParamDecl = parmVarDecl( - hasType(qualType( - hasCanonicalType(matchers::isExpensiveToCopy()), - unless(anyOf(hasCanonicalType(referenceType()), - hasDeclaration(namedDecl( - matchers::matchesAnyListedName(AllowedTypes))))))), + hasType(qualType(hasCanonicalType(matchers::isExpensiveToCopy()), + unless(anyOf(hasCanonicalType(referenceType()), + hasDeclaration(namedDecl( + matchers::matchesAnyListedRegexName( + AllowedTypes))))))), decl().bind("param")); Finder->addMatcher( traverse(TK_AsIs, diff --git a/clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.cpp b/clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.cpp index 595ee5ac221e8..a085f40d3a707 100644 --- a/clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.cpp @@ -37,7 +37,7 @@ ContainerDataPointerCheck::ContainerDataPointerCheck(StringRef Name, void ContainerDataPointerCheck::registerMatchers(MatchFinder *Finder) { const auto Record = cxxRecordDecl( - unless(matchers::matchesAnyListedName(IgnoredContainers)), + unless(matchers::matchesAnyListedRegexName(IgnoredContainers)), isSameOrDerivedFrom( namedDecl( has(cxxMethodDecl(isPublic(), hasName("data")).bind("data"))) diff --git a/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp b/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp index a239155cc5cf1..073fdce5018bf 100644 --- a/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp @@ -217,13 +217,14 @@ void ContainerSizeEmptyCheck::registerMatchers(MatchFinder *Finder) { expr(hasType(pointsTo(ValidContainer))).bind("Pointee"))), expr(hasType(ValidContainer)).bind("STLObject")); - const auto ExcludedComparisonTypesMatcher = qualType(anyOf( - hasDeclaration( - cxxRecordDecl(matchers::matchesAnyListedName(ExcludedComparisonTypes)) - .bind("excluded")), - hasCanonicalType(hasDeclaration( - cxxRecordDecl(matchers::matchesAnyListedName(ExcludedComparisonTypes)) - .bind("excluded"))))); + const auto ExcludedComparisonTypesMatcher = qualType( + anyOf(hasDeclaration(cxxRecordDecl(matchers::matchesAnyListedRegexName( + ExcludedComparisonTypes)) + .bind("excluded")), + hasCanonicalType(hasDeclaration( + cxxRecordDecl(matchers::matchesAnyListedRegexName( + ExcludedComparisonTypes)) + .bind("excluded"))))); const auto SameExcludedComparisonTypesMatcher = qualType(anyOf(hasDeclaration(cxxRecordDecl(equalsBoundNode("excluded"))), hasCanonicalType(hasDeclaration( diff --git a/clang-tools-extra/clang-tidy/readability/RedundantParenthesesCheck.cpp b/clang-tools-extra/clang-tidy/readability/RedundantParenthesesCheck.cpp index 874b9618bd882..bb993a60c9d4e 100644 --- a/clang-tools-extra/clang-tidy/readability/RedundantParenthesesCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/RedundantParenthesesCheck.cpp @@ -51,13 +51,13 @@ void RedundantParenthesesCheck::registerMatchers(MatchFinder *Finder) { expr(anyOf(integerLiteral(), floatLiteral(), characterLiteral(), cxxBoolLiteral(), stringLiteral(), cxxNullPtrLiteralExpr())); Finder->addMatcher( - parenExpr( - subExpr(anyOf(parenExpr(), ConstantExpr, - declRefExpr(to(namedDecl(unless( - matchers::matchesAnyListedName(AllowedDecls))))))), - unless(anyOf(isInMacro(), - // sizeof(...) is common used. - hasParent(unaryExprOrTypeTraitExpr())))) + parenExpr(subExpr(anyOf( + parenExpr(), ConstantExpr, + declRefExpr(to(namedDecl(unless( + matchers::matchesAnyListedRegexName(AllowedDecls))))))), + unless(anyOf(isInMacro(), + // sizeof(...) is common used. + hasParent(unaryExprOrTypeTraitExpr())))) .bind("dup"), this); } diff --git a/clang-tools-extra/clang-tidy/readability/RedundantStringCStrCheck.cpp b/clang-tools-extra/clang-tidy/readability/RedundantStringCStrCheck.cpp index f5b8872e3a66c..3547c67d2be6a 100644 --- a/clang-tools-extra/clang-tidy/readability/RedundantStringCStrCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/RedundantStringCStrCheck.cpp @@ -154,11 +154,11 @@ void RedundantStringCStrCheck::registerMatchers( // Detect redundant 'c_str()' calls in parameters passed to std::format in // C++20 onwards and std::print in C++23 onwards. Finder->addMatcher( - traverse(TK_AsIs, - callExpr(callee(functionDecl(matchers::matchesAnyListedName( - StringParameterFunctions))), - forEachArgumentWithParam(StringCStrCallExpr, - parmVarDecl()))), + traverse(TK_AsIs, callExpr(callee(functionDecl( + matchers::matchesAnyListedRegexName( + StringParameterFunctions))), + forEachArgumentWithParam(StringCStrCallExpr, + parmVarDecl()))), this); } } diff --git a/clang-tools-extra/clang-tidy/utils/Matchers.h b/clang-tools-extra/clang-tidy/utils/Matchers.h index 566b93304ab54..c41d088fd782f 100644 --- a/clang-tools-extra/clang-tidy/utils/Matchers.h +++ b/clang-tools-extra/clang-tidy/utils/Matchers.h @@ -143,7 +143,7 @@ class MatchesAnyListedNameMatcher // expressions. If a regular expression contains starts ':' the NamedDecl's // qualified name will be used for matching, otherwise its name will be used. inline ::clang::ast_matchers::internal::Matcher<NamedDecl> -matchesAnyListedName(llvm::ArrayRef<StringRef> NameList) { +matchesAnyListedRegexName(llvm::ArrayRef<StringRef> NameList) { return ::clang::ast_matchers::internal::Matcher( new MatchesAnyListedNameMatcher(NameList)); } _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
