diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-04-07 14:25:28 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-04-07 14:25:28 +0000 |
commit | 7772fd99465cd9ebf494e12235d8f5288ed47df7 (patch) | |
tree | c79e7a9b61badeac32fca3b17b2155dc9d48f501 /src/jvm/clojure | |
parent | 8352100cc39e3bf451341eff335e40db930c2aa7 (diff) |
don't emit derived fn types for constants, due to visibility, emit AFn or RestFn instead
Diffstat (limited to 'src/jvm/clojure')
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 5 |
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; |