[#83107] Alias Enumerable#include? to Enumerable#includes? — Alberto Almagro <albertoalmagro@...>

Hello,

9 messages 2017/10/04

[ruby-core:83167] [Ruby trunk Feature#13983] Rational and Complex should be frozen

From: eregontp@...
Date: 2017-10-06 20:53:50 UTC
List: ruby-core #83167
Issue #13983 has been reported by Eregon (Benoit Daloze).

----------------------------------------
Feature #13983: Rational and Complex should be frozen
https://bugs.ruby-lang.org/issues/13983

* Author: Eregon (Benoit Daloze)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
Since they basically are value types.
They also do not support #dup currently:

    > 1r.dup
    TypeError: can't copy Rational
    from `initialize_copy'

    > 1i.dup
    TypeError: can't copy Complex
    from `initialize_copy'

Changing their value can only be considered a semantic bug.

So, let's follow true/false/nil/Integer/Float and friends?

Not sure what #6538 was about but I think Marshal can just freeze after setting the values.
It's slightly incompatible if people do rational.instance_variable_set(:@foo, 1) or so,
but no more than on other now-frozen Numeric types and this kind of code seems highly undesirable.



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

Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next