Skip to content

Commit 3b88190

Browse files
committed
introduce MergeEnumValues
1 parent 36a8a1b commit 3b88190

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

spec/Section 4 -- Composition.md

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3676,16 +3676,26 @@ MergeEnumTypes(enums):
36763676
{firstEnum}, and enum values of {firstEnum} excluding any marked with
36773677
`@inaccessible`.
36783678
- Let {typeName} be the name of {firstEnum}.
3679-
- Let {description} be the description of {firstEnum}.
3680-
- Let {enumValues} be the set of all enum values in {enums}.
3681-
- For each {enum} in {enums}:
3682-
- If {description} is {null}:
3683-
- Set {description} to the description of {enum}.
3684-
- For each {enumValue} in the enum values of {enum}:
3685-
- If {enumValue} is marked with `@inaccessible`
3686-
- Remove {enumValue} from {enumValues}.
3679+
- Let {description} be the first non empty description of any {enum} in {enums}.
3680+
- Let {mergedValues} be an empty set.
3681+
- Let {valueNames} be the set of all enum value names in {enums}.
3682+
- For each {valueName} in {valueNames}:
3683+
- Let {values} be the set of enum values with the name {valueName} in {enums}.
3684+
- Let {mergedValue} be the result of {MergeEnumValues(values)}.
3685+
- If {mergedValue} is not {null}:
3686+
- Add {mergedValue} to {mergedValues}.
36873687
- Return a new enum type with the name of {typeName}, description of
3688-
{description}, and enum values of {enumValues}.
3688+
{description}, and enum values of {mergedValue}.
3689+
3690+
MergeEnumValues(enumValues):
3691+
3692+
- If any {enumValue} in {enumValues} is marked with `@inaccessible`
3693+
- Return {null}
3694+
- Let {name} be the name of the first {enumValue} in {enumValues}.
3695+
- Let {description} be the first non empty description of any {enumValue} in
3696+
{enumValues}.
3697+
- Return a new enum value with the name of {name} and description of
3698+
{description}.
36893699

36903700
**Explanatory Text**
36913701

0 commit comments

Comments
 (0)