summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/jvm/clojure/lang/LispReader.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/jvm/clojure/lang/LispReader.java b/src/jvm/clojure/lang/LispReader.java
index e5740a5c..705d5073 100644
--- a/src/jvm/clojure/lang/LispReader.java
+++ b/src/jvm/clojure/lang/LispReader.java
@@ -1021,7 +1021,10 @@ public static class VectorReader extends AFn{
public static class MapReader extends AFn{
public Object invoke(Object reader, Object leftparen) throws Exception{
PushbackReader r = (PushbackReader) reader;
- return RT.map(readDelimitedList('}', r, true).toArray());
+ Object[] a = readDelimitedList('}', r, true).toArray();
+ if((a.length & 1) == 1)
+ throw new Exception("Map literal must contain an even number of forms");
+ return RT.map(a);
}
}