Handle normalization failure in struct_tail_erasing_lifetimes

Fixes an ICE that occurred when the struct in question has an error
This commit is contained in:
Gurinder Singh 2024-05-08 18:22:14 +05:30 committed by Michael Goulet
parent c3202afa28
commit cacc0829ff

View File

@ -338,13 +338,14 @@ impl<'tcx> SizeSkeleton<'tcx> {
pointee, pointee,
|ty| match tcx.try_normalize_erasing_regions(param_env, ty) { |ty| match tcx.try_normalize_erasing_regions(param_env, ty) {
Ok(ty) => ty, Ok(ty) => ty,
Err(_e) => { Err(e) => Ty::new_error_with_message(
if let Some(guar) = tcx.dcx().has_errors() { tcx,
Ty::new_error(tcx, guar) DUMMY_SP,
} else { format!(
bug!("normalization failed, but no errors reported"); "normalization failed for {} but no errors reported",
} e.get_type_for_failure()
} ),
),
}, },
|| {}, || {},
); );