@@ -543,13 +543,15 @@ impl<'a, 'gcx> TyCtxt<'a, 'gcx, 'gcx> {
543
543
p. record_query ( Q :: CATEGORY ) ;
544
544
} ) ;
545
545
546
+ let provider = Q :: provider ( self , & key) ;
547
+
546
548
let res = if dep_node. kind . is_eval_always ( ) {
547
549
self . dep_graph . with_eval_always_task ( self , dep_node, |task| {
548
- job. with_context ( self , task, |tcx| Q :: compute ( tcx, key) )
550
+ job. with_context ( self , task, |tcx| provider ( tcx, key) )
549
551
} )
550
552
} else {
551
553
self . dep_graph . with_query_task ( self , dep_node, |task| {
552
- job. with_context ( self , task, |tcx| Q :: compute ( tcx, key) )
554
+ job. with_context ( self , task, |tcx| provider ( tcx, key) )
553
555
} )
554
556
} ;
555
557
@@ -841,9 +843,11 @@ macro_rules! define_queries_inner {
841
843
DepNode :: new_inlined( tcx, $node( * key) )
842
844
}
843
845
844
- // FIXME: Change back to inline
845
- #[ inline( never) ]
846
- fn compute( tcx: TyCtxt <' _, ' tcx, ' _>, key: Self :: Key ) -> Self :: Value {
846
+ #[ inline( always) ]
847
+ fn provider(
848
+ tcx: TyCtxt <' _, ' tcx, ' tcx>,
849
+ key: & Self :: Key
850
+ ) -> fn ( TyCtxt <' _, ' tcx, ' tcx>, Self :: Key ) -> Self :: Value {
847
851
__query_compute:: $name( move || {
848
852
let provider = tcx. queries. providers. get( key. query_crate( ) )
849
853
// HACK(eddyb) it's possible crates may be loaded after
@@ -852,7 +856,7 @@ macro_rules! define_queries_inner {
852
856
// would be be missing appropriate entries in `providers`.
853
857
. unwrap_or( & tcx. queries. fallback_extern_providers)
854
858
. $name;
855
- provider( tcx . global_tcx ( ) , key )
859
+ provider
856
860
} )
857
861
}
858
862
@@ -870,7 +874,7 @@ macro_rules! define_queries_inner {
870
874
///
871
875
/// Note: The optimization is only available during incr. comp.
872
876
pub fn ensure( tcx: TyCtxt <' a, $tcx, ' lcx>, key: $K) -> ( ) {
873
- tcx. ensure_query:: <queries:: $name<' _>>( key) ;
877
+ tcx. global_tcx ( ) . ensure_query:: <queries:: $name<' _>>( key) ;
874
878
}
875
879
} ) *
876
880
@@ -1048,7 +1052,11 @@ pub fn force_from_dep_node<'a, 'gcx, 'lcx>(tcx: TyCtxt<'a, 'gcx, 'lcx>,
1048
1052
macro_rules! force {
1049
1053
( $query: ident, $key: expr) => {
1050
1054
{
1051
- tcx. force_query:: <:: ty:: query:: queries:: $query<' _>>( $key, DUMMY_SP , * dep_node) ;
1055
+ tcx. global_tcx( ) . force_query:: <:: ty:: query:: queries:: $query<' _>>(
1056
+ $key,
1057
+ DUMMY_SP ,
1058
+ * dep_node
1059
+ ) ;
1052
1060
}
1053
1061
}
1054
1062
} ;
0 commit comments