From 01c97b7f4191a37b0ffa7f65f46ab4adbb02c3f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20S=C3=A1nchez=20Mu=C3=B1oz?= Date: Sun, 3 Nov 2024 16:40:22 +0100 Subject: [PATCH] fix(eval): check object asserts in `std.prune` --- rsjsonnet-lang/src/program/eval/stdlib.rs | 2 ++ ui-tests/fail/prune/object_assert_failed.jsonnet | 1 + .../fail/prune/object_assert_failed.jsonnet.stderr | 12 ++++++++++++ 3 files changed, 15 insertions(+) create mode 100644 ui-tests/fail/prune/object_assert_failed.jsonnet create mode 100644 ui-tests/fail/prune/object_assert_failed.jsonnet.stderr diff --git a/rsjsonnet-lang/src/program/eval/stdlib.rs b/rsjsonnet-lang/src/program/eval/stdlib.rs index d3fa32c..c4c553f 100644 --- a/rsjsonnet-lang/src/program/eval/stdlib.rs +++ b/rsjsonnet-lang/src/program/eval/stdlib.rs @@ -149,6 +149,8 @@ impl<'p> Evaluator<'_, 'p> { self.state_stack.push(State::StdPruneValue); self.state_stack.push(State::DoThunk(field_thunk)); } + + self.check_object_asserts(&object); } value => { self.value_stack.push(value); diff --git a/ui-tests/fail/prune/object_assert_failed.jsonnet b/ui-tests/fail/prune/object_assert_failed.jsonnet new file mode 100644 index 0000000..944bed9 --- /dev/null +++ b/ui-tests/fail/prune/object_assert_failed.jsonnet @@ -0,0 +1 @@ +std.prune({ assert false }) diff --git a/ui-tests/fail/prune/object_assert_failed.jsonnet.stderr b/ui-tests/fail/prune/object_assert_failed.jsonnet.stderr new file mode 100644 index 0000000..d683c8f --- /dev/null +++ b/ui-tests/fail/prune/object_assert_failed.jsonnet.stderr @@ -0,0 +1,12 @@ +error: assertion failed + --> object_assert_failed.jsonnet:1:13 + | +1 | std.prune({ assert false }) + | ^^^^^^^^^^^^ +note: while evaluating call to `prune` + --> object_assert_failed.jsonnet:1:1 + | +1 | std.prune({ assert false }) + | --------------------------- +note: during top-level value evaluation +