[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