Project

General

Profile

Actions

Bug #1165

closed

Range.eql? and Range.== bug with subclasses

Added by marcandre (Marc-Andre Lafortune) almost 16 years ago. Updated over 13 years ago.

Status:
Closed
Target version:
ruby -v:
ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-darwin9.6.0]
Backport:
[ruby-core:22190]

Description

=begin
Contrary to the documentation (and to what I would expect):

class TrivialRangeSubclass < Range
end

TrivialRangeSubclass.new(0,1) == Range.new(0,1) # ==> false

This bug is present in the current versions of ruby 1.8.7 and 1.9.1. As a matter of curiosity, I checked both JRuby (1.1.6) and rubinius (0.10.0) and they both return true (as they should).

Although I'm not familiar with the source code, it seams like a simple change, so I've included a patch for the 1.9.1 version. I hope I did things correctly! Changelog could read like:

Mon Feb 16 14:35:35 2009 Marc-Andre Lafortune

* range.c (range_eql, range_eq): fixed equality to work for
  subclasses of Range.

* test/ruby/test_range.rb: add assertions for above.

Thank you!
=end


Files

ruby-changes.patch (1.16 KB) ruby-changes.patch marcandre (Marc-Andre Lafortune), 02/17/2009 05:10 AM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0