评论者:jafingerhut
此评论对ticket CLJ-1604最为相关,其中已经进行了复制
Tom,查看了你的项目。感谢你的帮助。看起来项目中没有类似(def inc inc)的东西。对我来说,它在“lein do clean, uberjar, test”的测试步骤中一致抛出异常,但仅编译警告通过,以及使用“lein do clean, test”通过测试。我还有更多关于这些结果在不同Clojure版本变化中显示的测试结果。总结一下,引起结果变化最大的Clojure更改如下(这些应添加到你创建的新ticket中--你可以这样做)
Clojure 1.6.0、1.7.0-alpha1以及之后的更改,直至包含描述“CLJ-1378:允许FnExpr使用类型提示覆盖其报告的类”:上面两个lein命令都没有错误或警告。
下一个描述为“添加clojure.core/update,像update-in但只接受单个key”的提交添加了clojure.core/update:'lein do clean, test'可以正常工作,但'lein do clean, uberjar'在编译时抛出异常,可能是由于CLJ-1241。
下一个描述为“修复CLJ-1241”的提交:'lein do clean, test'和'lein do clean, uberjar'会关于clojure.core/update发出警告,但没有错误或异常。'lein do clean, uberjar, test'会在测试步骤中抛出异常,与我所看到的Clojure 1.7.0-alpha4中的相同。在数据.int-map内部打印clojure.core/update和int-map/update(在data.int-map和Tom的命名空间compiler-update-not-referenced-bug.core中)的调试打印显示当在data.int-map内部打印时和在不进行uberjar的Tom的命名空间中一切看起来都正常,但进行uberjar和测试时,在Tom的命名空间中int-map/update未绑定。
如有必要,我的测试是在Mac OS X 10.9.5、Java 1.7.0_45 Java HotSpot(TM) 64-Bit Server VM、Leiningen 2.5.0上进行的