@@ -372,28 +372,28 @@ impl<T, const N: usize> [T; N] {
372
372
///
373
373
/// # Examples
374
374
/// ```
375
- /// #![feature(array_map)]
376
- /// let x = [1,2, 3];
375
+ /// # # ![feature(array_map)]
376
+ /// let x = [1, 2, 3];
377
377
/// let y = x.map(|v| v + 1);
378
- /// assert_eq!(y, [2,3, 4]);
378
+ /// assert_eq!(y, [2, 3, 4]);
379
379
/// ```
380
380
#[ unstable( feature = "array_map" , issue = "77777" ) ]
381
- pub fn map < F , S > ( self , mut f : F ) -> [ S ; N ]
381
+ pub fn map < F , U > ( self , mut f : F ) -> [ U ; N ]
382
382
where
383
- F : FnMut ( T ) -> S ,
383
+ F : FnMut ( T ) -> U ,
384
384
{
385
385
use crate :: mem:: MaybeUninit ;
386
386
struct Guard < T , const N : usize > {
387
387
dst : * mut T ,
388
- curr_init : usize ,
388
+ initialized : usize ,
389
389
}
390
390
391
391
impl < T , const N : usize > Drop for Guard < T , N > {
392
392
fn drop ( & mut self ) {
393
- debug_assert ! ( self . curr_init <= N ) ;
393
+ debug_assert ! ( self . initialized <= N ) ;
394
394
395
395
let initialized_part =
396
- crate :: ptr:: slice_from_raw_parts_mut ( self . dst , self . curr_init ) ;
396
+ crate :: ptr:: slice_from_raw_parts_mut ( self . dst , self . initialized ) ;
397
397
// SAFETY: this raw slice will contain only initialized objects
398
398
// that's why, it is allowed to drop it.
399
399
unsafe {
@@ -402,16 +402,16 @@ impl<T, const N: usize> [T; N] {
402
402
}
403
403
}
404
404
let mut dst = MaybeUninit :: uninit_array :: < N > ( ) ;
405
- let mut guard: Guard < S , N > = Guard { dst : & mut dst as * mut _ as * mut S , curr_init : 0 } ;
405
+ let mut guard: Guard < U , N > = Guard { dst : & mut dst as * mut _ as * mut U , initialized : 0 } ;
406
406
for ( src, dst) in IntoIter :: new ( self ) . zip ( & mut dst) {
407
407
dst. write ( f ( src) ) ;
408
- guard. curr_init += 1 ;
408
+ guard. initialized += 1 ;
409
409
}
410
410
// FIXME convert to crate::mem::transmute when works with generics
411
- // unsafe { crate::mem::transmute::<[MaybeUninit<S >; N], [S ; N]>(dst) }
411
+ // unsafe { crate::mem::transmute::<[MaybeUninit<U >; N], [U ; N]>(dst) }
412
412
crate :: mem:: forget ( guard) ;
413
413
// SAFETY: At this point we've properly initialized the whole array
414
414
// and we just need to cast it to the correct type
415
- unsafe { ( & mut dst as * mut _ as * mut [ S ; N ] ) . read ( ) }
415
+ unsafe { ( & mut dst as * mut _ as * mut [ U ; N ] ) . read ( ) }
416
416
}
417
417
}
0 commit comments