From 361613565f22f6702b8fa25577dc4f16b9f22846 Mon Sep 17 00:00:00 2001 From: Theo Belaire Date: Fri, 1 May 2015 15:13:27 -0400 Subject: [PATCH 1/2] Indent code past the widest line number Fixes #11715 --- src/libsyntax/diagnostic.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/libsyntax/diagnostic.rs b/src/libsyntax/diagnostic.rs index a7453636c445c..a862034f54b00 100644 --- a/src/libsyntax/diagnostic.rs +++ b/src/libsyntax/diagnostic.rs @@ -588,12 +588,18 @@ fn highlight_lines(err: &mut EmitterWriter, let display_line_infos = &lines.lines[..display_lines]; let display_line_strings = &line_strings[..display_lines]; + // Calculate the widest number to format evenly and fix #11715 + assert!(display_line_infos.len > 0); + let mut max_line_num = display_line_infos[display_line_infos.len() - 1].line_index + 1; + let mut digits = 0; + while max_line_num > 0 { max_line_num /= 10; digits += 1; } // Print the offending lines for (line_info, line) in display_line_infos.iter().zip(display_line_strings.iter()) { - try!(write!(&mut err.dst, "{}:{} {}\n", + try!(write!(&mut err.dst, "{}:{:>width$} {}\n", fm.name, line_info.line_index + 1, - line)); + line, + width=digits)); } // If we elided something, put an ellipsis. From 80e63db1291dd1fea809802f024f5f754d7f8bd0 Mon Sep 17 00:00:00 2001 From: Theo Belaire Date: Fri, 1 May 2015 15:20:41 -0400 Subject: [PATCH 2/2] Fixed a typo --- src/libsyntax/diagnostic.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libsyntax/diagnostic.rs b/src/libsyntax/diagnostic.rs index a862034f54b00..f19eeef1e26dd 100644 --- a/src/libsyntax/diagnostic.rs +++ b/src/libsyntax/diagnostic.rs @@ -589,7 +589,7 @@ fn highlight_lines(err: &mut EmitterWriter, let display_line_strings = &line_strings[..display_lines]; // Calculate the widest number to format evenly and fix #11715 - assert!(display_line_infos.len > 0); + assert!(display_line_infos.len() > 0); let mut max_line_num = display_line_infos[display_line_infos.len() - 1].line_index + 1; let mut digits = 0; while max_line_num > 0 { max_line_num /= 10; digits += 1; }