diff --git a/syntax/check.rs b/syntax/check.rs
index a99e982..06bf65b 100644
--- a/syntax/check.rs
+++ b/syntax/check.rs
@@ -204,14 +204,23 @@
     }
 
     let mut discriminants = HashSet::new();
-    enm.variants.iter().fold(0, |next_discriminant, variant| {
-        let discriminant = variant.discriminant.unwrap_or(next_discriminant);
-        if !discriminants.insert(discriminant) {
-            let msg = format!("discriminant value `{}` already exists", discriminant);
-            cx.error(span_for_enum_error(enm), msg);
-        }
-        discriminant + 1
-    });
+    enm.variants
+        .iter()
+        .fold(None, |prev_discriminant, variant| {
+            if variant.discriminant.is_none() && prev_discriminant.unwrap_or(0) == u32::MAX {
+                let msg = format!("overflowed on value after {}", prev_discriminant.unwrap());
+                cx.error(span_for_enum_error(enm), msg);
+                return None;
+            }
+            let discriminant = variant
+                .discriminant
+                .unwrap_or_else(|| prev_discriminant.map_or(0, |n| n + 1));
+            if !discriminants.insert(discriminant) {
+                let msg = format!("discriminant value `{}` already exists", discriminant);
+                cx.error(span_for_enum_error(enm), msg);
+            }
+            Some(discriminant)
+        });
 }
 
 fn check_api_type(cx: &mut Check, ty: &ExternType) {
