评论作者: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似乎只有这样做才能实现:先在文件中包含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)一样?