Completed
Details
Assignee
UnassignedUnassignedReporter
Juha ArpiainenJuha ArpiainenApproval
OkPatch
Code and TestPriority
MinorFix versions
Details
Details
Assignee
Unassigned
UnassignedReporter
Juha Arpiainen
Juha ArpiainenApproval
Ok
Patch
Code and Test
Priority
Fix versions
Created October 31, 2010 at 6:51 PM
Updated June 15, 2012 at 5:09 PM
Resolved June 15, 2012 at 5:09 PM
~/clj-git/clojure $ java -cp clojure.jar clojure.main
Clojure 1.3.0-alpha2-SNAPSHOT
user=> (try (catch Exception e (loop [x 0] (recur x))))
CompilerException java.lang.UnsupportedOperationException: Cannot recur from catch/finally, compilingNO_SOURCE_PATH:1)
user=> (try (finally (loop [x 0] (if false (recur x)))))
CompilerException java.lang.UnsupportedOperationException: Cannot recur from catch/finally, compilingNO_SOURCE_PATH:2)
With attached patch (should also fix CLJ-31):
~/clj-head/clojure $ java -cp clojure.jar clojure.main
Clojure 1.3.0-alpha2-SNAPSHOT
user=> (try (catch Exception e (loop [x 0] (recur x))))
nil
user=> (try (finally (loop [x 0] (if false (recur x)))))
nil
user=> (loop [x 0] (try (if false (recur x))))
CompilerException java.lang.UnsupportedOperationException: Can only recur from tail position, compilingNO_SOURCE_PATH:3)
user=> (loop [x 0] (try (catch Exception e (recur x))))
CompilerException java.lang.UnsupportedOperationException: Can only recur from tail position, compilingNO_SOURCE_PATH:4)
user=> (loop [x 0] (try (finally (recur x))))
CompilerException java.lang.UnsupportedOperationException: Can only recur from tail position, compilingNO_SOURCE_PATH:5)