You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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)