Skip to content

Commit 46a32e8

Browse files
committed
Test all types supported by [collection_is_never_read]
Demonstrate false negative for `String` as discussed in #10572.
1 parent 4904d75 commit 46a32e8

File tree

2 files changed

+89
-1
lines changed

2 files changed

+89
-1
lines changed

tests/ui/collection_is_never_read.rs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,3 +163,37 @@ fn function_argument() {
163163
let x = vec![1, 2, 3]; // Ok
164164
foo(&x);
165165
}
166+
167+
fn supported_types() {
168+
let mut x = std::collections::BTreeMap::new(); // WARNING
169+
x.insert(true, 1);
170+
171+
let mut x = std::collections::BTreeSet::new(); // WARNING
172+
x.insert(1);
173+
174+
let mut x = std::collections::BinaryHeap::new(); // WARNING
175+
x.push(1);
176+
177+
let mut x = std::collections::HashMap::new(); // WARNING
178+
x.insert(1, 2);
179+
180+
let mut x = std::collections::HashSet::new(); // WARNING
181+
x.insert(1);
182+
183+
let mut x = std::collections::LinkedList::new(); // WARNING
184+
x.push_front(1);
185+
186+
let mut x = Some(true); // WARNING
187+
x.insert(false);
188+
189+
// https://github.com/rust-lang/rust-clippy/issues/10572#issuecomment-1498760833
190+
let mut x = String::from("hello"); // False negative
191+
x.push('!');
192+
193+
let mut x = Vec::new(); // WARNING
194+
x.clear();
195+
x.push(1);
196+
197+
let mut x = std::collections::VecDeque::new(); // WARNING
198+
x.push_front(1);
199+
}

tests/ui/collection_is_never_read.stderr

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,5 +48,59 @@ error: collection is never read
4848
LL | let x = vec![1, 2, 3]; // WARNING
4949
| ^^^^^^^^^^^^^^^^^^^^^^
5050

51-
error: aborting due to 8 previous errors
51+
error: collection is never read
52+
--> $DIR/collection_is_never_read.rs:168:5
53+
|
54+
LL | let mut x = std::collections::BTreeMap::new(); // WARNING
55+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
56+
57+
error: collection is never read
58+
--> $DIR/collection_is_never_read.rs:171:5
59+
|
60+
LL | let mut x = std::collections::BTreeSet::new(); // WARNING
61+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
62+
63+
error: collection is never read
64+
--> $DIR/collection_is_never_read.rs:174:5
65+
|
66+
LL | let mut x = std::collections::BinaryHeap::new(); // WARNING
67+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
68+
69+
error: collection is never read
70+
--> $DIR/collection_is_never_read.rs:177:5
71+
|
72+
LL | let mut x = std::collections::HashMap::new(); // WARNING
73+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
74+
75+
error: collection is never read
76+
--> $DIR/collection_is_never_read.rs:180:5
77+
|
78+
LL | let mut x = std::collections::HashSet::new(); // WARNING
79+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
80+
81+
error: collection is never read
82+
--> $DIR/collection_is_never_read.rs:183:5
83+
|
84+
LL | let mut x = std::collections::LinkedList::new(); // WARNING
85+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
86+
87+
error: collection is never read
88+
--> $DIR/collection_is_never_read.rs:186:5
89+
|
90+
LL | let mut x = Some(true); // WARNING
91+
| ^^^^^^^^^^^^^^^^^^^^^^^
92+
93+
error: collection is never read
94+
--> $DIR/collection_is_never_read.rs:193:5
95+
|
96+
LL | let mut x = Vec::new(); // WARNING
97+
| ^^^^^^^^^^^^^^^^^^^^^^^
98+
99+
error: collection is never read
100+
--> $DIR/collection_is_never_read.rs:197:5
101+
|
102+
LL | let mut x = std::collections::VecDeque::new(); // WARNING
103+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
104+
105+
error: aborting due to 17 previous errors
52106

0 commit comments

Comments
 (0)