4 #![warn(clippy::redundant_pattern_matching)]
5 #![allow(unused_must_use, clippy::needless_bool, clippy::match_like_matches_macro)]
8 if None::<()>.is_none() {}
10 if Some(42).is_some() {}
12 if Some(42).is_some() {
18 while Some(42).is_some() {}
20 while Some(42).is_none() {}
22 while None::<()>.is_none() {}
24 let mut v = vec![1, 2, 3];
25 while v.pop().is_some() {
29 if None::<i32>.is_none() {}
31 if Some(42).is_some() {}
37 let _ = None::<()>.is_none();
39 let opt = Some(false);
40 let _ = if opt.is_some() { true } else { false };
44 let _ = if gen_opt().is_some() {
46 } else if gen_opt().is_none() {
53 fn gen_opt() -> Option<()> {
61 // Methods that are unstable const should not be suggested within a const context, see issue #5697.
62 // However, in Rust 1.48.0 the methods `is_some` and `is_none` of `Option` were stabilized as const,
63 // so the following should be linted.
64 const fn issue6067() {
65 if Some(42).is_some() {}
67 if None::<()>.is_none() {}
69 while Some(42).is_some() {}
71 while None::<()>.is_none() {}