mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-29 14:54:47 +00:00
add broken attempt to get list.set to use list.replace under the hood
This commit is contained in:
parent
d9e9c28889
commit
4d42d81c63
1 changed files with 19 additions and 12 deletions
|
@ -2408,6 +2408,7 @@ fn list_set(symbol: Symbol, var_store: &mut VarStore) -> Def {
|
||||||
let bool_var = var_store.fresh();
|
let bool_var = var_store.fresh();
|
||||||
let len_var = var_store.fresh();
|
let len_var = var_store.fresh();
|
||||||
let elem_var = var_store.fresh();
|
let elem_var = var_store.fresh();
|
||||||
|
let replace_record_var = var_store.fresh();
|
||||||
let list_arg_var = var_store.fresh(); // Uniqueness type Attr differs between
|
let list_arg_var = var_store.fresh(); // Uniqueness type Attr differs between
|
||||||
let list_ret_var = var_store.fresh(); // the arg list and the returned list
|
let list_ret_var = var_store.fresh(); // the arg list and the returned list
|
||||||
|
|
||||||
|
@ -2437,18 +2438,24 @@ fn list_set(symbol: Symbol, var_store: &mut VarStore) -> Def {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
// then-branch
|
// then-branch
|
||||||
no_region(
|
no_region(Access {
|
||||||
// List.setUnsafe list index elem
|
record_var: replace_record_var,
|
||||||
RunLowLevel {
|
ext_var: var_store.fresh(),
|
||||||
op: LowLevel::ListSet,
|
field_var: list_ret_var,
|
||||||
args: vec![
|
loc_expr: Box::new(no_region(
|
||||||
(list_arg_var, Var(arg_list)),
|
// List.replaceUnsafe list index elem
|
||||||
(len_var, Var(arg_index)),
|
RunLowLevel {
|
||||||
(elem_var, Var(arg_elem)),
|
op: LowLevel::ListReplaceUnsafe,
|
||||||
],
|
args: vec![
|
||||||
ret_var: list_ret_var,
|
(list_arg_var, Var(arg_list)),
|
||||||
},
|
(len_var, Var(arg_index)),
|
||||||
),
|
(elem_var, Var(arg_elem)),
|
||||||
|
],
|
||||||
|
ret_var: replace_record_var,
|
||||||
|
},
|
||||||
|
)),
|
||||||
|
field: "list".into(),
|
||||||
|
}),
|
||||||
)],
|
)],
|
||||||
final_else: Box::new(
|
final_else: Box::new(
|
||||||
// else-branch
|
// else-branch
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue