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

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

+1 投票
错误

将CLJ-1232提交到主分支后,如果使用无效的类型对defn进行类型提示,Clojure编译器可能会抛出NPE。在CLJS中表现为defn宏被ClojureScript编译器重用,但我想这提出了一个问题:“错误类型提示是否应该导致编译器异常?”

问题所在行可在GitHub上找到:https://github.com/clojure/clojure/blob/master/src/clj/clojure/core.clj#L247

5 答案

0 投票

评论由: alexmiller

这基本上与CLJ-1868相同,但我认为您在这里询问的是是否应该忽略错误类型提示或抛出任何异常,对吗?

( whereas CLJ-1868 是关于抛出哪种异常/消息)

0 投票

评论由: halgari

同意。我认为另一个可能的解决方案可能是更新CLJS以不使用CLJ的defn,但我仍然认为应该忽略错误类型提示。

0 投票

评论来自:bronsa

我不同意我们应该忽略错误的类型提示。
如果编译器知道某处有问题,它应该立即通知用户,而不是默默地忽略,并在稍后运行时可能出错。

0 投票

评论由: alexmiller

文章描述部分可以加入一些示例。

0 投票
参考:[https://clojure.atlassian.net/browse/CLJ-1863](https://clojure.atlassian.net/browse/CLJ-1863)(由halgari报告)
...