diff options
author | Rich Hickey <richhickey@gmail.com> | 2009-01-14 23:43:05 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2009-01-14 23:43:05 +0000 |
commit | da42d50d0754edf0039cebc6b97a9a464381c3d0 (patch) | |
tree | cec094b7000c9c69537721e1c0a47197b82cc232 | |
parent | bde3591fd2e6069a6a88f0bfeb0d2941cec34387 (diff) |
fix reader metadata fails for empty collection literals
-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 c1802016..5fc6f6fc 100644 --- a/src/jvm/clojure/lang/Compiler.java +++ b/src/jvm/clojure/lang/Compiler.java @@ -3956,7 +3956,13 @@ private static Expr analyze(C context, Object form, String name) throws Exceptio // else if(fclass == Character.class) // return new CharExpr((Character) form); else if(form instanceof IPersistentCollection && ((IPersistentCollection) form).count() == 0) - return new EmptyExpr(form); + { + Expr ret = new EmptyExpr(form); + if(RT.meta(form) != null) + ret = new MetaExpr(ret, (MapExpr) MapExpr + .parse(context == C.EVAL ? context : C.EXPRESSION, ((IObj) form).meta())); + return ret; + } else if(form instanceof ISeq) return analyzeSeq(context, (ISeq) form, name); else if(form instanceof IPersistentVector) |