|
1 |
| -#![warn(clippy::while_let_loop, clippy::empty_loop, clippy::while_let_on_iterator)] |
2 |
| -#![allow(dead_code, clippy::never_loop, unused, clippy::cognitive_complexity)] |
| 1 | +#![warn(clippy::while_let_on_iterator)] |
| 2 | +#![allow(clippy::never_loop, clippy::cognitive_complexity)] |
3 | 3 |
|
4 | 4 | fn main() {
|
5 |
| - let y = Some(true); |
6 |
| - loop { |
7 |
| - if let Some(_x) = y { |
8 |
| - let _v = 1; |
9 |
| - } else { |
10 |
| - break; |
11 |
| - } |
12 |
| - } |
13 |
| - loop { |
14 |
| - // no error, break is not in else clause |
15 |
| - if let Some(_x) = y { |
16 |
| - let _v = 1; |
17 |
| - } |
18 |
| - break; |
19 |
| - } |
20 |
| - loop { |
21 |
| - match y { |
22 |
| - Some(_x) => true, |
23 |
| - None => break, |
24 |
| - }; |
25 |
| - } |
26 |
| - loop { |
27 |
| - let x = match y { |
28 |
| - Some(x) => x, |
29 |
| - None => break, |
30 |
| - }; |
31 |
| - let _x = x; |
32 |
| - let _str = "foo"; |
33 |
| - } |
34 |
| - loop { |
35 |
| - let x = match y { |
36 |
| - Some(x) => x, |
37 |
| - None => break, |
38 |
| - }; |
39 |
| - { |
40 |
| - let _a = "bar"; |
41 |
| - }; |
42 |
| - { |
43 |
| - let _b = "foobar"; |
44 |
| - } |
45 |
| - } |
46 |
| - loop { |
47 |
| - // no error, else branch does something other than break |
48 |
| - match y { |
49 |
| - Some(_x) => true, |
50 |
| - _ => { |
51 |
| - let _z = 1; |
52 |
| - break; |
53 |
| - }, |
54 |
| - }; |
55 |
| - } |
56 |
| - while let Some(x) = y { |
57 |
| - // no error, obviously |
58 |
| - println!("{}", x); |
59 |
| - } |
60 |
| - |
61 |
| - // #675, this used to have a wrong suggestion |
62 |
| - loop { |
63 |
| - let (e, l) = match "".split_whitespace().next() { |
64 |
| - Some(word) => (word.is_empty(), word.len()), |
65 |
| - None => break, |
66 |
| - }; |
67 |
| - |
68 |
| - let _ = (e, l); |
69 |
| - } |
70 |
| - |
71 | 5 | let mut iter = 1..20;
|
72 | 6 | while let Option::Some(x) = iter.next() {
|
73 | 7 | println!("{}", x);
|
@@ -116,36 +50,6 @@ fn main() {
|
116 | 50 | }
|
117 | 51 | }
|
118 | 52 |
|
119 |
| -// regression test (#360) |
120 |
| -// this should not panic |
121 |
| -// it's ok if further iterations of the lint |
122 |
| -// cause this function to trigger it |
123 |
| -fn no_panic<T>(slice: &[T]) { |
124 |
| - let mut iter = slice.iter(); |
125 |
| - loop { |
126 |
| - let _ = match iter.next() { |
127 |
| - Some(ele) => ele, |
128 |
| - None => break, |
129 |
| - }; |
130 |
| - loop {} |
131 |
| - } |
132 |
| -} |
133 |
| - |
134 |
| -fn issue1017() { |
135 |
| - let r: Result<u32, u32> = Ok(42); |
136 |
| - let mut len = 1337; |
137 |
| - |
138 |
| - loop { |
139 |
| - match r { |
140 |
| - Err(_) => len = 0, |
141 |
| - Ok(length) => { |
142 |
| - len = length; |
143 |
| - break; |
144 |
| - }, |
145 |
| - } |
146 |
| - } |
147 |
| -} |
148 |
| - |
149 | 53 | // Issue #1188
|
150 | 54 | fn refutable() {
|
151 | 55 | let a = [42, 1337];
|
@@ -194,18 +98,6 @@ fn nested_loops() {
|
194 | 98 | }
|
195 | 99 | }
|
196 | 100 |
|
197 |
| -fn issue1948() { |
198 |
| - // should not trigger clippy::while_let_loop lint because break passes an expression |
199 |
| - let a = Some(10); |
200 |
| - let b = loop { |
201 |
| - if let Some(c) = a { |
202 |
| - break Some(c); |
203 |
| - } else { |
204 |
| - break None; |
205 |
| - } |
206 |
| - }; |
207 |
| -} |
208 |
| - |
209 | 101 | fn issue1121() {
|
210 | 102 | use std::collections::HashSet;
|
211 | 103 | let mut values = HashSet::new();
|
@@ -238,18 +130,3 @@ fn issue3670() {
|
238 | 130 | let _ = elem.or_else(|| *iter.next()?);
|
239 | 131 | }
|
240 | 132 | }
|
241 |
| - |
242 |
| -fn issue771() { |
243 |
| - let mut a = 100; |
244 |
| - let b = Some(true); |
245 |
| - loop { |
246 |
| - if a > 10 { |
247 |
| - break; |
248 |
| - } |
249 |
| - |
250 |
| - match b { |
251 |
| - Some(_) => a = 0, |
252 |
| - None => break, |
253 |
| - } |
254 |
| - } |
255 |
| -} |
0 commit comments