core: make foreach loop counter hygienic

This commit is contained in:
hellerve 2020-01-29 15:48:02 +01:00
parent 43e4875138
commit 07fb17b753

View File

@ -171,11 +171,12 @@
(defndynamic foreach-internal [var xs expr]
(let [xsym (gensym-with 'xs)
len (gensym-with 'len)]
len (gensym-with 'len)
i (gensym-with 'i)]
(list 'let [xsym xs
len (list 'Array.length xsym)]
(list 'for ['i 0 len]
(list 'let [var (list 'Array.unsafe-nth xsym 'i)]
(list 'for [i 0 len]
(list 'let [var (list 'Array.unsafe-nth xsym i)]
expr)))))
(defmacro foreach [binding expr]