@@ -4102,7 +4102,8 @@ mod test_map {
41024102 let value = "an initial value" ;
41034103 let new_value = "a new value" ;
41044104
4105- a. raw_entry_mut ( )
4105+ let entry = a
4106+ . raw_entry_mut ( )
41064107 . from_key ( & key)
41074108 . insert ( key, value)
41084109 . replace_entry_with ( |k, v| {
@@ -4111,18 +4112,29 @@ mod test_map {
41114112 Some ( new_value)
41124113 } ) ;
41134114
4115+ match entry {
4116+ RawEntryMut :: Occupied ( e) => {
4117+ assert_eq ! ( e. key( ) , & key) ;
4118+ assert_eq ! ( e. get( ) , & new_value) ;
4119+ }
4120+ RawEntryMut :: Vacant ( _) => panic ! ( ) ,
4121+ }
4122+
41144123 assert_eq ! ( a[ key] , new_value) ;
41154124 assert_eq ! ( a. len( ) , 1 ) ;
41164125
4117- match a. raw_entry_mut ( ) . from_key ( & key) {
4118- RawEntryMut :: Occupied ( e) => {
4119- e. replace_entry_with ( |k, v| {
4120- assert_eq ! ( k, & key) ;
4121- assert_eq ! ( v, new_value) ;
4122- None
4123- } ) ;
4124- }
4126+ let entry = match a. raw_entry_mut ( ) . from_key ( & key) {
4127+ RawEntryMut :: Occupied ( e) => e. replace_entry_with ( |k, v| {
4128+ assert_eq ! ( k, & key) ;
4129+ assert_eq ! ( v, new_value) ;
4130+ None
4131+ } ) ,
41254132 RawEntryMut :: Vacant ( _) => panic ! ( ) ,
4133+ } ;
4134+
4135+ match entry {
4136+ RawEntryMut :: Vacant ( _) => { }
4137+ RawEntryMut :: Occupied ( _) => panic ! ( ) ,
41264138 }
41274139
41284140 assert ! ( !a. contains_key( key) ) ;
@@ -4137,31 +4149,52 @@ mod test_map {
41374149 let value = "an initial value" ;
41384150 let new_value = "a new value" ;
41394151
4140- a. raw_entry_mut ( )
4152+ let entry = a
4153+ . raw_entry_mut ( )
41414154 . from_key ( & key)
4142- . and_replace_entry_with ( |_, _| panic ! ( "Can't replace a VacantEntry" ) ) ;
4155+ . and_replace_entry_with ( |_, _| panic ! ( ) ) ;
4156+
4157+ match entry {
4158+ RawEntryMut :: Vacant ( _) => { }
4159+ RawEntryMut :: Occupied ( _) => panic ! ( ) ,
4160+ }
41434161
41444162 a. insert ( key, value) ;
41454163
4146- a. raw_entry_mut ( )
4164+ let entry = a
4165+ . raw_entry_mut ( )
41474166 . from_key ( & key)
41484167 . and_replace_entry_with ( |k, v| {
41494168 assert_eq ! ( k, & key) ;
41504169 assert_eq ! ( v, value) ;
41514170 Some ( new_value)
41524171 } ) ;
41534172
4173+ match entry {
4174+ RawEntryMut :: Occupied ( e) => {
4175+ assert_eq ! ( e. key( ) , & key) ;
4176+ assert_eq ! ( e. get( ) , & new_value) ;
4177+ }
4178+ RawEntryMut :: Vacant ( _) => panic ! ( ) ,
4179+ }
4180+
41544181 assert_eq ! ( a[ key] , new_value) ;
41554182 assert_eq ! ( a. len( ) , 1 ) ;
41564183
4157- a. raw_entry_mut ( )
4184+ let entry = a
4185+ . raw_entry_mut ( )
41584186 . from_key ( & key)
41594187 . and_replace_entry_with ( |k, v| {
41604188 assert_eq ! ( k, & key) ;
41614189 assert_eq ! ( v, new_value) ;
41624190 None
41634191 } ) ;
41644192
4193+ match entry {
4194+ RawEntryMut :: Vacant ( _) => { }
4195+ RawEntryMut :: Occupied ( _) => panic ! ( ) ,
4196+ }
4197+
41654198 assert ! ( !a. contains_key( key) ) ;
41664199 assert_eq ! ( a. len( ) , 0 ) ;
41674200 }
0 commit comments