diff --git a/README.md b/README.md index 47a4f28..99a14ef 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ public readonly partial struct Int32OrString #nullable enable namespace EfficientUnionGenerator.SampleApp.SimpleUnionOfInt32OrString; - +[System.Runtime.CompilerServices.Union] partial struct Int32OrString { private enum __TypeSpecifier : byte @@ -146,7 +146,7 @@ public readonly partial struct SignedInteger #nullable enable namespace EfficientUnionGenerator.SampleApp.SimpleUnionOfSignedInteger; - +[System.Runtime.CompilerServices.Union] partial struct SignedInteger { private enum __TypeSpecifier : byte @@ -312,7 +312,7 @@ public static class Program #nullable enable namespace EfficientUnionGenerator.SampleApp.PositiveOnlyIntOrFloat; - +[System.Runtime.CompilerServices.Union] partial struct PositiveOnlyIntOrFloat { private enum __TypeSpecifier : uint @@ -444,7 +444,7 @@ public readonly partial struct ElfHeader #nullable enable namespace EfficientUnionGenerator.SampleApp.ElfHeader; - +[System.Runtime.CompilerServices.Union] partial struct ElfHeader { private enum __TypeSpecifier : ulong diff --git a/src/EfficientUnionGenerator/Generator.cs b/src/EfficientUnionGenerator/Generator.cs index 4983cba..1d40ba6 100644 --- a/src/EfficientUnionGenerator/Generator.cs +++ b/src/EfficientUnionGenerator/Generator.cs @@ -97,9 +97,11 @@ private static void EmitUnionType(SourceProductionContext context, UnionTypeDefi sb.AppendAutoGeneratedComment(); sb.AppendLine("#nullable enable"); sb.AppendNamespaceDeclaration(); + - using (sb.BeginTargetTypeDeclare()) + using (var typeDecl = sb.BeginTargetTypeDeclare()) { + typeDecl.AddAttribute($"System.Runtime.CompilerServices.Union"); GenerateTypeSpecifierEnumDeclaration(source); if (source.CandidateUnmanagedTypes.Length > 0)