summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2008-08-04 12:27:03 +0000
committerRich Hickey <richhickey@gmail.com>2008-08-04 12:27:03 +0000
commitbfdb7dca726854a491918e8e319815ceaa6196d0 (patch)
tree2b801e1c8b3c1899672c1c30df62ed513bee98d2 /src
parentd7a9719ec4394b5309c1b5f3d5494433c61968cd (diff)
propagate exception type to tag in catch clauses
Diffstat (limited to 'src')
-rw-r--r--src/jvm/clojure/lang/Compiler.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java
index e7829aab..d9028ed1 100644
--- a/src/jvm/clojure/lang/Compiler.java
+++ b/src/jvm/clojure/lang/Compiler.java
@@ -1732,7 +1732,9 @@ static class TryExpr implements Expr{
try
{
Var.pushThreadBindings(dynamicBindings);
- LocalBinding lb = registerLocal(sym, null, null);
+ LocalBinding lb = registerLocal(sym,
+ (Symbol) (RT.second(f) instanceof Symbol ? RT.second(f)
+ : null), null);
Expr handler = (new BodyExpr.Parser()).parse(context, RT.rest(RT.rest(RT.rest(f))));
catches = catches.cons(new CatchClause(c, lb, handler));
}