1 #![warn(clippy::same_item_push)]
5 fn mutate_increment(x: &mut u8) -> u8 {
10 fn increment(x: u8) -> u8 {
20 let mut vec: Vec<u8> = Vec::new();
26 let mut vec: Vec<u8> = Vec::new();
32 let mut vec: Vec<u8> = Vec::new();
37 let mut vec = Vec::new();
42 let mut vec = Vec::new();
48 // ** non-linted cases **
49 let mut spaces = Vec::with_capacity(10);
51 spaces.push(vec![b' ']);
54 // Suggestion should not be given as pushed variable can mutate
55 let mut vec: Vec<u8> = Vec::new();
58 vec.push(mutate_increment(&mut item));
61 let mut vec: Vec<u8> = Vec::new();
63 let mut item2 = &mut mutate_increment(&mut item);
65 vec.push(mutate_increment(item2));
68 let mut vec: Vec<usize> = Vec::new();
69 for (a, b) in [0, 1, 4, 9, 16].iter().enumerate() {
73 let mut vec: Vec<u8> = Vec::new();
75 vec.push(increment(i));
78 let mut vec: Vec<u8> = Vec::new();
83 // Suggestion should not be given as there are multiple pushes that are not the same
84 let mut vec: Vec<u8> = Vec::new();
91 // Suggestion should not be given as Vec is not involved
93 println!("Same Item Push");
99 let mut vec_a: Vec<A> = Vec::new();
101 vec_a.push(A { kind: i });
103 let mut vec: Vec<u8> = Vec::new();
105 vec.push(2u8.pow(a.kind));
109 let mut vec: Vec<u8> = Vec::new();
117 let mut vec: Vec<std::fs::File> = Vec::new();
119 vec.push(std::fs::File::open("foobar").unwrap());
128 let mut vec: Vec<Box<dyn T>> = Vec::new();
130 vec.push(Box::new(S {}));
134 let mut vec = Vec::new();
142 let mut vec = Vec::new();
145 let item = match key {
153 let mut vec = Vec::new();