Correctly compile subChecked for Dec

This commit is contained in:
Ayaz Hafiz 2023-06-06 17:36:27 -05:00
parent b3966a588a
commit 25f3190d33
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58
2 changed files with 20 additions and 5 deletions

View file

@ -1965,7 +1965,10 @@ fn build_dec_binop<'a, 'ctx>(
let val = dec_binop_with_overflow(env, bitcode::DEC_ADD_WITH_OVERFLOW, lhs, rhs);
cast_with_overflow_dec_to_roc_type(env, layout_interner, val.into(), return_layout)
}
NumSubChecked => call_bitcode_fn(env, &[lhs, rhs], bitcode::DEC_SUB_WITH_OVERFLOW),
NumSubChecked => {
let val = dec_binop_with_overflow(env, bitcode::DEC_SUB_WITH_OVERFLOW, lhs, rhs);
cast_with_overflow_dec_to_roc_type(env, layout_interner, val.into(), return_layout)
}
NumMulChecked => call_bitcode_fn(env, &[lhs, rhs], bitcode::DEC_MUL_WITH_OVERFLOW),
NumAdd => build_dec_binop_throw_on_overflow(
env,

View file

@ -3927,13 +3927,25 @@ fn bool_in_switch() {
#[test]
#[cfg(any(feature = "gen-llvm", feature = "gen-dev", feature = "gen-wasm"))]
fn add_checked_frac_infer() {
fn add_checked_dec() {
assert_evals_to!(
indoc!(
r#"
app "test" provides [main] to "./platform"
main = Num.addChecked 2.0dec 4.0dec == Ok 6.0dec
Num.addChecked 2.0dec 4.0dec == Ok 6.0dec
"#
),
true,
bool
);
}
#[test]
#[cfg(any(feature = "gen-llvm", feature = "gen-dev", feature = "gen-wasm"))]
fn sub_checked_dec() {
assert_evals_to!(
indoc!(
r#"
Num.subChecked 5.0dec 2.0dec == Ok 3.0dec
"#
),
true,