diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-08-04 12:27:03 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-08-04 12:27:03 +0000 |
commit | bfdb7dca726854a491918e8e319815ceaa6196d0 (patch) | |
tree | 2b801e1c8b3c1899672c1c30df62ed513bee98d2 /src | |
parent | d7a9719ec4394b5309c1b5f3d5494433c61968cd (diff) |
propagate exception type to tag in catch clauses
Diffstat (limited to 'src')
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 4 |
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)); } |