Skip to content

Commit d230400

Browse files
committed
Complete job outside of force_query_with_job.
1 parent 13d4eb9 commit d230400

File tree

1 file changed

+11
-14
lines changed

1 file changed

+11
-14
lines changed

compiler/rustc_query_system/src/query/plumbing.rs

+11-14
Original file line numberDiff line numberDiff line change
@@ -484,12 +484,11 @@ where
484484
tcx.store_side_effects_for_anon_node(dep_node_index, side_effects);
485485
}
486486

487-
let result = job.complete(result, dep_node_index);
488487
(result, dep_node_index)
489488
} else if query.eval_always {
490489
// `to_dep_node` is expensive for some `DepKind`s.
491490
let dep_node = dep_node.unwrap_or_else(|| query.to_dep_node(*tcx.dep_context(), &key));
492-
force_query_with_job(tcx, key, job, dep_node, query, compute)
491+
force_query_with_job(tcx, key, job.id, dep_node, query, compute)
493492
} else {
494493
// `to_dep_node` is expensive for some `DepKind`s.
495494
let dep_node = dep_node.unwrap_or_else(|| query.to_dep_node(*tcx.dep_context(), &key));
@@ -500,12 +499,12 @@ where
500499
try_load_from_disk_and_cache_in_memory(tcx, &key, &dep_node, query, compute)
501500
});
502501
if let Some((result, dep_node_index)) = loaded {
503-
let result = job.complete(result, dep_node_index);
504502
(result, dep_node_index)
505503
} else {
506-
force_query_with_job(tcx, key, job, dep_node, query, compute)
504+
force_query_with_job(tcx, key, job.id, dep_node, query, compute)
507505
}
508506
};
507+
let result = job.complete(result, dep_node_index);
509508
(result, Some(dep_node_index))
510509
}
511510

@@ -636,22 +635,22 @@ fn incremental_verify_ich<CTX, K, V: Debug>(
636635
}
637636
}
638637

639-
fn force_query_with_job<C, CTX>(
638+
fn force_query_with_job<CTX, K, V>(
640639
tcx: CTX,
641-
key: C::Key,
642-
job: JobOwner<'_, CTX::DepKind, C>,
640+
key: K,
641+
job_id: QueryJobId<CTX::DepKind>,
643642
dep_node: DepNode<CTX::DepKind>,
644-
query: &QueryVtable<CTX, C::Key, C::Value>,
645-
compute: fn(CTX::DepContext, C::Key) -> C::Value,
646-
) -> (C::Stored, DepNodeIndex)
643+
query: &QueryVtable<CTX, K, V>,
644+
compute: fn(CTX::DepContext, K) -> V,
645+
) -> (V, DepNodeIndex)
647646
where
648-
C: QueryCache,
649647
CTX: QueryContext,
648+
K: Debug,
650649
{
651650
let prof_timer = tcx.dep_context().profiler().query_provider();
652651

653652
let ((result, dep_node_index), diagnostics) = with_diagnostics(|diagnostics| {
654-
tcx.start_query(job.id, diagnostics, || {
653+
tcx.start_query(job_id, diagnostics, || {
655654
if query.eval_always {
656655
tcx.dep_context().dep_graph().with_eval_always_task(
657656
dep_node,
@@ -680,8 +679,6 @@ where
680679
tcx.store_side_effects(dep_node_index, side_effects);
681680
}
682681

683-
let result = job.complete(result, dep_node_index);
684-
685682
(result, dep_node_index)
686683
}
687684

0 commit comments

Comments
 (0)