HAPPY CLIPPY IS HAPPY!!!!

This commit is contained in:
Emmanuel BENOîT 2023-01-02 21:44:02 +01:00
parent 36c842d7ab
commit db781ed00f
2 changed files with 8 additions and 8 deletions

View file

@ -22,13 +22,13 @@ pub(crate) struct Function {
impl Function {
pub(crate) fn new(
name: Option<&Token>,
params: &Vec<Token>,
body: &Vec<ast::StmtNode>,
params: &[Token],
body: &[ast::StmtNode],
) -> Rc<RefCell<Self>> {
let fun = Self {
name: name.map(|t| t.clone()),
params: params.clone(),
body: body.clone(),
name: name.cloned(),
params: params.to_owned(),
body: body.to_owned(),
};
Rc::new(RefCell::new(fun))
}
@ -48,7 +48,7 @@ impl Callable for Function {
let param_env = Environment::create_child(environment);
for (arg, value) in izip!(self.params.iter(), arguments.into_iter()) {
// FIXME: duplicate parameter names should be detected in the parser
param_env.borrow_mut().define(&arg, Some(value))?;
param_env.borrow_mut().define(arg, Some(value))?;
}
let child = Environment::create_child(&param_env);

View file

@ -157,8 +157,8 @@ impl ast::StmtNode {
&self,
environment: &EnvironmentRef,
name: &Token,
params: &Vec<Token>,
body: &Vec<ast::StmtNode>,
params: &[Token],
body: &[ast::StmtNode],
) -> InterpreterResult {
let fun = Function::new(Some(name), params, body);
environment