We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent eb11353 commit c797724Copy full SHA for c797724
1 file changed
compiler/rustc_hir_analysis/src/collect/type_of/opaque.rs
@@ -242,6 +242,16 @@ pub(super) fn find_opaque_ty_constraints_for_rpit<'tcx>(
242
owner_def_id: LocalDefId,
243
opaque_types_from: DefiningScopeKind,
244
) -> Ty<'tcx> {
245
+ // When an opaque type is stranded, its hidden type cannot be inferred
246
+ // so we should not continue.
247
+ if !tcx.opaque_types_defined_by(owner_def_id).contains(&def_id) {
248
+ let opaque_type_span = tcx.def_span(def_id);
249
+ let guar = tcx
250
+ .dcx()
251
+ .span_delayed_bug(opaque_type_span, "cannot infer type for stranded opaque type");
252
+ return Ty::new_error(tcx, guar);
253
+ }
254
+
255
match opaque_types_from {
256
DefiningScopeKind::HirTypeck => {
257
let tables = tcx.typeck(owner_def_id);
0 commit comments