diff options
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | node.c | 3 |
2 files changed, 14 insertions, 0 deletions
@@ -1,3 +1,14 @@ +Thu Jul 21 19:27:19 2011 Yusuke Endoh <mame@tsg.ne.jp> + + * 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 <naruse@ruby-lang.org> * enum.c (enum_inject): remove empty line to notify rdoc @@ -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)"); |