add more test coverage for #11230 (#13915)

Closes #11230

changelog:  none
This commit is contained in:
Timo 2025-01-11 23:28:57 +00:00 committed by GitHub
commit a895bebcd7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 46 additions and 0 deletions

View file

@ -0,0 +1,16 @@
// Test for https://github.com/rust-lang/rust-clippy/issues/11230
#![warn(clippy::explicit_iter_loop)]
#![warn(clippy::needless_collect)]
// explicit_iter_loop
fn main() {
const A: &[for<'a> fn(&'a ())] = &[];
for v in A {}
}
// needless_collect
trait Helper<'a>: Iterator<Item = fn()> {}
fn x(w: &mut dyn for<'a> Helper<'a>) {
w.next().is_none();
}

View file

@ -1,6 +1,16 @@
// Test for https://github.com/rust-lang/rust-clippy/issues/11230
#![warn(clippy::explicit_iter_loop)]
#![warn(clippy::needless_collect)]
// explicit_iter_loop
fn main() {
const A: &[for<'a> fn(&'a ())] = &[];
for v in A.iter() {}
}
// needless_collect
trait Helper<'a>: Iterator<Item = fn()> {}
fn x(w: &mut dyn for<'a> Helper<'a>) {
w.collect::<Vec<_>>().is_empty();
}

View file

@ -0,0 +1,20 @@
error: it is more concise to loop over references to containers instead of using explicit iteration methods
--> tests/ui/crashes/ice-11230.rs:8:14
|
LL | for v in A.iter() {}
| ^^^^^^^^ help: to write this more concisely, try: `A`
|
= note: `-D clippy::explicit-iter-loop` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(clippy::explicit_iter_loop)]`
error: avoid using `collect()` when not needed
--> tests/ui/crashes/ice-11230.rs:15:7
|
LL | w.collect::<Vec<_>>().is_empty();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `next().is_none()`
|
= note: `-D clippy::needless-collect` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(clippy::needless_collect)]`
error: aborting due to 2 previous errors