Don't create two new closures for each query

- Parameterize DepKindStruct over `'tcx`

    This allows passing in an invariant function pointer in `query_callback`,
    rather than having to try and make it work for any lifetime.

- Add a new `execute_query` function to `QueryDescription` so we can call `tcx.$name` without needing to be in a macro context
This commit is contained in:
Joshua Nelson
2022-08-29 10:20:14 -05:00
parent 4fcc745266
commit 4e09a13bb8
5 changed files with 31 additions and 37 deletions

View File

@@ -100,7 +100,7 @@ macro_rules! arena_types {
[decode] is_late_bound_map: rustc_data_structures::fx::FxIndexSet<rustc_hir::def_id::LocalDefId>,
[decode] impl_source: rustc_middle::traits::ImplSource<'tcx, ()>,
[] dep_kind: rustc_middle::dep_graph::DepKindStruct,
[] dep_kind: rustc_middle::dep_graph::DepKindStruct<'tcx>,
]);
)
}