Clarify BTree range searching comments
This commit is contained in:
parent
d6eaea1c88
commit
922ccacc93
1 changed files with 3 additions and 1 deletions
|
@ -94,7 +94,7 @@ impl<BorrowType: marker::BorrowType, K, V> NodeRef<BorrowType, K, V, marker::Lea
|
||||||
K: Borrow<Q>,
|
K: Borrow<Q>,
|
||||||
R: RangeBounds<Q>,
|
R: RangeBounds<Q>,
|
||||||
{
|
{
|
||||||
// WARNING: Inlining these variables would be unsound (#81138)
|
// It might be unsound to inline these variables if this logic changes (#81138).
|
||||||
// We assume the bounds reported by `range` remain the same, but
|
// We assume the bounds reported by `range` remain the same, but
|
||||||
// an adversarial implementation could change between calls
|
// an adversarial implementation could change between calls
|
||||||
let (start, end) = (range.start_bound(), range.end_bound());
|
let (start, end) = (range.start_bound(), range.end_bound());
|
||||||
|
@ -114,6 +114,8 @@ impl<BorrowType: marker::BorrowType, K, V> NodeRef<BorrowType, K, V, marker::Lea
|
||||||
loop {
|
loop {
|
||||||
let (lower_edge_idx, lower_child_bound) = self.find_lower_bound_index(lower_bound);
|
let (lower_edge_idx, lower_child_bound) = self.find_lower_bound_index(lower_bound);
|
||||||
let (upper_edge_idx, upper_child_bound) = self.find_upper_bound_index(upper_bound);
|
let (upper_edge_idx, upper_child_bound) = self.find_upper_bound_index(upper_bound);
|
||||||
|
// SAFETY: This panic is used for safety, so external impls can't be called here. The
|
||||||
|
// comparison is done with integers for that reason.
|
||||||
if lower_edge_idx > upper_edge_idx {
|
if lower_edge_idx > upper_edge_idx {
|
||||||
panic!("Ord is ill-defined in BTreeMap range")
|
panic!("Ord is ill-defined in BTreeMap range")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue