Auto merge of #95573 - cjgillot:lower-query, r=michaelwoerister
Make lowering a query Split from https://github.com/rust-lang/rust/pull/88186. This PR refactors the relationship between lowering and the resolver outputs in order to make lowering itself a query. In a first part, lowering is changed to avoid modifying resolver outputs, by maintaining its own data structures for creating new `NodeId`s and so. Then, the `TyCtxt` is modified to allow creating new `LocalDefId`s from inside it. This is done by: - enclosing `Definitions` in a lock, so as to allow modification; - creating a query `register_def` whose purpose is to declare a `LocalDefId` to the query system. See `TyCtxt::create_def` and `TyCtxt::iter_local_def_id` for more detailed explanations of the design.
This commit is contained in:
commit
0f573a0c54
37 changed files with 462 additions and 391 deletions
|
@ -111,7 +111,6 @@ pub fn provide(providers: &mut Providers) {
|
|||
let hir = tcx.hir();
|
||||
hir.get_module_parent_node(hir.local_def_id_to_hir_id(id))
|
||||
};
|
||||
providers.hir_crate = |tcx, ()| tcx.untracked_crate;
|
||||
providers.hir_crate_items = map::hir_crate_items;
|
||||
providers.crate_hash = map::crate_hash;
|
||||
providers.hir_module_items = map::hir_module_items;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue