Returns `nil` instead of an empty string when non-integer number is given (to make it 2.7 compatible).
This commit is contained in:
Soutaro Matsumoto 2020-09-11 14:34:10 +09:00 коммит произвёл GitHub
Родитель 0d78390bfb
Коммит f0ddbd502c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 6 добавлений и 1 удалений

Просмотреть файл

@ -4961,7 +4961,10 @@ rb_str_slice_bang(int argc, VALUE *argv, VALUE str)
return Qnil;
case Qfalse:
beg = NUM2LONG(indx);
goto num_index;
if (!(p = rb_str_subpos(str, beg, &len))) return Qnil;
if (!len) return Qnil;
beg = p - RSTRING_PTR(str);
goto subseq;
default:
goto num_index;
}

Просмотреть файл

@ -1588,8 +1588,10 @@ CODE
a = S("FooBar")
if @aref_slicebang_silent
assert_nil( a.slice!(6) )
assert_nil( a.slice!(6r) )
else
assert_raise(IndexError) { a.slice!(6) }
assert_raise(IndexError) { a.slice!(6r) }
end
assert_equal(S("FooBar"), a)