From 3f67fcd3d5ca5e2907790eb5bb16d03f5884ece8 Mon Sep 17 00:00:00 2001 From: Jeremy Evans Date: Sun, 7 Apr 2019 11:38:21 -0700 Subject: Fix hash to keyword warning to apply in all cases Previously, it only applied if the call had more positional arguments than the method it was calling accepted. --- vm_args.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'vm_args.c') diff --git a/vm_args.c b/vm_args.c index a8b1130fd9..35c435181a 100644 --- a/vm_args.c +++ b/vm_args.c @@ -676,18 +676,16 @@ setup_parameters_complex(rb_execution_context_t * const ec, const rb_iseq_t * co given_argc--; } } - else if (given_argc > max_argc && max_argc >= 0) { - if (args_pop_keyword_hash(args, &keyword_hash)) { - /* Warn the following: - * def foo(k:1) p [k]; end - * foo({k:42}) #=> 42 - */ - if (ec->cfp->iseq) { - /* called from Ruby level */ - rb_warn_last_hash_to_keyword(calling, ci); - } - given_argc--; + else if (args_pop_keyword_hash(args, &keyword_hash)) { + /* Warn the following: + * def foo(k:1) p [k]; end + * foo({k:42}) #=> 42 + */ + if (ec->cfp->iseq) { + /* called from Ruby level */ + rb_warn_last_hash_to_keyword(calling, ci); } + given_argc--; } } -- cgit v1.2.3