* parse.y (bv_decls, bvar): fix for block variables.
[ruby-dev:39423] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
7b26a97142
commit
72ad8595f2
@ -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 21:19:18 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Sat Oct 3 21:19:18 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* vm_method.c (rb_add_method_def): no redefinition warning on
|
* vm_method.c (rb_add_method_def): no redefinition warning on
|
||||||
|
6
parse.y
6
parse.y
@ -3403,7 +3403,7 @@ bv_decls : bvar
|
|||||||
/*%c%*/
|
/*%c%*/
|
||||||
/*%c
|
/*%c
|
||||||
{
|
{
|
||||||
$$ = rb_ary_new2($1);
|
$$ = rb_ary_new3(1, $1);
|
||||||
}
|
}
|
||||||
%*/
|
%*/
|
||||||
| bv_decls ',' bvar
|
| bv_decls ',' bvar
|
||||||
@ -3417,10 +3417,10 @@ bv_decls : bvar
|
|||||||
|
|
||||||
bvar : tIDENTIFIER
|
bvar : tIDENTIFIER
|
||||||
{
|
{
|
||||||
new_bv($1);
|
new_bv(get_id($1));
|
||||||
/*%%%*/
|
/*%%%*/
|
||||||
/*%
|
/*%
|
||||||
$$ = $1;
|
$$ = get_value($1);
|
||||||
%*/
|
%*/
|
||||||
}
|
}
|
||||||
| f_bad_arg
|
| f_bad_arg
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
begin
|
begin
|
||||||
|
|
||||||
require_relative 'dummyparser'
|
require_relative 'dummyparser'
|
||||||
|
require_relative '../ruby/envutil'
|
||||||
require 'test/unit'
|
require 'test/unit'
|
||||||
|
|
||||||
class TestRipper_ParserEvents < Test::Unit::TestCase
|
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("[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)
|
assert_equal("[def(p,[w],bodystmt([#{div}]))]", parse("def p(w)\nw /25 # /\nend"), bug1939)
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
rescue LoadError
|
rescue LoadError
|
||||||
|
Loading…
x
Reference in New Issue
Block a user