summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--parse.y6
-rw-r--r--test/ripper/test_parser_events.rb10
-rw-r--r--version.h2
4 files changed, 19 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index bb24e84470..4b25a82bae 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat Oct 3 22:14:18 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (bv_decls, bvar): fix for block variables.
+ [ruby-dev:39423]
+
Sat Oct 3 00:47:52 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* test/ripper/dummyparser.rb (DummyParser): improvement by Magnus
diff --git a/parse.y b/parse.y
index 7dd2c50b4c..b27875a3d8 100644
--- a/parse.y
+++ b/parse.y
@@ -3441,7 +3441,7 @@ bv_decls : bvar
/*%c%*/
/*%c
{
- $$ = rb_ary_new2($1);
+ $$ = rb_ary_new3(1, $1);
}
%*/
| bv_decls ',' bvar
@@ -3455,10 +3455,10 @@ bv_decls : bvar
bvar : tIDENTIFIER
{
- new_bv($1);
+ new_bv(get_id($1));
/*%%%*/
/*%
- $$ = $1;
+ $$ = get_value($1);
%*/
}
| f_bad_arg
diff --git a/test/ripper/test_parser_events.rb b/test/ripper/test_parser_events.rb
index 4a4854b28a..80199ecce5 100644
--- a/test/ripper/test_parser_events.rb
+++ b/test/ripper/test_parser_events.rb
@@ -1,6 +1,7 @@
begin
require_relative 'dummyparser'
+require_relative '../ruby/envutil'
require 'test/unit'
class TestRipper_ParserEvents < Test::Unit::TestCase
@@ -566,6 +567,15 @@ class TestRipper_ParserEvents < Test::Unit::TestCase
assert_equal("[fcall(p,[],&block([w],[#{div}]))]", parse("p{|w|w /25 # /\n}"), bug1939)
assert_equal("[def(p,[w],bodystmt([#{div}]))]", parse("def p(w)\nw /25 # /\nend"), bug1939)
end
+
+ def test_block_variables
+ assert_equal("[fcall(proc,[],&block([],[void()]))]", parse("proc{|;y|}"))
+ if defined?(Process::RLIMIT_AS)
+ assert_in_out_err(["-I#{File.dirname(__FILE__)}", "-rdummyparser"],
+ 'Process.setrlimit(Process::RLIMIT_AS,102400); puts DummyParser.new("proc{|;y|}").parse',
+ ["[fcall(proc,[],&block([],[void()]))]"], [], '[ruby-dev:39423]')
+ end
+ end
end
rescue LoadError
diff --git a/version.h b/version.h
index c75979d4dc..225831fdf9 100644
--- a/version.h
+++ b/version.h
@@ -1,5 +1,5 @@
#define RUBY_VERSION "1.9.1"
-#define RUBY_PATCHLEVEL 359
+#define RUBY_PATCHLEVEL 360
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 9
#define RUBY_VERSION_TEENY 1