|
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