Welcome! Please see the About page for a little more info on how this works.

0 votes
in core.async by

The following code compiles without error using core.async 0.3.442:

`
(go-loop []
(when true

(recur))

1)
`

The same loop structure without core.async causes the compiler to error ("ERROR: Can't recur here at..."):

`
(loop []
(when true

(recur))

1)
`

Interestingly, some non-tail-recursive loops correctly fail to compile. For example the following fails with "ERROR: No implementation of method: :emit-instruction...":

`
(go-loop []
(do

(recur)
1))

`

2 Answers

0 votes
by

Comment made by: djwhitt

Created a repository demonstrating this issue: https://github.com/djwhitt/async-190

0 votes
by
Reference: https://clojure.atlassian.net/browse/ASYNC-190 (reported by alex+import)
...