summaryrefslogtreecommitdiff
path: root/node.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-08-11 01:27:24 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-08-11 01:27:24 +0000
commit03a2862b983c7dd6c1b9fd016154191213750ed3 (patch)
tree7998cf9313f4c5e462b6933f5067f13d6974ce50 /node.c
parent28c02b9e087bfa09c04b38da9c6790a04c4f93d2 (diff)
separate hash literal and keyword arguments
* compile.c (compile_array_keyword_arg): separate keyword splat inside hash literal from argument list. * parse.y (rparen): flag hash literal. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'node.c')
-rw-r--r--node.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/node.c b/node.c
index f6d551a106..0222a19af1 100644
--- a/node.c
+++ b/node.c
@@ -545,9 +545,16 @@ dump_node(VALUE buf, VALUE indent, int comment, NODE *node)
break;
case NODE_HASH:
- ANN("hash constructor");
- ANN("format: { [nd_head] }");
- ANN("example: { 1 => 2, 3 => 4 }");
+ if (!node->nd_alen) {
+ ANN("keyword arguments");
+ ANN("format: nd_head");
+ ANN("example: a: 1, b: 2");
+ }
+ else {
+ ANN("hash constructor");
+ ANN("format: { [nd_head] }");
+ ANN("example: { 1 => 2, 3 => 4 }");
+ }
LAST_NODE;
F_NODE(nd_head, "contents");
break;