Skip to content

Mark the range unions closed on release/10.x, built with the .NET 11 SDK for net10.0 (port of #149) #534

Open

Description

@CaffeinatedCoder

Problem

#149 marks the range unions closed on both lines, and its 10.x half had to wait for .NET 11 GA: a stable package must not build with LangVersion preview. .NET 11 has been generally available since 2026-11-10.

release/10.x builds with SDK 10 (global.json pins 10.0.100), whose compiler has no C# 15. So this port is also the change that moves the 10.x build to the .NET 11 SDK, still targeting net10.0.

Blocked by

Change

  • global.json on release/10.x to the SDK 11 band, LangVersion 15, TargetFramework unchanged. CI on the branch installs the .NET 11 SDK and the .NET 10 runtime.
  • Cherry-pick Mark the range unions closed (C# 15) for compile-time exhaustiveness, on both lines #149 with -x: closed on every union type, and the IsClosedTypeAttribute polyfill under #if !NET11_0_OR_GREATER in each shipping assembly.
  • Before the cherry-pick, build the branch on SDK 11 with no source change and compare. The new compiler and analyzers must add no warning (warnings are errors), and the packed net10.0 assemblies must have the same public surface (dotnet apicompat against 10.4.0).
  • The Native AOT smoke consumer switches over a range with no discard arm.

Does it change an answer?

No. It ships only if package validation against the 10.x baseline stays clean with no suppression. A consumer's existing _ => throw arm keeps compiling without a warning, and a consumer on a compiler before C# 15 sees no difference.

Done when

Activity

  1. added this to the 10.5.0 milestone on Nov 11, 2026
  2. added
    enhancementNew feature or request
    area/rangesRange unions, variants and the shape engines
    area/range-setRangeSet and multirange algebra
    package/nodatimeAffects CodoMetis.ValueRanges.NodaTime
    package/coreAffects CodoMetis.ValueRanges
    on Nov 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/range-setRangeSet and multirange algebraarea/rangesRange unions, variants and the shape enginesenhancementNew feature or requestpackage/coreAffects CodoMetis.ValueRangespackage/nodatimeAffects CodoMetis.ValueRanges.NodaTime

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions