From 9825c234e8a51a00a6708b4131a3f0d32b3dddbc Mon Sep 17 00:00:00 2001 From: Ruben Schmidmeister <4602612+bash@users.noreply.github.com> Date: Tue, 22 Nov 2022 10:35:12 +0100 Subject: [PATCH 1/2] Bump version and update changelog --- ...DiscriminatedUnion.SourceGeneration.csproj | 2 +- changelog.md | 5 ++- readme.md | 43 +++++++++++++++++++ 3 files changed, 48 insertions(+), 2 deletions(-) diff --git a/Funcky.DiscriminatedUnion.SourceGeneration/Funcky.DiscriminatedUnion.SourceGeneration.csproj b/Funcky.DiscriminatedUnion.SourceGeneration/Funcky.DiscriminatedUnion.SourceGeneration.csproj index 7586859..16fd170 100644 --- a/Funcky.DiscriminatedUnion.SourceGeneration/Funcky.DiscriminatedUnion.SourceGeneration.csproj +++ b/Funcky.DiscriminatedUnion.SourceGeneration/Funcky.DiscriminatedUnion.SourceGeneration.csproj @@ -8,7 +8,7 @@ 11.0 - 1.0.0 + 1.1.0 Funcky.DiscriminatedUnion Polyadic MIT OR Apache-2.0 diff --git a/changelog.md b/changelog.md index a81f924..28f6358 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,9 @@ # Changelog +## 1.1.0 +* Add support for generating `[JsonDerivedType]` attributes. + ## 1.0.0 * Re-release of 0.1.0 ## 0.1.0 -* Initial release \ No newline at end of file +* Initial release diff --git a/readme.md b/readme.md index 2c1e7da..4c73082 100644 --- a/readme.md +++ b/readme.md @@ -88,3 +88,46 @@ public abstract partial record SyntaxNode } ``` +### `[JsonPolymorphic]` +System.Text.Json adds support for [serializing derived classes][json-polymorphism-docs] starting with .NET 7. +This generator supports this feature by generating the required `[JsonDerivedType]` attributes for you. + +All missing `[JsonDerivedType]` attributes are generated if at least one `[JsonDerivedType]` or `[JsonPolymorphic]` +attribute is specified. + +```cs +using Funcky; +using System.Text.Serialization; + +[DiscriminatedUnion] +[JsonPolymorphic] +public abstract partial record Shape +{ + public sealed partial record Rectangle(double Width, double Length) : Shape; + + public sealed partial record Circle(double Radius) : Shape; + + public sealed partial record EquilateralTriangle(double SideLength) : Shape; +} +``` + +
+ +Generated code + +```cs +using System.Text.Serialization; + +[JsonDerivedType(typeof(Rectangle), typeDiscriminator: nameof(Rectangle))] +[JsonDerivedType(typeof(Circle), typeDiscriminator: nameof(Circle))] +[JsonDerivedType(typeof(EquilateralTriangle), typeDiscriminator: nameof(EquilateralTriangle))] +partial record Shape +{ + // ... +} +``` + +
+ + +[json-polymorphism-docs]: https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/polymorphism From dca4d6ccc32e36909e4d6dfb738a772f292bf31c Mon Sep 17 00:00:00 2001 From: Ruben Schmidmeister <4602612+bash@users.noreply.github.com> Date: Tue, 22 Nov 2022 10:41:35 +0100 Subject: [PATCH 2/2] Update version in generated files --- ...eFileName=DeeplyNestedUnion.01.verified.cs | 8 ++-- ...e_sourceFileName=EmptyUnion.01.verified.cs | 4 +- ...sourceFileName=GenericUnion.01.verified.cs | 12 +++--- ...rceFileName=JsonPolymorphic.01.verified.cs | 40 +++++++++---------- ...me=KeywordsAsParameterNames.01.verified.cs | 12 +++--- ...AndSyntacticallyNestedUnion.01.verified.cs | 24 +++++------ ...callyNestedUnionWithFlatten.01.verified.cs | 12 +++--- ...callyNestedUnionWithFlatten.01.verified.cs | 12 +++--- ...ourceFileName=NonExhaustive.01.verified.cs | 12 +++--- ...nNestedInMultipleNamespaces.01.verified.cs | 8 ++-- ...thConflictingResultTypeName.01.verified.cs | 8 ++-- 11 files changed, 76 insertions(+), 76 deletions(-) diff --git a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=DeeplyNestedUnion.01.verified.cs b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=DeeplyNestedUnion.01.verified.cs index 4b6f86e..4e75c79 100644 --- a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=DeeplyNestedUnion.01.verified.cs +++ b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=DeeplyNestedUnion.01.verified.cs @@ -14,18 +14,18 @@ partial class StaticClass { partial record NestedUnion { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract TResult Match(global::System.Func variant); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract void Switch(global::System.Action variant); partial record Variant { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func variant) => variant(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action variant) => variant(this); } } diff --git a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=EmptyUnion.01.verified.cs b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=EmptyUnion.01.verified.cs index 1609218..ae456ec 100644 --- a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=EmptyUnion.01.verified.cs +++ b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=EmptyUnion.01.verified.cs @@ -4,9 +4,9 @@ partial record EmptyUnion { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract TResult Match(); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract void Switch(); } diff --git a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=GenericUnion.01.verified.cs b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=GenericUnion.01.verified.cs index 4cd4624..165fd82 100644 --- a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=GenericUnion.01.verified.cs +++ b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=GenericUnion.01.verified.cs @@ -6,27 +6,27 @@ namespace Funcky.DiscriminatedUnion.Test { partial record Result where T : notnull { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] internal abstract TResult Match(global::System.Func ok, global::System.Func error); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] internal abstract void Switch(global::System.Action ok, global::System.Action error); partial record Ok { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] internal override TResult Match(global::System.Func ok, global::System.Func error) => ok(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] internal override void Switch(global::System.Action ok, global::System.Action error) => ok(this); } partial record Error { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] internal override TResult Match(global::System.Func ok, global::System.Func error) => error(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] internal override void Switch(global::System.Action ok, global::System.Action error) => error(this); } } diff --git a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=JsonPolymorphic.01.verified.cs b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=JsonPolymorphic.01.verified.cs index 77018a6..e82aa26 100644 --- a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=JsonPolymorphic.01.verified.cs +++ b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=JsonPolymorphic.01.verified.cs @@ -6,27 +6,27 @@ [global::System.Text.Json.Serialization.JsonDerivedType(typeof(global::Result.Error), "Error")] partial record Result { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract TResult Match(global::System.Func ok, global::System.Func error); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract void Switch(global::System.Action ok, global::System.Action error); partial record Ok { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func ok, global::System.Func error) => ok(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action ok, global::System.Action error) => ok(this); } partial record Error { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func ok, global::System.Func error) => error(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action ok, global::System.Action error) => error(this); } } @@ -39,27 +39,27 @@ partial class Nesting2 [global::System.Text.Json.Serialization.JsonDerivedType(typeof(global::Nesting1<, , >.Nesting2<>.Result<>.Error), "Error")] partial record Result { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract TResult Match(global::System.Func ok, global::System.Func error); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract void Switch(global::System.Action ok, global::System.Action error); partial record Ok { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func ok, global::System.Func error) => ok(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action ok, global::System.Action error) => ok(this); } partial record Error { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func ok, global::System.Func error) => error(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action ok, global::System.Action error) => error(this); } } @@ -69,36 +69,36 @@ partial record Error [global::System.Text.Json.Serialization.JsonDerivedType(typeof(global::Shape.EquilateralTriangle), "EquilateralTriangle")] partial record Shape { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract TResult Match(global::System.Func rectangle, global::System.Func circle, global::System.Func equilateralTriangle); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract void Switch(global::System.Action rectangle, global::System.Action circle, global::System.Action equilateralTriangle); partial record Rectangle { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func rectangle, global::System.Func circle, global::System.Func equilateralTriangle) => rectangle(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action rectangle, global::System.Action circle, global::System.Action equilateralTriangle) => rectangle(this); } partial record Circle { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func rectangle, global::System.Func circle, global::System.Func equilateralTriangle) => circle(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action rectangle, global::System.Action circle, global::System.Action equilateralTriangle) => circle(this); } partial record EquilateralTriangle { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func rectangle, global::System.Func circle, global::System.Func equilateralTriangle) => equilateralTriangle(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action rectangle, global::System.Action circle, global::System.Action equilateralTriangle) => equilateralTriangle(this); } } diff --git a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=KeywordsAsParameterNames.01.verified.cs b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=KeywordsAsParameterNames.01.verified.cs index 01b82ff..2efd68c 100644 --- a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=KeywordsAsParameterNames.01.verified.cs +++ b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=KeywordsAsParameterNames.01.verified.cs @@ -6,27 +6,27 @@ namespace Funcky.DiscriminatedUnion.Test { partial record Bool { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract TResult Match(global::System.Func @true, global::System.Func @false); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract void Switch(global::System.Action @true, global::System.Action @false); partial record True { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func @true, global::System.Func @false) => @true(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action @true, global::System.Action @false) => @true(this); } partial record False { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func @true, global::System.Func @false) => @false(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action @true, global::System.Action @false) => @false(this); } } diff --git a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=LogicallyAndSyntacticallyNestedUnion.01.verified.cs b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=LogicallyAndSyntacticallyNestedUnion.01.verified.cs index 606df5c..7fb5f33 100644 --- a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=LogicallyAndSyntacticallyNestedUnion.01.verified.cs +++ b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=LogicallyAndSyntacticallyNestedUnion.01.verified.cs @@ -6,27 +6,27 @@ namespace Funcky.DiscriminatedUnion.Test { partial record SyntaxNode { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract TResult Match(global::System.Func keyword, global::System.Func literal); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract void Switch(global::System.Action keyword, global::System.Action literal); partial record Keyword { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func keyword, global::System.Func literal) => keyword(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action keyword, global::System.Action literal) => keyword(this); } partial record Literal { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func keyword, global::System.Func literal) => literal(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action keyword, global::System.Action literal) => literal(this); } } @@ -38,27 +38,27 @@ partial record SyntaxNode { partial record Literal { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract TResult Match(global::System.Func integer, global::System.Func @string); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract void Switch(global::System.Action integer, global::System.Action @string); partial record Integer { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func integer, global::System.Func @string) => integer(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action integer, global::System.Action @string) => integer(this); } partial record String { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func integer, global::System.Func @string) => @string(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action integer, global::System.Action @string) => @string(this); } } diff --git a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=LogicallyAndSyntacticallyNestedUnionWithFlatten.01.verified.cs b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=LogicallyAndSyntacticallyNestedUnionWithFlatten.01.verified.cs index c138945..2abe511 100644 --- a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=LogicallyAndSyntacticallyNestedUnionWithFlatten.01.verified.cs +++ b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=LogicallyAndSyntacticallyNestedUnionWithFlatten.01.verified.cs @@ -6,18 +6,18 @@ namespace Funcky.DiscriminatedUnion.Test { partial record SyntaxNodeFlattened { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract TResult Match(global::System.Func keyword, global::System.Func integer); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract void Switch(global::System.Action keyword, global::System.Action integer); partial record Keyword { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func keyword, global::System.Func integer) => keyword(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action keyword, global::System.Action integer) => keyword(this); } @@ -27,10 +27,10 @@ partial record Number { partial record Integer { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func keyword, global::System.Func integer) => integer(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action keyword, global::System.Action integer) => integer(this); } } diff --git a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=LogicallyNestedUnionWithFlatten.01.verified.cs b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=LogicallyNestedUnionWithFlatten.01.verified.cs index 346de4b..dbe5dfe 100644 --- a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=LogicallyNestedUnionWithFlatten.01.verified.cs +++ b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=LogicallyNestedUnionWithFlatten.01.verified.cs @@ -6,27 +6,27 @@ namespace Funcky.DiscriminatedUnion.Test { partial record SyntaxNodeFlattened { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract TResult Match(global::System.Func keyword, global::System.Func integer); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract void Switch(global::System.Action keyword, global::System.Action integer); partial record Keyword { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func keyword, global::System.Func integer) => keyword(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action keyword, global::System.Action integer) => keyword(this); } partial record Integer { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func keyword, global::System.Func integer) => integer(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action keyword, global::System.Action integer) => integer(this); } } diff --git a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=NonExhaustive.01.verified.cs b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=NonExhaustive.01.verified.cs index 4cd4624..165fd82 100644 --- a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=NonExhaustive.01.verified.cs +++ b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=NonExhaustive.01.verified.cs @@ -6,27 +6,27 @@ namespace Funcky.DiscriminatedUnion.Test { partial record Result where T : notnull { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] internal abstract TResult Match(global::System.Func ok, global::System.Func error); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] internal abstract void Switch(global::System.Action ok, global::System.Action error); partial record Ok { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] internal override TResult Match(global::System.Func ok, global::System.Func error) => ok(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] internal override void Switch(global::System.Action ok, global::System.Action error) => ok(this); } partial record Error { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] internal override TResult Match(global::System.Func ok, global::System.Func error) => error(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] internal override void Switch(global::System.Action ok, global::System.Action error) => error(this); } } diff --git a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=UnionNestedInMultipleNamespaces.01.verified.cs b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=UnionNestedInMultipleNamespaces.01.verified.cs index 7f65495..b8193a6 100644 --- a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=UnionNestedInMultipleNamespaces.01.verified.cs +++ b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=UnionNestedInMultipleNamespaces.01.verified.cs @@ -6,18 +6,18 @@ namespace Foo.Bar { partial record NestedUnion { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract TResult Match(global::System.Func variant); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract void Switch(global::System.Action variant); partial record Variant { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TResult Match(global::System.Func variant) => variant(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action variant) => variant(this); } } diff --git a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=UnionWithConflictingResultTypeName.01.verified.cs b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=UnionWithConflictingResultTypeName.01.verified.cs index f25e957..e44849b 100644 --- a/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=UnionWithConflictingResultTypeName.01.verified.cs +++ b/Funcky.DiscriminatedUnion.Test/SourceGeneratorTest.GeneratesExpectedSourceCode_sourceFileName=UnionWithConflictingResultTypeName.01.verified.cs @@ -4,18 +4,18 @@ partial record UnionWithConflictingGenericType { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract TMatchResult Match(global::System.Func variant); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public abstract void Switch(global::System.Action variant); partial record Variant { - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override TMatchResult Match(global::System.Func variant) => variant(this); - [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCode("Funcky.DiscriminatedUnion.SourceGeneration", "1.1.0.0")] public override void Switch(global::System.Action variant) => variant(this); } }