Found out that the declare statement does not properly set all variable
flags before assign values:
unset arr
declare -i -a arr=(1 2 3)
declare -p arr
declare -ai arr=([0]="1" [1]="2" [2]="3")
this is ok
declare +i -a arr=(hello world)
declare -p arr
declare -a arr=([0]="0" [1]="0")
this is not ok as arr assignment was handled as integers
Same issue with associative array
unset assoc
declare -i -A assoc=([foo]=1 [bar]=2 [baz]=3
declare -p assoc
declare -Ai assoc=([foo]="1" [bar]="2" [baz]="3" )
declare +i -A assoc=([yeet]=hello)
declare -p assoc
declare -A assoc=([yeet]="0" )
--
Léa Gris