about summary refs log tree commit diff
path: root/compiler/rustc_interface/src
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/rustc_interface/src')
-rw-r--r--compiler/rustc_interface/src/passes.rs32
1 files changed, 24 insertions, 8 deletions
diff --git a/compiler/rustc_interface/src/passes.rs b/compiler/rustc_interface/src/passes.rs
index adeb384787e..19f086b3a44 100644
--- a/compiler/rustc_interface/src/passes.rs
+++ b/compiler/rustc_interface/src/passes.rs
@@ -21,7 +21,7 @@ use rustc_metadata::{encode_metadata, EncodedMetadata};
 use rustc_middle::arena::Arena;
 use rustc_middle::dep_graph::DepGraph;
 use rustc_middle::ty::query::{ExternProviders, Providers};
-use rustc_middle::ty::{self, GlobalCtxt, RegisteredTools, ResolverOutputs, TyCtxt};
+use rustc_middle::ty::{self, GlobalCtxt, RegisteredTools, TyCtxt};
 use rustc_mir_build as mir_build;
 use rustc_parse::{parse_crate_from_file, parse_crate_from_source_str, validate_attr};
 use rustc_passes::{self, hir_stats, layout_test};
@@ -139,7 +139,8 @@ mod boxed_resolver {
 
         pub fn to_resolver_outputs(
             resolver: Rc<RefCell<BoxedResolver>>,
-        ) -> (Definitions, Box<CrateStoreDyn>, ResolverOutputs) {
+        ) -> (Definitions, Box<CrateStoreDyn>, ty::ResolverOutputs, ty::ResolverAstLowering)
+        {
             match Rc::try_unwrap(resolver) {
                 Ok(resolver) => {
                     let mut resolver = resolver.into_inner();
@@ -485,13 +486,21 @@ fn lower_to_hir<'tcx>(
     sess: &Session,
     definitions: &mut Definitions,
     cstore: &CrateStoreDyn,
-    resolver: &mut ResolverOutputs,
+    resolutions: &ty::ResolverOutputs,
+    resolver: ty::ResolverAstLowering,
     krate: Rc<ast::Crate>,
     arena: &'tcx rustc_ast_lowering::Arena<'tcx>,
 ) -> &'tcx Crate<'tcx> {
     // Lower AST to HIR.
-    let hir_crate =
-        rustc_ast_lowering::lower_crate(sess, &krate, definitions, cstore, resolver, arena);
+    let hir_crate = rustc_ast_lowering::lower_crate(
+        sess,
+        &krate,
+        definitions,
+        cstore,
+        resolutions,
+        resolver,
+        arena,
+    );
 
     // Drop AST to free memory
     sess.time("drop_ast", || std::mem::drop(krate));
@@ -829,14 +838,21 @@ pub fn create_global_ctxt<'tcx>(
     // incr. comp. yet.
     dep_graph.assert_ignored();
 
-    let (mut definitions, cstore, mut resolver_outputs) =
+    let (mut definitions, cstore, resolver_outputs, resolver_for_lowering) =
         BoxedResolver::to_resolver_outputs(resolver);
 
     let sess = &compiler.session();
 
     // Lower AST to HIR.
-    let krate =
-        lower_to_hir(sess, &mut definitions, &*cstore, &mut resolver_outputs, krate, hir_arena);
+    let krate = lower_to_hir(
+        sess,
+        &mut definitions,
+        &*cstore,
+        &resolver_outputs,
+        resolver_for_lowering,
+        krate,
+        hir_arena,
+    );
 
     let query_result_on_disk_cache = rustc_incremental::load_query_result_cache(sess);