diff --git a/ast.c b/ast.c index 622547965f..fd0920225f 100644 --- a/ast.c +++ b/ast.c @@ -507,7 +507,6 @@ node_children(rb_ast_t *ast, const NODE *node) case NODE_ZSUPER: return rb_ary_new_from_node_args(ast, 0); case NODE_LIST: - case NODE_VALUES: return dump_array(ast, RNODE_LIST(node)); case NODE_ZLIST: return rb_ary_new_from_node_args(ast, 0); diff --git a/compile.c b/compile.c index 4850ba9b2c..483d2f118d 100644 --- a/compile.c +++ b/compile.c @@ -9724,18 +9724,6 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const no } break; } - case NODE_VALUES:{ - const NODE *n = node; - if (popped) { - COMPILE_ERROR(ERROR_ARGS "NODE_VALUES: must not be popped"); - } - while (n) { - CHECK(COMPILE(ret, "values item", RNODE_VALUES(n)->nd_head)); - n = RNODE_VALUES(n)->nd_next; - } - ADD_INSN1(ret, node, newarray, INT2FIX(RNODE_VALUES(node)->nd_alen)); - break; - } case NODE_HASH: CHECK(compile_hash(iseq, ret, node, FALSE, popped) >= 0); break; diff --git a/ext/objspace/objspace.c b/ext/objspace/objspace.c index 0c8045acea..ae869a3ed4 100644 --- a/ext/objspace/objspace.c +++ b/ext/objspace/objspace.c @@ -434,7 +434,6 @@ count_nodes(int argc, VALUE *argv, VALUE os) COUNT_NODE(NODE_ZSUPER); COUNT_NODE(NODE_LIST); COUNT_NODE(NODE_ZLIST); - COUNT_NODE(NODE_VALUES); COUNT_NODE(NODE_HASH); COUNT_NODE(NODE_RETURN); COUNT_NODE(NODE_YIELD); diff --git a/node_dump.c b/node_dump.c index e9e5c950c7..3a5c74e986 100644 --- a/node_dump.c +++ b/node_dump.c @@ -579,12 +579,6 @@ dump_node(VALUE buf, VALUE indent, int comment, const NODE * node) ANN("list constructor"); ANN("format: [ [nd_head], [nd_next].. ] (length: [nd_alen])"); ANN("example: [1, 2, 3]"); - goto ary; - case NODE_VALUES: - ANN("return arguments"); - ANN("format: [ [nd_head], [nd_next].. ] (length: [nd_alen])"); - ANN("example: return 1, 2, 3"); - ary: dump_array(buf, indent, comment, node); return; diff --git a/parse.y b/parse.y index 2c5641473a..6110f801fc 100644 --- a/parse.y +++ b/parse.y @@ -14142,13 +14142,8 @@ ret_args(struct parser_params *p, NODE *node) { if (node) { no_blockarg(p, node); - if (nd_type_p(node, NODE_LIST)) { - if (RNODE_LIST(node)->nd_next == 0) { - node = RNODE_LIST(node)->nd_head; - } - else { - nd_set_type(node, NODE_VALUES); - } + if (nd_type_p(node, NODE_LIST) && !RNODE_LIST(node)->nd_next) { + node = RNODE_LIST(node)->nd_head; } } return node; diff --git a/rubyparser.h b/rubyparser.h index e491b7421e..b36470bf69 100644 --- a/rubyparser.h +++ b/rubyparser.h @@ -71,7 +71,6 @@ enum node_type { NODE_ZSUPER, NODE_LIST, NODE_ZLIST, - NODE_VALUES, NODE_HASH, NODE_RETURN, NODE_YIELD, @@ -986,7 +985,6 @@ typedef struct RNode_ERROR { #define RNODE_ZSUPER(node) ((struct RNode_ZSUPER *)(node)) #define RNODE_LIST(node) ((struct RNode_LIST *)(node)) #define RNODE_ZLIST(node) ((struct RNode_ZLIST *)(node)) -#define RNODE_VALUES(node) ((struct RNode_VALUES *)(node)) #define RNODE_HASH(node) ((struct RNode_HASH *)(node)) #define RNODE_RETURN(node) ((struct RNode_RETURN *)(node)) #define RNODE_YIELD(node) ((struct RNode_YIELD *)(node))