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

difftreelog

fix(parser) equality check in argument

Yaroslav Bolyukin2022-04-25parent: #456a1bb.patch.diff
in: master
Same as https://github.com/databricks/sjsonnet/issues/127

2 files changed

addedcrates/jrsonnet-evaluator/tests/suite/sjsonnet_issue_127.jsonnetdiffbeforeafterboth
--- /dev/null
+++ b/crates/jrsonnet-evaluator/tests/suite/sjsonnet_issue_127.jsonnet
@@ -0,0 +1,6 @@
+local myFunc = function(a)
+  if (a) then "a" else "b";
+
+local b = "aaa";
+
+std.assertEqual(myFunc(b == [] || b == ['e']), "b")
modifiedcrates/jrsonnet-parser/src/lib.rsdiffbeforeafterboth
66 / { expr::ParamsDesc(Rc::new(Vec::new())) }66 / { expr::ParamsDesc(Rc::new(Vec::new())) }
6767
68 pub rule arg(s: &ParserSettings) -> (Option<IStr>, LocExpr)68 pub rule arg(s: &ParserSettings) -> (Option<IStr>, LocExpr)
69 = quiet! { name:(s:id() _ "=" _ {s})? expr:expr(s) {(name, expr)} }69 = quiet! { name:(s:id() _ "=" !['='] _ {s})? expr:expr(s) {(name, expr)} }
70 / expected!("<argument>")70 / expected!("<argument>")
7171
72 pub rule args(s: &ParserSettings) -> expr::ArgsDesc72 pub rule args(s: &ParserSettings) -> expr::ArgsDesc