Skip to content

Release v4.137.0

Choose a tag to compare

@github-actions github-actions released this 11 Oct 18:30
c53466e

Added

  • Enum members can carry explicit numbers, draft = 1, so a stored enum keeps its numbers when members are reordered or inserted. Numbers are whole int32 values, unique within the enum, and either every member has one or none does. -0 prints as 0. Enums without numbers keep their positional meaning, and enums numbered by position compile exactly as before. Numbers that differ from positions are not admitted by any supported executable model version yet; binding refuses them until a later release admits them. See https://github.com/Cratis/Screenplay/blob/main/decisions/0065-explicit-enum-member-numbers.md (part of #643)
  • New diagnostics: PLAY0667 (mixed numbering), PLAY0668 (duplicate number), PLAY0669 (number outside int32) and PLAY0670 (malformed number). They are reported by both compilers and the editors. (part of #643)
  • The MCP refactoring propose-number-enum-members numbers every member of an unnumbered enum by its current position. The opt-in completeness check enum-pinning (PLAY0671) suggests it for unnumbered enums used by event properties. (part of #643)