diff options
| author | Michael Goulet <michael@errs.io> | 2025-04-28 18:16:34 +0000 |
|---|---|---|
| committer | lcnr <rust@lcnr.de> | 2025-09-11 12:13:03 +0200 |
| commit | cf224ea1fbe2fb7eb64812288338a2c4cfe1d084 (patch) | |
| tree | b1e6a18289946147c3ec869f103462d5de6ae24f /compiler/rustc_middle/src | |
| parent | 0e29865434db8d44109715515ea00479936fa668 (diff) | |
incompletely prefer opaque type bounds when self type bottoms out in infer
Diffstat (limited to 'compiler/rustc_middle/src')
| -rw-r--r-- | compiler/rustc_middle/src/ty/context.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/rustc_middle/src/ty/context.rs b/compiler/rustc_middle/src/ty/context.rs index 218ac2cfbc1..8ea767dccd3 100644 --- a/compiler/rustc_middle/src/ty/context.rs +++ b/compiler/rustc_middle/src/ty/context.rs @@ -651,7 +651,11 @@ impl<'tcx> Interner for TyCtxt<'tcx> { | ty::Bound(_, _) => bug!("unexpected self type: {self_ty}"), } - let trait_impls = tcx.trait_impls_of(trait_def_id); + #[allow(rustc::usage_of_type_ir_traits)] + self.for_each_blanket_impl(trait_def_id, f) + } + fn for_each_blanket_impl(self, trait_def_id: DefId, mut f: impl FnMut(DefId)) { + let trait_impls = self.trait_impls_of(trait_def_id); for &impl_def_id in trait_impls.blanket_impls() { f(impl_def_id); } |
