
Issue #21154 has been updated by mame (Yusuke Endoh). I had a quick chat with @akr. `Zeitwerk::Loader.for_gem.setup` identifies its caller file (i.e., the entrypoint file of the gem) by using `caller_locations`. https://github.com/fxn/zeitwerk/blob/67b1396cab1bb517b9a63833417831d648794fc... Because the entrypoint file is already `require`ed, Zeitwerk doesn't have to set autoload on the file. So, it is possible to avoid the circular autoload, and follow the new limitation introduced by my documentation change, right? ---------------------------------------- Misc #21154: Document or change Module#autoload? https://bugs.ruby-lang.org/issues/21154#change-112720 * 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/