mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-26 08:44:35 +00:00
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]
|
||||
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);
|
||||
match owner {
|
||||
MaybeOwner::Owner(_) => HirId::make_owner(def_id),
|
||||
MaybeOwner::Phantom => bug!("No HirId for {:?}", def_id),
|
||||
MaybeOwner::NonOwner(hir_id) => hir_id,
|
||||
}
|
||||
self.tcx.local_def_id_to_hir_id(def_id)
|
||||
}
|
||||
|
||||
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();
|
||||
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_parent = |tcx, id| {
|
||||
// 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()`.
|
||||
/// 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()) }
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user