summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2008-04-07 14:25:28 +0000
committerRich Hickey <richhickey@gmail.com>2008-04-07 14:25:28 +0000
commit7772fd99465cd9ebf494e12235d8f5288ed47df7 (patch)
treec79e7a9b61badeac32fca3b17b2155dc9d48f501 /src
parent8352100cc39e3bf451341eff335e40db930c2aa7 (diff)
don't emit derived fn types for constants, due to visibility, emit AFn or RestFn instead
Diffstat (limited to 'src')
-rw-r--r--src/jvm/clojure/lang/Compiler.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java
index c6168cf3..2dcfd698 100644
--- a/src/jvm/clojure/lang/Compiler.java
+++ b/src/jvm/clojure/lang/Compiler.java
@@ -2800,6 +2800,11 @@ static public class FnExpr implements Expr{
Class c = o.getClass();
if(Modifier.isPublic(c.getModifiers()))
{
+ //can't emit derived fn types due to visibility
+ if(RestFn.class.isAssignableFrom(c))
+ return Type.getType(RestFn.class);
+ else if(AFn.class.isAssignableFrom(c))
+ return Type.getType(AFn.class);
return Type.getType(c);
}
return OBJECT_TYPE;