@@ -998,9 +998,18 @@ macro_rules! define_queries_inner {
998
998
// predictable symbol name prefix for query providers. This is helpful
999
999
// for analyzing queries in profilers.
1000
1000
pub ( super ) mod __query_compute {
1001
+ use super :: * ;
1002
+
1001
1003
$( #[ inline( never) ]
1002
- pub fn $name<F : FnOnce ( ) -> R , R >( f: F ) -> R {
1003
- f( )
1004
+ pub fn $name( tcx: TyCtxt <' tcx>, key: $K) -> $V {
1005
+ let provider = tcx. queries. providers. get( key. query_crate( ) )
1006
+ // HACK(eddyb) it's possible crates may be loaded after
1007
+ // the query engine is created, and because crate loading
1008
+ // is not yet integrated with the query engine, such crates
1009
+ // would be missing appropriate entries in `providers`.
1010
+ . unwrap_or( & tcx. queries. fallback_extern_providers)
1011
+ . $name;
1012
+ provider( tcx, key)
1004
1013
} ) *
1005
1014
}
1006
1015
@@ -1040,16 +1049,7 @@ macro_rules! define_queries_inner {
1040
1049
1041
1050
#[ inline]
1042
1051
fn compute( tcx: TyCtxt <' tcx>, key: Self :: Key ) -> Self :: Value {
1043
- __query_compute:: $name( move || {
1044
- let provider = tcx. queries. providers. get( key. query_crate( ) )
1045
- // HACK(eddyb) it's possible crates may be loaded after
1046
- // the query engine is created, and because crate loading
1047
- // is not yet integrated with the query engine, such crates
1048
- // would be missing appropriate entries in `providers`.
1049
- . unwrap_or( & tcx. queries. fallback_extern_providers)
1050
- . $name;
1051
- provider( tcx, key)
1052
- } )
1052
+ __query_compute:: $name( tcx, key)
1053
1053
}
1054
1054
1055
1055
fn hash_result(
0 commit comments