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.
This commit is contained in:
Jeremy Evans 2019-09-18 12:59:01 -07:00
parent 27b6746872
commit c9f2b790ad
5 changed files with 125 additions and 8 deletions

View file

@ -319,6 +319,7 @@ void rb_check_copyable(VALUE obj, VALUE orig);
int rb_sourceline(void);
const char *rb_sourcefile(void);
VALUE rb_check_funcall(VALUE, ID, int, const VALUE*);
VALUE rb_check_funcall_kw(VALUE, ID, int, const VALUE*, int);
NORETURN(MJIT_STATIC void rb_error_arity(int, int, int));
static inline int