Use HirId in value of ResolverOutputs::trait_map instead of NodeId
This commit is contained in:
parent
5728c5371d
commit
3c5dba7c62
3 changed files with 18 additions and 8 deletions
|
|
@ -1115,10 +1115,6 @@ impl<'tcx> TyCtxt<'tcx> {
|
|||
let mut trait_map: FxHashMap<_, FxHashMap<_, _>> = FxHashMap::default();
|
||||
for (hir_id, v) in resolutions.trait_map.into_iter() {
|
||||
let map = trait_map.entry(hir_id.owner).or_default();
|
||||
let v = v
|
||||
.into_iter()
|
||||
.map(|tc| tc.map_import_ids(|id| definitions.node_id_to_hir_id(id)))
|
||||
.collect();
|
||||
map.insert(hir_id.local_id, StableVec::new(v));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ pub struct ResolverOutputs {
|
|||
pub definitions: rustc_hir::definitions::Definitions,
|
||||
pub cstore: Box<CrateStoreDyn>,
|
||||
pub extern_crate_map: NodeMap<CrateNum>,
|
||||
pub trait_map: FxHashMap<hir::HirId, Vec<hir::TraitCandidate<NodeId>>>,
|
||||
pub trait_map: FxHashMap<hir::HirId, Vec<hir::TraitCandidate<hir::HirId>>>,
|
||||
pub maybe_unused_trait_imports: NodeSet,
|
||||
pub maybe_unused_extern_crates: Vec<(NodeId, Span)>,
|
||||
pub export_map: ExportMap<NodeId>,
|
||||
|
|
|
|||
|
|
@ -1273,15 +1273,21 @@ impl<'a> Resolver<'a> {
|
|||
}
|
||||
|
||||
pub fn into_outputs(self) -> ResolverOutputs {
|
||||
let definitions = self.definitions;
|
||||
let trait_map = {
|
||||
let mut map = FxHashMap::default();
|
||||
for (k, v) in self.trait_map.into_iter() {
|
||||
map.insert(self.definitions.node_id_to_hir_id(k), v);
|
||||
map.insert(
|
||||
definitions.node_id_to_hir_id(k),
|
||||
v.into_iter()
|
||||
.map(|tc| tc.map_import_ids(|id| definitions.node_id_to_hir_id(id)))
|
||||
.collect(),
|
||||
);
|
||||
}
|
||||
map
|
||||
};
|
||||
ResolverOutputs {
|
||||
definitions: self.definitions,
|
||||
definitions: definitions,
|
||||
cstore: Box::new(self.crate_loader.into_cstore()),
|
||||
extern_crate_map: self.extern_crate_map,
|
||||
export_map: self.export_map,
|
||||
|
|
@ -1306,7 +1312,15 @@ impl<'a> Resolver<'a> {
|
|||
trait_map: {
|
||||
let mut map = FxHashMap::default();
|
||||
for (k, v) in self.trait_map.iter() {
|
||||
map.insert(self.definitions.node_id_to_hir_id(k.clone()), v.clone());
|
||||
map.insert(
|
||||
self.definitions.node_id_to_hir_id(k.clone()),
|
||||
v.iter()
|
||||
.map(|tc| {
|
||||
tc.clone()
|
||||
.map_import_ids(|id| self.definitions.node_id_to_hir_id(id))
|
||||
})
|
||||
.collect(),
|
||||
);
|
||||
}
|
||||
map
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue