From c9f2b790adcff8df48e3192d18ee8afa02f5530c Mon Sep 17 00:00:00 2001 From: Jeremy Evans Date: Wed, 18 Sep 2019 12:59:01 -0700 Subject: Handle keyword argument separation for Enumerator#size When Object#to_enum is passed a block, the block is called to get a size with the arguments given to to_enum. This calls the block with the same keyword flag as to_enum is called with. This requires adding rb_check_funcall_kw and rb_check_funcall_default_kw to handle keyword flags. --- enumerator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'enumerator.c') diff --git a/enumerator.c b/enumerator.c index 2a94aa388f..af9dc0fd2b 100644 --- a/enumerator.c +++ b/enumerator.c @@ -1223,7 +1223,7 @@ enumerator_size(VALUE obj) argc = (int)RARRAY_LEN(e->args); argv = RARRAY_CONST_PTR(e->args); } - size = rb_check_funcall(e->size, id_call, argc, argv); + size = rb_check_funcall_kw(e->size, id_call, argc, argv, e->kw_splat); if (size != Qundef) return size; return e->size; } -- cgit v1.2.3