]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/tests/ui/map_clone.fixed
Add 'src/tools/clippy/' from commit 'd2708873ef711ec8ab45df1e984ecf24a96cd369'
[rust.git] / src / tools / clippy / tests / ui / map_clone.fixed
1 // run-rustfix
2 #![warn(clippy::all, clippy::pedantic)]
3 #![allow(clippy::iter_cloned_collect)]
4 #![allow(clippy::clone_on_copy, clippy::redundant_clone)]
5 #![allow(clippy::missing_docs_in_private_items)]
6 #![allow(clippy::redundant_closure_for_method_calls)]
7 #![allow(clippy::many_single_char_names)]
8
9 fn main() {
10     let _: Vec<i8> = vec![5_i8; 6].iter().copied().collect();
11     let _: Vec<String> = vec![String::new()].iter().cloned().collect();
12     let _: Vec<u32> = vec![42, 43].iter().copied().collect();
13     let _: Option<u64> = Some(Box::new(16)).map(|b| *b);
14     let _: Option<u64> = Some(&16).copied();
15     let _: Option<u8> = Some(&1).copied();
16
17     // Don't lint these
18     let v = vec![5_i8; 6];
19     let a = 0;
20     let b = &a;
21     let _ = v.iter().map(|_x| *b);
22     let _ = v.iter().map(|_x| a.clone());
23     let _ = v.iter().map(|&_x| a);
24
25     // Issue #498
26     let _ = std::env::args();
27
28     // Issue #4824 item types that aren't references
29     {
30         use std::rc::Rc;
31
32         let o: Option<Rc<u32>> = Some(Rc::new(0_u32));
33         let _: Option<u32> = o.map(|x| *x);
34         let v: Vec<Rc<u32>> = vec![Rc::new(0_u32)];
35         let _: Vec<u32> = v.into_iter().map(|x| *x).collect();
36     }
37
38     // Issue #5524 mutable references
39     {
40         let mut c = 42;
41         let v = vec![&mut c];
42         let _: Vec<u32> = v.into_iter().map(|x| *x).collect();
43         let mut d = 21;
44         let v = vec![&mut d];
45         let _: Vec<u32> = v.into_iter().map(|&mut x| x).collect();
46     }
47 }