difftreelog
fix prepare with extra named arguments
in: master
2 files changed
crates/jrsonnet-evaluator/src/evaluate/mod.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/evaluate/mod.rs
+++ b/crates/jrsonnet-evaluator/src/evaluate/mod.rs
@@ -431,7 +431,6 @@
Ok(match value {
Val::Func(f) => {
let name = f.name();
- let prepare = PreparedFuncVal::new(f, args.unnamed.len(), &args.names)?;
let unnamed = args
.unnamed
.iter()
@@ -444,6 +443,8 @@
.cloned()
.map(|un| evaluate_thunk(ctx.clone(), un, tailstrict))
.collect::<Result<Vec<_>>>()?;
+ let prepare = PreparedFuncVal::new(f, args.unnamed.len(), &args.names)
+ .with_description_src(loc, || format!("function <{name}> call"))?;
let body = || prepare.call(loc, &unnamed, &named);
if tailstrict {
body()?
crates/jrsonnet-evaluator/src/function/prepared.rsdiffbeforeafterboth51 bail!(TooManyArgsFunctionHas(params.len(), params))51 bail!(TooManyArgsFunctionHas(params.len(), params))52 }52 }535354 let expected_defaults = params.len() - unnamed - named.len();54 let expected_defaults = (params.len() - unnamed).saturating_sub(named.len());55 let mut ops = PreparedCall {55 let mut ops = PreparedCall {56 named: Vec::with_capacity(named.len()),56 named: Vec::with_capacity(named.len()),57 defaults: Vec::with_capacity(expected_defaults),57 defaults: Vec::with_capacity(expected_defaults),