]> git.lizzy.rs Git - rust.git/blob - tests/ui/into_iter_on_ref.rs
Added lints `into_iter_on_ref` and `into_iter_on_array`. Fix #1565.
[rust.git] / tests / ui / into_iter_on_ref.rs
1 #![warn(clippy::into_iter_on_ref)]
2 #![deny(clippy::into_iter_on_array)]
3
4 struct X;
5 use std::collections::*;
6
7 fn main() {
8     for _ in &[1,2,3] {}
9     for _ in vec![X, X] {}
10     for _ in &vec![X, X] {}
11     for _ in [1,2,3].into_iter() {} //~ ERROR equivalent to .iter()
12
13     let _ = [1,2,3].into_iter(); //~ ERROR equivalent to .iter()
14     let _ = vec![1,2,3].into_iter();
15     let _ = (&vec![1,2,3]).into_iter(); //~ WARN equivalent to .iter()
16     let _ = vec![1,2,3].into_boxed_slice().into_iter(); //~ WARN equivalent to .iter()
17     let _ = std::rc::Rc::from(&[X][..]).into_iter(); //~ WARN equivalent to .iter()
18     let _ = std::sync::Arc::from(&[X][..]).into_iter(); //~ WARN equivalent to .iter()
19
20     let _ = (&&&&&&&[1,2,3]).into_iter(); //~ ERROR equivalent to .iter()
21     let _ = (&&&&mut &&&[1,2,3]).into_iter(); //~ ERROR equivalent to .iter()
22     let _ = (&mut &mut &mut [1,2,3]).into_iter(); //~ ERROR equivalent to .iter_mut()
23
24     let _ = (&Some(4)).into_iter(); //~ WARN equivalent to .iter()
25     let _ = (&mut Some(5)).into_iter(); //~ WARN equivalent to .iter_mut()
26     let _ = (&Ok::<_, i32>(6)).into_iter(); //~ WARN equivalent to .iter()
27     let _ = (&mut Err::<i32, _>(7)).into_iter(); //~ WARN equivalent to .iter_mut()
28     let _ = (&Vec::<i32>::new()).into_iter(); //~ WARN equivalent to .iter()
29     let _ = (&mut Vec::<i32>::new()).into_iter(); //~ WARN equivalent to .iter_mut()
30     let _ = (&BTreeMap::<i32, u64>::new()).into_iter(); //~ WARN equivalent to .iter()
31     let _ = (&mut BTreeMap::<i32, u64>::new()).into_iter(); //~ WARN equivalent to .iter_mut()
32     let _ = (&VecDeque::<i32>::new()).into_iter(); //~ WARN equivalent to .iter()
33     let _ = (&mut VecDeque::<i32>::new()).into_iter(); //~ WARN equivalent to .iter_mut()
34     let _ = (&LinkedList::<i32>::new()).into_iter(); //~ WARN equivalent to .iter()
35     let _ = (&mut LinkedList::<i32>::new()).into_iter(); //~ WARN equivalent to .iter_mut()
36     let _ = (&HashMap::<i32, u64>::new()).into_iter(); //~ WARN equivalent to .iter()
37     let _ = (&mut HashMap::<i32, u64>::new()).into_iter(); //~ WARN equivalent to .iter_mut()
38
39     let _ = (&BTreeSet::<i32>::new()).into_iter(); //~ WARN equivalent to .iter()
40     let _ = (&BinaryHeap::<i32>::new()).into_iter(); //~ WARN equivalent to .iter()
41     let _ = (&HashSet::<i32>::new()).into_iter(); //~ WARN equivalent to .iter()
42     let _ = std::path::Path::new("12/34").into_iter(); //~ WARN equivalent to .iter()
43     let _ = std::path::PathBuf::from("12/34").into_iter(); //~ ERROR equivalent to .iter()
44 }