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 None::<()>.is_none() {}
16 if Some(42).is_some() {}
18 if Some(42).is_some() {
24 while Some(42).is_some() {}
26 while Some(42).is_none() {}
28 while None::<()>.is_none() {}
30 let mut v = vec![1, 2, 3];
31 while v.pop().is_some() {
35 if None::<i32>.is_none() {}
37 if Some(42).is_some() {}
43 let _ = None::<()>.is_none();
45 let opt = Some(false);
46 let _ = if opt.is_some() { true } else { false };
50 let _ = if gen_opt().is_some() {
52 } else if gen_opt().is_none() {
59 fn gen_opt() -> Option<()> {
67 // Methods that are unstable const should not be suggested within a const context, see issue #5697.
68 // However, in Rust 1.48.0 the methods `is_some` and `is_none` of `Option` were stabilized as const,
69 // so the following should be linted.
70 const fn issue6067() {
71 if Some(42).is_some() {}
73 if None::<()>.is_none() {}
75 while Some(42).is_some() {}
77 while None::<()>.is_none() {}
84 #[allow(clippy::deref_addrof, dead_code, clippy::needless_borrow)]
86 if (&None::<()>).is_none() {}
87 if (&None::<()>).is_none() {}