评论由: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 补丁不同的评论。