summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authormame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-06-13 09:04:32 +0000
committermame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-06-13 09:04:32 +0000
commit48de2ea5f9b9067779acb0f7f76e5f879f2b42c0 (patch)
tree8fc7b7396059745163a8d4c224c82647da9345e5 /parse.y
parent75d25ede15e664ee0048ebc4e84e9e34838c2313 (diff)
range.c: prohibit `(1..nil)`
Now endless range can be created by either a literal `(1..)` or explicit range creation `Range.new(1, nil)`. [Bug #14845] This change is intended for "early failure"; for example, `(1..var).to_a` causes out of memory if `var` is inadvertently nil. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63646 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y12
1 files changed, 2 insertions, 10 deletions
diff --git a/parse.y b/parse.y
index b1ddc1bf1c..53ad745ec9 100644
--- a/parse.y
+++ b/parse.y
@@ -1916,24 +1916,16 @@ arg : lhs '=' arg_rhs
| arg tDOT2
{
/*%%%*/
- YYLTYPE loc;
- loc.beg_pos = @2.end_pos;
- loc.end_pos = @2.end_pos;
-
value_expr($1);
- $$ = NEW_DOT2($1, new_nil(&loc), &@$);
+ $$ = NEW_DOT2($1, 0, &@$);
/*% %*/
/*% ripper: dot2!($1, Qnil) %*/
}
| arg tDOT3
{
/*%%%*/
- YYLTYPE loc;
- loc.beg_pos = @2.end_pos;
- loc.end_pos = @2.end_pos;
-
value_expr($1);
- $$ = NEW_DOT3($1, new_nil(&loc), &@$);
+ $$ = NEW_DOT3($1, 0, &@$);
/*% %*/
/*% ripper: dot3!($1, Qnil) %*/
}