Project

General

Profile

Feature #12912 ยป endless-range.patch

mame (Yusuke Endoh), 11/09/2016 02:54 PM

View differences:

parse.y
$$ = dispatch2(dot3, $1, $3);
%*/
}
| arg tDOT2
{
/*%%%*/
value_expr($1);
$$ = NEW_DOT2($1, NEW_LIT(INT2FIX(-1)));
/*%
$$ = dispatch2(dot2, $1, INT2FIX(-1));
%*/
}
| arg '+' arg
{
/*%%%*/
range.c
beg = RANGE_BEG(range);
end = RANGE_END(range);
if (FIXNUM_P(beg) && FIXNUM_P(end)) { /* fixnums are special */
if (FIXNUM_P(beg) && end == INT2FIX(-1)) {
long i = FIX2LONG(beg);
while (1) {
rb_yield(LONG2FIX(i++));
}
}
else if (FIXNUM_P(beg) && FIXNUM_P(end)) { /* fixnums are special */
long lim = FIX2LONG(end);
long i;
    (1-1/1)