summaryrefslogtreecommitdiff
path: root/src/jvm/clojure
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2008-03-10 14:05:24 +0000
committerRich Hickey <richhickey@gmail.com>2008-03-10 14:05:24 +0000
commit5dae36c1fe564299510a76324fc382b2b9374b9d (patch)
tree69401e0c85f7c719814ad080f531a129655446c3 /src/jvm/clojure
parentece45b1f02aa86655215a8a09af9ad3d983cf79c (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.java10
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