Add UI test for array.into_iter()
lint
This commit is contained in:
parent
b492c97a31
commit
8fd09d9db6
33
src/test/ui/iterators/into-iter-on-arrays-lint.fixed
Normal file
33
src/test/ui/iterators/into-iter-on-arrays-lint.fixed
Normal file
@ -0,0 +1,33 @@
|
||||
// run-pass
|
||||
// run-rustfix
|
||||
|
||||
fn main() {
|
||||
let small = [1, 2];
|
||||
let big = [0u8; 33];
|
||||
|
||||
// Expressions that should trigger the lint
|
||||
small.iter();
|
||||
//~^ WARNING this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter`
|
||||
//~| WARNING this was previously accepted by the compiler but is being phased out
|
||||
[1, 2].iter();
|
||||
//~^ WARNING this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter`
|
||||
//~| WARNING this was previously accepted by the compiler but is being phased out
|
||||
big.iter();
|
||||
//~^ WARNING this method call currently resolves to `<&[T] as IntoIterator>::into_iter`
|
||||
//~| WARNING this was previously accepted by the compiler but is being phased out
|
||||
[0u8; 33].iter();
|
||||
//~^ WARNING this method call currently resolves to `<&[T] as IntoIterator>::into_iter`
|
||||
//~| WARNING this was previously accepted by the compiler but is being phased out
|
||||
|
||||
|
||||
// Expressions that should not
|
||||
(&[1, 2]).into_iter();
|
||||
(&small).into_iter();
|
||||
(&[0u8; 33]).into_iter();
|
||||
(&big).into_iter();
|
||||
|
||||
for _ in &[1, 2] {}
|
||||
(&small as &[_]).into_iter();
|
||||
small[..].into_iter();
|
||||
std::iter::IntoIterator::into_iter(&[1, 2]);
|
||||
}
|
33
src/test/ui/iterators/into-iter-on-arrays-lint.rs
Normal file
33
src/test/ui/iterators/into-iter-on-arrays-lint.rs
Normal file
@ -0,0 +1,33 @@
|
||||
// run-pass
|
||||
// run-rustfix
|
||||
|
||||
fn main() {
|
||||
let small = [1, 2];
|
||||
let big = [0u8; 33];
|
||||
|
||||
// Expressions that should trigger the lint
|
||||
small.into_iter();
|
||||
//~^ WARNING this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter`
|
||||
//~| WARNING this was previously accepted by the compiler but is being phased out
|
||||
[1, 2].into_iter();
|
||||
//~^ WARNING this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter`
|
||||
//~| WARNING this was previously accepted by the compiler but is being phased out
|
||||
big.into_iter();
|
||||
//~^ WARNING this method call currently resolves to `<&[T] as IntoIterator>::into_iter`
|
||||
//~| WARNING this was previously accepted by the compiler but is being phased out
|
||||
[0u8; 33].into_iter();
|
||||
//~^ WARNING this method call currently resolves to `<&[T] as IntoIterator>::into_iter`
|
||||
//~| WARNING this was previously accepted by the compiler but is being phased out
|
||||
|
||||
|
||||
// Expressions that should not
|
||||
(&[1, 2]).into_iter();
|
||||
(&small).into_iter();
|
||||
(&[0u8; 33]).into_iter();
|
||||
(&big).into_iter();
|
||||
|
||||
for _ in &[1, 2] {}
|
||||
(&small as &[_]).into_iter();
|
||||
small[..].into_iter();
|
||||
std::iter::IntoIterator::into_iter(&[1, 2]);
|
||||
}
|
37
src/test/ui/iterators/into-iter-on-arrays-lint.stderr
Normal file
37
src/test/ui/iterators/into-iter-on-arrays-lint.stderr
Normal file
@ -0,0 +1,37 @@
|
||||
warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added.
|
||||
--> $DIR/into-iter-on-arrays-lint.rs:9:11
|
||||
|
|
||||
LL | small.into_iter();
|
||||
| ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter`
|
||||
|
|
||||
= note: `#[warn(array_into_iter)]` on by default
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
||||
= note: for more information, see issue #66145 <https://github.com/rust-lang/rust/issues/66145>
|
||||
|
||||
warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added.
|
||||
--> $DIR/into-iter-on-arrays-lint.rs:12:12
|
||||
|
|
||||
LL | [1, 2].into_iter();
|
||||
| ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter`
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
||||
= note: for more information, see issue #66145 <https://github.com/rust-lang/rust/issues/66145>
|
||||
|
||||
warning: this method call currently resolves to `<&[T] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added.
|
||||
--> $DIR/into-iter-on-arrays-lint.rs:15:9
|
||||
|
|
||||
LL | big.into_iter();
|
||||
| ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter`
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
||||
= note: for more information, see issue #66145 <https://github.com/rust-lang/rust/issues/66145>
|
||||
|
||||
warning: this method call currently resolves to `<&[T] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added.
|
||||
--> $DIR/into-iter-on-arrays-lint.rs:18:15
|
||||
|
|
||||
LL | [0u8; 33].into_iter();
|
||||
| ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter`
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
||||
= note: for more information, see issue #66145 <https://github.com/rust-lang/rust/issues/66145>
|
||||
|
Loading…
x
Reference in New Issue
Block a user