评论者:ppotter
已附加 002-make-PersistentQueue-implement-Asequential.diff
这个补丁是 001-make-PersistentQueue-implement-List.diff 的替代方案
因此,我考虑了你关于 ASeq 的意见,但直接让 PersistentQueue 实现 ISeq 感觉不太对劲。
因此,我将 ASeq 分为两部分——ASequential,它实现了 j.u.{Collection,List} 并管理 List-equality 和 hashcode;以及 ASeq,坦白说,它似乎不再做什么了。
作为额外的好处,这个补丁还解决了 CLJ-1070 的问题,所以我添加了那个问题中的测试来证明这一点。我还整理了 PersistentQueue,移除了所有 equals/hashcode 东西以及所有 Collection 东西。
(结果证明,因为 ASeq 已经实现了 Obj,所以 PersistentQueue 实现 Obj 并没有成为使用它的障碍。)
欢迎对该方法提出评论,以及它和此处之前补丁以及CLJ-1070上的补丁的不同之处。