Actions
Bug #4565
closedincompatible change at rev.31169 about autoload
Description
=begin
After rev.31169, const_defined? about a pre-autoloading constant on a included module returns true.
Ruby/Tk cannot work on rev.31169 or later.¶
On ruby1.8 and before rev.31169, returns false.
For example, the following outputs a different result between before rev.31169 and after.
module X; autoload :A, 'foo.rb'; end
module M; include X; end
p M.const_defined? :A
see also, [ruby-dev:43383].¶
This change makes it impossible checking M::A is defined on M or included from X without autoloading,
beacause M.autoload?(:A) returns nil.
Even if M.autoload?(:A) returns 'foo.rb', it is not a good solution.
It has a same problem about where the autoload is defined.
At least, Ruby/Tk requires a way to check it for default-widget-set control.
Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
Department of Artificial Intelligence, Kyushu Institute of Technology
=end
Actions
Like0
Like0Like0