Remove an unwrap in layout computation
This commit is contained in:
parent
0cd7ff7ddf
commit
23d7b3f6f1
@ -774,12 +774,12 @@ impl<'tcx> LayoutCx<'tcx, TyCtxt<'tcx>> {
|
||||
(present_variants.next(), present_variants.next())
|
||||
};
|
||||
let present_first = match present_first {
|
||||
present_first @ Some(_) => present_first,
|
||||
Some(present_first) => present_first,
|
||||
// Uninhabited because it has no variants, or only absent ones.
|
||||
None if def.is_enum() => return tcx.layout_raw(param_env.and(tcx.types.never)),
|
||||
// If it's a struct, still compute a layout so that we can still compute the
|
||||
// field offsets.
|
||||
None => Some(VariantIdx::new(0)),
|
||||
None => VariantIdx::new(0),
|
||||
};
|
||||
|
||||
let is_struct = !def.is_enum() ||
|
||||
@ -791,7 +791,7 @@ impl<'tcx> LayoutCx<'tcx, TyCtxt<'tcx>> {
|
||||
// Struct, or univariant enum equivalent to a struct.
|
||||
// (Typechecking will reject discriminant-sizing attrs.)
|
||||
|
||||
let v = present_first.unwrap();
|
||||
let v = present_first;
|
||||
let kind = if def.is_enum() || variants[v].is_empty() {
|
||||
StructKind::AlwaysSized
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user