以下是 jafingerhut 的评论:
我不知道这个想法是否会得到审查,但如果它得到审查,我对提出的补丁有一些评论。
新的符号 warn-on-replace 应该有关联的文档和元数据。请以 core.clj 中 warn-on-reflection 的 add-doc-and-meta 为例进行复制和编辑。
在 Namespace.java 中发出警告之前,请检查 WARN_ON_REFLECTION 而不是 WARN_ON_REPLACE。
在 ns_libs.clj 中的测试描述可能有误:可能是 “symbol in clojure.core” 而不是 “symbol is clojure.core”?
如果有人想在 ns 表单中使用 :use 语句时收到警告,似乎使用 patch clj-1257.diff 的唯一方法是先在文件中某个位置设置 (set! warn-on-replace true),这个位置应当在 ns 表单之前。但这可能不会与当前版本的 tools.namespace 一起很好地工作,因为 tools.namespace 假设如果存在 ns 表单,它将是文件中的第一个形式。有人可能会说,tools.namespace 不应该做这样的假设,但现在它确实这样做了。
也许应该有一个类似于 clojure.compile.warn-on-reflection 的命令行选项 clojure.compile.warn-on-replace(在 Compile.java 中搜索 warn-on-replace)?