GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||
GeezerVison is showing github.com — Fix contextual discrimination for omitted members by erikbrinkman · Pull Request #43937 · microsoft/TypeScript Conversation
Contributor
In my original PR #43633, choices for optional properties that could be discriminatory were chosen from the union type, which in turn meant that the possible omitted properties to check for discrimination was taken from the intersection of properties across all types. This is the incorrect way to check, when it's actually the union of all properties that should be checked for discrimination. See the additions to the tests for details. Two stylistic notes about this PR. In principle the code should be going from intersection to union, but it proved more difficult to do given the current functions I found available. As a result:
Given your initial suggestions and the review of the past PR, Wesley Wigham (@weswigham) seems poised to review this the quickest. Fixes #41759
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactionsIn short, the fix I submitted looked at the union ofproperties, but it really should have looked at the intersection. Two sytlistic notes. I couldn't find the best way to get the unique strings of an array like `[...new Set()]` would, so I created a small helper function, but didn't put it in a great place. Also, before the second concatenated array of discriminators at least matched the first in complexity, but now it's much worse. I don't think that section is particularly easy to read, but I also don't see a significantly reusable part. fixes #41759
Contributor
Author
All reactions
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page.
Contributor
Author
All reactions
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page.
Erik Brinkman (erikbrinkman)
deleted the
fix-contextual-discrimination-for-omitted-members
branch
Member
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page.
Andrew Casey (amcasey)
added a commit
to amcasey/TypeScript
that referenced
this pull request
Andrew Casey (amcasey)
added a commit
that referenced
this pull request
Sidharth Vinod (sidharthv96)
added a commit
to sidharthv96/TypeScript
that referenced
this pull request
* upstream/main: (473 commits) Correct node used for isDefinition calculation (microsoft#48499) fix(48405): emit dummy members from a mapped type (microsoft#48481) CFA for dependent parameters typed by generic constraints (microsoft#48411) No contextual typing from return types for boolean literals (microsoft#48380) fix(47733): omit JSDoc comment template suggestion on node with existing JSDoc (microsoft#47748) Ensure that we copy empty NodeArrays during transform (microsoft#48490) Add a new compiler option `moduleSuffixes` to expand the node module resolver's search algorithm (microsoft#48189) feat(27615): Add missing member fix should work for type literals (microsoft#47212) Add label details to completion entry (microsoft#48429) Enable method signature completion for object literals (microsoft#48168) Fix string literal completions when a partially-typed string fixes inference to a type parameter (microsoft#48410) fix(48445): show errors on type-only import/export specifiers in JavaScript files (microsoft#48449) Fix newline inserted in empty block at end of formatting range (microsoft#48463) Prevent looking up symbol for as const from triggering an error (microsoft#48464) Revise accessor resolution logic and error reporting (microsoft#48459) fix(48166): skip checking module.exports in a truthiness call expression (microsoft#48337) LEGO: Merge pull request 48450 LEGO: Merge pull request 48436 fix(48031): show circularity error for self referential get accessor annotations (microsoft#48050) Revert "Fix contextual discrimination for omitted members (microsoft#43937)" (microsoft#48426) ...
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
ReviewersUh oh!
There was an error while loading. Please reload this page. AssigneesLabels
For Backlog Bug
MilestoneNo milestoneDevelopmentSuccessfully merging this pull request may close these issues. Omitted property does not narrow discriminated union contextual typeUh oh!
There was an error while loading. Please reload this page. 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. | ||
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |