From: Jonas Schievink Date: Mon, 11 Jul 2016 15:11:51 +0000 (+0200) Subject: Register reads on the corrent HIR item X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=fd2b65ee701d424f0f2dbdbb89b5eba5fb9bace4;p=rust.git Register reads on the corrent HIR item --- diff --git a/src/librustc_trans/trans_item.rs b/src/librustc_trans/trans_item.rs index ca24a270080..d3271e6d44c 100644 --- a/src/librustc_trans/trans_item.rs +++ b/src/librustc_trans/trans_item.rs @@ -111,8 +111,14 @@ fn register_reads(&self, ccx: &CrateContext<'a, 'tcx>) { tcx.map.local_def_id(node_id) } TransItem::Fn(instance) => { - if instance.def.is_local() { - instance.def + if let Some(node) = tcx.map.as_local_node_id(instance.def) { + if let hir_map::Node::NodeItem(_) = tcx.map.get(node) { + // This already is a "real" item + instance.def + } else { + // Get the enclosing item and register a read on it + tcx.map.get_parent_did(node) + } } else { // Translating an inlined item from another crate? Don't track anything. return;