Skip to content

Commit f699a55

Browse files
authored
Rollup merge of #70981 - ssomers:btreemap_into_into_iter, r=Mark-Simulacrum
Rearrange BTreeMap::into_iter to match range_mut. r? @Mark-Simulacrum I wondered why you catered for the optional root differently in `into_iter` than in `range_mut`.
2 parents 277ce9e + 4ade06b commit f699a55

File tree

1 file changed

+13
-13
lines changed
  • src/liballoc/collections/btree

1 file changed

+13
-13
lines changed

src/liballoc/collections/btree/map.rs

+13-13
Original file line numberDiff line numberDiff line change
@@ -1544,19 +1544,19 @@ impl<K, V> IntoIterator for BTreeMap<K, V> {
15441544
type IntoIter = IntoIter<K, V>;
15451545

15461546
fn into_iter(self) -> IntoIter<K, V> {
1547-
let me = ManuallyDrop::new(self);
1548-
if me.root.is_none() {
1549-
return IntoIter { front: None, back: None, length: 0 };
1550-
}
1551-
1552-
let root1 = unsafe { unwrap_unchecked(ptr::read(&me.root)).into_ref() };
1553-
let root2 = unsafe { unwrap_unchecked(ptr::read(&me.root)).into_ref() };
1554-
let len = me.length;
1555-
1556-
IntoIter {
1557-
front: Some(root1.first_leaf_edge()),
1558-
back: Some(root2.last_leaf_edge()),
1559-
length: len,
1547+
let mut me = ManuallyDrop::new(self);
1548+
if let Some(root) = me.root.as_mut() {
1549+
let root1 = unsafe { ptr::read(root).into_ref() };
1550+
let root2 = unsafe { ptr::read(root).into_ref() };
1551+
let len = me.length;
1552+
1553+
IntoIter {
1554+
front: Some(root1.first_leaf_edge()),
1555+
back: Some(root2.last_leaf_edge()),
1556+
length: len,
1557+
}
1558+
} else {
1559+
IntoIter { front: None, back: None, length: 0 }
15601560
}
15611561
}
15621562
}

0 commit comments

Comments
 (0)