评论者:jafingerhut
我并不知道这个想法会不会被审查,但是如果被审查,我有一些关于建议补丁的评论。
新符号 warn-on-replace 应该有文档和元数据。请参考 core.clj 中的.warn-on-reflection 添加文档和元数据的一个例子。
在 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)?