From 03c930cc21af0bc956aec9cf3b23d46d14b11b8a Mon Sep 17 00:00:00 2001 From: Brandon Bloom Date: Sun, 12 Aug 2012 16:32:30 -0700 Subject: [PATCH] Eliminates incorrect merging of metadata when redefining vars --- src/clj/cljs/analyzer.clj | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/clj/cljs/analyzer.clj b/src/clj/cljs/analyzer.clj index d2d03d1..40f1b91 100644 --- a/src/clj/cljs/analyzer.clj +++ b/src/clj/cljs/analyzer.clj @@ -330,12 +330,9 @@ (warning env (str "WARNING: " (symbol (str ns-name) (str sym)) " no longer fn, references are stale")))) - (swap! namespaces update-in [ns-name :defs sym] - (fn [m] - (let [m (assoc (or m {}) :name name)] - (merge m - (when tag {:tag tag}) - (when sym-meta sym-meta) + (swap! namespaces assoc-in [ns-name :defs sym] + (merge {:name name} + sym-meta (when dynamic {:dynamic true}) (when-let [line (:line env)] {:file *cljs-file* :line line}) @@ -353,7 +350,7 @@ :protocol-inline (:protocol-inline init-expr) :variadic (:variadic init-expr) :max-fixed-arity (:max-fixed-arity init-expr) - :method-params (map :params (:methods init-expr))}))))) + :method-params (map :params (:methods init-expr))}))) (merge {:env env :op :def :form form :name name :doc doc :init init-expr} (when tag {:tag tag}) -- 1.7.12