评论者:jafingerhut
我不知道这个想法是否经过协商,但如果它通过了,我有一些关于所提议的补丁的评论。
新的符号 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语句中获取警告,那么似乎使用补丁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?