评论者: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,所以我添加了该票项的测试来证明这一点。它还通过删除所有 equals/hashcCode 东西和所有 Collection 东西来整理了 PersistentQueue。
(事实证明,由于 ASeq 已经实现了 Obj,所以 PersistentQueue 实现 Obj 并不影响它的使用。)
希望您能对这种方法提出意见,以及它与之前补丁的差异以及 CLJ-1070 上补丁的差异。