Fix interaction of --no-analysis and --emit dep-info

Closes #21130
This commit is contained in:
Nick Cameron 2015-01-15 09:30:34 +13:00
parent 896cb36eca
commit 6f9e1a0042
3 changed files with 23 additions and 11 deletions

View File

@ -103,6 +103,13 @@ macro_rules! controller_entry_point{($point: ident, $make_state: expr) => ({
write_out_deps(&sess, input, &outputs, &id[]); write_out_deps(&sess, input, &outputs, &id[]);
controller_entry_point!(after_write_deps,
CompileState::state_after_write_deps(input,
&sess,
outdir,
&ast_map,
&id[]));
let arenas = ty::CtxtArenas::new(); let arenas = ty::CtxtArenas::new();
let analysis = phase_3_run_analysis_passes(sess, let analysis = phase_3_run_analysis_passes(sess,
ast_map, ast_map,
@ -176,6 +183,7 @@ pub fn source_name(input: &Input) -> String {
pub struct CompileController<'a> { pub struct CompileController<'a> {
pub after_parse: PhaseController<'a>, pub after_parse: PhaseController<'a>,
pub after_expand: PhaseController<'a>, pub after_expand: PhaseController<'a>,
pub after_write_deps: PhaseController<'a>,
pub after_analysis: PhaseController<'a>, pub after_analysis: PhaseController<'a>,
pub after_llvm: PhaseController<'a>, pub after_llvm: PhaseController<'a>,
@ -187,6 +195,7 @@ pub fn basic() -> CompileController<'a> {
CompileController { CompileController {
after_parse: PhaseController::basic(), after_parse: PhaseController::basic(),
after_expand: PhaseController::basic(), after_expand: PhaseController::basic(),
after_write_deps: PhaseController::basic(),
after_analysis: PhaseController::basic(), after_analysis: PhaseController::basic(),
after_llvm: PhaseController::basic(), after_llvm: PhaseController::basic(),
make_glob_map: resolve::MakeGlobMap::No, make_glob_map: resolve::MakeGlobMap::No,
@ -271,6 +280,19 @@ fn state_after_expand(input: &'a Input,
} }
} }
fn state_after_write_deps(input: &'a Input,
session: &'a Session,
out_dir: &'a Option<Path>,
ast_map: &'a ast_map::Map<'ast>,
crate_name: &'a str)
-> CompileState<'a, 'ast, 'tcx> {
CompileState {
crate_name: Some(crate_name),
ast_map: Some(ast_map),
.. CompileState::empty(input, session, out_dir)
}
}
fn state_after_analysis(input: &'a Input, fn state_after_analysis(input: &'a Input,
session: &'a Session, session: &'a Session,
out_dir: &'a Option<Path>, out_dir: &'a Option<Path>,

View File

@ -207,7 +207,7 @@ fn build_controller<'a>(sess: &Session) -> CompileController<'a> {
} }
if sess.opts.no_analysis || sess.opts.debugging_opts.ast_json { if sess.opts.no_analysis || sess.opts.debugging_opts.ast_json {
control.after_expand.stop = true; control.after_write_deps.stop = true;
} }
if sess.opts.no_trans { if sess.opts.no_trans {

View File

@ -1,10 +0,0 @@
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// 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.