评论者: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不兼容,因为tools.namespace假定如果文件中有ns形式,它将是文件中的第一个形式。可以争论说,tools.namespace不应做出这种假设,但目前它是这样做的。
也许应该像clojure.compile.warn-on-reflection一样有一个命令行选项clojure.compile.warn-on-replace(在Compile.java中搜索warn-on-replace)?