@@ -255,14 +255,12 @@ fn wait_for_query<'tcx, C: QueryCache>(
255255
256256/// Shared main part of both [`execute_query_incr_inner`] and [`execute_query_non_incr_inner`].
257257#[ inline( never) ]
258- fn try_execute_query < ' tcx , C : QueryCache , const INCR : bool > (
258+ fn try_execute_query < ' tcx , C : QueryCache > (
259259 query : & ' tcx QueryVTable < ' tcx , C > ,
260260 tcx : TyCtxt < ' tcx > ,
261261 span : Span ,
262262 key : C :: Key ,
263- // If present, some previous step has already created a `DepNode` for this
264- // query+key, which we should reuse instead of creating a new one.
265- dep_node : Option < DepNode > ,
263+ dep_node : Option < DepNode > , // `None` for non-incremental, `Some` for incremental
266264) -> ( C :: Value , Option < DepNodeIndex > ) {
267265 let key_hash = sharded:: make_hash ( & key) ;
268266 let mut state_lock = query. state . active . lock_shard_by_hash ( key_hash) ;
@@ -298,8 +296,8 @@ fn try_execute_query<'tcx, C: QueryCache, const INCR: bool>(
298296 let job_guard = ActiveJobGuard { state : & query. state , key, key_hash } ;
299297
300298 // Delegate to another function to actually execute the query job.
301- let ( value, dep_node_index) = if INCR {
302- execute_job_incr ( query, tcx, key, dep_node. unwrap ( ) , id)
299+ let ( value, dep_node_index) = if let Some ( dep_node ) = dep_node {
300+ execute_job_incr ( query, tcx, key, dep_node, id)
303301 } else {
304302 execute_job_non_incr ( query, tcx, key, id)
305303 } ;
@@ -625,7 +623,7 @@ pub(super) fn execute_query_non_incr_inner<'tcx, C: QueryCache>(
625623 span : Span ,
626624 key : C :: Key ,
627625) -> C :: Value {
628- ensure_sufficient_stack ( || try_execute_query :: < C , false > ( query, tcx, span, key, None ) . 0 )
626+ ensure_sufficient_stack ( || try_execute_query :: < C > ( query, tcx, span, key, None ) . 0 )
629627}
630628
631629/// Called by a macro-generated impl of [`QueryVTable::execute_query_fn`],
@@ -649,9 +647,8 @@ pub(super) fn execute_query_incr_inner<'tcx, C: QueryCache>(
649647 return None ;
650648 }
651649
652- let ( result, dep_node_index) = ensure_sufficient_stack ( || {
653- try_execute_query :: < C , true > ( query, tcx, span, key, Some ( dep_node) )
654- } ) ;
650+ let ( result, dep_node_index) =
651+ ensure_sufficient_stack ( || try_execute_query :: < C > ( query, tcx, span, key, Some ( dep_node) ) ) ;
655652 if let Some ( dep_node_index) = dep_node_index {
656653 tcx. dep_graph . read_index ( dep_node_index)
657654 }
@@ -673,7 +670,5 @@ pub(crate) fn force_query<'tcx, C: QueryCache>(
673670
674671 debug_assert ! ( !query. anon) ;
675672
676- ensure_sufficient_stack ( || {
677- try_execute_query :: < C , true > ( query, tcx, DUMMY_SP , key, Some ( dep_node) )
678- } ) ;
673+ ensure_sufficient_stack ( || try_execute_query :: < C > ( query, tcx, DUMMY_SP , key, Some ( dep_node) ) ) ;
679674}
0 commit comments