summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--bignum.c8
-rw-r--r--numeric.c9
3 files changed, 12 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index eb5cbb2fcd..30599dac4c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Sat Apr 30 15:29:24 2016 Tanaka Akira <akr@fsij.org>
+
+ * numeric.c (rb_int_uminus): {Fixnum,Bignum}#-@ is unified into
+ Integer.
+
+ * bignum.c (rb_big_uminus): Don't define Bignum#-@.
+
Sat Apr 30 14:42:20 2016 Tanaka Akira <akr@fsij.org>
* numeric.c (rb_int_idiv): {Fixnum,Bignum}#div is unified into
diff --git a/bignum.c b/bignum.c
index aedb7758c1..70aad22c1d 100644
--- a/bignum.c
+++ b/bignum.c
@@ -5529,13 +5529,6 @@ rb_big_eql(VALUE x, VALUE y)
return Qtrue;
}
-/*
- * call-seq:
- * -big -> integer
- *
- * Unary minus (returns an integer whose value is 0-big)
- */
-
VALUE
rb_big_uminus(VALUE x)
{
@@ -6890,7 +6883,6 @@ Init_Bignum(void)
rb_cBignum = rb_define_class("Bignum", rb_cInteger);
rb_define_method(rb_cBignum, "coerce", rb_big_coerce, 1);
- rb_define_method(rb_cBignum, "-@", rb_big_uminus, 0);
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);
diff --git a/numeric.c b/numeric.c
index 92545453d5..e772b01a34 100644
--- a/numeric.c
+++ b/numeric.c
@@ -3122,11 +3122,12 @@ int_ord(VALUE num)
/*
- * Document-method: Fixnum#-@
+ * Document-method: Integer#-@
* call-seq:
- * -fix -> integer
+ * -int -> integer
*
- * Negates +fix+, which may return a Bignum.
+ * Negates +int+.
+ * (returns an integer whose value is 0-int)
*/
static VALUE
@@ -4834,7 +4835,7 @@ Init_Numeric(void)
rb_cFixnum = rb_define_class("Fixnum", rb_cInteger);
- rb_define_method(rb_cFixnum, "-@", fix_uminus, 0);
+ rb_define_method(rb_cFixnum, "-@", rb_int_uminus, 0);
rb_define_method(rb_cFixnum, "+", fix_plus, 1);
rb_define_method(rb_cFixnum, "-", fix_minus, 1);
rb_define_method(rb_cFixnum, "*", fix_mul, 1);