@@ -2,7 +2,7 @@ use crate::alloc::{Allocator, Global};
22use crate :: raw_vec:: RawVec ;
33use core:: fmt;
44use core:: intrinsics:: arith_offset;
5- use core:: iter:: { FusedIterator , InPlaceIterable , SourceIter , TrustedLen , TrustedRandomAccess } ;
5+ use core:: iter:: { FusedIterator , InPlaceIterable , SourceIter , TrustedLen } ;
66use core:: marker:: PhantomData ;
77use core:: mem:: { self } ;
88use core:: ptr:: { self , NonNull } ;
@@ -162,24 +162,6 @@ impl<T, A: Allocator> Iterator for IntoIter<T, A> {
162162 fn count ( self ) -> usize {
163163 self . len ( )
164164 }
165-
166- #[ doc( hidden) ]
167- unsafe fn __iterator_get_unchecked ( & mut self , i : usize ) -> Self :: Item
168- where
169- Self : TrustedRandomAccess ,
170- {
171- // SAFETY: the caller must guarantee that `i` is in bounds of the
172- // `Vec<T>`, so `i` cannot overflow an `isize`, and the `self.ptr.add(i)`
173- // is guaranteed to pointer to an element of the `Vec<T>` and
174- // thus guaranteed to be valid to dereference.
175- //
176- // Also note the implementation of `Self: TrustedRandomAccess` requires
177- // that `T: Copy` so reading elements from the buffer doesn't invalidate
178- // them for `Drop`.
179- unsafe {
180- if mem:: size_of :: < T > ( ) == 0 { mem:: zeroed ( ) } else { ptr:: read ( self . ptr . add ( i) ) }
181- }
182- }
183165}
184166
185167#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -215,17 +197,6 @@ impl<T, A: Allocator> FusedIterator for IntoIter<T, A> {}
215197#[ unstable( feature = "trusted_len" , issue = "37572" ) ]
216198unsafe impl < T , A : Allocator > TrustedLen for IntoIter < T , A > { }
217199
218- #[ doc( hidden) ]
219- #[ unstable( issue = "none" , feature = "std_internals" ) ]
220- // T: Copy as approximation for !Drop since get_unchecked does not advance self.ptr
221- // and thus we can't implement drop-handling
222- unsafe impl < T , A : Allocator > TrustedRandomAccess for IntoIter < T , A >
223- where
224- T : Copy ,
225- {
226- const MAY_HAVE_SIDE_EFFECT : bool = false ;
227- }
228-
229200#[ cfg( not( no_global_oom_handling) ) ]
230201#[ stable( feature = "vec_into_iter_clone" , since = "1.8.0" ) ]
231202impl < T : Clone , A : Allocator + Clone > Clone for IntoIter < T , A > {
0 commit comments