From f546d2e960195b284d85157da7b54aed4ed47fe6 Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Mon, 25 Apr 2022 07:09:20 +0000 Subject: [PATCH] fix(parser): equality check in argument Same as https://github.com/databricks/sjsonnet/issues/127 --- --- /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") --- a/crates/jrsonnet-parser/src/lib.rs +++ b/crates/jrsonnet-parser/src/lib.rs @@ -66,7 +66,7 @@ / { expr::ParamsDesc(Rc::new(Vec::new())) } pub rule arg(s: &ParserSettings) -> (Option, LocExpr) - = quiet! { name:(s:id() _ "=" _ {s})? expr:expr(s) {(name, expr)} } + = quiet! { name:(s:id() _ "=" !['='] _ {s})? expr:expr(s) {(name, expr)} } / expected!("") pub rule args(s: &ParserSettings) -> expr::ArgsDesc -- gitstuff