Since bash 5.2, local/typeset/declare -p without argument no longer outputs "declare -- -" when local - is used.
But local/typeset/declare -p - still outputs "declare -- -" instead of "local -". bash-5.1$ a () { local -; local -p; declare -p -; typeset -p -; local -p - ;} bash-5.1$ a declare -- - declare -- - declare -- - declare -- - bash-5.2$ a () { local -; local -p; declare -p -; typeset -p -; local -p - ;} bash-5.2$ a local - declare -- - declare -- - declare -- -