mirror of
https://github.com/roc-lang/roc.git
synced 2024-09-23 00:39:35 +03:00
Reorder args for List.walk and friends
This commit is contained in:
parent
b4e4ae2ff3
commit
1abebb7713
@ -746,24 +746,24 @@ pub fn types() -> MutMap<Symbol, (SolvedType, Region)> {
|
||||
Box::new(num_type(flex(TVAR1))),
|
||||
);
|
||||
|
||||
// walk : List elem, (elem -> accum -> accum), accum -> accum
|
||||
// walk : List elem, state, (state, elem -> state) -> state
|
||||
add_top_level_function_type!(
|
||||
Symbol::LIST_WALK,
|
||||
vec![
|
||||
list_type(flex(TVAR1)),
|
||||
closure(vec![flex(TVAR1), flex(TVAR2)], TVAR3, Box::new(flex(TVAR2))),
|
||||
flex(TVAR2),
|
||||
closure(vec![flex(TVAR2), flex(TVAR1)], TVAR3, Box::new(flex(TVAR2))),
|
||||
],
|
||||
Box::new(flex(TVAR2)),
|
||||
);
|
||||
|
||||
// walkBackwards : List elem, (elem -> accum -> accum), accum -> accum
|
||||
// walkBackwards : List elem, state, (state, elem -> state) -> state
|
||||
add_top_level_function_type!(
|
||||
Symbol::LIST_WALK_BACKWARDS,
|
||||
vec![
|
||||
list_type(flex(TVAR1)),
|
||||
closure(vec![flex(TVAR1), flex(TVAR2)], TVAR3, Box::new(flex(TVAR2))),
|
||||
flex(TVAR2),
|
||||
closure(vec![flex(TVAR2), flex(TVAR1)], TVAR3, Box::new(flex(TVAR2))),
|
||||
],
|
||||
Box::new(flex(TVAR2)),
|
||||
);
|
||||
@ -779,17 +779,17 @@ pub fn types() -> MutMap<Symbol, (SolvedType, Region)> {
|
||||
)
|
||||
}
|
||||
|
||||
// walkUntil : List elem, (elem -> accum -> [ Continue accum, Stop accum ]), accum -> accum
|
||||
// walkUntil : List elem, state, (state, elem -> [ Continue state, Stop state ]) -> state
|
||||
add_top_level_function_type!(
|
||||
Symbol::LIST_WALK_UNTIL,
|
||||
vec![
|
||||
list_type(flex(TVAR1)),
|
||||
flex(TVAR2),
|
||||
closure(
|
||||
vec![flex(TVAR1), flex(TVAR2)],
|
||||
TVAR3,
|
||||
Box::new(until_type(flex(TVAR2))),
|
||||
),
|
||||
flex(TVAR2),
|
||||
],
|
||||
Box::new(flex(TVAR2)),
|
||||
);
|
||||
|
@ -2050,8 +2050,8 @@ fn list_sum(symbol: Symbol, var_store: &mut VarStore) -> Def {
|
||||
op: LowLevel::ListWalk,
|
||||
args: vec![
|
||||
(list_var, Var(Symbol::ARG_1)),
|
||||
(closure_var, list_sum_add(num_var, var_store)),
|
||||
(num_var, num(var_store.fresh(), 0)),
|
||||
(closure_var, list_sum_add(num_var, var_store)),
|
||||
],
|
||||
ret_var,
|
||||
};
|
||||
@ -2092,8 +2092,8 @@ fn list_product(symbol: Symbol, var_store: &mut VarStore) -> Def {
|
||||
op: LowLevel::ListWalk,
|
||||
args: vec![
|
||||
(list_var, Var(Symbol::ARG_1)),
|
||||
(closure_var, list_product_mul(num_var, var_store)),
|
||||
(num_var, num(var_store.fresh(), 1)),
|
||||
(closure_var, list_product_mul(num_var, var_store)),
|
||||
],
|
||||
ret_var,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user