Skip to content

Commit ee0de53

Browse files
committed
Add some tests
1 parent 1d168b3 commit ee0de53

File tree

3 files changed

+84
-20
lines changed

3 files changed

+84
-20
lines changed

tests/ui/clear_with_drain.fixed

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,38 +3,70 @@
33
#![warn(clippy::clear_with_drain)]
44

55
fn range() {
6-
let (mut u, mut v) = (vec![1, 2, 3], vec![1, 2, 3]);
7-
let iter = u.drain(0..u.len()); // Yay
6+
let mut v = vec![1, 2, 3];
7+
let iter = v.drain(0..v.len()); // Yay
8+
9+
let mut v = vec![1, 2, 3];
10+
let n = v.drain(0..v.len()).count(); // Yay
11+
12+
let mut v = vec![1, 2, 3];
813
v.clear(); // Nay
914
}
1015

1116
fn range_from() {
12-
let (mut u, mut v) = (vec![1, 2, 3], vec![1, 2, 3]);
13-
let iter = u.drain(0..); // Yay
17+
let mut v = vec![1, 2, 3];
18+
let iter = v.drain(0..); // Yay
19+
20+
let mut v = vec![1, 2, 3];
21+
let next = v.drain(0..).next(); // Yay
22+
23+
let mut v = vec![1, 2, 3];
1424
v.clear(); // Nay
1525
}
1626

1727
fn range_full() {
18-
let (mut u, mut v) = (vec![1, 2, 3], vec![1, 2, 3]);
19-
let iter = u.drain(..); // Yay
28+
let mut v = vec![1, 2, 3];
29+
let iter = v.drain(..); // Yay
30+
31+
let mut v = vec![1, 2, 3];
32+
// Yay
33+
for x in v.drain(..) {
34+
let y = format!("x = {x}");
35+
}
36+
37+
let mut v = vec![1, 2, 3];
2038
v.clear(); // Nay
2139
}
2240

2341
fn range_to() {
24-
let (mut u, mut v) = (vec![1, 2, 3], vec![1, 2, 3]);
25-
let iter = u.drain(..u.len()); // Yay
42+
let mut v = vec![1, 2, 3];
43+
let iter = v.drain(..v.len()); // Yay
44+
45+
let mut v = vec![1, 2, 3];
46+
// Yay
47+
for x in v.drain(..v.len()) {
48+
let y = format!("x = {x}");
49+
}
50+
51+
let mut v = vec![1, 2, 3];
2652
v.clear(); // Nay
2753
}
2854

2955
fn partial_drains() {
3056
let mut v = vec![1, 2, 3];
3157
v.drain(1..); // Yay
58+
let mut v = vec![1, 2, 3];
59+
v.drain(1..).max(); // Yay
3260

3361
let mut v = vec![1, 2, 3];
3462
v.drain(..v.len() - 1); // Yay
63+
let mut v = vec![1, 2, 3];
64+
v.drain(..v.len() - 1).min(); // Yay
3565

3666
let mut v = vec![1, 2, 3];
3767
v.drain(1..v.len() - 1); // Yay
68+
let mut v = vec![1, 2, 3];
69+
let w: Vec<i8> = v.drain(1..v.len() - 1).collect(); // Yay
3870
}
3971

4072
fn main() {}

tests/ui/clear_with_drain.rs

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,38 +3,70 @@
33
#![warn(clippy::clear_with_drain)]
44

55
fn range() {
6-
let (mut u, mut v) = (vec![1, 2, 3], vec![1, 2, 3]);
7-
let iter = u.drain(0..u.len()); // Yay
6+
let mut v = vec![1, 2, 3];
7+
let iter = v.drain(0..v.len()); // Yay
8+
9+
let mut v = vec![1, 2, 3];
10+
let n = v.drain(0..v.len()).count(); // Yay
11+
12+
let mut v = vec![1, 2, 3];
813
v.drain(0..v.len()); // Nay
914
}
1015

1116
fn range_from() {
12-
let (mut u, mut v) = (vec![1, 2, 3], vec![1, 2, 3]);
13-
let iter = u.drain(0..); // Yay
17+
let mut v = vec![1, 2, 3];
18+
let iter = v.drain(0..); // Yay
19+
20+
let mut v = vec![1, 2, 3];
21+
let next = v.drain(0..).next(); // Yay
22+
23+
let mut v = vec![1, 2, 3];
1424
v.drain(0..); // Nay
1525
}
1626

1727
fn range_full() {
18-
let (mut u, mut v) = (vec![1, 2, 3], vec![1, 2, 3]);
19-
let iter = u.drain(..); // Yay
28+
let mut v = vec![1, 2, 3];
29+
let iter = v.drain(..); // Yay
30+
31+
let mut v = vec![1, 2, 3];
32+
// Yay
33+
for x in v.drain(..) {
34+
let y = format!("x = {x}");
35+
}
36+
37+
let mut v = vec![1, 2, 3];
2038
v.drain(..); // Nay
2139
}
2240

2341
fn range_to() {
24-
let (mut u, mut v) = (vec![1, 2, 3], vec![1, 2, 3]);
25-
let iter = u.drain(..u.len()); // Yay
42+
let mut v = vec![1, 2, 3];
43+
let iter = v.drain(..v.len()); // Yay
44+
45+
let mut v = vec![1, 2, 3];
46+
// Yay
47+
for x in v.drain(..v.len()) {
48+
let y = format!("x = {x}");
49+
}
50+
51+
let mut v = vec![1, 2, 3];
2652
v.drain(..v.len()); // Nay
2753
}
2854

2955
fn partial_drains() {
3056
let mut v = vec![1, 2, 3];
3157
v.drain(1..); // Yay
58+
let mut v = vec![1, 2, 3];
59+
v.drain(1..).max(); // Yay
3260

3361
let mut v = vec![1, 2, 3];
3462
v.drain(..v.len() - 1); // Yay
63+
let mut v = vec![1, 2, 3];
64+
v.drain(..v.len() - 1).min(); // Yay
3565

3666
let mut v = vec![1, 2, 3];
3767
v.drain(1..v.len() - 1); // Yay
68+
let mut v = vec![1, 2, 3];
69+
let w: Vec<i8> = v.drain(1..v.len() - 1).collect(); // Yay
3870
}
3971

4072
fn main() {}

tests/ui/clear_with_drain.stderr

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
error: `drain` used to clear a `Vec`
2-
--> $DIR/clear_with_drain.rs:8:7
2+
--> $DIR/clear_with_drain.rs:13:7
33
|
44
LL | v.drain(0..v.len()); // Nay
55
| ^^^^^^^^^^^^^^^^^ help: try: `clear()`
66
|
77
= note: `-D clippy::clear-with-drain` implied by `-D warnings`
88

99
error: `drain` used to clear a `Vec`
10-
--> $DIR/clear_with_drain.rs:14:7
10+
--> $DIR/clear_with_drain.rs:24:7
1111
|
1212
LL | v.drain(0..); // Nay
1313
| ^^^^^^^^^^ help: try: `clear()`
1414

1515
error: `drain` used to clear a `Vec`
16-
--> $DIR/clear_with_drain.rs:20:7
16+
--> $DIR/clear_with_drain.rs:38:7
1717
|
1818
LL | v.drain(..); // Nay
1919
| ^^^^^^^^^ help: try: `clear()`
2020

2121
error: `drain` used to clear a `Vec`
22-
--> $DIR/clear_with_drain.rs:26:7
22+
--> $DIR/clear_with_drain.rs:52:7
2323
|
2424
LL | v.drain(..v.len()); // Nay
2525
| ^^^^^^^^^^^^^^^^ help: try: `clear()`

0 commit comments

Comments
 (0)