diff options
author | yui-knk <spiketeika@gmail.com> | 2023-10-07 10:37:33 +0900 |
---|---|---|
committer | Yuichiro Kaneko <spiketeika@gmail.com> | 2023-10-07 17:54:35 +0900 |
commit | 529a651f82855956b6bd54794d629f91964e9de9 (patch) | |
tree | 15df9053a14868e62a4339236ce187e6626c2041 | |
parent | fbd534679fc2bbb6d81c858e47c3b2d51241e840 (diff) | |
download | ruby-529a651f82855956b6bd54794d629f91964e9de9.tar.gz |
Differentiate ASGN nodes
-rw-r--r-- | ast.c | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -457,14 +457,21 @@ node_children(rb_ast_t *ast, const NODE *node) no_name_rest()); } case NODE_LASGN: - case NODE_DASGN: - case NODE_IASGN: - case NODE_CVASGN: - case NODE_GASGN: if (NODE_REQUIRED_KEYWORD_P(RNODE_LASGN(node)->nd_value)) { return rb_ary_new_from_args(2, var_name(RNODE_LASGN(node)->nd_vid), ID2SYM(rb_intern("NODE_SPECIAL_REQUIRED_KEYWORD"))); } return rb_ary_new_from_args(2, var_name(RNODE_LASGN(node)->nd_vid), NEW_CHILD(ast, RNODE_LASGN(node)->nd_value)); + case NODE_DASGN: + if (NODE_REQUIRED_KEYWORD_P(RNODE_DASGN(node)->nd_value)) { + return rb_ary_new_from_args(2, var_name(RNODE_DASGN(node)->nd_vid), ID2SYM(rb_intern("NODE_SPECIAL_REQUIRED_KEYWORD"))); + } + return rb_ary_new_from_args(2, var_name(RNODE_DASGN(node)->nd_vid), NEW_CHILD(ast, RNODE_DASGN(node)->nd_value)); + case NODE_IASGN: + return rb_ary_new_from_args(2, var_name(RNODE_IASGN(node)->nd_vid), NEW_CHILD(ast, RNODE_IASGN(node)->nd_value)); + case NODE_CVASGN: + return rb_ary_new_from_args(2, var_name(RNODE_CVASGN(node)->nd_vid), NEW_CHILD(ast, RNODE_CVASGN(node)->nd_value)); + case NODE_GASGN: + return rb_ary_new_from_args(2, var_name(RNODE_GASGN(node)->nd_vid), NEW_CHILD(ast, RNODE_GASGN(node)->nd_value)); case NODE_CDECL: if (RNODE_CDECL(node)->nd_vid) { return rb_ary_new_from_args(2, ID2SYM(RNODE_CDECL(node)->nd_vid), NEW_CHILD(ast, RNODE_CDECL(node)->nd_value)); |