about summary refs log tree commit diff
path: root/src/librustc_errors
diff options
context:
space:
mode:
authorJonathan Turner <jturner@mozilla.com>2016-07-07 14:57:09 -0400
committerJonathan Turner <jturner@mozilla.com>2016-07-14 07:57:46 -0400
commita019c2c6bad2bae7e0f5c527ea8a11615acc037f (patch)
tree07a67aeae42145e7a6ae8c1fb1762facc3f0e95e /src/librustc_errors
parenta6e7239e7b5db3a96fb6b84c41ecbced64b0ad2e (diff)
downloadrust-a019c2c6bad2bae7e0f5c527ea8a11615acc037f.tar.gz
rust-a019c2c6bad2bae7e0f5c527ea8a11615acc037f.zip
Remove CoreEmitter and focus on Emitter
Diffstat (limited to 'src/librustc_errors')
-rw-r--r--src/librustc_errors/emitter.rs79
1 files changed, 36 insertions, 43 deletions
diff --git a/src/librustc_errors/emitter.rs b/src/librustc_errors/emitter.rs
index 697f9687b0a..a0d7120dd4f 100644
--- a/src/librustc_errors/emitter.rs
+++ b/src/librustc_errors/emitter.rs
@@ -25,47 +25,29 @@ use std::io;
 use std::rc::Rc;
 use term;
 
-/// Emitter trait for emitting errors. Do not implement this directly:
-/// implement `CoreEmitter` instead.
+/// Emitter trait for emitting errors.
 pub trait Emitter {
     /// Emit a structured diagnostic.
     fn emit(&mut self, db: &DiagnosticBuilder);
 }
 
-pub trait CoreEmitter {
-    fn emit_message(&mut self,
-                    rsp: &RenderSpan,
-                    msg: &str,
-                    code: Option<&str>,
-                    lvl: Level,
-                    is_header: bool,
-                    show_snippet: bool);
-}
-
-impl<T: CoreEmitter> Emitter for T {
+impl Emitter for EmitterWriter {
     fn emit(&mut self, db: &DiagnosticBuilder) {
-        let old_school = check_old_skool();
-        let db_span = FullSpan(db.span.clone());
         self.emit_message(&FullSpan(db.span.clone()),
                           &db.message,
                           db.code.as_ref().map(|s| &**s),
                           db.level,
                           true,
                           true);
-        for child in &db.children {
-            let render_span = child.render_span
-                                   .clone()
-                                   .unwrap_or_else(
-                                       || FullSpan(child.span.clone()));
 
-            if !old_school {
-                self.emit_message(&render_span,
-                                    &child.message,
-                                    None,
-                                    child.level,
-                                    false,
-                                    true);
-            } else {
+        if check_old_skool() {
+            let db_span = FullSpan(db.span.clone());
+
+            for child in &db.children {
+                let render_span = child.render_span
+                                    .clone()
+                                    .unwrap_or_else(
+                                        || FullSpan(child.span.clone()));
                 let (render_span, show_snippet) = match render_span.span().primary_span() {
                     None => (db_span.clone(), false),
                     _ => (render_span, true)
@@ -77,6 +59,19 @@ impl<T: CoreEmitter> Emitter for T {
                                     false,
                                     show_snippet);
             }
+        } else {
+            for child in &db.children {
+                let render_span = child.render_span
+                                    .clone()
+                                    .unwrap_or_else(
+                                        || FullSpan(child.span.clone()));
+                self.emit_message(&render_span,
+                                    &child.message,
+                                    None,
+                                    child.level,
+                                    false,
+                                    true);
+            }
         }
     }
 }
@@ -114,21 +109,6 @@ pub struct EmitterWriter {
     format_mode: FormatMode
 }
 
-impl CoreEmitter for EmitterWriter {
-    fn emit_message(&mut self,
-                    rsp: &RenderSpan,
-                    msg: &str,
-                    code: Option<&str>,
-                    lvl: Level,
-                    is_header: bool,
-                    show_snippet: bool) {
-        match self.emit_message_(rsp, msg, code, lvl, is_header, show_snippet) {
-            Ok(()) => { }
-            Err(e) => panic!("failed to emit error: {}", e)
-        }
-    }
-}
-
 /// Do not use this for messages that end in `\n` – use `println_maybe_styled` instead. See
 /// `EmitterWriter::print_maybe_styled` for details.
 macro_rules! print_maybe_styled {
@@ -177,6 +157,19 @@ impl EmitterWriter {
                         format_mode: format_mode.clone() }
     }
 
+    fn emit_message(&mut self,
+                    rsp: &RenderSpan,
+                    msg: &str,
+                    code: Option<&str>,
+                    lvl: Level,
+                    is_header: bool,
+                    show_snippet: bool) {
+        match self.emit_message_(rsp, msg, code, lvl, is_header, show_snippet) {
+            Ok(()) => { }
+            Err(e) => panic!("failed to emit error: {}", e)
+        }
+    }
+
     fn emit_message_(&mut self,
                      rsp: &RenderSpan,
                      msg: &str,