Bug #1745: Module#autoload No Longer Raises where 1.8 Does
http://redmine.ruby-lang.org/issues/show/1745

Author: Run Paint Run Run
Status: Open, Priority: Low
Category: core
ruby -v: ruby 1.9.2dev (2009-07-08 trunk 23995) [i686-linux]

There has been a change between 1.8 and 1.9 with Module#autoload when the autoloaded file doesn't declare the named class and the module is already open:

$ cat /tmp/autoload.rb 
  module Autoload
  end
  module Autoload
    class W
      autoload :Y, "/tmp/empty_file.rb"
   
      class Y
      end
    end
  end

  $ ruby86 -vw /tmp/autoload.rb 
  ruby 1.8.6 (2009-06-08 patchlevel 369) [i686-linux]
  /tmp/autoload.rb:7: uninitialized constant Autoload::W::Y (NameError)

  $ ruby -vw /tmp/autoload.rb 
  ruby 1.9.2dev (2009-07-08 trunk 23995) [i686-linux]

nobu's post in [ruby-core:19129] suggests that 1.8 is correct here. Is the 1.9 behaviour a bug?


----------------------------------------
http://redmine.ruby-lang.org