I do not believe this should be considered a bug. Recur is a special form 
that rebinds the bindings at the point of recursion with new values. It 
does not return a value. It does not get evaluated in the normal sense of 
the word. You cannot type check a value on a valueless expression. Just 
think about the implications of what a post condition on a recur form 
means. Even if you wanted to give value semantics to the evaluation of a 
recur form, there would be no single value it could check against. If you 
wanted the post condition to only be evaluated on the termination of the 
loop, or when the recur form is not conditionally present in the 
expression, then you are essentially asking the impossible for the 
compiler: it cannot know your intentions better than you do. 

On Friday, July 25, 2014 10:12:14 AM UTC-4, Michael O'Keefe wrote:
>
> Thanks Bob, Steve, and Andy. I was trying to get logged into JIRA to file 
> the bug report but I seem to be having a heck of a time -- I have a CA and 
> am signed up at dev.clojure.org but when I try to log into JIRA, it gives 
> me a nice "System Error" saying " user should not be null!". I've run out 
> of time to deal with this right now but, Steve, if you get to it before me, 
> feel free to submit the bug report.
>
> Thanks all for the helpful discussions!
>
> Michael
>
> On Friday, July 25, 2014 7:58:51 AM UTC-6, miner wrote:
>>
>> I will call it a bug.  It's definitely surprising to the user, and 
>> therefore worthy of a ticket.  On first glance, it seems that the fix isn't 
>> too hard. In core.clj where the macro fn is redefined, we just need to wrap 
>> the section that handles the post condition either with a loop* or a fn* so 
>> that the body has the proper recur target.  I'll try to make a patch and a 
>> test.  If it works, I'll file a bug with the patch.
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to