]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/tests/ui/needless_option_as_deref.rs
Merge commit '984330a6ee3c4d15626685d6dc8b7b759ff630bd' into clippyup
[rust.git] / src / tools / clippy / tests / ui / needless_option_as_deref.rs
1 // run-rustfix
2
3 #![allow(unused)]
4 #![warn(clippy::needless_option_as_deref)]
5
6 fn main() {
7     // should lint
8     let _: Option<&usize> = Some(&1).as_deref();
9     let _: Option<&mut usize> = Some(&mut 1).as_deref_mut();
10
11     let mut y = 0;
12     let mut x = Some(&mut y);
13     let _ = x.as_deref_mut();
14
15     // should not lint
16     let _ = Some(Box::new(1)).as_deref();
17     let _ = Some(Box::new(1)).as_deref_mut();
18
19     // #7846
20     let mut i = 0;
21     let mut opt_vec = vec![Some(&mut i)];
22     opt_vec[0].as_deref_mut().unwrap();
23
24     let mut i = 0;
25     let x = &mut Some(&mut i);
26     (*x).as_deref_mut();
27
28     // #8047
29     let mut y = 0;
30     let mut x = Some(&mut y);
31     x.as_deref_mut();
32     dbg!(x);
33 }
34
35 struct S<'a> {
36     opt: Option<&'a mut usize>,
37 }
38
39 fn from_field<'a>(s: &'a mut S<'a>) -> Option<&'a mut usize> {
40     s.opt.as_deref_mut()
41 }