diff options
author | Rich Hickey <richhickey@gmail.com> | 2009-02-11 00:57:27 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2009-02-11 00:57:27 +0000 |
commit | fdd42d25f842b610f3eaacb117b3223743a7fb08 (patch) | |
tree | a99bc8c1005d2b3fe8272e2250a5f8f98550fbeb | |
parent | be3d2c8c8702d76bdb091a9f2c17c293f3eceb5d (diff) |
catch method redef in proxy, patch from jbondeson
-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#))) |