summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2009-11-30 22:00:21 -0500
committerRich Hickey <richhickey@gmail.com>2009-11-30 22:00:21 -0500
commitdd152aed9c5d5789cb32b0b46f354fb07606fede (patch)
tree9c8ee4cd01cc6f4847c52581863bcff18281f079
parent53697c984fe0daea6cb85622286fb263ee0d69ca (diff)
add :on-interface for code requiring class, since :on now symbol
-rw-r--r--src/clj/clojure/core_deftype.clj8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/clj/clojure/core_deftype.clj b/src/clj/clojure/core_deftype.clj
index 46b03ca6..8d1a5065 100644
--- a/src/clj/clojure/core_deftype.clj
+++ b/src/clj/clojure/core_deftype.clj
@@ -264,7 +264,7 @@
(cons c (super-chain (.getSuperclass c)))))
(defn find-protocol-impl [protocol x]
- (if (and (:on protocol) (instance? (:on protocol) x))
+ (if (and (:on-interface protocol) (instance? (:on-interface protocol) x))
x
(let [t (dtype x)
c (class x)
@@ -292,7 +292,7 @@
"Returns true if x satisfies the protocol"
[protocol x]
(when
- (or (and (:on protocol) (instance? (:on protocol) x))
+ (or (and (:on-interface protocol) (instance? (:on-interface protocol) x))
(find-protocol-impl protocol x))
true))
@@ -351,7 +351,7 @@
(defn- emit-protocol [name opts+sigs]
(let [iname (symbol (str (munge *ns*) "." (munge name)))
[opts sigs]
- (loop [opts {:on (list 'quote iname)} sigs opts+sigs]
+ (loop [opts {:on (list 'quote iname) :on-interface iname} sigs opts+sigs]
(condp #(%1 %2) (first sigs)
string? (recur (assoc opts :doc (first sigs)) (next sigs))
keyword? (recur (assoc opts (first sigs) (second sigs)) (nnext sigs))
@@ -396,7 +396,7 @@
(mapcat
(fn [s]
[`(intern *ns* (with-meta '~(:name s) {:protocol (var ~name)}))
- (emit-method-builder (:on opts) (:name s) (:on s) (:arglists s))])
+ (emit-method-builder (:on-interface opts) (:name s) (:on s) (:arglists s))])
(vals sigs)))))
(-reset-methods ~name)
'~name)))