Reapply contextual type when recalculating array literals as tuples #37071
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 #37037
In
elaborateArrayLiteral
, we calledcheckArrayLiteral
with a flag to get the tuple type for the expression, so we can dive into it and elaborate on each member. The differing error message was caused by the contextual type for that expression check not being the same as the one used during the original expression resolution (namely, we didn't apply one, so we did our fallback oif walking up the tree, which, in the case of the call, eventually returnsany
, while in the case of the assignment, eventually returns the declared type). With this change, we reapply the context (the target type) to the expression when recalculate it.