summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-16 00:16:46 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-16 00:16:46 +0000
commit622e0fcc9a05b67f2d3e150f1bb92993c482e587 (patch)
tree756ff7c3c7b9c9ca9e2fbdc505e228ebb7f0a624
parentc73e8506c487c0c72db86f7c9eea332551d6a11e (diff)
downloadruby-622e0fcc9a05b67f2d3e150f1bb92993c482e587.tar.gz
ruby-622e0fcc9a05b67f2d3e150f1bb92993c482e587.tar.xz
ruby-622e0fcc9a05b67f2d3e150f1bb92993c482e587.zip
* parse.y (block_call): block should not be given to yield.
[ruby-core:20583] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--parse.y7
2 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 44d8723bd..5f9a6e916 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Dec 16 09:14:28 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * parse.y (block_call): block should not be given to yield.
+ [ruby-core:20583]
+
Mon Dec 15 23:48:39 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
* thread.c (sleep_timeval): cast tv_usec to long to shut up
diff --git a/parse.y b/parse.y
index 2cf900610..6983a2cdb 100644
--- a/parse.y
+++ b/parse.y
@@ -3497,7 +3497,12 @@ do_block : keyword_do_block
block_call : command do_block
{
/*%%%*/
- block_dup_check($1->nd_args, $2);
+ if (nd_type($1) == NODE_YIELD) {
+ compile_error(PARSER_ARG "block given to yield");
+ }
+ else {
+ block_dup_check($1->nd_args, $2);
+ }
$2->nd_iter = $1;
$$ = $2;
fixpos($$, $1);