From 16d1700337e87ab107e6bd08732f0a864c418aae Mon Sep 17 00:00:00 2001 From: Ariel Ben-Yehuda Date: Mon, 26 Jun 2017 18:39:52 +0300 Subject: [PATCH] use dep-graph reads for the evaluation cache This is just duplicating the logic from the old fulfillment cache, so I'm not sure it is 100% correct, but it should not be more wrong than the old logic. --- src/librustc/traits/select.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/librustc/traits/select.rs b/src/librustc/traits/select.rs index 7b1863e8e134..e9a89b1bc379 100644 --- a/src/librustc/traits/select.rs +++ b/src/librustc/traits/select.rs @@ -791,6 +791,10 @@ impl<'cx, 'gcx, 'tcx> SelectionContext<'cx, 'gcx, 'tcx> { if self.can_use_global_caches(param_env) { let cache = self.tcx().evaluation_cache.hashmap.borrow(); if let Some(cached) = cache.get(&trait_ref) { + let dep_node = trait_ref + .to_poly_trait_predicate() + .dep_node(self.tcx()); + self.tcx().hir.dep_graph.read(dep_node); return Some(cached.clone()); } }