|
1 | | -use crate::ty::query::config::QueryAccessors; |
2 | | -use crate::ty::query::plumbing::QueryState; |
| 1 | +use crate::ty::query::caches::QueryCache; |
| 2 | +use crate::ty::query::config::{QueryAccessors, QueryConfig}; |
| 3 | +use crate::ty::query::plumbing::QueryStateImpl; |
3 | 4 | use crate::ty::query::queries; |
4 | 5 | use crate::ty::TyCtxt; |
5 | 6 | use rustc_hir::def_id::{DefId, LOCAL_CRATE}; |
@@ -37,20 +38,20 @@ struct QueryStats { |
37 | 38 | local_def_id_keys: Option<usize>, |
38 | 39 | } |
39 | 40 |
|
40 | | -fn stats<'tcx, Q: QueryAccessors<'tcx>>( |
| 41 | +fn stats<'tcx, K, V, C: QueryCache<K, V>>( |
41 | 42 | name: &'static str, |
42 | | - map: &QueryState<'tcx, Q>, |
| 43 | + map: &QueryStateImpl<'tcx, K, V, C>, |
43 | 44 | ) -> QueryStats { |
44 | 45 | let mut stats = QueryStats { |
45 | 46 | name, |
46 | 47 | #[cfg(debug_assertions)] |
47 | 48 | cache_hits: map.cache_hits.load(Ordering::Relaxed), |
48 | 49 | #[cfg(not(debug_assertions))] |
49 | 50 | cache_hits: 0, |
50 | | - key_size: mem::size_of::<Q::Key>(), |
51 | | - key_type: type_name::<Q::Key>(), |
52 | | - value_size: mem::size_of::<Q::Value>(), |
53 | | - value_type: type_name::<Q::Value>(), |
| 51 | + key_size: mem::size_of::<K>(), |
| 52 | + key_type: type_name::<K>(), |
| 53 | + value_size: mem::size_of::<V>(), |
| 54 | + value_type: type_name::<V>(), |
54 | 55 | entry_count: map.iter_results(|results| results.count()), |
55 | 56 | local_def_id_keys: None, |
56 | 57 | }; |
@@ -125,7 +126,11 @@ macro_rules! print_stats { |
125 | 126 | let mut queries = Vec::new(); |
126 | 127 |
|
127 | 128 | $($( |
128 | | - queries.push(stats::<queries::$name<'_>>( |
| 129 | + queries.push(stats::< |
| 130 | + <queries::$name<'_> as QueryConfig<'_>>::Key, |
| 131 | + <queries::$name<'_> as QueryConfig<'_>>::Value, |
| 132 | + <queries::$name<'_> as QueryAccessors<'_>>::Cache, |
| 133 | + >( |
129 | 134 | stringify!($name), |
130 | 135 | &tcx.queries.$name, |
131 | 136 | )); |
|
0 commit comments