Make local_def_id_to_hir_id query directly returh HirId
This commit is contained in:
parent
5a299a9903
commit
bf1ca2e4b0
@ -215,12 +215,7 @@ impl<'hir> Map<'hir> {
|
|||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn local_def_id_to_hir_id(&self, def_id: LocalDefId) -> HirId {
|
pub fn local_def_id_to_hir_id(&self, def_id: LocalDefId) -> HirId {
|
||||||
let owner = self.tcx.local_def_id_to_hir_id(def_id);
|
self.tcx.local_def_id_to_hir_id(def_id)
|
||||||
match owner {
|
|
||||||
MaybeOwner::Owner(_) => HirId::make_owner(def_id),
|
|
||||||
MaybeOwner::Phantom => bug!("No HirId for {:?}", def_id),
|
|
||||||
MaybeOwner::NonOwner(hir_id) => hir_id,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn iter_local_def_id(&self) -> impl Iterator<Item = LocalDefId> + '_ {
|
pub fn iter_local_def_id(&self) -> impl Iterator<Item = LocalDefId> + '_ {
|
||||||
|
@ -69,7 +69,14 @@ pub fn provide(providers: &mut Providers) {
|
|||||||
let node = owner.node();
|
let node = owner.node();
|
||||||
Some(Owner { node, hash_without_bodies: owner.nodes.hash_without_bodies })
|
Some(Owner { node, hash_without_bodies: owner.nodes.hash_without_bodies })
|
||||||
};
|
};
|
||||||
providers.local_def_id_to_hir_id = |tcx, id| tcx.hir_crate(()).owners[id].map(|_| ());
|
providers.local_def_id_to_hir_id = |tcx, id| {
|
||||||
|
let owner = tcx.hir_crate(()).owners[id].map(|_| ());
|
||||||
|
match owner {
|
||||||
|
MaybeOwner::Owner(_) => HirId::make_owner(id),
|
||||||
|
MaybeOwner::Phantom => bug!("No HirId for {:?}", id),
|
||||||
|
MaybeOwner::NonOwner(hir_id) => hir_id,
|
||||||
|
}
|
||||||
|
};
|
||||||
providers.hir_owner_nodes = |tcx, id| tcx.hir_crate(()).owners[id].map(|i| &i.nodes);
|
providers.hir_owner_nodes = |tcx, id| tcx.hir_crate(()).owners[id].map(|i| &i.nodes);
|
||||||
providers.hir_owner_parent = |tcx, id| {
|
providers.hir_owner_parent = |tcx, id| {
|
||||||
// Accessing the def_key is ok since its value is hashed as part of `id`'s DefPathHash.
|
// Accessing the def_key is ok since its value is hashed as part of `id`'s DefPathHash.
|
||||||
|
@ -60,7 +60,7 @@ rustc_queries! {
|
|||||||
///
|
///
|
||||||
/// This can be conveniently accessed by methods on `tcx.hir()`.
|
/// This can be conveniently accessed by methods on `tcx.hir()`.
|
||||||
/// Avoid calling this query directly.
|
/// Avoid calling this query directly.
|
||||||
query local_def_id_to_hir_id(key: LocalDefId) -> hir::MaybeOwner<()> {
|
query local_def_id_to_hir_id(key: LocalDefId) -> hir::HirId {
|
||||||
desc { |tcx| "HIR ID of `{}`", tcx.def_path_str(key.to_def_id()) }
|
desc { |tcx| "HIR ID of `{}`", tcx.def_path_str(key.to_def_id()) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user