mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-28 20:16:58 +03:00
span_to_lines: account for DUMMY_SP
This commit is contained in:
@@ -499,14 +499,15 @@ pub fn span_to_lines(&self, sp: Span) -> FileLinesResult {
|
||||
// and to the end of the line. Be careful because the line
|
||||
// numbers in Loc are 1-based, so we subtract 1 to get 0-based
|
||||
// lines.
|
||||
for line_index in lo.line - 1..hi.line - 1 {
|
||||
let hi_line = hi.line.saturating_sub(1);
|
||||
for line_index in lo.line.saturating_sub(1)..hi_line {
|
||||
let line_len = lo.file.get_line(line_index).map(|s| s.chars().count()).unwrap_or(0);
|
||||
lines.push(LineInfo { line_index, start_col, end_col: CharPos::from_usize(line_len) });
|
||||
start_col = CharPos::from_usize(0);
|
||||
}
|
||||
|
||||
// For the last line, it extends from `start_col` to `hi.col`:
|
||||
lines.push(LineInfo { line_index: hi.line - 1, start_col, end_col: hi.col });
|
||||
lines.push(LineInfo { line_index: hi_line, start_col, end_col: hi.col });
|
||||
|
||||
Ok(FileLines { file: lo.file, lines })
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user