diff options
| author | Chas Emerick <cemerick@snowtide.com> | 2010-11-19 22:18:21 -0500 |
|---|---|---|
| committer | Stuart Halloway <stu@thinkrelevance.com> | 2010-11-29 21:01:27 -0500 |
| commit | c6e7e5765e4bd6624e87115819d384f4a755d700 (patch) | |
| tree | 6005e9ed57cf0bff095f870b492b6b8c358dffdb /src | |
| parent | 56bde33ee946af4022be5f592d38adcddf919e8e (diff) | |
properly munge namespaces -> java package names for protocols and deftype and friends; fixes CLJ-432
Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/clj/clojure/core_deftype.clj | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/clj/clojure/core_deftype.clj b/src/clj/clojure/core_deftype.clj index 344f9811..97ccd05b 100644 --- a/src/clj/clojure/core_deftype.clj +++ b/src/clj/clojure/core_deftype.clj @@ -136,7 +136,7 @@ {:added "1.2"} [tagname name fields interfaces methods] (let [tag (keyword (str *ns*) (str tagname)) - classname (with-meta (symbol (str *ns* "." name)) (meta name)) + classname (with-meta (symbol (str (namespace-munge *ns*) "." name)) (meta name)) interfaces (vec interfaces) interface-set (set (map resolve interfaces)) methodname-set (set (map first methods)) @@ -292,7 +292,7 @@ [name [& fields] & opts+specs] (let [gname name [interfaces methods opts] (parse-opts+specs opts+specs) - classname (symbol (str *ns* "." gname)) + classname (symbol (str (namespace-munge *ns*) "." gname)) tag (keyword (str *ns*) (str name)) hinted-fields fields fields (vec (map #(with-meta % nil) fields))] @@ -316,7 +316,7 @@ (defn- emit-deftype* "Do not use this directly - use deftype" [tagname name fields interfaces methods] - (let [classname (with-meta (symbol (str *ns* "." name)) (meta name))] + (let [classname (with-meta (symbol (str (namespace-munge *ns*) "." name)) (meta name))] `(deftype* ~tagname ~classname ~fields :implements ~interfaces ~@methods))) @@ -384,7 +384,7 @@ [name [& fields] & opts+specs] (let [gname name [interfaces methods opts] (parse-opts+specs opts+specs) - classname (symbol (str *ns* "." gname)) + classname (symbol (str (namespace-munge *ns*) "." gname)) tag (keyword (str *ns*) (str name)) hinted-fields fields fields (vec (map #(with-meta % nil) fields))] @@ -519,7 +519,7 @@ (str "function " (.sym v))))))))) (defn- emit-protocol [name opts+sigs] - (let [iname (symbol (str (munge *ns*) "." (munge name))) + (let [iname (symbol (str (munge (namespace-munge *ns*)) "." (munge name))) [opts sigs] (loop [opts {:on (list 'quote iname) :on-interface iname} sigs opts+sigs] (condp #(%1 %2) (first sigs) |
