about summary refs log tree commit diff
path: root/src/librustc_errors
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2019-10-24 15:44:43 -0700
committerEsteban Küber <esteban@kuber.com.ar>2019-10-24 15:44:43 -0700
commit508d0326475e0ceef2ea5755a03cacf181b34d7c (patch)
treea84831a09e4ea5240bfc105ba2443150b6d3b339 /src/librustc_errors
parent0baf61bfdb95980c69fbfcc0fc95ce82e8d81ac9 (diff)
downloadrust-508d0326475e0ceef2ea5755a03cacf181b34d7c.tar.gz
rust-508d0326475e0ceef2ea5755a03cacf181b34d7c.zip
review comment: deduplicate logic
Diffstat (limited to 'src/librustc_errors')
-rw-r--r--src/librustc_errors/emitter.rs40
1 files changed, 13 insertions, 27 deletions
diff --git a/src/librustc_errors/emitter.rs b/src/librustc_errors/emitter.rs
index e59d6c56750..2a7f9ad25de 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<DiagnosticId>,
-                             span: &MultiSpan,
-                             children: &[SubDiagnostic],
-                             suggestions: &[CodeSuggestion]) {
+    fn emit_messages_default(
+        &mut self,
+        level: &Level,
+        message: &[(String, Style)],
+        code: &Option<DiagnosticId>,
+        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