4 #![warn(clippy::redundant_pattern_matching)]
8 clippy::match_like_matches_macro,
9 clippy::if_same_then_else
13 if None::<()>.is_none() {}
15 if Some(42).is_some() {}
17 if Some(42).is_some() {
23 while Some(42).is_some() {}
25 while Some(42).is_none() {}
27 while None::<()>.is_none() {}
29 let mut v = vec![1, 2, 3];
30 while v.pop().is_some() {
34 if None::<i32>.is_none() {}
36 if Some(42).is_some() {}
42 let _ = None::<()>.is_none();
44 let opt = Some(false);
45 let _ = if opt.is_some() { true } else { false };
49 let _ = if gen_opt().is_some() {
51 } else if gen_opt().is_none() {
58 fn gen_opt() -> Option<()> {
66 // Methods that are unstable const should not be suggested within a const context, see issue #5697.
67 // However, in Rust 1.48.0 the methods `is_some` and `is_none` of `Option` were stabilized as const,
68 // so the following should be linted.
69 const fn issue6067() {
70 if Some(42).is_some() {}
72 if None::<()>.is_none() {}
74 while Some(42).is_some() {}
76 while None::<()>.is_none() {}