2024 年 Clojure 状态调查!分享您的想法。

欢迎!请参阅关于页面以获取有关此功能的更多信息。

0
ClojureScript

目前像这样的定义

(defn set! (关联: ) ...)

不会产生任何警告。然而,任何对其的使用(无需 {{:as}} 命名空间别名)都不会使用定义的 var,而是使用 set! 特殊形式。

似乎应该发出一个警告。

5 个答案

0

评论者:anmonteiro

附带了修复和测试的补丁。

0
评论:mfikes

我知道大卫建议对于这个来说,硬错误可能是正确的,但一个后果是,使用这个更改,无法在引导中使用 {{cljs.spec/def}} 宏定义。(我还没有彻底调查,但这可能仅仅是因为宏在引导中作为 ClojureScript 被处理,因此受到这个新守卫的影响。)

无论根本原因是什么,您可以运行 {{script/test-self-parity}} 时看到这一点。


#error {:message "无法评估 cljs.spec", :data {:tag :cljs/analysis-error}, :cause #error {:message "第 51 行不能 def 特殊形式", :data {:file nil, :line 51, :column 1, :tag :cljs/analysis-error}}}
 

参考资料:第 51 行目前指向 {{def}} 宏:https://github.com/clojure/clojurescript/blob/e2db5d9ff8cb6a099ebc2a8cd379385bf4649b38/src/main/cljs/cljs/spec.cljc#L51
0

评论:mfikes

补丁不再适用。

0
by

评论由:ray.mcdermott

已被分配给(链接:~anmonteiro),但一段时间内似乎没有动静。

我可以接管这个任务吗?

0
by
参考: https://clojure.atlassian.net/browse/CLJS-1474 (由 martinklepsch 报告)
...