Skip to content

Latest commit

 

History

History
54 lines (47 loc) · 3.54 KB

CHANGELOG-Prerelease.md

File metadata and controls

54 lines (47 loc) · 3.54 KB

FlashOWare.Generators

Prerelease Changelog

goto Release_Changelog;

Generators

  • Changed Enum.GetName-Generator suppressing duplicate method declarations when another GeneratedEnumGetNameAttribute has the same enum type argument.
  • Changed Enum.IsDefined-Generator suppressing duplicate method declarations when another GeneratedEnumIsDefinedAttribute has the same enum type argument.
  • Changed Enum-Interceptor-Generator requirement from C# 12.0 to C# 11.0
    • emit a regular constructor instead of a primary constructor for the (experimental) Interceptors Attribute
    • consolidate required language version across all Generators (C# 11.0)
    • align with required minimum .NET 7.0 SDK, where the TFM net7.0 uses 11.0 as default LangVersion
  • Changed Enum-Interceptor-Generator to suppress adding the generated document when no target Enum-Method-Invocations are found.
  • Changed Enum-Interceptor-Generator to emit each System.Enum specialization only once, but with one or more Interceptor-Attributes instead.
  • Fixed InvalidOperationException in Enum.GetName-Generator when the type argument of GeneratedEnumGetNameAttribute is of error kind.
  • Fixed InvalidOperationException in Enum.IsDefined-Generator when the type argument of GeneratedEnumIsDefinedAttribute is of error kind.
  • Fixed ArgumentException in Enum.GetName-Generator when multiple partial class type declarations have at least one GeneratedEnumGetNameAttribute.
  • Fixed ArgumentException in Enum.IsDefined-Generator when multiple partial class type declarations have at least one GeneratedEnumIsDefinedAttribute.
  • Fixed Enum.GetName-Generator generating invalid C# source when the type argument of GeneratedEnumGetNameAttribute is not an enum type.
  • Fixed Enum.IsDefined-Generator generating invalid C# source when the type argument of GeneratedEnumIsDefinedAttribute is not an enum type.

Package

  • Added documentation to README.md.

1.0.0-prerelease.0 - 2023-11-16

Generators

  • Added Enum.GetName-Generator (C# only)
    • generates a specialized static string? GetName(TEnum) method group
    • via FlashOWare.Generators.GeneratedEnumGetNameAttribute<TEnum>
  • Added Enum.IsDefined-Generator (C# only)
    • generates a specialized static bool IsDefined(TEnum) method group
    • via FlashOWare.Generators.GeneratedEnumIsDefinedAttribute<TEnum>
  • Added Enum-Interceptor-Generator (C# only)
    • generates experimental Interceptors
      • for System.Enum.GetName<TEnum>(TEnum) method invocations
      • for System.Enum.IsDefined<TEnum>(TEnum) method invocations

Library

  • Added generic Attribute FlashOWare.Generators.GeneratedEnumGetNameAttribute<TEnum>
    • used by Enum.GetName-Generator
  • Added generic Attribute FlashOWare.Generators.GeneratedEnumIsDefinedAttribute<TEnum>
    • used by Enum.IsDefined-Generator

Package

  • Added FlashOWare.Generators (as Analyzers) targeting .NET Standard 2.0.
  • Added FlashOWare.Generators.Attributes (as Library) targeting .NET Standard 2.0.
  • Added FlashOWare.Generators.props
    • empty
  • Added FlashOWare.Generators.targets
    • sets Property InterceptorsPreviewNamespaces to $(InterceptorsPreviewNamespaces);FlashOWare.Generated