评论由ppotter发表
附件:002-make-PersistentQueue-implement-Asequential.diff
这个补丁是相对于 001-make-PersistentQueue-implement-List.diff 的一个替代方案。
所以我考虑了您关于 ASeq 的说法,但感觉直接让 PersistentQueue 实现 ISeq 并不那么合适。
所以我将 ASeq 分成了两部分 —— ASequential,它实现了 j.u.{Collection,List} 并管理 List 的相性和哈希值;以及 ASeq,实话实说,似乎不再做什么了。
此外,该补丁还修复了CLJ-1070问题,因此我添加了该票证的测试来证明这一点。它还对PersistentQueue进行了整理,移除了所有equals/hashCode相关的东西和所有Collection相关的东西。
(事实证明,由于ASeq已经实现了Obj,PersistentQueue实现Obj并不妨碍使用它。)
希望收到对这种方法的评论,以及它与这里的前一个补丁以及CLJ-1070的补丁有何不同。