diff options
author | Peter Stephenson <pws@zsh.org> | 2017-01-25 09:35:30 +0000 |
---|---|---|
committer | Peter Stephenson <pws@zsh.org> | 2017-01-25 09:35:30 +0000 |
commit | b3637caa90e30a630fb7e677c54d5f0a1b27985d (patch) | |
tree | 6c3cb661e0fe6c22e7105254ea02b3e62661b3b9 | |
parent | 2854a67e09748a2e6f4e1d8a73bc463bad4cbd4e (diff) | |
download | zsh-b3637caa90e30a630fb7e677c54d5f0a1b27985d.tar.gz zsh-b3637caa90e30a630fb7e677c54d5f0a1b27985d.tar.xz zsh-b3637caa90e30a630fb7e677c54d5f0a1b27985d.zip |
40413: WARN_NESTED_VAR subscripted variable fix.
No warning needed on paramter that's created temporarily to help assignment.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Src/params.c | 6 | ||||
-rw-r--r-- | Test/E01options.ztst | 15 |
3 files changed, 25 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index a448b3256..8e22e9f4f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2017-01-25 Peter Stephenson <p.stephenson@samsung.com> + + * 40413: Src/params.c, Test/E01options.ztst: no WARN_NESTED_VAR + warning on bogus parameter created for subscripted assignment. + 2017-01-25 Daniel Shahaf <d.s@daniel.shahaf.name> * 40403/0004: Functions/VCS_Info/Backends/VCS_INFO_get_data_git, diff --git a/Src/params.c b/Src/params.c index ebdd25225..c38f2e001 100644 --- a/Src/params.c +++ b/Src/params.c @@ -2926,7 +2926,11 @@ assignsparam(char *s, char *val, int flags) unqueue_signals(); return NULL; } - flags &= ~ASSPM_WARN_CREATE; + /* + * Parameter defined here is a temporary bogus one. + * Don't warn about anything. + */ + flags &= ~ASSPM_WARN; } *ss = '['; v = NULL; diff --git a/Test/E01options.ztst b/Test/E01options.ztst index bcd89f787..fd3263a8f 100644 --- a/Test/E01options.ztst +++ b/Test/E01options.ztst @@ -1188,6 +1188,21 @@ ?fn_wnv:20: numeric parameter foo5 set in enclosing scope in function fn_wnv ?all off again + + ( + setopt warnnestedvar + () { + typeset -A a + : ${a[hello world]::=foo} + print ${(t)a} + key="hello world" + print $a[$key] + } + ) +0:No false positive on parameter used with subscripted assignment +>association-local +>foo + # This really just tests if XTRACE is egregiously broken. # To test it properly would need a full set of its own. fn() { print message; } |