评论者:jafingerhut
我不知道这个想法是否会受到审查,但如果它被审查,我对提议的补丁有一些评论。
新的符号 warn-on-replace 应该有一个 doc 和 metadata,请参考 core.clj 中对 warn-on-reflection 的 add-doc-and-meta 以获得复制和编辑的示例。
在 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。