3 #![feature(const_if_match)]
4 #![feature(const_loop)]
6 #![warn(clippy::redundant_pattern_matching)]
7 #![allow(clippy::unit_arg, unused_must_use, clippy::needless_bool, deprecated)]
10 if Ok::<i32, i32>(42).is_ok() {}
12 if Err::<i32, i32>(42).is_err() {}
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 while Ok::<i32, i32>(10).is_ok() {}
32 while Ok::<i32, i32>(10).is_err() {}
34 let mut v = vec![1, 2, 3];
35 while v.pop().is_some() {
39 if Ok::<i32, i32>(42).is_ok() {}
41 if Err::<i32, i32>(42).is_err() {}
43 if None::<i32>.is_none() {}
45 if Some(42).is_some() {}
47 if let Ok(x) = Ok::<i32, i32>(42) {
51 Ok::<i32, i32>(42).is_ok();
53 Ok::<i32, i32>(42).is_err();
55 Err::<i32, i32>(42).is_err();
57 Err::<i32, i32>(42).is_ok();
63 let _ = None::<()>.is_none();
65 let _ = if Ok::<usize, ()>(4).is_ok() { true } else { false };
67 let opt = Some(false);
68 let x = if opt.is_some() { true } else { false };
74 let _ = if gen_opt().is_some() {
76 } else if gen_opt().is_none() {
78 } else if gen_res().is_ok() {
80 } else if gen_res().is_err() {
87 fn gen_opt() -> Option<()> {
91 fn gen_res() -> Result<(), ()> {
95 fn takes_bool(_: bool) {}
108 fn result_opt() -> Result<Option<i32>, i32> {
112 fn try_result_opt() -> Result<i32, i32> {
113 while r#try!(result_opt()).is_some() {}
114 if r#try!(result_opt()).is_some() {}
121 while m!().is_some() {}
124 // None of these should be linted because none of the suggested methods
125 // are `const fn` without toggling a feature.
126 const fn issue5697() {
127 if let Ok(_) = Ok::<i32, i32>(42) {}
129 if let Err(_) = Err::<i32, i32>(42) {}
131 if let Some(_) = Some(42) {}
133 if let None = None::<()> {}
135 while let Ok(_) = Ok::<i32, i32>(10) {}
137 while let Err(_) = Ok::<i32, i32>(10) {}
139 while let Some(_) = Some(42) {}
141 while let None = None::<()> {}
143 match Ok::<i32, i32>(42) {
148 match Err::<i32, i32>(42) {