4 #![warn(clippy::redundant_pattern_matching)]
8 clippy::match_like_matches_macro,
9 clippy::equatable_if_let,
10 clippy::if_same_then_else
14 if let None = None::<()> {}
16 if let Some(_) = Some(42) {}
18 if let Some(_) = Some(42) {
24 while let Some(_) = Some(42) {}
26 while let None = Some(42) {}
28 while let None = None::<()> {}
30 let mut v = vec![1, 2, 3];
31 while let Some(_) = v.pop() {
35 if None::<i32>.is_none() {}
37 if Some(42).is_some() {}
49 let _ = match None::<()> {
54 let opt = Some(false);
55 let _ = if let Some(_) = opt { true } else { false };
59 let _ = if let Some(_) = gen_opt() {
61 } else if let None = gen_opt() {
68 fn gen_opt() -> Option<()> {
76 // Methods that are unstable const should not be suggested within a const context, see issue #5697.
77 // However, in Rust 1.48.0 the methods `is_some` and `is_none` of `Option` were stabilized as const,
78 // so the following should be linted.
79 const fn issue6067() {
80 if let Some(_) = Some(42) {}
82 if let None = None::<()> {}
84 while let Some(_) = Some(42) {}
86 while let None = None::<()> {}
99 #[allow(clippy::deref_addrof, dead_code, clippy::needless_borrow)]
101 if let None = *(&None::<()>) {}
102 if let None = *&None::<()> {}