git.delta.rocks / jrsonnet / refs/commits / c7e1571e1d28

difftreelog

fix std.native should return null if not found

Yaroslav Bolyukin2022-04-22parent: #94fa86f.patch.diff
in: master

2 files changed

modifiedcrates/jrsonnet-evaluator/src/builtin/mod.rsdiffbeforeafterboth
375}375}
376376
377#[jrsonnet_macros::builtin]377#[jrsonnet_macros::builtin]
378fn builtin_native(s: State, name: IStr) -> Result<FuncVal> {378fn builtin_native(s: State, name: IStr) -> Result<Any> {
379 Ok(s.settings()379 Ok(Any(s
380 .settings()
380 .ext_natives381 .ext_natives
381 .get(&name)382 .get(&name)
382 .cloned()383 .cloned()
383 .map(|v| FuncVal::Builtin(v.clone()))384 .map(|v| Val::Func(FuncVal::Builtin(v.clone())))
384 .ok_or(UndefinedExternalFunction(name))?)385 .unwrap_or(Val::Null)))
385}386}
386387
387#[jrsonnet_macros::builtin]388#[jrsonnet_macros::builtin]
modifiedcrates/jrsonnet-evaluator/src/error.rsdiffbeforeafterboth
--- a/crates/jrsonnet-evaluator/src/error.rs
+++ b/crates/jrsonnet-evaluator/src/error.rs
@@ -63,8 +63,6 @@
 
 	#[error("external variable is not defined: {0}")]
 	UndefinedExternalVariable(IStr),
-	#[error("native is not defined: {0}")]
-	UndefinedExternalFunction(IStr),
 
 	#[error("field name should be string, got {0}")]
 	FieldMustBeStringGot(ValType),