Fix issue of incorrect switch cases with identical bodies when mixing… #6792
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
… object and array.
Fixes #6789
The issue happens when 2 cases, here
Object
andArray
, have identical body (hereConsole.log(v)
). The switch-generation code, which was not designed with untagged unions in mind, merges the two cases into one (and makes one of the two empty).However, for
Object
andArray
, what's generated is not a straight switch, but a mix ofif-then-else
andswitch
. This means that theObject
andArray
cases are apart in the generated code, and merging them (making one empty) is wrong.