diff --git a/nac3core/src/toplevel/composer.rs b/nac3core/src/toplevel/composer.rs index b0afaf2..a8faf13 100644 --- a/nac3core/src/toplevel/composer.rs +++ b/nac3core/src/toplevel/composer.rs @@ -195,7 +195,7 @@ impl TopLevelComposer { signature: primitives.1.add_ty(TypeEnum::TFunc(RefCell::new(FunSignature { args: vec![FuncArg { name: "_".into(), ty: num_ty.0, default_value: None }], ret: float, - vars: var_map, + vars: var_map.clone(), }))), var_id: Default::default(), instance_to_symbol: Default::default(), @@ -398,7 +398,7 @@ impl TopLevelComposer { signature: primitives.1.add_ty(TypeEnum::TFunc(RefCell::new(FunSignature { args: vec![FuncArg { name: "_".into(), ty: num_ty.0, default_value: None }], ret: primitives.0.bool, - vars: Default::default(), + vars: var_map, }))), var_id: Default::default(), instance_to_symbol: Default::default(), @@ -1066,7 +1066,7 @@ impl TopLevelComposer { and names thould not be the same as the keywords" .into()); } - + let arg_with_default: Vec<(&ast::Located>, Option<&ast::Expr>)> = args .args .iter() @@ -1307,7 +1307,7 @@ impl TopLevelComposer { } let mut result = Vec::new(); - + let arg_with_default: Vec<(&ast::Located>, Option<&ast::Expr>)> = args .args .iter() @@ -1319,7 +1319,7 @@ impl TopLevelComposer { .map(|x| -> Option<&ast::Expr> { Some(x) }) .chain(std::iter::repeat(None)) ).collect_vec(); - + for (x, default) in arg_with_default.into_iter().rev() { let name = x.node.arg; if name != zelf {