diff --git a/src/eval.rs b/src/eval.rs index 07503fbf..12e24e52 100644 --- a/src/eval.rs +++ b/src/eval.rs @@ -444,12 +444,9 @@ impl Rt>> { match self.get(cx) { Function::ByteFn(f) => { root!(f, cx); - crate::bytecode::call(f, args, name, env, cx) - .map_err(|e| e.add_trace(name, args)) - } - Function::SubrFn(f) => { - (*f).call(args.len(), args, env, cx).map_err(|e| add_trace(e, name, args)) + crate::bytecode::call(f, args, name, env, cx).map_err(|e| e.add_trace(name, args)) } + Function::SubrFn(f) => (*f).call(args, env, cx).map_err(|e| add_trace(e, name, args)), Function::Cons(_) => { crate::interpreter::call_closure(self.try_into().unwrap(), args, name, env, cx) .map_err(|e| e.add_trace(name, args))