mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Make Array methods return Array instances instead of subclass instances
This changes the following methods to return Array instances instead of subclass instances: * Array#drop * Array#drop_while * Array#flatten * Array#slice! * Array#slice/#[] * Array#take * Array#take_while * Array#uniq * Array#* Fixes [Bug #6087]
This commit is contained in:
parent
7d6c72dc06
commit
2a294d499b
Notes:
git
2020-11-04 07:02:06 +09:00
Merged: https://github.com/ruby/ruby/pull/3690 Merged-By: jeremyevans <code@jeremyevans.net>
6 changed files with 171 additions and 95 deletions
|
@ -397,28 +397,56 @@ describe :array_slice, shared: true do
|
|||
@array = ArraySpecs::MyArray[1, 2, 3, 4, 5]
|
||||
end
|
||||
|
||||
it "returns a subclass instance with [n, m]" do
|
||||
@array.send(@method, 0, 2).should be_an_instance_of(ArraySpecs::MyArray)
|
||||
ruby_version_is ''...'3.0' do
|
||||
it "returns a subclass instance with [n, m]" do
|
||||
@array.send(@method, 0, 2).should be_an_instance_of(ArraySpecs::MyArray)
|
||||
end
|
||||
|
||||
it "returns a subclass instance with [-n, m]" do
|
||||
@array.send(@method, -3, 2).should be_an_instance_of(ArraySpecs::MyArray)
|
||||
end
|
||||
|
||||
it "returns a subclass instance with [n..m]" do
|
||||
@array.send(@method, 1..3).should be_an_instance_of(ArraySpecs::MyArray)
|
||||
end
|
||||
|
||||
it "returns a subclass instance with [n...m]" do
|
||||
@array.send(@method, 1...3).should be_an_instance_of(ArraySpecs::MyArray)
|
||||
end
|
||||
|
||||
it "returns a subclass instance with [-n..-m]" do
|
||||
@array.send(@method, -3..-1).should be_an_instance_of(ArraySpecs::MyArray)
|
||||
end
|
||||
|
||||
it "returns a subclass instance with [-n...-m]" do
|
||||
@array.send(@method, -3...-1).should be_an_instance_of(ArraySpecs::MyArray)
|
||||
end
|
||||
end
|
||||
|
||||
it "returns a subclass instance with [-n, m]" do
|
||||
@array.send(@method, -3, 2).should be_an_instance_of(ArraySpecs::MyArray)
|
||||
end
|
||||
ruby_version_is '3.0' do
|
||||
it "returns a Array instance with [n, m]" do
|
||||
@array.send(@method, 0, 2).should be_an_instance_of(Array)
|
||||
end
|
||||
|
||||
it "returns a subclass instance with [n..m]" do
|
||||
@array.send(@method, 1..3).should be_an_instance_of(ArraySpecs::MyArray)
|
||||
end
|
||||
it "returns a Array instance with [-n, m]" do
|
||||
@array.send(@method, -3, 2).should be_an_instance_of(Array)
|
||||
end
|
||||
|
||||
it "returns a subclass instance with [n...m]" do
|
||||
@array.send(@method, 1...3).should be_an_instance_of(ArraySpecs::MyArray)
|
||||
end
|
||||
it "returns a Array instance with [n..m]" do
|
||||
@array.send(@method, 1..3).should be_an_instance_of(Array)
|
||||
end
|
||||
|
||||
it "returns a subclass instance with [-n..-m]" do
|
||||
@array.send(@method, -3..-1).should be_an_instance_of(ArraySpecs::MyArray)
|
||||
end
|
||||
it "returns a Array instance with [n...m]" do
|
||||
@array.send(@method, 1...3).should be_an_instance_of(Array)
|
||||
end
|
||||
|
||||
it "returns a subclass instance with [-n...-m]" do
|
||||
@array.send(@method, -3...-1).should be_an_instance_of(ArraySpecs::MyArray)
|
||||
it "returns a Array instance with [-n..-m]" do
|
||||
@array.send(@method, -3..-1).should be_an_instance_of(Array)
|
||||
end
|
||||
|
||||
it "returns a Array instance with [-n...-m]" do
|
||||
@array.send(@method, -3...-1).should be_an_instance_of(Array)
|
||||
end
|
||||
end
|
||||
|
||||
it "returns an empty array when m == n with [m...n]" do
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue