请分享您的想法,完成 2024 年 Clojure 调查问卷!

欢迎!请查看关于页面以了解有关此操作的一些更多信息。

0
core.rrb-vector

我试图在 JDK 11 EA 版本上测试 boot,并在依赖链中出现 fipp,其作为依赖项包含 core.rrb-vector 0.0.11。它以以下错误失败:

 java.lang.IllegalArgumentException: Must hint overloaded method: toArray

clojure.lang.Compiler$CompilerException: java.lang.IllegalArgumentException: 必须提示重载方法:toArray,编译中:(clojure/core/rrb_vector/rrbt.clj:282:1)

         clojure.lang.ExceptionInfo: java.lang.IllegalArgumentException: Must hint overloaded method: toArray, compiling:(clojure/core/rrb_vector/rrbt.clj:282:1)

参考 Travis 构建: https://travis-ci.org/tirkarthi/boot/jobs/398611988#L803

几天前它还通过,但现在失败了。如果您在 master 中修复了这个问题,并且尚未发布,请随意关闭此问题。

成功的构建: https://travis-ci.org/tirkarthi/boot/jobs/398610834

9 答案

0

评论由:wcohen 发布

此补丁在 toArray 的 (link:此 arr) 参数上添加了类型提示,这使得在 JDK 11 EA 21 上编译和测试成功。它也适用于 JDK 8 和 10。

0

评论由:michalmarczyk 发布

谢谢!已应用并推送到仓库。将很快进行发布。

0

评论由:wcohen 发布

谢谢!今天早上我只签署/提交了Clojure的CA。如果还有人需要跟进,请告诉我。

0
_评论者:jafingerhut_

供以后参考,以防其他人好奇,这个错误在JDK 10和更早版本中不会发生,因为接口java.util.Collection中只有一个参数的方法名为“toArray”,这个方法是:https://download.java.net/java/early_access/jdk11/docs/api/java.base/java/util/Collection.html#toArray(T%5B%5D),其签名是"<T> T[] toArray​(T[] a)"

从JDK 11开始,接口java.util.Collection中又增加了一个名为“toArray”的一个参数方法: https://download.java.net/java/early_access/jdk11/docs/api/java.base/java/util/Collection.html#toArray(java.util.function.IntFunction),其签名是"default <T> T[] toArray​(IntFunction<T[]> generator)"

因此,没有类型提示,Clojure编译器无法确定在尝试使用具有一个参数的(deftype)形式定义toArray时,指的是哪个方法(Clojure的deftype方法定义中多一个额外的参数)。
0

评论者:xtreak

感谢@jafingerhut提供信息。相关提交: http://hg.openjdk.java.net/jdk/jdk11/rev/3ef0862bbb3d 。这也似乎会对Clojure的master分支产生影响,而Will Cohen的补丁帮助测试通过了。我在那里开放了一个相关的问题: https://dev.clojure.org/jira/browse/CLJ-2374

0

评论者:kanwei

rrb-vector是否有可能进行新版本发布?JDK 11现在是RC版,看起来master分支上的问题已经修复。谢谢!

0

评论者:gshayban

这将出现在最新版本中,我认为这个票已经可以关闭。

0

评论者:[email protected]

此功能已合并至https://github.com/clojure/core.rrb-vector/commit/b489b3249d56bb6a104c2d4ead2da8ade8dd29b4,并在0.0.12及更高版本中可用(写作时的最新版本为0.0.13)。以下内容可方便复制粘贴

[org.clojure/core.rrb-vector "0.0.13"]

0
参考:https://clojure.atlassian.net/browse/CRRBV-18(由xtreak上报)
...