1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--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
..
array.h decouple internal.h headers 2019-12-26 20:45:12 +09:00
bignum.h Introduce BIGNUM_EMBED_P to check BIGNUM_EMBED_FLAG (#2802) 2019-12-31 22:48:23 +09:00
bits.h reroute macro conflicts on OpenBSD 2019-12-27 10:17:06 +09:00
class.h decouple internal.h headers 2019-12-26 20:45:12 +09:00
compar.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
compile.h internal/compile.h rework 2019-12-26 20:45:12 +09:00
compilers.h decouple internal.h headers 2019-12-26 20:45:12 +09:00
complex.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
cont.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
dir.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
enc.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
encoding.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
enum.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
enumerator.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
error.h decouple internal.h headers 2019-12-26 20:45:12 +09:00
eval.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
file.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
fixnum.h internal/fixnum.h rework 2019-12-26 20:45:12 +09:00
gc.h Try to fix error on Solaris 2019-12-27 09:20:58 +09:00
hash.h decouple internal.h headers 2019-12-26 20:45:12 +09:00
imemo.h internal/imemo.h rework 2019-12-26 20:45:12 +09:00
inits.h
io.h decouple internal.h headers 2019-12-26 20:45:12 +09:00
load.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
loadpath.h
math.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
missing.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
mjit.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
numeric.h internal/numeric.h rework 2019-12-26 20:45:12 +09:00
object.h internal/object.h rework 2019-12-26 20:45:12 +09:00
parse.h decouple internal.h headers 2019-12-26 20:45:12 +09:00
proc.h internal/proc.h rework 2019-12-26 20:45:12 +09:00
process.h internal/process.h rework 2019-12-26 20:45:12 +09:00
random.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
range.h internal/range.h rework 2019-12-26 20:45:12 +09:00
rational.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
re.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
sanitizers.h Fixed an unavailable sanitizer feature 2019-12-29 08:19:43 +09:00
serial.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
signal.h
static_assert.h internal/static_assert.h rework 2019-12-26 20:45:12 +09:00
stdbool.h internal/stdbool.h rework 2019-12-26 20:45:12 +09:00
string.h decouple internal.h headers 2019-12-26 20:45:12 +09:00
struct.h decouple internal.h headers 2019-12-26 20:45:12 +09:00
symbol.h decouple internal.h headers 2019-12-26 20:45:12 +09:00
thread.h internal/thread.h rework 2019-12-26 20:45:12 +09:00
time.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
transcode.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
util.h other minior internal header tweaks 2019-12-26 20:45:12 +09:00
variable.h decouple internal.h headers 2019-12-26 20:45:12 +09:00
vm.h Fully separate positional arguments and keyword arguments 2020-01-02 18:40:45 -08:00
warnings.h internal/warnings.h rework 2019-12-26 20:45:12 +09:00