@@ -8,8 +8,6 @@ use core::hash::{BuildHasher, Hash};
88use core:: iter:: { FromIterator , FusedIterator } ;
99use core:: marker:: PhantomData ;
1010use core:: mem;
11- #[ cfg( feature = "nightly" ) ]
12- use core:: mem:: MaybeUninit ;
1311use core:: ops:: Index ;
1412
1513/// Default hasher for `HashMap`.
@@ -1149,16 +1147,7 @@ where
11491147 K : Borrow < Q > ,
11501148 Q : Hash + Eq ,
11511149 {
1152- let mut pairs = self . get_each_inner_mut ( ks) ;
1153- // TODO use `MaybeUninit::uninit_array` here instead once that's stable.
1154- let mut out: [ MaybeUninit < Result < & ' _ mut V , UnavailableMutError > > ; N ] =
1155- unsafe { MaybeUninit :: uninit ( ) . assume_init ( ) } ;
1156- for i in 0 ..N {
1157- out[ i] = MaybeUninit :: new (
1158- mem:: replace ( & mut pairs[ i] , Err ( UnavailableMutError :: Absent ) ) . map ( |( _, v) | v) ,
1159- ) ;
1160- }
1161- unsafe { MaybeUninit :: array_assume_init ( out) }
1150+ self . get_each_inner_mut ( ks) . map ( |res| res. map ( |( _, v) | v) )
11621151 }
11631152
11641153 /// Attempts to get mutable references to `N` values in the map at once, with immutable
@@ -1208,17 +1197,8 @@ where
12081197 K : Borrow < Q > ,
12091198 Q : Hash + Eq ,
12101199 {
1211- let mut pairs = self . get_each_inner_mut ( ks) ;
1212- // TODO use `MaybeUninit::uninit_array` here instead once that's stable.
1213- let mut out: [ MaybeUninit < Result < ( & ' _ K , & ' _ mut V ) , UnavailableMutError > > ; N ] =
1214- unsafe { MaybeUninit :: uninit ( ) . assume_init ( ) } ;
1215- for i in 0 ..N {
1216- out[ i] = MaybeUninit :: new (
1217- mem:: replace ( & mut pairs[ i] , Err ( UnavailableMutError :: Absent ) )
1218- . map ( |( k, v) | ( & * k, v) ) ,
1219- ) ;
1220- }
1221- unsafe { MaybeUninit :: array_assume_init ( out) }
1200+ self . get_each_inner_mut ( ks)
1201+ . map ( |res| res. map ( |( k, v) | ( & * k, v) ) )
12221202 }
12231203
12241204 #[ cfg( feature = "nightly" ) ]
0 commit comments