diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-15 04:52:56 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-15 04:52:56 +0000 |
commit | fe898043ccc99f3e127c63e0c18f4d2233bfa555 (patch) | |
tree | e3365ee32256f9d0be33e7093e418f7be34e5fc7 | |
parent | 4edc1d8c9c234303096e6e5a35e87944b50d247d (diff) | |
download | ruby-fe898043ccc99f3e127c63e0c18f4d2233bfa555.tar.gz |
* parse.y: fix rules around f_margs. "make test" passes all tests.
* bootstraptest/test_block.rb: add some tests for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | bootstraptest/test_block.rb | 29 | ||||
-rw-r--r-- | debug.c | 2 | ||||
-rw-r--r-- | parse.y | 10 |
4 files changed, 34 insertions, 15 deletions
@@ -1,3 +1,9 @@ +Wed Aug 15 13:42:15 2007 Koichi Sasada <ko1@atdot.net> + + * parse.y: fix rules around f_margs. "make test" passes all tests. + + * bootstraptest/test_block.rb: add some tests for above. + Wed Aug 15 13:50:10 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> * hash.c (rb_hash_delete_key): delete the entry without calling block. @@ -9,7 +15,7 @@ Wed Aug 15 13:50:10 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> Wed Aug 15 13:39:25 2007 Koichi Sasada <ko1@atdot.net> - * process.c (proc_geteuid): fix strange cast. [ruby-dev:31417] + * process.c (proc_geteuid): fix strange conversion. [ruby-dev:31417] Wed Aug 15 01:05:55 2007 Tanaka Akira <akr@fsij.org> diff --git a/bootstraptest/test_block.rb b/bootstraptest/test_block.rb index 96d78cc965..747a48fdaa 100644 --- a/bootstraptest/test_block.rb +++ b/bootstraptest/test_block.rb @@ -336,7 +336,6 @@ assert_equal %q{[1, nil]}, %q{ } } -# block parameter (shouldn't SEGV: [ruby-dev:31143]) assert_equal '0', %q{ def m() end @@ -364,31 +363,28 @@ m {|(v0,*v1,v2),*,v3,&v4|} m {|(v0, *v1, v2)|} m {|(*,v)|} 0 -} +}, "block parameter (shouldn't SEGV: [ruby-dev:31143])" -# [ruby-dev:31147] assert_equal 'nil', %q{ def m yield end m{|&b| b}.inspect -} +}, '[ruby-dev:31147]' -# [ruby-dev:31160] assert_equal 'nil', %q{ def m() yield end m {|(v,(*))|}.inspect -} +}, '[ruby-dev:31160]' -# [ruby-dev:31153] assert_equal 'nil', %q{ def m() yield end m {|(*,a,b)|}.inspect -} +}, '[ruby-dev:31153]' assert_equal 'nil', %q{ def m() @@ -397,3 +393,20 @@ assert_equal 'nil', %q{ m {|((*))|}.inspect } +assert_equal %q{[1, 1, [1, nil], [1, nil], [1, nil], [1, nil], [1, 1], 1, [1, nil], [1, nil], [1, nil], [1, nil], [[1, 1], [1, 1]], [1, 1], [1, 1], [1, 1], [1, nil], [1, nil], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[1, 1], [1, 1]], [[1, 1], [1, 1]], [[1, 1], [1, 1]], [1, 1], [1, 1], [[[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[1, 1], [1, 1]], [[1, 1], [1, 1]]]}, %q{ +def m(ary = []) + yield(ary) +end + +$ans = [] +o = 1 +5.times{ + v,(*) = o; $ans << o + m(o){|(v,(*))| $ans << v} + ((x, y)) = o; $ans << [x, y] + m(o){|((x, y))| $ans << [x, y]} + (((x, y))) = o; $ans << [x, y] + m(o){|(((x, y)))| $ans << [x, y]} + o = [o, o] +}; $ans +} @@ -33,7 +33,7 @@ ruby_debug_print_value(int level, int debug_level, const char *header, VALUE obj VALUE str; str = rb_inspect(obj); fprintf(stderr, "DBG> %s: %s\n", header, - obj == -1 ? "" : StringValueCStr(str)); + obj == -1 ? "" : StringValueCStr(str)); fflush(stderr); } return obj; @@ -1389,7 +1389,7 @@ mlhs_basic : mlhs_head | mlhs_head tSTAR ',' mlhs_post { /*%%%*/ - $$ = NEW_MASGN($1, NEW_POSTARG(-1,$4)); + $$ = NEW_MASGN($1, NEW_POSTARG(-1, $4)); /*% $$ = mlhs_add_star($1, Qnil); %*/ @@ -1421,7 +1421,7 @@ mlhs_basic : mlhs_head | tSTAR ',' mlhs_post { /*%%%*/ - $$ = NEW_MASGN(0, NEW_POSTARG(-1,$3)); + $$ = NEW_MASGN(0, NEW_POSTARG(-1, $3)); /*% $$ = mlhs_add_star(mlhs_new(), Qnil); %*/ @@ -3001,7 +3001,7 @@ for_var : lhs f_marg : f_norm_arg { /*%%%*/ - $$ = NEW_LIST(assignable($1, 0)); + $$ = assignable($1, 0); //NEW_LIST(assignable($1, 0)); /*% $$ = dispatch1(mlhs_paren, $1); %*/ @@ -3009,7 +3009,7 @@ f_marg : f_norm_arg | tLPAREN f_margs rparen { /*%%%*/ - $$ = NEW_MASGN(NEW_LIST($2), 0); + $$ = $2; //NEW_LIST($2); /*% $$ = dispatch1(mlhs_paren, $2); %*/ @@ -3019,7 +3019,7 @@ f_marg : f_norm_arg f_marg_list : f_marg { /*%%%*/ - $$ = $1; + $$ = NEW_LIST($1); /*% $$ = mlhs_add(mlhs_new(), $1); %*/ |