diff --git a/src/taggedlen.rs b/src/taggedlen.rs index 7e76ca8..c357165 100644 --- a/src/taggedlen.rs +++ b/src/taggedlen.rs @@ -66,8 +66,13 @@ impl TaggedLen { panic!("smallvec length overflow") } #[cfg(any(debug_assertions, not(target_pointer_width = "64")))] - if self.len().saturating_add(n) > Self::MAX_LEN { - assert_failed(); + match self.len().checked_add(n) { + Some(value) => { + if value > Self::MAX_LEN { + assert_failed() + } + } + None => assert_failed() } self.0 += n << Self::SHIFT; }