mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
beae6cbf0f
This removes the warnings added in 2.7, and changes the behavior so that a final positional hash is not treated as keywords or vice-versa. To handle the arg_setup_block splat case correctly with keyword arguments, we need to check if we are taking a keyword hash. That case didn't have a test, but it affects real-world code, so add a test for it. This removes rb_empty_keyword_given_p() and related code, as that is not needed in Ruby 3. The empty keyword case is the same as the no keyword case in Ruby 3. This changes rb_scan_args to implement keyword argument separation for C functions when the : character is used. For backwards compatibility, it returns a duped hash. This is a bad idea for performance, but not duping the hash breaks at least Enumerator::ArithmeticSequence#inspect. Instead of having RB_PASS_CALLED_KEYWORDS be a number, simplify the code by just making it be rb_keyword_given_p(). |
||
---|---|---|
.. | ||
arith_seq/extract | ||
array/resize | ||
bignum | ||
bug-3571 | ||
bug-5832 | ||
bug-14834 | ||
bug_reporter | ||
class | ||
cxxanyargs | ||
debug | ||
dln/empty | ||
enumerator_kw | ||
exception | ||
fatal | ||
file | ||
float | ||
funcall | ||
gvl/call_without_gvl | ||
hash | ||
integer | ||
iseq_load | ||
iter | ||
load | ||
marshal | ||
memory_status | ||
method | ||
notimplement | ||
num2int | ||
path_to_class | ||
popen_deadlock | ||
postponed_job | ||
printf | ||
proc | ||
rational | ||
rb_call_super_kw | ||
recursion | ||
regexp | ||
scan_args | ||
st | ||
string | ||
struct | ||
symbol | ||
thread_fd_close | ||
time | ||
tracepoint | ||
typeddata | ||
vm | ||
wait_for_single_fd | ||
win32 | ||
auto_ext.rb |