4 #![warn(clippy::redundant_pattern_matching)]
9 clippy::match_like_matches_macro,
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 x = if let Some(_) = opt { true } else { false };
60 let _ = if let Some(_) = gen_opt() {
62 } else if let None = gen_opt() {
69 fn gen_opt() -> Option<()> {
73 fn takes_bool(_: bool) {}
79 // Methods that are unstable const should not be suggested within a const context, see issue #5697.
80 // However, in Rust 1.48.0 the methods `is_some` and `is_none` of `Option` were stabilized as const,
81 // so the following should be linted.
82 const fn issue6067() {
83 if let Some(_) = Some(42) {}
85 if let None = None::<()> {}
87 while let Some(_) = Some(42) {}
89 while let None = None::<()> {}