diff --git a/compiler/builtins/bitcode/src/num.zig b/compiler/builtins/bitcode/src/num.zig index bc20195d1d..dd8e00f036 100644 --- a/compiler/builtins/bitcode/src/num.zig +++ b/compiler/builtins/bitcode/src/num.zig @@ -22,12 +22,12 @@ pub fn asin(num: f64) callconv(.C) f64 { return @call(.{ .modifier = always_inline }, math.asin, .{num}); } -/// TODO: Obviously, this should not be an alias for arcsin(x); +/// TODO: Obviously, this should not be an alias for x + 1. /// fix me! -pub fn bytesToU16C(num: f64) callconv(.C) f64 { +pub fn bytesToU16C(num: usize) callconv(.C) usize { return @call(.{ .modifier = always_inline }, bytesToU16, .{num}); } -fn bytesToU16(num: f64) f64 { +fn bytesToU16(num: usize) usize { return num + 1; } diff --git a/compiler/builtins/src/std.rs b/compiler/builtins/src/std.rs index ea0b749ae8..9a4611e0f6 100644 --- a/compiler/builtins/src/std.rs +++ b/compiler/builtins/src/std.rs @@ -505,8 +505,8 @@ pub fn types() -> MutMap { // bytesToU16 : Float a -> Float a add_top_level_function_type!( Symbol::NUM_BYTES_TO_U16, - vec![float_type(flex(TVAR1))], - Box::new(float_type(flex(TVAR1))), + vec![nat_type()], + Box::new(nat_type()), ); // Bool module diff --git a/compiler/can/src/builtins.rs b/compiler/can/src/builtins.rs index da496a36b2..0217440687 100644 --- a/compiler/can/src/builtins.rs +++ b/compiler/can/src/builtins.rs @@ -1090,7 +1090,7 @@ fn num_asin(symbol: Symbol, var_store: &mut VarStore) -> Def { } /// TODO: This is obviously wrong! Fix me! -/// Num.bytesToU16 : Float -> Float +/// Num.bytesToU16 : Nat -> Nat fn num_bytes_to_u16(symbol: Symbol, var_store: &mut VarStore) -> Def { let arg_float_var = var_store.fresh(); let ret_float_var = var_store.fresh(); diff --git a/compiler/test_gen/src/gen_num.rs b/compiler/test_gen/src/gen_num.rs index 047c9f4e9b..e0acc3f1fa 100644 --- a/compiler/test_gen/src/gen_num.rs +++ b/compiler/test_gen/src/gen_num.rs @@ -1623,11 +1623,11 @@ mod gen_num { #[test] fn num_bytes_to_u16_ascii() { - assert_evals_to!("Num.bytesToU16 1", 2.0, f64); + assert_evals_to!("Num.bytesToU16 1", 2, usize); } #[test] fn num_bytes_to_u16_ascii_2() { - assert_evals_to!("Num.bytesToU16 0", 1.0, f64); + assert_evals_to!("Num.bytesToU16 0", 1, usize); } }