mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-28 22:34:45 +00:00
Implement saturated add/subtract
This commit is contained in:
parent
4ea91b54eb
commit
2c41c43aea
10 changed files with 177 additions and 66 deletions
|
@ -141,6 +141,13 @@ pub fn types() -> MutMap<Symbol, (SolvedType, Region)> {
|
|||
Box::new(int_type(flex(TVAR1))),
|
||||
);
|
||||
|
||||
// addSaturated : Num a, Num a -> Num a
|
||||
add_top_level_function_type!(
|
||||
Symbol::NUM_ADD_SATURATED,
|
||||
vec![int_type(flex(TVAR1)), int_type(flex(TVAR1))],
|
||||
Box::new(int_type(flex(TVAR1))),
|
||||
);
|
||||
|
||||
// sub or (-) : Num a, Num a -> Num a
|
||||
add_top_level_function_type!(
|
||||
Symbol::NUM_SUB,
|
||||
|
@ -162,6 +169,13 @@ pub fn types() -> MutMap<Symbol, (SolvedType, Region)> {
|
|||
Box::new(result_type(num_type(flex(TVAR1)), overflow())),
|
||||
);
|
||||
|
||||
// subSaturated : Num a, Num a -> Num a
|
||||
add_top_level_function_type!(
|
||||
Symbol::NUM_SUB_SATURATED,
|
||||
vec![int_type(flex(TVAR1)), int_type(flex(TVAR1))],
|
||||
Box::new(int_type(flex(TVAR1))),
|
||||
);
|
||||
|
||||
// mul or (*) : Num a, Num a -> Num a
|
||||
add_top_level_function_type!(
|
||||
Symbol::NUM_MUL,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue