summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2008-07-28 17:28:40 +0000
committerRich Hickey <richhickey@gmail.com>2008-07-28 17:28:40 +0000
commit0d4de3fdbfb4236517c581c47d9f3dab6d66f52e (patch)
tree091bfb7b9d8d6b9663865c37d1e35a85be38ab1d /src
parent4b47829f59992f7de22a859fd32306bb512747de (diff)
new namespace and class rules for genclass, patch from Chouser
Diffstat (limited to 'src')
-rw-r--r--src/clojure/genclass.clj5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/clojure/genclass.clj b/src/clojure/genclass.clj
index f9da00e4..529df165 100644
--- a/src/clojure/genclass.clj
+++ b/src/clojure/genclass.clj
@@ -151,6 +151,7 @@
ctor-sig-map (or constructors (zipmap (ctor-sigs super) (ctor-sigs super)))
cv (new ClassWriter (. ClassWriter COMPUTE_MAXS))
cname (. name (replace "." "/"))
+ [pkg-name sname] (.split name "[.](?=[^.]*$)")
ctype (. Type (getObjectType cname))
iname (fn [c] (.. Type (getType c) (getInternalName)))
totype (fn [c] (. Type (getType c)))
@@ -272,8 +273,8 @@
nil nil cv)]
(. gen (visitCode))
(doseq v var-fields
- (. gen push name)
- (. gen push v)
+ (. gen push pkg-name)
+ (. gen push (str sname "-" v))
(. gen (invokeStatic rt-type (. Method (getMethod "clojure.lang.Var var(String,String)"))))
(. gen putStatic ctype (var-name v) var-type))