Skip to content

Commit 3647040

Browse files
committed
Modify RawEntryMut::and_replace_entry_with and RawOccupiedEntryMut::replace_entry_with tests to check return value
1 parent 4c3f4b9 commit 3647040

File tree

1 file changed

+46
-13
lines changed

1 file changed

+46
-13
lines changed

src/map.rs

Lines changed: 46 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)