diff --git a/ChangeLog b/ChangeLog index 4f575368ff..bff05ad787 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +Thu Jul 21 19:27:19 2011 Yusuke Endoh + + * 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). + Thu Jul 21 18:11:07 2011 NARUSE, Yui * enum.c (enum_inject): remove empty line to notify rdoc 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)");