由:jafingerhut发表的评论
我不知道这个想法是否会被审查,但如果审查,我对建议的补丁有一些评论。
新的符号warn-on-replace应该有doc和元数据。请参见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-replace,就像clojure.compile.warn-on-reflection一样(在Compile.java中搜索warn-on-replace)?