]> git.lizzy.rs Git - rust.git/commitdiff
In the rustc driver, we pass the expanded, not the pre-expansion, AST to the post...
authorNick Cameron <ncameron@mozilla.com>
Sat, 21 Feb 2015 03:25:51 +0000 (16:25 +1300)
committerNick Cameron <ncameron@mozilla.com>
Sat, 21 Feb 2015 03:25:51 +0000 (16:25 +1300)
src/librustc_driver/driver.rs
src/librustc_driver/lib.rs

index a260997f605940da7ac8d8fd6b83c9e93232af1b..727c02a5a1b2462f234401453c9a400d3c829b65 100644 (file)
@@ -112,6 +112,7 @@ macro_rules! controller_entry_point{($point: ident, $make_state: expr) => ({
                                                                      &sess,
                                                                      outdir,
                                                                      &ast_map,
+                                                                     &ast_map.krate(),
                                                                      &id[..]));
 
         let analysis = phase_3_run_analysis_passes(sess,
@@ -287,11 +288,13 @@ fn state_after_write_deps(input: &'a Input,
                               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 @@ fn state_after_write_deps(input: &'a Input,
     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)
         }
     }
index 2550432c8101adde411a3828936cb1a031eecaa0..e520e67c82690eb1e998de8f5987b6b953dc6139 100644 (file)
@@ -373,11 +373,13 @@ fn build_controller(&mut self, sess: &Session) -> CompileController<'a> {
 
         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;
         }