评论者:jafingerhut
我不知道这个想法是否会得到评估,但如果有,我有一些关于提议补丁的评论。
新的符号 warn-on-replace 应该有文档和元数据。请参阅 core.clj 中 warn-on-reflection 的 add-doc-and-meta 以获取复制的示例并编辑。
在 Namespace.java 中,在发布警告之前检查 WARN_ON_REFLECTION,而不是 WARN_ON_REPLACE。
在 ns_libs.clj 中的测试描述中可能有打印错误:也许应该是 "clojure.core 中的符号" 而不是 "symbol is clojure.core"?
如果有人希望在 ns 表单中使用 :use 语句时收到警告,那么使用 patch clj-1257.diff 实现这一点的方法似乎只有一个,就是在文件中 ns 表单之前执行 (set! warn-on-replace true)。这可能与当前版本的 tools.namespace 不兼容,因为它假设如果存在 ns 表单,则它将是文件中的第一个表单。尽管人们可以论证 tools.namespace 不应做出这种假设,但现阶段它是这样做的。
可能应该有一个命令行选项 clojure.compile.warn-on-replace,就像 clojure.compile.warn-on-reflection 一样?(在 Compile.java 中搜索 warn-on-replace)?