4 use std::array::IntoIter;
12 // Before 2021, the method dispatched to `IntoIterator for &[T; N]`,
13 // which we continue to support for compatibility.
14 let _: Iter<'_, i32> = array.into_iter();
15 //~^ WARNING this method call resolves to `<&[T; N] as IntoIterator>::into_iter`
16 //~| WARNING this changes meaning
18 let _: Iter<'_, i32> = Box::new(array).into_iter();
19 //~^ WARNING this method call resolves to `<&[T; N] as IntoIterator>::into_iter`
20 //~| WARNING this changes meaning
22 let _: Iter<'_, i32> = Rc::new(array).into_iter();
23 //~^ WARNING this method call resolves to `<&[T; N] as IntoIterator>::into_iter`
24 //~| WARNING this changes meaning
25 let _: Iter<'_, i32> = Array(array).into_iter();
26 //~^ WARNING this method call resolves to `<&[T; N] as IntoIterator>::into_iter`
27 //~| WARNING this changes meaning
29 // But you can always use the trait method explicitly as an array.
30 let _: IntoIter<i32, 10> = IntoIterator::into_iter(array);
32 for _ in [1, 2, 3].into_iter() {}
33 //~^ WARNING this method call resolves to `<&[T; N] as IntoIterator>::into_iter`
34 //~| WARNING this changes meaning
37 /// User type that dereferences to an array.
38 struct Array([i32; 10]);
40 impl Deref for Array {
41 type Target = [i32; 10];
43 fn deref(&self) -> &Self::Target {