From 11555dda9997210476638b1a92fd2f018f496859 Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Sun, 06 Aug 2023 17:01:51 +0000 Subject: [PATCH] fix: forward null-coaelse --- --- a/cmds/jrsonnet/Cargo.toml +++ b/cmds/jrsonnet/Cargo.toml @@ -23,7 +23,7 @@ # Bigint type exp-bigint = ["jrsonnet-evaluator/exp-bigint", "jrsonnet-cli/exp-bigint"] # obj?.field, obj?.['field'] -exp-null-coaelse = ["jrsonnet-evaluator/exp-null-coaelse", "jrsonnet-parser/exp-null-coaelse"] +exp-null-coaelse = ["jrsonnet-evaluator/exp-null-coaelse", "jrsonnet-parser/exp-null-coaelse", "jrsonnet-cli/exp-null-coaelse"] # --exp-apply exp-apply = [] --- a/crates/jrsonnet-cli/Cargo.toml +++ b/crates/jrsonnet-cli/Cargo.toml @@ -16,6 +16,10 @@ "jrsonnet-evaluator/exp-bigint", "jrsonnet-stdlib/exp-bigint", ] +exp-null-coaelse = [ + "jrsonnet-evaluator/exp-null-coaelse", + "jrsonnet-stdlib/exp-null-coaelse", +] legacy-this-file = ["jrsonnet-stdlib/legacy-this-file"] [dependencies] --- a/crates/jrsonnet-evaluator/src/evaluate/mod.rs +++ b/crates/jrsonnet-evaluator/src/evaluate/mod.rs @@ -461,6 +461,10 @@ )) }; let Some(super_obj) = ctx.super_obj() else { + #[cfg(feature = "exp-null-coaelse")] + if *null_coaelse { + return Ok(Val::Null); + } throw!(NoSuperFound) }; let this = ctx --- a/crates/jrsonnet-stdlib/Cargo.toml +++ b/crates/jrsonnet-stdlib/Cargo.toml @@ -19,6 +19,8 @@ # Bigint type exp-bigint = ["num-bigint", "jrsonnet-evaluator/exp-bigint"] +exp-null-coaelse = ["jrsonnet-parser/exp-null-coaelse", "jrsonnet-evaluator/exp-null-coaelse"] + [dependencies] jrsonnet-evaluator.workspace = true jrsonnet-macros.workspace = true -- gitstuff