Map stale empty object type in union into fresh empty object type after spread is complete#34839
Merged
weswigham merged 2 commits intoNov 21, 2019
microsoft:mastermicrosoft/TypeScript:masterfrom
weswigham:fix-spread-unfresheningweswigham/TypeScript:fix-spread-unfresheningCopy head branch name to clipboard
Merged
Map stale empty object type in union into fresh empty object type after spread is complete#34839weswigham merged 2 commits intomicrosoft:mastermicrosoft/TypeScript:masterfrom weswigham:fix-spread-unfresheningweswigham/TypeScript:fix-spread-unfresheningCopy head branch name to clipboard
weswigham merged 2 commits into
microsoft:mastermicrosoft/TypeScript:masterfrom
weswigham:fix-spread-unfresheningweswigham/TypeScript:fix-spread-unfresheningCopy head branch name to clipboard
Conversation
…er spread is complete
sandersn
approved these changes
Nov 12, 2019
jablko
pushed a commit
to jablko/TypeScript
that referenced
this pull request
Nov 21, 2019
…er spread is complete (microsoft#34839) * Map stale empty object type in union into fresh empty object type after spread is complete * Accept minor baseline diff
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Fixes #34690
In the example given,
false | { foo: Record<never, never> }is mapped into{} | { foo: Record<never, never> }by the spread operator, except the{}isn't a fresh literal object type - it's just the plain ole stale vanilla empty object type used globally throughout the checker. This change maps that stale empty object into a brand new fresh empty object, as occurs in the non-union spread case.