评论者:ppotter
附上 002-make-PersistentQueue-implement-Asequential.diff
此补丁是 001-make-PersistentQueue-implement-List.diff 的替代方案
所以我参考了你关于 ASeq 的看法,但直接使 PersistentQueue 实现 ISeq 感觉不太对。
所以我将 ASeq 分成两部分——ASequential,它实现 j.u.{Collection,List} 并管理 List-equality 和 hashcodes;以及 ASeq,它...老实说,似乎不再做什么了。
作为加分项,此补丁还修复了 CLJ-1070,因此我添加了该条目的测试以证明这一点。它还整理了 PersistentQueue,删除了所有 equals/hashcCode 东西以及所有 Collection 东西。
(结果是,由于 ASeq 已经实现了 Obj,PersistentQueue 实现 Obj 并不是使用它的障碍。)
欢迎对这种方法的评论,以及它与之前在此处和CLJ-1070上面的补丁的差异。