diff options
author | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-07-21 10:35:52 +0000 |
---|---|---|
committer | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-07-21 10:35:52 +0000 |
commit | e98c84519f117825017769825e6303ffb9dd4f7f (patch) | |
tree | ec2271400e736446fd37a6d7cd409d50cd7a9ae9 /node.c | |
parent | 579f2a0aa84664382ddbab1e4aef1a6ed8fa6455 (diff) | |
download | ruby-e98c84519f117825017769825e6303ffb9dd4f7f.tar.gz |
* 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://ci.ruby-lang.org/ruby/trunk@32596 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'node.c')
-rw-r--r-- | node.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -866,6 +866,9 @@ dump_node(VALUE buf, VALUE indent, int comment, NODE *node) else { D_NODE_HEADER(node); 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)"); LAST_NODE; F_NODE(nd_2nd, "init arguments (p)"); |