1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* compar.c (cmp_eq_recursive): Fix the return value, the value for

failed #<=> should be nil. It was raising a NoMethodError for
  the test case TestComparable#test_no_cmp (undefined method `>'
  for false:FalseClass). Yet one more reason for #7688.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
eregon 2013-12-28 22:28:39 +00:00
parent 58a60b264d
commit 7e978b1070
2 changed files with 8 additions and 1 deletions

View file

@ -1,3 +1,10 @@
Sun Dec 29 07:27:51 2013 Benoit Daloze <eregontp@gmail.com>
* compar.c (cmp_eq_recursive): Fix the return value, the value for
failed #<=> should be nil. It was raising a NoMethodError for
the test case TestComparable#test_no_cmp (undefined method `>'
for false:FalseClass). Yet one more reason for #7688.
Sat Dec 28 22:21:59 2013 Benoit Daloze <eregontp@gmail.com> Sat Dec 28 22:21:59 2013 Benoit Daloze <eregontp@gmail.com>
* object.c (Kernel#<=>) surround Comparable operators with <code> tags. * object.c (Kernel#<=>) surround Comparable operators with <code> tags.

View file

@ -54,7 +54,7 @@ rb_invcmp(VALUE x, VALUE y)
static VALUE static VALUE
cmp_eq_recursive(VALUE arg1, VALUE arg2, int recursive) cmp_eq_recursive(VALUE arg1, VALUE arg2, int recursive)
{ {
if (recursive) return Qfalse; if (recursive) return Qnil;
return rb_funcallv(arg1, cmp, 1, &arg2); return rb_funcallv(arg1, cmp, 1, &arg2);
} }