Project

General

Profile

Actions

Bug #10741

closed

const_defined? triggers autoload where it did not before

Added by headius (Charles Nutter) over 9 years ago. Updated almost 5 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:67591]

Description

This should not cause b.rb to load, but it does in 2.2:

~/projects/jruby $ cat a.rb
module Foo
autoload :Bar, 'b.rb'
end

p Foo.const_defined?('Bar')

~/projects/jruby $ cat b.rb
puts "in b"
module Foo
Bar = 1
end

~/projects/jruby $ rvm ruby-2.0 do ruby -I. a.rb
true

~/projects/jruby $ rvm ruby-2.1 do ruby -I. a.rb
in b
true

~/projects/jruby $ rvm ruby-2.2 do ruby -I. a.rb
in b
true

This is likely caused by the :: support in const_get/const_defined not doing autoload-free traversal.


Related issues 1 (0 open1 closed)

Has duplicate Ruby master - Bug #15780: Module#const_defined?(String) executes autoloadsClosedActions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0