]>
Commit | Line | Data |
---|---|---|
fe692bf9 FG |
1 | //@run-rustfix |
2 | #![warn(clippy::unnecessary_literal_unwrap)] | |
3 | #![allow(unreachable_code)] | |
4 | #![allow( | |
5 | clippy::unnecessary_lazy_evaluations, | |
6 | clippy::diverging_sub_expression, | |
7 | clippy::let_unit_value, | |
8 | clippy::no_effect | |
9 | )] | |
10 | ||
11 | fn unwrap_option_some() { | |
12 | let _val = Some(1).unwrap(); | |
13 | let _val = Some(1).expect("this never happens"); | |
14 | ||
15 | Some(1).unwrap(); | |
16 | Some(1).expect("this never happens"); | |
17 | } | |
18 | ||
19 | #[rustfmt::skip] // force rustfmt not to remove braces in `|| { 234 }` | |
20 | fn unwrap_option_none() { | |
21 | let _val = None::<()>.unwrap(); | |
22 | let _val = None::<()>.expect("this always happens"); | |
23 | let _val: String = None.unwrap_or_default(); | |
24 | let _val: u16 = None.unwrap_or(234); | |
25 | let _val: u16 = None.unwrap_or_else(|| 234); | |
26 | let _val: u16 = None.unwrap_or_else(|| { 234 }); | |
27 | let _val: u16 = None.unwrap_or_else(|| -> u16 { 234 }); | |
28 | ||
29 | None::<()>.unwrap(); | |
30 | None::<()>.expect("this always happens"); | |
31 | None::<String>.unwrap_or_default(); | |
32 | None::<u16>.unwrap_or(234); | |
33 | None::<u16>.unwrap_or_else(|| 234); | |
34 | None::<u16>.unwrap_or_else(|| { 234 }); | |
35 | None::<u16>.unwrap_or_else(|| -> u16 { 234 }); | |
36 | } | |
37 | ||
38 | fn unwrap_result_ok() { | |
39 | let _val = Ok::<_, ()>(1).unwrap(); | |
40 | let _val = Ok::<_, ()>(1).expect("this never happens"); | |
41 | let _val = Ok::<_, ()>(1).unwrap_err(); | |
42 | let _val = Ok::<_, ()>(1).expect_err("this always happens"); | |
43 | ||
44 | Ok::<_, ()>(1).unwrap(); | |
45 | Ok::<_, ()>(1).expect("this never happens"); | |
46 | Ok::<_, ()>(1).unwrap_err(); | |
47 | Ok::<_, ()>(1).expect_err("this always happens"); | |
48 | } | |
49 | ||
50 | fn unwrap_result_err() { | |
51 | let _val = Err::<(), _>(1).unwrap_err(); | |
52 | let _val = Err::<(), _>(1).expect_err("this never happens"); | |
53 | let _val = Err::<(), _>(1).unwrap(); | |
54 | let _val = Err::<(), _>(1).expect("this always happens"); | |
55 | ||
56 | Err::<(), _>(1).unwrap_err(); | |
57 | Err::<(), _>(1).expect_err("this never happens"); | |
58 | Err::<(), _>(1).unwrap(); | |
59 | Err::<(), _>(1).expect("this always happens"); | |
60 | } | |
61 | ||
62 | fn unwrap_methods_option() { | |
63 | let _val = Some(1).unwrap_or(2); | |
64 | let _val = Some(1).unwrap_or_default(); | |
65 | let _val = Some(1).unwrap_or_else(|| 2); | |
66 | ||
67 | Some(1).unwrap_or(2); | |
68 | Some(1).unwrap_or_default(); | |
69 | Some(1).unwrap_or_else(|| 2); | |
70 | } | |
71 | ||
72 | fn unwrap_methods_result() { | |
73 | let _val = Ok::<_, ()>(1).unwrap_or(2); | |
74 | let _val = Ok::<_, ()>(1).unwrap_or_default(); | |
75 | let _val = Ok::<_, ()>(1).unwrap_or_else(|_| 2); | |
76 | ||
77 | Ok::<_, ()>(1).unwrap_or(2); | |
78 | Ok::<_, ()>(1).unwrap_or_default(); | |
79 | Ok::<_, ()>(1).unwrap_or_else(|_| 2); | |
80 | } | |
81 | ||
add651ee FG |
82 | fn unwrap_from_binding() { |
83 | macro_rules! from_macro { | |
84 | () => { | |
85 | Some("") | |
86 | }; | |
87 | } | |
88 | let val = from_macro!(); | |
89 | let _ = val.unwrap_or(""); | |
90 | } | |
91 | ||
92 | fn unwrap_unchecked() { | |
93 | let _ = unsafe { Some(1).unwrap_unchecked() }; | |
94 | let _ = unsafe { Some(1).unwrap_unchecked() + *(&1 as *const i32) }; // needs to keep the unsafe block | |
95 | let _ = unsafe { Some(1).unwrap_unchecked() } + 1; | |
96 | let _ = unsafe { Ok::<_, ()>(1).unwrap_unchecked() }; | |
97 | let _ = unsafe { Ok::<_, ()>(1).unwrap_unchecked() + *(&1 as *const i32) }; | |
98 | let _ = unsafe { Ok::<_, ()>(1).unwrap_unchecked() } + 1; | |
99 | let _ = unsafe { Err::<(), i32>(123).unwrap_err_unchecked() }; | |
100 | } | |
101 | ||
fe692bf9 FG |
102 | fn main() { |
103 | unwrap_option_some(); | |
104 | unwrap_option_none(); | |
105 | unwrap_result_ok(); | |
106 | unwrap_result_err(); | |
107 | unwrap_methods_option(); | |
108 | unwrap_methods_result(); | |
add651ee | 109 | unwrap_unchecked(); |
fe692bf9 | 110 | } |