From e03e1982bdc2d815298b211d44534908d79aec4e Mon Sep 17 00:00:00 2001 From: Kazuki Tsujimoto Date: Sun, 1 Nov 2020 16:19:07 +0900 Subject: Change NODE layout for pattern matching I prefer pconst to be the first element of NODE. Before: | ARYPTN | FNDPTN | HSHPTN ---+--------+--------+----------- u1 | imemo | imemo | pkwargs u2 | pconst | pconst | pconst u3 | apinfo | fpinfo | pkwrestarg After: | ARYPTN | FNDPTN | HSHPTN ---+--------+--------+----------- u1 | pconst | pconst | pconst u2 | imemo | imemo | pkwargs u3 | apinfo | fpinfo | pkwrestarg --- parse.y | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'parse.y') diff --git a/parse.y b/parse.y index 98fd4ae921..87ec408b26 100644 --- a/parse.y +++ b/parse.y @@ -11606,7 +11606,7 @@ new_array_pattern_tail(struct parser_params *p, NODE *pre_args, int has_rest, ID VALUE tmpbuf = rb_imemo_tmpbuf_auto_free_pointer(); struct rb_ary_pattern_info *apinfo = ZALLOC(struct rb_ary_pattern_info); rb_imemo_tmpbuf_set_ptr(tmpbuf, apinfo); - node = NEW_NODE(NODE_ARYPTN, tmpbuf, 0, apinfo, loc); + node = NEW_NODE(NODE_ARYPTN, 0, tmpbuf, apinfo, loc); RB_OBJ_WRITTEN(p->ast, Qnil, tmpbuf); apinfo->pre_args = pre_args; @@ -11645,7 +11645,7 @@ new_find_pattern_tail(struct parser_params *p, ID pre_rest_arg, NODE *args, ID p VALUE tmpbuf = rb_imemo_tmpbuf_auto_free_pointer(); struct rb_fnd_pattern_info *fpinfo = ZALLOC(struct rb_fnd_pattern_info); rb_imemo_tmpbuf_set_ptr(tmpbuf, fpinfo); - node = NEW_NODE(NODE_FNDPTN, tmpbuf, 0, fpinfo, loc); + node = NEW_NODE(NODE_FNDPTN, 0, tmpbuf, fpinfo, loc); RB_OBJ_WRITTEN(p->ast, Qnil, tmpbuf); fpinfo->pre_rest_arg = pre_rest_arg ? assignable(p, pre_rest_arg, 0, loc) : NODE_SPECIAL_NO_NAME_REST; @@ -11679,7 +11679,7 @@ new_hash_pattern_tail(struct parser_params *p, NODE *kw_args, ID kw_rest_arg, co kw_rest_arg_node = NULL; } - node = NEW_NODE(NODE_HSHPTN, kw_args, 0, kw_rest_arg_node, loc); + node = NEW_NODE(NODE_HSHPTN, 0, kw_args, kw_rest_arg_node, loc); p->ruby_sourceline = saved_line; return node; -- cgit v1.2.3