Skip to content

Delete dead shims: Lazy.cs and Dictionary.GetOrDefault (netstandard2.0) #357

Description

@ChrisonSimtian

Tier 2 — Cleanup. Two helpers carry no weight:

  • src/Fallout.Utilities/Lazy.cs (~18 LOC) — Lazy.Create<T>(func) is just new Lazy<T>(func). Inline at call sites and delete.
  • src/Fallout.Utilities/Collections/Dictionary.GetOrDefault.cs (~23 LOC) — a netstandard2.0-only GetValueOrDefault shim. Built into the BCL since .NET 5; the project no longer needs the polyfill.

⚠️ Breaking change

Lazy.Create is public surface → if removed outright, breaking-change + experimental + CHANGELOG migration note. Prefer an [Obsolete] forwarder for one cycle. The Dictionary shim is conditionally compiled and effectively dead.

Acceptance

  • Lazy.Create call sites inlined; type obsoleted/removed
  • Dictionary.GetOrDefault netstandard2.0 conditional removed
  • CHANGELOG entry if any public removal

From dependency-consolidation audit, 2026-06-02.

Metadata

Metadata

Assignees

No one assigned

    Labels

    breaking-changeChange is breaking — requires major version bump per CLAUDE.md semver policy.enhancementNew feature or requesttarget/2026Targets the 2026 calendar-version line (current). See ADR-0004.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions