2024 Clojure 状态调查! 中分享您的看法。

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

0 投票
ClojureScript

在为 cljs-devtools 实现一些 demunging 代码(链接:1)时,我在 type->str 中发现了不一致性。它适用于 deftype,但不适用于 defrecord。

问题是,由于某种原因,defrecord 没有设置 cljs$lang$ctorStr 字段。这很可能是被忽视了,因为 type->str 并不多用,仅用于一些很少出现的错误异常。

无论如何,这个补丁通过复制粘贴从 deftype 中修复了它。为了防止未来出现类似问题,最好的解决方案可能是从 deftype 和 defrecord 中提取共享代码,但这似乎要做很多工作。

此外,补丁还添加了几个测试。由于 type->str 不应在高级构建中使用,因此我必须添加一些实用宏来只在简单模式下运行这些测试。
还添加了针对 CLJS-1722 的测试,并在可能合并后取消注释。

(链接:1)https://github.com/binaryage/cljs-devtools/blob/52899e61e33373df36be8dcb23c69377936821b2/src/lib/devtools/munging.cljs#L56-L60

2 答案

0 投票

评论者:mfikes

补丁不再适用;需要重新基准测试。

0 投票
参考:https://clojure.atlassian.net/browse/CLJS-1725(由 darwin 报告)
...