From a9f3a1cda13c78e893f841fc08b21a17afe64b16 Mon Sep 17 00:00:00 2001 From: akr Date: Sat, 30 Apr 2016 11:54:26 +0000 Subject: [PATCH] Define Integer#* instead of Bignum#*. * numeric.c (rb_int_mul): Define Integer#*. * bignum.c (rb_big_mul): Don't define Bignum#*. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54848 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ bignum.c | 8 -------- numeric.c | 4 +++- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index be34124a6c..5dd5ea364f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Sat Apr 30 20:53:33 2016 Tanaka Akira + + * numeric.c (rb_int_mul): Define Integer#*. + + * bignum.c (rb_big_mul): Don't define Bignum#*. + Sat Apr 30 20:30:44 2016 Tanaka Akira * numeric.c (rb_int_modulo): Define Integer#%. diff --git a/bignum.c b/bignum.c index a2590af05c..aca779be00 100644 --- a/bignum.c +++ b/bignum.c @@ -5897,13 +5897,6 @@ bigmul0(VALUE x, VALUE y) return z; } -/* - * call-seq: - * big * other -> Numeric - * - * Multiplies big and other, returning the result. - */ - VALUE rb_big_mul(VALUE x, VALUE y) { @@ -6844,7 +6837,6 @@ Init_Bignum(void) rb_define_method(rb_cBignum, "coerce", rb_big_coerce, 1); rb_define_method(rb_cBignum, "+", rb_big_plus, 1); rb_define_method(rb_cBignum, "-", rb_big_minus, 1); - rb_define_method(rb_cBignum, "*", rb_big_mul, 1); rb_define_method(rb_cBignum, "/", rb_big_div, 1); rb_define_method(rb_cBignum, "===", rb_big_eq, 1); diff --git a/numeric.c b/numeric.c index c20ce4f76d..8a098d0a30 100644 --- a/numeric.c +++ b/numeric.c @@ -3331,9 +3331,10 @@ rb_int_minus(VALUE x, VALUE y) #define FIT_SQRT_LONG(n) (((n)=-SQRT_LONG_MAX)) /* + * Document-method: Integer#* * Document-method: Fixnum#* * call-seq: - * fix * numeric -> numeric_result + * int * numeric -> numeric_result * * Performs multiplication: the class of the resulting object depends on the * class of +numeric+ and on the magnitude of the result. It may return a @@ -4940,6 +4941,7 @@ Init_Numeric(void) rb_define_method(rb_cFixnum, "+", fix_plus, 1); rb_define_method(rb_cFixnum, "-", fix_minus, 1); rb_define_method(rb_cFixnum, "*", fix_mul, 1); + rb_define_method(rb_cInteger, "*", rb_int_mul, 1); rb_define_method(rb_cFixnum, "/", fix_div, 1); rb_define_method(rb_cInteger, "div", rb_int_idiv, 1); rb_define_method(rb_cFixnum, "%", fix_mod, 1);