aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryui-knk <spiketeika@gmail.com>2023-10-07 10:37:33 +0900
committerYuichiro Kaneko <spiketeika@gmail.com>2023-10-07 17:54:35 +0900
commit529a651f82855956b6bd54794d629f91964e9de9 (patch)
tree15df9053a14868e62a4339236ce187e6626c2041
parentfbd534679fc2bbb6d81c858e47c3b2d51241e840 (diff)
downloadruby-529a651f82855956b6bd54794d629f91964e9de9.tar.gz
Differentiate ASGN nodes
-rw-r--r--ast.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/ast.c b/ast.c
index 2ce7a753f4..86bd4bb5d8 100644
--- a/ast.c
+++ b/ast.c
@@ -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));