This commit is contained in:
Tommi Reiman 2024-06-30 18:29:52 +03:00
parent 49e8d887da
commit aec024a943

View file

@ -36,14 +36,16 @@
(defn -copy-meta [to from] (defn -copy-meta [to from]
(letfn [(-with-meta [x m] (letfn [(-with-meta [x m]
(try (with-meta x m) (catch #?(:clj Exception, :cljs js/Error) _))) (try (with-meta x m)
(catch #?(:clj Exception, :cljs js/Error) _ x)))
(-copy [l p m] (-copy [l p m]
(reduce-kv (reduce-kv
(fn [l k v] (fn [l k v]
(let [p' (conj p k) (let [p' (conj p k)
m' (meta (get-in from p'))] m' (when (empty? (meta v))
(meta (get-in from p')))]
(cond (cond
(and m' (not (var? v))) (update-in l p' -with-meta m') m' (update-in l p' -with-meta m')
(and (map? v) (not (record? v)) (seq v)) (-copy l p' v) (and (map? v) (not (record? v)) (seq v)) (-copy l p' v)
:else l))) :else l)))
l m))] l m))]