]> git.lizzy.rs Git - rust.git/commitdiff
Handle eval_always queries in force()
authorWesley Wiser <wwiser@gmail.com>
Mon, 23 Oct 2017 22:10:29 +0000 (18:10 -0400)
committerWesley Wiser <wwiser@gmail.com>
Thu, 26 Oct 2017 22:47:46 +0000 (18:47 -0400)
Part of #45238

src/librustc/ty/maps/plumbing.rs

index 5f93c3de336cc47b7b1626b4e333d82079b622e9..e8f1ee10d6dbf127f8e0e528555f4c5dc604584a 100644 (file)
@@ -433,10 +433,17 @@ fn force(tcx: TyCtxt<'a, $tcx, 'lcx>,
                 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);