about summary refs log tree commit diff
path: root/compiler/rustc_interface/src
diff options
context:
space:
mode:
authorCamille GILLOT <gillot.camille@gmail.com>2021-07-05 22:26:23 +0200
committerCamille GILLOT <gillot.camille@gmail.com>2022-06-14 22:44:27 +0200
commit603746a35e35827b7a25604145832e9dc8057ece (patch)
tree250592eb3230db06ad2610727f588968ce56ea2a /compiler/rustc_interface/src
parent47799de35a118ffc5a24a414fd003428f850fae4 (diff)
downloadrust-603746a35e35827b7a25604145832e9dc8057ece.tar.gz
rust-603746a35e35827b7a25604145832e9dc8057ece.zip
Make ResolverAstLowering a struct.
Diffstat (limited to 'compiler/rustc_interface/src')
-rw-r--r--compiler/rustc_interface/src/passes.rs19
1 files changed, 13 insertions, 6 deletions
diff --git a/compiler/rustc_interface/src/passes.rs b/compiler/rustc_interface/src/passes.rs
index 42520c1d032..adeb384787e 100644
--- a/compiler/rustc_interface/src/passes.rs
+++ b/compiler/rustc_interface/src/passes.rs
@@ -481,14 +481,17 @@ pub fn configure_and_expand(
     Ok(krate)
 }
 
-pub fn lower_to_hir<'res, 'tcx>(
-    sess: &'tcx Session,
-    resolver: &'res mut Resolver<'_>,
+fn lower_to_hir<'tcx>(
+    sess: &Session,
+    definitions: &mut Definitions,
+    cstore: &CrateStoreDyn,
+    resolver: &mut ResolverOutputs,
     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, resolver, arena);
+    let hir_crate =
+        rustc_ast_lowering::lower_crate(sess, &krate, definitions, cstore, resolver, arena);
 
     // Drop AST to free memory
     sess.time("drop_ast", || std::mem::drop(krate));
@@ -826,10 +829,14 @@ pub fn create_global_ctxt<'tcx>(
     // incr. comp. yet.
     dep_graph.assert_ignored();
 
+    let (mut definitions, cstore, mut resolver_outputs) =
+        BoxedResolver::to_resolver_outputs(resolver);
+
     let sess = &compiler.session();
+
+    // Lower AST to HIR.
     let krate =
-        resolver.borrow_mut().access(|resolver| lower_to_hir(sess, resolver, krate, hir_arena));
-    let (definitions, cstore, resolver_outputs) = BoxedResolver::to_resolver_outputs(resolver);
+        lower_to_hir(sess, &mut definitions, &*cstore, &mut resolver_outputs, krate, hir_arena);
 
     let query_result_on_disk_cache = rustc_incremental::load_query_result_cache(sess);