rust/tests/ui/iter_count.fixed

87 lines
2.1 KiB
Rust
Raw Normal View History

2021-02-25 15:06:50 +01:00
// run-rustfix
// aux-build:option_helpers.rs
#![warn(clippy::iter_count)]
2021-02-25 17:54:51 +01:00
#![allow(
unused_variables,
array_into_iter,
unused_mut,
clippy::into_iter_on_ref,
clippy::unnecessary_operation
)]
2021-02-25 15:06:50 +01:00
extern crate option_helpers;
use option_helpers::IteratorFalsePositives;
use std::collections::{BTreeMap, BTreeSet, BinaryHeap, HashMap, HashSet, LinkedList, VecDeque};
2021-02-25 15:06:50 +01:00
/// Struct to generate false positives for things with `.iter()`.
#[derive(Copy, Clone)]
struct HasIter;
impl HasIter {
fn iter(self) -> IteratorFalsePositives {
IteratorFalsePositives { foo: 0 }
}
fn iter_mut(self) -> IteratorFalsePositives {
IteratorFalsePositives { foo: 0 }
}
2021-02-25 17:54:51 +01:00
fn into_iter(self) -> IteratorFalsePositives {
IteratorFalsePositives { foo: 0 }
}
2021-02-25 15:06:50 +01:00
}
fn main() {
2021-02-25 17:54:51 +01:00
let mut vec = vec![0, 1, 2, 3];
2021-02-25 15:06:50 +01:00
let mut boxed_slice: Box<[u8]> = Box::new([0, 1, 2, 3]);
2021-02-25 17:54:51 +01:00
let mut vec_deque: VecDeque<_> = vec.iter().cloned().collect();
let mut hash_set = HashSet::new();
let mut hash_map = HashMap::new();
let mut b_tree_map = BTreeMap::new();
let mut b_tree_set = BTreeSet::new();
let mut linked_list = LinkedList::new();
let mut binary_heap = BinaryHeap::new();
2021-02-25 17:54:51 +01:00
hash_set.insert(1);
hash_map.insert(1, 2);
b_tree_map.insert(1, 2);
b_tree_set.insert(1);
linked_list.push_back(1);
binary_heap.push(1);
2021-02-25 15:06:50 +01:00
2021-02-25 17:54:51 +01:00
&vec[..].len();
vec.len();
boxed_slice.len();
vec_deque.len();
hash_set.len();
hash_map.len();
b_tree_map.len();
b_tree_set.len();
linked_list.len();
binary_heap.len();
2021-02-25 17:54:51 +01:00
vec.len();
&vec[..].len();
vec_deque.len();
hash_map.len();
b_tree_map.len();
linked_list.len();
2021-02-25 17:54:51 +01:00
&vec[..].len();
vec.len();
vec_deque.len();
hash_set.len();
hash_map.len();
b_tree_map.len();
b_tree_set.len();
linked_list.len();
binary_heap.len();
2021-02-25 15:06:50 +01:00
// Make sure we don't lint for non-relevant types.
let false_positive = HasIter;
2021-02-25 17:54:51 +01:00
false_positive.iter().count();
false_positive.iter_mut().count();
false_positive.into_iter().count();
2021-02-25 15:06:50 +01:00
}