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

欢迎!请查看关于页面获取更多关于此功能的信息。

+1 投票
错误

将CLJ-1232提交到master后,如果使用无效类型对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相同,但我想你在这里询问的是是否应该忽略错误类型提示或者抛出异常,对吧?

(而CLJ-1868是关于抛出哪种异常/消息的问题)

0 投票

评论者:halgari

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

0 投票

评论由:bronsa

我不同意我们应该忽略错误的类型提示。
如果编译器知道有什么地方出错,它应该立即通知用户,而不是无声地忽略,并在运行时可能失败的情况下延迟

0 投票

评论者:alexmiller

描述部分可以添加一些示例

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