summaryrefslogtreecommitdiffstats
path: root/Test
diff options
context:
space:
mode:
authorPhilippe Altherr <philippe.altherr@gmail.com>2025-10-26 17:31:02 -0700
committerBart Schaefer <schaefer@zsh.org>2025-10-26 17:31:02 -0700
commitb66a2e2524ac0dc1794b8675292986056c5339a8 (patch)
tree00e874d1c1a4dade84c513e71f6aae8d797d241d /Test
parent53790: corrections to reference loop detection (diff)
downloadzsh-b66a2e2524ac0dc1794b8675292986056c5339a8.tar
zsh-b66a2e2524ac0dc1794b8675292986056c5339a8.tar.gz
zsh-b66a2e2524ac0dc1794b8675292986056c5339a8.tar.bz2
zsh-b66a2e2524ac0dc1794b8675292986056c5339a8.tar.lz
zsh-b66a2e2524ac0dc1794b8675292986056c5339a8.tar.xz
zsh-b66a2e2524ac0dc1794b8675292986056c5339a8.tar.zst
zsh-b66a2e2524ac0dc1794b8675292986056c5339a8.zip
53798: report reference loops created when a reference goes out of scope
Diffstat (limited to 'Test')
-rw-r--r--Test/K01nameref.ztst39
1 files changed, 39 insertions, 0 deletions
diff --git a/Test/K01nameref.ztst b/Test/K01nameref.ztst
index bc9054093..460bc7260 100644
--- a/Test/K01nameref.ztst
+++ b/Test/K01nameref.ztst
@@ -1315,4 +1315,43 @@ F:previously this could create an infinite recursion and crash
>ref1=var2
>ref2=var2
+ typeset -n ref1
+ typeset -n ref2=ref1;
+ () {
+ typeset ref2=foo
+ ref1=ref2
+ }
+ echo reached
+ echo $ref1
+ echo NOT REACHED
+1:expansion of incidental reference loop triggers error
+>reached
+*?*: ref1: invalid self reference
+
+ typeset -n ref1
+ typeset -n ref2=ref1;
+ () {
+ typeset ref2=foo
+ ref1=ref2
+ }
+ echo reached
+ ref1=foo
+ echo NOT REACHED
+1:assignment to incidental reference loop triggers error
+>reached
+*?*: ref1: invalid self reference
+
+ typeset -n ref1
+ typeset -n ref2=ref1;
+ () {
+ typeset ref2=foo
+ ref1=ref2
+ }
+ echo reached
+ typeset -n ref3=ref1
+ echo NOT REACHED
+1:reference to incidental reference loop triggers error
+>reached
+*?*: ref1: invalid self reference
+
%clean