Fixes #6540. difference with block keyword arguments.#6574
Merged
enebo merged 3 commits intojruby:jruby-9.2from Feb 24, 2021
Merged
Fixes #6540. difference with block keyword arguments.#6574enebo merged 3 commits intojruby:jruby-9.2from
enebo merged 3 commits intojruby:jruby-9.2from
Conversation
Our call logic was only using first incoming args[0] is arity was 1 and there is no kwrest(**a). This should be arity of 1 and the lack of presence of any kwargs at all. Intuitively, we know if we have kwargs at the callsite and the block accepts kwargs...we should pass them forward. We also know that procs will pass any extra args to the proc whether the proc is defined to accept them or not. As opposed to lambdas which would error because you are passing the wrong number. So I feel pretty good about this fix but I am very leery on landing this the day before a release. Blocks are tricky internally in Ruby.
headius
approved these changes
Feb 23, 2021
headius
approved these changes
Feb 23, 2021
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Our call logic was only using first incoming args[0] is arity was 1
and there is no kwrest(**a). This should be arity of 1 and the lack of
presence of any kwargs at all.
Intuitively, we know if we have kwargs at the callsite and the block
accepts kwargs...we should pass them forward.
We also know that procs will pass any extra args to the proc whether
the proc is defined to accept them or not. As opposed to lambdas which
would error because you are passing the wrong number.
So I feel pretty good about this fix but I am very leery on landing this
the day before a release. Blocks are tricky internally in Ruby.