aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS13
1 files changed, 13 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 6dcab9c3c2..9e8d3ea574 100644
--- a/NEWS
+++ b/NEWS
@@ -46,6 +46,8 @@ with all sufficient information, see the ChangeLog file or Redmine
* Integer#ceil, Integer#floor, and Integer#truncate now take an optional
digits, as well as Integer#round. [Feature #12245]
+ * Fixnum and Bignum are unified into Integer [Feature #12005]
+
* String
* String.new(capacity: size) [Feature #12024]
@@ -84,6 +86,17 @@ with all sufficient information, see the ChangeLog file or Redmine
Ruby's sum method should be mostly compatible but it is impossible to
be perfectly compatible with all of them.
+* Fixnum and Bignum are unified into Integer [Feature #12005]
+ Fixnum class and Bignum class is removed.
+ Integer class is changed from abstract class to concrete class.
+ For example, 0 is an instance of Integer: 0.class returns Integer.
+ The constants Fixnum and Bignum is bound to Integer.
+ So obj.kind_of?(Fixnum) works as obj.kind_of?(Integer).
+ At C-level, rb_cFixnum and rb_cBignum is same as rb_cInteger.
+ So, class based dispatch, such as klass == rb_cFixnum and
+ klass == rb_cBignum, should be changed to FIXNUM_P(obj) and
+ RB_TYPE_P(obj, T_BIGNUM).
+
=== Stdlib compatibility issues (excluding feature bug fixes)
* Time