Queryify is_item_mir_available

This commit is contained in:
Taylor Cramer 2017-04-28 01:28:22 -07:00 committed by Taylor Cramer
parent fb4380b12d
commit daa0094eb7
6 changed files with 16 additions and 20 deletions

View file

@ -250,8 +250,6 @@ pub trait CrateStore {
fn item_body<'a, 'tcx>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId)
-> &'tcx hir::Body;
fn is_item_mir_available(&self, def: DefId) -> bool;
// This is basically a 1-based range of ints, which is a little
// silly - I may fix that.
fn crates(&self) -> Vec<CrateNum>;
@ -399,10 +397,6 @@ impl CrateStore for DummyCrateStore {
bug!("item_body")
}
fn is_item_mir_available(&self, def: DefId) -> bool {
bug!("is_item_mir_available")
}
// This is basically a 1-based range of ints, which is a little
// silly - I may fix that.
fn crates(&self) -> Vec<CrateNum> { vec![] }

View file

@ -305,6 +305,13 @@ impl<'tcx> QueryDescription for queries::const_is_rvalue_promotable_to_static<'t
}
}
impl<'tcx> QueryDescription for queries::is_item_mir_available<'tcx> {
fn describe(tcx: TyCtxt, def_id: DefId) -> String {
format!("checking if item is mir available: `{}`",
tcx.item_path_str(def_id))
}
}
macro_rules! define_maps {
(<$tcx:tt>
$($(#[$attr:meta])*
@ -595,6 +602,7 @@ define_maps! { <'tcx>
[] item_body_nested_bodies: metadata_dep_node(DefId) -> Rc<BTreeMap<hir::BodyId, hir::Body>>,
[] const_is_rvalue_promotable_to_static: metadata_dep_node(DefId) -> bool,
[] is_item_mir_available: metadata_dep_node(DefId) -> bool,
}
fn coherent_trait_dep_node((_, def_id): (CrateNum, DefId)) -> DepNode<DefId> {

View file

@ -2332,7 +2332,7 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
return None;
}
if !did.is_local() && !self.sess.cstore.is_item_mir_available(did) {
if !did.is_local() && !self.is_item_mir_available(did) {
return None;
}