about summary refs log tree commit diff
path: root/src/librustc_driver
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2015-01-16 15:54:58 -0800
committerBrian Anderson <banderson@mozilla.com>2015-01-20 11:27:14 -0800
commit953d6dfd7e1b1d5c5b17314b6e3bdec15d8e7a01 (patch)
tree9484471680b6a961392df1120297ed868795f77b /src/librustc_driver
parenta0f86de49748b472d4d189d9688b0d856c000914 (diff)
downloadrust-953d6dfd7e1b1d5c5b17314b6e3bdec15d8e7a01.tar.gz
rust-953d6dfd7e1b1d5c5b17314b6e3bdec15d8e7a01.zip
Make error code registration work again. #19624
Diffstat (limited to 'src/librustc_driver')
-rw-r--r--src/librustc_driver/lib.rs15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/librustc_driver/lib.rs b/src/librustc_driver/lib.rs
index 50ff4546c37..f8e889fc711 100644
--- a/src/librustc_driver/lib.rs
+++ b/src/librustc_driver/lib.rs
@@ -61,7 +61,6 @@ use rustc::lint::Lint;
 use rustc::lint;
 use rustc::metadata;
 use rustc::metadata::creader::CrateOrString::Str;
-use rustc::DIAGNOSTICS;
 use rustc::util::common::time;
 
 use std::cmp::Ordering::Equal;
@@ -98,7 +97,7 @@ fn run_compiler(args: &[String]) {
         None => return
     };
 
-    let descriptions = diagnostics::registry::Registry::new(&DIAGNOSTICS);
+    let descriptions = diagnostics_registry();
     match matches.opt_str("explain") {
         Some(ref code) => {
             match descriptions.find_description(&code[]) {
@@ -659,8 +658,20 @@ pub fn monitor<F:FnOnce()+Send>(f: F) {
     }
 }
 
+pub fn diagnostics_registry() -> diagnostics::registry::Registry {
+    use syntax::diagnostics::registry::Registry;
+
+    let all_errors = Vec::new() +
+        rustc::diagnostics::DIAGNOSTICS.as_slice() +
+        rustc_typeck::diagnostics::DIAGNOSTICS.as_slice() +
+        rustc_resolve::diagnostics::DIAGNOSTICS.as_slice();
+
+    Registry::new(&*all_errors)
+}
+
 pub fn main() {
     let args = std::os::args();
     let result = run(args);
     std::os::set_exit_status(result);
 }
+