From 81f65a9e054ddcdf2d1a8507e516672dd8c7324e Mon Sep 17 00:00:00 2001 From: mrkn Date: Sat, 19 Mar 2016 09:28:12 +0000 Subject: * bignum.c (Bignum#<=>): remove it because they are unified with Integer#<=>. * numeric.c (Integer#<=>, Fixnum#<=>): move <=> method from Fixnum to Integer. * numeric.c (int_cmp): add this method for Integer#<=>. * test/-ext-/integer/test_my_integer.rb (test_my_integer_cmp): add a test to examine Integer#<=> for unknown subclasses. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/-ext-/integer/test_my_integer.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'test/-ext-/integer/test_my_integer.rb') diff --git a/test/-ext-/integer/test_my_integer.rb b/test/-ext-/integer/test_my_integer.rb index bc4757f463..e6d8dd1a07 100644 --- a/test/-ext-/integer/test_my_integer.rb +++ b/test/-ext-/integer/test_my_integer.rb @@ -23,4 +23,26 @@ class TestIntegerExt < Test::Unit::TestCase end end end + + def test_my_integer_cmp + assert_raise(NotImplementedError) do + Bug::Integer::MyInteger.new <=> 0 + end + + begin + Bug::Integer::MyInteger.class_eval do + def <=>(other) + 0 + end + end + + assert_nothing_raised do + Bug::Integer::MyInteger.new <=> 0 + end + ensure + Bug::Integer::MyInteger.class_eval do + remove_method :<=> + end + end + end end -- cgit v1.2.3