1
Fork 0

Auto merge of #128746 - compiler-errors:cache-super-outlives, r=lcnr

Cache supertrait outlives of impl header for soundness check

This caches the results of computing the transitive supertraits of an impl and filtering it to its outlives obligations. This is purely an optimization to improve https://github.com/rust-lang/rust/pull/124336.
This commit is contained in:
bors 2024-08-10 10:22:06 +00:00
commit 48090b11b5
4 changed files with 42 additions and 26 deletions

View file

@ -407,6 +407,10 @@ rustc_queries! {
desc { |tcx| "elaborating item assumptions for `{}`", tcx.def_path_str(key) }
}
query impl_super_outlives(key: DefId) -> ty::EarlyBinder<'tcx, ty::Clauses<'tcx>> {
desc { |tcx| "elaborating supertrait outlives for trait of `{}`", tcx.def_path_str(key) }
}
/// Look up all native libraries this crate depends on.
/// These are assembled from the following places:
/// - `extern` blocks (depending on their `link` attributes)