Skip to content

Commit 9d151a7

Browse files
committed
do not fail if len(rendered_lines) is == 1
also handle more rendered-lines
1 parent f359aa2 commit 9d151a7

File tree

1 file changed

+14
-10
lines changed
  • src/libsyntax/errors/snippet

1 file changed

+14
-10
lines changed

src/libsyntax/errors/snippet/mod.rs

+14-10
Original file line numberDiff line numberDiff line change
@@ -475,30 +475,34 @@ impl FileInfo {
475475
while let Some(line) = next_line {
476476
if line.annotations.is_empty() { break; }
477477

478-
let mut rendered_line = self.render_line(line);
478+
let mut rendered_lines = self.render_line(line);
479+
assert!(!rendered_lines.is_empty());
479480
if old_school {
480481
match self.primary_span {
481482
Some(span) => {
482483
let lo = codemap.lookup_char_pos(span.lo);
483-
rendered_line[0].text.insert(0, StyledString {
484+
rendered_lines[0].text.insert(0, StyledString {
484485
text: format!(":{} ", lo.line),
485486
style: Style::LineAndColumn,
486487
});
487-
rendered_line[0].text.insert(0, StyledString {
488+
rendered_lines[0].text.insert(0, StyledString {
488489
text: lo.file.name.clone(),
489490
style: Style::FileNameStyle,
490491
});
491-
let gap_amount = rendered_line[0].text[0].text.len() +
492-
rendered_line[0].text[1].text.len();
493-
rendered_line[1].text.insert(0, StyledString {
494-
text: vec![" "; gap_amount].join(""),
495-
style: Style::NoStyle
496-
});
492+
let gap_amount =
493+
rendered_lines[0].text[0].text.len() +
494+
rendered_lines[0].text[1].text.len();
495+
for i in 1..rendered_lines.len() {
496+
rendered_lines[i].text.insert(0, StyledString {
497+
text: vec![" "; gap_amount].join(""),
498+
style: Style::NoStyle
499+
});
500+
}
497501
}
498502
_ =>()
499503
}
500504
}
501-
output.append(&mut rendered_line);
505+
output.append(&mut rendered_lines);
502506
next_line = lines_iter.next();
503507
}
504508

0 commit comments

Comments
 (0)