Merge pull request #3011 from xtactis/binary_search_by_fix/3007

Fix for bug in binary_search_by implementation
This commit is contained in:
Jeroen van Rijn
2023-12-07 18:26:34 +01:00
committed by GitHub
+1 -3
View File
@@ -170,9 +170,7 @@ binary_search :: proc(array: $A/[]$T, key: T) -> (index: int, found: bool)
} }
@(require_results) @(require_results)
binary_search_by :: proc(array: $A/[]$T, key: T, f: proc(T, T) -> Ordering) -> (index: int, found: bool) binary_search_by :: proc(array: $A/[]$T, key: T, f: proc(T, T) -> Ordering) -> (index: int, found: bool) #no_bounds_check {
where intrinsics.type_is_ordered(T) #no_bounds_check
{
// INVARIANTS: // INVARIANTS:
// - 0 <= left <= (left + size = right) <= len(array) // - 0 <= left <= (left + size = right) <= len(array)
// - f returns .Less for everything in array[:left] // - f returns .Less for everything in array[:left]