]> granicus.if.org Git - jq/commitdiff
Hrm. Update operators (//=, +=, etc.) aren't very well thought out.
authorStephen Dolan <mu@netsoc.tcd.ie>
Sun, 16 Sep 2012 10:07:36 +0000 (11:07 +0100)
committerStephen Dolan <mu@netsoc.tcd.ie>
Sun, 16 Sep 2012 10:07:36 +0000 (11:07 +0100)
In complex cases, their behaviour is kinda weird. Here's a failing
test for what I think they should do.

c/testdata

index e17f2bb72ea43dd465aa8be2e3d9c237e0848698..a905d2afdaefd2800e7d97d1183cd122a95f5b07 100644 (file)
@@ -312,9 +312,10 @@ def inc(x): x |= .+1; inc(.[].a)
 [{"foo":[1,2], "bar": 42}, {"foo":[1], "bar": null}, {"foo":[null,false,3], "bar": 18}, {"foo":[], "bar":42}, {"foo": [null,false,null], "bar": 41}]
 [[1,2], [1], [3], [42], [41]]
 
-.[] //= 42
-["hello",true,false,[false],null]
-["hello",true,42,[false],42]
+# FIXME: behaviour of update operators
+# .[] //= .[0]
+# ["hello",true,false,[false],null]
+# ["hello",true,"hello",[false],"hello"]
 
 .[] | [.[0] and .[1], .[0] or .[1]]
 [[true,[]], [false,1], [42,null], [null,false]]