fix MapEntry not found error in clj
This commit is contained in:
parent
2079b74271
commit
7ae8bed997
2 changed files with 13 additions and 5 deletions
|
|
@ -105,11 +105,13 @@
|
|||
(if (destructuring-pair? arg)
|
||||
(let [[karg varg] arg]
|
||||
`([~acc ~karg ~varg] ~@body))
|
||||
`([~acc k# v#] (let [~arg
|
||||
(macros/case
|
||||
:clj (clojure.lang.MapEntry. k# v#)
|
||||
:cljs [k# v#]
|
||||
:cljd (MapEntry k# v#))] ~@body)))))
|
||||
(let [k (gensym "k__")
|
||||
v (gensym "v__")
|
||||
arg-value (macros/case
|
||||
:clj `(clojure.lang.MapEntry. ~k ~v)
|
||||
:cljs [k v]
|
||||
:cljd `(MapEntry ~k ~v))]
|
||||
`([~acc ~k ~v] (let [~arg ~arg-value] ~@body))))))
|
||||
(not (arities 2)) (conj (let [[[acc karg varg] & body] (arities 3)]
|
||||
`([~acc [~karg ~varg]] ~@body))))]
|
||||
`(reify
|
||||
|
|
|
|||
|
|
@ -158,3 +158,9 @@
|
|||
'(a b) false
|
||||
'{foo bar} false
|
||||
'{foo :bar} false)))
|
||||
|
||||
(defmacro wraps-for-with-no-destructuring []
|
||||
(x/into [] (x/for [x (range 5)] x)))
|
||||
|
||||
(deftest for-in-macro
|
||||
(is (= [0 1 2 3 4] (wraps-for-with-no-destructuring))))
|
||||
|
|
|
|||
Loading…
Reference in a new issue