finish eval referencing issues, update func tests
This commit is contained in:
parent
4712d5466c
commit
a6abc993a5
3 changed files with 17 additions and 19 deletions
|
|
@ -152,7 +152,7 @@ pub fn func_call(
|
|||
Operation::Internal(f) => Ok((f)(n_args, vars, funcs)),
|
||||
Operation::External(f) => {
|
||||
for n in 0..f.arg_syms.len() {
|
||||
vars.borrow().insert(
|
||||
vars.borrow_mut().insert(
|
||||
f.arg_syms[n].clone(),
|
||||
Rc::new(list_idx(n_args.clone(), n as u128))
|
||||
);
|
||||
|
|
@ -160,11 +160,11 @@ pub fn func_call(
|
|||
|
||||
let result = eval(f.ast.clone(), vars.clone(), funcs, called_func.loose_syms);
|
||||
for n in 0..f.arg_syms.len() {
|
||||
vars.borrow().remove(&f.arg_syms[n].clone());
|
||||
vars.borrow_mut().remove(&f.arg_syms[n].clone());
|
||||
}
|
||||
|
||||
match result {
|
||||
Ok(r) => Ok(r.borrow().car),
|
||||
Ok(r) => Ok(r.borrow().clone().car),
|
||||
Err(e) => Err(e)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue