Better detect when typical nondistributive conditionals need to be deferred... #42248
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.
…by unwrapping their check and extends types. We use a heuristic for conditional type deferral - our
isGenericObjectType
andisGenericIndexType
helpers. Unfortunately, these aren't tuned to check for nested generics within types, such as tuples, as we often see for non-distributive conditional types. Rather than changing those functions (where are used elsewhere), instead I detect when a conditional type has a typical non-distributive shape (one-tuple extends one-tuple), and immediately unwrap the tuple types - this both saves us a bit of work, and allows the deferral checks to operate like we want.Fixes #39992