Auto merge of #123415 - petrochenkov:parenting, r=compiler-errors

hir: Drop owner's own item-local id (zero) from parenting tables

I expect this to be a common case.
This commit is contained in:
bors 2024-04-03 18:18:44 +00:00
commit 98efd808e1
2 changed files with 9 additions and 3 deletions

View File

@ -112,7 +112,9 @@ fn with_parent<F: FnOnce(&mut Self)>(&mut self, parent_node_id: HirId, f: F) {
}
fn insert_nested(&mut self, item: LocalDefId) {
self.parenting.insert(item, self.parent_node);
if self.parent_node.as_u32() != 0 {
self.parenting.insert(item, self.parent_node);
}
}
}

View File

@ -174,8 +174,12 @@ pub fn provide(providers: &mut Providers) {
let parent_owner_id = tcx.local_def_id_to_hir_id(parent_def_id).owner;
HirId {
owner: parent_owner_id,
local_id: tcx.hir_crate(()).owners[parent_owner_id.def_id].unwrap().parenting
[&owner_id.def_id],
local_id: tcx.hir_crate(()).owners[parent_owner_id.def_id]
.unwrap()
.parenting
.get(&owner_id.def_id)
.copied()
.unwrap_or(ItemLocalId::from_u32(0)),
}
})
};