Auto merge of #83114 - cjgillot:hop, r=eddyb
Move HIR parenting information out of hir_owner Split out of #82681. The parent of a HIR node and its content are currently bundled together, but are rarely used together. This PR separates both information in two distinct queries for HIR owners. This reduces incremental invalidation for HIR items that appear within a function body when this body (and the local ids) changes.
This commit is contained in:
commit
6e2a34474b
12 changed files with 289 additions and 273 deletions
|
@ -28,7 +28,7 @@ rustc_queries! {
|
|||
|
||||
/// The indexed HIR. This can be conveniently accessed by `tcx.hir()`.
|
||||
/// Avoid calling this query directly.
|
||||
query index_hir(_: CrateNum) -> &'tcx map::IndexedHir<'tcx> {
|
||||
query index_hir(_: CrateNum) -> &'tcx crate::hir::IndexedHir<'tcx> {
|
||||
eval_always
|
||||
no_hash
|
||||
desc { "index HIR" }
|
||||
|
@ -52,6 +52,15 @@ rustc_queries! {
|
|||
desc { |tcx| "HIR owner of `{}`", tcx.def_path_str(key.to_def_id()) }
|
||||
}
|
||||
|
||||
/// Gives access to the HIR node's parent for the HIR owner `key`.
|
||||
///
|
||||
/// This can be conveniently accessed by methods on `tcx.hir()`.
|
||||
/// Avoid calling this query directly.
|
||||
query hir_owner_parent(key: LocalDefId) -> hir::HirId {
|
||||
eval_always
|
||||
desc { |tcx| "HIR parent of `{}`", tcx.def_path_str(key.to_def_id()) }
|
||||
}
|
||||
|
||||
/// Gives access to the HIR nodes and bodies inside the HIR owner `key`.
|
||||
///
|
||||
/// This can be conveniently accessed by methods on `tcx.hir()`.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue