File tree Expand file tree Collapse file tree 1 file changed +0
-35
lines changed Expand file tree Collapse file tree 1 file changed +0
-35
lines changed Original file line number Diff line number Diff line change @@ -2310,41 +2310,6 @@ impl<T> Drop for MoveItems<T> {
2310
2310
#[ deprecated = "replaced by Rev<MoveItems<'a, T>>" ]
2311
2311
pub type RevMoveItems < T > = Rev < MoveItems < T > > ;
2312
2312
2313
- impl < A > FromIterator < A > for ~[ A ] {
2314
- fn from_iter < T : Iterator < A > > ( mut iterator : T ) -> ~[ A ] {
2315
- let mut xs: Vec < A > = iterator. collect ( ) ;
2316
-
2317
- // Must shrink so the capacity is the same as the length. The length of
2318
- // the ~[T] vector must exactly match the length of the allocation.
2319
- xs. shrink_to_fit ( ) ;
2320
-
2321
- let len = xs. len ( ) ;
2322
- assert ! ( len == xs. capacity( ) ) ;
2323
- let data = xs. as_mut_ptr ( ) ;
2324
-
2325
- let data_size = len. checked_mul ( & mem:: size_of :: < A > ( ) ) ;
2326
- let data_size = data_size. expect ( "overflow in from_iter()" ) ;
2327
- let size = mem:: size_of :: < RawVec < ( ) > > ( ) . checked_add ( & data_size) ;
2328
- let size = size. expect ( "overflow in from_iter()" ) ;
2329
-
2330
-
2331
- // This is some terribly awful code. Note that all of this will go away
2332
- // with DST because creating ~[T] from Vec<T> will just be some pointer
2333
- // swizzling.
2334
- unsafe {
2335
- let ret = malloc_raw ( size) as * mut RawVec < ( ) > ;
2336
-
2337
- ( * ret) . fill = len * mem:: nonzero_size_of :: < A > ( ) ;
2338
- ( * ret) . alloc = len * mem:: nonzero_size_of :: < A > ( ) ;
2339
- ptr:: copy_nonoverlapping_memory ( & mut ( * ret) . data as * mut _ as * mut u8 ,
2340
- data as * u8 ,
2341
- data_size) ;
2342
- xs. set_len ( 0 ) ; // ownership has been transferred
2343
- cast:: transmute ( ret)
2344
- }
2345
- }
2346
- }
2347
-
2348
2313
#[ cfg( test) ]
2349
2314
mod tests {
2350
2315
use prelude:: * ;
You can’t perform that action at this time.
0 commit comments