Prepare crate loader for LockGuard
This commit is contained in:
parent
d191de63f0
commit
e8e227aec8
4 changed files with 11 additions and 10 deletions
|
@ -852,7 +852,7 @@ impl<'a, 'b, 'tcx> BuildReducedGraphVisitor<'a, 'b, 'tcx> {
|
|||
} else if orig_name == Some(kw::SelfLower) {
|
||||
Some(self.r.graph_root)
|
||||
} else {
|
||||
let crate_id = self.r.crate_loader().process_extern_crate(item, local_def_id);
|
||||
let crate_id = self.r.crate_loader(|c| c.process_extern_crate(item, local_def_id));
|
||||
crate_id.map(|crate_id| {
|
||||
self.r.extern_crate_map.insert(local_def_id, crate_id);
|
||||
self.r.expect_module(crate_id.as_def_id())
|
||||
|
|
|
@ -1315,7 +1315,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
|
|||
// otherwise cause duplicate suggestions.
|
||||
continue;
|
||||
}
|
||||
let crate_id = self.crate_loader().maybe_process_path_extern(ident.name);
|
||||
let crate_id = self.crate_loader(|c| c.maybe_process_path_extern(ident.name));
|
||||
if let Some(crate_id) = crate_id {
|
||||
let crate_root = self.expect_module(crate_id.as_def_id());
|
||||
suggestions.extend(self.lookup_import_candidates_from_module(
|
||||
|
|
|
@ -1700,8 +1700,7 @@ impl<'a: 'ast, 'ast, 'tcx> LateResolutionVisitor<'a, '_, 'ast, 'tcx> {
|
|||
let extern_prelude = self.r.extern_prelude.clone();
|
||||
names.extend(extern_prelude.iter().flat_map(|(ident, _)| {
|
||||
self.r
|
||||
.crate_loader()
|
||||
.maybe_process_path_extern(ident.name)
|
||||
.crate_loader(|c| c.maybe_process_path_extern(ident.name))
|
||||
.and_then(|crate_id| {
|
||||
let crate_mod =
|
||||
Res::Def(DefKind::Mod, crate_id.as_def_id());
|
||||
|
|
|
@ -1482,15 +1482,15 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
|
|||
StableHashingContext::new(self.tcx.sess, &self.untracked)
|
||||
}
|
||||
|
||||
fn crate_loader(&mut self) -> CrateLoader<'_> {
|
||||
CrateLoader::new(
|
||||
fn crate_loader<T>(&mut self, f: impl FnOnce(&mut CrateLoader<'_>) -> T) -> T {
|
||||
f(&mut CrateLoader::new(
|
||||
&self.tcx.sess,
|
||||
&*self.metadata_loader,
|
||||
self.local_crate_name,
|
||||
&mut *self.untracked.cstore.untracked_as_any().downcast_mut().unwrap(),
|
||||
self.untracked.definitions.read(),
|
||||
&mut self.used_extern_options,
|
||||
)
|
||||
))
|
||||
}
|
||||
|
||||
fn cstore(&self) -> &CStore {
|
||||
|
@ -1539,7 +1539,9 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
|
|||
self.tcx.sess.time("resolve_main", || self.resolve_main());
|
||||
self.tcx.sess.time("resolve_check_unused", || self.check_unused(krate));
|
||||
self.tcx.sess.time("resolve_report_errors", || self.report_errors(krate));
|
||||
self.tcx.sess.time("resolve_postprocess", || self.crate_loader().postprocess(krate));
|
||||
self.tcx
|
||||
.sess
|
||||
.time("resolve_postprocess", || self.crate_loader(|c| c.postprocess(krate)));
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -1879,10 +1881,10 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
|
|||
} else {
|
||||
let crate_id = if finalize {
|
||||
let Some(crate_id) =
|
||||
self.crate_loader().process_path_extern(ident.name, ident.span) else { return Some(self.dummy_binding); };
|
||||
self.crate_loader(|c| c.process_path_extern(ident.name, ident.span)) else { return Some(self.dummy_binding); };
|
||||
crate_id
|
||||
} else {
|
||||
self.crate_loader().maybe_process_path_extern(ident.name)?
|
||||
self.crate_loader(|c| c.maybe_process_path_extern(ident.name))?
|
||||
};
|
||||
let crate_root = self.expect_module(crate_id.as_def_id());
|
||||
let vis = ty::Visibility::<LocalDefId>::Public;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue