@@ -549,23 +549,7 @@ impl<'tcx> TyCtxt<'tcx> {
549
549
}
550
550
551
551
if Q :: ANON {
552
- let prof_timer = self . prof . query_provider ( ) ;
553
-
554
- let ( ( result, dep_node_index) , diagnostics) = with_diagnostics ( |diagnostics| {
555
- self . start_query ( job. id , diagnostics, |tcx| {
556
- tcx. dep_graph . with_anon_task ( Q :: DEP_KIND , || Q :: compute ( tcx, key) )
557
- } )
558
- } ) ;
559
-
560
- prof_timer. finish_with_query_invocation_id ( dep_node_index. into ( ) ) ;
561
-
562
- self . dep_graph . read_index ( dep_node_index) ;
563
-
564
- if unlikely ! ( !diagnostics. is_empty( ) ) {
565
- self . queries
566
- . on_disk_cache
567
- . store_diagnostics_for_anon_node ( dep_node_index, diagnostics) ;
568
- }
552
+ let ( result, dep_node_index) = self . try_execute_anon_query ( key, job. id , & Q :: reify ( ) ) ;
569
553
570
554
job. complete ( & result, dep_node_index) ;
571
555
@@ -604,6 +588,34 @@ impl<'tcx> TyCtxt<'tcx> {
604
588
result
605
589
}
606
590
591
+ #[ inline( always) ]
592
+ fn try_execute_anon_query < K , V > (
593
+ self ,
594
+ key : K ,
595
+ job_id : QueryJobId ,
596
+ query : & QueryVtable < ' tcx , K , V > ,
597
+ ) -> ( V , DepNodeIndex ) {
598
+ assert ! ( query. anon) ;
599
+
600
+ let prof_timer = self . prof . query_provider ( ) ;
601
+
602
+ let ( ( result, dep_node_index) , diagnostics) = with_diagnostics ( |diagnostics| {
603
+ self . start_query ( job_id, diagnostics, |tcx| {
604
+ tcx. dep_graph . with_anon_task ( query. dep_kind , || query. compute ( tcx, key) )
605
+ } )
606
+ } ) ;
607
+
608
+ prof_timer. finish_with_query_invocation_id ( dep_node_index. into ( ) ) ;
609
+
610
+ self . dep_graph . read_index ( dep_node_index) ;
611
+
612
+ if unlikely ! ( !diagnostics. is_empty( ) ) {
613
+ self . queries . on_disk_cache . store_diagnostics_for_anon_node ( dep_node_index, diagnostics) ;
614
+ }
615
+
616
+ return ( result, dep_node_index) ;
617
+ }
618
+
607
619
fn load_from_disk_and_cache_in_memory < K : Clone , V > (
608
620
self ,
609
621
key : K ,
0 commit comments