mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
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.
This commit is contained in:
parent
334b41a46b
commit
3f67fcd3d5
Notes:
git
2019-08-31 04:40:18 +09:00
1 changed files with 9 additions and 11 deletions
20
vm_args.c
20
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--;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue