--- /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