Project

General

Profile

Actions

Bug #21384

closed

const_added is triggered twice when using autoload

Added by petekinnecom (Pete Kinnecom) 8 days ago. Updated 1 day ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:<unknown>]

Description

As the title says, I've noticed that const_added is invoked twice when using autoload. I'm wondering if this behavior is intended or perhaps a bug. Here's a small script to reproduce what I'm seeing:

require "tmpdir"

dir = Dir.mktmpdir

File.write(
  File.join(dir, "const.rb"),
  "class Const; end"
)

def Object.const_added(const_name)
  super.tap { puts "const_added: #{const_name}" }
end

$LOAD_PATH << dir

puts "before autoload call"
autoload :Const, "const"
puts "after autoload call"
puts Const

# Produces output:
#
# => before autoload call
# => const_added: Const
# => after autoload call
# => const_added: Const
# => Const

I'm seeing the behavior using the following docker containers ruby:3.2 and ruby:3.5-rc when running like so: docker run -v ./:/home ruby:3.5-rc ruby /home/script.rb. Thanks.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0