summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke VanderHart <luke@thinkrelevance.com>2011-02-23 20:19:55 -0500
committerStuart Halloway <stu@Stuart-Halloways-MacBook-Air.local>2011-02-25 14:28:02 -0500
commitf5ca90d25e067a2c9131f549eca3a008bd1c8308 (patch)
tree1b4a03a14bcbf3adab492b2bec3e06fd22a696d8
parent13e7fd760805a50f934b238d2a7fb6e44f5c691b (diff)
Added error message for invalid map literals
Signed-off-by: Stuart Halloway <stu@Stuart-Halloways-MacBook-Air.local>
-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);
}
}