diff options
| author | Haojian Wu <hokein@google.com> | 2017-04-24 16:41:00 +0000 |
|---|---|---|
| committer | Haojian Wu <hokein@google.com> | 2017-04-24 16:41:00 +0000 |
| commit | 8fd72968d42d15a4f0f518ca50fa9306168ec20c (patch) | |
| tree | 010644f2236ffa2f7c2c5b634a4d8e6f84ab36ac /clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.cpp | |
| parent | c799f3a809fce45d61f8600a15c251bc8ceea25f (diff) | |
| download | bcm5719-llvm-8fd72968d42d15a4f0f518ca50fa9306168ec20c.tar.gz bcm5719-llvm-8fd72968d42d15a4f0f518ca50fa9306168ec20c.zip | |
[clang-tidy] Some Cleanups for performance-faster-string-find check.
NFC
llvm-svn: 301188
Diffstat (limited to 'clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.cpp')
| -rw-r--r-- | clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.cpp | 34 |
1 files changed, 12 insertions, 22 deletions
diff --git a/clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.cpp b/clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.cpp index a8a9f662ee1..29dac1bc829 100644 --- a/clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.cpp +++ b/clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.cpp @@ -65,29 +65,19 @@ void FasterStringFindCheck::registerMatchers(MatchFinder *Finder) { const auto SingleChar = expr(ignoringParenCasts(stringLiteral(hasSize(1)).bind("literal"))); - const auto StringFindFunctions = - anyOf(hasName("find"), hasName("rfind"), hasName("find_first_of"), - hasName("find_first_not_of"), hasName("find_last_of"), - hasName("find_last_not_of")); - - llvm::Optional<ast_matchers::internal::Matcher<NamedDecl>> IsStringClass; - - for (const auto &ClassName : StringLikeClasses) { - const auto HasName = hasName(ClassName); - IsStringClass = IsStringClass ? anyOf(*IsStringClass, HasName) : HasName; - } - - if (IsStringClass) { - Finder->addMatcher( - cxxMemberCallExpr( - callee(functionDecl(StringFindFunctions).bind("func")), - anyOf(argumentCountIs(1), argumentCountIs(2)), - hasArgument(0, SingleChar), - on(expr(hasType(recordDecl(*IsStringClass)), - unless(hasSubstitutedType())))), - this); - } + hasAnyName("find", "rfind", "find_first_of", "find_first_not_of", + "find_last_of", "find_last_not_of"); + + Finder->addMatcher( + cxxMemberCallExpr( + callee(functionDecl(StringFindFunctions).bind("func")), + anyOf(argumentCountIs(1), argumentCountIs(2)), + hasArgument(0, SingleChar), + on(expr(hasType(recordDecl(hasAnyName(SmallVector<StringRef, 4>( + StringLikeClasses.begin(), StringLikeClasses.end())))), + unless(hasSubstitutedType())))), + this); } void FasterStringFindCheck::check(const MatchFinder::MatchResult &Result) { |

