diff options
| author | Chayim Refael Friedman <chayimfr@gmail.com> | 2022-06-08 11:09:08 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-08 11:09:08 +0000 |
| commit | 456f1ffe12062f99cf800dd20d81e12e4131cb69 (patch) | |
| tree | 533dcf1135dd75a670cd294d9d8d7e71b66e8a78 /src/test | |
| parent | 47aee31b2a89cb7de97d779869a30b046632b6af (diff) | |
| download | rust-456f1ffe12062f99cf800dd20d81e12e4131cb69.tar.gz rust-456f1ffe12062f99cf800dd20d81e12e4131cb69.zip | |
Suggest using `iter()` or `into_iter()` for `Vec`
We cannot do that for `&Vec` because `#[rustc_on_unimplemented]` is limited (it does not clean generic instantiation for references, only for ADTs).
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/iterators/vec-on-unimplemented.rs | 4 | ||||
| -rw-r--r-- | src/test/ui/iterators/vec-on-unimplemented.stderr | 20 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/test/ui/iterators/vec-on-unimplemented.rs b/src/test/ui/iterators/vec-on-unimplemented.rs new file mode 100644 index 00000000000..42b5d36bfad --- /dev/null +++ b/src/test/ui/iterators/vec-on-unimplemented.rs @@ -0,0 +1,4 @@ +fn main() { + vec![true, false].map(|v| !v).collect::<Vec<_>>(); + //~^ ERROR `Vec<bool>` is not an iterator +} diff --git a/src/test/ui/iterators/vec-on-unimplemented.stderr b/src/test/ui/iterators/vec-on-unimplemented.stderr new file mode 100644 index 00000000000..afcce5c30ca --- /dev/null +++ b/src/test/ui/iterators/vec-on-unimplemented.stderr @@ -0,0 +1,20 @@ +error[E0599]: `Vec<bool>` is not an iterator + --> $DIR/vec-on-unimplemented.rs:2:23 + | +LL | vec![true, false].map(|v| !v).collect::<Vec<_>>(); + | ^^^ `Vec<bool>` is not an iterator; try calling `.into_iter()` or `.iter()` + | + ::: $SRC_DIR/alloc/src/vec/mod.rs:LL:COL + | +LL | pub struct Vec<T, #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global> { + | ------------------------------------------------------------------------------------------------ doesn't satisfy `Vec<bool>: Iterator` + | + = note: the following trait bounds were not satisfied: + `Vec<bool>: Iterator` + which is required by `&mut Vec<bool>: Iterator` + `[bool]: Iterator` + which is required by `&mut [bool]: Iterator` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0599`. |
