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]
(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]
(reduce-kv
(fn [l k v]
(let [p' (conj p k)
m' (meta (get-in from p'))]
m' (when (empty? (meta v))
(meta (get-in from p')))]
(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)
:else l)))
l m))]