评论由: ppotter
附上 002-make-PersistentQueue-implement-Asequential.diff
这个补丁是 001-make-PersistentQueue-implement-List.diff 的替代方案。
所以,我接受了你关于 ASeq 的建议,但感觉直接让 PersistentQueue 实现 ISeq 并不完全合适。
所以我把 ASeq 分成了两部分——ASequential,它实现了 j.u.{Collection,List} 并管理列表相等性和哈希码;以及 ASeq,老实说,它似乎已经没有什么用了。
此外,这个补丁还解决了 CLJ-1070 问题,因此我添加了该票证的测试以证明这一点。它还对 PersistentQueue 进行了整理,移除了所有 equals/hashcCode 东西以及所有 Collection 东西。
(结果发现,由于 ASeq 已经实现了 Obj,PersistentQueue 实现 Obj 并不是使用它的障碍。)
我希望您对这个方法提供意见,并说明它与这里的上一个补丁和 CLJ-1070 的补丁有何不同。