1
Fork 0

Fix failure note to_str implementation

* Serialize the level to something a little more useful for a failure note
  struct
* Update tests accordingly
This commit is contained in:
Afnan Enayet 2019-09-13 06:48:47 -07:00
parent 3287a65fc0
commit 02c1b892c1
No known key found for this signature in database
GPG key ID: 94EEFE1FD178056B
4 changed files with 12 additions and 9 deletions

View file

@ -1144,15 +1144,18 @@ impl EmitterWriter {
buffer.prepend(0, " ", Style::NoStyle); buffer.prepend(0, " ", Style::NoStyle);
} }
draw_note_separator(&mut buffer, 0, max_line_num_len + 1); draw_note_separator(&mut buffer, 0, max_line_num_len + 1);
let level_str = level.to_string(); if *level != Level::FailureNote {
if !level_str.is_empty() { let level_str = level.to_string();
buffer.append(0, &level_str, Style::MainHeaderMsg); if !level_str.is_empty() {
buffer.append(0, ": ", Style::NoStyle); buffer.append(0, &level_str, Style::MainHeaderMsg);
buffer.append(0, ": ", Style::NoStyle);
}
} }
self.msg_to_buffer(&mut buffer, msg, max_line_num_len, "note", None); self.msg_to_buffer(&mut buffer, msg, max_line_num_len, "note", None);
} else { } else {
let level_str = level.to_string(); let level_str = level.to_string();
if !level_str.is_empty() { // The failure note level itself does not provide any useful diagnostic information
if *level != Level::FailureNote && !level_str.is_empty() {
buffer.append(0, &level_str, Style::Level(level.clone())); buffer.append(0, &level_str, Style::Level(level.clone()));
} }
// only render error codes, not lint codes // only render error codes, not lint codes
@ -1161,7 +1164,7 @@ impl EmitterWriter {
buffer.append(0, &code, Style::Level(level.clone())); buffer.append(0, &code, Style::Level(level.clone()));
buffer.append(0, "]", Style::Level(level.clone())); buffer.append(0, "]", Style::Level(level.clone()));
} }
if !level_str.is_empty() { if *level != Level::FailureNote && !level_str.is_empty() {
buffer.append(0, ": ", header_style); buffer.append(0, ": ", header_style);
} }
for &(ref text, _) in msg.iter() { for &(ref text, _) in msg.iter() {

View file

@ -833,7 +833,7 @@ impl Level {
Warning => "warning", Warning => "warning",
Note => "note", Note => "note",
Help => "help", Help => "help",
FailureNote => "", FailureNote => "failure-note",
Cancelled => panic!("Shouldn't call on cancelled error"), Cancelled => panic!("Shouldn't call on cancelled error"),
} }
} }

View file

@ -15,5 +15,5 @@ started: https://doc.rust-lang.org/book/
"} "}
{"message":"aborting due to previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to previous error {"message":"aborting due to previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to previous error
"} "}
{"message":"For more information about this error, try `rustc --explain E0601`.","code":null,"level":"","spans":[],"children":[],"rendered":"For more information about this error, try `rustc --explain E0601`. {"message":"For more information about this error, try `rustc --explain E0601`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"For more information about this error, try `rustc --explain E0601`.
"} "}

View file

@ -412,7 +412,7 @@ mod foo {
{ {
"message": "For more information about this error, try `rustc --explain E0412`.", "message": "For more information about this error, try `rustc --explain E0412`.",
"code": null, "code": null,
"level": "", "level": "failure-note",
"spans": [], "spans": [],
"children": [], "children": [],
"rendered": "\u001b[0m\u001b[1mFor more information about this error, try `rustc --explain E0412`.\u001b[0m "rendered": "\u001b[0m\u001b[1mFor more information about this error, try `rustc --explain E0412`.\u001b[0m