Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: "bad substitution" error for ${a[b]}



On Jul 16,  9:30am, Peter Stephenson wrote:
}
} [...] we could do with taking some of the parameter substitution test
} cases and feeding them through NO_EXEC.

Any suggestions which ones?  The only thing that should have changed
with 35799 is subscript handling.

The following caes all work, but of course "work" means "do nothing at
all" -- so I guess the point is just to assert that there are no errors?


diff --git a/Test/E01options.ztst b/Test/E01options.ztst
index ca3f06c..16279b8 100644
--- a/Test/E01options.ztst
+++ b/Test/E01options.ztst
@@ -362,6 +362,20 @@
   echo ${unset_var?Not an error})
 0:NO_EXEC should not test for unset variables
 
+  (setopt noexec
+  : ${${string%[aeiou]*}/(#m)?(#e)/${(U)MATCH}}  Rule 1
+  : ${array[4,5][1][2,3]}                        Rule 2
+  : ${${(P)foo[1,6]}[1,3]}                       Rule 3
+  : "${${(@)array}[1,2]}"                        Rule 5
+  : "${(@)${(@)array}[1,2]#?}"                   Rule 6
+  : ${(el.20..X.)${bar}}                         Rule 11 success case)
+0:NO_EXEC handles parameter substitution examples
+
+  (setopt noexec
+  : ${(el.20..X.)$bar}                           Rule 11 failure case)
+1:NO_EXEC does recognize bad substitution syntax
+*?* bad substitution
+
   setopt NO_eval_lineno
   eval 'print $LINENO'
   setopt eval_lineno



Messages sorted by: Reverse Date, Date, Thread, Author