mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 23:12:02 +00:00
Index def_ids directly
This commit is contained in:
parent
af6299a1f7
commit
17ffb59d39
@ -21,7 +21,7 @@ fn with_tables<R>(mut f: impl FnMut(&mut Tables<'_>) -> R) -> R {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn item_def_id(item: &stable_mir::CrateItem) -> DefId {
|
pub fn item_def_id(item: &stable_mir::CrateItem) -> DefId {
|
||||||
with_tables(|t| t.item_def_id(item))
|
with_tables(|t| t[item.0])
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn crate_item(did: DefId) -> stable_mir::CrateItem {
|
pub fn crate_item(did: DefId) -> stable_mir::CrateItem {
|
||||||
@ -78,22 +78,6 @@ impl<'tcx> Index<stable_mir::DefId> for Tables<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> Tables<'tcx> {
|
impl<'tcx> Tables<'tcx> {
|
||||||
pub fn item_def_id(&self, item: &stable_mir::CrateItem) -> DefId {
|
|
||||||
self[item.0]
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn trait_def_id(&self, trait_def: &stable_mir::ty::TraitDef) -> DefId {
|
|
||||||
self[trait_def.0]
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn impl_trait_def_id(&self, impl_def: &stable_mir::ty::ImplDef) -> DefId {
|
|
||||||
self[impl_def.0]
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn generic_def_id(&self, generic_def: &stable_mir::ty::GenericDef) -> DefId {
|
|
||||||
self[generic_def.0]
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn crate_item(&mut self, did: DefId) -> stable_mir::CrateItem {
|
pub fn crate_item(&mut self, did: DefId) -> stable_mir::CrateItem {
|
||||||
stable_mir::CrateItem(self.create_def_id(did))
|
stable_mir::CrateItem(self.create_def_id(did))
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,7 @@ impl<'tcx> Context for Tables<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn trait_decl(&mut self, trait_def: &stable_mir::ty::TraitDef) -> stable_mir::ty::TraitDecl {
|
fn trait_decl(&mut self, trait_def: &stable_mir::ty::TraitDef) -> stable_mir::ty::TraitDecl {
|
||||||
let def_id = self.trait_def_id(trait_def);
|
let def_id = self[trait_def.0];
|
||||||
let trait_def = self.tcx.trait_def(def_id);
|
let trait_def = self.tcx.trait_def(def_id);
|
||||||
trait_def.stable(self)
|
trait_def.stable(self)
|
||||||
}
|
}
|
||||||
@ -68,13 +68,13 @@ impl<'tcx> Context for Tables<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn trait_impl(&mut self, impl_def: &stable_mir::ty::ImplDef) -> stable_mir::ty::ImplTrait {
|
fn trait_impl(&mut self, impl_def: &stable_mir::ty::ImplDef) -> stable_mir::ty::ImplTrait {
|
||||||
let def_id = self.impl_trait_def_id(impl_def);
|
let def_id = self[impl_def.0];
|
||||||
let impl_trait = self.tcx.impl_trait_ref(def_id).unwrap();
|
let impl_trait = self.tcx.impl_trait_ref(def_id).unwrap();
|
||||||
impl_trait.stable(self)
|
impl_trait.stable(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn mir_body(&mut self, item: &stable_mir::CrateItem) -> stable_mir::mir::Body {
|
fn mir_body(&mut self, item: &stable_mir::CrateItem) -> stable_mir::mir::Body {
|
||||||
let def_id = self.item_def_id(item);
|
let def_id = self[item.0];
|
||||||
let mir = self.tcx.optimized_mir(def_id);
|
let mir = self.tcx.optimized_mir(def_id);
|
||||||
stable_mir::mir::Body {
|
stable_mir::mir::Body {
|
||||||
blocks: mir
|
blocks: mir
|
||||||
|
Loading…
Reference in New Issue
Block a user