summaryrefslogtreecommitdiff
path: root/vm_args.c
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2019-04-07 11:38:21 -0700
committerJeremy Evans <code@jeremyevans.net>2019-08-30 12:39:31 -0700
commit3f67fcd3d5ca5e2907790eb5bb16d03f5884ece8 (patch)
tree06f1d1940a1972e97b7a492e4ce113a8346b4d0a /vm_args.c
parent334b41a46b2a1a72965494dcecc6fe73a83f4490 (diff)
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.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/2395
Diffstat (limited to 'vm_args.c')
-rw-r--r--vm_args.c20
1 files changed, 9 insertions, 11 deletions
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--;
}
}