Allow spreading arrays after required parameters#15849
Merged
Merged
Conversation
This allows: 1. Spreading arrays into all-optional parameters whose types match. 2. Spreading arrays into parameter lists that are too short and whose body presumably uses `arguments`.
mhegazy
approved these changes
May 17, 2017
Contributor
|
Minor correction: that's #6229 rather than 6629. |
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 #5296 using the simple method described briefly in at the bottom #15747.
Specifically, this treats arrays that are spread as an infinite list of all-optional arguments. This lets you spread arrays into all-optional parameters whose types match.
This simple definition has a few more implications:
arguments) [1].Both of these might come later, but would probably require #6229, @Igorbek's strict-length tuple proposal. And much more code, since this is a one-line change.
[1]