Issue #10728 has been updated by Akira Tanaka.


RbConfig::SIZEOF['long'] is a drop-in replacement but Fixnum::MAX is not.

Also, I feel Fixnum is a implementation detail.


----------------------------------------
Feature #10728: Warning for Fixnum#size to use RbConfig::SIZEOF['long']
https://bugs.ruby-lang.org/issues/10728#change-50931

* Author: Akira Tanaka
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
----------------------------------------
How about add a warning for Fixnum#size ?

```
% ./ruby -e 'p 0.size'
-e:1: warning: Use RbConfig::SIZEOF['long'] instead of Fixnum#size
8
```

Currently it returns sizeof(long) which is 4 or 8.

However it is implementation detail and
it may difficult to define it in Ruby implementations other than CRuby.

There is a way to obtain sizeof(long): RbConfig::SIZEOF['long']
It works since Ruby 2.1.

```
% ruby -rrbconfig/sizeof -e "p RbConfig::SIZEOF['long']"    
8
```

So the warning is a migration path to use RbConfig::SIZEOF['long'].

Note that this may affect many code. 
So this issue may irritate many people.
fixnum-size-search.txt is a search result in gems.


---Files--------------------------------
fixnum-size-search.txt (7.03 KB)
fixnum-size-warning.patch (2.03 KB)


-- 
https://bugs.ruby-lang.org/