Don't ICE on layout computation failure

This commit is contained in:
Katherine Philip 2023-08-28 12:40:39 -07:00
parent 17b7f1e198
commit 642fae9409

View File

@ -7,6 +7,7 @@
BaseTypeMethods, BaseTypeMethods,
MiscMethods, MiscMethods,
}; };
use rustc_codegen_ssa::errors as ssa_errors;
use rustc_data_structures::base_n; use rustc_data_structures::base_n;
use rustc_data_structures::fx::{FxHashMap, FxHashSet}; use rustc_data_structures::fx::{FxHashMap, FxHashSet};
use rustc_middle::span_bug; use rustc_middle::span_bug;
@ -479,7 +480,7 @@ fn handle_layout_err(&self, err: LayoutError<'tcx>, span: Span, ty: Ty<'tcx>) ->
if let LayoutError::SizeOverflow(_) | LayoutError::ReferencesError(_) = err { if let LayoutError::SizeOverflow(_) | LayoutError::ReferencesError(_) = err {
self.sess().emit_fatal(respan(span, err.into_diagnostic())) self.sess().emit_fatal(respan(span, err.into_diagnostic()))
} else { } else {
span_bug!(span, "failed to get layout for `{}`: {}", ty, err) self.tcx.sess.emit_fatal(ssa_errors::FailedToGetLayout { span, ty, err })
} }
} }
} }