diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-03-10 14:05:24 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-03-10 14:05:24 +0000 |
commit | 5dae36c1fe564299510a76324fc382b2b9374b9d (patch) | |
tree | 69401e0c85f7c719814ad080f531a129655446c3 /src/jvm/clojure | |
parent | ece45b1f02aa86655215a8a09af9ad3d983cf79c (diff) |
fixed fn name propagation, added cljfn namespace segment prefix on all generated fns
Diffstat (limited to 'src/jvm/clojure')
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java index cbbc4d3f..6b099bd7 100644 --- a/src/jvm/clojure/lang/Compiler.java +++ b/src/jvm/clojure/lang/Compiler.java @@ -2407,10 +2407,12 @@ static class FnExpr implements Expr{ String basename = enclosingMethod != null ? (enclosingMethod.fn.name + "$") : (munge(currentNS().name.name) + "."); - fn.simpleName = (name != null ? - munge(name) - : ("fn__" + RT.nextID())); - fn.name = basename + fn.simpleName; + if(RT.second(form) instanceof Symbol) + name = ((Symbol) RT.second(form)).name; + fn.simpleName = ((name != null ? + munge(name) : "fn") + + "__" + RT.nextID()); + fn.name = "cljfn." + basename + fn.simpleName; fn.internalName = fn.name.replace('.', '/'); fn.fntype = Type.getObjectType(fn.internalName); try |