From: usa@... Date: 2015-06-09T07:16:45+00:00 Subject: [ruby-core:69497] [Ruby trunk - Bug #11155] Files named 'b' cannot be autoloaded Issue #11155 has been updated by Usaku NAKAMURA. Backport changed from 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: REQUIRED to 2.0.0: REQUIRED, 2.1: DONE, 2.2: REQUIRED ruby_2_1 r50805 merged revision(s) 50515. ---------------------------------------- Bug #11155: Files named 'b' cannot be autoloaded https://bugs.ruby-lang.org/issues/11155#change-52799 * Author: Aaron Patterson * Status: Closed * Priority: Normal * Assignee: * ruby -v: ruby 2.3.0dev (2015-05-14 trunk 50494) [x86_64-darwin14] * Backport: 2.0.0: REQUIRED, 2.1: DONE, 2.2: REQUIRED ---------------------------------------- I have two files: a.rb ~~~ruby module A autoload :C, 'b' end p ::A::C ~~~ b.rb ~~~ruby puts "START" module A class C end end puts "FINISH" ~~~ When I run a.rb, I get an exception: ~~~ [aaron@TC xxx (master)]$ ruby --disable-gems -I. a.rb START /Users/aaron/git/xxx/b.rb:3:in `': uninitialized constant A::C (NameError) from /Users/aaron/git/xxx/b.rb:2:in `' from a.rb:5:in `require' from a.rb:5:in `
' [aaron@TC xxx (master)]$ ~~~ If I change the file to something else, like `c`, then the exception will not happen. This seems to break on every version that implements `autoload`. -- https://bugs.ruby-lang.org/