From de517759009274387e2bc025da97f19db3d42462 Mon Sep 17 00:00:00 2001 From: Alessandro Decina Date: Wed, 24 Jan 2018 22:12:41 +1100 Subject: [PATCH] Fix compilation with rustc 1.25.0-nightly (4e3901d35 2018-01-23) rustc_driver::get_args is no more, see https://github.com/rust-lang/rust/pull/47661. --- src/lib.rs | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index f3a8bc0..0a7ba2a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -10,23 +10,32 @@ extern crate rustc_trans_utils; extern crate syntax; use rustc::middle::cstore::CrateStore; -use rustc::session::Session; +use rustc::session::{Session, early_error}; use rustc::session::config::{self, ErrorOutputType, Input}; use rustc_trans_utils::trans_crate::TransCrate; use rustc_driver::driver::CompileController; -use rustc_driver::{run_compiler, CompilerCalls, RustcDefaultCalls, Compilation, enable_save_analysis, get_args}; +use rustc_driver::{run_compiler, CompilerCalls, RustcDefaultCalls, Compilation, enable_save_analysis}; use syntax::ast; +use std::env; use std::path::PathBuf; use std::process; pub fn run() { env_logger::init().unwrap(); + let result = rustc_driver::run(|| { + let args = env::args_os().enumerate() + .map(|(i, arg)| arg.into_string().unwrap_or_else(|arg| { + early_error(ErrorOutputType::default(), + &format!("Argument {} is not valid Unicode: {:?}", i, arg)) + })) + .collect::>(); - let result = rustc_driver::run(|| run_compiler(&get_args(), - &mut ShimCalls, - None, - None)); + run_compiler(&args, + &mut ShimCalls, + None, + None) + }); process::exit(result as i32); }