From e98c84519f117825017769825e6303ffb9dd4f7f Mon Sep 17 00:00:00 2001 From: mame Date: Thu, 21 Jul 2011 10:35:52 +0000 Subject: * 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 --- node.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'node.c') diff --git a/node.c b/node.c index d1f1b70832..5912bc4752 100644 --- a/node.c +++ b/node.c @@ -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)"); -- cgit v1.2.3