summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStuart Halloway <stu@thinkrelevance.com>2011-04-22 10:10:27 -0400
committerStuart Halloway <stu@thinkrelevance.com>2011-04-29 11:12:07 -0400
commit71b5461dca083a4a60b65d6d2e46322d977774c9 (patch)
tree78863fe3cfb2f18db1173c8e245de6028781d13f
parent9b93f9e8621b24ef58165d49d39034f5dbd5c9f7 (diff)
#CLJ-435: don't let mischievous :type metadata break printing
Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
-rw-r--r--src/clj/clojure/core.clj4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj
index ffd3edde..c928e4f7 100644
--- a/src/clj/clojure/core.clj
+++ b/src/clj/clojure/core.clj
@@ -3196,7 +3196,9 @@
(def ^:dynamic ^{:private true} print-initialized false)
-(defmulti print-method (fn [x writer] (type x)))
+(defmulti print-method (fn [x writer]
+ (let [t (get (meta x) :type)]
+ (if (keyword? t) t (class x)))))
(defmulti print-dup (fn [x writer] (class x)))
(defn pr-on