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 有一个可以参考的地方,在再次忘记细节后。

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

(您可能需要滚动一页或两页才能到达关于 extend-type / extend-protocol 的子部分)

0
...