about summary refs log tree commit diff
path: root/compiler/rustc_codegen_cranelift
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2024-12-01 17:33:01 +0100
committerRalf Jung <post@ralfj.de>2024-12-18 11:01:54 +0100
commite023590de407f417e0f3da675a372eca7acf60c6 (patch)
tree1250b36437667439bc369777a202d9571cec2f19 /compiler/rustc_codegen_cranelift
parent21de42bf8ddd0f39c766c7705990152302ae1f3b (diff)
make no-variant types a dedicated Variants variant
Diffstat (limited to 'compiler/rustc_codegen_cranelift')
-rw-r--r--compiler/rustc_codegen_cranelift/src/discriminant.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/compiler/rustc_codegen_cranelift/src/discriminant.rs b/compiler/rustc_codegen_cranelift/src/discriminant.rs
index 055063c876f..4d0d5dc60eb 100644
--- a/compiler/rustc_codegen_cranelift/src/discriminant.rs
+++ b/compiler/rustc_codegen_cranelift/src/discriminant.rs
@@ -18,8 +18,9 @@ pub(crate) fn codegen_set_discriminant<'tcx>(
         return;
     }
     match layout.variants {
+        Variants::Empty => unreachable!("we already handled uninhabited types"),
         Variants::Single { index } => {
-            assert_eq!(index.unwrap(), variant_index);
+            assert_eq!(index, variant_index);
         }
         Variants::Multiple {
             tag: _,
@@ -85,11 +86,11 @@ pub(crate) fn codegen_get_discriminant<'tcx>(
     }
 
     let (tag_scalar, tag_field, tag_encoding) = match &layout.variants {
+        Variants::Empty => unreachable!("we already handled uninhabited types"),
         Variants::Single { index } => {
-            let index = index.unwrap();
             let discr_val = layout
                 .ty
-                .discriminant_for_variant(fx.tcx, index)
+                .discriminant_for_variant(fx.tcx, *index)
                 .map_or(u128::from(index.as_u32()), |discr| discr.val);
 
             let val = match dest_layout.ty.kind() {