
Issue #19644 has been updated by bughit (bug hit). Description updated Eregon (Benoit Daloze) wrote in #note-5:
Could be useful for debugging/logging.
Those are not performance critical, so `Module::nesting[0]` is enough.
They could be if invoked frequently enough.
You also don't want to provide a concrete example where it's a clear gain, OK, let's close then until there is a clear use case for it where `Module::nesting[0]` is not enough.
Module::nesting[0] has to walk and build the entire inheritance chain. This is undesirable if you just want the current module. If you don't know the difference between `self` and `Module::nesting[0]`, you're not qualified to reject this. Reopen it. ```ruby class Class1 def foo puts "#{Module.nesting[0]}##{__method__}" # Class1#foo puts "#{self.class}##{__method__}" # Class2#foo end end class Class2 < Class1 def foo super end end Class2.new.foo ``` ---------------------------------------- Feature #19644: Module::current to complement Module::nesting https://bugs.ruby-lang.org/issues/19644#change-103202 * Author: bughit (bug hit) * Status: Rejected * Priority: Normal ---------------------------------------- Module::current == Module::nesting[0] but without needlessly walking the entire nesting hierarchy. Could be useful for debugging/logging. It could also be a Kernel global (like `__method__`) or a keyword (like `__FILE__`) -- https://bugs.ruby-lang.org/