3 #![allow(unused_imports, clippy::redundant_clone)]
4 #![warn(clippy::option_as_ref_deref)]
6 use std::ffi::{CString, OsString};
7 use std::ops::{Deref, DerefMut};
8 use std::path::PathBuf;
11 let mut opt = Some(String::from("123"));
13 let _ = opt.clone().as_deref().map(str::len);
16 let _ = opt.clone().as_deref()
19 let _ = opt.as_deref_mut();
21 let _ = opt.as_deref();
22 let _ = opt.as_deref();
23 let _ = opt.as_deref_mut();
24 let _ = opt.as_deref_mut();
25 let _ = Some(CString::new(vec![]).unwrap()).as_deref();
26 let _ = Some(OsString::new()).as_deref();
27 let _ = Some(PathBuf::new()).as_deref();
28 let _ = Some(Vec::<()>::new()).as_deref();
29 let _ = Some(Vec::<()>::new()).as_deref_mut();
31 let _ = opt.as_deref();
32 let _ = opt.clone().as_deref_mut().map(|x| x.len());
34 let vc = vec![String::new()];
35 let _ = Some(1_usize).as_ref().map(|x| vc[*x].as_str()); // should not be linted
37 let _: Option<&str> = Some(&String::new()).as_ref().map(|x| x.as_str()); // should not be linted
39 let _ = opt.as_deref();
40 let _ = opt.as_deref_mut();
43 let _ = opt.as_deref();