diff options
| author | Nick Cameron <ncameron@mozilla.com> | 2015-02-21 16:25:51 +1300 |
|---|---|---|
| committer | Nick Cameron <ncameron@mozilla.com> | 2015-02-21 16:25:51 +1300 |
| commit | 712a6870e91b9b2b971e63ed9c6a3f806ff97e46 (patch) | |
| tree | 4805675bd92bfe1642207b2dade4c24081f2f693 /src/librustc_driver | |
| parent | 522d09dfecbeca1595f25ac58c6d0178bbd21d7d (diff) | |
| download | rust-712a6870e91b9b2b971e63ed9c6a3f806ff97e46.tar.gz rust-712a6870e91b9b2b971e63ed9c6a3f806ff97e46.zip | |
In the rustc driver, we pass the expanded, not the pre-expansion, AST to the post-analysis callback. We can also pass this to post-write-deps callback.
Diffstat (limited to 'src/librustc_driver')
| -rw-r--r-- | src/librustc_driver/driver.rs | 7 | ||||
| -rw-r--r-- | src/librustc_driver/lib.rs | 12 |
2 files changed, 12 insertions, 7 deletions
diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs index a260997f605..727c02a5a1b 100644 --- a/src/librustc_driver/driver.rs +++ b/src/librustc_driver/driver.rs @@ -112,6 +112,7 @@ pub fn compile_input(sess: Session, &sess, outdir, &ast_map, + &ast_map.krate(), &id[..])); let analysis = phase_3_run_analysis_passes(sess, @@ -287,11 +288,13 @@ impl<'a, 'ast, 'tcx> CompileState<'a, 'ast, 'tcx> { session: &'a Session, out_dir: &'a Option<Path>, ast_map: &'a ast_map::Map<'ast>, + expanded_crate: &'a ast::Crate, crate_name: &'a str) -> CompileState<'a, 'ast, 'tcx> { CompileState { crate_name: Some(crate_name), ast_map: Some(ast_map), + expanded_crate: Some(expanded_crate), .. CompileState::empty(input, session, out_dir) } } @@ -299,14 +302,14 @@ impl<'a, 'ast, 'tcx> CompileState<'a, 'ast, 'tcx> { fn state_after_analysis(input: &'a Input, session: &'a Session, out_dir: &'a Option<Path>, - krate: &'a ast::Crate, + expanded_crate: &'a ast::Crate, analysis: &'a ty::CrateAnalysis<'tcx>, tcx: &'a ty::ctxt<'tcx>) -> CompileState<'a, 'ast, 'tcx> { CompileState { analysis: Some(analysis), tcx: Some(tcx), - krate: Some(krate), + expanded_crate: Some(expanded_crate), .. CompileState::empty(input, session, out_dir) } } diff --git a/src/librustc_driver/lib.rs b/src/librustc_driver/lib.rs index 2550432c810..e520e67c826 100644 --- a/src/librustc_driver/lib.rs +++ b/src/librustc_driver/lib.rs @@ -373,11 +373,13 @@ impl<'a> CompilerCalls<'a> for RustcDefaultCalls { if sess.opts.debugging_opts.save_analysis { control.after_analysis.callback = box |state| { - time(state.session.time_passes(), "save analysis", state.krate.unwrap(), |krate| - save::process_crate(state.session, - krate, - state.analysis.unwrap(), - state.out_dir)); + time(state.session.time_passes(), + "save analysis", + state.expanded_crate.unwrap(), + |krate| save::process_crate(state.session, + krate, + state.analysis.unwrap(), + state.out_dir)); }; control.make_glob_map = resolve::MakeGlobMap::Yes; } |
