2024 Clojure 状态调查! 中分享您的观点。

欢迎!有关如何使用本网站的信息,请参阅 关于 页面。

0
编译器

extend-type 可以与非常量表达式作为其类型一起使用

(extend-type (class 1) proto (protof [this]))

然而,在这种情况下,这将带有 (class 1) 的标签,这显然是错误的;文档明确指出,参数将得到适当的类型提示:"(链接:..) 将类作为类型提示传播到所有函数的第一个参数中。"

我不知道 extend-type 是否不应该与非常量类一起使用,如果是这样,应该在文档中声明,或者当前行为是错误的。

2 个答案

0

评论者:jafingerhut

Eastwood 从大约版本 0.2.1 开始(或者可能需要等到尚未发布的 0.2.2 版本)将警告关于此类不正确的标签,如果启用了 :wrong-tag 检查器——默认情况下是启用的。Eastwood 文档中关于此检查器的部分有一个专门针对 extend-type 和 extend-protocol 的子部分,主要编写是为了 Andy,以便以后在 details again 时有一个可以参考的地方。

https://github.com/jonase/eastwood#wrong-tag

(您必须滚动一页或两页才能到达 extend-type / extend-protocol 的子部分)

0
参考:https://clojure.atlassian.net/browse/CLJ-1308(由 bronsa 报告的)
...