// run-rustfix #![allow(clippy::useless_vec, clippy::needless_borrow)] #![warn(clippy::into_iter_on_ref)] struct X; use std::collections::*; fn main() { for _ in &[1, 2, 3] {} for _ in vec![X, X] {} for _ in &vec![X, X] {} let _ = vec![1, 2, 3].into_iter(); let _ = (&vec![1, 2, 3]).iter(); //~ WARN equivalent to .iter() let _ = vec![1, 2, 3].into_boxed_slice().iter(); //~ WARN equivalent to .iter() let _ = std::rc::Rc::from(&[X][..]).iter(); //~ WARN equivalent to .iter() let _ = std::sync::Arc::from(&[X][..]).iter(); //~ WARN equivalent to .iter() let _ = (&&&&&&&[1, 2, 3]).iter(); //~ ERROR equivalent to .iter() let _ = (&&&&mut &&&[1, 2, 3]).iter(); //~ ERROR equivalent to .iter() let _ = (&mut &mut &mut [1, 2, 3]).iter_mut(); //~ ERROR equivalent to .iter_mut() let _ = (&Some(4)).iter(); //~ WARN equivalent to .iter() let _ = (&mut Some(5)).iter_mut(); //~ WARN equivalent to .iter_mut() let _ = (&Ok::<_, i32>(6)).iter(); //~ WARN equivalent to .iter() let _ = (&mut Err::(7)).iter_mut(); //~ WARN equivalent to .iter_mut() let _ = (&Vec::::new()).iter(); //~ WARN equivalent to .iter() let _ = (&mut Vec::::new()).iter_mut(); //~ WARN equivalent to .iter_mut() let _ = (&BTreeMap::::new()).iter(); //~ WARN equivalent to .iter() let _ = (&mut BTreeMap::::new()).iter_mut(); //~ WARN equivalent to .iter_mut() let _ = (&VecDeque::::new()).iter(); //~ WARN equivalent to .iter() let _ = (&mut VecDeque::::new()).iter_mut(); //~ WARN equivalent to .iter_mut() let _ = (&LinkedList::::new()).iter(); //~ WARN equivalent to .iter() let _ = (&mut LinkedList::::new()).iter_mut(); //~ WARN equivalent to .iter_mut() let _ = (&HashMap::::new()).iter(); //~ WARN equivalent to .iter() let _ = (&mut HashMap::::new()).iter_mut(); //~ WARN equivalent to .iter_mut() let _ = (&BTreeSet::::new()).iter(); //~ WARN equivalent to .iter() let _ = (&BinaryHeap::::new()).iter(); //~ WARN equivalent to .iter() let _ = (&HashSet::::new()).iter(); //~ WARN equivalent to .iter() let _ = std::path::Path::new("12/34").iter(); //~ WARN equivalent to .iter() let _ = std::path::PathBuf::from("12/34").iter(); //~ ERROR equivalent to .iter() let _ = (&[1, 2, 3]).iter().next(); //~ WARN equivalent to .iter() }