From 508d0326475e0ceef2ea5755a03cacf181b34d7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esteban=20K=C3=BCber?= Date: Thu, 24 Oct 2019 15:44:43 -0700 Subject: [PATCH] review comment: deduplicate logic --- src/librustc_errors/emitter.rs | 40 +++++++++++----------------------- 1 file changed, 13 insertions(+), 27 deletions(-) diff --git a/src/librustc_errors/emitter.rs b/src/librustc_errors/emitter.rs index e59d6c567509..2a7f9ad25def 100644 --- a/src/librustc_errors/emitter.rs +++ b/src/librustc_errors/emitter.rs @@ -1583,27 +1583,26 @@ impl EmitterWriter { Ok(()) } - fn emit_messages_default(&mut self, - level: &Level, - message: &[(String, Style)], - code: &Option, - span: &MultiSpan, - children: &[SubDiagnostic], - suggestions: &[CodeSuggestion]) { + fn emit_messages_default( + &mut self, + level: &Level, + message: &[(String, Style)], + code: &Option, + span: &MultiSpan, + children: &[SubDiagnostic], + suggestions: &[CodeSuggestion], + ) { let max_line_num_len = if self.ui_testing { ANONYMIZED_LINE_NUM.len() } else { self.get_max_line_num(span, children).to_string().len() }; - match self.emit_message_default(span, - message, - code, - level, - max_line_num_len, - false) { + match self.emit_message_default(span, message, code, level, max_line_num_len, false) { Ok(()) => { - if !children.is_empty() { + if !children.is_empty() || suggestions.iter().any(|s| { + s.style != SuggestionStyle::CompletelyHidden + }) { let mut buffer = StyledBuffer::new(); if !self.short_message { draw_col_separator_no_space(&mut buffer, 0, max_line_num_len + 1); @@ -1629,19 +1628,6 @@ impl EmitterWriter { _ => () } } - if children.is_empty() && suggestions.iter().any(|s| { - s.style != SuggestionStyle::CompletelyHidden - }) { - let mut buffer = StyledBuffer::new(); - if !self.short_message { - draw_col_separator_no_space(&mut buffer, 0, max_line_num_len + 1); - } - match emit_to_destination(&buffer.render(), level, &mut self.dst, - self.short_message) { - Ok(()) => (), - Err(e) => panic!("failed to emit error: {}", e) - } - } for sugg in suggestions { if sugg.style == SuggestionStyle::CompletelyHidden { // do not display this suggestion, it is meant only for tools