]>
git.proxmox.com Git - rustc.git/blob - src/tools/clippy/tests/ui/option_as_ref_deref.rs
1aeedf211fe22dbc91f46349553a2778a419ac57
1 #![allow(unused, clippy::redundant_clone, clippy::useless_vec)]
2 #![warn(clippy::option_as_ref_deref)]
4 use std
::ffi
::{CString, OsString}
;
5 use std
::ops
::{Deref, DerefMut}
;
6 use std
::path
::PathBuf
;
9 let mut opt
= Some(String
::from("123"));
11 let _
= opt
.clone().as_ref().map(Deref
::deref
).map(str::len
);
20 let _
= opt
.as_mut().map(DerefMut
::deref_mut
);
22 let _
= opt
.as_ref().map(String
::as_str
);
23 let _
= opt
.as_ref().map(|x
| x
.as_str());
24 let _
= opt
.as_mut().map(String
::as_mut_str
);
25 let _
= opt
.as_mut().map(|x
| x
.as_mut_str());
26 let _
= Some(CString
::new(vec
![]).unwrap()).as_ref().map(CString
::as_c_str
);
27 let _
= Some(OsString
::new()).as_ref().map(OsString
::as_os_str
);
28 let _
= Some(PathBuf
::new()).as_ref().map(PathBuf
::as_path
);
29 let _
= Some(Vec
::<()>::new()).as_ref().map(Vec
::as_slice
);
30 let _
= Some(Vec
::<()>::new()).as_mut().map(Vec
::as_mut_slice
);
32 let _
= opt
.as_ref().map(|x
| x
.deref());
33 let _
= opt
.clone().as_mut().map(|x
| x
.deref_mut()).map(|x
| x
.len());
35 let vc
= vec
![String
::new()];
36 let _
= Some(1_usize
).as_ref().map(|x
| vc
[*x
].as_str()); // should not be linted
38 let _
: Option
<&str> = Some(&String
::new()).as_ref().map(|x
| x
.as_str()); // should not be linted
40 let _
= opt
.as_ref().map(|x
| &**x
);
41 let _
= opt
.as_mut().map(|x
| &mut **x
);
44 let _
= opt
.as_ref().map(std
::ops
::Deref
::deref
);
47 #[clippy::msrv = "1.39"]
49 let opt
= Some(String
::from("123"));
50 let _
= opt
.as_ref().map(String
::as_str
);
53 #[clippy::msrv = "1.40"]
55 let opt
= Some(String
::from("123"));
56 let _
= opt
.as_ref().map(String
::as_str
);