[ruby-core:113995] [Ruby master Feature#19742] Introduce `Module#anonymous?`
From:
janosch-x via ruby-core <ruby-core@...>
Date:
2023-06-22 07:09:39 UTC
List:
ruby-core #113995
Issue #19742 has been updated by janosch-x (Janosch M=FCller). fxn (Xavier Noria) wrote in #note-17: > def self.name [...] I think overriding such a core method for an attribut= e that is out of reach, managed internally by Ruby, is questionable [...] C= an people override `Array#size` to return 7? Yes, they can. The problem with `name` is that it is a common, uh, name. It is also not as= obvious that it is a part of the core as with `Array#size`. Coincidental overrides like [these](https://github.com/search?q=3Drepo%3Afa= ker-ruby%2Ffaker%20name&type=3Dcode) are probably somewhat common. ---------------------------------------- Feature #19742: Introduce `Module#anonymous?` https://bugs.ruby-lang.org/issues/19742#change-103653 * Author: ioquatix (Samuel Williams) * Status: Open * Priority: Normal ---------------------------------------- As a follow-on <from https://bugs.ruby-lang.org/issues/19521>, I'd like pro= pose we introduce `Module#anonymous?`. In some situations, like logging/formatting, serialisation/deserialization,= debugging or meta-programming, we might like to know if a class is a prope= r constant or not. However, this brings about some other issues which might need to be discuss= ed. After assigning a constant, then removing it, the internal state of Ruby st= ill believes that the class name is permanent, even thought it's no longer = true. e.g. ``` m =3D Module.new m.anonymous? # true M =3D m m.anonyomous # false Object.send(:remove_const, :M) M # uninitialized constant M (NameError) m.anonymous? # false ``` Because RCLASS data structure is not updated after the constant is removed,= internally the state still has a "permanent class name". I want to use this proposal to discuss this issue and whether there is anyt= hing we should do about such behaviour (or even if it's desirable). Proposed PR: https://github.com/ruby/ruby/pull/7966 cc @fxn --=20 https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-c= ore.ml.ruby-lang.org/