diff options
| author | Nick Cameron <ncameron@mozilla.com> | 2017-08-08 16:32:47 +1200 |
|---|---|---|
| committer | Nick Cameron <ncameron@mozilla.com> | 2017-08-08 16:32:47 +1200 |
| commit | 8d8876c0b75ea6ee5ee5eac6abf78fb92c9ac9f3 (patch) | |
| tree | 19d010a349720021a5313530f74a43dfc3feff4f | |
| parent | 65b0a0c2c7a658ba32233c12c3cca6ea46f3ce5a (diff) | |
| download | rust-8d8876c0b75ea6ee5ee5eac6abf78fb92c9ac9f3.tar.gz rust-8d8876c0b75ea6ee5ee5eac6abf78fb92c9ac9f3.zip | |
driver: factor out a helper and make another helper public
| -rw-r--r-- | src/librustc_driver/lib.rs | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/src/librustc_driver/lib.rs b/src/librustc_driver/lib.rs index 4c337993468..b4b7446f753 100644 --- a/src/librustc_driver/lib.rs +++ b/src/librustc_driver/lib.rs @@ -518,7 +518,7 @@ impl<'a> CompilerCalls<'a> for RustcDefaultCalls { -> CompileController<'a> { let mut control = CompileController::basic(); - control.keep_ast = sess.opts.debugging_opts.keep_ast || save_analysis(sess); + control.keep_ast = sess.opts.debugging_opts.keep_ast; if let Some((ppm, opt_uii)) = parse_pretty(sess, matches) { if ppm.needs_ast_map(&opt_uii) { @@ -574,19 +574,7 @@ impl<'a> CompilerCalls<'a> for RustcDefaultCalls { } if save_analysis(sess) { - control.after_analysis.callback = box |state| { - time(state.session.time_passes(), "save analysis", || { - save::process_crate(state.tcx.unwrap(), - state.expanded_crate.unwrap(), - state.analysis.unwrap(), - state.crate_name.unwrap(), - None, - DumpHandler::new(state.out_dir, - state.crate_name.unwrap())) - }); - }; - control.after_analysis.run_callback_on_error = true; - control.make_glob_map = resolve::MakeGlobMap::Yes; + enable_save_analysis(&mut control); } if sess.print_fuel_crate.is_some() { @@ -603,6 +591,23 @@ impl<'a> CompilerCalls<'a> for RustcDefaultCalls { } } +pub fn enable_save_analysis(control: &mut CompileController) { + control.keep_ast = true; + control.after_analysis.callback = box |state| { + time(state.session.time_passes(), "save analysis", || { + save::process_crate(state.tcx.unwrap(), + state.expanded_crate.unwrap(), + state.analysis.unwrap(), + state.crate_name.unwrap(), + None, + DumpHandler::new(state.out_dir, + state.crate_name.unwrap())) + }); + }; + control.after_analysis.run_callback_on_error = true; + control.make_glob_map = resolve::MakeGlobMap::Yes; +} + fn save_analysis(sess: &Session) -> bool { sess.opts.debugging_opts.save_analysis } @@ -1215,7 +1220,7 @@ pub fn diagnostics_registry() -> errors::registry::Registry { Registry::new(&all_errors) } -fn get_args() -> Vec<String> { +pub fn get_args() -> Vec<String> { env::args_os().enumerate() .map(|(i, arg)| arg.into_string().unwrap_or_else(|arg| { early_error(ErrorOutputType::default(), |
