From: "fxn (Xavier Noria) via ruby-core" Date: 2025-03-13T14:44:52+00:00 Subject: [ruby-core:121350] [Ruby master Misc#21154] Document or change Module#autoload? Issue #21154 has been updated by fxn (Xavier Noria). @mame thanks for considering. I am not sure it would be a good idea in practice for the same reason it was decided to not do that when `Module#autoload`, it would be too costly. Zeitwerk needs to keep track of these edge cases, I call them "inceptions" in the source code ([usage example](https://github.com/fxn/zeitwerk/blob/4cf0ddff474ee81398932b9391a8ee06d9bea008/lib/zeitwerk/loader.rb#L515)). Checking that would be prohibitive, because in a project managed by Zeitwerk everything has an `autoload` call set. Even when eager loading (for consistency, eager loading is a recursive `const_get`, not a recursive `require`). If I ever come with a concrete alternative, I may followup, but meanwhile perhaps we can leave it here. ---------------------------------------- Misc #21154: Document or change Module#autoload? https://bugs.ruby-lang.org/issues/21154#change-112322 * Author: fxn (Xavier Noria) * Status: Feedback * Assignee: mame (Yusuke Endoh) ---------------------------------------- The documentation of `Module#autoload?` says > Returns filename to be loaded if name is registered as autoload in the namespace of mod or one of its ancestors. Cool, but in the following snippet ```ruby autoload :Foo, 'foo' autoload?(:Foo) ``` the second line could evaluate to `nil`, and this does not seem to agree. I just registered an autoload, therefore (according to the documentation) I should get "foo" back in line 2. I'd like to ask for clarification from the Ruby team: 1. Is the documentation complete? Should that second line always return "foo"? 2. If the answer is no, which is the logic missing in the docs? Thank you! -- 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/lists/ruby-core.ml.ruby-lang.org/