]> git.lizzy.rs Git - rust.git/commitdiff
ResolverTree does not require access to the crate loader, only the store
authorOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>
Wed, 7 Dec 2022 13:34:05 +0000 (13:34 +0000)
committerOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>
Fri, 9 Dec 2022 14:50:09 +0000 (14:50 +0000)
compiler/rustc_resolve/src/effective_visibilities.rs
compiler/rustc_resolve/src/lib.rs

index 85399385d1fd4fb2bd66a9b1244a869011aae057..3a7d463a62583b4ec05e70f3a78f36c669ecc237 100644 (file)
@@ -107,7 +107,7 @@ pub fn compute_effective_visibilities<'c>(r: &'r mut Resolver<'a>, krate: &'c Cr
                 r.effective_visibilities.update_eff_vis(
                     r.local_def_id(node_id),
                     eff_vis,
-                    ResolverTree(&r.definitions, &r.crate_loader),
+                    ResolverTree(&r.definitions, r.crate_loader.cstore()),
                 )
             }
         }
index 82f5d0f534a4bf76d6ca2e37bc7a83015abc92ca..816dc4cb4dcc4b094ac5d3c03322af4a6b4a2d72 100644 (file)
@@ -1112,15 +1112,15 @@ fn as_mut(&mut self) -> &mut Resolver<'a> {
 /// A minimal subset of resolver that can implemenent `DefIdTree`, sometimes
 /// required to satisfy borrow checker by avoiding borrowing the whole resolver.
 #[derive(Clone, Copy)]
-struct ResolverTree<'a, 'b>(&'a Definitions, &'a CrateLoader<'b>);
+struct ResolverTree<'a>(&'a Definitions, &'a CStore);
 
-impl DefIdTree for ResolverTree<'_, '_> {
+impl DefIdTree for ResolverTree<'_> {
     #[inline]
     fn opt_parent(self, id: DefId) -> Option<DefId> {
-        let ResolverTree(definitions, crate_loader) = self;
+        let ResolverTree(definitions, cstore) = self;
         match id.as_local() {
             Some(id) => definitions.def_key(id).parent,
-            None => crate_loader.cstore().def_key(id).parent,
+            None => cstore.def_key(id).parent,
         }
         .map(|index| DefId { index, ..id })
     }
@@ -1129,7 +1129,7 @@ fn opt_parent(self, id: DefId) -> Option<DefId> {
 impl<'a, 'b> DefIdTree for &'a Resolver<'b> {
     #[inline]
     fn opt_parent(self, id: DefId) -> Option<DefId> {
-        ResolverTree(&self.definitions, &self.crate_loader).opt_parent(id)
+        ResolverTree(&self.definitions, self.cstore()).opt_parent(id)
     }
 }