electric icon indicating copy to clipboard operation
electric copied to clipboard

Destructuring Bug

Open den1k opened this issue 2 years ago • 3 comments

(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"}]))))))

den1k avatar Feb 09 '23 23:02 den1k

What exception do you see? Might be https://github.com/leonoel/missionary/issues/59

xificurC avatar Feb 10 '23 10:02 xificurC

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 | 
--------------------------------------------------------------------------------


den1k avatar Feb 10 '23 15:02 den1k

(keep (fn [{:keys [:value]}] value))

curious if this is a work around, also curious if name spaced de structuring throws the same error

boxxxie avatar Feb 13 '23 18:02 boxxxie