diff options
author | Rich Hickey <richhickey@gmail.com> | 2009-02-20 15:10:45 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2009-02-20 15:10:45 +0000 |
commit | aac37e59bfe1970d4bfe7b4b7c47e2f2faaa414b (patch) | |
tree | c27629e5438d498c4e48ab65ead279ab9ddde185 | |
parent | bfa0d637f188969d886a4628e36f61b52f96dc39 (diff) |
fixed lazy-seq constants
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java index e8b71086..8848bacd 100644 --- a/src/jvm/clojure/lang/Compiler.java +++ b/src/jvm/clojure/lang/Compiler.java @@ -3365,7 +3365,9 @@ static public class FnExpr implements Expr{ if(Modifier.isPublic(c.getModifiers())) { //can't emit derived fn types due to visibility - if(RestFn.class.isAssignableFrom(c)) + if(LazySeq.class.isAssignableFrom(c)) + return Type.getType(ISeq.class); + else if(RestFn.class.isAssignableFrom(c)) return Type.getType(RestFn.class); else if(AFn.class.isAssignableFrom(c)) return Type.getType(AFn.class); @@ -3981,7 +3983,11 @@ private static Expr analyze(C context, Object form, String name) throws Exceptio try { if(form instanceof LazySeq) + { form = RT.seq(form); + if(form == null) + form = PersistentList.EMPTY; + } if(form == null) return NIL_EXPR; else if(form == Boolean.TRUE) |