@@ -4102,7 +4102,8 @@ mod test_map {
4102
4102
let value = "an initial value" ;
4103
4103
let new_value = "a new value" ;
4104
4104
4105
- a. raw_entry_mut ( )
4105
+ let entry = a
4106
+ . raw_entry_mut ( )
4106
4107
. from_key ( & key)
4107
4108
. insert ( key, value)
4108
4109
. replace_entry_with ( |k, v| {
@@ -4111,18 +4112,29 @@ mod test_map {
4111
4112
Some ( new_value)
4112
4113
} ) ;
4113
4114
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
+
4114
4123
assert_eq ! ( a[ key] , new_value) ;
4115
4124
assert_eq ! ( a. len( ) , 1 ) ;
4116
4125
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
+ } ) ,
4125
4132
RawEntryMut :: Vacant ( _) => panic ! ( ) ,
4133
+ } ;
4134
+
4135
+ match entry {
4136
+ RawEntryMut :: Vacant ( _) => { }
4137
+ RawEntryMut :: Occupied ( _) => panic ! ( ) ,
4126
4138
}
4127
4139
4128
4140
assert ! ( !a. contains_key( key) ) ;
@@ -4137,31 +4149,52 @@ mod test_map {
4137
4149
let value = "an initial value" ;
4138
4150
let new_value = "a new value" ;
4139
4151
4140
- a. raw_entry_mut ( )
4152
+ let entry = a
4153
+ . raw_entry_mut ( )
4141
4154
. 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
+ }
4143
4161
4144
4162
a. insert ( key, value) ;
4145
4163
4146
- a. raw_entry_mut ( )
4164
+ let entry = a
4165
+ . raw_entry_mut ( )
4147
4166
. from_key ( & key)
4148
4167
. and_replace_entry_with ( |k, v| {
4149
4168
assert_eq ! ( k, & key) ;
4150
4169
assert_eq ! ( v, value) ;
4151
4170
Some ( new_value)
4152
4171
} ) ;
4153
4172
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
+
4154
4181
assert_eq ! ( a[ key] , new_value) ;
4155
4182
assert_eq ! ( a. len( ) , 1 ) ;
4156
4183
4157
- a. raw_entry_mut ( )
4184
+ let entry = a
4185
+ . raw_entry_mut ( )
4158
4186
. from_key ( & key)
4159
4187
. and_replace_entry_with ( |k, v| {
4160
4188
assert_eq ! ( k, & key) ;
4161
4189
assert_eq ! ( v, new_value) ;
4162
4190
None
4163
4191
} ) ;
4164
4192
4193
+ match entry {
4194
+ RawEntryMut :: Vacant ( _) => { }
4195
+ RawEntryMut :: Occupied ( _) => panic ! ( ) ,
4196
+ }
4197
+
4165
4198
assert ! ( !a. contains_key( key) ) ;
4166
4199
assert_eq ! ( a. len( ) , 0 ) ;
4167
4200
}
0 commit comments