评论者: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-reflection的命令行选项clojure.compile.warn-on-replace(在Compile.java中搜索warn-on-replace)?