diff options
-rw-r--r-- | src/clj/clojure/core_proxy.clj | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/clj/clojure/core_proxy.clj b/src/clj/clojure/core_proxy.clj index 865a763e..f34acd24 100644 --- a/src/clj/clojure/core_proxy.clj +++ b/src/clj/clojure/core_proxy.clj @@ -290,7 +290,10 @@ meths (map (fn [[params & body]] (cons (apply vector 'this params) body)) meths)] - (recur (assoc fmap (name sym) (cons `fn meths)) (rest fs))) + (if-not (contains? fmap (name sym)) + (recur (assoc fmap (name sym) (cons `fn meths)) (rest fs)) + (throw (IllegalArgumentException. + (str "Method '" (name sym) "' redefined"))))) fmap))) p#))) |