* parse.y: fix node construction (around f_margs).
[ruby-dev:31143] * bootstraptest/test_block.rb: add a test for above. * insnhelper.ci: fix indent. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
174b77b280
commit
0ec2b20d2f
@ -1,3 +1,12 @@
|
|||||||
|
Sat Jul 7 16:12:48 2007 Koichi Sasada <ko1@atdot.net>
|
||||||
|
|
||||||
|
* parse.y: fix node construction (around f_margs).
|
||||||
|
[ruby-dev:31143]
|
||||||
|
|
||||||
|
* bootstraptest/test_block.rb: add a test for above.
|
||||||
|
|
||||||
|
* insnhelper.ci: fix indent.
|
||||||
|
|
||||||
Sat Jul 7 15:36:50 2007 Tanaka Akira <akr@fsij.org>
|
Sat Jul 7 15:36:50 2007 Tanaka Akira <akr@fsij.org>
|
||||||
|
|
||||||
* lib/pp.rb (PP::PPMethods#pp_hash): sort if
|
* lib/pp.rb (PP::PPMethods#pp_hash): sort if
|
||||||
|
@ -336,6 +336,36 @@ assert_equal %q{[1, nil]}, %q{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# block parameter (shouldn't SEGV: [ruby-dev:31143])
|
||||||
|
assert_equal '0', %q{
|
||||||
|
def m()
|
||||||
|
end
|
||||||
|
m {|(v0,*,(*)),|}
|
||||||
|
m {|(*v0,(*)),|}
|
||||||
|
m {|(v0,*v1,(*)),|}
|
||||||
|
m {|((v0,*v1,v2)),|}
|
||||||
|
m {|(v0,*v1,v2),|}
|
||||||
|
m {|(v0,*v1,(v2)),|}
|
||||||
|
m {|((*),*v0,v1),|}
|
||||||
|
m {|((v0),*v1,v2),|}
|
||||||
|
m {|(v0,v1,*v2,v3),|}
|
||||||
|
m {|v0,(v1,*v2,v3),|}
|
||||||
|
m {|(v0,*v1,v2),v3,|}
|
||||||
|
m {|(v0,*v1,v2)|}
|
||||||
|
m {|(v0,*v1,v2),&v3|}
|
||||||
|
m {|(v0,*v1,v2),*|}
|
||||||
|
m {|(v0,*v1,v2),*,&v3|}
|
||||||
|
m {|*,(v0,*v1,v2)|}
|
||||||
|
m {|*,(v0,*v1,v2),&v3|}
|
||||||
|
m {|v0,*,(v1,*v2,v3)|}
|
||||||
|
m {|v0,*,(v1,*v2,v3),&v4|}
|
||||||
|
m {|(v0,*v1,v2),*,v3|}
|
||||||
|
m {|(v0,*v1,v2),*,v3,&v4|}
|
||||||
|
m {|(v0, *v1, v2)|}
|
||||||
|
m {|(*,v)|}
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
# [ruby-dev:31147]
|
# [ruby-dev:31147]
|
||||||
assert_equal 'nil', %q{
|
assert_equal 'nil', %q{
|
||||||
def m
|
def m
|
||||||
@ -343,3 +373,4 @@ assert_equal 'nil', %q{
|
|||||||
end
|
end
|
||||||
m{|&b| b}.inspect
|
m{|&b| b}.inspect
|
||||||
}
|
}
|
||||||
|
|
||||||
|
6
parse.y
6
parse.y
@ -3003,7 +3003,7 @@ f_marg : f_norm_arg
|
|||||||
| tLPAREN f_margs rparen
|
| tLPAREN f_margs rparen
|
||||||
{
|
{
|
||||||
/*%%%*/
|
/*%%%*/
|
||||||
$$ = $2;
|
$$ = NEW_LIST($2);
|
||||||
/*%
|
/*%
|
||||||
$$ = dispatch1(mlhs_paren, $2);
|
$$ = dispatch1(mlhs_paren, $2);
|
||||||
%*/
|
%*/
|
||||||
@ -3013,7 +3013,7 @@ f_marg : f_norm_arg
|
|||||||
f_marg_head : f_marg
|
f_marg_head : f_marg
|
||||||
{
|
{
|
||||||
/*%%%*/
|
/*%%%*/
|
||||||
$$ = NEW_LIST($1);
|
$$ = $1;
|
||||||
/*%
|
/*%
|
||||||
$$ = mlhs_add(mlhs_new(), $1);
|
$$ = mlhs_add(mlhs_new(), $1);
|
||||||
%*/
|
%*/
|
||||||
@ -3047,7 +3047,7 @@ f_margs : f_marg_head
|
|||||||
| f_marg_head ',' tSTAR f_norm_arg ',' f_marg
|
| f_marg_head ',' tSTAR f_norm_arg ',' f_marg
|
||||||
{
|
{
|
||||||
/*%%%*/
|
/*%%%*/
|
||||||
$$ = NEW_MASGN($1, NEW_POSTARG($4,$6));
|
$$ = NEW_MASGN($1, NEW_POSTARG(assignable($4, 0), $6));
|
||||||
/*%
|
/*%
|
||||||
$$ = mlhs_add_star($1, $4);
|
$$ = mlhs_add_star($1, $4);
|
||||||
%*/
|
%*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user