评论者: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使用类型提示覆盖其报告的类"的提交:对于上述任何 Leiningen 命令都没有错误或警告。
下一个带有描述"添加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的命名空间compiler-update-not-referenced-bug.core中)的调试打印显示,当在data.int-map内部打印时一切看起来都不错,在Tom的命名空间中(不在uberjar情况下),但是当进行uberjar测试时,int-map/update在Tom的命名空间中未绑定。
如果这很重要,我的测试是在Mac OS X 10.9.5、Leiningen 2.5.0、Java 1.7.0_45 Java HotSpot(TM) 64-Bit Server VM上进行的