1
Fork 0

fix getting the discriminant of a zero-variant enum

This commit is contained in:
Ralf Jung 2021-11-14 13:28:47 -05:00
parent c8e94975a6
commit eebf676bf8
2 changed files with 9 additions and 1 deletions

View file

@ -2067,7 +2067,9 @@ impl<'tcx> TyS<'tcx> {
) -> Option<Discr<'tcx>> {
match self.kind() {
TyKind::Adt(adt, _) if adt.variants.is_empty() => {
bug!("discriminant_for_variant called on zero variant enum");
// This can actually happen during CTFE, see
// https://github.com/rust-lang/rust/issues/89765.
None
}
TyKind::Adt(adt, _) if adt.is_enum() => {
Some(adt.discriminant_for_variant(tcx, variant_index))