From 20ebb807d523947f5fac710c4ae95ac9730ad995 Mon Sep 17 00:00:00 2001 From: Mazdak Farrokhzad Date: Mon, 6 Jan 2020 11:46:30 +0100 Subject: [PATCH] span_to_lines: account for DUMMY_SP --- src/librustc_span/source_map.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/librustc_span/source_map.rs b/src/librustc_span/source_map.rs index 0b9b9fe7887f..ec1f9f3a7bda 100644 --- a/src/librustc_span/source_map.rs +++ b/src/librustc_span/source_map.rs @@ -499,14 +499,15 @@ impl SourceMap { // 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 }) }