]> git.lizzy.rs Git - rust.git/blobdiff - src/driver.rs
Merge pull request #3288 from devonhollowood/pedantic-dogfood-casts
[rust.git] / src / driver.rs
index e85f61e343fb29ef2c36c3325c0984437dd4c5ad..0619b3ae0d9c3b1a018168c9f063bffde8efcf50 100644 (file)
@@ -1,11 +1,29 @@
+// Copyright 2014-2018 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+
 // error-pattern:yummy
 #![feature(box_syntax)]
 #![feature(rustc_private)]
 #![feature(tool_lints)]
+#![feature(try_from)]
 #![allow(unknown_lints, clippy::missing_docs_in_private_items)]
 
-use rustc_driver::{self, driver::CompileController, Compilation};
-use rustc_plugin;
+// FIXME: switch to something more ergonomic here, once available.
+// (currently there is no way to opt into sysroot crates w/o `extern crate`)
+#[allow(unused_extern_crates)]
+extern crate rustc_driver;
+#[allow(unused_extern_crates)]
+extern crate rustc_plugin;
+use self::rustc_driver::{driver::CompileController, Compilation};
+
+use std::convert::TryInto;
 use std::path::Path;
 use std::process::{exit, Command};
 
@@ -15,6 +33,7 @@ fn show_version() {
 }
 
 pub fn main() {
+    rustc_driver::init_rustc_env_logger();
     exit(rustc_driver::run(move || {
         use std::env;
 
@@ -136,5 +155,5 @@ pub fn main() {
 
         let args = args;
         rustc_driver::run_compiler(&args, Box::new(controller), None, None)
-    }) as i32)
+    }).try_into().expect("exit code too large"))
 }