2024年 Clojure 运行状态调查中分享您的想法!

欢迎!请在关于页面查看有关此功能更多详细信息。

0
core.async

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

(a/go (let [a nil] (a/alts! (if a )))) // 无法解析 a
(a/go (let [a nil] (a/<! (if a ))) // 无法解析 a
`

看起来 'go' 宏会移除用作通道的未经初始化的符号,因为在这两种情况下都出现了异常,提示 "无法在此上下文中解析符号:a"。
在两种情况下,都有异常信息说明 "无法在本上下文中解析符号:a"。

6 答案

0

评论者:blandw

已确认。
该错误是在 0.1.278.0-76b25b-alpha 和 0.1.295.0-9ea6ef-alpha 之间引入的。

0

评论者:blandw

通过以下方法解决

`
(defmacro workaround-async-92
"绕过 core.async 错误的技巧
cf. http://dev.clojure.org/jira/browse/ASYNC-92"
[]
;; 必须是一个列表
`(do nil))

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

0

评论者:lgs32a

修改 RawCode 实例的两个方法,以便在忽略它们之前检查 locals 中的:collected-locals 是否通过 contains? 包含

0

评论由:gshayban 发布

嗨Leon,感谢您的补丁。您能否填写一份贡献者协议?https://clojure.org/contributing

0

评论者:lgs32a

我昨天已经填写了。收到自动确认邮件,说Rich Hickey已经签署了它。我还应该做什么吗?

0
引用:[https://clojure.atlassian.net/browse/ASYNC-92](https://clojure.atlassian.net/browse/ASYNC-92)(由 alex+import 报告)
...