评论者:jafingerhut
这条评论与CLJ-1604工单最为相关,其中已复制。
Tom,看了你的项目。谢谢。看起来里面没有像(def inc inc)这样的内容。我在'lein do clean, uberjar, test'的测试步骤中一直出现异常,编译时也只有警告并通过了'lein do clean, test'的测试。我有更多的测试结果显示出这些结果在不同版本的Clojure中会有所不同。总结来说,对Clojure所做的变更似乎是影响最大的以下变更(这些应添加到您创建的新工单中——欢迎您这样做):
Clojure 1.6.0,1.7.0-alpha1及其后的变更,直到带有描述"CLJ-1378:允许FnExpr通过类型提示覆盖其报告的类"的提交:上面两个lein命令都没有错误或警告。
下一个带有描述"添加clojure.core/update,类似于update-in,但只接受一个键"的提交,添加了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中看到的一样。clojure.core/update和int-map/update(在data.int-map和Tom的namespace compiler-update-not-referenced-bug.core中)的调试打印显示,在data.int-map中打印时看起来正常,在Tom的namespace中没有进行uberjar时也是如此,但在进行uberjar时,Tom的namespace中的int-map/update未绑定。
如果这有问题的话,我的测试是在Mac OS X 10.9.5、Leiningen 2.5.0和Java 1.7.0_45 Java HotSpot(TM) 64-Bit Server VM上进行的。