Remove Num.Natural, Num.toNat, and Num.toNatChecked

This commit is contained in:
Richard Feldman 2024-01-23 12:54:46 -05:00
parent 9518d76cd8
commit fb84c9487d
No known key found for this signature in database
GPG key ID: F1F21AA5B1D9E43B
4 changed files with 1 additions and 35 deletions

View file

@ -28,7 +28,6 @@ interface Num
Dec,
F64,
F32,
Natural,
Decimal,
Binary32,
Binary64,
@ -147,8 +146,6 @@ interface Num
toU64Checked,
toU128,
toU128Checked,
toNat,
toNatChecked,
toF32,
toF32Checked,
toF64,
@ -410,8 +407,6 @@ Unsigned32 := []
Unsigned16 := []
Unsigned8 := []
Natural := []
Integer range := range
I128 : Num (Integer Signed128)
@ -1374,8 +1369,6 @@ toU32 : Int * -> U32
toU64 : Int * -> U64
toU128 : Int * -> U128
toNat : Int * -> Nat
## Converts a [Num] to an [F32]. If the given number can't be precisely represented in an [F32],
## the returned number may be different from the given number.
toF32 : Num * -> F32
@ -1397,6 +1390,5 @@ toU16Checked : Int * -> Result U16 [OutOfBounds]
toU32Checked : Int * -> Result U32 [OutOfBounds]
toU64Checked : Int * -> Result U64 [OutOfBounds]
toU128Checked : Int * -> Result U128 [OutOfBounds]
toNatChecked : Int * -> Result Nat [OutOfBounds]
toF32Checked : Num * -> Result F32 [OutOfBounds]
toF64Checked : Num * -> Result F64 [OutOfBounds]

View file

@ -33,7 +33,6 @@ macro_rules! map_symbol_to_lowlevel_and_arity {
Symbol::NUM_TO_U32 => Some(lowlevel_1(Symbol::NUM_TO_U32, LowLevel::NumIntCast, var_store)),
Symbol::NUM_TO_U64 => Some(lowlevel_1(Symbol::NUM_TO_U64, LowLevel::NumIntCast, var_store)),
Symbol::NUM_TO_U128 => Some(lowlevel_1(Symbol::NUM_TO_U128, LowLevel::NumIntCast, var_store)),
Symbol::NUM_TO_NAT => Some(lowlevel_1(Symbol::NUM_TO_NAT, LowLevel::NumIntCast, var_store)),
Symbol::NUM_INT_CAST => Some(lowlevel_1(Symbol::NUM_INT_CAST, LowLevel::NumIntCast, var_store)),
@ -50,7 +49,6 @@ macro_rules! map_symbol_to_lowlevel_and_arity {
Symbol::NUM_TO_U32_CHECKED => Some(to_num_checked(Symbol::NUM_TO_U32_CHECKED, var_store, LowLevel::NumToIntChecked)),
Symbol::NUM_TO_U64_CHECKED => Some(to_num_checked(Symbol::NUM_TO_U64_CHECKED, var_store, LowLevel::NumToIntChecked)),
Symbol::NUM_TO_U128_CHECKED => Some(to_num_checked(Symbol::NUM_TO_U128_CHECKED, var_store, LowLevel::NumToIntChecked)),
Symbol::NUM_TO_NAT_CHECKED => Some(to_num_checked(Symbol::NUM_TO_NAT_CHECKED, var_store, LowLevel::NumToIntChecked)),
Symbol::NUM_TO_F32_CHECKED => Some(to_num_checked(Symbol::NUM_TO_F32_CHECKED, var_store, LowLevel::NumToFloatChecked)),
Symbol::NUM_TO_F64_CHECKED => Some(to_num_checked(Symbol::NUM_TO_F64_CHECKED, var_store, LowLevel::NumToFloatChecked)),

View file

@ -2271,13 +2271,6 @@ fn min_f32() {
assert_evals_to!("Num.minF32", f32::MIN, f32);
}
#[test]
#[cfg(all(feature = "gen-llvm", not(feature = "gen-llvm-wasm")))]
fn to_nat_truncate_wraps() {
let input = "Num.toNat 10_000_000_000_000_000_000_000i128";
assert_evals_to!(input, 1864712049423024128, u64)
}
macro_rules! num_conversion_tests {
($($fn:expr, $typ:ty, ($($test_name:ident, $input:expr, $output:expr $(, [$($support_gen:literal),*])? )*))*) => {$($(
#[test]
@ -2350,11 +2343,6 @@ num_conversion_tests! {
to_u128_same_width, "15i128", 15
to_u128_extend, "15i8", 15
)
"Num.toNat", usize, (
to_nat_same_width, "15i64", 15, ["gen-wasm", "gen-dev"]
to_nat_extend, "15i8", 15, ["gen-wasm", "gen-dev"]
to_nat_truncate, "115i128", 115
)
"Num.toF32", f32, (
to_f32_from_i8, "15i8", 15.0
to_f32_from_i16, "15i16", 15.0
@ -2516,18 +2504,6 @@ to_int_checked_tests! {
to_u128_checked_same_width_signed_fits, "15i128", 15
to_u128_checked_same_width_signed_oob, "-1i128", None
)
"Num.toNatChecked", usize, (
to_nat_checked_smaller_width_pos, "15i8", 15
to_nat_checked_smaller_width_neg_oob, "-15i8", None
to_nat_checked_same, "15u64", 15
to_nat_checked_same_width_signed_fits, "15i64", 15
to_nat_checked_same_width_signed_oob, "-1i64", None
to_nat_checked_larger_width_signed_fits_pos, "15i128", 15
to_nat_checked_larger_width_signed_oob_pos, "18446744073709551616i128", None
to_nat_checked_larger_width_signed_oob_neg, "-1i128", None
to_nat_checked_larger_width_unsigned_fits_pos, "15u128", 15
to_nat_checked_larger_width_unsigned_oob_pos, "18446744073709551616u128", None
)
}
#[test]

View file

@ -9,7 +9,7 @@ app "ingested-file-bytes"
main =
# Due to how license is used, it will be a List U8.
license
|> List.map Num.toNat
|> List.map Num.toU64
|> List.sum
|> Num.toStr
|> Stdout.line