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 about9d05efb66fas 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:
@@ -259,7 +259,7 @@ fn evaluate_host_effect_for_destruct_goal<'tcx>(
|
||||
.all_fields()
|
||||
.map(|field| ty::TraitRef::new(tcx, destruct_def_id, [field.ty(tcx, args)]))
|
||||
.collect();
|
||||
match adt_def.destructor(tcx).map(|dtor| dtor.constness) {
|
||||
match adt_def.destructor(tcx).map(|dtor| tcx.constness(dtor.did)) {
|
||||
// `Drop` impl exists, but it's not const. Type cannot be `~const Destruct`.
|
||||
Some(hir::Constness::NotConst) => return Err(EvaluationFailure::NoSolution),
|
||||
// `Drop` impl exists, and it's const. Require `Ty: ~const Drop` to hold.
|
||||
|
||||
Reference in New Issue
Block a user