Actions
Bug #7437
closedArray#delete(obj) should return obj when there is an object that is equal in the array
Description
According to http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-delete, Array#delete(obj) should return "obj" when there are objects in the array that are "equal to obj" (internally, "==" is used, it seems).
Notice that the documentation does not state that the return value is an element of the array itself. However, 1.9.3 and trunk both return a member of the Array, rather than the argument.
This issue was raised in https://github.com/jruby/jruby/issues/411
#!/usr/bin/env ruby
class Foo
attr_reader :name, :age
def initialize name, age
@name = name
@age = age
end
def == other
other.name == name
end
end
foo1 = Foo.new "John Shahid", 27
foo2 = Foo.new "John Shahid", 28
array = [foo1]
temp = array.delete foo2 # => foo1, not foo2
Files
Actions
Like0
Like0Like0Like0Like0Like0