]> git.lizzy.rs Git - rust.git/blob - tests/ui/map_clone.rs
Auto merge of #4809 - iankronquist:patch-1, r=flip1995
[rust.git] / tests / ui / map_clone.rs
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
8 fn main() {
9     let _: Vec<i8> = vec![5_i8; 6].iter().map(|x| *x).collect();
10     let _: Vec<String> = vec![String::new()].iter().map(|x| x.clone()).collect();
11     let _: Vec<u32> = vec![42, 43].iter().map(|&x| x).collect();
12     let _: Option<u64> = Some(Box::new(16)).map(|b| *b);
13     let _: Option<u64> = Some(&16).map(|b| *b);
14     let _: Option<u8> = Some(&1).map(|x| x.clone());
15
16     // Don't lint these
17     let v = vec![5_i8; 6];
18     let a = 0;
19     let b = &a;
20     let _ = v.iter().map(|_x| *b);
21     let _ = v.iter().map(|_x| a.clone());
22     let _ = v.iter().map(|&_x| a);
23
24     // Issue #498
25     let _ = std::env::args().map(|v| v.clone());
26
27     // Issue #4824 item types that aren't references
28     {
29         use std::rc::Rc;
30
31         let o: Option<Rc<u32>> = Some(Rc::new(0_u32));
32         let _: Option<u32> = o.map(|x| *x);
33         let v: Vec<Rc<u32>> = vec![Rc::new(0_u32)];
34         let _: Vec<u32> = v.into_iter().map(|x| *x).collect();
35     }
36 }