diff options
| author | Philippe Altherr <philippe.altherr@gmail.com> | 2025-10-26 14:06:57 -0700 |
|---|---|---|
| committer | Bart Schaefer <schaefer@zsh.org> | 2025-10-26 14:06:57 -0700 |
| commit | 1e0d2b0d7e8ab7298e67f921a156697fcc433d06 (patch) | |
| tree | 40d51f08a80d19901b3b24ba41a6c5252ee5c22b /Test/K01nameref.ztst | |
| parent | 53732: avoid tail-call exec in always block (diff) | |
| download | zsh-1e0d2b0d7e8ab7298e67f921a156697fcc433d06.tar zsh-1e0d2b0d7e8ab7298e67f921a156697fcc433d06.tar.gz zsh-1e0d2b0d7e8ab7298e67f921a156697fcc433d06.tar.bz2 zsh-1e0d2b0d7e8ab7298e67f921a156697fcc433d06.tar.lz zsh-1e0d2b0d7e8ab7298e67f921a156697fcc433d06.tar.xz zsh-1e0d2b0d7e8ab7298e67f921a156697fcc433d06.tar.zst zsh-1e0d2b0d7e8ab7298e67f921a156697fcc433d06.zip | |
53781: fix loading of autoload variable via a reference
Diffstat (limited to 'Test/K01nameref.ztst')
| -rw-r--r-- | Test/K01nameref.ztst | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/Test/K01nameref.ztst b/Test/K01nameref.ztst index 54f0aaf68..52aed0af0 100644 --- a/Test/K01nameref.ztst +++ b/Test/K01nameref.ztst @@ -1179,4 +1179,62 @@ F:previously this could create an infinite recursion and crash >typeset PS1=zz *?* + zmodload -u zsh/random + echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*} + typeset -n ref=SRANDOM + echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*} + echo v=${ref/<->/integer} + zmodload -u zsh/random + echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*} + echo v=${ref/<->/integer} +0:Referring and dereferring an autoload variable loads it (direct) +>z=SRANDOM (zsh/random) +>z= +>v=integer +>z=SRANDOM (zsh/random) +>v=integer + + zmodload -u zsh/random + echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*} + typeset -n ref=SRANDOM[1,20] + echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*} + echo v=${ref/<->/integer} + zmodload -u zsh/random + echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*} + echo v=${ref/<->/integer} +0:Referring and dereferring an autoload variable loads it (subscript) +>z=SRANDOM (zsh/random) +>z= +>v=integer +>z=SRANDOM (zsh/random) +>v=integer + + typeset -n ref=SRANDOM + echo v=${ref/<->/integer} + zmodload -u zsh/random + echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*} + typeset -h SRANDOM=local-variable + echo v=${ref/<->/integer} + echo NOT REACHED +1:Dereferring an autoload variable fails to load it if its hidden (direct) +>v=integer +>z=SRANDOM (zsh/random) +?(eval):6: Can't add module parameter `SRANDOM': local parameter exists +?(eval):zsh/random:6: error when adding parameter `SRANDOM' +?(eval):6: autoloading module zsh/random failed to define parameter: SRANDOM + + typeset -n ref=SRANDOM[1,20] + echo v=${ref/<->/integer} + zmodload -u zsh/random + echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*} + typeset -h SRANDOM=local-variable + echo v=${ref/<->/integer} + echo NOT REACHED +1:Dereferring an autoload variable fails to load it if its hidden (subscript) +>v=integer +>z=SRANDOM (zsh/random) +?(eval):6: Can't add module parameter `SRANDOM': local parameter exists +?(eval):zsh/random:6: error when adding parameter `SRANDOM' +?(eval):6: autoloading module zsh/random failed to define parameter: SRANDOM + %clean |
