You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Some conditions lead any(generator;condition) to wrong result.
Use any() for same array input lead to right result To Reproduce
jq -n '{"a":"1","b":"2","c":"3"}|any(keys[]|tostring?;true)' => false
jq -n '{"a":"1","b":"2","c":"3"}|any(keys[]|tostring;true)' => true
jq -n '{"a":"1","b":"2"}|any(keys[]|tostring?;true)' => true
jq -n '{"a":"1","b":"2","c":"3"}|[keys[]|tostring?|true]|any' => true Expected behavior Environment (please complete the following information):
uname -all
=>
Linux LAB-hub1 4.15.0-23-generic #25~16.04.1-Ubuntu SMP Fri May 25 04:50:20 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
jq --version
=>
jq-1.5-1-a5b5cbe
The text was updated successfully, but these errors were encountered:
I first thought the behavior of has been fixed by #1845 (41b8593), but the examples yield multiple values unexpectedly. But this is the instance of the issue #1859, so closing.
Close#1885, #2140, #2011, #2220, #2485, #2073
Rename the FORK_OPT opcode to TRY_BEGIN, add a TRY_END opcode, and wrap
errors when raising through a TRY_END so that they will not be caught by
the matching TRY_BEGIN.
Now a `try exp catch handler` expression generates code like:
TRY_BEGIN handler
<exp>
TRY_END
JUMP past_handler
handler: <handler>
past_handler:
...
On backtrack through TRY_BEGIN it just backtracks.
If anything past the whole thing raises when <exp> produced a value,
then the TRY_END will catch the error, wrap it in another, and
backtrack. The TRY_BEGIN will see a wrapped error and then it will
unwrap and re-raise the error.
If <exp> raises, then TRY_BEGIN will catch the error and jump to the
handler, but the TRY_BEGIN will not stack_save() in that case, so on
raise/backtrack the TRY_BEGIN will not execute again (nor will the
TRY_END).
Describe the bug
Some conditions lead any(generator;condition) to wrong result.
Use any() for same array input lead to right result
To Reproduce
jq -n '{"a":"1","b":"2","c":"3"}|any(keys[]|tostring?;true)' => false
jq -n '{"a":"1","b":"2","c":"3"}|any(keys[]|tostring;true)' => true
jq -n '{"a":"1","b":"2"}|any(keys[]|tostring?;true)' => true
jq -n '{"a":"1","b":"2","c":"3"}|[keys[]|tostring?|true]|any' => true
Expected behavior
Environment (please complete the following information):
uname -all
=>
Linux LAB-hub1 4.15.0-23-generic #25~16.04.1-Ubuntu SMP Fri May 25 04:50:20 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
jq --version
=>
jq-1.5-1-a5b5cbe
The text was updated successfully, but these errors were encountered: