aboutsummaryrefslogtreecommitdiffstats
path: root/ast.c
diff options
context:
space:
mode:
authorKazuki Tsujimoto <kazuki@callcc.net>2019-09-01 16:39:34 +0900
committerKazuki Tsujimoto <kazuki@callcc.net>2019-09-01 16:39:34 +0900
commit94d6ec1d90bb28e5f303867b048e6322d8781cb1 (patch)
tree55a794614931f6dc7778f6b1b672ca3a01f0b34f /ast.c
parentcda5745c1bacdb3be8384d21ee0dd70a9d95af5b (diff)
downloadruby-94d6ec1d90bb28e5f303867b048e6322d8781cb1.tar.gz
Make pattern matching support **nil syntax
Diffstat (limited to 'ast.c')
-rw-r--r--ast.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ast.c b/ast.c
index 601a819c1b..fdb4b7a621 100644
--- a/ast.c
+++ b/ast.c
@@ -652,10 +652,13 @@ node_children(rb_ast_t *ast, NODE *node)
}
case NODE_HSHPTN:
{
+ VALUE kwrest = node->nd_pkwrestarg == NODE_SPECIAL_NO_REST_KEYWORD ? ID2SYM(rb_intern("NODE_SPECIAL_NO_REST_KEYWORD")) :
+ NEW_CHILD(ast, node->nd_pkwrestarg);
+
return rb_ary_new_from_args(3,
NEW_CHILD(ast, node->nd_pconst),
NEW_CHILD(ast, node->nd_pkwargs),
- NEW_CHILD(ast, node->nd_pkwrestarg));
+ kwrest);
}
case NODE_ARGS_AUX:
case NODE_LAST: