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 x = if opt.is_some() { true } else { false };
45 let _ = if gen_opt().is_some() {
47 } else if gen_opt().is_none() {
54 fn gen_opt() -> Option<()> {
58 fn takes_bool(_: bool) {}
64 // Methods that are unstable const should not be suggested within a const context, see issue #5697.
65 // However, in Rust 1.48.0 the methods `is_some` and `is_none` of `Option` were stabilized as const,
66 // so the following should be linted.
67 const fn issue6067() {
68 if Some(42).is_some() {}
70 if None::<()>.is_none() {}
72 while Some(42).is_some() {}
74 while None::<()>.is_none() {}