about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc/ty/maps/plumbing.rs15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/librustc/ty/maps/plumbing.rs b/src/librustc/ty/maps/plumbing.rs
index 5f93c3de336..e8f1ee10d6d 100644
--- a/src/librustc/ty/maps/plumbing.rs
+++ b/src/librustc/ty/maps/plumbing.rs
@@ -433,10 +433,17 @@ macro_rules! define_maps {
                 profq_msg!(tcx, ProfileQueriesMsg::ProviderBegin);
                 let res = tcx.cycle_check(span, Query::$name(key), || {
                     tcx.sess.diagnostic().track_diagnostics(|| {
-                        tcx.dep_graph.with_task(dep_node,
-                                                tcx,
-                                                key,
-                                                Self::compute_result)
+                        if dep_node.kind.is_eval_always() {
+                            tcx.dep_graph.with_eval_always_task(dep_node,
+                                                                tcx,
+                                                                key,
+                                                                Self::compute_result)
+                        } else {
+                            tcx.dep_graph.with_task(dep_node,
+                                                    tcx,
+                                                    key,
+                                                    Self::compute_result)
+                        }
                     })
                 })?;
                 profq_msg!(tcx, ProfileQueriesMsg::ProviderEnd);