Handle eval_always queries in force()

Part of #45238
This commit is contained in:
Wesley Wiser 2017-10-23 18:10:29 -04:00
parent 9d72fc67a4
commit c1436c3aa5

View File

@ -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);