add test for issue 127590
This commit is contained in:
parent
a91f7d72f1
commit
077d0da30a
2 changed files with 87 additions and 0 deletions
|
@ -0,0 +1,18 @@
|
||||||
|
fn main() {
|
||||||
|
let fields = vec![1];
|
||||||
|
let variant = vec![2];
|
||||||
|
|
||||||
|
// should not suggest `*&variant.iter()`
|
||||||
|
for (src, dest) in std::iter::zip(fields.iter(), &variant.iter()) {
|
||||||
|
//~^ ERROR `&std::slice::Iter<'_, {integer}>` is not an iterator
|
||||||
|
//~| ERROR `&std::slice::Iter<'_, {integer}>` is not an iterator
|
||||||
|
eprintln!("{} {}", src, dest);
|
||||||
|
}
|
||||||
|
|
||||||
|
// don't suggest add `variant.iter().clone().clone()`
|
||||||
|
for (src, dest) in std::iter::zip(fields.iter(), &variant.iter().clone()) {
|
||||||
|
//~^ ERROR `&std::slice::Iter<'_, {integer}>` is not an iterator
|
||||||
|
//~| ERROR `&std::slice::Iter<'_, {integer}>` is not an iterator
|
||||||
|
eprintln!("{} {}", src, dest);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
error[E0277]: `&std::slice::Iter<'_, {integer}>` is not an iterator
|
||||||
|
--> $DIR/invalid-suggest-deref-issue-127590.rs:6:54
|
||||||
|
|
|
||||||
|
LL | for (src, dest) in std::iter::zip(fields.iter(), &variant.iter()) {
|
||||||
|
| -------------- ^^^^^^^^^^^^^^^ `&std::slice::Iter<'_, {integer}>` is not an iterator
|
||||||
|
| |
|
||||||
|
| required by a bound introduced by this call
|
||||||
|
|
|
||||||
|
= help: the trait `Iterator` is not implemented for `&std::slice::Iter<'_, {integer}>`, which is required by `&std::slice::Iter<'_, {integer}>: IntoIterator`
|
||||||
|
= note: required for `&std::slice::Iter<'_, {integer}>` to implement `IntoIterator`
|
||||||
|
note: required by a bound in `std::iter::zip`
|
||||||
|
--> $SRC_DIR/core/src/iter/adapters/zip.rs:LL:COL
|
||||||
|
help: consider dereferencing here
|
||||||
|
|
|
||||||
|
LL | for (src, dest) in std::iter::zip(fields.iter(), *&variant.iter()) {
|
||||||
|
| +
|
||||||
|
help: consider removing the leading `&`-reference
|
||||||
|
|
|
||||||
|
LL - for (src, dest) in std::iter::zip(fields.iter(), &variant.iter()) {
|
||||||
|
LL + for (src, dest) in std::iter::zip(fields.iter(), variant.iter()) {
|
||||||
|
|
|
||||||
|
|
||||||
|
error[E0277]: `&std::slice::Iter<'_, {integer}>` is not an iterator
|
||||||
|
--> $DIR/invalid-suggest-deref-issue-127590.rs:6:24
|
||||||
|
|
|
||||||
|
LL | for (src, dest) in std::iter::zip(fields.iter(), &variant.iter()) {
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&std::slice::Iter<'_, {integer}>` is not an iterator
|
||||||
|
|
|
||||||
|
= help: the trait `Iterator` is not implemented for `&std::slice::Iter<'_, {integer}>`, which is required by `Zip<std::slice::Iter<'_, {integer}>, &std::slice::Iter<'_, {integer}>>: IntoIterator`
|
||||||
|
= help: the trait `Iterator` is implemented for `std::slice::Iter<'a, T>`
|
||||||
|
= note: required for `Zip<std::slice::Iter<'_, {integer}>, &std::slice::Iter<'_, {integer}>>` to implement `Iterator`
|
||||||
|
= note: required for `Zip<std::slice::Iter<'_, {integer}>, &std::slice::Iter<'_, {integer}>>` to implement `IntoIterator`
|
||||||
|
|
||||||
|
error[E0277]: `&std::slice::Iter<'_, {integer}>` is not an iterator
|
||||||
|
--> $DIR/invalid-suggest-deref-issue-127590.rs:13:54
|
||||||
|
|
|
||||||
|
LL | for (src, dest) in std::iter::zip(fields.iter(), &variant.iter().clone()) {
|
||||||
|
| -------------- ^^^^^^^^^^^^^^^^^^^^^^^ `&std::slice::Iter<'_, {integer}>` is not an iterator
|
||||||
|
| |
|
||||||
|
| required by a bound introduced by this call
|
||||||
|
|
|
||||||
|
= help: the trait `Iterator` is not implemented for `&std::slice::Iter<'_, {integer}>`, which is required by `&std::slice::Iter<'_, {integer}>: IntoIterator`
|
||||||
|
= note: required for `&std::slice::Iter<'_, {integer}>` to implement `IntoIterator`
|
||||||
|
note: required by a bound in `std::iter::zip`
|
||||||
|
--> $SRC_DIR/core/src/iter/adapters/zip.rs:LL:COL
|
||||||
|
help: consider dereferencing here
|
||||||
|
|
|
||||||
|
LL | for (src, dest) in std::iter::zip(fields.iter(), *&variant.iter().clone()) {
|
||||||
|
| +
|
||||||
|
help: consider removing the leading `&`-reference
|
||||||
|
|
|
||||||
|
LL - for (src, dest) in std::iter::zip(fields.iter(), &variant.iter().clone()) {
|
||||||
|
LL + for (src, dest) in std::iter::zip(fields.iter(), variant.iter().clone()) {
|
||||||
|
|
|
||||||
|
|
||||||
|
error[E0277]: `&std::slice::Iter<'_, {integer}>` is not an iterator
|
||||||
|
--> $DIR/invalid-suggest-deref-issue-127590.rs:13:24
|
||||||
|
|
|
||||||
|
LL | for (src, dest) in std::iter::zip(fields.iter(), &variant.iter().clone()) {
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&std::slice::Iter<'_, {integer}>` is not an iterator
|
||||||
|
|
|
||||||
|
= help: the trait `Iterator` is not implemented for `&std::slice::Iter<'_, {integer}>`, which is required by `Zip<std::slice::Iter<'_, {integer}>, &std::slice::Iter<'_, {integer}>>: IntoIterator`
|
||||||
|
= help: the trait `Iterator` is implemented for `std::slice::Iter<'a, T>`
|
||||||
|
= note: required for `Zip<std::slice::Iter<'_, {integer}>, &std::slice::Iter<'_, {integer}>>` to implement `Iterator`
|
||||||
|
= note: required for `Zip<std::slice::Iter<'_, {integer}>, &std::slice::Iter<'_, {integer}>>` to implement `IntoIterator`
|
||||||
|
|
||||||
|
error: aborting due to 4 previous errors
|
||||||
|
|
||||||
|
For more information about this error, try `rustc --explain E0277`.
|
Loading…
Add table
Add a link
Reference in a new issue