You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SetBuilder missing terminal method — Added Set() Set[T] terminal method that returns the built set and invalidates the builder. Renamed the old Set(val T) to Add(val T) to avoid the name collision.
Value receivers on SetBuilder/SortedSetBuilder — Changed all methods on both builders to pointer receivers. Changed SetBuilder.s from Set[T] to *Set[T]. Renamed SortedSetBuilder.Set(val T) to Add(val T) for consistency. Added assert guards on all methods. Added invalidation and builder tests.
BatchMapBuilder.Flush inconsistent dedup — Fixed the large-buffer dedup path to iterate in reverse and then reverse the result, ensuring last-write-wins semantics consistent with all other code paths. Added TestBatchMapBuilder_LastWriteWins with four sub-tests.
StreamingMapBuilder unusable external API — Replaced the unexported mapEntry[K,V] parameter type with iter.Seq2[K,V] on all three methods (Stream, Filter, Transform). Removed the MapEntry interface and KV struct. Added/updated tests using maps.All.
t.Fatalf in goroutines — Replaced all t.Fatalf calls inside goroutines with t.Errorf + return. go vet now passes cleanly.
Queue complexity claim incorrect — Rewrote the entire Queue implementation to use an internal consList[T] (singly-linked list) instead of *List[T], achieving true amortized O(1) enqueue/dequeue. Rewrote QueueIterator to walk cons-list nodes. Restored the O(1) claim in docs. Added 6 new tests (mixed ops, snapshot isolation, builder, empty ops, etc.).
Unused mutable parameter in toTrie — Removed the parameter and updated both call sites.
updates
Oversized slice nodes from batch flush — Documented the intentional trade-off: batch-built lists may exceed listSliceThreshold, deferring the trie conversion to the first subsequent mutation.
Identity hash for small integers — Documented the trade-off on hashUint64: identity hashing causes HAMT root collisions for sequential keys, but applying the finalizer unconditionally would break hash stability.