mirror of https://github.com/rust-lang/rust.git
Add ui test for `map_unit_fn` lint in closure case
This commit is contained in:
parent
a87443a859
commit
b93d54556f
|
@ -8,4 +8,13 @@ fn main() {
|
|||
let mut x: Vec<Vec<u8>> = vec![vec![0, 2, 1], vec![5, 4, 3]];
|
||||
x.iter_mut().map(foo);
|
||||
//~^ ERROR `Iterator::map` call that discard the iterator's values
|
||||
x.iter_mut().map(|items| {
|
||||
//~^ ERROR `Iterator::map` call that discard the iterator's values
|
||||
items.sort();
|
||||
});
|
||||
let f = |items: &mut Vec<u8>| {
|
||||
items.sort();
|
||||
};
|
||||
x.iter_mut().map(f);
|
||||
//~^ ERROR `Iterator::map` call that discard the iterator's values
|
||||
}
|
||||
|
|
|
@ -21,5 +21,46 @@ help: you might have meant to use `Iterator::for_each`
|
|||
LL | x.iter_mut().for_each(foo);
|
||||
| ~~~~~~~~
|
||||
|
||||
error: aborting due to previous error
|
||||
error: `Iterator::map` call that discard the iterator's values
|
||||
--> $DIR/lint_map_unit_fn.rs:11:18
|
||||
|
|
||||
LL | x.iter_mut().map(|items| {
|
||||
| ^ -------
|
||||
| | |
|
||||
| ____________________|___this function returns `()`, which is likely not what you wanted
|
||||
| | __________________|
|
||||
| | |
|
||||
LL | | |
|
||||
LL | | | items.sort();
|
||||
LL | | | });
|
||||
| | | -^ after this call to map, the resulting iterator is `impl Iterator<Item = ()>`, which means the only information carried by the iterator is the number of items
|
||||
| | |_____||
|
||||
| |_______|
|
||||
| called `Iterator::map` with callable that returns `()`
|
||||
|
|
||||
= note: `Iterator::map`, like many of the methods on `Iterator`, gets executed lazily, meaning that its effects won't be visible until it is iterated
|
||||
help: you might have meant to use `Iterator::for_each`
|
||||
|
|
||||
LL | x.iter_mut().for_each(|items| {
|
||||
| ~~~~~~~~
|
||||
|
||||
error: `Iterator::map` call that discard the iterator's values
|
||||
--> $DIR/lint_map_unit_fn.rs:18:18
|
||||
|
|
||||
LL | let f = |items: &mut Vec<u8>| {
|
||||
| --------------------- this function returns `()`, which is likely not what you wanted
|
||||
...
|
||||
LL | x.iter_mut().map(f);
|
||||
| ^^^^-^
|
||||
| | |
|
||||
| | called `Iterator::map` with callable that returns `()`
|
||||
| after this call to map, the resulting iterator is `impl Iterator<Item = ()>`, which means the only information carried by the iterator is the number of items
|
||||
|
|
||||
= note: `Iterator::map`, like many of the methods on `Iterator`, gets executed lazily, meaning that its effects won't be visible until it is iterated
|
||||
help: you might have meant to use `Iterator::for_each`
|
||||
|
|
||||
LL | x.iter_mut().for_each(f);
|
||||
| ~~~~~~~~
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
|
|
Loading…
Reference in New Issue