From: "fxn (Xavier Noria) via ruby-core" Date: 2025-02-25T11:50:46+00:00 Subject: [ruby-core:121162] [Ruby master Misc#21154] Document or change Module#autoload? Issue #21154 has been updated by fxn (Xavier Noria). @mame Let me put it all together: Consider a script `foo.rb`: ```ruby autoload :Foo, 'foo' p autoload?(:Foo) ``` If we execute that with `ruby -I. -rfoo -e1`, we get `nil`. But this does not agree with the docs: 1. The constant `Foo` does not exist, therefore (according to the docs), the autoload is **registered**. 2. `Module#constants` lists `:Foo`, which is consistent. 3. `Module#const_added` is called with `:Foo`, which is consistent. Now, the docs of `Module #autoload?` say: > Returns filename to be loaded if name is registered as autoload in the namespace of mod or one of its ancestors. **since the autoload is registered, I should get a filename back, not `nil`**. My **question** to the Ruby team is: Is the behavior OK and the docs should be updated, or should the implementation be updated instead? My suggestion would be to keep the docs as they are and simplify `autoload?` to be a simple lookup in the constants table. (Hope that explains it better.) ---------------------------------------- Misc #21154: Document or change Module#autoload? https://bugs.ruby-lang.org/issues/21154#change-112102 * Author: fxn (Xavier Noria) * Status: Open ---------------------------------------- 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/