Allow var bindings in path expressions (#1347)

The expression in a variable binding is not and must not be seen as
being part of a path expression in which the variable binding appears.
This commit is contained in:
Nicolas Williams committed 2017-02-21 18:11:35 -06:00
1 parent 02bad4b298
commit 8cde328007
2 files changed
+7 -1

No files matched your search

+1 -1
View File
@@ -893,7 +893,7 @@ block gen_destructure(block var, block matcher, block body) {
if (body.first && body.first->op == TOP)
top = inst_block(block_take(&body));
return BLOCK(top, gen_op_simple(DUP), var, bind_matcher(matcher, body));
return BLOCK(top, gen_op_simple(DUP), gen_subexp(var), gen_op_simple(POP), bind_matcher(matcher, body));
}
// Like gen_var_binding(), but bind `break`'s wildcard unbound variable
+6
View File
@@ -1356,3 +1356,9 @@ IN(range(5;20); range(10))
null
true
# Regression test for #1347
(.a as $x | .b) = "b"
{"a":null,"b":null}
{"a":null,"b":"b"}