summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--node.c3
2 files changed, 14 insertions, 0 deletions
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 <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
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)");