diff --git a/README.md b/README.md index 2d91a575..8038bde1 100644 --- a/README.md +++ b/README.md @@ -44,11 +44,12 @@ These packages live in their own repositories. | Package | NuGet | Description | | --- | --- | --- | | **[Funcky.EntityFrameworkCore](https://github.com/polyadic/funcky-efcore)** | [![NuGet Version](https://img.shields.io/nuget/v/Funcky.EntityFrameworkCore)](https://www.nuget.org/packages/Funcky.EntityFrameworkCore) | Interoperability between Funcky and EF Core. | -| **[Funcky.DiscriminatedUnion](https://github.com/polyadic/funcky-discriminated-union)** | [![NuGet Version](https://img.shields.io/nuget/v/Funcky.DiscriminatedUnion)](https://www.nuget.org/packages/Funcky.DiscriminatedUnion) | Source generator for `Match` methods on discriminated unions. Retiring, see below. | +| **[Funcky.DiscriminatedUnion](https://github.com/polyadic/funcky-discriminated-union)** | [![NuGet Version](https://img.shields.io/nuget/v/Funcky.DiscriminatedUnion)](https://www.nuget.org/packages/Funcky.DiscriminatedUnion) | Source generator for `Match` methods on discriminated unions. Retired, see below. | -**Funcky.DiscriminatedUnion is retiring with Funcky 4.0.0.** C# gets native `union` types and `closed` hierarchies -with .NET 11, which Funcky 4.0.0 adopts. The generator keeps working with the 3.x line but receives no new features, -see [#900](https://github.com/polyadic/funcky/issues/900). +**Funcky.DiscriminatedUnion is retired.** C# has native `union` types and `closed` hierarchies since .NET 11, which +cover what `[DiscriminatedUnion]` generated: a `closed` hierarchy (or a `union`) with a `switch` expression over its +cases is exhaustive without a generated `Match`. The final 1.2.x version stays on NuGet for projects on the Funcky 3.x +line and receives no further changes; see [#900](https://github.com/polyadic/funcky/issues/900). ## Highlights diff --git a/changelog.md b/changelog.md index d1ddf3a0..c42ddfab 100644 --- a/changelog.md +++ b/changelog.md @@ -53,6 +53,12 @@ Funcky adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). * Breaking (Funcky.Analyzers 3.0.0): λ1202 and λ1203 retire, since the forms they pointed away from no longer exist; their numbers stay reserved. λ1201 stays as an opt-in style rule, because both parse forms remain. The C# 14 language gate of the `λ12xx` rules is gone: Funcky 4 requires the .NET 10 SDK, whose compiler always binds the extension forms. +* Retired: [Funcky.DiscriminatedUnion](https://github.com/polyadic/funcky-discriminated-union), announced in 3.8.0, is + retired with this release. C# has native `union` types and `closed` hierarchies since .NET 11, which cover what the + generator did: replace `[DiscriminatedUnion]` on the abstract base with `closed` (or declare a `union`) and the + generated `Match` with a `switch` expression over the cases, which the compiler checks for exhaustiveness. The final + 1.2.x version of the generator stays on NuGet for the 3.x line and receives no further changes. Details in + [#900](https://github.com/polyadic/funcky/issues/900). * Funcky and Funcky.Async add a `net11.0` asset and are built with the .NET 11 SDK (release candidate 3 while .NET 11 is in preview). The `net11.0` asset of Funcky.Async only forwards to Funcky, like the `net10.0` one. No target framework is removed in this step; see `SupportPolicy.md` for the frameworks Funcky 4 drops.