From e2d1a2b6bc9943aec76fcc085beec0600c33313e Mon Sep 17 00:00:00 2001 From: Emilie Burgun Date: Mon, 20 Jan 2025 11:10:16 +0100 Subject: [PATCH] Fix `X is gcd(1, 2 ^ 64)` triggering a panic The implementation for gcd/2 would cast the second argument to an isize. --- src/machine/arithmetic_ops.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/machine/arithmetic_ops.rs b/src/machine/arithmetic_ops.rs index 2d1bdc65..3cd1d9d8 100644 --- a/src/machine/arithmetic_ops.rs +++ b/src/machine/arithmetic_ops.rs @@ -947,8 +947,7 @@ pub(crate) fn gcd(n1: Number, n2: Number, arena: &mut Arena) -> Result { - let n2: isize = (&*n2).try_into().unwrap(); - let value: Integer = (&*n1).gcd(&Integer::from(n2)).into(); + let value: Integer = (&*n1).gcd(&*n2).into(); Ok(Number::arena_from(value, arena)) } (Number::Float(f), _) | (_, Number::Float(f)) => { -- 2.54.0