From e8482f5abe5ea47bdccdf38bdb0490b47e8c0f7e Mon Sep 17 00:00:00 2001 From: Jay Lorch Date: Fri, 24 Jul 2026 07:47:55 -0700 Subject: [PATCH] Handle `i32::MIN` in `Number::two_pow` and `Number::ten_pow` (#771) * In Number::two_pow, handle i32::MIN case * In Number::ten_pow, handle i32::MIN case --- src/number.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/number.rs b/src/number.rs index e6d6d2e..22fc044 100644 --- a/src/number.rs +++ b/src/number.rs @@ -781,7 +781,8 @@ impl Number { if e >= 0 { Ok(two_pow_positive(e as u32)) } else { - let denom = two_pow_positive((-e) as u32); + // Must cast to i64 before negating in case it's i32::MIN + let denom = two_pow_positive((-(e as i64)) as u32); Number::from(1u64).divide(&denom) } } @@ -790,7 +791,8 @@ impl Number { if e >= 0 { Ok(ten_pow_positive(e as u32)) } else { - let denom = ten_pow_positive((-e) as u32); + // Must cast to i64 before negating in case it's i32::MIN + let denom = ten_pow_positive((-(e as i64)) as u32); Number::from(1u64).divide(&denom) } }