summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2010-06-19 09:59:48 -0400
committerRich Hickey <richhickey@gmail.com>2010-06-19 09:59:48 -0400
commit25165a9ccd1001fa7c4725a8219c4108803ae834 (patch)
tree6d4f1062b364041e1106cb9bd0e30a24af676aaa
parent310534b8e7e7f28c75bb122b4bf1bee320cdae67 (diff)
restore hard error on primitive local recur mismatch
-rw-r--r--src/clj/clojure/pprint/cl_format.clj4
-rw-r--r--src/jvm/clojure/lang/Compiler.java12
2 files changed, 8 insertions, 8 deletions
diff --git a/src/clj/clojure/pprint/cl_format.clj b/src/clj/clojure/pprint/cl_format.clj
index c2189d0c..b5addeb8 100644
--- a/src/clj/clojure/pprint/cl_format.clj
+++ b/src/clj/clojure/pprint/cl_format.clj
@@ -836,7 +836,7 @@ Note this should only be used for the last one in the sequence"
args (init-navigator arg-list)]
(loop [count 0
args args
- last-pos -1]
+ last-pos (num -1)]
(if (and (not max-count) (= (:pos args) last-pos) (> count 1))
;; TODO get the offset in here and call format exception
(throw (RuntimeException. "%{ construct not consuming any arguments: Infinite loop!")))
@@ -882,7 +882,7 @@ Note this should only be used for the last one in the sequence"
[param-clause navigator])]
(loop [count 0
navigator navigator
- last-pos -1]
+ last-pos (num -1)]
(if (and (not max-count) (= (:pos navigator) last-pos) (> count 1))
;; TODO get the offset in here and call format exception
(throw (RuntimeException. "%@{ construct not consuming any arguments: Infinite loop!")))
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java
index 311505cf..175ebbd7 100644
--- a/src/jvm/clojure/lang/Compiler.java
+++ b/src/jvm/clojure/lang/Compiler.java
@@ -5541,17 +5541,17 @@ public static class RecurExpr implements Expr{
}
else
{
- if(true)//RT.booleanCast(RT.WARN_ON_REFLECTION.deref()))
- //throw new IllegalArgumentException
- RT.errPrintWriter().println
- (source + ":" + line +
+// if(true)//RT.booleanCast(RT.WARN_ON_REFLECTION.deref()))
+ throw new IllegalArgumentException
+// RT.errPrintWriter().println
+ (//source + ":" + line +
" recur arg for primitive local: " +
lb.name + " is not matching primitive, had: " +
(arg.hasJavaClass() ? arg.getJavaClass().getName():"Object") +
", needed: " +
primc.getName());
- arg.emit(C.EXPRESSION, objx, gen);
- HostExpr.emitUnboxArg(objx,gen,primc);
+// arg.emit(C.EXPRESSION, objx, gen);
+// HostExpr.emitUnboxArg(objx,gen,primc);
}
}
catch(Exception e)