aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-07-21 10:35:52 +0000
committermame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-07-21 10:35:52 +0000
commite98c84519f117825017769825e6303ffb9dd4f7f (patch)
treeec2271400e736446fd37a6d7cd409d50cd7a9ae9
parent579f2a0aa84664382ddbab1e4aef1a6ed8fa6455 (diff)
downloadruby-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
-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)");