1
Fork 0

Fix comments outdated during #66648

This commit is contained in:
Stein Somers 2020-02-02 20:30:52 +01:00
parent 116dff95a3
commit 914b855f40

View file

@ -227,7 +227,7 @@ impl<K: Clone, V: Clone> BTreeClone for BTreeMap<K, V> {
impl<K: Clone + Ord, V: Clone> BTreeClone for BTreeMap<K, V> { impl<K: Clone + Ord, V: Clone> BTreeClone for BTreeMap<K, V> {
fn clone_from(&mut self, other: &Self) { fn clone_from(&mut self, other: &Self) {
// This truncates `self` to `other.len()` by calling `split_off` on // This truncates `self` to `other.len()` by calling `split_off` on
// the first key after `other.len()` elements if it exists // the first key after `other.len()` elements if it exists.
let split_off_key = if self.len() > other.len() { let split_off_key = if self.len() > other.len() {
let diff = self.len() - other.len(); let diff = self.len() - other.len();
if diff <= other.len() { if diff <= other.len() {
@ -247,11 +247,10 @@ impl<K: Clone + Ord, V: Clone> BTreeClone for BTreeMap<K, V> {
// After truncation, `self` is at most as long as `other` so this loop // After truncation, `self` is at most as long as `other` so this loop
// replaces every key-value pair in `self`. Since `oiter` is in sorted // replaces every key-value pair in `self`. Since `oiter` is in sorted
// order and the structure of the `BTreeMap` stays the same, // order and the structure of the `BTreeMap` stays the same,
// the BTree invariants are maintained at the end of the loop // the BTree invariants are maintained at the end of the loop.
while !siter.is_empty() { while !siter.is_empty() {
if let Some((ok, ov)) = oiter.next() { if let Some((ok, ov)) = oiter.next() {
// SAFETY: This is safe because the `siter.front != siter.back` check // SAFETY: This is safe because `siter` is nonempty.
// ensures that `siter` is nonempty
let (sk, sv) = unsafe { siter.next_unchecked() }; let (sk, sv) = unsafe { siter.next_unchecked() };
sk.clone_from(ok); sk.clone_from(ok);
sv.clone_from(ov); sv.clone_from(ov);
@ -259,7 +258,7 @@ impl<K: Clone + Ord, V: Clone> BTreeClone for BTreeMap<K, V> {
break; break;
} }
} }
// If `other` is longer than `self`, the remaining elements are inserted // If `other` is longer than `self`, the remaining elements are inserted.
self.extend(oiter.map(|(k, v)| ((*k).clone(), (*v).clone()))); self.extend(oiter.map(|(k, v)| ((*k).clone(), (*v).clone())));
} }
} }