summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2009-01-14 23:43:05 +0000
committerRich Hickey <richhickey@gmail.com>2009-01-14 23:43:05 +0000
commitda42d50d0754edf0039cebc6b97a9a464381c3d0 (patch)
treecec094b7000c9c69537721e1c0a47197b82cc232
parentbde3591fd2e6069a6a88f0bfeb0d2941cec34387 (diff)
fix reader metadata fails for empty collection literals
-rw-r--r--src/jvm/clojure/lang/Compiler.java8
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)