Skip to content

Commit 8ff6ffd

Browse files
committed
Use DefId in ResolverOutputs::extern_crate_map instead of NodeId
1 parent 21f65ae commit 8ff6ffd

File tree

3 files changed

+18
-10
lines changed

3 files changed

+18
-10
lines changed

src/librustc_middle/ty/context.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ use crate::ty::{InferConst, ParamConst};
3434
use crate::ty::{List, TyKind, TyS};
3535
use rustc_ast::ast;
3636
use rustc_ast::expand::allocator::AllocatorKind;
37-
use rustc_ast::node_id::NodeMap;
3837
use rustc_attr as attr;
3938
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
4039
use rustc_data_structures::profiling::SelfProfilerRef;
@@ -923,7 +922,7 @@ pub struct GlobalCtxt<'tcx> {
923922
pub consts: CommonConsts<'tcx>,
924923

925924
/// Resolutions of `extern crate` items produced by resolver.
926-
extern_crate_map: NodeMap<CrateNum>,
925+
extern_crate_map: FxHashMap<DefId, CrateNum>,
927926

928927
/// Map indicating what traits are in scope for places where this
929928
/// is relevant; generated by resolve.
@@ -2682,10 +2681,7 @@ pub fn provide(providers: &mut ty::query::Providers<'_>) {
26822681
let id = tcx.hir().local_def_id_to_hir_id(id.expect_local());
26832682
tcx.stability().local_deprecation_entry(id)
26842683
};
2685-
providers.extern_mod_stmt_cnum = |tcx, id| {
2686-
let id = tcx.hir().as_local_node_id(id).unwrap();
2687-
tcx.extern_crate_map.get(&id).cloned()
2688-
};
2684+
providers.extern_mod_stmt_cnum = |tcx, id| tcx.extern_crate_map.get(&id).cloned();
26892685
providers.all_crate_nums = |tcx, cnum| {
26902686
assert_eq!(cnum, LOCAL_CRATE);
26912687
tcx.arena.alloc_slice(&tcx.cstore.crates_untracked())

src/librustc_middle/ty/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ use crate::ty;
1717
use crate::ty::subst::{InternalSubsts, Subst, SubstsRef};
1818
use crate::ty::util::{Discr, IntTypeExt};
1919
use rustc_ast::ast;
20-
use rustc_ast::node_id::NodeMap;
2120
use rustc_attr as attr;
2221
use rustc_data_structures::captures::Captures;
2322
use rustc_data_structures::fingerprint::Fingerprint;
@@ -121,7 +120,7 @@ mod sty;
121120
pub struct ResolverOutputs {
122121
pub definitions: rustc_hir::definitions::Definitions,
123122
pub cstore: Box<CrateStoreDyn>,
124-
pub extern_crate_map: NodeMap<CrateNum>,
123+
pub extern_crate_map: FxHashMap<DefId, CrateNum>,
125124
pub trait_map: FxHashMap<hir::HirId, Vec<hir::TraitCandidate<hir::HirId>>>,
126125
pub maybe_unused_trait_imports: FxHashSet<LocalDefId>,
127126
pub maybe_unused_extern_crates: Vec<(DefId, Span)>,

src/librustc_resolve/lib.rs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1274,6 +1274,13 @@ impl<'a> Resolver<'a> {
12741274

12751275
pub fn into_outputs(self) -> ResolverOutputs {
12761276
let definitions = self.definitions;
1277+
let extern_crate_map = {
1278+
let mut map = FxHashMap::default();
1279+
for (k, v) in self.extern_crate_map.into_iter() {
1280+
map.insert(definitions.local_def_id(k).to_def_id(), v);
1281+
}
1282+
map
1283+
};
12771284
let export_map = {
12781285
let mut map = FxHashMap::default();
12791286
for (k, v) in self.export_map.into_iter() {
@@ -1316,7 +1323,7 @@ impl<'a> Resolver<'a> {
13161323
ResolverOutputs {
13171324
definitions: definitions,
13181325
cstore: Box::new(self.crate_loader.into_cstore()),
1319-
extern_crate_map: self.extern_crate_map,
1326+
extern_crate_map,
13201327
export_map,
13211328
trait_map,
13221329
glob_map,
@@ -1334,7 +1341,13 @@ impl<'a> Resolver<'a> {
13341341
ResolverOutputs {
13351342
definitions: self.definitions.clone(),
13361343
cstore: Box::new(self.cstore().clone()),
1337-
extern_crate_map: self.extern_crate_map.clone(),
1344+
extern_crate_map: {
1345+
let mut map = FxHashMap::default();
1346+
for (k, v) in self.extern_crate_map.iter() {
1347+
map.insert(self.definitions.local_def_id(k.clone()).to_def_id(), v.clone());
1348+
}
1349+
map
1350+
},
13381351
export_map: {
13391352
let mut map = FxHashMap::default();
13401353
for (k, v) in self.export_map.iter() {

0 commit comments

Comments
 (0)