-
-
Notifications
You must be signed in to change notification settings - Fork 3
Adopt MoreLINQ; remove duplicated collection extensions #355
Copy link
Copy link
Open
Labels
breaking-changeChange is breaking — requires major version bump per CLAUDE.md semver policy.Change is breaking — requires major version bump per CLAUDE.md semver policy.enhancementNew feature or requestNew feature or requesttarget/2026Targets the 2026 calendar-version line (current). See ADR-0004.Targets the 2026 calendar-version line (current). See ADR-0004.
Metadata
Metadata
Assignees
Labels
breaking-changeChange is breaking — requires major version bump per CLAUDE.md semver policy.Change is breaking — requires major version bump per CLAUDE.md semver policy.enhancementNew feature or requestNew feature or requesttarget/2026Targets the 2026 calendar-version line (current). See ADR-0004.Targets the 2026 calendar-version line (current). See ADR-0004.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Tier 2 — Consolidate.
src/Fallout.Utilities/Collections/(~900 LOC, 23 files) contains many LINQ-like helpers that duplicate MoreLINQ:Enumerable.Distinct.cs(DistinctBy),Enumerable.Random.cs(Random/Shuffle),Enumerable.TakeUntil.cs,Enumerable.ForEach.cs.Action
Add MoreLINQ; delete the duplicated helpers and redirect call sites.
Keep (genuinely Fallout-specific — do NOT delete)
Enumerable.TopologicalSort.cs(cycle-detecting sort used for target ordering)LookupTable.cs(mutableILookup— no BCL/MoreLINQ equivalent)Enumerable.SingleOrDefaultOrError.cs/Enumerable.ToDictionary.cs(custom diagnostic messages)These are public extension methods. Removal breaks consumers →
breaking-change,experimental, batched to yearly major, CHANGELOG migration note. Where feasible, keep[Obsolete]forwarders.Acceptance
Directory.Packages.propsDistinct/Random/TakeUntil/ForEachhelpers removed or obsoletedFrom dependency-consolidation audit, 2026-06-02.