diff options
Diffstat (limited to 'src/libsyntax/errors/snippet/mod.rs')
| -rw-r--r-- | src/libsyntax/errors/snippet/mod.rs | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/libsyntax/errors/snippet/mod.rs b/src/libsyntax/errors/snippet/mod.rs index 6c90bfd0818..1ec4a015742 100644 --- a/src/libsyntax/errors/snippet/mod.rs +++ b/src/libsyntax/errors/snippet/mod.rs @@ -475,30 +475,34 @@ impl FileInfo { while let Some(line) = next_line { if line.annotations.is_empty() { break; } - let mut rendered_line = self.render_line(line); + let mut rendered_lines = self.render_line(line); + assert!(!rendered_lines.is_empty()); if old_school { match self.primary_span { Some(span) => { let lo = codemap.lookup_char_pos(span.lo); - rendered_line[0].text.insert(0, StyledString { + rendered_lines[0].text.insert(0, StyledString { text: format!(":{} ", lo.line), style: Style::LineAndColumn, }); - rendered_line[0].text.insert(0, StyledString { + rendered_lines[0].text.insert(0, StyledString { text: lo.file.name.clone(), style: Style::FileNameStyle, }); - let gap_amount = rendered_line[0].text[0].text.len() + - rendered_line[0].text[1].text.len(); - rendered_line[1].text.insert(0, StyledString { - text: vec![" "; gap_amount].join(""), - style: Style::NoStyle - }); + let gap_amount = + rendered_lines[0].text[0].text.len() + + rendered_lines[0].text[1].text.len(); + for i in 1..rendered_lines.len() { + rendered_lines[i].text.insert(0, StyledString { + text: vec![" "; gap_amount].join(""), + style: Style::NoStyle + }); + } } _ =>() } } - output.append(&mut rendered_line); + output.append(&mut rendered_lines); next_line = lines_iter.next(); } |
