From d2304008c1ea8985f21e98ecdba3108611e8786d Mon Sep 17 00:00:00 2001 From: Camille GILLOT Date: Wed, 30 Dec 2020 22:08:57 +0100 Subject: [PATCH] Complete job outside of force_query_with_job. --- .../rustc_query_system/src/query/plumbing.rs | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/compiler/rustc_query_system/src/query/plumbing.rs b/compiler/rustc_query_system/src/query/plumbing.rs index aabe9973111..fbf4e8feac0 100644 --- a/compiler/rustc_query_system/src/query/plumbing.rs +++ b/compiler/rustc_query_system/src/query/plumbing.rs @@ -484,12 +484,11 @@ where tcx.store_side_effects_for_anon_node(dep_node_index, side_effects); } - let result = job.complete(result, dep_node_index); (result, dep_node_index) } else if query.eval_always { // `to_dep_node` is expensive for some `DepKind`s. let dep_node = dep_node.unwrap_or_else(|| query.to_dep_node(*tcx.dep_context(), &key)); - force_query_with_job(tcx, key, job, dep_node, query, compute) + force_query_with_job(tcx, key, job.id, dep_node, query, compute) } else { // `to_dep_node` is expensive for some `DepKind`s. let dep_node = dep_node.unwrap_or_else(|| query.to_dep_node(*tcx.dep_context(), &key)); @@ -500,12 +499,12 @@ where try_load_from_disk_and_cache_in_memory(tcx, &key, &dep_node, query, compute) }); if let Some((result, dep_node_index)) = loaded { - let result = job.complete(result, dep_node_index); (result, dep_node_index) } else { - force_query_with_job(tcx, key, job, dep_node, query, compute) + force_query_with_job(tcx, key, job.id, dep_node, query, compute) } }; + let result = job.complete(result, dep_node_index); (result, Some(dep_node_index)) } @@ -636,22 +635,22 @@ fn incremental_verify_ich( } } -fn force_query_with_job( +fn force_query_with_job( tcx: CTX, - key: C::Key, - job: JobOwner<'_, CTX::DepKind, C>, + key: K, + job_id: QueryJobId, dep_node: DepNode, - query: &QueryVtable, - compute: fn(CTX::DepContext, C::Key) -> C::Value, -) -> (C::Stored, DepNodeIndex) + query: &QueryVtable, + compute: fn(CTX::DepContext, K) -> V, +) -> (V, DepNodeIndex) where - C: QueryCache, CTX: QueryContext, + K: Debug, { let prof_timer = tcx.dep_context().profiler().query_provider(); let ((result, dep_node_index), diagnostics) = with_diagnostics(|diagnostics| { - tcx.start_query(job.id, diagnostics, || { + tcx.start_query(job_id, diagnostics, || { if query.eval_always { tcx.dep_context().dep_graph().with_eval_always_task( dep_node, @@ -680,8 +679,6 @@ where tcx.store_side_effects(dep_node_index, side_effects); } - let result = job.complete(result, dep_node_index); - (result, dep_node_index) }