Skip to content

Commit e69d8b8

Browse files
authored
[clang-tidy][NFC] simplify matchers in bugprone-optional-value-conversion (#119346)
combine type matcher and optional type check.
1 parent 56ddbef commit e69d8b8

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

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

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,20 @@ OptionalValueConversionCheck::getCheckTraversalKind() const {
4343
}
4444

4545
void OptionalValueConversionCheck::registerMatchers(MatchFinder *Finder) {
46-
auto ConstructTypeMatcher =
47-
qualType(hasCleanType(qualType().bind("optional-type")));
46+
auto BindOptionalType = qualType(
47+
hasCleanType(qualType(hasDeclaration(namedDecl(
48+
matchers::matchesAnyListedName(OptionalTypes))))
49+
.bind("optional-type")));
4850

49-
auto CallTypeMatcher =
51+
auto EqualsBoundOptionalType =
5052
qualType(hasCleanType(equalsBoundNode("optional-type")));
5153

5254
auto OptionalDereferenceMatcher = callExpr(
5355
anyOf(
5456
cxxOperatorCallExpr(hasOverloadedOperatorName("*"),
55-
hasUnaryOperand(hasType(CallTypeMatcher)))
57+
hasUnaryOperand(hasType(EqualsBoundOptionalType)))
5658
.bind("op-call"),
57-
cxxMemberCallExpr(thisPointerType(CallTypeMatcher),
59+
cxxMemberCallExpr(thisPointerType(EqualsBoundOptionalType),
5860
callee(cxxMethodDecl(anyOf(
5961
hasOverloadedOperatorName("*"),
6062
matchers::matchesAnyListedName(ValueMethods)))))
@@ -66,10 +68,7 @@ void OptionalValueConversionCheck::registerMatchers(MatchFinder *Finder) {
6668
hasArgument(0, ignoringImpCasts(OptionalDereferenceMatcher)));
6769
Finder->addMatcher(
6870
cxxConstructExpr(
69-
argumentCountIs(1U),
70-
hasDeclaration(cxxConstructorDecl(
71-
ofClass(matchers::matchesAnyListedName(OptionalTypes)))),
72-
hasType(ConstructTypeMatcher),
71+
argumentCountIs(1U), hasType(BindOptionalType),
7372
hasArgument(0U, ignoringImpCasts(anyOf(OptionalDereferenceMatcher,
7473
StdMoveCallMatcher))),
7574
unless(anyOf(hasAncestor(typeLoc()),

0 commit comments

Comments
 (0)