summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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))