注释由: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问题,所以我添加了该ticket中的测试来展示这一事实。它还对PersistentQueue进行了整理,移除了所有equals/hashcCode内容和所有Collection内容。
(实际上,由于ASeq已经实现了Obj,PersistentQueue实现Obj的事实并没有构成使用它的障碍。)
欢迎对这种方法的评论,以及它与之前补丁在这里以及CLJ-1070补丁的不同之处。