ruby/internal
Jeremy Evans beae6cbf0f Fully separate positional arguments and keyword arguments
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().
2020-01-02 18:40:45 -08:00
..
2019-12-26 20:45:12 +09:00
2019-12-27 10:17:06 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-27 09:20:58 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00
2019-12-26 20:45:12 +09:00