diff --git a/compiler/rustc_span/src/lib.rs b/compiler/rustc_span/src/lib.rs index ada3bae6150..6ce75492caf 100644 --- a/compiler/rustc_span/src/lib.rs +++ b/compiler/rustc_span/src/lib.rs @@ -1631,10 +1631,9 @@ impl SourceFile { /// number. If the source_file is empty or the position is located before the /// first line, `None` is returned. pub fn lookup_line(&self, pos: BytePos) -> Option { - self.lines(|lines| match lines.binary_search(&pos) { - Ok(idx) => Some(idx), - Err(0) => None, - Err(idx) => Some(idx - 1), + self.lines(|lines| match lines.partition_point(|x| x <= &pos) { + 0 => None, + i => Some(i - 1), }) }