--- a/src/shared/discriminant_assigner.rs
+++ b/src/shared/discriminant_assigner.rs
@@ -26,20 +26,20 @@
         let discriminant_expr = &discriminant.1;
         let variant_name = &variant.ident;
 
-        let Expr::Lit(ExprLit { lit: Lit::Int(int), .. }) = discriminant_expr else {
+        if let Expr::Lit(ExprLit { lit: Lit::Int(int), .. }) = discriminant_expr {
+            let discriminant_value: u128 = int.base10_parse().unwrap_or_else(unreachable);
+            if discriminant_value > self.max_value() {
+                abort!(variant, "Value of variant exceeds the given number of bits")
+            }
+
+            Some(discriminant_value)
+        } else {
             abort!(
                 discriminant_expr,
                 "variant `{}` is not a number", variant_name;
                 help = "only literal integers currently supported"
             )
-        };
-
-        let discriminant_value: u128 = int.base10_parse().unwrap_or_else(unreachable);
-        if discriminant_value > self.max_value() {
-            abort!(variant, "Value of variant exceeds the given number of bits")
         }
-
-        Some(discriminant_value)
     }
 
     fn assign(&mut self, variant: &Variant) -> u128 {
--- a/src/shared/fallback.rs
+++ b/src/shared/fallback.rs
@@ -22,8 +22,9 @@
             }
             Unnamed(fields) => {
                 let variant_fields = fields.unnamed.iter();
-                let Ok(fallback_value) = variant_fields.exactly_one() else {
-                    abort!(variant, "fallback variant must have exactly one field"; help = "use only one field or change to a unit variant")
+                let fallback_value = match variant_fields.exactly_one() {
+                    Ok(ok) => ok,
+                    _ => abort!(variant, "fallback variant must have exactly one field"; help = "use only one field or change to a unit variant")
                 };
 
                 if !is_last_variant {
