From 0182c8bbda094c7a6abf89b6c45185ba1e5d38b3 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Thu, 31 Aug 2017 15:10:58 -0700 Subject: [PATCH] rustc: Rename item_body query to extern_const_body Should hopefully more accurately reflect what's happening! This commit also removes the cache in the cstore implementation as it's already cached through the query infrastructure. --- src/librustc/dep_graph/dep_node.rs | 2 +- src/librustc/ty/maps.rs | 2 +- src/librustc_const_eval/eval.rs | 4 ++-- src/librustc_const_eval/pattern.rs | 2 +- src/librustc_metadata/cstore_impl.rs | 7 ++----- src/librustc_metadata/decoder.rs | 8 ++++---- src/librustdoc/clean/inline.rs | 2 +- 7 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/librustc/dep_graph/dep_node.rs b/src/librustc/dep_graph/dep_node.rs index d1453c247a3..431680eb36a 100644 --- a/src/librustc/dep_graph/dep_node.rs +++ b/src/librustc/dep_graph/dep_node.rs @@ -563,7 +563,7 @@ pub fn to_dep_node(self, tcx: TyCtxt, kind: DepKind) -> DepNode { [] GetLangItems, [] DefinedLangItems(CrateNum), [] MissingLangItems(CrateNum), - [] ItemBody(DefId), + [] ExternConstBody(DefId), [] VisibleParentMap, [] IsDirectExternCrate(CrateNum), [] MissingExternCrateItem(CrateNum), diff --git a/src/librustc/ty/maps.rs b/src/librustc/ty/maps.rs index 9f8eb2f7535..ef21a3d56fe 100644 --- a/src/librustc/ty/maps.rs +++ b/src/librustc/ty/maps.rs @@ -1357,7 +1357,7 @@ fn default() -> Self { [] get_lang_items: get_lang_items_node(CrateNum) -> Rc, [] defined_lang_items: DefinedLangItems(CrateNum) -> Rc>, [] missing_lang_items: MissingLangItems(CrateNum) -> Rc>, - [] item_body: ItemBody(DefId) -> &'tcx hir::Body, + [] extern_const_body: ExternConstBody(DefId) -> &'tcx hir::Body, [] visible_parent_map: visible_parent_map_node(CrateNum) -> Rc>, [] missing_extern_crate_item: MissingExternCrateItem(CrateNum) -> bool, diff --git a/src/librustc_const_eval/eval.rs b/src/librustc_const_eval/eval.rs index d9371807197..27a25ff73d1 100644 --- a/src/librustc_const_eval/eval.rs +++ b/src/librustc_const_eval/eval.rs @@ -354,7 +354,7 @@ fn eval_const_expr_partial<'a, 'tcx>(cx: &ConstContext<'a, 'tcx>, } } else { if tcx.is_const_fn(def_id) { - tcx.item_body(def_id) + tcx.extern_const_body(def_id) } else { signal!(e, TypeckError) } @@ -774,7 +774,7 @@ fn const_eval<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, tcx.mir_const_qualif(def_id); tcx.hir.body(tcx.hir.body_owned_by(id)) } else { - tcx.item_body(def_id) + tcx.extern_const_body(def_id) }; ConstContext::new(tcx, key.param_env.and(substs), tables).eval(&body.value) } diff --git a/src/librustc_const_eval/pattern.rs b/src/librustc_const_eval/pattern.rs index a4040834cf5..5e1fbbc9ca2 100644 --- a/src/librustc_const_eval/pattern.rs +++ b/src/librustc_const_eval/pattern.rs @@ -609,7 +609,7 @@ fn lower_path(&mut self, let body = if let Some(id) = self.tcx.hir.as_local_node_id(def_id) { self.tcx.hir.body(self.tcx.hir.body_owned_by(id)) } else { - self.tcx.item_body(def_id) + self.tcx.extern_const_body(def_id) }; let pat = self.lower_const_expr(&body.value, pat_id, span); self.tables = old_tables; diff --git a/src/librustc_metadata/cstore_impl.rs b/src/librustc_metadata/cstore_impl.rs index 445ac601cb9..58ca22f7bf3 100644 --- a/src/librustc_metadata/cstore_impl.rs +++ b/src/librustc_metadata/cstore_impl.rs @@ -215,12 +215,9 @@ fn into_args(self) -> (DefId, DefId) { (self.0.as_def_id(), self.1) } defined_lang_items => { Rc::new(cdata.get_lang_items(&tcx.dep_graph)) } missing_lang_items => { Rc::new(cdata.get_missing_lang_items(&tcx.dep_graph)) } - item_body => { - if let Some(cached) = tcx.hir.get_inlined_body_untracked(def_id) { - return cached; - } + extern_const_body => { debug!("item_body({:?}): inlining item", def_id); - cdata.item_body(tcx, def_id.index) + cdata.extern_const_body(tcx, def_id.index) } missing_extern_crate_item => { diff --git a/src/librustc_metadata/decoder.rs b/src/librustc_metadata/decoder.rs index 1e2f167f199..2523c97cfab 100644 --- a/src/librustc_metadata/decoder.rs +++ b/src/librustc_metadata/decoder.rs @@ -759,10 +759,10 @@ pub fn each_child_of_item(&self, id: DefIndex, mut callback: F, sess: &Sessio } } - pub fn item_body(&self, - tcx: TyCtxt<'a, 'tcx, 'tcx>, - id: DefIndex) - -> &'tcx hir::Body { + pub fn extern_const_body(&self, + tcx: TyCtxt<'a, 'tcx, 'tcx>, + id: DefIndex) + -> &'tcx hir::Body { assert!(!self.is_proc_macro(id)); let ast = self.entry(id).ast.unwrap(); let def_id = self.local_def_id(id); diff --git a/src/librustdoc/clean/inline.rs b/src/librustdoc/clean/inline.rs index d3b4d30208b..11fe8a64d41 100644 --- a/src/librustdoc/clean/inline.rs +++ b/src/librustdoc/clean/inline.rs @@ -474,7 +474,7 @@ fn nested(&self, state: &mut hir::print::State, nested: hir::print::Nested) } fn print_inlined_const(cx: &DocContext, did: DefId) -> String { - let body = cx.tcx.item_body(did); + let body = cx.tcx.extern_const_body(did); let inlined = InlinedConst { nested_bodies: cx.tcx.item_body_nested_bodies(did) }; -- 2.44.0