欢迎!请查看关于页面以获取更多相关信息。
提交 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
我不同意我们应该忽略错误的类型提示。如果编译器知道有什么问题,它应该立即通知用户,而不是默默地忽略问题,在运行时可能导致失败。
描述部分可以加上一些示例。