aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ast.c2
-rw-r--r--node.h2
-rw-r--r--node_dump.c4
-rw-r--r--parse.y4
4 files changed, 6 insertions, 6 deletions
diff --git a/ast.c b/ast.c
index fd0920225f..2ce7a753f4 100644
--- a/ast.c
+++ b/ast.c
@@ -461,7 +461,7 @@ node_children(rb_ast_t *ast, const NODE *node)
case NODE_IASGN:
case NODE_CVASGN:
case NODE_GASGN:
- if (NODE_REQUIRED_KEYWORD_P(RNODE_LASGN(node))) {
+ 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));
diff --git a/node.h b/node.h
index 79c0c67860..a25c4599eb 100644
--- a/node.h
+++ b/node.h
@@ -96,7 +96,7 @@ RUBY_SYMBOL_EXPORT_END
#define NODE_SPECIAL_REQUIRED_KEYWORD ((NODE *)-1)
-#define NODE_REQUIRED_KEYWORD_P(node) ((node)->nd_value == NODE_SPECIAL_REQUIRED_KEYWORD)
+#define NODE_REQUIRED_KEYWORD_P(node) ((node) == NODE_SPECIAL_REQUIRED_KEYWORD)
#define NODE_SPECIAL_NO_NAME_REST ((NODE *)-1)
#define NODE_NAMED_REST_P(node) ((node) != NODE_SPECIAL_NO_NAME_REST)
#define NODE_SPECIAL_EXCESSIVE_COMMA ((ID)1)
diff --git a/node_dump.c b/node_dump.c
index 3a5c74e986..7bfdcaf0c3 100644
--- a/node_dump.c
+++ b/node_dump.c
@@ -401,7 +401,7 @@ dump_node(VALUE buf, VALUE indent, int comment, const NODE * node)
ANN("format: [nd_vid](lvar) = [nd_value]");
ANN("example: x = foo");
F_ID(nd_vid, RNODE_LASGN, "local variable");
- if (NODE_REQUIRED_KEYWORD_P(RNODE_LASGN(node))) {
+ if (NODE_REQUIRED_KEYWORD_P(RNODE_LASGN(node)->nd_value)) {
F_MSG(nd_value, "rvalue", "NODE_SPECIAL_REQUIRED_KEYWORD (required keyword argument)");
}
else {
@@ -415,7 +415,7 @@ dump_node(VALUE buf, VALUE indent, int comment, const NODE * node)
ANN("example: x = nil; 1.times { x = foo }");
ANN("example: 1.times { x = foo }");
F_ID(nd_vid, RNODE_DASGN, "local variable");
- if (NODE_REQUIRED_KEYWORD_P(RNODE_DASGN(node))) {
+ if (NODE_REQUIRED_KEYWORD_P(RNODE_DASGN(node)->nd_value)) {
F_MSG(nd_value, "rvalue", "NODE_SPECIAL_REQUIRED_KEYWORD (required keyword argument)");
}
else {
diff --git a/parse.y b/parse.y
index fd6fe14d49..e9028c308f 100644
--- a/parse.y
+++ b/parse.y
@@ -14279,7 +14279,7 @@ new_args_tail(struct parser_params *p, rb_node_kw_arg_t *kw_args, ID kw_rest_arg
vtable_pop(vtargs, !!block + !!kw_rest_arg);
required_kw_vars = kw_vars = &vtargs->tbl[vtargs->pos];
while (kwn) {
- if (!NODE_REQUIRED_KEYWORD_P(RNODE_LASGN(kwn->nd_body)))
+ if (!NODE_REQUIRED_KEYWORD_P(RNODE_LASGN(kwn->nd_body)->nd_value))
--kw_vars;
--required_kw_vars;
kwn = kwn->nd_next;
@@ -14287,7 +14287,7 @@ new_args_tail(struct parser_params *p, rb_node_kw_arg_t *kw_args, ID kw_rest_arg
for (kwn = kw_args; kwn; kwn = kwn->nd_next) {
ID vid = RNODE_LASGN(kwn->nd_body)->nd_vid;
- if (NODE_REQUIRED_KEYWORD_P(RNODE_LASGN(kwn->nd_body))) {
+ if (NODE_REQUIRED_KEYWORD_P(RNODE_LASGN(kwn->nd_body)->nd_value)) {
*required_kw_vars++ = vid;
}
else {