From 5fc1275a239da2a38429f148d8c505c893fb87e4 Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Sun, 05 Apr 2026 00:05:42 +0000 Subject: [PATCH] fix: prepare with extra named arguments --- --- 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::>>()?; + 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()? --- a/crates/jrsonnet-evaluator/src/function/prepared.rs +++ b/crates/jrsonnet-evaluator/src/function/prepared.rs @@ -51,7 +51,7 @@ bail!(TooManyArgsFunctionHas(params.len(), params)) } - let expected_defaults = params.len() - unnamed - named.len(); + let expected_defaults = (params.len() - unnamed).saturating_sub(named.len()); let mut ops = PreparedCall { named: Vec::with_capacity(named.len()), defaults: Vec::with_capacity(expected_defaults), -- gitstuff