summaryrefslogtreecommitdiffstats
path: root/Test
diff options
context:
space:
mode:
authorPhilippe Altherr <philippe.altherr@gmail.com>2026-06-08 15:01:06 -0700
committerBart Schaefer <schaefer@zsh.org>2026-06-08 15:01:06 -0700
commitb2629b4cf81f63471e6c52df407d8aca669da6ea (patch)
tree65b9ff4695d6b147f637d9c71cd30ae43a1e4fc3 /Test
parent54277: reference loops are detected at create time, remove loop tagging (diff)
downloadzsh-b2629b4cf81f63471e6c52df407d8aca669da6ea.tar
zsh-b2629b4cf81f63471e6c52df407d8aca669da6ea.tar.gz
zsh-b2629b4cf81f63471e6c52df407d8aca669da6ea.tar.bz2
zsh-b2629b4cf81f63471e6c52df407d8aca669da6ea.tar.lz
zsh-b2629b4cf81f63471e6c52df407d8aca669da6ea.tar.xz
zsh-b2629b4cf81f63471e6c52df407d8aca669da6ea.tar.zst
zsh-b2629b4cf81f63471e6c52df407d8aca669da6ea.zip
54278: Detect invalid variable names in reference initializers
Diffstat (limited to 'Test')
-rw-r--r--Test/K01nameref.ztst43
1 files changed, 28 insertions, 15 deletions
diff --git a/Test/K01nameref.ztst b/Test/K01nameref.ztst
index 0b4475827..77a01ea48 100644
--- a/Test/K01nameref.ztst
+++ b/Test/K01nameref.ztst
@@ -603,7 +603,7 @@ F:ksh93 does not implement this either
unset -n ptr1
typeset -n ptr1='not[2]good'
1:invalid nameref
-*?*invalid name reference: not\[2\]good
+*?*invalid variable name: not\[2\]good
unset -n ptr1
unset hash
@@ -1053,6 +1053,19 @@ F:Checking for a bug in zmodload that affects later tests
>
*?*reference ref*to local variable one
+ typeset -n ref=var
+ {
+ for ref in valid1 inv@lid valid2; do typeset -p ref; done
+ } always { TRY_BLOCK_ERROR=0 }
+ typeset -nr ref=var
+ {
+ for ref in valid3 valid4; do typeset -p ref; done
+ } always { TRY_BLOCK_ERROR=0 }
+1:for-loop variable is a reference, part 5, errors
+>typeset -n ref=valid1
+*?*invalid variable name: inv@lid
+*?*read-only reference: ref
+
unset -n ref
typeset -n ref
() {
@@ -1391,20 +1404,20 @@ F:Subscripting on 1 01 ! ? - should print first character but do not
>x
>typeset -un x=_
>x
-?edgeupper: invalid name reference: argv
-?edgeupper: invalid name reference: ARGC
-?edgelocal: invalid name reference: @
-?edgelocal: invalid name reference: @[1]
-?edgeupper: invalid name reference: @
-?edgelocal: invalid name reference: *
-?edgelocal: invalid name reference: *[1]
-?edgeupper: invalid name reference: *
-?edgelocal: invalid name reference: #
-?edgelocal: invalid name reference: #[1]
-?edgeupper: invalid name reference: #
-?edgeupper: invalid name reference: 0
-?edgeupper: invalid name reference: 1
-?edgeupper: invalid name reference: 01
+?edgeupper: invalid variable name: argv
+?edgeupper: invalid variable name: ARGC
+?edgelocal: invalid variable name: @
+?edgelocal: invalid variable name: @[1]
+?edgeupper: invalid variable name: @
+?edgelocal: invalid variable name: *
+?edgelocal: invalid variable name: *[1]
+?edgeupper: invalid variable name: *
+?edgelocal: invalid variable name: #
+?edgelocal: invalid variable name: #[1]
+?edgeupper: invalid variable name: #
+?edgeupper: invalid variable name: 0
+?edgeupper: invalid variable name: 1
+?edgeupper: invalid variable name: 01
edgelocal \$
edgelocal '$[1]'