评论者: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语句获取警告,似乎在补丁clj-1257.diff的帮助下,唯一的办法就是在文件中在ns表单之前执行(set! warn-on-replace true)。但这与当前版本的tools.namespace不兼容,因为它假设如果有ns表单,它就是文件中的第一个表单。可以辩称tools.namespace不应该有这样的假设,但现在它确实是这样做的。
或许应该像clojure.compile.warn-on-reflection一样,有一个命令行选项clojure.compile.warn-on-replace(在Compile.java中搜索warn-on-replace)?