diff --git a/compile.c b/compile.c index 4631f9080b848a..a9327f5217abd5 100644 --- a/compile.c +++ b/compile.c @@ -1307,7 +1307,7 @@ iseq_set_arguments_keywords(rb_iseq_t *iseq, LINK_ANCHOR *const optargs, iseq->body->param.flags.has_kw = TRUE; iseq->body->param.keyword = keyword = ZALLOC_N(struct rb_iseq_param_keyword, 1); - keyword->bits_start = get_dyna_var_idx_at_raw(iseq, args->kw_rest_arg->nd_vid); + keyword->bits_start = get_dyna_var_idx_at_raw(iseq, args->kw_rest_arg->nd_cflag); while (node) { NODE *val_node = node->nd_body->nd_value; @@ -1346,8 +1346,8 @@ iseq_set_arguments_keywords(rb_iseq_t *iseq, LINK_ANCHOR *const optargs, keyword->num = kw; - if (args->kw_rest_arg->nd_cflag != 0) { - keyword->rest_start = get_dyna_var_idx_at_raw(iseq, args->kw_rest_arg->nd_cflag); + if (args->kw_rest_arg->nd_vid != 0) { + keyword->rest_start = get_dyna_var_idx_at_raw(iseq, args->kw_rest_arg->nd_vid); iseq->body->param.flags.has_kwrest = TRUE; } keyword->required_num = rkw; diff --git a/node.c b/node.c index 1fe47844da8b86..f09138da35f9f3 100644 --- a/node.c +++ b/node.c @@ -961,8 +961,8 @@ dump_node(VALUE buf, VALUE indent, int comment, NODE *node) F_ID(nd_ainfo->rest_arg, "rest argument"); F_ID(nd_ainfo->block_arg, "block argument"); F_NODE(nd_ainfo->opt_args, "optional arguments"); - LAST_NODE; F_NODE(nd_ainfo->kw_args, "keyword arguments"); + LAST_NODE; F_NODE(nd_ainfo->kw_rest_arg, "keyword rest argument"); break; diff --git a/parse.y b/parse.y index 8e932191598560..3a2cff19411c8a 100644 --- a/parse.y +++ b/parse.y @@ -10127,8 +10127,8 @@ new_args_tail_gen(struct parser_params *parser, NODE *k, ID kr, ID b) if (kr) arg_var(kr); if (b) arg_var(b); - args->kw_rest_arg = NEW_DVAR(kw_bits); - args->kw_rest_arg->nd_cflag = kr; + args->kw_rest_arg = NEW_DVAR(kr); + args->kw_rest_arg->nd_cflag = kw_bits; } else if (kr) { if (b) vtable_pop(lvtbl->args, 1); /* reorder */ diff --git a/version.h b/version.h index 4ee09f71f03706..c9e74f79a682d7 100644 --- a/version.h +++ b/version.h @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.4.4" #define RUBY_RELEASE_DATE "2018-02-17" -#define RUBY_PATCHLEVEL 239 +#define RUBY_PATCHLEVEL 240 #define RUBY_RELEASE_YEAR 2018 #define RUBY_RELEASE_MONTH 2