From: "fxn (Xavier Noria) via ruby-core" <ruby-core@...>
Date: 2025-03-13T12:54:28+00:00
Subject: [ruby-core:121340] [Ruby master Misc#21154] Document or change Module#autoload?

Issue #21154 has been updated by fxn (Xavier Noria).


Thanks @mame!

I believe this may not entirely work.

That makes sense to be asked if you are thinking about explicit source code doing the autoload.

However, in situations in which the autoloads are set dynamically, as it is the case with Zeitwerk, you don't have API to know if a given file is being loaded at the moment.

----------------------------------------
Misc #21154: Document or change Module#autoload?
https://bugs.ruby-lang.org/issues/21154#change-112310

* Author: fxn (Xavier Noria)
* Status: Assigned
* 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/