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

0 votes
in core.async by

`
(require '[clojure.core.async :as a])

(a/go (let [a nil] (a/alts! (if a )))) // Unable to resolve a
(a/go (let [a nil] (a/<! (if a ))) // Unable to resolve a
`

Seems that 'go' macro removes falsely initialized symbols that are used as channels, because
in both cases there's exception, that says " Unable to resolve symbol: a in this context".

6 Answers

0 votes
by

Comment made by: blandw

Confirmed.
Bug was introduced between 0.1.278.0-76b25b-alpha and 0.1.295.0-9ea6ef-alpha.

0 votes
by

Comment made by: blandw

Worked around with:

`
(defmacro workaround-async-92
"Hack to workaround core.async bug
cf. http://dev.clojure.org/jira/browse/ASYNC-92"
[]
;; has to be a list
`(do nil))

(let [a (workaround-async-92)]
...)
`

0 votes
by

Comment made by: lgs32a

modifies two methods of the RawCode inst so that they check:collected-locals in locals via contains? before ignoring them

0 votes
by

Comment made by: gshayban

Hi Leon, thanks for the patch. Can you fill out a Contributor Agreement? http://clojure.org/contributing

0 votes
by

Comment made by: lgs32a

I did, yesterday. Got an automatic confirmation email saying Rich Hickey signed it. Anything else I should do with it?

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