[clang-tools-extra] e69d8b8 - [clang-tidy][NFC] simplify matchers in bugprone-optional-value-conversion (#119346)

via cfe-commits cfe-commits at lists.llvm.org
Tue Dec 10 02:00:45 PST 2024


Author: Congcong Cai
Date: 2024-12-10T18:00:41+08:00
New Revision: e69d8b8708b93281e91eb3679cec317a33aab246

URL: https://github.com/llvm/llvm-project/commit/e69d8b8708b93281e91eb3679cec317a33aab246
DIFF: https://github.com/llvm/llvm-project/commit/e69d8b8708b93281e91eb3679cec317a33aab246.diff

LOG: [clang-tidy][NFC] simplify matchers in bugprone-optional-value-conversion (#119346)

combine type matcher and optional type check.

Added: 
    

Modified: 
    clang-tools-extra/clang-tidy/bugprone/OptionalValueConversionCheck.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clang-tidy/bugprone/OptionalValueConversionCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/OptionalValueConversionCheck.cpp
index 600eab37552766..f2ff27d85fb004 100644
--- a/clang-tools-extra/clang-tidy/bugprone/OptionalValueConversionCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/OptionalValueConversionCheck.cpp
@@ -43,18 +43,20 @@ OptionalValueConversionCheck::getCheckTraversalKind() const {
 }
 
 void OptionalValueConversionCheck::registerMatchers(MatchFinder *Finder) {
-  auto ConstructTypeMatcher =
-      qualType(hasCleanType(qualType().bind("optional-type")));
+  auto BindOptionalType = qualType(
+      hasCleanType(qualType(hasDeclaration(namedDecl(
+                                matchers::matchesAnyListedName(OptionalTypes))))
+                       .bind("optional-type")));
 
-  auto CallTypeMatcher =
+  auto EqualsBoundOptionalType =
       qualType(hasCleanType(equalsBoundNode("optional-type")));
 
   auto OptionalDereferenceMatcher = callExpr(
       anyOf(
           cxxOperatorCallExpr(hasOverloadedOperatorName("*"),
-                              hasUnaryOperand(hasType(CallTypeMatcher)))
+                              hasUnaryOperand(hasType(EqualsBoundOptionalType)))
               .bind("op-call"),
-          cxxMemberCallExpr(thisPointerType(CallTypeMatcher),
+          cxxMemberCallExpr(thisPointerType(EqualsBoundOptionalType),
                             callee(cxxMethodDecl(anyOf(
                                 hasOverloadedOperatorName("*"),
                                 matchers::matchesAnyListedName(ValueMethods)))))
@@ -66,10 +68,7 @@ void OptionalValueConversionCheck::registerMatchers(MatchFinder *Finder) {
                hasArgument(0, ignoringImpCasts(OptionalDereferenceMatcher)));
   Finder->addMatcher(
       cxxConstructExpr(
-          argumentCountIs(1U),
-          hasDeclaration(cxxConstructorDecl(
-              ofClass(matchers::matchesAnyListedName(OptionalTypes)))),
-          hasType(ConstructTypeMatcher),
+          argumentCountIs(1U), hasType(BindOptionalType),
           hasArgument(0U, ignoringImpCasts(anyOf(OptionalDereferenceMatcher,
                                                  StdMoveCallMatcher))),
           unless(anyOf(hasAncestor(typeLoc()),


        


More information about the cfe-commits mailing list