]> git.proxmox.com Git - rustc.git/blob - src/test/ui/iterators/into-iter-on-arrays-lint.fixed
New upstream version 1.55.0+dfsg1
[rustc.git] / src / test / ui / iterators / into-iter-on-arrays-lint.fixed
1 // run-pass
2 // run-rustfix
3 // rustfix-only-machine-applicable
4
5 fn main() {
6 let small = [1, 2];
7 let big = [0u8; 33];
8
9 // Expressions that should trigger the lint
10 small.iter();
11 //~^ WARNING this method call resolves to `<&[T; N] as IntoIterator>::into_iter`
12 //~| WARNING this changes meaning
13 [1, 2].iter();
14 //~^ WARNING this method call resolves to `<&[T; N] as IntoIterator>::into_iter`
15 //~| WARNING this changes meaning
16 big.iter();
17 //~^ WARNING this method call resolves to `<&[T; N] as IntoIterator>::into_iter`
18 //~| WARNING this changes meaning
19 [0u8; 33].iter();
20 //~^ WARNING this method call resolves to `<&[T; N] as IntoIterator>::into_iter`
21 //~| WARNING this changes meaning
22
23 Box::new(small).iter();
24 //~^ WARNING this method call resolves to `<&[T; N] as IntoIterator>::into_iter`
25 //~| WARNING this changes meaning
26 Box::new([1, 2]).iter();
27 //~^ WARNING this method call resolves to `<&[T; N] as IntoIterator>::into_iter`
28 //~| WARNING this changes meaning
29 Box::new(big).iter();
30 //~^ WARNING this method call resolves to `<&[T; N] as IntoIterator>::into_iter`
31 //~| WARNING this changes meaning
32 Box::new([0u8; 33]).iter();
33 //~^ WARNING this method call resolves to `<&[T; N] as IntoIterator>::into_iter`
34 //~| WARNING this changes meaning
35
36 Box::new(Box::new(small)).iter();
37 //~^ WARNING this method call resolves to `<&[T; N] as IntoIterator>::into_iter`
38 //~| WARNING this changes meaning
39 Box::new(Box::new([1, 2])).iter();
40 //~^ WARNING this method call resolves to `<&[T; N] as IntoIterator>::into_iter`
41 //~| WARNING this changes meaning
42 Box::new(Box::new(big)).iter();
43 //~^ WARNING this method call resolves to `<&[T; N] as IntoIterator>::into_iter`
44 //~| WARNING this changes meaning
45 Box::new(Box::new([0u8; 33])).iter();
46 //~^ WARNING this method call resolves to `<&[T; N] as IntoIterator>::into_iter`
47 //~| WARNING this changes meaning
48
49 // Expressions that should not
50 (&[1, 2]).into_iter();
51 (&small).into_iter();
52 (&[0u8; 33]).into_iter();
53 (&big).into_iter();
54
55 for _ in &[1, 2] {}
56 (&small as &[_]).into_iter();
57 small[..].into_iter();
58 std::iter::IntoIterator::into_iter(&[1, 2]);
59
60 #[allow(array_into_iter)]
61 [0, 1].into_iter();
62 }