Auto merge of #139018 - oli-obk:incremental-trait-impls, r=compiler-errors
Various local trait item iteration cleanups Adding a trait impl for `Foo` unconditionally affected all queries that are interested in a completely independent trait `Bar`. Perf has no effect on this. We probably don't have a good perf test for this tho. r? `@compiler-errors` I am unsure about9d05efb66f
as it doesn't improve anything wrt incremental, because we still do all the checks for valid `Drop` impls, which subsequently will still invoke many queries and basically keep the depgraph the same. I want to do9549077a47/compiler/rustc_middle/src/ty/trait_def.rs (L141)
but would leave that to a follow-up PR, this one changes enough things as it is
This commit is contained in:
commit
ae9173d7dd
26 changed files with 96 additions and 93 deletions
|
@ -421,10 +421,8 @@ impl<'tcx> MarkSymbolVisitor<'tcx> {
|
|||
}
|
||||
hir::ItemKind::ForeignMod { .. } => {}
|
||||
hir::ItemKind::Trait(..) => {
|
||||
for impl_def_id in self.tcx.all_impls(item.owner_id.to_def_id()) {
|
||||
if let Some(local_def_id) = impl_def_id.as_local()
|
||||
&& let ItemKind::Impl(impl_ref) =
|
||||
self.tcx.hir_expect_item(local_def_id).kind
|
||||
for &impl_def_id in self.tcx.local_trait_impls(item.owner_id.def_id) {
|
||||
if let ItemKind::Impl(impl_ref) = self.tcx.hir_expect_item(impl_def_id).kind
|
||||
{
|
||||
// skip items
|
||||
// mark dependent traits live
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue