Skip to content

Commit 213003b

Browse files
committed
Auto merge of #9705 - jntrnr:disable_needless_collect, r=Manishearth
Move needless_collect to nursery *Please write a short comment explaining your change (or "none" for internal only changes)* changelog: [`needless_collect`]: Move `needless_collect` to nursery (Now allow-by-default) After chatting with a few folks, it seems like `needless_collect` is giving false positives pretty regularly (https://github.com/rust-lang/rust-clippy/issues?q=is%3Aissue+is%3Aopen+needless_collect). We're big supporters of clippy in Nushell, and it's one of the passes we require for CI, but we've had to disable this particular lint. Perhaps it should be moved to the nursery until it's improved? (apologies if this isn't the right approach to disabling a lint by default. I tried to follow the idea I saw other PRs doing in the past)
2 parents 927f7da + 4f3fb00 commit 213003b

File tree

3 files changed

+18
-17
lines changed

3 files changed

+18
-17
lines changed

clippy_lints/src/loops/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ declare_clippy_lint! {
223223
/// ```
224224
#[clippy::version = "1.30.0"]
225225
pub NEEDLESS_COLLECT,
226-
perf,
226+
nursery,
227227
"collecting an iterator when collect is not needed"
228228
}
229229

tests/ui/needless_collect_indirect.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#![allow(clippy::uninlined_format_args)]
2+
#![warn(clippy::needless_collect)]
23

34
use std::collections::{BinaryHeap, HashMap, HashSet, LinkedList, VecDeque};
45

tests/ui/needless_collect_indirect.stderr

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error: avoid using `collect()` when not needed
2-
--> $DIR/needless_collect_indirect.rs:7:39
2+
--> $DIR/needless_collect_indirect.rs:8:39
33
|
44
LL | let indirect_iter = sample.iter().collect::<Vec<_>>();
55
| ^^^^^^^
@@ -14,7 +14,7 @@ LL ~ sample.iter().map(|x| (x, x + 1)).collect::<HashMap<_, _>>();
1414
|
1515

1616
error: avoid using `collect()` when not needed
17-
--> $DIR/needless_collect_indirect.rs:9:38
17+
--> $DIR/needless_collect_indirect.rs:10:38
1818
|
1919
LL | let indirect_len = sample.iter().collect::<VecDeque<_>>();
2020
| ^^^^^^^
@@ -28,7 +28,7 @@ LL ~ sample.iter().count();
2828
|
2929

3030
error: avoid using `collect()` when not needed
31-
--> $DIR/needless_collect_indirect.rs:11:40
31+
--> $DIR/needless_collect_indirect.rs:12:40
3232
|
3333
LL | let indirect_empty = sample.iter().collect::<VecDeque<_>>();
3434
| ^^^^^^^
@@ -42,7 +42,7 @@ LL ~ sample.iter().next().is_none();
4242
|
4343

4444
error: avoid using `collect()` when not needed
45-
--> $DIR/needless_collect_indirect.rs:13:43
45+
--> $DIR/needless_collect_indirect.rs:14:43
4646
|
4747
LL | let indirect_contains = sample.iter().collect::<VecDeque<_>>();
4848
| ^^^^^^^
@@ -56,7 +56,7 @@ LL ~ sample.iter().any(|x| x == &5);
5656
|
5757

5858
error: avoid using `collect()` when not needed
59-
--> $DIR/needless_collect_indirect.rs:25:48
59+
--> $DIR/needless_collect_indirect.rs:26:48
6060
|
6161
LL | let non_copy_contains = sample.into_iter().collect::<Vec<_>>();
6262
| ^^^^^^^
@@ -70,7 +70,7 @@ LL ~ sample.into_iter().any(|x| x == a);
7070
|
7171

7272
error: avoid using `collect()` when not needed
73-
--> $DIR/needless_collect_indirect.rs:54:51
73+
--> $DIR/needless_collect_indirect.rs:55:51
7474
|
7575
LL | let buffer: Vec<&str> = string.split('/').collect();
7676
| ^^^^^^^
@@ -84,7 +84,7 @@ LL ~ string.split('/').count()
8484
|
8585

8686
error: avoid using `collect()` when not needed
87-
--> $DIR/needless_collect_indirect.rs:59:55
87+
--> $DIR/needless_collect_indirect.rs:60:55
8888
|
8989
LL | let indirect_len: VecDeque<_> = sample.iter().collect();
9090
| ^^^^^^^
@@ -98,7 +98,7 @@ LL ~ sample.iter().count()
9898
|
9999

100100
error: avoid using `collect()` when not needed
101-
--> $DIR/needless_collect_indirect.rs:64:57
101+
--> $DIR/needless_collect_indirect.rs:65:57
102102
|
103103
LL | let indirect_len: LinkedList<_> = sample.iter().collect();
104104
| ^^^^^^^
@@ -112,7 +112,7 @@ LL ~ sample.iter().count()
112112
|
113113

114114
error: avoid using `collect()` when not needed
115-
--> $DIR/needless_collect_indirect.rs:69:57
115+
--> $DIR/needless_collect_indirect.rs:70:57
116116
|
117117
LL | let indirect_len: BinaryHeap<_> = sample.iter().collect();
118118
| ^^^^^^^
@@ -126,7 +126,7 @@ LL ~ sample.iter().count()
126126
|
127127

128128
error: avoid using `collect()` when not needed
129-
--> $DIR/needless_collect_indirect.rs:129:59
129+
--> $DIR/needless_collect_indirect.rs:130:59
130130
|
131131
LL | let y: Vec<usize> = vec.iter().map(|k| k * k).collect();
132132
| ^^^^^^^
@@ -143,7 +143,7 @@ LL ~ vec.iter().map(|k| k * k).any(|x| x == i);
143143
|
144144

145145
error: avoid using `collect()` when not needed
146-
--> $DIR/needless_collect_indirect.rs:154:59
146+
--> $DIR/needless_collect_indirect.rs:155:59
147147
|
148148
LL | let y: Vec<usize> = vec.iter().map(|k| k * k).collect();
149149
| ^^^^^^^
@@ -160,7 +160,7 @@ LL ~ vec.iter().map(|k| k * k).any(|x| x == n);
160160
|
161161

162162
error: avoid using `collect()` when not needed
163-
--> $DIR/needless_collect_indirect.rs:183:63
163+
--> $DIR/needless_collect_indirect.rs:184:63
164164
|
165165
LL | let y: Vec<usize> = vec.iter().map(|k| k * k).collect();
166166
| ^^^^^^^
@@ -177,7 +177,7 @@ LL ~ vec.iter().map(|k| k * k).any(|x| x == n);
177177
|
178178

179179
error: avoid using `collect()` when not needed
180-
--> $DIR/needless_collect_indirect.rs:219:59
180+
--> $DIR/needless_collect_indirect.rs:220:59
181181
|
182182
LL | let y: Vec<usize> = vec.iter().map(|k| k * k).collect();
183183
| ^^^^^^^
@@ -195,7 +195,7 @@ LL ~ vec.iter().map(|k| k * k).any(|x| x == n);
195195
|
196196

197197
error: avoid using `collect()` when not needed
198-
--> $DIR/needless_collect_indirect.rs:244:26
198+
--> $DIR/needless_collect_indirect.rs:245:26
199199
|
200200
LL | let w = v.iter().collect::<Vec<_>>();
201201
| ^^^^^^^
@@ -211,7 +211,7 @@ LL ~ for _ in 0..v.iter().count() {
211211
|
212212

213213
error: avoid using `collect()` when not needed
214-
--> $DIR/needless_collect_indirect.rs:266:30
214+
--> $DIR/needless_collect_indirect.rs:267:30
215215
|
216216
LL | let mut w = v.iter().collect::<Vec<_>>();
217217
| ^^^^^^^
@@ -227,7 +227,7 @@ LL ~ while 1 == v.iter().count() {
227227
|
228228

229229
error: avoid using `collect()` when not needed
230-
--> $DIR/needless_collect_indirect.rs:288:30
230+
--> $DIR/needless_collect_indirect.rs:289:30
231231
|
232232
LL | let mut w = v.iter().collect::<Vec<_>>();
233233
| ^^^^^^^

0 commit comments

Comments
 (0)