欢迎!请查看关于页面获取更多关于此功能的信息。
将CLJ-1232提交到master后,如果使用无效类型对defn进行类型提示,Clojure编译器可能会抛出NPE。这体现在CLJS中,因为defn宏在ClojureScript编译器中被重复使用,但我认为这提出了一个问题:“错误类型提示是否应该导致编译器异常?”
有关问题代码可以在GitHub上找到: https://github.com/clojure/clojure/blob/master/src/clj/clojure/core.clj#L247
评论者:alexmiller
这基本上与CLJ-1868相同,但我想你在这里询问的是是否应该忽略错误类型提示或者抛出异常,对吧?
(而CLJ-1868是关于抛出哪种异常/消息的问题)
评论者:halgari
我同意。我认为另一个可能的解决方案是更新CLJS以不使用CLJ的defn,但我仍然认为应该忽略错误类型提示。
评论由:bronsa
我不同意我们应该忽略错误的类型提示。如果编译器知道有什么地方出错,它应该立即通知用户,而不是无声地忽略,并在运行时可能失败的情况下延迟
描述部分可以添加一些示例