Also seems like after an invalid nameref assignment is encountered, declare
works oddly on remaining assignments that are part of the same command:

$ *unset* -n bad good
$ declare -n bad+=. good=var
bash: declare: `.': not a valid identifier
$ *declare* -p good
declare -- good="var"    # created, but not a nameref

$ *unset* -n bad good
$ declare -n good=var; declare -n bad+=. good=foo
bash: declare: `.': not a valid identifier
$ *declare* -p good
declare -n good="var"    # not modified

$ *unset* -n bad good
$ declare -n good=var; declare -n bad+=. good=var
bash: declare: `.': not a valid identifier
bash: var: nameref variable self references not allowed   # ??

​

Reply via email to