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

欢迎!请查看关于页面以了解更多此平台的信息。

0
ClojureScript

当前像这样的定义

(defn set! (链接: ) ...)

将不会引起任何警告。但是任何对它的使用(没有 {{:as}} 命名空间别名)都不会使用定义的变量,而是使用 set! 特殊形式。

似乎提出一个警告是合适的。

5 答案

0

由 anmonteiro 提交的评论

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

0
_由 mfikes_ 提交的评论

我知道 David 建议可能是正确做法对此进行硬错误处理,但一个后果是,使用这个更改将无法在引导过程中定义 {{cljs.spec/def}} 宏。(我还没有彻底调查,但这可能是由于在引导过程中将宏处理为 ClojureScript 的结果,因此受到这个新保障的影响。)

无论根本原因如何,如果你尝试运行 {{script/test-self-parity}},你就会看到这种情况。


#error {:message "无法评估 cljs.spec", :data {:tag :cljs/analysis-error}, :cause #error {:message "不能在行 51 定义特殊形式 ", :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
by

评论区由:mfikes发表

补丁不再适用。

0
by

评论区由:ray.mcdermott发表

此任务分配给(链接:~anmonteiro),但似乎有一段时间没有动静了。

我可以接管它吗?

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