Skip to content

Commit 5916e9e

Browse files
committed
propagate metadata to classnames in definterface/type/record
1 parent c2a6a07 commit 5916e9e

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/clj/clojure/core_deftype.clj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
(let [tag (fn [x] (or (:tag (meta x)) Object))
1717
psig (fn [[name [& args]]]
1818
(vector name (vec (map tag args)) (tag name)))
19-
cname (symbol (str *ns* "." name))]
19+
cname (with-meta (symbol (str *ns* "." name)) (meta name))]
2020
`(do (gen-interface :name ~cname :methods ~(vec (map psig sigs)))
2121
(ns-unmap (find-ns '~(ns-name *ns*)) '~name)
2222
(import ~cname))))
@@ -111,7 +111,7 @@
111111
"Do not use this directly - use defrecord"
112112
[tagname name fields interfaces methods]
113113
(let [tag (keyword (str *ns*) (str tagname))
114-
classname (symbol (str *ns* "." name))
114+
classname (with-meta (symbol (str *ns* "." name)) (meta name))
115115
interfaces (vec interfaces)
116116
interface-set (set (map resolve interfaces))
117117
methodname-set (set (map first methods))
@@ -275,7 +275,7 @@
275275
(defn- emit-deftype*
276276
"Do not use this directly - use deftype"
277277
[tagname name fields interfaces methods]
278-
(let [classname (symbol (str *ns* "." name))]
278+
(let [classname (with-meta (symbol (str *ns* "." name)) (meta name))]
279279
`(deftype* ~tagname ~classname ~fields
280280
:implements ~interfaces
281281
~@methods)))

0 commit comments

Comments
 (0)