path: root/node.c
diff options
authormame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-07-21 10:35:52 +0000
committermame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-07-21 10:35:52 +0000
commite98c84519f117825017769825e6303ffb9dd4f7f (patch)
treeec2271400e736446fd37a6d7cd409d50cd7a9ae9 /node.c
parent579f2a0aa84664382ddbab1e4aef1a6ed8fa6455 (diff)
* node.c (dump_node): add today's knowledge. "init arguments (m)" and
"init arguments (p)" of compile.c indicates a Ruby code that evaluates multiple assignments that is in method or block parameters: def foo((m1,m2), (m3,m4), *r, (p1,p2), (p3,p4)); end The former (init arguments (m)) evaluates the multiple assignments before rest argument, that are (m1,m2) and (m3,m4). The letter (init arguments (p)) does ones after rest argument, that are (p1,p2) and (p3, p4). git-svn-id: svn+ssh:// b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'node.c')
1 files changed, 3 insertions, 0 deletions
diff --git a/node.c b/node.c
index d1f1b70..5912bc4 100644
--- a/node.c
+++ b/node.c
@@ -866,6 +866,9 @@ dump_node(VALUE buf, VALUE indent, int comment, NODE *node)
else {
ANN("method parameters (cont'd)");
+ ANN("\"init arguments (m)\" evaluates multiple assignments before rest argument");
+ ANN("\"init arguments (p)\" evaluates multiple assignments after rest argument");
+ ANN("example: def foo((m1, m2), *r, (p1, p2))");
F_NODE(nd_1st, "init arguments (m)");
F_NODE(nd_2nd, "init arguments (p)");