mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Relaxed of R-assign value to arg
This commit is contained in:
parent
93edbb4c08
commit
022c7bbea9
2 changed files with 3 additions and 6 deletions
8
parse.y
8
parse.y
|
@ -1506,18 +1506,16 @@ stmt : keyword_alias fitem {SET_LEX_STATE(EXPR_FNAME|EXPR_FITEM);} fitem
|
||||||
| expr
|
| expr
|
||||||
;
|
;
|
||||||
|
|
||||||
rassign : primary tASSOC lhs
|
rassign : arg_value tASSOC lhs
|
||||||
{
|
{
|
||||||
/*%%%*/
|
/*%%%*/
|
||||||
value_expr($1);
|
|
||||||
$$ = node_assign(p, $3, $1, &@$);
|
$$ = node_assign(p, $3, $1, &@$);
|
||||||
/*% %*/
|
/*% %*/
|
||||||
/*% ripper: assign!($3, $1) %*/
|
/*% ripper: assign!($3, $1) %*/
|
||||||
}
|
}
|
||||||
| primary tASSOC mlhs
|
| arg_value tASSOC mlhs
|
||||||
{
|
{
|
||||||
/*%%%*/
|
/*%%%*/
|
||||||
value_expr($1);
|
|
||||||
$$ = node_assign(p, $3, $1, &@$);
|
$$ = node_assign(p, $3, $1, &@$);
|
||||||
/*% %*/
|
/*% %*/
|
||||||
/*% ripper: massign!($3, $1) %*/
|
/*% ripper: massign!($3, $1) %*/
|
||||||
|
@ -1525,7 +1523,6 @@ rassign : primary tASSOC lhs
|
||||||
| rassign tASSOC lhs
|
| rassign tASSOC lhs
|
||||||
{
|
{
|
||||||
/*%%%*/
|
/*%%%*/
|
||||||
value_expr($1);
|
|
||||||
$$ = node_assign(p, $3, $1, &@$);
|
$$ = node_assign(p, $3, $1, &@$);
|
||||||
/*% %*/
|
/*% %*/
|
||||||
/*% ripper: assign!($3, $1) %*/
|
/*% ripper: assign!($3, $1) %*/
|
||||||
|
@ -1533,7 +1530,6 @@ rassign : primary tASSOC lhs
|
||||||
| rassign tASSOC mlhs
|
| rassign tASSOC mlhs
|
||||||
{
|
{
|
||||||
/*%%%*/
|
/*%%%*/
|
||||||
value_expr($1);
|
|
||||||
$$ = node_assign(p, $3, $1, &@$);
|
$$ = node_assign(p, $3, $1, &@$);
|
||||||
/*% %*/
|
/*% %*/
|
||||||
/*% ripper: massign!($3, $1) %*/
|
/*% ripper: massign!($3, $1) %*/
|
||||||
|
|
|
@ -1571,6 +1571,7 @@ eom
|
||||||
assert_equal([2,3], eval("13.divmod(5) => a,b; [a, b]"))
|
assert_equal([2,3], eval("13.divmod(5) => a,b; [a, b]"))
|
||||||
assert_equal([2,3,2,3], eval("13.divmod(5) => a,b => c, d; [a, b, c, d]"))
|
assert_equal([2,3,2,3], eval("13.divmod(5) => a,b => c, d; [a, b, c, d]"))
|
||||||
assert_equal([2,3], eval("13.divmod(5)\n => a,b; [a, b]"))
|
assert_equal([2,3], eval("13.divmod(5)\n => a,b; [a, b]"))
|
||||||
|
assert_equal(3, eval("1+2 => a"))
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue