>From variables.c
The test against old_var's context
level is to disallow local copies of readonly global variables (since I
believe that this could be a security hole).
Can you please explain how that can be a security hole?
$ readonly wtf; fn () { local wtf; }; fn
bash: local: wtf: readonly variable
You can't even be sure that you can set *local* variables in a function.
This is a problem.
Most of the shells that support local variables (ksh93, mksh, zsh, dash...)
allow this. The only one I could find that doesn't is busybox.
---
xoxo iza