mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-30 07:14:46 +00:00
improve compare/Order
This commit is contained in:
parent
cc89088f60
commit
0b19c594c5
3 changed files with 23 additions and 93 deletions
|
@ -251,8 +251,8 @@ fn num_binop(symbol: Symbol, var_store: &mut VarStore, op: LowLevel) -> Def {
|
|||
)
|
||||
}
|
||||
|
||||
/// Num a, Num a -> Bool
|
||||
fn num_bool_binop(symbol: Symbol, var_store: &mut VarStore, op: LowLevel) -> Def {
|
||||
/// Num a, Num a -> b
|
||||
fn num_num_other_binop(symbol: Symbol, var_store: &mut VarStore, op: LowLevel) -> Def {
|
||||
let num_var = var_store.fresh();
|
||||
let bool_var = var_store.fresh();
|
||||
let body = RunLowLevel {
|
||||
|
@ -381,27 +381,27 @@ fn num_mul(symbol: Symbol, var_store: &mut VarStore) -> Def {
|
|||
|
||||
/// Num.isGt : Num a, Num a -> Bool
|
||||
fn num_gt(symbol: Symbol, var_store: &mut VarStore) -> Def {
|
||||
num_bool_binop(symbol, var_store, LowLevel::NumGt)
|
||||
num_num_other_binop(symbol, var_store, LowLevel::NumGt)
|
||||
}
|
||||
|
||||
/// Num.isGte : Num a, Num a -> Bool
|
||||
fn num_gte(symbol: Symbol, var_store: &mut VarStore) -> Def {
|
||||
num_bool_binop(symbol, var_store, LowLevel::NumGte)
|
||||
num_num_other_binop(symbol, var_store, LowLevel::NumGte)
|
||||
}
|
||||
|
||||
/// Num.isLt : Num a, Num a -> Bool
|
||||
fn num_lt(symbol: Symbol, var_store: &mut VarStore) -> Def {
|
||||
num_bool_binop(symbol, var_store, LowLevel::NumLt)
|
||||
num_num_other_binop(symbol, var_store, LowLevel::NumLt)
|
||||
}
|
||||
|
||||
/// Num.isLte : Num a, Num a -> Num a
|
||||
/// Num.isLte : Num a, Num a -> Bool
|
||||
fn num_lte(symbol: Symbol, var_store: &mut VarStore) -> Def {
|
||||
num_bool_binop(symbol, var_store, LowLevel::NumLte)
|
||||
num_num_other_binop(symbol, var_store, LowLevel::NumLte)
|
||||
}
|
||||
|
||||
/// Num.compare : Num a, Num a -> [ LT, EQ, GT ]
|
||||
fn num_compare(symbol: Symbol, var_store: &mut VarStore) -> Def {
|
||||
num_bool_binop(symbol, var_store, LowLevel::NumCompare)
|
||||
num_num_other_binop(symbol, var_store, LowLevel::NumCompare)
|
||||
}
|
||||
|
||||
/// Num.sin : Float -> Float
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue