Skip to content

Commit c797724

Browse files
committed
Add delayed bug for stranded opaque
1 parent eb11353 commit c797724

File tree

1 file changed

+10
-0
lines changed
  • compiler/rustc_hir_analysis/src/collect/type_of

1 file changed

+10
-0
lines changed

compiler/rustc_hir_analysis/src/collect/type_of/opaque.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,16 @@ pub(super) fn find_opaque_ty_constraints_for_rpit<'tcx>(
242242
owner_def_id: LocalDefId,
243243
opaque_types_from: DefiningScopeKind,
244244
) -> 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+
245255
match opaque_types_from {
246256
DefiningScopeKind::HirTypeck => {
247257
let tables = tcx.typeck(owner_def_id);

0 commit comments

Comments
 (0)