]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/tests/ui/needless_option_as_deref.fixed
Rollup merge of #98111 - eggyal:issue-97982, r=GuillaumeGomez
[rust.git] / src / tools / clippy / tests / ui / needless_option_as_deref.fixed
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);
9     let _: Option<&mut usize> = Some(&mut 1);
10
11     let mut y = 0;
12     let mut x = Some(&mut y);
13     let _ = x;
14
15     // should not lint
16     let _ = Some(Box::new(1)).as_deref();
17     let _ = Some(Box::new(1)).as_deref_mut();
18
19     let mut y = 0;
20     let mut x = Some(&mut y);
21     for _ in 0..3 {
22         let _ = x.as_deref_mut();
23     }
24
25     let mut y = 0;
26     let mut x = Some(&mut y);
27     let mut closure = || {
28         let _ = x.as_deref_mut();
29     };
30     closure();
31     closure();
32
33     // #7846
34     let mut i = 0;
35     let mut opt_vec = vec![Some(&mut i)];
36     opt_vec[0].as_deref_mut().unwrap();
37
38     let mut i = 0;
39     let x = &mut Some(&mut i);
40     (*x).as_deref_mut();
41
42     // #8047
43     let mut y = 0;
44     let mut x = Some(&mut y);
45     x.as_deref_mut();
46     dbg!(x);
47 }
48
49 struct S<'a> {
50     opt: Option<&'a mut usize>,
51 }
52
53 fn from_field<'a>(s: &'a mut S<'a>) -> Option<&'a mut usize> {
54     s.opt.as_deref_mut()
55 }