git.delta.rocks / jrsonnet / refs/commits / 30703de2f9b2

difftreelog

test std-param-names should work with exp-preserve-order

tnqwszvvYaroslav Bolyukin2026-05-06parent: #ecde57a.patch.diff
in: master

4 files changed

modifiedcrates/jrsonnet-evaluator/src/val.rsdiffbeforeafterboth
--- a/crates/jrsonnet-evaluator/src/val.rs
+++ b/crates/jrsonnet-evaluator/src/val.rs
@@ -616,6 +616,11 @@
 		Self::Obj(value)
 	}
 }
+impl From<bool> for Val {
+	fn from(value: bool) -> Self {
+		Self::Bool(value)
+	}
+}
 
 const fn is_function_like(val: &Val) -> bool {
 	matches!(val, Val::Func(_))
modifiedtests/Cargo.tomldiffbeforeafterboth
66
7[features]7[features]
8default = ["ir-parser"]8default = ["ir-parser"]
9experimental = ["exp-destruct", "exp-null-coaelse", "exp-preserve-order"]
9ir-parser = ["jrsonnet-evaluator/ir-parser"]10ir-parser = ["jrsonnet-evaluator/ir-parser"]
10peg-parser = ["jrsonnet-evaluator/peg-parser"]11peg-parser = ["jrsonnet-evaluator/peg-parser"]
11exp-destruct = ["jrsonnet-evaluator/exp-destruct"]12exp-destruct = ["jrsonnet-evaluator/exp-destruct"]
12exp-null-coaelse = ["jrsonnet-evaluator/exp-null-coaelse"]13exp-null-coaelse = ["jrsonnet-evaluator/exp-null-coaelse"]
14exp-preserve-order = ["jrsonnet-stdlib/exp-preserve-order"]
1315
14[lints]16[lints]
15workspace = true17workspace = true
modifiedtests/suite/std_param_names.jsonnetdiffbeforeafterboth
--- a/tests/suite/std_param_names.jsonnet
+++ b/tests/suite/std_param_names.jsonnet
@@ -170,7 +170,26 @@
     deg2rad: ['x'],
     rad2deg: ['x'],
     hypot: ['x', 'y'],
-};
+} + (if test.expPreserveOrder then {
+    manifestIni+: ['preserve_order'],
+    manifestJson+: ['preserve_order'],
+    manifestJsonEx+: ['preserve_order'],
+    manifestJsonMinified+: ['preserve_order'],
+    manifestPython+: ['preserve_order'],
+    manifestPythonVars+: ['preserve_order'],
+    manifestToml+: ['preserve_order'],
+    manifestTomlEx+: ['preserve_order'],
+    manifestYamlDoc+: ['preserve_order'],
+    manifestYamlStream+: ['preserve_order'],
+    objectFields+: ['preserve_order'],
+    objectFieldsAll+: ['preserve_order'],
+    objectFieldsEx+: ['preserve_order'],
+    objectKeysValues+: ['preserve_order'],
+    objectKeysValuesAll+: ['preserve_order'],
+    objectValues+: ['preserve_order'],
+    objectValuesAll+: ['preserve_order'],
+    prune+: ['preserve_order'],
+} else {});
 
 std.all(std.map(function(key) assertNames(key, names[key]), std.objectFields(names)))
 && std.all([
modifiedtests/tests/common.rsdiffbeforeafterboth
--- a/tests/tests/common.rs
+++ b/tests/tests/common.rs
@@ -71,6 +71,8 @@
 		let mut bobj = ObjValueBuilder::new();
 		bobj.method("assertThrow", assert_throw {});
 		bobj.method("paramNames", param_names {});
+		bobj.field("expPreserveOrder")
+			.value(cfg!(feature = "exp-preserve-order"));
 
 		builder.bind("test", Thunk::evaluated(Val::Obj(bobj.build())));
 	}