summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-06-22 09:12:24 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-06-22 09:12:24 +0000
commitdef42c9a0cd274202da56531c19e0a4bee3364e3 (patch)
treeb100f68b08e5f1ae5338055ae798320a4a339e01 /parse.y
parentef8e0b4dffaec6789a1582d841ddb563cac2115d (diff)
* eval.c (rb_yield_0): no mvalue_to_svalue conversion here.
* eval.c (massign): takes svalue, convert it to mvalue inside. * eval.c (rb_eval): parameters for yield/return are always svalues now. * eval.c (svalue_to_mvalue): more strict conversion. * eval.c (mvalue_to_svalue): ditto. * st.c (new_size): prime hash size enabled. * ext/socket/socket.c (Init_socket): SO_* constants added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1535 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y15
1 files changed, 6 insertions, 9 deletions
diff --git a/parse.y b/parse.y
index 144a7ce295..bf9fd07067 100644
--- a/parse.y
+++ b/parse.y
@@ -426,7 +426,7 @@ stmt : kALIAS fitem {lex_state = EXPR_FNAME;} fitem
}
| lhs '=' mrhs_basic
{
- $$ = node_assign($1, $3);
+ $$ = node_assign($1, NEW_SVALUE($3));
}
| mlhs '=' mrhs
{
@@ -1133,6 +1133,9 @@ mrhs : arg
$$ = $1;
}
| mrhs_basic
+ {
+ $$ = NEW_SVALUE($1);
+ }
mrhs_basic : args ',' arg
{
@@ -1147,7 +1150,7 @@ mrhs_basic : args ',' arg
| tSTAR arg
{
value_expr($2);
- $$ = NEW_REXPAND($2);
+ $$ = $2;
}
primary : literal
@@ -4666,16 +4669,10 @@ ret_args(node)
NODE *node;
{
if (node) {
- if (nd_type(node) == NODE_ARRAY && node->nd_next == 0) {
- node = node->nd_head;
- }
- else if (nd_type(node) == NODE_BLOCK_PASS) {
+ if (nd_type(node) == NODE_BLOCK_PASS) {
rb_compile_error("block argument should not be given");
}
}
- if (nd_type(node) == NODE_RESTARGS) {
- nd_set_type(node, NODE_REXPAND);
- }
return node;
}