diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2016-05-02 11:37:59 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2016-05-02 11:49:26 -0400 |
| commit | 9d151a71c032b655ca457521730044237c9e130e (patch) | |
| tree | 23e19200592f3534ee6d0fbafeac61c6482ad370 /src/libsyntax/errors/snippet/mod.rs | |
| parent | f359aa276216aa74868b4ead5fea9a83a8397b27 (diff) | |
| download | rust-9d151a71c032b655ca457521730044237c9e130e.tar.gz rust-9d151a71c032b655ca457521730044237c9e130e.zip | |
do not fail if len(rendered_lines) is == 1
also handle more rendered-lines
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(); } |
