[clang-tidy] Fix check broken in rL263822.
Add names missing from rL263822 and add tests to prevent future omissions. llvm-svn: 263963
This commit is contained in:
parent
86b9fbe980
commit
bd6a74e1fa
|
@ -38,7 +38,8 @@ void InefficientAlgorithmCheck::registerMatchers(MatchFinder *Finder) {
|
|||
"::std::lower_bound", "::std::upper_bound");
|
||||
const auto ContainerMatcher = classTemplateSpecializationDecl(hasAnyName(
|
||||
"::std::set", "::std::map", "::std::multiset", "::std::multimap",
|
||||
"::std::unordered_set", "::std::unordered_map"));
|
||||
"::std::unordered_set", "::std::unordered_map",
|
||||
"::std::unordered_multiset", "::std::unordered_multimap"));
|
||||
|
||||
const auto Matcher =
|
||||
callExpr(
|
||||
|
|
|
@ -35,7 +35,11 @@ template <typename K, typename V, typename Cmp = less<K>> struct map {
|
|||
iterator end() const;
|
||||
};
|
||||
|
||||
template <typename K, typename V> struct multimap : map<K, V> {};
|
||||
template <typename K> struct unordered_set : set<K> {};
|
||||
template <typename K, typename V> struct unordered_map : map<K, V> {};
|
||||
template <typename K> struct unordered_multiset : set<K> {};
|
||||
template <typename K, typename V> struct unordered_multimap : map<K, V> {};
|
||||
|
||||
template <typename K, typename Cmp = less<K>> struct multiset : set<K, Cmp> {};
|
||||
|
||||
|
@ -114,10 +118,30 @@ int main() {
|
|||
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: this STL algorithm call should be
|
||||
// CHECK-FIXES: {{^ }}us.find(10);{{$}}
|
||||
|
||||
std::unordered_multiset<int> ums;
|
||||
find(ums.begin(), ums.end(), 10);
|
||||
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: this STL algorithm call should be
|
||||
// CHECK-FIXES: {{^ }}ums.find(10);{{$}}
|
||||
|
||||
std::map<int, int> intmap;
|
||||
find(intmap.begin(), intmap.end(), 46);
|
||||
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: this STL algorithm call should be
|
||||
// CHECK-FIXES: {{^ }}find(intmap.begin(), intmap.end(), 46);{{$}}
|
||||
|
||||
std::multimap<int, int> intmmap;
|
||||
find(intmmap.begin(), intmmap.end(), 46);
|
||||
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: this STL algorithm call should be
|
||||
// CHECK-FIXES: {{^ }}find(intmmap.begin(), intmmap.end(), 46);{{$}}
|
||||
|
||||
std::unordered_map<int, int> umap;
|
||||
find(umap.begin(), umap.end(), 46);
|
||||
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: this STL algorithm call should be
|
||||
// CHECK-FIXES: {{^ }}find(umap.begin(), umap.end(), 46);{{$}}
|
||||
|
||||
std::unordered_multimap<int, int> ummap;
|
||||
find(ummap.begin(), ummap.end(), 46);
|
||||
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: this STL algorithm call should be
|
||||
// CHECK-FIXES: {{^ }}find(ummap.begin(), ummap.end(), 46);{{$}}
|
||||
}
|
||||
|
||||
struct Value {
|
||||
|
|
Loading…
Reference in New Issue