diff --git a/modules/reitit-core/src/reitit/impl.cljc b/modules/reitit-core/src/reitit/impl.cljc index a7e318c7..243ef4f0 100644 --- a/modules/reitit-core/src/reitit/impl.cljc +++ b/modules/reitit-core/src/reitit/impl.cljc @@ -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))]