difftreelog
refactor prepared builtin parsing is infallible
in: master
2 files changed
crates/jrsonnet-evaluator/src/function/mod.rsdiffbeforeafterboth208 _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 }crates/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
}