diff options
| author | Michael Woerister <michaelwoerister@posteo> | 2017-11-08 11:31:15 +0100 |
|---|---|---|
| committer | Michael Woerister <michaelwoerister@posteo> | 2017-11-08 11:31:15 +0100 |
| commit | fde0ca545606672115101ab657f2f8a2374b5b5a (patch) | |
| tree | 2d1c736bd519daf5ed5271066902d6df8db0718b | |
| parent | 616b45542bc42cf7a3f3639a4832d84babd6a505 (diff) | |
| download | rust-fde0ca545606672115101ab657f2f8a2374b5b5a.tar.gz rust-fde0ca545606672115101ab657f2f8a2374b5b5a.zip | |
incr.comp.: Add some missing reads in HIR map.
| -rw-r--r-- | src/librustc/hir/map/mod.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/librustc/hir/map/mod.rs b/src/librustc/hir/map/mod.rs index 1236602aecf..453d30dde75 100644 --- a/src/librustc/hir/map/mod.rs +++ b/src/librustc/hir/map/mod.rs @@ -416,6 +416,12 @@ impl<'hir> Map<'hir> { /// if the node is a body owner, otherwise returns `None`. pub fn maybe_body_owned_by(&self, id: NodeId) -> Option<BodyId> { if let Some(entry) = self.find_entry(id) { + if self.dep_graph.is_fully_enabled() { + let hir_id_owner = self.node_to_hir_id(id).owner; + let def_path_hash = self.definitions.def_path_hash(hir_id_owner); + self.dep_graph.read(def_path_hash.to_dep_node(DepKind::HirBody)); + } + if let Some(body_id) = entry.associated_body() { // For item-like things and closures, the associated // body has its own distinct id, and that is returned @@ -530,6 +536,12 @@ impl<'hir> Map<'hir> { /// from a node to the root of the ast (unless you get the same id back here /// that can happen if the id is not in the map itself or is just weird). pub fn get_parent_node(&self, id: NodeId) -> NodeId { + if self.dep_graph.is_fully_enabled() { + let hir_id_owner = self.node_to_hir_id(id).owner; + let def_path_hash = self.definitions.def_path_hash(hir_id_owner); + self.dep_graph.read(def_path_hash.to_dep_node(DepKind::HirBody)); + } + self.find_entry(id).and_then(|x| x.parent_node()).unwrap_or(id) } |
