[ruby-core:89559] [Ruby trunk Bug#15254] Array#slice should not treat the index past the last element as a special case

From: bhock@...
Date: 2018-10-25 21:44:09 UTC
List: ruby-core #89559
Issue #15254 has been reported by Malakai97 (Bryan Hockey).

----------------------------------------
Bug #15254: Array#slice should not treat the index past the last element as a special case
https://bugs.ruby-lang.org/issues/15254

* Author: Malakai97 (Bryan Hockey)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
Array#slice should not treat the index past the last element as a special case. This causes Array#slice(start, length) has inconsistent behavior when given out of bounds values for the start parameter. It sometimes returns an array, and sometimes nil.

~~~
    describe "inconsistencies starting in past the end" do
      it { @array.slice(5,3).must_equal [] } # passes
      it { @array.slice(6,3).must_equal [] } # returns nil
      it { @array.slice(100,3).must_equal [] } # returns nil
    end

    describe "failures when starting before the start" do
      it { @array.slice(-5,1).must_equal [0] } # passes
      it { @array.slice(-5,5).must_equal @array } # passes
      it { @array.slice(-6,2).must_equal [0] } # returns nil
      it { @array.slice(-6,6).must_equal @array } # returns nil
    end
~~~

The attached script contains the minitest tests.

---Files--------------------------------
array_slice_start_length_test.rb (645 Bytes)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next