electric
electric copied to clipboard
Destructuring Bug
(p/defn DestructuringBug []
(p/client
(dom/div
(p/server
(pr-str
(sequence
(keep (fn [{:keys [value]}] value)) ;; <- breaks
;(keep (fn [x] (:value x))) ;; <- works
[{:value "1"} {:value "2"} {:value "33"} {:value "4"} {:value "5"}]))))))
What exception do you see? Might be https://github.com/leonoel/missionary/issues/59
Looks different:
An error occurred while generating code for the form.
ExceptionInfo: failed compiling constant: class clojure.lang.PersistentArrayMap; java.lang.Class is not a valid ClojureScript constant.
cljs.compiler/fn--4087 (compiler.cljc:306)
cljs.compiler/fn--4087 (compiler.cljc:303)
clojure.lang.MultiFn.invoke (MultiFn.java:229)
cljs.compiler/emit-constant-no-meta (compiler.cljc:285)
cljs.compiler/emit-constant-no-meta (compiler.cljc:277)
cljs.compiler/emit-constant (compiler.cljc:301)
cljs.compiler/emit-constant (compiler.cljc:297)
cljs.compiler/emit-constants-comma-sep/fn--4122/fn--4123 (compiler.cljc:417)
clojure.core/map-indexed/mapi--8638/fn--8639 (core.clj:7378)
clojure.lang.LazySeq.sval (LazySeq.java:42)
clojure.lang.LazySeq.seq (LazySeq.java:51)
clojure.lang.Cons.next (Cons.java:39)
clojure.lang.RT.next (RT.java:713)
clojure.core/next--5451 (core.clj:64)
clojure.core/dorun (core.clj:3143)
clojure.core/doall (core.clj:3149)
clojure.core/doall (core.clj:3149)
cljs.compiler/emit-constants-comma-sep/fn--4122 (compiler.cljc:414)
cljs.compiler/emits (compiler.cljc:213)
cljs.compiler/emits (compiler.cljc:206)
cljs.compiler/emits (compiler.cljc:225)
cljs.compiler/emits (compiler.cljc:206)
cljs.compiler/emit-list (compiler.cljc:553)
cljs.compiler/emit-list (compiler.cljc:550)
cljs.compiler/emit-constant-no-meta (compiler.cljc:279)
cljs.compiler/emit-constant-no-meta (compiler.cljc:277)
cljs.compiler/emit-constant (compiler.cljc:301)
cljs.compiler/emit-constant (compiler.cljc:297)
cljs.compiler/emit-constants-comma-sep/fn--4122/fn--4123 (compiler.cljc:417)
clojure.core/map-indexed/mapi--8638/fn--8639 (core.clj:7378)
clojure.lang.LazySeq.sval (LazySeq.java:42)
clojure.lang.LazySeq.seq (LazySeq.java:51)
clojure.lang.Cons.next (Cons.java:39)
clojure.lang.RT.next (RT.java:713)
clojure.core/next--5451 (core.clj:64)
clojure.core/dorun (core.clj:3143)
clojure.core/doall (core.clj:3149)
clojure.core/doall (core.clj:3149)
cljs.compiler/emit-constants-comma-sep/fn--4122 (compiler.cljc:414)
cljs.compiler/emits (compiler.cljc:213)
cljs.compiler/emits (compiler.cljc:206)
cljs.compiler/emits (compiler.cljc:225)
cljs.compiler/emits (compiler.cljc:206)
cljs.compiler/emit-list (compiler.cljc:553)
cljs.compiler/emit-list (compiler.cljc:550)
cljs.compiler/emit-constant-no-meta (compiler.cljc:279)
cljs.compiler/emit-constant-no-meta (compiler.cljc:277)
cljs.compiler/emit-constant (compiler.cljc:301)
cljs.compiler/emit-constant (compiler.cljc:297)
cljs.compiler/emit-constants-comma-sep/fn--4122/fn--4123 (compiler.cljc:417)
clojure.core/map-indexed/mapi--8638/fn--8639 (core.clj:7378)
clojure.lang.LazySeq.sval (LazySeq.java:42)
clojure.lang.LazySeq.seq (LazySeq.java:51)
clojure.lang.Cons.next (Cons.java:39)
clojure.lang.RT.next (RT.java:713)
clojure.core/next--5451 (core.clj:64)
clojure.core/dorun (core.clj:3143)
clojure.core/doall (core.clj:3149)
clojure.core/doall (core.clj:3149)
cljs.compiler/emit-constants-comma-sep/fn--4122 (compiler.cljc:414)
cljs.compiler/emits (compiler.cljc:213)
cljs.compiler/emits (compiler.cljc:206)
cljs.compiler/emits (compiler.cljc:225)
cljs.compiler/emits (compiler.cljc:206)
cljs.compiler/emit-list (compiler.cljc:553)
cljs.compiler/emit-list (compiler.cljc:550)
cljs.compiler/emit-constant-no-meta (compiler.cljc:279)
cljs.compiler/emit-constant-no-meta (compiler.cljc:277)
cljs.compiler/emit-constant (compiler.cljc:301)
cljs.compiler/emit-constant (compiler.cljc:297)
cljs.compiler/emit-constants-comma-sep/fn--4122/fn--4123 (compiler.cljc:417)
clojure.core/map-indexed/mapi--8638/fn--8639 (core.clj:7378)
clojure.lang.LazySeq.sval (LazySeq.java:42)
clojure.lang.LazySeq.seq (LazySeq.java:51)
clojure.lang.Cons.next (Cons.java:39)
clojure.lang.RT.next (RT.java:713)
clojure.core/next--5451 (core.clj:64)
clojure.core/dorun (core.clj:3143)
clojure.core/doall (core.clj:3149)
clojure.core/doall (core.clj:3149)
--------------------------------------------------------------------------------
66 | #?(:cljs
67 | (p/boot
68 | (Main.))))
69 |
--------------------------------------------------------------------------------
(keep (fn [{:keys [:value]}] value))
curious if this is a work around, also curious if name spaced de structuring throws the same error