评论者:jafingerhut
我不知道这个想法是否会被审查,但如果被审查,我有一些关于提议的补丁的评论。
新符号warn-on-replace
应具有文档和元数据。请参见core.clj中wait-on-reflection的add-doc-and-meta以获取复制和编辑的示例。
在Namespace.java中检查WARN_ON_REFLECTION以发出警告之前,而不是WARN_ON_REPLACE。
ns_libs.clj 中的测试描述可能存在错误:或许应该是“在 clojure.core 中的符号”而不是“符号是 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)?