summaryrefslogtreecommitdiff
path: root/Src/params.c
diff options
context:
space:
mode:
authorBart Schaefer <schaefer@zsh.org>2024-03-05 21:13:33 -0800
committerBart Schaefer <schaefer@zsh.org>2024-03-05 21:13:33 -0800
commit330821de01ebf1115079222f719c9a28cc26ff57 (patch)
treebe31fd1e4672f462e2c3f054e5b3c1fc65fbd566 /Src/params.c
parentb56250e9b99d9cd0e70261ff6e7f6f33583c1b04 (diff)
downloadzsh-330821de01ebf1115079222f719c9a28cc26ff57.tar.gz
zsh-330821de01ebf1115079222f719c9a28cc26ff57.zip
52692: local typeset of the name of a named reference hides the reference
Diffstat (limited to 'Src/params.c')
-rw-r--r--Src/params.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Src/params.c b/Src/params.c
index 4bcf41c22..973df3fe5 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -1034,7 +1034,8 @@ createparam(char *name, int flags)
}
if (oldpm && !(flags & PM_NAMEREF) &&
- (!(oldpm->node.flags & PM_RO_BY_DESIGN) || !(flags & PM_LOCAL)) &&
+ (oldpm->level == locallevel ?
+ !(oldpm->node.flags & PM_RO_BY_DESIGN) : !(flags & PM_LOCAL)) &&
(oldpm->node.flags & PM_NAMEREF) &&
(oldpm = upscope(oldpm, oldpm->base))) {
Param lastpm;