From: "fxn (Xavier Noria) via ruby-core" Date: 2025-12-07T10:29:26+00:00 Subject: [ruby-core:124044] [Ruby Misc#21154] Document or change Module#autoload? Issue #21154 has been updated by fxn (Xavier Noria). Thanks for the example @mame. In my view, this is more a problem of circularity than a problem of autoload vs require. When you are loading a file, a require is executed and loads a file that needs a constant that was still not defined. You can do that with requires too. Same with cherry-picking in projects that do not use autoload. Users cannot cherry-pick arbitrary files without authors saying that is fine. Because requires are tricky to setup and normally the author loads things in a way that is consistent. Easy example is ```ruby # a/b/c.rb module A::B::C ``` In your project, you control how things are loaded and you know that when `a/b/c.rb` is loaded `A::B` is defined. End-users cannot go and happily load that file directly and expect that to work. So, my reflection is that cherry-picking without explicit docs allowing it, is in general not supposed to work. end ---------------------------------------- Misc #21154: Document or change Module#autoload? https://bugs.ruby-lang.org/issues/21154#change-115476 * 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/