Fix untupling of functions in for comprehensions #19620
Merged
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 #19576
The issue did not arise a 3.3.1, as a
withFilter
was always inserted beforemap
, this is no longer the case as the pattern is irrefutable.Note that the
map
method ofLazyZip2
expects(El1, El2) => B
and not((El1, El2)) => B
. This kind of situation was previously already accounted for in the specific case where the pattern is exactly the shape of the function arguments.Otherwise we can fallback to a less optimised version, using the untupled version of the lambda and keeping the match with the more refined pattern.