if test <expr> && test <expr2> incorrectly evaluated
When chaining multiple test
s into a single line if
, ion seems to only validate the first one, disregarding any &&
s or and
s
See the following script and its output:
#!/usr/bin/env ion
fn bad arg
if test $arg -ge 1 && test $arg -le 9
echo "[bad ] 1 <= $arg <= 9"
end
end
fn good arg
if test $arg -ge 1
if test $arg -le 9
echo "[good] 1 <= $arg <= 9"
end
end
end
bad 0
good 0
bad 1
good 1
bad 7
good 7
bad 9
good 9
bad 10
good 10
bad 17
good 17
$ ion demo.ion
[bad ] 1 <= 1 <= 9
[good] 1 <= 1 <= 9
[bad ] 1 <= 7 <= 9
[good] 1 <= 7 <= 9
[bad ] 1 <= 9 <= 9
[good] 1 <= 9 <= 9
[bad ] 1 <= 10 <= 9
[bad ] 1 <= 17 <= 9
ion version (running on Arch Linux):
$ ion --version
ion 1.0.0-alpha (x86_64-unknown-linux-gnu)
rev 5c57b9354ccbc57a500e4c223a1c877c39435eae