评论者:jafingerhut
我不知道这个想法是否会被审核,但如果会被审核,我有关于提议的补丁的一些评论。
在 core.clj 中,新的标记 warn-on-replace 应该有其文档和元数据。请参考 core.clj 中的 warn-on-reflection 以添加文档和元数据的例子。
在 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-reflection(在Compile.java中搜索warn-on-replace)的命令行选项clojure.compile.warn-on-replace?