git.delta.rocks / jrsonnet / refs/commits / 57e587bf221b

difftreelog

refactor prepared builtin parsing is infallible

qmvptnvvYaroslav Bolyukin2026-03-21parent: #cbdee48.patch.diff
in: master

2 files changed

modifiedcrates/jrsonnet-evaluator/src/function/mod.rsdiffbeforeafterboth
208 _tailstrict: bool,208 _tailstrict: bool,
209 ) -> Result<Val> {209 ) -> Result<Val> {
210 match self {210 match self {
211 FuncVal::Id => {
212 let args = parse_prepared_builtin_call(prepared, ID.params(), unnamed, named)?;
213 ID.call(loc, &args)
214 }
215 FuncVal::Normal(func) => {211 FuncVal::Normal(func) => {
216 let body_ctx = parse_prepared_function_call(212 let body_ctx = parse_prepared_function_call(
217 func.ctx.clone(),213 func.ctx.clone(),
223 evaluate(body_ctx, &func.body)219 evaluate(body_ctx, &func.body)
224 }220 }
225 FuncVal::Thunk(t) => t.evaluate(),221 FuncVal::Thunk(t) => t.evaluate(),
222 FuncVal::Id => {
223 let args = parse_prepared_builtin_call(prepared, ID.params(), unnamed, named);
224 ID.call(loc, &args)
225 }
226 FuncVal::StaticBuiltin(b) => {226 FuncVal::StaticBuiltin(b) => {
227 let args = parse_prepared_builtin_call(prepared, b.params(), unnamed, named)?;227 let args = parse_prepared_builtin_call(prepared, b.params(), unnamed, named);
228 b.call(loc, &args)228 b.call(loc, &args)
229 }229 }
230 FuncVal::Builtin(b) => {230 FuncVal::Builtin(b) => {
231 let args = parse_prepared_builtin_call(prepared, b.params(), unnamed, named)?;231 let args = parse_prepared_builtin_call(prepared, b.params(), unnamed, named);
232 b.call(loc, &args)232 b.call(loc, &args)
233 }233 }
234 }234 }
modifiedcrates/jrsonnet-evaluator/src/function/prepared.rsdiffbeforeafterboth
--- a/crates/jrsonnet-evaluator/src/function/prepared.rs
+++ b/crates/jrsonnet-evaluator/src/function/prepared.rs
@@ -180,7 +180,7 @@
 	params: FunctionSignature,
 	unnamed: &[Thunk<Val>],
 	named: &[Thunk<Val>],
-) -> Result<Vec<Option<Thunk<Val>>>> {
+) -> Vec<Option<Thunk<Val>>> {
 	let mut passed_args = vec![None; params.len()];
 
 	for (param_idx, unnamed) in unnamed.iter().enumerate() {
@@ -191,5 +191,5 @@
 		passed_args[param_idx] = Some(named[arg_idx].clone());
 	}
 
-	Ok(passed_args)
+	passed_args
 }