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

complex.c: undefine Comparable methods

* complex.c (Init_Complex): undefine methods inherited from
  Comparable, because Complex does not have <=> method.
  [Bug #12866]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-10-24 01:51:10 +00:00
parent 4065c38a6a
commit 052690309a
3 changed files with 10 additions and 13 deletions

View file

@ -1,4 +1,8 @@
Mon Oct 24 10:49:50 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
Mon Oct 24 10:51:09 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
* complex.c (Init_Complex): undefine methods inherited from
Comparable, because Complex does not have <=> method.
[Bug #12866]
* class.c (rb_undef_methods_from): undefine methods defined in
super from klass.

View file

@ -2227,14 +2227,9 @@ Init_Complex(void)
rb_define_global_function("Complex", nucomp_f_complex, -1);
rb_undef_methods_from(rb_cComplex, rb_mComparable);
rb_undef_method(rb_cComplex, "%");
rb_undef_method(rb_cComplex, "<");
rb_undef_method(rb_cComplex, "<=");
rb_undef_method(rb_cComplex, "<=>");
rb_undef_method(rb_cComplex, ">");
rb_undef_method(rb_cComplex, ">=");
rb_undef_method(rb_cComplex, "between?");
rb_undef_method(rb_cComplex, "clamp");
rb_undef_method(rb_cComplex, "div");
rb_undef_method(rb_cComplex, "divmod");
rb_undef_method(rb_cComplex, "floor");

View file

@ -749,13 +749,7 @@ class Complex_Test < Test::Unit::TestCase
def test_respond
c = Complex(1,1)
assert_not_respond_to(c, :%)
assert_not_respond_to(c, :<)
assert_not_respond_to(c, :<=)
assert_not_respond_to(c, :<=>)
assert_not_respond_to(c, :>)
assert_not_respond_to(c, :>=)
assert_not_respond_to(c, :between?)
assert_not_respond_to(c, :clamp)
assert_not_respond_to(c, :div)
assert_not_respond_to(c, :divmod)
assert_not_respond_to(c, :floor)
@ -777,6 +771,10 @@ class Complex_Test < Test::Unit::TestCase
assert_not_respond_to(c, :gcd)
assert_not_respond_to(c, :lcm)
assert_not_respond_to(c, :gcdlcm)
(Comparable.instance_methods(false) - Complex.instance_methods(false)).each do |n|
assert_not_respond_to(c, n, "Complex##{n}")
end
end
def test_to_i